Tải bản đầy đủ (.pdf) (80 trang)

Nghiên cứu về hiệu năng của cơ sở dữ liệu quan hệ đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.63 MB, 80 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH
______________________________________________________________________________________________

TRẦN THỊ NGỌC TÚ

NGHIÊN CỨU VỀ HIỆU NĂNG
CỦA CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGHỆ AN, 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC VINH
______________________________________________________________________________________________

TRẦN THỊ NGỌC TÚ

NGHIÊN CỨU VỀ HIỆU NĂNG
CỦA CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG

Chuyên ngành: Công nghệ thông tin
Mã số: 60.48.02.01

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học:
TS. PHAN ANH PHONG


NGHỆ AN, 2017


i

LỜI CAM ĐOAN
Tôi xin cam đoan các kết quả nghiên cứu có được trong luận văn này là
q trình tìm hiểu, nghiên cứu của tôi dưới sự hướng dẫn của thầy giáo – TS.
Phan Anh Phong.
Nội dung của luận văn có sự tham khảo, sử dụng các thơng tin, tài liệu
từ các nguồn được liệt kê trong danh mục các tài liệu tham khảo. Các kết quả
nghiên cứu trong đề tài này là trung thực và chưa được công bố ở bất kì đâu.
Học viên

Trần Thị Ngọc Tú


ii

LỜI CẢM ƠN
Để có thể hồn thành tốt được luận văn này, đầu tiên tơi muốn gửi
lời cảm ơn, lịng biết ơn sâu sắc của bản thân đến thầy giáo của tôi – TS.
Phan Anh Phong, người đã trực tiếp hướng dẫn cho tôi, cung cấp các tài
liệu khoa học giúp tơi hồn thành luận văn của mình. Cảm ơn thầy đã tận
tình hướng dẫn và tạo mọi điều kiện tốt nhất cho tơi trong suốt q trình
thực hiện luận văn. Khơng chỉ về mặt kiến thức, thầy cịn là tấm gương
cho tôi học hỏi về phong cách làm việc cũng như ý thức trách nhiệm của
bản thân đối với cơng việc của mình.
Và để đạt được kết quả như ngày hôm nay, tôi cũng xin gửi lời cảm
ơn chân thành của tôi đến quý thầy cô khoa Công nghệ thông tin trường

Đại học Vinh. Cảm ơn tất cả các thầy cơ đã nhiệt tình giảng dạy, truyền
đạt cho tơi các kiến thức cơ bản trong chuyên ngành cũng như tận tình
hướng dẫn cho tơi trong q trình nghiên cứu luận văn.
Để hồn thành luận văn này, bản thân tơi đã nỗ lực hết mình, nhưng
với thời gian chưa nhiều và vốn kiến thức cịn hạn hẹp chắc chắn khơng
thể tránh khỏi những sai sót trong luận văn. Vì vây, tơi mong nhận được
những đóng góp tích cực của các thầy cô và các bạn để luận văn của tôi
được hồn thiện hơn.
Tơi xin chân thành cảm ơn!
Người thực hiện

Trần Thị Ngọc Tú


iii

MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
MỤC LỤC ........................................................................................................ iii
DANH MỤC CÁC TỪ VIẾT TẮT .................................................................. v
DANH MỤC CÁC BẢNG............................................................................... vi
DANH MỤC CÁC HÌNH ............................................................................... vii
MỞ ĐẦU ........................................................................................................... 1
Chương 1. CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CƠ SỞ DỮ LIỆU HƯỚNG
ĐỐI TƯỢNG..................................................................................................... 4
1.1. Cơ sở dữ liệu quan hệ.......................................................................................4
1.1.1. Mơ hình dữ liệu .........................................................................................4
1.1.2. Điều khiển truy cập ...................................................................................5
1.1.3. Quản lý giao dịch ......................................................................................6

1.1.4. SQL2 .........................................................................................................7
1.1.5. Điểm yếu của mơ hình dữ liệu quan hệ ..................................................10
1.2. Cơ sở dữ liệu hướng đối tượng ......................................................................11
1.2.1. Đối tượng và định danh đối tượng ..........................................................11
1.2.2. Đóng gói đối tượng .................................................................................12
1.2.3. Kế thừa ....................................................................................................13
1.2.4. Đa hình ....................................................................................................14
1.2.5. OO DBMS với OOPL .............................................................................14
1.3. So sánh RDBMS với OODBMS ....................................................................15
1.3.1. Khả năng mơ hình hóa dữ liệu ................................................................15
1.3.2. So sánh RDBMS với OODBMS theo mục tiêu của mỗi hệ thống .........17
1.4. Kết luận chương 1 ..........................................................................................18

Chương 2. CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG ............................. 20
2.1. Sự cần thiết của việc quản lý dữ liệu theo mơ hình quan hệ-đối tượng .........20


iv

2.2. Mơ hình hóa dữ liệu .......................................................................................21
2.3. Định danh đối tượng - OID ............................................................................23
2.4. Các kiểu dữ liệu..............................................................................................23
2.4.1 Kiểu đối tượng .........................................................................................23
2.4.2 Tham chiếu đối tượng ..............................................................................26
2.4.3. Kiểu mảng ...............................................................................................26
2.5. SQL3 ..............................................................................................................28
2.6. Mối liên kết ....................................................................................................28
2.7. Kế thừa ...........................................................................................................29
2.8. Phương thức ...................................................................................................31
2.9. Đóng gói quan hệ - đối tượng ........................................................................32

2.10. Kết luận chương 2 ........................................................................................33

Chương 3. MỘT ĐÁNH GIÁ VỀ HIỆU NĂNG CỦA CƠ SỞ DỮ LIỆU
QUAN HỆ VÀ CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG ..................... 34
3.1. Bài toán quản lý nhân viên .............................................................................34
3.2. Các yêu cầu đặt ra ..........................................................................................35
3.3. Lựa chọn kiến trúc nền và công cụ ................................................................35
3.4. Xây dựng cơ sở dữ liệu và triển khai hệ thống .............................................35
3.4.1. Sơ đồ thực thể - liên kết bài toán quản lý nhân viên ...............................35
3.4.2. CSDL của bài tốn quản lý nhân viên theo mơ hình quan hệ .................36
3.4.3. CSDL bài toán quản lý nhân viên theo quan hệ - đối tượng ...................38
3.4.4. Triển khai thử nghiệm .............................................................................41
3.5. Kết luận chương 3 ..........................................................................................57

KẾT LUẬN ..................................................................................................... 58
TÀI LIỆU THAM KHẢO ............................................................................... 59
PHỤ LỤC ........................................................................................................ 60


v

DANH MỤC CÁC TỪ VIẾT TẮT

STT

Thuật ngữ

1

CSDL


2

RDBMS

Giải thích
Cơ sở dữ liệu
Viết tắt của Relation DataBase Management
System – Cơ sở dữ liệu quan hệ

OODBMS

Viết

tắt

của

Object

Oriented

DataBase

Management System - Cơ sở dữ liệu hướng đối

3

tượng
ORDBMS


Viết

tắt

của

Object

Relation

DataBase

Management System - Cơ sở dữ liệu quan hệ đối

4

tượng
5

OOPL

6

OID

Ngôn ngữ lập trình hướng đối tượng
Định danh đối tượng



vi

DANH MỤC CÁC BẢNG

Tên bảng

STT
1

2

3

4

5

6

7

Trang

Bảng 1.1. So sánh OODBMS và RDBMS với mơ hình
hóa dữ liệu.

16

Bảng 1.2. So sánh OODBMS với RDBMS theo mục tiêu
của chúng


17

Bảng 3.1 Thời gian thực hiện khi thêm 100 bản ghi
phòng ban
Bảng 3.2 Thời gian thực hiện khi thêm 1000 bản ghi
phòng ban

44

44

Bảng 3.3 Thời gian thực hiện khi thêm 10.000 bản ghi
phòng ban

45

Bảng 3.4. Tổng hợp trung bình thời gian khi thêm bản
ghi phịng ban
Bảng 3.5. Trung bình thời gian khi xóa 100, 1000, 10000
bản ghi phòng ban

45

49


vii

DANH MỤC CÁC HÌNH


Nội dung

STT

Trang

1

Hình 1.1. Quan hệ NHAN_VIEN

5

2

Hình 1.2 Một đối tượng với các thuộc tính và phương thức

12

3

Hình 2.1. Các hệ thống lưu trữ và xử lý dữ liệu

21

4

Hình 2.2. Một kiểu đối tượng và một bảng đối tượng

24


5

Hình 2.3. Kiểu đối tượng được lưu trữ dưới dạng cột

24

6

Hình 2.4. Lưu trữ của bảng Person_table

25

7

Hình 2.5. Minh họa một dịng trong bảng sử dụng kiểu REF

26

8

Hình 2.6. Minh họa kiểu mảng trong một bảng

27

9

Hình 2.7. Một ví dụ về kế thừa

30


10

Hình 2.8. Cách tổ chức một đối tượng

31

11

12

Hình 3.1. Sơ đồ thực thể - liên kết của bài tốn quản lý nhân
viên

36

Hình 3.2. Chèn 10.000 bản ghi về phịng ban vào cả hai cơ sở
dữ liệu

43

13

Hình 3.3. Thời gian thực hiện khi chèn các bản ghi phịng ban

45

14

Hình 3.4. Thời gian thực hiện khi chèn các bản ghi nhân viên


48

15

16

Hình 3.5. So sánh thời gian thực hiện khi xóa dữ liệu phịng
ban
Hình 3.6. Thời gian thực hiện truy vấn 5 với CSDL có 5000
bản ghi

49

50


viii

17

18

19

20

21

22


23

Hình 3.7. Thời gian thực hiện truy vấn 5 với CSDL có 10000
bản ghi

51

Hình 3.8. Thời gian thực hiện truy vấn 6 với CSDL có 5000
bản ghi
Hình 3.9. Thời gian thực hiện truy vấn 6 với CSDL có 10000
bản ghi

52

52

Hình 3.10. Thời gian thực hiện của truy vấn 7 với CSDL có
10000 bản ghi

53

Hình 3.11. Thời gian thực hiện của truy vấn 7 với CSDL có
50000 bản ghi

54

Hình 3.12. Thời gian thực hiện truy vấn 8 với CSDL có
50.000 bản ghi


55

Hình 3.13. Thời gian thực hiện truy vấn 9 với CSDL có 10000
bản ghi

56


1

MỞ ĐẦU
1. Sự cần thiết của vấn đề nghiên cứu
Hệ quản trị CSDL với mơ hình quan hệ (RDBMS – Relation DataBase
Management system) đã có nhiều đóng góp vơ cùng to lớn trong các hệ thống
thông tin. Tuy nhiên, các hệ quản trị cơ sở dữ liệu quan hệ không phù hợp cho
các ứng dụng có các cấu trúc dữ liệu phức tạp, các đối tượng khơng có cấu
trúc, ví dụ như CAD/CAM, các hệ thống thông tin địa lý, các cơ sở dữ liệu đa
phương tiện, các hình ảnh âm thanh,...
Bên cạnh đó, việc sử dụng ngơn ngữ lập trình hướng đối tượng để thao
tác các CSDL quan hệ có những bất cập. Các hệ quản trị CSDL quan hệ
không hỗ trợ các khái niệm trong ngôn ngữ lập trình hướng đối tượng. Cho
nên chúng ta cần phải ánh xạ qua lại giữa ngơn ngữ lập trình hướng đối tượng
với CSDL quan hệ
Với mong muốn kiểm soát được các dữ liệu phức tạp cũng như mở
rộng được hệ thống trong những ứng dụng đa dạng hơn, mơ hình hướng đối
tượng đã ra đời và được áp dụng vào các ngơn ngữ lập trình, các giao diện
người dùng, các kỹ thuật thiết kế và các hệ CSDL. Cho đến nay chưa có một
chuẩn chính thức và chưa được chấp nhận bởi các tổ chức ISO, ANSI, nhưng
đã có một số rất ít hệ quản trị CSDL hướng đối tượng (OODBMS) được tung
ra thị trường như DB4O, VoltDB…Tuy nhiên, sự đón nhận của các

OODBMS là khá khiêm tốn vì những nhược điểm của nó là hỗ trợ đa người
dùng và xử lý truy vấn phức tạp kém.
Một giải pháp lai được đề xuất là sự kết hợp giữa CSDL quan hệ với
CSDL hướng đối tượng. Cách tiếp cận này sử dụng kiến trúc nền là cơ sở dữ
liệu quan hệ và áp dụng một số ưu điểm của hướng đối tượng vì thế nó được
gọi là cơ sở dữ liệu quan hệ - đối tượng. Điểm khác biệt lớn nhất giữa CSDL


2

quan hệ - đối tượng với CSDL quan hệ là khả năng lưu trữ và thao tác với
kiểu dữ liệu dạng đối tượng. Mơ hình này đã được khá nhiều hãng sản xuất hệ
quản trị cơ sở dữ liệu đón nhận và triển khai, có thể kể đến các sản phẩm nối
tiếng là DB2, Oracle và PostgreSQL.
Với mục đích tìm hiểu và nghiên cứu khả năng mơ hình hóa của cơ sở
dữ liệu quan hệ và cơ sở dữ liệu quan hệ - đối tượng cũng như khả năng áp
dụng chúng, theo đó đánh giá hiệu năng của các hệ quản trị dạng này qua một
thử nghiệm nhỏ. Được sự hướng dẫn của thầy giáo TS. Phan Anh Phong –
khoa Công Nghệ Thông Tin- Trường Đại học Vinh, tôi chọn đề tài “Nghiên
cứu về hiệu năng của cơ sở dữ liệu quan hệ - đối tượng” làm đề tài luận văn
thạc sĩ của mình.
Đề tài tập trung tìm hiểu các kiến thức cơ bản về cơ sở dữ liệu quan hệ,
cơ sở dữ liệu hướng đối tượng và cơ sở dữ liệu quan hệ - đối tượng. Sau đó
đánh giá hiệu năng khi thực hiện thêm, xóa và tìm kiếm trên một ứng dụng cụ
thể được thiết kế theo mô hình quan hệ và mơ hình quan hệ - đối tượng với
môi trường Oracle 11g.
2. Mục tiêu nghiên cứu
- Nghiên cứu khả năng mơ hình hóa của cơ sở dữ liệu quan hệ và các
hệ cơ sở dữ liệu dựa trên đối tượng
- Thử nghiệm đánh giá hiệu năng của cơ sở dữ liệu quan hệ - đối tượng

3. Đối tượng và phạm vi nghiên cứu
- Cơ sở dữ liệu quan hệ
- Cơ sở dữ liệu hướng đối tượng
- Cơ sở dữ liệu quan hệ - đối tượng
- SQL2, SQL3
- So sánh hiệu năng của một ứng dụng khi thiết kế theo mơ hình quan hệ
và mơ hình quan hệ - đối tượng khi thực hiện thêm, xóa và tìm kiếm


3

4. Kết cấu của luận văn
Nội dung nghiên cứu của luận văn này gồm có 3 chương, cụ thể như
sau
Chương 1 trình bày các kiến thức cơ bản về mơ hình dữ liệu, điều
khiển truy cập, quản lý giao dịch, SQL2 của CSDL quan hệ và nêu lên những
điểm yếu của mơ hình CSDL quan hệ. Trình bày các kiến thức cơ bản về mơ
hình dữ liệu, định danh đối tượng, đóng gói đối tượng, kế thừa, đa hình của
CSDL hướng đối tượng và nêu lên điểm yếu của CSDL hướng đối tượng.
Chương 2 nêu lên sự cần thiết của việc quản lý dữ liệu theo mơ hình
quan hệ - đối tượng; Trình bày mơ hình hóa dữ liệu của CSDL quan hệ đối
tượng; Trình bày các dữ liệu mới, các ràng buộc tồn vẹn, SQL3, mối liên
kết, đóng gói quan hệ - đối tượng, kế thừa, phương thức trên cơ sở dữ liệu
quan hệ - đối tượng.
Chương 3 mô tả bài tốn thử nghiệm. Sau đó, thiết kế CSDL theo các
mơ hình dữ liệu quan hệ và quan hệ - đối tượng; Thực hiện các thao tác cơ
bản trên các cơ sở dữ liệu đã thiết kế và đánh giá thời gian thực hiện với từng
truy vấn cụ thể



4

Chương 1. CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CƠ SỞ DỮ LIỆU HƯỚNG
ĐỐI TƯỢNG
1.1. Cơ sở dữ liệu quan hệ
1.1.1. Mơ hình dữ liệu
Mơ hình cơ sở dữ liệu là một hệ hình thức gồm hai phần: (i) Một hệ
thống ký hiệu để mô tả hay biểu diễn dữ liệu; và (ii) Một tập hợp các phép
toán để thao tác trên dữ liệu đó. Ngồi ra, một mơ hình dữ liệu có thể có khả
năng thiết lập các ràng buộc dữ liệu.
Khái niệm tốn học nền tảng cho mơ hình quan hệ là quan hệ là lý
thuyết tập hợp và logic vị từ bậc nhất. Hiểu theo nghĩa của lý thuyết tập hợp,
một quan hệ xác định trên tập thuộc tính {Ai} là một tập con của tích đề-các
của các miền giá trị của các thuộc tính đó. Trong đó miền giá trị là một tập
các giá trị, có thể xem như một kiểu dữ liệu (data type). Ví dụ tập các số
nguyên là một miền trị, tập các xâu kí tự tạo thành tên người trong tiếng anh
có độ dài khơng q 30 kí tự là một miền, tập hai số {0, 1} cũng là một miền
giá trị.
Mỗi phần tử của quan hệ gọi là một bộ (tuples). Quan hệ n - ngơi là tập
con của tích đề - các D1 x D2 x. .. x Dn của n miền. Khi đó mỗi bộ của quan hệ
có n thành phần (d1, d2, ..., dn) với di  Di được gọi là một n bộ.
Về trực quan, có thể xem một quan hệ như một bảng (table), trong đó
mỗi hàng (row) là một bộ và mỗi cột (column) tương ứng lấy giá trị trên một
miền. Cột thường được đặt tên và gọi là thuộc tính.
Tập các tên thuộc tính cho một quan hệ được gọi là một lược đồ quan
hệ. Nếu chúng ta đặt tên cho một quan hệ là R và lược đồ quan hệ của nó có
các thuộc tính A1, A2, ... , An thì lược đồ quan hệ này có thể viết dưới dạng
R(A1, A2, ... , An) hoặc R ={A1, A2, ... , An } hoặc R = (A1 A2 ... An ).



5

Như vậy khi ta nói cho một lược đồ quan hệ R(A1, A2, ... , An) có nghĩa
là ta đã cho một tập thuộc tính A1, A2, ... , An và trên đó đã tồn tại một quan
hệ R.
Hình 1.1 cho thấy một quan hệ NHAN_VIEN có các thuộc tính
MANV, HO_TEN, NAM_SINH, NOI_LAM_VIEC và LUONG là một quan
hệ 5 ngôi.
NHAN_VIEN

MANV

HO_TEN

NAM_SINH

NOI_LAM_VIEC LUONG

t1

Nv1

Lê Văn A

1973

Khoa CNTT

425


t2

Nv2

Hồng Thị B

1979

Phịng HC

390

t3

Nv3

Lê Văn Sơn

1972

Khoa CNTT

425

Hình 1.1. Quan hệ NHAN_VIEN
t1 = (Nv1, Lê Văn A , 1973, Khoa CNTT, 425) là một bộ (5 - bộ) của

quan hệ NHAN_VIEN.
Có thể viết lược đồ quan hệ này như sau: NHAN_VIEN (MANV,
HO_TEN, NAM_SINH, NOI_LAM_VIEC, LUONG).

Một quan hệ gồm 2 phần, phần thứ nhất là lược đồ và phần thứ hai là
phần thể hiện. Lược đồ thường ổn định và được xem như là cấu trúc của quan
hệ. Thể hiện là nội dung của quan hệ. Một thể hiện có thể xem là một tập hợp
các dịng hay các bộ, thể hiện của một cơ sở dữ liệu thay đổi theo thời gian.
Mơ hình quan hệ là mơ hình phổ biến hiện nay được hầu hết các hệ quản trị
CSDL lựa chọn để phát triển. Một CSDL quan hệ là một tập các quan hệ hoặc
các bảng.
1.1.2. Điều khiển truy cập
Trong một cơ sở dữ liệu quan hệ kiểm soát truy cập được quản lý bằng
cách sử dụng SQL cấp và thu hồi quyển trên các đối tượng cơ sở dữ liệu
(bảng biểu, views, thủ tục, vai trị). Ví dụ, một tài khoản người sử dụng cơ sở
dữ liệu có thể tồn tại trong cơ cở dữ liệu và quản trị viên có thể thu hồi những
quyền của người này trên các views, thủ tục hoặc cột dữ liệu. Quản trị viên


6

một cung cấp cho người dùng quyền truy cập cơ sở dữ liệu để thực hiện các
thủ tục. Điều này cung cấp cơ sở dữ liệu cho người dùng khả năng để tạo ra
các thủ tục và cho phép nhiều người dùng trong cơ sở dữ liệu để truy cập
chúng.
Cơ chế điều khiển truy cập được cung cấp bởi hệ thống cơ sở dữ liệu
quan hệ cho phép các quản trị viên có thể dễ dàng quản lý các yêu cầu của
người sử dụng để truy cập dữ liệu và các quy định nghiệp vụ liên quan đến dữ
liệu người dùng có thể truy cập vào.
1.1.3. Quản lý giao dịch
Một giao dịch là một "dãy các hành động mà tạo thành một đơn vị hợp
lý duy nhất của công việc ". Ví dụ, chuyển 500 USD từ tài khoản A sang tài
khoản B (giả thiết rằng tài khoản A có số dư lớn hơn 500 USD). Khi đó
CSDL phải thực hiện 2 hành động cập nhật, một là trừ 500 USD số dư ở tài

khoản A và hai là thêm 500 USD số dư ở tài khoản B. Điều quan trọng là cả
hai hành động cập nhật này phải hoặc là hồn thành hoặc cả hai cùng thất bại,
nếu khơng sẽ dẫn đến sai sót. Điều này được gọi là tính chất ngun tử của
các giao dịch. Ngồi ra, điều quan trọng nữa là nếu có tài khoản khác cũng
chuyển tiền đến tài khoản A thì mỗi giao dịch được xử lý một cách riêng biệt,
điều này được gọi là tính chất độc lập của mỗi giao dịch, đảm bảo rằng giao
dịch sẽ không bị ảnh hưởng bởi các giao dịch khác đang chạy đồng thời.
Khi việc chuyển tiền thành cơng thì các dữ liệu đó sẽ tồn tại “vĩnh viễn” ngay
cả khi mất điện hoặc hệ thống bị lỗi. Điều này được gọi là tính bền vững của
giao dịch. Một tính chất quan trọng của giao dịch là nhất qn. Tính nhất
qn là u cầu duy trì sự đúng đắn của dữ liệu trước và sau khi giao dịch.
Quản lý giao dịch trong cơ sở dữ liệu quan hệ với sự hỗ trợ cho các tính
chất ACID cung cấp cho các nhà phát triển ứng dụng và cơ sở dữ liệu quản trị
bảo trì và kiểm sốt đồng thời và khả năng chịu lỗi.


7

1.1.4. SQL2
SQL là ngôn ngữ của CSDL quan hệ, phi thủ tục, tức là nó chỉ trả lời
cho câu hỏi “làm cái gì”. SQL được chuẩn hóa bởi ANSI/ISO vào 1992, gọi
là SQL92 hay còn gọi là SQL2. SQL2 gồm 3 phần, phần thứ nhất là DDL
(Data Definition Language), đây là phần tạo lập, xóa và sửa đổi các bảng.
Phần thứ 2 là DML (Data Manipulation Language), đây là phần thao tác với
các bảng. Phần thứ 3 là DCL (Data Control Language), đây là phần điều
khiển quyền truy cập vào các đối tượng trong CSDL quan hệ.
Các lệnh DDL (Data Definition Language) là: CREATE – tạo bảng,
ALTER – thay đổi cấu trúc và các ràng buộc, DROP – xóa. Các lệnh DML
(Data Manipulation Language) là: INSERT – thêm bộ/dòng vào bảng,
DELETE – xóa dịng trong bảng, UPDATE – sửa nội dung của bảng,

SELECT – tìm kiếm trong các bảng. Các lệnh DCL (Data Control Language)
là: GRANT, REVOKE, …
Các phiên bản SQL bao gồm là: SQL-86 (ANSI), SQL-89 (ANSI/ISO),
SQL-92 (ANSI/ISO: chuẩn được sử dụng phổ biến trong các DBMS quan hệ),
SQL-99 (mở rộng cho quan hệ - đối tượng), SQL-2003 (hỗ trợ XML), SQL2008 (dữ liệu time), SQL-2011
Giả sử chúng ta cần tạo các bảng sau:
Sailors

Reserves

sid

bid

day

22

101

101015

55

103

111215

sid
11

22
33
55

sname
Xuan
Ha
Thu
Dong

rating
7
7
8
10

age
26
26
28
28


8

Boats
bid

bname


color

101

A

Red

102

B

Blue

103

C

Green

Chúng ta thực hiện các câu lệnh sau:
CREATE TABLE Sailors
(sid

INT primary key,

sname CHAR(20),
rating INT,
age


INT);

Sau khi thực hiện câu lệnh trên ta sẽ có bảng sau:
Sailors sid

sname

rating

age

Tương tự với các bảng còn lại:
CREATE TABLE Boats
(bid

INT primary key,

bname CHAR(20),
color CHAR(30));
CREATE TABLE Reserves
(sid INT, bid INT, date DATE,
PRIMARY KEY (sid,bid,date),
FOREIGN KEY (sid)REFERENCES
Sailors);

Sau đó chúng ta thực hiện lệnh chèn ví dụ đối với bảng Boats:
INSERT INTO Boats(bid,bname, color)
VALUE (101,’A’, ‘Red’



9

INSERT INTO Boats(bid,bname, color)
VALUE (102,’B’, ‘Blue’
INSERT INTO Boats(bid,bname, color)
VALUE (103,’C’, ‘Green’);

Chúng ta sẽ có bảng:
Boats

bid

bname

color

101

A

Red

102

B

Blue

103


C

Breen

Truy vấn cơ sở dữ liệu quan hệ:
SELECT [DISTINCT]*/các thuộc tính/biểu thức/hàm gộp
FROM

các quan hệ

[WHERE điều kiện]

Trong đó: Các quan hệ là một danh sách tên các quan hệ, còn điều kiện
là một biểu thức logic, có thể kết hợp với các phép tốn AND, OR, NOT
Truy vấn trên một bảng:
SELECT * FROM Sailors;
SELECT *
FROM

Sailors WHERE

SELECT rating,age FROM

age>22;
Sailors;

SELECT DISTINCT rating,age FROM Sailors;

Truy vấn trên một bảng với hàm gộp: Các hàm gộp bao gồm: MAX(),
MIN(), AVG(), COUNT(), SUM(),…. Hàm COUNT() chấp nhận giá trị

NULL, các hàm khác bỏ qua. Hàm SUM(), AVG() có đối là kiểu dữ liệu số.
Cách truy vấn trên một bảng với hàm gộp. Ví dụ cho biết có bao nhiêu thuyền
màu blue? Có câu lệnh như sau:
SELECT COUNT(*)


10

Boats WHERE color=‘blue’

FROM

Gom nhóm và hàm gộp. Hàm gộp có thể tác động lên toàn bộ bảng,
hoặc một phần của bảng. Tuy nhiên, hàm gộp có thể tác động vào mỗi nhóm
trong bảng. Ví dụ như cho biết tuổi trung bình của các thủy thủ ở mỗi thứ
hạng (phải kết hợp HÀM GỘP với GROUP BY), chúng thực hiện câu lệnh
sau:
SELECT

rating,AVG(age) FROM

Sailors

GROUP BY rating;

Để truy vấn trên nhiều bảng trước hết chúng ta phải nối các bảng cách
nối các bảng như sau:
SELECT

sname


FROM

Sailors,Reserves

WHERE

Sailors.sid=Reserves.sid

Cách nối các bảng sử dụng biến bộ như sau:
SELECT

S.sname

FROM

Sailors S, Reserves R

WHERE

S.sid=R.sid AND R.bid=103;

Truy vấn lồng / truy vấn con. SQL cho phép mệnh đề WHERE chứa
một truy vấn khác. Ví dụ
SELECT

S.sname FROM

WHERE


S.sid IN (SELECT

Sailors S
R.sid

FROM

Reserves R

WHERE

R.bid=103);

1.1.5. Điểm yếu của mơ hình dữ liệu quan hệ
Các nhà phát triển hệ thống thông tin thường sử dụng cơ sở dữ liệu
quan hệ để lưu trữ bởi sự đơn giản và kinh nghiệm làm việc của họ. Tuy
nhiên, theo nhiều nhà nghiên cứu chỉ ra rằng, các mơ hình quan hệ khơng đầy
đủ khả năng để mơ hình một cách tốt nhất thế giới thực vốn rất năng động


11

cũng như các mối quan hệ tồn tại trong các ứng dụng. Chẳng hạn, sẽ là khó
khăn khi sử dụng mơ hình quan hệ cho việc lưu trữ và xử lý với dữ liệu khơng
truyền thống, khơng có cấu trúc, chẳng hạn dữ liệu như đồ họa, dữ liệu đa
phương tiện.... Mơ hình quan hệ cũng khó gặp những khó khăn khi lưu trữ và
thao tác các kiểu dữ liệu phức tạp như các đối tượng lồng nhau, các thuộc tính
đa giá trị, kiểu do người dùng định nghĩa, và các mối quan hệ kế thừa.
Trong mơ hình quan hệ việc chuẩn hóa cơ sở dữ liệu về các dạng chuẩn
làm tăng số bảng một số bảng dẫn đến kém hiệu với quả thời gian xử lý truy

vấn. Ngoài ra, việc chuyển đổi kế thừa các bảng quan hệ cũng làm giảm tổng
thể hiệu suất ứng dụng bởi vì nó liên quan đến bảng tham gia.
1.2. Cơ sở dữ liệu hướng đối tượng
1.2.1. Đối tượng và định danh đối tượng
Hệ quản trị CSDL quan hệ sử dụng mơ hình quan hệ để biểu diễn dữ
liệu. Ở đây dữ liệu được tổ chức lưu trữ thành các bảng (tables). Mỗi bộ dữ
liệu (record, tuple) mô tả cho một thực thể được xác định bởi thuộc tính khố
(primary key). Thuộc tính khố có thể được sử dụng để xác định các bộ dữ
liệu ở những bảng khác được gọi là khố ngồi (foreign key)
Trong mơ hình dữ liệu hướng đối tượng, thơng tin được biểu diễn thành
các đối tượng tương tự các đối tượng trong ngơn ngữ lập trình hướng đối
tượng. Dữ liệu của các thuộc tính mơ tả đặc trưng của các thực thể (đối
tượng) và các phương thức mô tả hành vi ứng xử của đối tượng.
Mỗi một đối tượng có một định danh đối tượng duy nhất, khơng thay
đổi trong vịng đời của nó. Nó được hệ thống tạo ra khi tạo đối tượng, không
thay đổi được và độc lập với việc thay đổi giá trị đối tượng. Tương tự nhưng
khơng hồn tồn giống với primary key trong RDBMS
Đối tượng là một thực thể phân biệt, bao gồm các thành phần đó là:
Các thuộc tính mơ tả trạng thái (giá trị hiện tại) của đối tượng trong thế giới


12

thực và các (hành vi/phép tốn) kết hợp với nó. Đối tượng tương tự với Thực
thể, tuy nhiên đối tượng đóng gói cả trạng thái và hành vi cịn thực thể chỉ mơ
hình hóa trạng thái
Một trạng thái đối tượng như đối tượng người trong hình dưới đây,
được định nghĩa bởi các tên thuộc tính, địa chỉ và SSN. Trạng thái của đối
tượng bao gồm tập hợp các phương thức được sử dụng để thay đổi địac chỉ
của đối tượng, chẳng hạn như changeAddress () trong hình dưới đây. Khái

niệm về một đối tượng rất đơn giản, nhưng, đồng thời, rất mạnh. Mỗi đối
tượng có thể được định nghĩa và duy trì độc lập với những người khác
Person
Name
Add
SSN
ChangeAddress ()
Hình 1.2 Một đối tượng với các thuộc tính và phương thức

Thuộc tính mơ tả trạng thái hiện tại của đối tượng: Thuộc tính gồm
thuộc tính đơn và thuộc tính phức hợp. Thuộc tính đơn có miền giá trị ngun
tử như interger, string, … cịn thuộc tính phức hợp có miền trị là kiểu tập
(collection) và/hoặc kiểu tham chiếu (dẫn trỏ). Thuộc tính đa trị. Thuộc tính
có kiểu tham chiếu biểu diễn mối liên kết. Một đối tượng có các thuộc tính
phức hợp thì gọi là đối tượng phức hợp.
1.2.2. Đóng gói đối tượng
Đóng gói đối tượng được hiểu là việc gộp các thuộc tính và các phương
thức vào trong một cấu trúc lớp cho phép quản lý truy cập. Một chương trình
đối tượng có thể trao đổi với các đối tượng khác bằng cách gửi và nhận thông


13

điệp (message). Các phương thức được cung cấp bởi các đối tượng sẽ xác
định một tập thông điệp cần trao đổi với nhau. Ý nghĩa của việc đóng gói là
độc lập dữ liệu.
Đóng gói đối tượng bao gồm việc ẩn thơng tin từ mơ-đun khác vì vậy
mà người dùng hay các chương trình khơng thể nhìn thấy những phương pháp
có chứa. Đóng gói các nhóm dữ liệu và các phương pháp cùng nhau tạo
ra một ranh giới được xác định rõ xung quanh một đối tượng. Điều này cho

phép các người thiết kế phần mềm sử dụng truy cập công cộng hoặc riêng tư
để điều khiển truy cập vào đối tượng các biến và các phương thức.
1.2.3. Kế thừa
Lớp mới có thể mở rộng, kế thừa những lớp có sẵn (super-class). Ngồi
những thuộc tính, phương thức được kế thừa, ta có thể bổ sung thêm những
thuộc tính, phương thức mới. Quan hệ kế thừa là quan hệ kiểu “thành viên”
(”is-a“), nghĩa là mỗi đối tượng của lớp con cũng là đối tượng của lớp cha và
ngược lại đối tượng của lớp cha đại diện cho mội đối tượng của lớp con. Quan
hệ kế thừa tuân theo qui luật 100%, nghĩa là các đối tượng của lớp con đều có
tất cả các mối quan hệ giống như đối tượng của lớp cha đối với lớp khác. Có
2 loại đơn kế thừa hoặc là đa kế thừa.
Ví dụ, là ứng dụng trong một trường đại học có thể tạo ra một lớp cha
về con người và phân lớp sinh viên và giảng viên mà kế thừa từ lớp người.
Các thuộc tính từ một lớp cha được thừa kế bởi một lớp con. Trong ví
dụ trường đại học, tất cả các thuộc tính trong lớp người có sẵn giảng viên và
sinh viên các lớp.
Ngoài các lớp được kế thừa từ một lớp cha, lớp con cũng có thể thừa kế
từ nhiều lớp cha. Điều này được gọi là đa kế thừa. Đối với trong trường đại
học, các phân lớp giảng viên hướng dẫn là một giảng viên và sinh viên do đó
kế thừa từ cả hai lớp cha. Sử dụng kế thừa cho phép thiết kế phần mềm để


14

phát triển các ứng dụng mã ít hơn kể từ khi một lớp cha có thể xác định các
thuộc tính cho phân lớp.
1.2.4. Đa hình
Đa hình hay cịn gọi là tương ứng bội. Một lời gọi hàm có nội dung
thực hiện khác nhau (chẳng hạn, số tham số, kiểu dữ liệu,…), và mỗi đối
tượng nhận được sẽ thực hiện theo ngữ cảnh riêng của mình. Khái niệm đa

hình liên quan chặt chẽ với khái niệm kế thừa. Các phương thức của các lớp
kế thừa có thể định nghĩa lại (viết đè – Overriding) những phương thức của
lớp cha.
Trong một lớp, có thể có những phương thức cùng tên (name) nhưng
cho phép định nghĩa nhiều nội dung thực hiện khác nhau theo cơ chế nạp
chồng (Overloading). Để thực hiện được tính đa hình, trong thì ngơn ngữ lập
trình phải hỗ trợ liên kết động (Dynamic Binding).
1.2.5. OO DBMS với OOPL
Một hệ quản trị CSDL hướng đối tượng (OODBMS) dựa vào đối
tượng, đó là sự kết hợp của DBMS và OOPL (ngơn ngữ lập trình hướng đối
tượng). Sự khác nhau giữa OOPL và OODBMS là:
- OOPL– Đối tượng chỉ tồn tại trong khi chương trình thực thi
(transient object);
- OODBMS – Đối tượng chỉ tồn tại bền vững khi chương trình kết
thúc, được lưu trữ lâu dài trên các thiết bị nhớ thứ cấp (persistent object)
- OODBMS – Chia sẻ đối tượng giữa các chương trình, các ứng dụng
Điểm yếu của cơ sở dữ liệu hướng đối tượng là liên kết các đối tượng
qua OID nên chi phí tìm kiếm rất cao, hơn nữa khả năng hỗ trợ đa người dùng
chưa tốt. Với những lý do đó nên các OOBDMS thương mại chưa được phát
triển nhiều mà chỉ tập trung vào từng lớp bài toán cụ thể


15

1.3. So sánh RDBMS với OODBMS
1.3.1. Khả năng mơ hình hóa dữ liệu
Đây là một vấn đề được quan tâm rất nhiều. Sự khác biệt cơ bản giữa
hai kiểu mô hình hóa dữ liệu này đó là đối với mơ hình định hướng đối tượng
thì đóng gói đối tượng được bao gồm cả hai là trạng thái và hành vi, trong khi
mơ hình quan hệ chỉ có trạng thái là được chứng minh.

Như chúng ta đều biết một cơ sở dữ liệu quan hệ được tạo thành từ các
quan hệ hoặc là bảng, một quan hệ hay một bảng là tập hợp các bộ hay các
dòng. Trong khi một cơ sở dữ liệu hướng đối tượng được tạo thành từ các lớp.
Do đó, một cơ sở dữ liệu quan hệ sẽ có chứa một quan hệ gọi là SINH
VIÊN, với bộ chứa chứa thông tin về mỗi sinh viên, trong khi một cơ sở dữ
liệu quan hệ sẽ chứa một lớp được gọi là STUDENT, Với đối tượng chứa
thông tin về mỗi sinh viên
Cần lưu ý rằng có khả năng chuyển đổi mơ hình đối tượng thành một
mơ hình quan hệ.
Trong tình huống như vậy, mỗi lớp tương ứng với một quan hệ, các
thuộc tính của một lớp cụ thể sẽ trở thành các thuộc tính tương ứng với một
tham chiếu và cùng một thời điểm, mỗi đối tượng cụ thể trong một lớp sẽ có
một bộ tương ứng trong một quan hệ.
Trong một cơ sở dữ liệu quan hệ, các thành phần của một bộ phải là các
kiểu nguyên thủy (strings, integer, real, etc), trong một cơ sở dữ liệu hướng
đối tượng, các thành phần của một đối tượng có thể là những kiểu phức tạp
(sets, tuples, objects). Bảng 1.1 trình bày một so sánh các khái niệm chính
được sử dụng trong đối tượng và mơ hình hóa quan hệ của dữ liệu


×