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

Nghiên cứu một số khía cạnh lý thuyết trong mô hình CSDL quan hệ

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 (222.76 KB, 11 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
==============

VŨ CHÍ QUANG

NGHIÊN CỨU
MỘT SỐ KHÍA CẠNH LÝ THUYẾT
TRONG MÔ HÌNH CSDL QUAN HỆ

LUẬN VĂN THẠC SĨ

HÀ NỘI – 2007


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ

Vũ Chí Quang

NGHIÊN CỨU MỘT SỐ KHÍA CẠNH LÝ THUYẾT
TRONG MÔ HÌNH CSDL QUAN HỆ

Ngành: Công nghệ thông tin
Mã số: 1.01.10

LUẬN VĂN THẠC SĨ

NGƢỜI HƢỚNG DẪN KHOA HỌC:
PGS. TS. HỒ THUẦN


Hà Nội – 2007


LỜI CẢM ƠN
Tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới thầy giáo PGS. TS.
Hồ Thuần, ngƣời đã tận tình giúp đỡ, hƣớng dẫn và động viên tôi trong suốt quá
trình nghiên cứu và thực hiện luận văn này.
Tôi xin chân thành cảm ơn các thầy giáo, cô giáo Khoa Công nghệ thông
tin cùng các thầy cô giáo Trƣờng Đại học Công nghệ đã trang bị cho tôi những
kiến thức khoa học và tạo điều kiện thuận lợi để tôi hoàn thành luận văn này.
Cuối cùng tôi xin cảm ơn các đồng nghiệp, bạn bè và gia đình đã luôn
động viên và tạo điều kiện để tôi hoàn thành khoá học và bản luận văn này.
Xin chân thành cảm ơn!
Hà nội, tháng 11 năm 2007
Vũ Chí Quang


MỤC LỤC
MỞ ĐẦU .................................................................................................................... 3
Chƣơng I - LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ ....................... 5
1.1. Phƣơng pháp thiết kế Bottom – Up .......................................................................... 5

1.1.1. Các khái niệm cơ bản: ........................................................................... 5
1.1.2. Các phép toán trong mô hình quan hệ................................................... 7
1.1.3. Phụ thuộc hàm. ...................................................................................... 9
1.1.4. Lý thuyết chuẩn hoá. ........................................................................... 18
1.2. Phƣơng pháp thiết kế Top – Down............................................................... 21
1.3. Quá trình thiết kế cơ sở dữ liệu .................................................................... 26
Chƣơng II - LÝ THUYẾT KẾT NỐI VÀ NỬA KẾT NỐI. ỨNG DỤNG TRONG TỐI
ƢU HOÁ CÂU HỎI. ............................................................................ 28

2.1. Lý thuyết kết nối và một số kết quả của lý thuyết kết nối...................................... 28

2.1.1 Kết nối không mất thông tin. .............................................................. 28
2.1.2 Kết nối mất thông tin........................................................................... 30
2.2. Một số tính chất, ý nghĩa của nửa kết nối ứng dụng trong cơ sở dữ liệu phân tán. 39

2.2.1 Giới thiệu phép nửa kết nối. ................................................................ 39
2.2.2 Các tính chất của phép nửa kết nối. .................................................... 41
2.2.3 ý nghĩa của phép nửa kết nối ứng dụng trong CSDL phân tán ........... 42
2.3. Tối ƣu hoá câu hỏi trong cơ sở dữ liệu phân tán. ................................................... 42
2.3.1 Khái quát về cơ sở dữ liệu phân tán .................................................... 42

2.3.2 Một số nguyên lý chung của tối ƣu hoá câu hỏi. ................................ 52
2.3.3 Tối ƣu hoá câu hỏi. ............................................................................. 71
Chƣơng III - MỘT SỐ BÀI TOÁN NP-C TRONG MÔ HÌNH QUAN HỆ. ........ 106
3.1. Tổng quan về thuật toán và đánh giá thuật toán ......................................... 106
3.1.1 Khái niệm thuật toán ........................................................................ 106
3.1.2 Các tính chất của thuật toán .............................................................. 107
3.1.3 Hai mô hình tính toán ...................................................................... 108
3.1.4 Khái niệm độ phức tạp thuật toán ..................................................... 108
3.1.5 Phép quy dẫn (dẫn về đƣợc) ............................................................. 110
3.1.6 Phân lớp bài toán theo độ phức tạp ................................................... 111
3.1.7 Cấu trúc của lớp P, NP ...................................................................... 112
3.2. Một số bài toán NP-C trong mô hình quan hệ............................................ 114
3.2.1 Bài toán siêu khoá có lực lƣợng không quá m .................................. 114
3.2.2 Bài toán quyết định thuộc tính khoá hay không khoá....................... 117
KẾT LUẬN ............................................................................................................ 120
TÀI LIỆU THAM KHẢO ...................................................................................... 121



DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Bức tranh về trật tự các dạng chuẩn .......................................................... 18
Hình 1.2 Biểu đồ E-R cho CSDL công ty ............................................................... 24
Hình 1.3 Quá trình thiết kế một cơ sở dữ liệu .......................................................... 27
Hình 2.1 Đồ thị biểu diễn lƣợc đồ quan hệ R ........................................................... 31
Hình 2.2 Đồ thị con bị cấm ...................................................................................... 34
Hình 2.3 Mô phỏng quan hệ giữa các đỉnh ............................................................. 36
Hình 2.4: Kiến trúc các lƣợc đồ của một CSDL phân tán ........................................ 46
Hình 2.5: Kiến trúc chức năng của một hệ QTCSDL phân tán ................................ 47
Hình 2.6: Các kiểu phân đoạn của một quan hệ ....................................................... 49
Hình 2.7 Lƣợc đồ tổng quát xử lý truy vấn phân tán ............................................... 59
Hình 2.8 Các đồ thị quan hệ ..................................................................................... 63
Hình 2.9 Đồ thị truy vấn không liên thông ............................................................... 63
Hình 2.10 Ví dụ về cây truy vấn............................................................................... 64
Hình 2.11 Cây truy vấn tƣơng đƣơng ....................................................................... 65
Hình 2.12 Cây truy vấn đã đƣợc viết lại................................................................... 66
Hình 2.13 Cây truy vấn sau khi thay thế .................................................................. 68
Hình 2.14 Rút gọn phân đoạn ngang (với phép chọn) ............................................. 68
Hình 2.15 Rút gọn phân đoạn ngang (với phép nối) ................................................ 69
Hình 2.16 Rút gọn phân đoạn dọc ............................................................................ 70
Hình 2.17 Rút gọn phân đoạn hỗn hợp ..................................................................... 71
Hình 2.18 Quá trình tối ƣu hoá truy vấn .................................................................. 72
Hình 2.19 Các cây nối tƣơng đƣơng......................................................................... 73
Hình 2.20 Đồ thị nối của cây truy vấn...................................................................... 84
Hình 2.21 Các thứ tự nối khác nhau ......................................................................... 84
Hình 2.22 Đồ thị nối của cây truy vấn phân tán ....................................................... 86
Hình 2.23 Truy vấn mẫu và số liệu thống kê ........................................................... 99
Hình 2.24 Đồ thị câu truy vấn đơn và số liệu thống kê .......................................... 102
Hình 3.1 Sơ đồ minh hoạ các lớp bài toán NP, NP-C, NP-Hard ............................ 114



MỞ ĐẦU
Trong lĩnh vực công nghệ thông tin, cơ sở dữ liệu là một chuyên ngành đƣợc
đông đảo ngƣời làm công nghệ thông tin quan tâm, nghiên cứu và ứng dụng. Ra đời từ
những năm 60 của thế kỷ XX đến nay, các hệ cơ sở dữ liệu ngày càng phát triển và
hoàn thiện, nhiều thế hệ quản trị CSDL đã ra đời, tạo ra nhiều sản phẩm ứng dụng
trong khoa học kỹ thuật, các ngành kinh tế cũng nhƣ trong đời sống xã hội.
Việc nghiên cứu CSDL trên thế giới và ở trong nƣớc đã và đang phát triển ngày
càng phong phú, đa dạng. Từ những năm 70, E.F. Codd đã đƣa ra mô hình dữ liệu
quan hệ tạo một cơ sở vững chắc cho các vấn đề nghiên cứu về CSDL. Với ƣu điểm về
tính cấu trúc và khả năng hình thức hoá phong phú, CSDL quan hệ dễ dàng mô phỏng
các hệ thống thông tin đa dạng trong thực tiễn, làm tăng khả năng xử lý, quản trị và
khai thác dữ liệu, phục vụ đƣợc hầu hết các yêu cầu của ngƣời sử dụng. Trên thực tế,
đã có nhiều hệ quản trị CSDL xây dựng trên mô hình CSDL quan hệ đƣợc sử dụng
phổ biến trên thị trƣờng nhƣ: DBASE, FOXPRO, ORACLE, MS SQL,...
Cho đến nay CSDL quan hệ đã thu đƣợc rất nhiều thành tựu sâu sắc cả về
phƣơng diện lý thuyết và ứng dụng. Phần lớn các hệ quản trị CSDL sử dụng trong thực
tiễn đƣợc thiết kế trong mô hình quan hệ, rất nhiều sản phẩm phần mềm đƣợc tạo ra
vẫn đang sử dụng rộng rãi và có hiệu quả. Việc tiếp tục nghiên cứu các khía cạnh lý
thuyết trong mô hình CSDL quan hệ sẽ tạo điều kiện thuận lợi cho việc nghiên cứu và
phát triển các mô hình cơ sở dữ liệu mới nhƣ: CSDL phân tán, CSDL suy diễn.
Hiện nay đã có nhiều vấn đề về CSDL đƣợc nghiên cứu và giải quyết. Với mục
đích tiếp tục nghiên cứu một số khía cạnh lý thuyết trong mô hình CSDL quan hệ để
nâng cao khả năng ứng dụng của các hệ CSDL, luận văn này tập trung nghiên cứu về
các vấn đề:
- Nghiên cứu sâu sắc về lý thuyết kết nối và nửa kết nối, ứng dụng lý thuyết kết
nối và nửa kết nối trong tối ƣu hoá câu hỏi, đặc biệt là trong tối ƣu hoá câu hỏi phân
tán.
- Nghiên cứu độ phức tạp của các thuật toán trong CSDL, giới thiệu một số bài
toán trong CSDL là NP-C.

Nội dung của bản luận văn này đƣợc chia làm 3 chƣơng:


Chƣơng 1: Lý thuyết thiết kế cơ sở dữ liệu quan hệ. Chƣơng này trình bày
về các phƣơng pháp thiết kế cơ sở dữ liệu quan hệ, quy trình thiết kế và các vấn đề liên
quan nhƣ: các phép toán trong mô hình quan hệ, phụ thuộc hàm và chuẩn hoá.
Chƣơng II - Lý thuyết kết nối và nửa kết nối. Ứng dụng trong tối ƣu hoá
câu hỏi. Đây là chƣơng chính của luận văn; trong chƣơng này trình bày các vấn đề về
lý thuyết kết nối nhƣ: kết nối không mất thông tin, kết nối mất thông tin, điều kiện cần
và đủ để kết nối không mất thông tin. Phần tiếp theo trình bày về phép nửa kết nối,
tính chất và ý nghĩa của nửa kết nối ứng dụng trong cơ sở dữ liệu phân tán. Phần cuối
cùng trình bày các vấn đề ứng dụng lý thuyết kết nối và nửa kết nối trong tối ƣu hoá
câu hỏi phân tán nhƣ: khái quát về CSDL phân tán, các vấn đề về tối ƣu hoá câu hỏi,
các thuật toán để tối ƣu hoá câu hỏi trong môi trƣờng tập trung và môi trƣờng phân
tán.
Chƣơng III - Một số bài toán NP-C trong mô hình quan hệ. Chƣơng này
trình bày một khía cạnh lý thuyết trong cơ sở dữ liệu, đó là đánh giá độ phức tạp của
các thuật toán trong các hệ cơ sở dữ liệu, vấn đề này ít đƣợc đề cập trong các sách về
CSDL và chỉ đƣợc giới thiệu trong các bài báo hoặc trong các sách nghiên cứu sâu về
lý thuyết thuật toán và độ phức tạp của thuật toán. Ngoài ra trong chƣơng này còn giới
thiệu một số bài toán cụ thể trong cơ sở dữ liệu là NP-C.
Mặc dù đã rất cố gắng để hoàn thành bản luận văn này, nhƣng chắc chắn vẫn
còn thiếu sót. Rất mong đƣợc sự góp ý của các thầy cô giáo và các bạn.


Chƣơng I - LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ
Trong lý thuyết thiết kế cơ sở dữ liệu quan hệ có hai cách tiếp cận, cách thứ
nhất thiết kế theo phƣơng pháp Bottom – Up (dƣới - lên), cách thứ hai thiết kế theo
phƣơng pháp Top – Down (trên – xuống).
Theo phƣơng pháp Bottom – Up: Mục đích của việc thiết kế cơ sở dữ liệu quan

hệ là đƣa ra một tập các lƣợc đồ quan hệ để lƣu trữ các thông tin của một tổ chức xí
nghiệp, ngân hàng, đại học, ... một cách không dƣ thừa đồng thời cũng cho phép cập
nhật, truy vấn dễ dàng. Để đạt đƣợc mục đích đó khi nghiên cứu và khảo sát bài toán
quản lý trong thực tiễn; ta phải xác định các thuộc tính cần quản lý, mối quan hệ giữa
các thuộc tính (các phụ thuộc hàm); tiếp theo là chuẩn hoá các lƣợc đồ quan hệ, thực
chất là thực hiện các phép tách để có đƣợc các lƣợc đồ theo các dạng chuẩn (1NF,
2NF, 3NF, BCNF, 4NF, 5NF); tuy nhiên các phép tách phải đảm bảo các điều kiện
nhƣ: bảo toàn thuộc tính, bảo toàn phụ thuộc hàm, không mất mát thông tin.
Theo phƣơng pháp Top – Down: Khi nghiên cứu và khảo sát bài toán quản lý
trong thực tiễn; ta phải xác định các đối tƣợng của cơ sở dữ liệu và mối liên hệ giữa
các đối tƣợng; tiếp theo là mô hình hoá thành các kiểu thực thể, kiểu liên kết, xây dựng
lƣợc đồ thực thể liên kết ER; cuối cùng là áp dụng các nguyên tắc chuyển từ mô hình
thực thể liên kết ER sang mô hình quan hệ.
1.1. Phƣơng pháp thiết kế Bottom – Up
1.1.1. Các khái niệm cơ bản:
- Thuộc tính: Thuộc tính của một quan hệ là cột của bảng quan hệ. Trong mô
hình quan hệ không cho phép thuộc tính phức hợp, đa trị. Chỉ đƣợc là thuộc tính đơn,
đơn trị.
- Miền giá trị: Là giới hạn dữ liệu của thuộc tính ký hiệu DOM(A) trong đó A
là một thuộc tính.
Ví du: Với thuộc tính Lƣơng miền giá trị là: 0 – 1000000
- Lược đồ quan hệ: Mô tả cấu trúc của một quan hệ, đƣợc ký hiệu là R(A1, A2,
..., An) trong đó R là tên quan hệ và Ai (i=1..n) là các thuộc tính.
Ví dụ: Lƣợc đồ quan hệ
NHANVIEN( HOTEN, MSBHXH, DIACHI, LUONG, GIOITINH, NGAYSINH )


- Quan hệ: Là một tập con của tích Descartes của danh sách các miền giá trị,
đƣợc ký hiệu là: r={t1, t2, ..., tm}  DOM(A1) x ... x DOM(An).
Trong đó:

+ ti = <vi1, vi2, ..., vin>
+ vij  DOM(Aj)

(i=1..m; j=1..n)

Chú ý:
+ Một quan hệ chính là một bảng hai chiều:
+ Số các thuộc tính của quan hệ là số ngôi của quan hệ.
+ Thứ tự các dòng, các cột trong bảng quan hệ không quan trọng.
+ Các giá trị trong bảng phải đơn trị và phù hợp với kiểu dữ liệu của thuộc
tính (ký tự, số, Logic, Ngày).
+ Dữ liệu của quan hệ có thể thay đổi theo thời gian do thƣờng xuyên phải cập

nhật dữ liệu.
+ Quan hệ Nhân viên là quan hệ 6 ngôi.

- Lược đồ CSDL: Là một tập các lƣợc đồ quan hệ ký hiệu là:
S = {R1, R2, ..., Rm}, trong đó Ri (i=1..m) là một lƣợc đồ quan hệ.
- CSDL Quan hệ: Là một tập các quan hệ ký hiệu là:
DB = {r1, r2, ... , rm}, trong đó ri (i=1..m) là quan hệ (thể hiện của Ri).
- Siêu khoá (SK): SK đƣợc gọi là siêu khoá nếu với mọi t1, t2  r thì t1[SK] 
t2[SK].
Trong đó:
+ SK: là một hoặc nhiều cột (thuộc tính) trong bảng.
+ t1, t2 là các bộ giá trị của mỗi hàng trong bảng.
+ t1[SK], t2[SK] theo thứ tự là các bộ giá trị của SK tƣơng ứng với các bộ t1, t2.
- Khoá (K): Khoá của một lƣợc đồ quan hệ là một siêu khoá tối thiểu (khoá dự
tuyển).
- Khoá chính (PK): Là một trong các khoá dự tuyển.
- Khoá ngoài (FK): Một nhóm các thuộc tính gọi là khoá ngoài (FK) của một

quan hệ r1 tham chiếu đến quan hệ r2 nếu miền giá trị FK của r1 phải giống miền giá
trị PK của r2.


- Ràng buộc:
+ Ràng buộc miền: vi  DOM(Ai)
+ Ràng buộc Khoá: Giá trị của khoá phải duy nhất.
+ Ràng buộc toàn vẹn thực thể: Giá trị của khoá chính (PK) phải xác định
(không có giá trị null).
+ Ràng buộc toàn tham chiếu:
 Nếu Khoá ngoài của R1 tham chiếu đến khoá chính của R2 thì phải có cùng
miền giá trị với khoá chính của R2.
 Mỗi giá trị của Khoá ngoài của R1 hoặc là phải có mặt trong khoá chính của
R2 hoặc là nhận giá trị Null (với ngữ nghĩa là một giá trị tồn tại nhƣng
không biết).
1.1.2. Các phép toán trong mô hình quan hệ.
1.1.2.1 Phép toán cập nhật.
- Phép chèn (INSERT): Là phép thêm một bộ (bản ghi) vào quan hệ r.
- Phép loại bỏ (DELETE): Là phép loại bỏ một bộ ra khỏi quan hệ r.
- Phép cập nhật (UPDATE): Là phép thay đổi giá trị của các thuộc tính trong
một hoặc một số bộ nào đó.
1.1.2.2 Đại số quan hệ.
- Các phép toán tập hợp: Các quan hệ tham gia một phép toán tập hợp (hợp,
giao, trừ) phải có cùng cấu trúc.
+ Phép hợp r  s: Thực chất của phép hợp là xây dựng một tập các bộ thuộc
quan hệ r hoặc quan hệ s hoặc cả 2 quan hệ.


TÀI LIỆU THAM KHẢO
Tiếng Việt

[1] Nguyễn Kim Anh (2006), Nguyên lý của các hệ cơ sở dữ liệu, NXB Đại học
Quốc gia Hà nội.
[2] Hồ Thuần (1998), Cơ sở dữ liệu nâng cao, Đề cƣơng chi tiết cho các lớp Cao
học, ĐHBK Hà nội.
[3] Hồ Thuần, Hồ Cẩm Hà (2004, 2005), Các hệ cơ sở dữ liệu lý thuyết và thực
hành, Tập I và II, NXB Giáo dục, Hà nội.
[4] Trịnh Nhật Tiến (2006), Thiết kế và đánh giá thuật toán, Tập bài giảng cho các
lớp Cao học, Đại học Công nghệ, Đại học Quốc gia Hà nội.
[5] Đỗ Trung Tuấn (1998), Cơ sở dữ liệu, NXB Giáo dục, Hà nội.
[6] Nguyễn Tuệ (2006), Cơ sở dữ liệu nâng cao, Tập bài giảng cho các lớp Cao học,
Đại học Công nghệ, Đại học Quốc gia Hà nội.
[7] Jeffrey D. Ullman, Biên dịch Trần Đức Quang (2002), Nguyên lý các hệ cơ sở dữ
liệu và cơ sở tri thức, Tập I và II, NXB Thống kê.
[8] Kenneth H. Rosen, Ngƣời dịch: Phạm Văn Thiều, Đặng Hữu Thịnh (1998), Toán
rời rạc ứng dụng trong tin học, NXB Khoa học và kỹ thuật.
[9] M. Tamer Ozsu, Patrick Valduriez, Biên dịch Trần Đức Quang (1999), Nguyên lý
các hệ cơ sở dữ liệu phân tán, Tập I, NXB Thống kê.
[10] Lê Tiến Vƣơng (2000), Nhập môn Cơ sở dữ liệu quan hệ, NXB Thống kê,
TPHCM.

Tiếng Anh
[11] Aho A.V., Beeri C., Ullman J. D. (1979), “The Theory of Joins in Relational
Databases”
[12] Lucchesi C. L., Osborn S. L. (1978), “Candidate Keys for Relations”, J. of
Computer and System Sciences, 17, pp. 270-279.
[13] Ogunbadejo O. (1998), Experiment with Hash-Semijoins in Distributed Query
Processing, pp. 10-32, Thesis of Master of Science, University of Windsor,
Ontario, Canada.
[14] Wilf H. S. (2003), Algorithms and Complexity, Second Edition, Prentice Hall.




×