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.. 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, n
Trang 1ĐẠ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
Trang 2ĐẠ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Ĩ
PGS TS HỒ THUẦN
Hà Nội – 2007
Trang 3LỜ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
Trang 4MỤ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
Trang 5DANH 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
Trang 6MỞ ĐẦ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:
Trang 7Chươ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
Trang 8Chươ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 )
Trang 9- 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 SKtươ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
Trang 10- 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ệ
Trang 11TÀ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