MỞ ĐẦUMô hình thực thể - quan hệ ER cũng như các mở rộng của mô hình này như EER đã được sử dụng phổ biến trong các hệ quản trị cơ sở dữ liệu.. Với mô hình này, chúng ta đã có được một c
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
- -CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
Chương 3
MÔ HÌNH ĐỐI TƯỢNG QUAN HỆ
VÀ SQL3
Giáo viên hướng dẫn: TS Nguyễn Tuệ Học viên:
Lớp cao học K14−HTTT
Trang 2HÀ NỘI, THÁNG 3 NĂM 2009
Trang 3MỤC LỤC
MỤC LỤC 1
MỞ ĐẦU 2
Chương 3 MÔ HÌNH ĐỐI TƯỢNG QUAN HỆ VÀ SQL3 3
1 Chuẩn bị cơ sở dữ liệu 3
KẾT LUẬN 4
TÀI LIỆU THAM KHẢO 5
Trang 5MỞ ĐẦU
Mô hình thực thể - quan hệ (ER) cũng như các mở rộng của mô
hình này (như EER) đã được sử dụng phổ biến trong các hệ quản trị
cơ sở dữ liệu Với mô hình này, chúng ta đã có được một cơ sở lý
thuyết tốt, một ngôn ngữ tốt cung cấp các kiểu dữ liệu phù hợp, các
phép toán thực thi cơ sở dữ liệu và đảm bảo được tính toàn vẹn của dữ
liệu Ngôn ngữ SQL cho phép các bảng kết hợp với nhau trên các mối
quan hệ, đồng thời hệ quản trị cơ sở dữ liệu đảm bải lưu trữ được khối
lượng lớn dữ liệu với các mối quan hệ đơn giản, rút trích nhanh
Tuy nhiên, mô hình này lại không chấp nhận các thuộc tính đa
trị, phức hợp; hơn nữa không có tính bao gói, tức là không tích hợp
các phép toán vào định nghĩa quan hệ, dẫn đến việc người dùng có thể
biết được các thuộc tính “bí mật”
Ngôn ngữ lập trình hướng đối tượng trở nên phổ biến vào những
năm 80 và 90 là một cách mạng của công nghệ phần mềm để dễ dàng
thiết kế phần mềm và sử dụng lại các thành phần của phần mềm Mô
hình hướng đối tượng tích hợp chặt chẽ code và dữ liệu, các loại dữ
liệu uyển chuyển, mối quan hệ giữa các dữ liệu được tổ chức theo
mức tầng và các tham chiếu giữa các đối tượng khác nhau Ngôn ngữ
hướng đối tượng diễn đạt mối quan hệ phức tạp giữa dữ liệu cũng như
các thao tác dữ liệu nhưng lại ít hỗ trợ cho việc lưu trữ và rút trích dữ
liệu
Do vậy, có thể khắc phục nhược điểm của hai mô hình trên bằng
cách tích hợp mô hình đối tượng vào mô hình quan hệ Có hai hướng
tiếp cận chính khi tích hợp ứng dụng hướng đối tượng với mô hình
quan hệ, đó là thiết kế lược đồ quan hệ để nắm giữ các đối tượng và
thiết kế các lớp hướng đối tượng để giao tiếp với cơ sở dữ liệu quan
hệ
Cùng với việc tích hợp này thì ngôn ngữ SQL cũng đã được phát
triển và được tổ chức ANSI và ISO chuẩn hoá, ngôn ngữ này được
biết đến với tên gọi SQL3, ngôn ngữ này được thêm vào các chức
năng để hỗ trợ tạo, truy vấn và quản lý dữ liệu hướng đối tượng
Trang 6Bài viết này nhằm mục đích trình bày về mô hình đối tượng –
quan hệ và ngôn ngữ SQL3
Trang 7Chương 3 MÔ HÌNH ĐỐI TƯỢNG QUAN
HỆ
VÀ SQL3
1 Mô hình đối tượng – quan hệ
1.1 Tổng quan về sự phát triển của công nghệ cơ sở dữ liệu
Hiện nay, có nhiều nhóm hệ quản trị CSDL đang được sử dụng,
trong đó, hai loại hệ quản trị chiếm ưu thế lớn nhất là hệ quản trị
CSDL quan hệ - RDBMS và hệ quản trị CSDL hướng đối tượng –
ODBMS tương ứng với mô hình dữ liệu quan hệ và mô hình dữ liệu
hướng đối tượng Hai kiểu chính của các sản phẩm hệ quản trị CSDL
là phân cấp (hierarchical) và mạng (network) – hay còn gọi là các hệ
quản trị CSDL kế thừa Các kiểu nảy dựa trên mô hình dữ liệu phân
cấp và dữ liệu mạng và được ra đời vào khoảng giữa thập kỉ 1960 Hệ
quản trị tiêu biểu cho mô hình phân cấp là IMS của IBM, còn đối với
mô hình mạng thì có nhiều hệ quản trị khác nhau, chẳng hạn IDS II
(Honeywell), IDMS (Computer Associates), IMAGE (Hewlett
Packard), VAX-DBMS (Digital) và TOTAL/SUPRA (Cincom)…
Cùng với sự phát triển của công nghệ CSDL thì các hệ quản trị
kế thừa đó sẽ dần dần được thay thế bằng các hệ quản trị mới hơn
Trong giai đoạn chuyển giao này, ta phải đối mặt với vấn đề hoạt động
được (interoperability) – tức là khả năng hoạt động được của lượng
lớn CSDL thuộc về nhiều hệ quản trị CSDL khác nhau cũng như các
hệ thống quản lý file thừa kế Để giải quyết vấn đề này nhiều hệ thống
và công cụ được tạo ra, chẳng hạn như ODMG và CORBA, các hệ
thống này cho phép các ứng dụng hoạt động được với những CSDL từ
những mô hình và hệ thống khác nhau
1.2 Mô hình dữ liệu quan hệ
Mô hình này được Ted Codd đưa ra đầu tiên vào năm 1970 và
gây được chú ý ngay bởi tính đơn giản và các cơ sở toán học của nó
Mô hình quan hệ sử dụng khái niệm quan hệ toán học như là khối cơ
sở lý thuyết Mô hình này biểu diễn CSDL như một tập các quan hệ,
mỗi quan hệ có thể được biểu diễn như một bảng giá trị, mỗi dòng
biểu thị một tập hợp các giá trị dữ liệu liên quan với nhau Tên bảng
và các tên cột dung để giúp giải thích ý nghĩa của các giá trị trong mỗi
hàng, mọi giá trị trong một cột đều cùng một kiểu dữ liệu
Hệ quản trị CSDL quan hệ cung cấp nhiều đặc tính quan trọng
để quản lý khối lượng lớn dữ liệu, như:
- Lưu trữ dữ liệu lâu dài,
- Truy cập nhanh dữ liệu (query),
- Đảm bảo toàn vẹn tham chiếu, đảm bảo các ràng buộc,
Trang 8- Đảm bảo chia sẻ dữ liệu,
- Quản lý được lỗi xảy ra trong các thủ tục của CSDL
Theo thuật ngữ mô hình quan hệ hình thức, mỗi hàng được gọi là
một cột, mỗi cột được gọi là một thuộc tính, và bảng được gọi là một
quan hệ Kiểu dữ liệu mô tả các kiểu của dữ liệu xuất hiện trong mỗi
cột gọi là một miền
Mỗi dòng trong bảng tương ứng với một item hoặc một record,
các item được xác định duy nhất bởi các giá trị của chúng Một cách
để định danh một item riêng là thiết kế một cột của bảng mà các giá trị
của item được đảm bảo duy nhất, cột chứa giá trị duy nhất được coi là
khoá chính
Các quan hệ với các record khác được thiết lập bằng cách định
nghĩa các cột nắm giữ khoá chính của các record có liên quan được
gọi là khoá ngoại
Mô hình này có một ngôn ngữ truy vấn tốt: ngôn ngữ truy vấn có
cấu trúc SQL – Structured Query Language) Đây là một ngôn ngữ
chuẩn được dùng để tạo lập và truy vấn các CSDL quan hệ SQL là
một ngôn ngữ phi thủ tục, chuẩn mực và điển hình, nó chỉ ra các thông
tin gì cần thiết mà không cần phải chỉ ra làm thế nào để có được các
thông ti này SQL xử lý các tập hợp mẩu tin (bảng ) hơn là mỗi lần
một mẩu tin đơn lẻ
Tuy nhiên, mô hình này cũng có những hạn chế
- CSDL quan hệ không đủ bộ nhớ để lưu trữ các dữ liệu như ảnh,
audio/video
- Mô hình quan hệ không chấp nhận các thuộc tính đa trị, thuộc
tính phức hợp, do đó không biểu diễn được các đối tượng phức hợp
- Các hệ quản trị CSDL quan hệ không thích hợp làm việc với
các ngôn ngữ ngoài SQL Mặc dù hệ quản trị có thể được viết bằng
C++, Java nhưng CSDL quan hệ không làm việc hiệu quả với những
ngôn ngữ đó
- Trong CSDL quan hệ, các bảng cần phải kết nối với nhau (theo
giá trị thông qua các khoá) nên thực hiện chậm
- Mô hình quan hệ không có tính bao gói cho nên không tích hợp
các phép toán vào định nghĩa quan hệ (làm cho người dùng có thể biết
được các thuộc tính private)
1.3 Mô hình dữ liệu hướng đối tượng
Mô hình CSDL hướng đối tượng đã được phát triển từ những
năm 1980 để giải quyết những hạn chế của mô hình quan hệ và những
thách thức của Web và Internet Điểm quan trọng nhất của lập trình
hướng đối tượng thể hiện trong CSDL hướng đối tượng là tính tích
hợp các ứng dụng Lập trình hướng đối tượng có 4 đặc tính quan
trọng: tính thừa kế, tính bao gói, định danh đối tượng và tính đa hình
Trang 9Tinh thừa kế cho phép nhà phát triển nâng cấp các giải pháp sẵn có
bằng cách thêm các đối tượng mới dựa trên các đối tượng trước đó
Tính bao gói dữ liệu (đơn giản là tính bao gói) cho phép ẩn các
thuộc tính bên trong của đối tượng Các đối được bao gói là các đối
tượng chỉ có thể truy cập bằng các phương thức của chính nó Có ba
kiểu bao gói đối tượng: thứ nhất là bao gói đầy đủ, tức là mọi thao tác
trên đối tượng đó chỉ được thực thi qua thông điệp gửi tới phương
thức của đối tượng Thứ hai là bao gói ghi, tức là chỉ có thể thực hiện
được các thao tác đọc trên các thuộc tính bên trong của đối tượng Thứ
ba là bao gói từng phần, tức là chỉ có thể thực hiện thao tác đọc/ghi
trên từng phần của các thuộc tính bên trong
Định danh đối tượng khiến cho mỗi đối tượng trong CSDL độc
lập với các đối tượng khác Tính đa hình và liên kết động cho phép ta
có thể định nghĩa các thao tác cho một đối tượng này rồi áp dụng cho
các đối tượng khác Từ đó, người dùng/lập trình viên có thể kết hợp
các đối tượng mà không cần thiết phải viết mã cho từng đối tượng
Trong hệ quản trị CSDL hướng đối tượng (OODBMS) thì ngôn
ngữ định nghĩa và thao tác dữ liệu (DDML) đóng một vai trò quan
trọng Ngôn ngữ này cho phép tạo, cập nhật, xoá và truy vấn dữ liệu
bền Hệ quản trị CSDL hướng đối tượng cần có sự tính toán khác với
ngôn ngữ quan hệ bởi trong OODBMS thì ta cần tránh việc ghép cặp
không tương thích DDML cho phép người dùng định nghĩa CSDL,
gồm tạo lập thêm, thay đổi các bảng và thiết lập ràng buộc DDML
cũng dùng để để bảo trì và truy vấn CSDL, bao gồm cập nhật, thêm,
sửa và truy vấn dữ liệu
Ưu điểm của hệ quản trị CSDL hướng đối tượng:
- Dữ liệu hướng đối tượng tự nhiên hơn đối với người dùng
- Thao tác định nghĩa kiểu không phụ thuộc vào ứng dụng CSDL
đặc biệt tại một thời điểm
- Các kiểu dữ liệu của dữ liệu hướng đối tượng có thê mở rộng
để hỗ trợ các kiểu dữ liệu phức tạp như ảnh, audio/video số, đồng thời
có thể sử dụng các thao tác đa phương tiện
- Điểm khác biệt của OODBMS là ở tính có thể dùng lại, ổn định
và tin cậy
- Quan hệ trong OODBMS được biểu diễn một cách rõ ràng,
thường hỗ trợ cả thao tác truy cập thông tin bằng cách dịch chuyển
(navigational) hay kết hợp (associative) Thao tác này giúp tăng hiệu
suất làm việc của hệ thống so với mô hình dữ liệu
- Cho phép người dùng định nghĩa các phương thức truy nhập dữ
liệu riêng, đây là ưu điểm quan trọng, bởi vì người dùng có thể quyết
định xem phương thức đó được biểu diễn và được thực hiện như thế
nào
Trang 10- Một ưu điểm đáng kể nữa là CSDL được mở rộng sang một
lĩnh vực không hề biết bằng RDMS Y học, đa phương tiện và vật lý
cao năng lượng (high-energy) và một số ngành công nghiệp mới đều
dựa vào CSDL hướng đối tượng
Tuy vậy, mô hình hướng đối tượng cũng gặp phải những hạn chế
nhất định Một trong những hạn chế đó là thiếu một mô hình dữ liệu
chung Điều đó có nghĩa là không có một mô hình dữ liệu chuẩn tại
thời điểm hiện tại, dẫn đến những khó khăn khi triển khai xây dựng
các hệ quản trị CSDL hướng đối tượng
1.4 Mô hình đối tượng – quan hệ
Mô hình đối tượng quan hệ (object-relational) là kết quả của việc
tích hợp mô hình hướng đối tượng vào mô hình quan hệ, hay nói cách
khác đó là “việc mở rộng mô hình quan hệ với những chức năng cần
thiết nhằm hỗ trợ một lớp lớn các chương trình, là cầu nối giữa mô
hình quan hệ và mô hình hướng đối tượng”
Hệ quản trị CSDL đối tượng – quan hệ (ORDBMS) có thể quản
lý các kiểu dữ liệu mới như audio, video, ảnh mà CSDL quan hệ
không có khả năng để quản lý Hơn nữa, đây là kết quả của việc sử
dụng của ngôn ngữ lập trình hướng đối tượng và những điểm không
tương xứng giữa những phần mềm đó với những phần mềm quản trị
CSDL quan hệ
Mô hình đối tượng – quan hệ giữ lại các đặc trưng cơ bản của
mô hình quan hệ và đưa vào các khái niệm:
- Kiểu dữ liệu của người dùng: cho phép định nghĩa các kiểu dữ
liệu mới kết hợp phép toán (như list, stack, queue, tree) - các kiểu dữ
liệu trừu tượng (gồm hai phần: mô tả và phép toán)
- Hỗ trợ các thuộc tính đa trị, phức hợp (nên CSDL không phải
là ở dạng 1NF)
- Đưa vào khái niệm định danh đối tượng (OID): tham chiếu theo
con trỏ
- Đưa vào khái niệm thừa kế kiểu
- Đưa vào khái niệm thừa kế bảng
Ưu điểm của ORDBMS: thứ nhất, cho phép tiếp tục sử dụng các
hệ thống sẵn có mà không phải thay đổi nhiều Thứ hai, cho phép
người sử dụng và lập trình viên sử đồng thời sử dụng các hệ thống
hướng đối tượng
Tuy nhiên, khi triển khai một hệ quản trị CSDL đối tượng – quan
hệ gặp một số trở ngại Thứ nhất là về phương thức lưu trữ và truy
cập Thứ hai là quá trình truy vấn và thứ ba là việc tối ưu hoá các câu
truy vấn đó
Nhiều nhà cung cấp phần mềm quản trị CSDL đã mở rộng các hệ
thống của họ để có khả năng lưu trữ các kiểu dữ liệu mới như ảnh, văn
Trang 11bản và có khả năng thực hiện được những câu truy vấn phức tạp.
Trong đó phải kể đến các phần mềm của Baan, Oracle, SAP, và
Siebel Chương trình của các hãng này cho phép thực hiện các thao tác
phức tạp như trên
Quan trọng hơn, các hệ quản trị CSDL này có những chức năng
hỗ trợ cho Internte và Web Dữ liệu được lưu trữ và có thể truy cập
thông qua trình duyệt Web (các câu truy vấn được người dùng tạo
thông qua các form trên trang Web, kết quả trả về được định dạng
bằng ngôn ngữ mark-up nào đó, như HTML)
Bài viết này giới thiệu hai hệ quản trị CSDL đối tượng – quan hệ
là Informix Universal Server và Oracle 8 Đồng thời cũng giới thiệu
về ngôn ngữ SQL3 (phiên bản tiếp theo của SQL2) với những chức
năng hỗ trợ CSDL hướng đối tượng và các kiểu dữ liệu mở rộng
2 Hệ quản trị Informix Universal Server
Informix Universal Server là hệ quản trị cơ sở dữ liệu đối tượng
– quan hệ (ORDBMS) được tổ hợp từ công nghệ CSDL quan hệ và
CSDL hướng đối tượng (tương ứng với hai hệ quản trị Informix và
Illustra) Hệ thống này được phát triển từ hệ quản trị POSTGERES, đó
là dự án nghiên cứu của ĐH California ở Berkeley và đã được thương
mại hoá với tên gọi hệ quản trị CSDL Montage rồi được đổi tên thành
Miro trước khi tiếp tục được đổi tên thành Illustra Illustra sau đó
được Informix mua lại và tích hợp vào hệ quản trị CSDL quan hệ đã
có tạo thành hệ quản trị mới – hệ quản trị CSDL đối tượng – quan hệ
Informix Universal Server
Nhưng tại sao hệ quản trị CSDL đối tượng – quan hệ
(ORDBMS) lại vượt lên những hệ quản trị khác? Ta xem xét mô hình
sau: Chia các hệ quản trị CSDL thành các lớp theo 2 chiều, (1) chiều
X là độ phức tap dữ liệu, (2) chiều Y là độ phức tạp truy vấn Trong
không gian {0,1} ta có các trường hợp sau:
TH1: (X=0, Y=0): Dữ liệu đơn giản, truy vấn đơn giản
TH2: (X=0, Y=1): Dữ liệu đơn giản, truy vấn phức tạp
TH3: (X=1, Y=0): Dữ liệu phức tạp, truy vấn đơn giản
TH4: (X=1, Y=1): Dữ liệu phức tạp, truy vấn phức tạp
Các hệ quản trị CSDL quan hệ thuộc về TH2, mặc dù có những
truy vấn và cập nhật phức tạp (như tiến trình giao tác – transaction),
nhưng chỉ có các dữ liệu đơn giản như các dòng trong bảng Nhiều hệ
quản trị CSDL hướng đối tượng thuộc về TH3, các hệ quản trị này có
khả năng lưu trữ các dữ liệu phức tạp nhưng chỉ có các truy vấn đơn
giản (chủ yếu dựa trên việc dịch chuyển) Để đồng thời hỗ trợ cả dữ
liệu phức tạp và truy vấn phức tạp thì các hệ quản trị CSDL quan hệ
cần hỗ trợ thêm các đối tượng dữ liệu phức tạp, còn các hệ quản trị
CSDL hướng đối tượng cần hỗ trợ thêm các truy vấn phức tạp, như
ngôn ngữ truy vấn mức cao OQL (đã trình bày trong chương trước)
Trang 12Hệ quản trị CSDL Informix Universal Server thuộc TH4 bởi hệ quản
trị này mở rộng mô hình quan hệ với các chức năng của mô hình
hướng đối tượng
Một số hệ quản trị CSDL đối tượng – quan hệ khác cũng được
phát triển từ hệ quản trị CSDL quan hệ như Oracle 8 của Oracle
Corporation, Universal DB (UDB) của IBM, Odapter của Hewlett
Packard (HP) (bản mở rộng của hệ quản trị Oracle), và Open ODB
của HP (mở rộng từ hệ quản trị Allbase/SQL của HP) Các hệ quản trị
này vừa đảm nhận nhiệm vụ của hệ quản trị CSDL quan hệ, đồng thời
lại có những chức năng bổ sung hỗ trợ CSDL hướng đối tượng Một
hệ quản trị khác là UniSQL của UniSQL Inc hệ quản trị này được
thiết kế nhằm quản trị CSDL hướng đối tượng
Informix Universal Server đã mở rộng mô hình dữ liệu quan hệ
từ hệ quản trị Illustra thể hiện trong các mục sau:
- Hỗ trợ các kiểu dữ liệu có thể mở rộng và thêm vào một số kiểu
dữ liệu
- Hỗ trợ các định nghĩa của người dùng (hàm, thủ tục)
- Hỗ trợ hoàn toàn tính kế thừa
- Hỗ trợ chỉ mục mở rộng
- Data Blades Application Programming Interface (API)
2.1 Các kiểu dữ liệu có thể mở rộng
Informix Universal Server gồm các thành phần quản trị CSDL
cơ bản và các module Data Blade Informix Universal Server hỗ trợ
các kiểu dữ liệu đặc biệt, trong đó có các đối tượng hình học hai
chiều (như điểm, đường thẳng, đường tròn và elip), ảnh, thời gian, văn
bản và trang web Hệ quản trị này cũng cho phép người dùng tự tạo
các kiểu dữ liệu riêng Ngoài các kiểu dữ liệu có sẵn, Informix
Universal Server còn đưa ra bốn khái niệm sau đây để giúp người
dùng định nghĩa các kiểu dữ liệu:
1 Opaque type
2 Distinct type
3 Row type
4 Collection type
Mỗi khi tạo
3 Đối tượng – quan hệ trong Oracle 8
4 SQL3
5 Vấn đề cài đặt trong các hệ cơ sở dữ liệu
6 Mô hình dữ liệu quan hệ lồng nhau