PHẦN MỞ ĐẦU 1.Tính cấp thiết của đề tài Ngày nay, việc áp dụng công nghệ thông tin vào quản lý trong mọi lĩnh vực của đời sống, khoa học, kinh doanh dưới nhiều quy mô từ các xí nghiệp,
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUẨN HÓA NHỜ PHÉP TỔNG HỢP TRONG CƠ SỞ
DỮ LIỆU QUAN HỆ
NGUYỄN VĂN HÒA
HÀ NỘI - 2016
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI
LUẬN VĂN THẠC SỸ
CHUẨN HÓA NHỜ PHÉP TỔNG HỢP TRONG CƠ SỞ
DỮ LIỆU QUAN HỆ
NGUYỄN VĂN HÒA
CHUYÊN NGÀNH : CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60.48.02.01
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐINH TUẤN LONG
HÀ NỘI - 2016
Trang 3LỜI CAM ĐOAN
Em xin cam đoan đây là công trình nghiên cứu của bản thân, được xuất phát từ yêu
cầu phát sinh trong công việc để hình thành hướng nghiên cứu Các kết quả trình
bày trong luận văn được thu thập trong quá trình nghiên cứu là trung thực và chưa
từng được công bố trong các công trình nào khác
Hà Nội, 31 tháng 10 năm
2016 Tác giả luận văn
Nguyễn Văn Hòa
Trang 4LỜI CẢM ƠN
Thực hiện luận văn thạc sỹ là một thử thách với em, nó đòi hỏi phải tập trung
kiên trì nghiên cứu những vấn đề liên quan Em thực sự hạnh phúc với kết quả đạt
được trong đề tài nghiên cứu của mình Những kết quả đạt được không chỉ là nỗ lực
cá nhân, mà còn có sự hỗ trợ và giúp đỡ của giáo viên hướng dẫn, nhà trường, đồng
nghiệp, bạn bè và gia đình Em muốn bày tỏ tình cảm chân thành của em đến với
họ
Trước tiên, em xin bày tỏ sự biết ơn sâu sắc đến giáo viên hướng dẫn TS
Đinh Tuấn Long đã tận tình chỉ dẫn phương pháp nghiên cứu trong suôt quá trình
thực hiện luận văn Em xin trân trọng cảm ơn thầy rất nhiều vì sự hướng dẫn chỉ
bảo nhiệt tình, nghiêm túc và khoa học
Em xin trân trọng cảm ơn Khoa đào tạo sau đại học, Phòng đào tạo, Ban
giám hiệu Viện Đại Học Mở Hà Nội đã tạo điều kiện thuận lợi cho em trong suốt
quá trình thực hiện luận văn
Em cảm ơn tất cả những người bạn của em, những người luôn chia sẻ và cổ
vũ em trong những lúc khó khăn và em luôn ghi nhớ điều đó
Cuối cùng, em xin bày tỏ lòng biết ơn vô hạn đối với cha mẹ và gia đình đã
luôn bên cạnh ủng hộ, giúp đỡ em
Hà Nội, 31 tháng 10 năm
2016 Tác giả luận văn
Nguyễn Văn Hòa
Trang 5MỤC LỤC
PHẦN MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu của luận văn 1
3 Các đóng góp của luận văn 2
4 Bố cục của luận văn 2
CHƯƠNG I : CÁC VẤN ĐỀ CƠ BẢN VÀ LIÊN QUAN ĐẾN CHUẨN HÓA CƠ SỞ DỮ LIỆU QUAN HỆ 3
1.1 Một số khái niệm cơ bản 3
1.1.1 Định nghĩa Cơ Sở Dữ Liệu (Data Base) 3
1.1.2 Các tính chất của một cơ sở dữ liệu 4
1.2 Các mô hình dữ liệu 5
1.3 Mô hình cơ sở dữ liệu quan hệ 6
1.3.1 Mô hình cơ sở dữ liệu quan hệ là gì ? 6
1.3.2 Các khái niệm cơ bản của mô hình quan hệ 6
1.4 Phụ thuộc hàm 12
1.4.1 Định Nghĩa Phụ Thuộc Hàm 12
1.4.2 Cách xác định phụ thuộc hàm cho lược đồ quan hệ 13
1.4.3 Một Số Tính Chất Của Phụ Thuộc Hàm - hệ luật dẫn Armstrong 14
1.5 Baođóng 14
1.5.1 Bao Đóng Của Tập Phụ Thuộc Hàm F 14
1.5.2 Bao Đóng Của Tập Thuộc Tính X 15
1.5.3 Bài Toán Thành Viên 16
1.5.4 Thuật Toán Tìm Bao Đóng Của Một Tập Thuộc Tính 17
1.6 Khóa của lược đồ quan hệ 19
1.6.1 Định Nghĩa Khoá Của Quan Hệ (relation key) 19
1.6.2 Thuật Toán Tìm Một Khoá Của Một Lược Đồ Quan Hệ Q 19
1.6.3 Thuật Toán Tìm Tất Cả Các Khoá Của Một Lược Đồ Quan Hệ 20
1.7 Phủ tối thiểu 23
1.7.1 Tập Phụ Thuộc Hàm Tương Đương (equivalent functional dependancy) 23
Trang 61.7.2 Phủ Tối Thiểu 24
1.7.3 Thuật Toán Tìm Phủ Tối Thiểu 25
1.8 Tổng quan về chuẩn hóa cơ sở dữ liệu 27
1.9 Các dạng chuẩn 29
1.9.1 Dạng chuẩn 1 – 1NF (First Normal Form) 30
1.9.2 Dạng chuẩn 2 – 2NF 32
1.9.3 Dạng chuẩn 3 – 3NF 34
1.9.4 Dạng chuẩn BCNF (Boyce Codd Normal Form) 35
1.9.5 Định nghĩa tổng quát các dạng chuẩn và các thuật toán liên quan đến quá trình chuẩn hóa CSDL 38
1.10 Phép tách 41
1.10.1 Khái niệm phép tách 42
1.10.2 Phép tách bảo toàn thông tin 42
1.10.3 Phép tách bảo toàn phụ thuộc hàm 44
CHƯƠNG 2: PHƯƠNG PHÁP CHUẨN HÓA BẰNG PHƯƠNG PHÁP TIẾP CẬN TỔNG HỢP 46
2.1 Phương pháp tiếp cận tổng hợp 46
2.2 Biểu diễn đồ thị phụ thuộc hàm 49
2.2.1 Đồ thị phụ thuộc hàm 49
2.2.2 Đồ thị phụ thuộc ma trận 51
2.2.3 Đồ thị ma trận có hướng 52
2.3 Nghiên cứu quá trình chuẩn hóa 59
2.3.1 Dạng chuẩn thứ hai (2NF) 59
2.3.2 Dạng chuẩn thứ ba (3NF) 60
2.3.3 Dạng chuẩn BCNF 61
2.4 Nghiên cứu thuật toán 65
CHƯƠNG 3: THỰC NGHIỆM VÀ ĐÁNH GIÁ CHO CÁC BÀI TOÁN HÌNH THỨC HÓA 66
3.1 Thực nghiệm 66
3.1.1 Bài toán thực nghiệm 66
3.1.2 Tìm khóa dự tuyển 68
3.1.3 Chuẩn hóa 2NF 69
Trang 73.1.4 Chuẩn hóa 3NF 70
3.1.5 Dạng chuẩn Boyce-Codd (BCNF) 71
3.2 Đánh giá 72
KẾT LUẬN 73
TÀI LIỆU THAM KHẢO 75
Trang 8Hệ quản trị cơ sở dữ liệu
Tập nguồn Tập trung gian Structured Query Language Tìm kiếm theo chiều sâu Cây khung
Phụ thuộc ma trận
đồ thị ma trận có hướng Phủ tối thiểu
Trang 9DANH MỤC CÁC HÌNH
Hình 1.1 Lược đồ cơ sở dữ liệu COMPANY 9
Hình 1.2 Một thể hiện của cơ sở dữ liệu COMPANY 10
Hình 1.3 Một thể hiện của cơ sở dữ liệu COMPANY 11
Hình 1.4 Các ràng buộc tham chiếu trong cơ sở dữ liệu COMPANY 11
Hình 2.1 Các dạng chuẩn hóa 30
Hình 3.1: sơ đồ đồ thị phụ thuộc của Ví dụ 3.1 50
Hình 3.2 Cây khung (STG) 51
Hình 3.3 ma trận phụ thuộc ban đầu 52
Hình 3.4 Khởi tạo ma trận DM và DG 53
Hình 3.5 Ma Trận phụ thuộc và ma trận đồ thị có hướng 53
Hình 3.6 Khóa quyết định phụ thuộc bắc cầu 54
Hình 3.7 E phụ thuộc vào BC qua AB 55
Hình 3.8 Khởi tạo ma trận DM và DG 55
Hình 3.9 BC ban đầu được trả về 56
Hình 3.10 Đồ thị phụ thuộc cho Ví dụ 3.3 57
Hình 3.11 Ma trận phụ thuộc ban đầu cho hình 3.10 57
Hình 3.12 Ma trận DG cho Ví dụ 3.3 58
Hình 3.13 Phụ thuộc bắc cầu khóa xác định 58
Hình 3.14 ma trận phụ thuộc bao đóng 58
Hình 3.15 Phụ thuộc hàm đồ thị sơ đồ 59
Hình 3.16 Cây khung 60
Hình 3.17 Đồ thị lược đồ phụ thuộc hàm 60
Hình 3.18 Cây khung 61
Hình 3.19 Sơ đồ khóa dự tuyển tương đương nhau 61
Hình 3.20 Đồ thị lược đồ phụ thuộc của ví dụ 3.5 62
Hình 3.21 Đồ thị Cây khung (STG) của ví dụ 3.5 63
Hình 3.22 Sơ đồ khóa ứng tuyển tương đương 64
Hình 3.23 Cây khung con của ví dụ 3.4 64
Hình 3.24 Cây con đại diện cho tất cả các bảng chuẩn hoá 65
Hình 4.1 Đồ thị phụ thuộc bao đóng 66
Trang 10Hình 4.2 Ma trận phụ thuộc bao đóng ban đầu cho hình 4.1 67
Hình 4.3 Ma trận DG 67
Hình 4.4 Khóa dự tuyển phụ thuộc bắc cầu 67
Hình 4.5 ma trận phụ thuộc bao đóng 68
Hình 4.6 After Circular Dependency 68
Hình 4.7 Các thiết lập của các phụ thuộc tối ưu 69
Hình 4.8 Cơ sở dữ liệu chuẩn hoá lên đến 2NF 70
Hình 4.9 dạng chuẩn thứ ba 71
Hình 4.10 Cơ sở dữ liệu chuẩn hoá lên đến BCNF 72
Trang 11DANH MỤC CÁC BẢNG
Bảng 2.1 Lược đồ quan hệ Q 13
Bảng 2.2 Lược đồ quan hệ Q ví dụ 2.7 21
Bảng 2.3 Lược đồ quan hệ Q ví dụ 2.7 23
Bảng 2.4 Bảng ĐƠNVỊ 31
Bảng 2.5 Bảng NHÂNVIÊN_DỰÁN 31
Bảng 2.6 Bảng ví dụ chuẩn BCNF 37
Bảng 3.1 Thay thế phụ thuộc bắc cầu với phụ thuộc trực tiếp ban đầu 57
Trang 12PHẦN MỞ ĐẦU
1.Tính cấp thiết của đề tài
Ngày nay, việc áp dụng công nghệ thông tin vào quản lý trong mọi lĩnh vực của đời sống, khoa học, kinh doanh dưới nhiều quy mô từ các xí nghiệp, nhà máy, công ty đến quốc gia; nhằm giải quyết và hỗ trợ các vấn đề như: điều khiển các quá trình sản xuất, điều khiển tự động, hỗ trợ ra quyết định, thương mại điện tử … Nằm trong các thành phần của một hệ thông thông tin, cơ sở dữ liệu đóng vai trò rất quan trọng, nó phản ảnh hay mô hình hoá các dữ liệu nghiệp vụ thực tế Nói cách khác,
cơ sở dữ liệu chính là trái tim của bất cứ một hệ thống thông tin nào
Trong các mô hình cho việc tổ chức và khai thác cơ sở dữ liệu, trên thực tế
mô hình quan hệ được quan tâm và phổ biến hơn cả Mô hình này được xây dựng dựa trên cơ sở lý thuyết và các quan hệ có cơ sở toán học chặt chẽ, sử dụng các công cụ đại số và logic Những cơ sở lý thuyết này đã tạo nên sự thuận lợi trong việc thực hiện các thao tác trên cơ sở dữ liệu quan hệ có khả năng tổ hợp cao và hiệu quả, cũng như sự đảm bảo tính an toàn, nhất quán và độc lập dữ liệu Tất cả những yếu tố trên đã dẫn tới sự cần thiết của việc chuẩn hoá, kiểm tra và đánh giá các cơ sở dữ liệu quan hệ Do đó, mục tiêu của đề tài là tìm hiểu phương pháp chuẩn hoá tiếp cận tổng hợp và cài đặt thuật toán tự động chuẩn hoá cho các cơ sở
dữ liệu quan hệ
Từ khóa: Công nghệ thông tin (CNTT), Cơ sở dữ liệu(CSDL), Hệ quản trị cơ
sở dữ liệu (DBMS)
2 Mục tiêu của luận văn
Mục tiêu của luận văn là tìm hiểu phương pháp chuẩn hóa tiếp cận tổng hợp,nghiên cứu thiết kế giải thuật và cài đặt ứng dụng có thể tự động chuẩn hóa 3NF các cơ sở dữ liệu
Trang 133 Các đóng góp của luận văn
Đóng góp của luận văn làvân dụng các nguyên lý, quy luật, kết quả nghiên cứu đã được công bố để tổng hợp thiết kế thuật toán và triển khai cài đặt ưng dụng
tự động chuẩn hóa CSDL quan hệ đạt chuẩn 3NF
4 Bố cục của luận văn
Nội dung của luận văn được trình bày trong 3 Chương Trong đó:
Chương 1.Các vấn đề cơ bản và liên quan đến chuẩn hóa cơ sở dữ liệu quan hệ,
trình bày tổng quan về chuẩn hóa cơ sỡ dữ liệu, cách chuẩn hóa cơ sở dữ liệu quan
hệ, mà bắt đầu là phụ thuộc hàm và một số ứng dụng trong việc giải quyết các bài toán như: tìm khoá, tìm phủ tối thiểu, xác định dạng chuẩn
Chương 2.Trong chương tới chúng ta sẽ đi nghiên cứu giải thuật chuẩn hóa cơ sở
dữ liệu quan hệ bằng phương pháp tiếp cận tổng hợp
Chương 3.Tiến hành thực nghiệm theo phương pháp tiếp cận tổng hợp và đánh giá
kết quả thực nghiệm
Trang 14CHƯƠNG I : CÁC VẤN ĐỀ CƠ BẢN VÀ LIÊN QUAN ĐẾN
CHUẨN HÓA CƠ SỞ DỮ LIỆU QUAN HỆ
Các cơ sở dữ liệu và các hệ cơ sở dữ liệu đã trở thành một thành phần chủ yếu trong cuộc sống hàng ngày của xã hội hiện đại Trong vòng một ngày con người
có thể có nhiều hoạt động cần có sự giao tiếp với cơ sở dữ liệu như: đến ngân hàng
để rút tiền và gửi tiền, đăng ký chỗ trên máy bay hoặc khách sạn, truy cập vào thư viện đã tin học hoá để tìm sách báo, đặt mua tạp chí ở một nhà xuất bản… Tại các ngân hàng, các cửa hàng, người ta cũng cập nhật tự động việc quản lý tiền bạc, hàng hoá
Tất cả các giao tiếp như trên được gọi là các ứng dụng của cơ sở dữ liệu truyền thống Trong các cơ sở dữ liệu truyền thống, hầu hết các thông tin được lưu giữ và truy cập là văn bản hoặc số Những năm gần đây, những tiến bộ về kỹ thuật
đã đưa đến những ứng dụng mới của cơ sở dữ liệu Các cơ sở dữ liệu đa phương tiện bây giờ có thể lưu trữ hình ảnh, phim và tiếng nói Các hệ thống thông tin địa lý
có thể lưu trữ và phân tích các bản đồ, các dữ liệu về thời tiết và các ảnh vệ tinh Kho dữ liệu và các hệ thống phân tích trực tuyến được sử dụng trong nhiều công ty
để lấy ra và phân tích những thông tin có lợi từ các cơ sở dữ liệu rất lớn nhằm đưa
ra các quyết định Các kỹ thuật cơ sở dữ liệu động và thời gian thực được sử dụng trong việc kiểm tra các tiến trình công nghiệp và sản xuất Các kỹ thuật tìm kiếm cơ
sở dữ liệu đang được áp dụng cho World Wide Web để cung cấp việc tìm kiếm các thông tin cần thiết cho người sử dụng bằng cách duyệt qua Internet Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu trước hết chúng ta đi tìm hiểu các kiến thức cơ bản của cơ sở dữ liệu
Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc sử dụng máy tính Có thể nói rằng cơ sở dữ liệu đóng vai trò quan trọng trong mọi lĩnh
Trang 15vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ dụng
Một cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu trữ trên máy tính, có nhiều người sử dụng và được tổ chức theo một mô hình Dữ liệu là những sự kiện có thể ghi lại được và có ý nghĩa
Ví dụ, để quản lý việc học tập trong một môi trường đại học, các dữ liệu là các thông tin về sinh viên, về các môn học, điểm thi….Chúng ta tổ chức các dữ liệu
đó thành các bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần mềm máy tính để lưu giữ chúng trên máy tính Ta có một tập các dữ liệu có liên quan đến nhau và mang nhiều ý nghĩa, đó là một cơ sở dữ liệu
Vậy ta có thể định nghĩa cơ sở dữ liệu (CSDL) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các thiết bị như băng từ, đĩa từ,… để có thể thoả mãn yêu cầu khai thác đồng thời của nhiều người sử dụng
CSDL gắn liền với đại số, logic toán và một số lĩnh vực khác
Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu Những thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu hoặc là một “thế giới nhỏ” (miniworld)
Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic và mang một ý nghĩa cố hữu nào đó Một cơ sở dữ liệu không phải là một tập hợp tuỳ tiện
Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng
Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định phù hợp với mối quan tâm của người sử dụng Nói cách khác, một cơ sở dữ liệu có
Trang 16một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới thực và một nhóm người quan tâm tích cực đến các nội dung của nó
Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi Có những cơ
sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ sở
dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi lớn) Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết Một cơ sở dữ liệu có thể được tạo ra và duy trì một cách thủ công và cũng có thể được tin học hoá Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì bằng bằng một nhóm
chương trình ứng dụng hoặc bằng một hệquản trị cơ sở dữ liệu
Mô hình dữ liệu là sự trừu tượng hoá môi trường thực Mỗi loại mô hình dữ liệu đặc trưng cho một cách tiếp cận dữ liệu khác nhau của những nhà phân tích thiết kế CSDL Mỗi loại mô hình dữ liệu đều có những ưu điểm và những mặt hạn chế của nó, nhưng vẫn có những mô hình dữ liệu nổi trội và được nhiều người quan tâm nghiên cứu
Sau đây chúng ta sẽ điểm qua lịch sử phát triển của các mô hình dữ liệu
Vào những năm sáu mươi, thế hệ đầu tiên của CSDL ra đời dưới dạng mô
hình thực thể kết hợp, mô hình mạng và mô hình phân cấp
Vào những năm bảy mươi, thế hệ thứ hai của CSDL ra đời Đó là mô hình dữ
liệu quan hệ do EF Codd phát minh Mô hình này có cấu trúc logic chặt chẽ Đây là
mô hình đã và đang được sử dụng rộng khắp trong công tác quản lý trên phạm vi toàn cầu Việc nghiên cứu mô hình dữ liệu quan hệ nhằm vào lý thuyết chuẩn hoá các quan hệ và là một công cụ quan trọng trong việc phân tích thiết kế các hệ CSDL hiện nay Mục đích của nghiên cứu này nhằm bỏ đi các phần tử không bình thường của quan hệ khi thực hiện các phép cập nhật, loại bỏ các phần tử dư thừa
Trang 17Sang thập kỷ tám mươi, mô hình CSDL thứ ba ra đời, đó là mô hình cơ sở dữ
liệu hướng đối tượng, mô hình cơ sở dữ liệu phân tán, mô hình cơ sở dữ liệu suy diễn,…
Mô hình dữ liệu làmột tập khái niệm dùng để mô tả cấu trúc dữ liệu, các thao tác dữ liệu, các ràng buộc dữ liệu của một CSDL Mô hình dữ liệu quan hệ (gọi tắt là mô hình quan hệ) được E F Codd nghiên cứu năm 1970 và tiếp sau đó được công ty IBM giới thiệu vào năm 1970 Ngày nay, hầu hết các tổ chức đã áp dụng CSDL quan hệ để quản lý dữ liệu trong đơn vị mình
Mô hình quan hệ là cách thức biểu diễn dữ liệu dưới dạng các quan hệ (các bảng) Một quan hệ là một bảng dữ liệu 2 chiều (cột và dòng), mô tả một thực thể Mỗi cột tương ứng với một thuộc tính của thực thể Mỗi dòng chứa các giá trị dữ liệu của một đối tượng cụ thể thuộc thực thể
Mô hình dữ liệu quan hệ bao gồm:
- Một hệ thống các ký hiệu để mô tả dữ liệu dưới dạng dòng và cột như quan hệ, thuộc tính, khóa chính, khóa ngoại,
- Một tập hợp các phép toán thao tác trên dữ liệu như phép toán tập hợp, phép toán quan hệ
- Ràng buộc toàn vẹn quan hệ
Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều nhất, và thực tiễn
đã cho thấy rằng nó có cơ sở lý thuyết vững chắc nhất Mô hình dữ liệu này cùng với mô hình thức thể kết hợp đang được sử dụng rộng rãi trong việc phân tích và thiết kế CSDL hiện nay Sau đây là các khái niệm của mô hình dữ liệu quan hệ
Quan hệ
Trang 18Sự thể hiện của lược đồ quan hệ Q ở một thời điểm nào đó được gọi là quan
hệ, rõ ràng là trên mọt lược đồ quan hệ có thể định nghĩa rất nhiều quan hệ Thường
ta dùng các ký hiệu như R, S, Q để chỉ các lược đồ quan hệ,còn các quan hệ được định nghĩa trên nó tương ứng được ký hiệu là r,s,q
Các tính chất của một quan hệ
• Giá trị đưa vào cột là đơn nhất
• Các giá trị trong cùng một cột phải thuộc cùng một miền giá trị (cùng kiểu)
• Thứ tự dòng cột tuỳ ý
Các ràng buộc toàn vẹn trên quan hệ
Ràng buộc là những quy tắc được áp đặt lên trên dữ liệu đảm bảo tính tin cậyvà độ chính xáccủa dữ liệu Các luật toàn vẹn được thiết kế để giữ cho dữ liệu phù hợp và đúng đắn
Có 4 kiểu ràng buộc chính: Ràng buộc miền giá trị (Domain Constraints), Ràng buộc khoá (Key Constraints), Ràng buộc thực thể (Entity Integrity Constraints), và Ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraints)
Ràng buộc miền giá trị
Là một hợp các kiểu dữ liệu và những giá trị giới hạn mà thuộc tính có thể nhận được Thông thường việc xác định miền giá trị của các thuộc tính bao gồm một số các yêu cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ liệu, khuôn dạng của dữ liệu, các giá trị giới hạn cho phép, ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng hay không
Ràng buộc khoá
Khóa chính (Primary Key)
Khóa chính là một (hoặc một tập) các thuộc tính đóng vai trò là nguồn của một phụ thuộc hàm mà đích lần lượt là các thuộc tính còn lại
R={SSN, Name, BDate, Address, Salary}
Trang 19SSN→ Name, BDate, Address, Salary
(Nguồn)→ (Đích)
Ta thấy, từ SSN ta có thể suy ra toàn bộ các thuộc tính ứng Vậy SSN được gọi là khóa chính
Một số gợi ý khi chọn khóa
Khóa không nên là tập hợp của quá nhiều thuộc tính Trong trường hợp khóa
có nhiều thuộc tính, có thể thêm một thuộc tính “nhân tạo” thay chúng làm khóa chính cho quan hệ
Nếu khóa chính được cấu thành từ một số thuộc tính, thì các thành phần nên tránh sử dụng thuộc tính có giá trị thay đổi theo thời gian: như tên địa danh, phân loại
Khóa dự tuyển (Candidate Key)
Trong tập hợp các thuộc tính của một bảng, có thể có nhiều thuộc tính có thể dùng được làm khóa chính Các thuộc tính đó được gọi là khóa dự tuyển
Khóa dự tuyển cần thỏa mãn 2 tính chất sau:
• Xác định duy nhất
• Không dư thừa: Khi xóa đi bất kỳ một thuộc tính nào của khóa đều phá hủy tính xác định duy nhất của khóa
Khóa ngoại (Foreign Key)
Trong nhiều trường hợp, khóa chính của một bảng được đưa sang làm thuộc tính bên bảng khác, thuộc tính đó gọi là khóa ngoại Khóa ngoại đóng vai trò thể hiện liên kết giữa 2 bảng
Khóa phụ (Second Key)
Đóng vai trò khi ta muốn sắp xếp lại dữ liệu trong bảng
Ví dụ ta có bảng SINHVIEN (MaSV, Hoten, GioiTinh, Diem)
Trang 20Muốn sắp xếp lại danh sách sinhviên theo th
thuộc tính Hoten được gọ
Ràng buộc thực thể
Mỗi một lược đồ quan h
chính trong lược đồ quan h
Sau đây là danh sách các l
sau khi xác định ràng buộ
Trang 21Hình 1.2. Một thể hiện của cơ sở dữ liệu COMPANY
Ràng buộc khoá và ràng buộc thực thể được xác định cho từng quan hệ
Trang 22Ràng buộc toàn vẹn tham chiếu
Một bộ giá trị trong một quan hệ tham chiếu tới một bộ giá trị đã tồn tại trong một quan hệ khác
Ràng buộc toàn vẹn tham chiếu phải xác định trên 2 quan hệ: quan hệ tham chiếu (referencing relation) và quan hệ được tham chiếu (referenced relation)
Hình 1.3. Một thể hiện của cơ sở dữ liệu COMPANY
Ràng buộc toàn vẹn tham chiếu
Ràng buộc toàn vẹn tham chiếu còn được gọi là ràng buộc khoá ngoại
Thuộc tính DNo của quan hệ EMPLOYEE tham chiếu tới thuộc tính DNumber của quan hệ DEPARTMENT
Hình 1.4. Các ràng buộc tham chiếu trong cơ sở dữ liệu COMPANY
Trang 23đó trên Q, ∀ t1,t2 ∈ r mà t1.X = t2.X ⇒ t1.Y = t2.Y (nghĩa là không thể tồn tại hai
bộ trong r giống nhau ở các thuộc tính trong tập X mà lại khác nhau ở một hay nhiều thuộc tính nào đó trong tập Y) Khi đó ta ký hiệu là X → Y
Chẳng hạn như phụ thuộc hàm của thuộc tính họ tên của sinh viên (HOTENSV) vào mã số sinh viên (MASV) và ta có thể diễn tả bằng phụ thuộc hàm
MASV→ HOTENSV
Phụ thuộc hàm X → X được gọi là phụ thuộc hàm hiển nhiên người ta thường dùng F để chỉ tập các phụ thuộc hàm định nghĩa trên Q Vì Q hữu hạn nên F cũng hữu hạn, ta có thể đánh số các phụ thuộc hàm của F là f1,f2, ,fm
Quy ước: chỉ cần mô tả các phụ thuộc hàm không hiển nhiên trong tập F, các phụ thuộc hàm hiển nhiên được ngầm hiểu là đã có trong F
Ví dụ 2.1: Cho lược dồ quan hệ Q(ABCDE), r là quan hệ xác định trên Q được cho
Trang 24a3 b2 c3 d1 e1
Bảng 2.1 Lược đồ quan hệ Q
Những phụ thuộc hàm nào sau đây thoả r ? A → D; AB → D; E → A; A → E; Giải: AB → D; A → E;
Cách duy nhất để xác định đúng các phụ thuộc thích hợp cho một lược đồ quan hệ là xem xét nội dung tân từ của lược đồ quan hệ đó
Ví dụ 2.2: Ta có mô hình dữ liệu quan hệ như sau:
Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP)
Lop(MALOP,TENLOP,MAKHOA) Khoa(MAKHOA,TENKHOA)
Monhoc(MAMH,TENMH,DONVIHT)
Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI,DIEMTHI)
MAMH → TENMH, DONVIHT
MASV, MAMH,LANTHI → DIEMTHI
Trang 251.4.3 Một Số Tính Chất Của Phụ Thuộc Hàm - hệ luật dẫn Armstrong
Để có thể xác định được các phụ thuộc hàm khác từ tập phụ thuộc hàm đã
có, ta dùng hệ tiên đề Armstrong (1974), gồm các luật sau:
với X,Y,Z,W ⊆ Q+
1.Luật phản xạ (reflexivity)
X ⊇ Y ⇒ X→Y Quy tắc này đưa ra những phụ thuộc hàm hiển nhiên (phụ thuộc hàm tầm thường), đó là những phụ thuộc hàm mà vế trái bao hàm cả vế phải Những phụ thuộc hàm hiển nhiên đều đúng trong mọi quan hệ
2.Luật tăng trưởng(augmentation)
Bao đóng (closure) của tập phụ thuộc hàm F (ký hiệu là F+ ) là tập hợp tất cả
các phụ thuộc hàm có thể suy ra từ F dựa vào các tiên đề Armstrong Rõ ràng F ⊆ F+
Trang 26Ví dụ 2.3: Cho lược đồ quan hệ Q(ABCDEGH) và F được cho như sau:
F = {B → A; DA→ CE; D → H; GH→ C; AC→ D }
Khi đó F+ ={B → A; DA→ CE; D → H; GH→ C; AC→ D ; BC → AC; BC
→ D; DA → AH; DG → C;BC → AD;….}
(Lưu ý rằng, nếu mỗi thuộc tính được biểu diễn bằng một ký tự thì danh sách các thuộc tính có hoặc không có dấu phẩy đều được, còn giữa các phụ thuộc hàm phải có dấu chấm phẩy)
Các tính chất của tập F+ :
1.Tính phản xạ: Với mọi tập phụ thuộc hàm F+ ta luôn có F ⊆ F+
2 Tính đơn điệu: Nếu F ⊆ G thì F+ ⊆ G+
3 Tính luỹ đẳng: Với mọi tập phụ thuộc hàm F ta luôn luôn có F++ = F+
Cho lược đồ quan hệ Q giả sử F là tập các phụ thuộc hàm trong Q, X ⊆ Q+ Bao đóng của tập thuộc tính X đối với F ký hiệu là X+ (hoặc + X F ) là tập tất cả các thuộc tính A ∈ Q+ được suy ra từ X dựa vào các phụ thuộc hàm trong F
và hệ tiên đề Armstrong, nghĩa là:
X+ = {A : A ∈ Q+ và X → A ∈ F+ }
Ví dụ 2.4: Cho lược đồ quan hệ Q(ABCDEGH) và tập phụ thuộc hàm F
F = {B → A; DA→ CE; D → H; GH→ C; AC→ D }
Hãy tính: B+ ; H+ ;BC+
Giải
Khi đó B+ = BA ; (do có phụ thuộc hàm B → A)
H+ = H (do có phụ thuộc hàm H → H)
Trang 27BC+ = BCADEH (do có các phụ thuộc hàm:B → A;AC→D;DA→ CE; D
→ H )
Tương tự như tập bao đóng của tập phụ thuộc hàm F+ , tập bao đóng X+ cũng chứa các phần tử của tập X, tức là X ⊆ X+
Các tính chất của bao đóng của tập thuộc tính X+
Nếu X,Y là các tập con của tập thuộc tính Q thì ta có các tính chất sau đây:
Qua phần trên ta nhận thấy X+ được định nghĩa thông qua F+ Vấn đề nảy sinh khi nghiên cứu lý thuyết CSDL là: Cho trước tập các phụ thuộc hàm F và một phụ thuộc hàm f, bài toán kiểm tra có hay không f ∈ F+ gọi là bài toán thành viên
Để giải quyết bài toán bài toán thành viên thật sự không đơn giản; vì mặc dù
F là rất nhỏ nhưng F+ thì có thể rất lớn Tuy nhiên ta có thể giải bằng cách tính X+
và so sánh X+ với tập Y Dựa vào tính chất X → Y ∈ F+ ⇔ Y ⊆ X+ , ta có ngay câu trả lời X → Y ∈ F+ hay không ? Như vậy thay vì giải bài toán thành viên ta đưa
về giải bài toán tìm bao đóng của tập thuộc tính
Trang 281.5.4 Thuật Toán Tìm Bao Đóng Của Một Tập Thuộc Tính
Thuật toán 2.1: Thuật toán tìm bao đóng với độ phức tạp O(N2 ), với N là số lượng
thuộc tính của lược đồ quan hệ Q
trở lại Bước 2:
Ví dụ 2.5: Cho lược đồ quan hệ Q(ABCDEGH) và tập phụ thuộc hàm F
F = { f1: B → A; f2: DA → CE; f3: D → H; f4: GH → C; f5: AC → D} Tìm bao đóng của các tập X = {AC} dựa trên F
Giải:
X+ = AC
Do f1, f2, f3, f4 không thoả f5 thoả :
Trang 29Thuật toán 2.2: Thuật toán tìm bao đóng với độ phức tạp tuyến tính[3]
Trang 30Quay lại duyệt thuộc tính kế tiếp trong X+ cho đến khi nào duyệt hết mọi phần tử của X+ thì dừng lại Kết quả X+ là bao đóng cần tìm
Cho quan hệ Q(A1,A2,…,An) được xác định bởi tập thuộc tính Q+ và tập phụ thuộc hàm F định nghĩa trên Q, cho K ⊆ Q +
K là một khoá của Q nếu thoả đồng thời cả hai điều kiện sau:
1 K → Q + ∈ F + (hay + KF = Q +)
(K chỉ thoả điều kiện 1 thì được gọi là siêu khoá)
2 Không tồn tại K' ⊂ K sao cho K'+ = Q +
Một lược đồ quan hệ có thể có nhiều siêu khoá, nhiều khoá
Trang 31K={A,B,C}
Loại thuộc tính A, do (K-A)+ = Q+ nên K={B,C}
thuộc tính B không loại được do (K - B)+ ≠ Q+ nên K={B,C}
Loại thuộc tính C, do (K-C)+ = Q+ nên K={B}
Vậy một khóa của Q là B
Thuật toán 2.4 (thuật toán cơ bản)
Bước 1:Xác định tất cả các tập con của Q
Để xác định tất cả các tập con của một lược đồ quan hệ Q(A1,A2,…,An) ta lần lượt duyệt tất cả 2n -1 tập hợp con khác rỗng của Q+ (n là số thuộc tính của lược
đồ quan hệ Q), kết quả tìm được giả sử là các tập thuộc tính: S={X1, X2, …,X2n-1 }
Bước 2: Tính Xi +
Bước 3: Nếu Xi + = Q+ thì Xi là siêu khoá
Nếu một tập con Xi (i = 1 ,2n-1) của Q+ có bao đóng đúng bằng Q+ thì tập con dó (theo định nghĩa trên) là một siêu khoá của Q
Giả sử sau bước này có m siêu khoá: S = {S1,S2,…,Sm}
Bước 4:
Xây dựng tập chứa tất cả các khoá của Q từ tập S
Xét mọi Si,Sj con của S (i ≠ j), nếu Si ⊂ Sj thì ta loại Sj (i,j=1 m), kết quả còn lại chính là tập tất cả các khoá cần tìm
Ví dụ 2.7: Tìm tất cả các khoá của lược đồ quan hệ Q và tập phụ thuộc hàm F được cho như sau:
Q(A,B,C); F={ A→ B; A → C; B → A}
Trang 32Bảng 2.2 Lược đồ quan hệ Q ví dụ 2.7
Vậy lược đồ quan hệ Q có hai khoá là: {A} và {B}
Thuật toán trên thì dễ hiểu, dễ cài đặt, tuy nhiên nếu với n khá lớn thì phép duyệt để tìm ra tập tất cả các tập con của tập Q+ là điều không hiệu quả, do vậy cần thu hẹp không gian duyệt Chúng ta sẽ nghiên cứu thuật toán cải tiến theo hướng giảm số thuộc tính của tập cần duyệt
Chú ý rằng thuật toán này tìm được tất cả các siêu khóa, tất cả các khóa
Thuật toán 2.5 (thuật toán cải tiến)
Trước khi đi vào thuật toán cải tiến, ta cần đưa thêm một số khái niệm sau: -Tập nguồn(TN) chứa tất cả các thuộc tính có xuất hiện ở vế trái và không xuất hiện ở vế phải của tập phụ thuộc hàm Những thuộc tính không tham gia vào bất kỳ một phụ thuộc hàm nào thì cũng đưa vào tập nguồn
-Tập đích chứa tất cả các thuộc tính có xuất hiện ở vế phải và không xuất hiện ở vế trái của tập phụ thuộc hàm
-Tập trung gian(TG) chứa tất cả các thuộc tính vừa tham gia vào vế trái vừa tham gia vào vế phải
Dữ liệu vào: Lược đồ quan hệ phổ quát Q và tập phụ thuộc dữ liệu F
Trang 33Dữ liệu ra: Tất cả các khoá của quan hệ
Bước 0: Tìm tập thuộc tính nguồn(TN), tập thuộc tính trung gian(TG)
Tìm tất cả các tập con của tập trung gian gọi là Xi (bằng phương pháp duyệt nhị phân)
if tập trung gian=Øthen
Tập Khoá = Tập nguồn ;kết thúc Ngược lại
Bước 4: Nếu Xi + = Q+ thì Xi là siêu khoá
Nếu một tập con TN ∪ Xi có bao đóng đúng bằng Q+ thì TN ∪ Xi là một siêu khoá của Q
Giả sử sau bước này có m siêu khoá: S = {S1,S2,…,Sm}
Bước 5: Xây dựng tập chứa tất cả các khoá của Q từ tập S
Xét mọi Si,Sj con của S (i ≠ j), nếu Si ⊂ Sj thì ta loại Sj (i,j=1 m), kết quả còn lại chính là tập tất cả các khoá cần tìm
Trang 34Ví dụ 2.8 (Giải lại bài tập ở ví dụ 2.7)
Áp dụng thuật toán cải tiến ta có lời giải như sau:
TN ={ ϕ} ; TG ={A,B}
Gọi Xi là các tập con của tập TG
Bảng 2.3 Lược đồ quan hệ Q ví dụ 2.7
Vậy quan hệ trên có hai khoá là : [A] và [B]
Chú ý : Thuật toán cải tiến này tìm được tất cả các khoá, nhưng không chắc tìm ra
Chẳng hạn cho lược đồ quan hệ Q(ABCDEGH), thì hai tập phụ thuộc hàm F và
G (xác định trên Q) là tương đương
F = {B → A; DA→ CE; D → H; GH→ C; AC→ D; DG → C}
G={B→ A; DA→ CE; D → H; GH→ C; AC→ D ;BC → AC; BC → D; DA
→ AH; AC → DEH}
Trang 35Bạn đọc hãy kiểm chứng lại ví dụ nhận xét này bằng cách sử dụng định nghĩa
về tập phụ thuộc hàm tương đương và tính chất X → Y ∈ F+ ⇔ Y ⊆ X+ )
Điều kiện a) Vế phải của F chỉ có một thuộc tính
Điều kiện b) Không ∃ f: X → A ∈ F và Z ⊂ X mà:
Trang 36đảm không có một thuộc tính nào tham gia vế trái của phụ thuộc hàm là dư thừa điều kiện c)bảo đảm cho tập F không có một phụ thuộc hàm nào là dư thừa
Chú ý: rằng một tập phụ thuộc hàm luôn tìm ra ít nhất một phủ tối thiểu và nếu thứ
tự các phụ thuộc hàm trong tập F là khác nhau thì có thể sẽ thu được những phủ tối thiểu khác nhau
Thuật toán 2.6
Dữ liệu vào : Lược đồ quan hệ ban đầu Q và tập phụ thuộc hàm F, số lượng phụ thuộc hàm trong F là m
Dữ liệu ra : Tập phụ thuộc hàm tối thiểu của F
Bước 1: Tách vế phải mỗi phụ thuộc hàm trong F sao cho vế phải của mỗi phụ thuộc hàm chỉ chứa một thuộc tính (điều này luôn thực hiện được do bổ đề 1 bên trên)
Trang 37X' =X − B
If (X'→ A ∈ F+ ) X = X' Cuối ∀
G = F − f {loại f ra khỏi F và lưu { F − f} vào G }
If (F + =G+ ) {gọi thủ tục kiểm tra F, G tương đương ở dưới}