MỞ ĐẦU Chúng ta đang sống và làm việc trong thời đại phát triển công nghệ thông tin, nhu cầu sử dụng thông tin ngày càng nhiều. Yêu cầu của việc truy cập thông tin không những phải nhanh mà còn cần chính xác và đầy đủ. Với một lượng lớn dữ liệu từ các lĩnh vực khác nhau đang ngày càng tăng nhanh. Do đó, để sử dụng và khai thác dữ liệu một cách hiệu quả thì việc thiết kế cơ sở dữ liệu (CSDL) trở thành một vấn đề đã và đang được quan tâm đối với nhiều nhà làm tin học. Tuy nhiên, trong nhiều tổ chức, một số lượng lớn các CSDL đã được phát triển trong nhiều năm qua. Khó khăn chính đối với các CSDL này là ý nghĩa của dữ liệu thường bị mất, do đó không ai biết được chính xác dữ liệu và mối quan hệ giữa các dữ liệu là gì. Điều này gây cản trở việc sử dụng dữ liệu một cách hiệu quả và làm giảm đi tính chính xác của các hoạt động bảo trì. Việc hiểu biết này chỉ có thể đạt được bằng cách tăng mức độ trừu tượng của chính CSDL và thể hiện nó như là một mô hình mức khái niệm. Vì mô hình ER là mô hình mức khái niệm được sử dụng rộng rãi nên luận văn sẽ tìm hiểu một phương pháp trích xuất một mô hình ER mở rộng (EER) từ một CSDL đang tồn tại. Phương pháp này phân tích lược đồ dữ liệu và các thể hiện dữ liệu mà bao gồm thông tin chi tiết về miền ứng dụng. Cách tiếp cận của phương pháp trích xuất được bàn đến trong luận văn này là dựa vào các ràng buộc phụ thuộc bao hàm (Inclusion Dependencies) trên mô hình quan hệ. Phụ thuộc bao hàm hình thức hóa các ràng buộc liên quan hệ giữa các thuộc tính. Đây là một loại ràng buộc phụ thuộc dữ liệu nhằm đặc tả những giá trị của một thuộc tính được bao hàm trong tập hợp giá trị của thuộc tính khác. Theo đó, luận văn gồm các phần như sau: phần mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo. Nội dung Chương 1 là nhằm giới thiệu khái quát các ràng buộc dữ liệu trong mô hình quan hệ. Nội dung Chương 2 là nhằm giới thiệu khái quát mô hình ER và một mô hình mở rộng của mô hình ER, đó là mô hình EER. Dựa vào các nội dung trình bày trong Chương 1 và Chương 2, Chương 3 tập trung trình bày phương pháp trích xuất một mô hình EER từ mô hình quan hệ có sử dụng các ràng buộc phụ thuộc bao hàm. Do thời gian còn hạn chế nên Luận văn không thể tránh khỏi những nhầm lẫn và thiếu sót. Chúng tôi mong nhận được những ý kiến đóng góp của quý thầy cô, bạn bè và những người quan tâm đến Luận văn này.
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC
NGUYỄN THẾ ANH
Tìm hiểu các phụ thuộc bao hàm
trong mô hình quan hệ và ứng dụng vào việc chuyển đổi sang mô hình EER
CHUYấN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Huế, 2015
Trang 2Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các thuật ngữ
Danh mục các chữ viết tắt
Danh mục các bảng
Danh mục các hình vẽ, đồ thị
MỞ ĐẦU 1
Chương 1 CÁC RÀNG BUỘC DỮ LIỆU TRONG MÔ HÌNH QUAN HỆ 3
1.1 Giới thiệu chung về vấn đề toàn vẹn ngữ nghĩa 3
1.2 Khái niệm ràng buộc toàn vẹn 3
1.2.1 Các yếu tố của ràng buộc toàn vẹn 4
1.2.2 Phân loại ràng buộc toàn vẹn 7
1.3 Các ràng buộc cấu trúc 10
1.4 Các ràng buộc phụ thuộc 10
1.4.1 Phụ thuộc hàm 11
1.4.2 Phụ thuộc bao hàm 11
1.4.3 Phụ thuộc đa trị 12
1.5 Kết luận 13
Chương 2 GIỚI THIỆU MÔ HÌNH THỰC THỂ - MỐI QUAN HỆ MỞ RỘNG 15
2.1 Giới thiệu 15
2.2 Mô hình thực thể - mối quan hệ (ER) 15
2.2.1 Thực thể 15
2.2.2 Thuộc tính 16
Trang 32.3 Mô hình thực thể - mối quan hệ mở rộng (EER) 18
2.3.1 Lớp cha, lớp con và sự kế thừa 18
2.3.2 Chuyên biệt hóa và tổng quát hóa 19
2.3.3 Mô hình kiểu Union và kiểu Category 25
2.4 Chuyển đổi mô hình EER sang mô hình quan hệ 27
2.5 Kết luận 37
Chương 3 TRÍCH XUẤT MÔ HÌNH EER TỪ MÔ HÌNH QUAN HỆ CÓ SỬ DỤNG CÁC RÀNG BUỘC PHỤ THUỘC BAO HÀM 38
3.1 Giới thiệu 38
3.2 Các giả thuyết 39
3.3 Tiến trình trích xuất 45
3.3.1 Phân loại các quan hệ và các thuộc tính 46
3.3.2 Phát hiện các phụ thuộc bao hàm 47
3.3.3 Xác định tập thực thể 51
3.3.4 Xác định mối quan hệ 53
3.3.5 Các mối quan hệ được xác định bởi các quan hệ biểu diễn mối quan hệ59 3.3.6 Các mối quan hệ kết tập 62
3.4 Gán các thuộc tính 64
3.5 Ví dụ minh họa tiến trình trích xuất từ mô hình quan hệ sang mô hình EER 66
3.6 Kết luận 67
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69
TÀI LIỆU THAM KHẢO 70
Trang 4Attribute Thuộc tính
Extended Entity-Relationship Model Mô hình thực thể - mối quan hệ mở rộng
Regular Relationship Relation Quan hệ mối quan hệ thông thường
Trang 5Single-valued Attribute Thuộc tính đơn trị
Specific Relationship Relation Quan hệ mối quan hệ chuyên biệt
Trang 6CSDL Cơ sở dữ liệu
Trang 7Số hiệu
3.3 Xác định EER được cấu trúc bởi các mối quan hệ và các
Trang 8Số hiệu
2.3 Ký hiệu chuyên biệt hóa và các lớp con trong mô hình EER 20
2.7 Chuyên biệt hóa toàn phần và trùng lặp (sử dụng chữ o) 22
2.8 Đưa thuộc tính phân biệt lớp con với trường hợp lớp con phân
2.9 Đưa thuộc tính phân biệt lớp con với trường hợp lớp con
2.12 Sự hợp nhất của hai hay nhiều lớp sử dụng ký hiệu category 26
3.2 Các bước trong kỹ thuật đảo ngược của cơ sở dữ liệu quan hệ 45
Trang 93.6 Xác định một quan hệ bao hàm 56
3.9 Một quan hệ biểu diễn mối quan hệ thông thường xác định
Trang 10MỞ ĐẦU
Chúng ta đang sống và làm việc trong thời đại phát triển công nghệ thông tin, nhu cầu sử dụng thông tin ngày càng nhiều Yêu cầu của việc truy cập thông tin không những phải nhanh mà còn cần chính xác và đầy đủ Với một lượng lớn dữ liệu từ các lĩnh vực khác nhau đang ngày càng tăng nhanh Do đó, để sử dụng và khai thác dữ liệu một cách hiệu quả thì việc thiết kế cơ sở dữ liệu (CSDL) trở thành một vấn đề đã và đang được quan tâm đối với nhiều nhà làm tin học
Tuy nhiên, trong nhiều tổ chức, một số lượng lớn các CSDL đã được phát triển trong nhiều năm qua Khó khăn chính đối với các CSDL này là ý nghĩa của dữ liệu thường bị mất, do đó không ai biết được chính xác dữ liệu và mối quan hệ giữa các dữ liệu là gì Điều này gây cản trở việc sử dụng dữ liệu một cách hiệu quả và làm giảm đi tính chính xác của các hoạt động bảo trì Việc hiểu biết này chỉ có thể đạt được bằng cách tăng mức độ trừu tượng của chính CSDL và thể hiện nó như là một mô hình mức khái niệm Vì mô hình ER là mô hình mức khái niệm được sử dụng rộng rãi nên luận văn sẽ tìm hiểu một phương pháp trích xuất một mô hình ER mở rộng (EER) từ một CSDL đang tồn tại Phương pháp này phân tích lược đồ dữ liệu và các thể hiện dữ liệu
mà bao gồm thông tin chi tiết về miền ứng dụng
Cách tiếp cận của phương pháp trích xuất được bàn đến trong luận văn này là dựa vào các ràng buộc phụ thuộc bao hàm (Inclusion Dependencies) trên mô hình quan hệ Phụ thuộc bao hàm hình thức hóa các ràng buộc liên quan hệ giữa các thuộc tính Đây là một loại ràng buộc phụ thuộc dữ liệu nhằm đặc tả những giá trị của một thuộc tính được bao hàm trong tập hợp giá trị của thuộc tính khác
Theo đó, luận văn gồm các phần như sau: phần mở đầu, ba chương nội dung, phần kết luận và tài liệu tham khảo
Nội dung Chương 1 là nhằm giới thiệu khái quát các ràng buộc dữ liệu trong mô hình quan hệ
Nội dung Chương 2 là nhằm giới thiệu khái quát mô hình ER và một mô hình
mở rộng của mô hình ER, đó là mô hình EER
Trang 11Dựa vào các nội dung trình bày trong Chương 1 và Chương 2, Chương 3 tập trung trình bày phương pháp trích xuất một mô hình EER từ mô hình quan hệ có sử dụng các ràng buộc phụ thuộc bao hàm
Do thời gian còn hạn chế nên Luận văn không thể tránh khỏi những nhầm lẫn và thiếu sót Chúng tôi mong nhận được những ý kiến đóng góp của quý thầy cô, bạn bè và những người quan tâm đến Luận văn này
Trang 12Chương 1 CÁC RÀNG BUỘC DỮ LIỆU TRONG MÔ HÌNH QUAN HỆ
1.1 Giới thiệu chung về vấn đề toàn vẹn ngữ nghĩa
Một số vấn đề khó khăn cho một hệ cơ sở dữ liệu là bảo đảm tính nhất quán CSDL Một trạng thái CSDL được gọi là nhất quán nếu CSDL thỏa một tập các ràng buộc, được gọi là ràng buộc toàn vẹn ngữ nghĩa [3] Duy trì CSDL nhất quán đòi hỏi phải sử dụng đến nhiều cơ chế khác nhau như điều khiển hoạt động đồng thời, độ tin cậy, bảo vệ và kiểm soát tính toàn vẹn ngữ nghĩa Kiểm soát toàn vẹn ngữ nghĩa bảo đảm được tính nhất quán của CSDL bằng cách phế bỏ các chương trình cập nhật dẫn đến các tình trạng CSDL không nhất quán hoặc bằng cách kích hoạt các hành động đặc biệt trên CSDL nhằm hóa giải tác dụng của các chương trình cập nhật Chú ý rằng CSDL đã cập nhật phải thỏa tập các ràng buộc toàn vẹn
Nói chung, các ràng buộc toàn vẹn ngữ nghĩa là những qui tắc biểu thị những hiểu biết (tri thức) về các tính chất của một ứng dụng Chúng định nghĩa các tính chất tĩnh hoặc động của các ứng dụng mà chúng ta không thể nắm bắt trực tiếp bằng các khái niệm đối tượng và hoạt động vào trong một mô hình dữ liệu Vì vậy khái niệm về một qui tắc toàn vẹn có liên quan mật thiết với mô hình dữ liệu theo nghĩa là những thông tin có ý nghĩa hơn về ứng dụng có thể nắm bắt được nhờ các qui tắc này Vì vậy chúng có vai trò rất quan trọng trong quá trình thiết kế CSDL Chúng ta có thể diễn tả mối liên kết giữa các đối tượng, chẳng hạn như các phụ thuộc bao hàm trong mô hình quan hệ hoặc mô tả các đặc tính và cấu trúc của đối tượng Sự đa dạng của ứng dụng CSDL đòi hỏi phải có các ràng buộc toàn vẹn mạnh mẽ để làm phong phú thêm cho
mô hình dữ liệu
1.2 Khái niệm ràng buộc toàn vẹn
Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc tính, giữa các bộ; sự liên hệ này có thể xảy ra trong cùng một quan hệ hoặc trong các quan hệ của một lược đồ CSDL Các mối liên hệ này là những điều kiện bất biến mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thoả mãn ở mọi thời điểm Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực
Trang 13Chẳng hạn mỗi sinh viên phải có một mã sinh viên duy nhất, hai thí sinh dự thi vào một trường phải có số báo danh khác nhau, một sinh viên dự thi một môn học không quá 3 lần,…
Nhiệm vụ của người phân tích thiết kế là phải phát hiện càng đầy đủ các ràng buộc toàn vẹn càng tốt và mô tả chúng một cách chính xác trong hồ sơ phân tích thiết
kế - đó là một việc làm rất quan trọng Ràng buộc toàn vẹn được xem như là một công cụ để diễn đạt ngữ nghĩa của CSDL Một CSDL được thiết kế cồng kềnh nhưng
nó thể hiện được đầy đủ ngữ nghĩa của thực tế vẫn có giá trị cao hơn rất nhiều so với một cách thiết kế gọn nhẹ nhưng nghèo nàn về ngữ nghĩa vì thiếu các ràng buộc toàn vẹn của CSDL
Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành vào thời điểm cập nhật dữ liệu (thêm, sửa, xoá) Những ràng buộc toàn vẹn phát sinh phải cần được ghi nhận và xử lý một cách tường minh (thường là bởi một hàm chuẩn hoặc một đoạn chương trình)
Ràng buộc toàn vẹn và kiểm tra sự vi phạm ràng buộc toàn vẹn là hai trong
số những vấn đề quan trọng trong quá trình phân tích thiết kế cơ sở dữ liệu, nếu không quan tâm đúng mức đến những vấn đề trên, thì có thể dẫn đến những hậu quả nghiêm trọng về tính an toàn và toàn vẹn dữ liệu, đặc biệt là đối với những cơ sở dữ liệu lớn
1.2.1 Các yếu tố của ràng buộc toàn vẹn
Mỗi ràng buộc toàn vẹn có bốn yếu tố: điều kiện, bối cảnh, bảng tầm ảnh hưởng
và hành động phải cần thực hiện khi phát hiện có ràng buộc toàn vẹn bị vi phạm:
- Điều kiện:
Điều kiện của ràng buộc toàn vẹn là sự mô tả, và biểu diễn hình thức nội dung của nó Điều kiện của một ràng buộc toàn vẹn R có thể được biểu diễn bằng ngôn ngữ tự nhiên, ngôn ngữ đại số quan hệ, ngôn ngữ mã giả, ngôn ngữ truy vấn SQL,… ngoài ra điều kiện của ràng buộc toàn vẹn cũng có thể được biểu diễn bằng phụ thuộc hàm
Ví dụ 1.1 Sau đây là một số ràng buộc toàn vẹn trên lược đồ CSDL quản lý
sinh viên
Mỗi lớp học phải có một mã số duy nhất để phân biệt với các lớp học khác trong trường
Trang 14Mỗi lớp học phải thuộc về một khoa của trường
Mỗi sinh viên có một mã số sinh viên duy nhất, không trùng với bất cứ sinh viên nào trong trường
Mỗi học viên phải đăng ký vào một lớp học trong trường Mỗi học viên chỉ được thi tối đa 3 lần cho mỗi môn học
Tổng số học viên của một lớp phải lớn hơn hoặc bằng số lượng đếm được của một lớp tại một thời điểm nào đó
- Bối cảnh:
Bối cảnh của ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra khi tiến hành cập nhật dữ liệu Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan
Thời điểm cần phải kiểm tra ràng buộc toàn vẹn chính là thời điểm cập nhật
dữ liệu
Một bảng tầm ảnh hưởng của một ràng buộc toàn vẹn có dạng sau:
Bảng này chứa toàn các ký hiệu +, – hoặc -(*)
Chẳng hạn + tại (dòng r1, cột thêm) thì có nghĩa là khi thêm một bộ vào quan hệ
r1 thì ràng buộc toàn vẹn bị vi phạm
Trang 15Dấu - Tại ô (dòng r2, cột sửa) thì có nghĩa là khi sửa một bộ trên quan hệ r2thì ràng buộc toàn vẹn không bị vi phạm
Quy ước:
- Không được sửa thuộc tính khoá
- Nếu không bị vi phạm do không được phép sửa đổi thì ký hiệu là - (*)
- Hành động cần phải có khi phát hiện có ràng buộc toàn vẹn bị vi phạm:
Khi một ràng buộc toàn vẹn bị vi phạm, cần có những hành động thích hợp Thông thường có 2 giải pháp:
Thứ nhất: Đưa ra thông báo và yêu cầu sửa chữa dữ liệu của các thuộc tính
cho phù hợp với quy tắc đảm bảo tính nhất quán dữ liệu Thông báo phải đầy đủ và phải thân thiện với người sử dụng Giải pháp này là phù hợp cho việc xử lý thời gian thực
Thứ hai: Từ chối thao tác cập nhật Giải pháp này là phù hợp đối với việc xử lý
theo lô Việc từ chối cũng phải được lưu lại bằng những thông báo đầy đủ, rõ ràng vì sao thao tác bị từ chối và cần phải sữa lại những dữ liệu nào?
Khóa nội, khoá ngoại, giá trị NOT NULL là những ràng buộc toàn vẹn miền
giá trị của các thuộc tính Những ràng buộc toàn vẹn này là những ràng buộc toàn vẹn đơn giản trong CSDL
Các hệ quản trị cơ sở dữ liệu thường có các cơ chế tự động kiểm tra các ràng buộc toàn vẹn về miền giá trị của khóa nội, khoá ngoại, giá trị NOT NULL
Việc kiểm tra ràng buộc toàn vẹn có thể tiến hành vào những thời điểm sau đây
Thứ nhất: Kiểm tra ngay sau khi thực hiện một thao tác cập nhật CSDL
Thao tác cập nhật chỉ được xem là hợp lệ nếu như nó không vi phạm bất cứ một ràng buộc toàn vẹn nào, nghĩa là nó không làm mất tính toàn vẹn của CSDL Nếu vi phạm ràng buộc toàn vẹn, thao tác cập nhật bị coi là không hợp lệ và sẽ bị hệ thống hủy bỏ (hoặc có một xử lý thích hợp nào đó)
Thứ hai: Kiểm tra định kỳ hay đột xuất, nghĩa là việc kiểm tra ràng buộc
toàn vẹn được tiến hành độc lập với thao tác cập nhật dữ liệu Đối với những trường hợp vi phạm ràng buộc toàn vẹn, hệ thống có những xử lý ngầm định hoặc yêu cầu người sử dụng xử lý những sai sót một cách tường minh
Trang 161.2.2 Phân loại ràng buộc toàn vẹn
Trong quá trình phân tích thiết kế CSDL, người phân tích phải phát hiện tất
cả các ràng buộc toàn vẹn tiềm ẩn trong CSDL đó Việc phân loại các ràng buộc toàn vẹn là rất có ích, nó nhằm giúp cho người phân tích có được một định hướng để phát hiện các ràng buộc toàn vẹn, tránh bỏ sót Các ràng buộc toàn vẹn có thể được chia làm hai loại chính như sau:
Thứ nhất: Ràng buộc toàn vẹn có phạm vi là một quan hệ bao gồm: ràng
buộc toàn vẹn miền giá trị, ràng buộc toàn vẹn liên thuộc tính, ràng buộc toàn vẹn liên bộ
Thứ hai: Ràng buộc toàn vẹn có phạm vi là nhiều quan hệ bao gồm: ràng buộc
toàn vẹn phụ thuộc tồn tại, ràng buộc toàn vẹn liên bộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan hệ
Để minh hoạ, chúng ta xét ví dụ sau đây:
Ví dụ 1.2 Cho một CSDL C dùng để quản lý việc đặt hàng và giao hàng của
một công ty Lược đồ CSDL C gồm các lược đồ quan hệ sau:
Q1: Khach (MAKH, TENKH, DIACHIKH, DIENTHOAI)
Mô tả:
Mỗi khách hàng có một mã khách hàng (MAKH) duy nhất, mỗi MAKH xác định tên khách hàng (TENKH), địa chỉ (DIACHIKH), số điện thoại (DIENTHOAI)
Q2: Hang (MAHANG, TENHANG, QUYCACH, DVTINH)
Trang 17có thể gồm nhiều mặt hàng Mỗi hoá đơn xác định ngày lập hoá đơn (NGAYLAP), ứng với số đặt hàng nào (SODH) Giả sử rằng hoá đơn bán hàng theo yêu cầu của chỉ một đơn đặt hàng có mã số là SODH và ngược lại, mỗi đơn đặt hàng chỉ được giải quyết chỉ trong một hoá đơn Do điều kiện khách quan có thể công ty không giao đầy
đủ các mặt hàng cũng như số lượng từng mặt hàng yêu cầu trong đơn đặt hàng nhưng không bao giờ giao vượt ngoài yêu cầu Mỗi hoá đơn xác định một trị giá của những mặt hàng trong hoá đơn (TRIGIAHD) và một ngày xuất kho giao hàng cho khách (NGAYXUAT)
Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)
1.2.2.1 Ràng buộc toàn vẹn có bối cảnh gồm một quan hệ
a Ràng buộc toàn vẹn liên bộ
+ Ràng buộc toàn vẹn về khoá chính
Đây là một trường hợp đặc biệt của ràng buộc toàn vẹn liên bộ, ràng buộc toàn vẹn này rất phổ biến và thường được các hệ quản trị CSDL tự động kiểm tra
Ví dụ 1.3 Với r là một quan hệ trên lược đồ quan hệ Khach ta có ràng buộc
toàn vẹn sau:
R1: t1, t2 r
t1.MAKH ≠ t2.MAKH
+ Ràng buộc toàn vẹn về tính duy nhất
Ví dụ 1.4 Mỗi phòng ban phải có một tên gọi duy nhất
Ngoài ra nhiều khi ta còn gặp những ràng buộc toàn vẹn khác chẳng hạn như ràng buộc toàn vẹn sau trong quan hệ sau đây:
Trang 18KETQUA(MASV, MAMH, LANTHI, DIEM)
Mỗi sinh viên chỉ được đăng thi mỗi môn thi tối đa là 3 lần
b Ràng buộc toàn vẹn về miền giá trị
Ràng buộc toàn vẹn có liên quan đến miền giá trị của các thuộc tính trong một quan hệ Ràng buộc này thường gặp Thông thường các hệ quản trị CSDL đã tự động kiểm tra (một số) ràng buộc loại này
Ví dụ 1.5 Với r là một quan hệ của Hoadon ta có ràng buộc toàn vẹn sau:
R3: t r
t.TRIGIAHD > 0
c Ràng buộc toàn vẹn liên thuộc tính
Ràng buộc toàn vẹn liên thuộc tính (một quan hệ) là mối liên hệ giữa các thuộc tính trong một lược đồ quan hệ
Ví dụ 1.6 Với r là quan hệ của Hoadon ta có ràng buộc toàn vẹn sau:
R4 : t r
t.NGAYLAP <= t.NGAYXUAT
1.2.2.2 Ràng buộc toàn vẹn có bối cảnh gồm nhiều quan hệ
a Ràng buộc toàn vẹn về khoá ngoài
Ràng buộc toàn vẹn về khoá ngoài là một trường hợp đặc biệt của ràng buộc bao hàm Cũng giống như ràng buộc toàn vẹn về khoá nội, loại ràng buộc toàn vẹn này rất phổ biến trong các CSDL
Ví dụ 1.7
R2.dathang[MAKH] khach[MAKH]
b Ràng buộc toàn vẹn liên thuộc tính liên quan hệ
Ràng buộc loại này là mối liên hệ giữa các thuộc tính trong nhiều lược đồ quan hệ
Ví dụ 1.8 Với r, s lần lượt là quan hệ của Dathang và Hoadon Ta có ràng
buộc toàn vẹn R5 như sau:
Trang 19Nếu t1.SODH=t2.SODH thì t1.NGAYDH <= t2.NGAYXUAT
c Ràng buộc toàn vẹn liên bộ liên quan hệ
Ràng buộc loại này là mối liên hệ giữa các bộ trong một lược đồ cơ sở dữ liệu Chẳng hạn như tổng số tiền phải trả trong mỗi hoá đơn (chitiethd) phải bằng TRỊ GIÁ HOÁ ĐƠN của hoá đơn đó trong quan hệ Hoadon Hoặc số lượng học viên trong một lớp phải bằng SOHOCVIEN của lớp đó
Ngoài ra còn có một số loại RBTV khác như: ràng buộc toàn vẹn về thuộc tính tổng hợp, ràng buộc toàn vẹn do tồn tại chu trình, ràng buộc toàn vẹn về giá trị thuộc tính theo thời gian
1.3 Các ràng buộc cấu trúc
Các ràng buộc cấu trúc diễn tả những đặc tính ngữ nghĩa cơ bản vốn có trong
mô hình Thí dụ về những ràng buộc như thế nào là ràng buộc khóa duy nhất trong mô hình quan hệ Vì vậy chúng có vai trò rất quan trọng trong quá trình thiết kế CSDL Chúng tôi có thể diễn tả mối liên kết giữa các đối tượng, chẳng hạn như các phụ thuộc bao hàm trong mô hình quan hệ, hoặc mô tả các đặc tính và cấu trúc của đối tượng
1.4 Các ràng buộc phụ thuộc
Trong vòng hai thập kỷ qua, một số phụ thuộc dữ liệu đã được giới thiệu để tạo thuận lợi cho việc thiết kế "tốt" lược đồ quan hệ Những chuẩn đã được nghiên cứu rộng rãi bao gồm phụ thuộc hàm (FD), phụ thuộc đa trị (MVDs) Những phụ thuộc dữ liệu truyền thống đã dẫn đến các định nghĩa của một số dạng chuẩn Một lược đồ quan
hệ được cho là "tốt" nếu nó là ở dạng chuẩn Q, trong đó Q còn có thể gọi "thứ ba",
"Boyce-Codd", "thứ tư" hay "thứ năm" Bằng việc thiết kế các lược đồ quan hệ trong dạng chuẩn tốt, chúng loại bỏ dư thừa mà có thể có mặt trong một mối quan hệ và phá
vỡ các vấn đề của việc cập nhật bất thường Các dạng chuẩn truyền thống thất bại trong việc xác định dư thừa có thể tồn tại trên một quy mô tổng thể Để giải quyết vấn
đề này, một dạng chuẩn thứ ba cải tiến (3NF) được giới thiệu Nó đã được chứng minh rằng nếu một lược đồ cơ sở dữ liệu D là cải thiện 3NF, khi đó mỗi lược đồ quan hệ
Trang 20trong D cũng là trong Codd 3NF [3] Hơn nữa, các lược đồ cơ sở dữ liệu tổng thể là không có dư thừa (đối với tập hợp các FD còn giữ trong cơ sở dữ liệu)
Nó đã được gợi ý rằng tất cả các phụ thuộc dữ liệu đã được đề xuất, FD và phụ thuộc bao hàm (INDs) có lẽ là hai loại phổ biến nhất của những ràng buộc trong một
cơ sở dữ liệu quan hệ [7]
1.4.1 Phụ thuộc hàm
Khái niệm về phụ thuộc hàm trong một quan hệ (Functional dependencies) là
một khái niệm có tầm quan trọng hết sức lớn đối với việc thiết kế cơ sở dữ liệu quan
hệ
Định nghĩa 1.1 Cho R(U) là một sơ đồ quan hệ với U = {A1,A2,…,An} là tập các thuộc tính X và Y là tập con của U Chúng ta nói rằng X xác định Y hay Y phụ thuộc hàm vào X và kí hiệu X Y nếu với mọi quan hệ r xác định trên R(U) và với hai bộ t1và t2bất kì mà t1[X] = t2[X] thì t1[Y] = t2[Y]
Tập tất cả các phụ thuộc hàm trên một sơ đồ quan hệ kí hiệu là FD (Functional Dependencies) [1] Cần chú ý rằng, chúng ta chỉ xét các phụ thuộc hàm thỏa mãn cho mọi quan hệ trên sơ đồ tương ứng của nó Chúng ta không thể xem xét một phụ thuộc hàm thỏa một quan hệ r đặc biệt (ví dụ quan hệ rỗng) của sơ đồ R rồi sau đó qui nạp
rằng phụ thuộc đó thỏa trên R
1.4.2 Phụ thuộc bao hàm
Một lược đồ quan hệ là một đối tượng R(U), trong đó R là tên của lược đồ quan
hệ và U là một dãy hữu hạn <A1, , Am> của thuộc tính Để đơn giản, chúng ta đôi khi viết A1, , Am cho <A1, , Am> Để tránh các tham chiếu không rõ ràng, chúng tôi cũng viết R A để chỉ một thuộc tính A trong một lược đồ quan hệ R A bộ t trên U
= <A1, , Am> là một chuỗi <a1, , am> đó, ai là một yếu tố từ các miền của Ai Một mối quan hệ (trên R(U), hoặc đơn giản hơn R) là một bộ dữ liệu trên U Nếu t = <a1, , am> là một bộ qua U = <A1, , Am>, và X = <Ai1, , Aik> trong đó i1, , ik là các thành viên riêng biệt của {1, , m}, khi đó t[X] là <Ai1, , Aik> Nếu r là một quan hệ trên R, khi đó r[X] = {t[X]|r} Một lược đồ cơ sở dữ liệu D = {R1(U1), ,
Rn(Un)} (hoặc đơn giản là {R1, , Rn}) là một tập hợp các lược đồ quan hệ [3] Một
cơ sở dữ liệu trên D là một ánh xạ liên kết mà mỗi lược đồ quan hệ Ri(Ui) với một mối quan hệ ri trên Ri Trong phần còn lại của bài viết này, chúng tôi sẽ áp dụng các ký hiệu sau đây: nếu R là một lược đồ quan hệ, thì biểu thị một quan hệ r trên R; Tương
Trang 21tự, đại diện cho một cơ sở dữ liệu d trong lược đồ cơ sở dữ liệu D Người ta biểu diễn thuộc tính đơn lẻ bằng bảng chữ cái từ phía trước của bảng chữ cái (A, B,…) và tập thuộc tính với các chữ cái từ phía sau (X, Y,…)
Định nghĩa 1.2 Giả sử Ri(A1, ,Am) và Rj(B1, , Bp) là hai lược đồ quan hệ (không nhất thiết khác nhau) trong một lược đồ cơ sở dữ liệu D ={R1, , Rn} Nếu X
là một chuỗi các k thành viên riêng biệt của A1, , Am, và nếu Y là một chuỗi các k thành viên riêng biệt của B1, ., Bp, khi đó chúng ta nói rằng phụ thuộc bao hàm (IND) Ri[X]Rj[Y] chứa trong một cơ sở dữ liệu d nếu bất cứ khi nào ri và rj là quan
hệ trong d, nó phải được các trường hợp ri[X]rj[Y]
IND1 (phản xạ): R[X]R[X], nếu X là một chuỗi các thuộc tính khác biệt của
R
IND2 (chiếu & hoán vị): nếu R[A1, ., Am] S[B1, ., Bm], khi đó R[Ai1, , Aik] S[Bi1, , Bm], cho mỗi i1, , ik số nguyên khác biệt từ {1, , m}
IND3 (bắc cầu): Nếu R[X]S[Y] và S[Y] T[Z], khi đó R[X] T[Z]
INDs của mẫu R[X]R[X] được cho là tầm thường Một IND là không tầm thường nếu nó không phải là tầm thường Rõ ràng chúng ta chỉ quan tâm đến INDs đó
là không tầm thường [3], [7]
Một phụ thuộc bao hàm được ký hiệu là A.X B.Y, trong đó A và B là các mối quan hệ, X là một thuộc tính hoặc một tập các thuộc tính của A, và Y là một thuộc tính hoặc một tập các thuộc tính của B X và Y phải có cùng một số thuộc tính Phụ thuộc bao hàm này cho thấy rằng các bộ giá trị xuất hiện trong A.X phải là một tập hợp con của tập hợp các giá trị xuất hiện trong B.Y
1.4.3 Phụ thuộc đa trị
Trong các phần trước chúng ta đã xem xét một loại phụ thuộc dữ liệu giữa các
tập thuộc tính của các sơ đồ quan hệ là phụ thuộc hàm và các sử dụng hàm để chuẩn hóa các sơ đồ quan hệ về dạng chuẩn ba hay về dạng chuẩn Boye-Codd Tuy nhiên, trong thực tế, phụ thuộc hàm không phải là một loại phụ thuộc duy nhất xuất hiện trong các sơ đồ quan hệ mà còn có những phụ thuộc khác nữa cũng là nguyên nhân gây nên sự dư thừa dữ liệu và vấn đề không nhất quán dữ liệu Chẳng hạn, trong một trường đại học, một môn học không phải được dạy bởi một giảng viên và cũng không phải được dạy cho một đối tượng học trong trường học Thực tế, trong trường đại học
Trang 22này, một môn học có thể được dạy bởi một số giảng viên và không phụ thuộc vào dạy cho đối tượng nào Mối quan hệ ràng buộc này giữa các tập thuộc tính và một sơ đồ quan hệ gọi là phụ thuộc đa trị Bây giờ, chúng ta hãy xem định nghĩa hình thức của phụ thuộc đa trị
Định nghĩa 1.3 Cho R(U) là một sơ đồ quan hệ với U { ,A A1 2 , ,A n}là tập các thuộc tính X và Y là tập con của U Chúng ta nói rằng X xác định đa trị Y hay Y phụ thuộc đa trị vào X và kí hiệu Y nếu với mọi quan hệ r xác định trên R(U) và với hai bộ t1 và t2 bất kỳ mà t1[X]t2[X] thì tồn tại bộ t3 sao cho:
] [ ] [ ],
hệ tiên đề đúng đắn và đầy đủ đối với các phụ thuộc hàm và phụ thuộc đa trị
1.5 Kết luận
Các ràng buộc toàn vẹn đảm bảo rằng các thay đổi thực hiện đối với cơ sở dữ liệu bởi những người sử dụng hợp pháp không dẫn đến mất tính toàn vẹn dữ liệu Trong chương này, chúng tôi đã xem xét một số ràng buộc điển hình, bao gồm các ràng buộc miền, các ràng buộc về khóa và một số dạng ràng buộc khác
Các ràng buộc miền đặc tả một tập các giá trị có thể được kết hợp với một thuộc tính Các ràng buộc như vậy cũng có thể cấm sử dụng các giá trị null đối với các thuộc tính đặc biệt
Các ràng buộc toàn vẹn tham chiếu đảm bảo rằng một giá trị xuất hiện trong một quan hệ đối với một tập các thuộc tính nhất định trong một quan hệ khác
Các phụ thuộc hàm là một sự tổng quát hóa của các phụ thuộc khóa Chúng yêu cầu rằng giá trị đối với một tập các thuộc tính nhất định xác định duy nhất giá trị đối với một tập các thuộc tính khác
Các ràng buộc miền, ràng buộc toàn vẹn tham chiếu và các phụ thuộc hàm được kiểm tra khá dễ dàng Việc sử dụng các ràng buộc phức tạp hơn có thể dẫn tới một tổng chi phí đáng kể Chúng ta chỉ ra hai cách để biểu diễn các ràng buộc tổng quát
Trang 23hơn Các khẳng định là các biểu thức khai báo chỉ định các vị từ mà chúng ta yêu cầu luôn luôn được thỏa mãn Các kích hoạt là các thủ tục được thực hiện khi các sự kiện nhất định xảy ra
Trong chương tiếp theo chúng tôi giới thiệu một số khái niệm của mô hình ER, tìm hiểu một mô hình ER mở rộng, đó là mô hình EER do tác giả Elmasri và Navathe
đề xuất tiếp đến chúng tôi trình bày các bước kèm các thuật toán để chuyển đổi mô
hình EER sang mô hình quan hệ
Trang 24Chương 2 GIỚI THIỆU MÔ HÌNH THỰC THỂ MỐI QUAN HỆ MỞ RỘNG
2.1 Giới thiệu
Mô hình ER là một mô hình khái niệm do Peter Chen đề xuất năm 1976, được
sử dụng rộng rãi từ năm 1988, dựa vào việc nhận thức thế giới thực thông qua tập các đối tượng được gọi là các thực thể và các mối quan hệ giữa những đối tượng này Mô hình này thường được biểu diễn dưới dạng lược đồ, được gọi là lược đồ thực thể - mối quan hệ (gọi tắt là lược đồ ER) Trong thực tế đã có nhiều hệ thống thông tin được thiết kế xuất phát từ mô hình ER Song, ta thấy rằng các khái niệm của mô hình ER chỉ dừng lại ở mức các tập thực thể, các mối quan hệ, các thuộc tính, khóa, và các ràng buộc cấu trúc [6]
Chương này sẽ giới thiệu khái quát về mô hình ER, mô hình ER mở rộng, mô hình quan hệ và chuyển đổi mô hình EER sang mô hình quan hệ
2.2 Mô hình thực thể - mối quan hệ (ER)
Mô hình ER thường được biểu diễn dưới dạng lược đồ, được gọi là lược đồ thực thể - mối quan hệ (gọi tắt là lược đồ ER) Trong thực tế đã có nhiều hệ thống thông tin được thiết kế xuất phát từ mô hình ER Ngoài việc đóng vai trò là mô hình khái niệm, mô hình này còn được xem là một trong những mô hình dữ liệu ngữ nghĩa Thông qua mô hình ER, người ta có thể xác định được các tập thực thể của một hệ thống thông tin, đồng thời ngữ nghĩa của mô hình còn được thể hiện bởi các mối quan
hệ giữa các tập thực thể
2.2.1 Thực thể
Thực thể là các đối tượng mà chúng ta cần quản lý Thực thể thường chỉ là một người, nơi chốn, biến cố hay một khái niệm Mỗi thực thể có thể có một hoặc nhiều thuộc tính Các thuộc tính không được trùng tên
Kiểu thực thể (entity type): Là tập thực thể có cùng một tính chất chung Kiểu
thực thể có tên và nên đặt danh từ số ít, dùng chữ in hoa Trong mô hình ER ta sử dụng hình chữ nhật để biểu diễn kiểu thực thể
Thể hiện kiểu thực thể: Là đối tượng cụ thể của một tập thực thể
Trang 25Ví dụ:
- STUDENT là một kiểu thực thể
- Sinh viên Nguyễn Văn A là một thể hiện của kiểu thực thể STUDENT
Kiểu thực thể mạnh (strong entity type): Là kiểu thực thể tồn tại độc lập với
các kiểu thực thể khác
Kiểu thực thể yếu (weak entity type): Là kiểu thực thể mà sự tồn tại của nó
phụ thuộc vào kiểu thực thể khác
Kiểu thực thể mà kiểu thực thể yếu phụ thuộc vào gọi là kiểu thực thể chủ Mối quan hệ giữa kiểu thực thể yếu và kiểu thực thể chủ gọi là mối quan hệ định danh
2.2.2 Thuộc tính
Mỗi kiểu thực thể có một số thuộc tính của nó Một thuộc tính (attribute) là một đặc tính của kiểu thực thể mà đáng quan tâm đối với người thiết kế CSDL Thuộc tính được diễn tả trong sơ đồ ER bằng hình bầu dục
Thuộc tính đơn (simple attribute): Là thuộc tính không thể chia nhỏ thành
Thuộc tính đa trị (multivalued attribute): Là thuộc tính có thể có nhiều hơn
một giá trị cho một thể hiện của thực thể
Ví dụ: Thuộc tính trình độ đại học của một người là thuộc tính đa trị vì một
người có thể có một hoặc nhiều hơn một trình độ đại học
Thuộc tính dẫn xuất (derived attribute): Là thuộc tính mà giá trị của nó có
thể tính toán từ những thuộc tính liên quan, thuộc tính này được biểu diễn bằng hình oval nét đôi
Ví dụ: Thuộc tính thâm niên công tác (Years_Employee) là thuộc tính dẫn xuất
từ thuộc tính ngày tuyển dụng (Date_Employee)
Giá trị null: Trong một số trường hợp, một tập thực thể có thể không có giá trị
thích hợp cho một thuộc tính, lúc đó một giá trị đặc biệt gọi là giá trị null được tạo ra
Ví dụ một người không có trình độ đại học sẽ có giá trị null cho thuộc tính College_Degree trong kiểu thực thể PERSON
Trang 26Thuộc tính khóa: Là một hoặc một vài thuộc tính xác định được những thể
hiện riêng biệt của kiểu thực thể Giá trị thuộc tính khóa dùng để nhận biết mỗi thực thể Ví dụ mã số sinh viên (Student_ID) là thuộc tính khóa của kiểu thực thể STUDENT Có những kiểu thực thể đòi hỏi thuộc tính khóa phức hợp tức là thuộc tính khóa cấu thành từ thuộc tính phức
Các thuộc tính của một kiểu thực thể mà không phải thuộc tính khóa được gọi
là thuộc tính mô tả (descriptive attribute)
2.2.3 Mối quan hệ
Mối quan hệ biểu diễn sự liên hệ giữa các kiểu thực thể mà hệ thống cần quản
lý Thể hiện của một mối quan hệ là một bộ các thể hiện của các kiểu thực thể tham gia vào mối quan hệ đó
Thuộc tính mối quan hệ: Các thuộc tính mô tả các thể hiện của mối quan hệ Bậc của mối quan hệ: Là số kiểu thực thể tham gia vào mối quan hệ đó
Hình 2.1 Mối quan hệ nhị nguyên
Với Hình 2.1 mối quan hệ Completes có bậc 2 (nhị nguyên) vì có hai kiểu thực thể tham gia đó là STUDENT và COURSE Ngoài ra còn có bậc 1 (phản xạ/đệ qui) và bậc 3 trở lên (đa nguyên)
Ràng buộc bản số của mối quan hệ: Giả sử có hai tập thực thể A và B có mối
quan hệ R Ràng buộc về bản số của R cho biết:
- Số thực thể tối thiểu (min) và tối đa (max) của tập thực thể B có mối liên kết với một thực thể của tập A và ngược lại
Phân loại mối quan hệ:
- Mối quan hệ is-a (kế thừa)
- Mối quan hệ nhị nguyên (1-1, 1-N, N-N)
- Mối quan hệ phản xạ (1-1, 1-N, N-N)
- Mối quan hệ đa nguyên (mối quan hệ giữa 3 tập thực thể trở lên)
- Mối quan hệ định danh (mối quan hệ giữa tập thực thể yếu và chủ)
STUDENT
Trang 272.3 Mô hình thực thể - mối quan hệ mở rộng (EER)
Mô hình ER do P Chen đưa ra năm 1976 chỉ dừng lại ở mức các tập thực thể, các mối quan hệ, các thuộc tính, khóa và các ràng buộc cấu trúc Nó chỉ có thể mô hình hóa được các ứng dụng CSDL truyền thống Tuy nhiên, có nhiều ứng dụng phức tạp như thiết kế công trình, các hệ thống thông tin y học hay các hệ thống thông tin liên lạc đòi hỏi các khái niệm bổ sung nếu muốn mô hình hóa chúng một cách chính xác hơn Các kiểu ứng dụng này có nhiều yêu cầu phức tạp hơn các kiểu ứng dụng truyền thống Vấn đề đặt ra là phải xây dựng một mô hình đáp ứng các yêu cầu trên
Do mô hình ER mở rộng chưa có một chuẩn thống nhất nên có nhiều tác giả đã nghiên cứu đến vấn đề này và đưa ra nhiều mô hình khác nhau như: EER, ECR, ERC, ERC+, ORAC Trong luận văn này chúng tôi tập trung giới thiệu những nét đặc trưng của
mô hình EER (một phiên bản của mô hình ER mở rộng) do tác giả Elmasri và Navathe
đề xuất
Mô hình EER bao gồm tất cả các khái niệm trong mô hình ER Thêm vào đó,
nó bổ sung thêm các khái niệm về lớp con, lớp cha và các khái niệm liên quan đến tổng quát hoá và chuyên biệt hoá Một khái niệm khác ở mô hình EER đó là category (phạm trù), nó được sử dụng để diễn tả tập con của sự hợp nhất các đối tượng từ các tập thực thể khác nhau Kết hợp với các khái niệm này là cơ chế kế thừa thuộc tính và các mối quan hệ [6]
2.3.1 Lớp cha, lớp con và sự kế thừa
Lớp cha (superclass): Là lớp thực thể tổng quát trong mối quan hệ is-a, liên
quan với một hoặc nhiều lớp con
Lớp con (subclass): Là sự phân nhóm (chuyên biệt hóa) từ một lớp cha
Ví dụ: Một tổ chức có 2 loại nhân viên:
- Nhân viên làm theo giờ
- Nhân viên hưởng lương tháng
Có các thuộc tính như sau:
- Nhân viên làm theo giờ: Name, Ssn, Birthdate, Address, PayScale
- Nhân viên hưởng lương tháng: Name, Ssn, Birthdate, Address, Salary
SALARIED_EMPLOYEE và HOURLY_EMPLOYEE
Trang 28FName Mlnit LName
Name Ssn Birthday Address
SALARIED_EMPLOYEE HOURLY_EMPLOYEE
EMPLOYEE
d PayScaleSalary
Hình 2.2 Biểu diễn lớp cha và lớp con trong mô hình EER [6]
Gọi mối quan hệ giữa một lớp cha với bất kỳ lớp con nào là mối quan hệ lớp cha/lớp con Ví dụ trên ta có hai mối quan hệ lớp cha/lớp con: EMPLOYEE/SALARY_EMPLOYEE và EMPLOYEE/HOURLY_EMPLOYEE Chú
ý rằng mỗi thực thể của lớp con là thực thể của lớp cha, như vậy các thực thể trong lớp con giống như các thực thể lớp cha nhưng chỉ khác một số chức năng riêng biệt Tuy nhiên, một thực thể của lớp cha không nhất thiết phải là thành viên của lớp con nào
Sự kế thừa thuộc tính: Là tính chất mà theo đó các lớp con kế thừa mọi thuộc
tính của lớp cha đồng thời nó còn kế thừa tất cả các mối quan hệ mà lớp cha tham gia
2.3.2 Chuyên biệt hóa và tổng quát hóa
Chuyên biệt hóa: Là quá trình định nghĩa một hoặc nhiều lớp con từ một lớp
cha và hình thành mối quan hệ lớp cha/lớp con Nó là quá trình trên xuống (top down) Tập hợp lớp con của chuyên biệt hóa được định nghĩa dựa trên một số đặc tính riêng biệt của các thực thể của lớp cha
Các lớp con của chuyên biệt hoá được gắn với đường thẳng nối đến đường tròn rồi nối với lớp cha Ký hiệu tập con trên mỗi đường nối một lớp con tới vòng tròn chỉ
ra chiều của mối quan hệ lớp cha/lớp con Các thuộc tính chỉ áp dụng đối với các tập thực thể riêng biệt chẳng hạn thuộc tính TypeSpeed của lớp SECRETARY được gắn với hình chữ nhật diễn tả lớp con đó Các thuộc tính này được gọi là các thuộc tính riêng của lớp con Một lớp con cũng có thể tham gia vào các mối quan hệ riêng, chẳng
hạn trong hình 2.3 lớp con HOURLY_EMPLOYEE tham gia vào mối quan hệ
BELONG_TO
Trang 29FName Mlnit LName
Name Ssn Birthday Address
SECRECTARY TECHNICIAN ENGINEER
Hình 2.3 Ký hiệu chuyên biệt hóa và các lớp con trong mô hình EER [6]
Sự cần thiết phải sử dụng chuyên biệt hóa: Có 2 lý do chính:
- Một vài thuộc tính chỉ áp dụng cho một số thực thể mà không áp dụng cho tất
cả các thực thể lớp cha
- Chỉ một số thực thể lớp con tham gia vào mối quan hệ nào đó
Tóm lại: Quá trình chuyên biệt hoá cho phép làm những việc sau:
Định nghĩa một tập hợp các lớp con của một tập thực thể
Thiết lập thêm các thuộc tính riêng cho mỗi lớp con
Thiết lập thêm các mối quan hệ riêng giữa mỗi lớp con với các tập thực thể khác hay với các lớp con khác
Tổng quát hóa: Là một tiến trình ngược với chuyên biệt hoá mà ở đó bỏ qua
các đặc điểm khác nhau giữa các tập thực thể, nhận dạng các đặc điểm chung của chúng và khái quát chúng thành một lớp cha duy nhất Tập các thực thể ban đầu là những lớp con riêng biệt Đây là một quá trình từ dưới lên (bottom up)
Ví dụ: Hình 2.4 (a) có 3 tập thực thể CAR và TRUCK và MOTOCYCLE;
chúng có thể được tổng quát hoá thành tập thực thể VEHICLE như trong hình 2.4(b)
Cả ba lớp CAR và TRUCK và MOTOCYCLE đều là lớp con của lớp cha VEHICLE
Trang 30MOTOCYCLE Vehicleld LicensePlateNo
Hình 2.4 Tổng quát hoá CAR, TRUCK và MOTOCYCLE thành VEHICLE [6]
2.3.2.1 Ràng buộc và đặc điểm của chuyên biệt hoá/tổng quát hoá
Các ràng buộc của chuyên biệt hoá/tổng quát hoá
Ràng buộc về tính đầy đủ: Có hai khả năng:
Chuyên biệt hóa toàn phần: Qui định mỗi thể hiện của lớp cha tất yếu phải là
một thể hiện của lớp con
Ví dụ: Chuyên biệt hóa lớp EMPLOYEE thành hai lớp con
SALARIED_EMPLOYEE và HOURLY_EMPLOYEE, sử dụng nét đôi nối từ lớp cha đến vòng tròn (hình 2.5)
FName Mlnit LName
Name Ssn Birthday Address
SALARIED_EMPLOYEE HOURLY_EMPLOYEE
EMPLOYEE
d PayScaleSalary
Hình 2.5 Chuyên biệt hóa toàn phần [6]
Trang 31Chuyên biệt hóa riêng phần: Qui định rằng mỗi thể hiện của lớp cha không
nhất thiết là một thể hiện của lớp con
Ví dụ: Kiểu VEHICLE và hai kiểu con CAR và TRUCK, vì MOTOCYCLE
cũng là VEHICLE nhưng không là CAR hay TRUCK
Hình 2.6 Chuyên biệt hóa riêng phần [6]
Các ràng buộc về tính phân ly: Trả lời câu hỏi mỗi thể hiện của lớp cha có
thể đồng thời là thành viên của hai lớp con hay không?
Ràng buộc này có hai khả năng:
Phân ly (Disjont): Một thể hiện của lớp cha là thành viên của một lớp con và
không thể là thành viên của lớp con khác
Ví dụ: Hình 2.5 chuyên biệt hóa toàn phần và phân ly (sử dụng chữ d trong
vòng tròn) EMPLOYEE thành hai lớp con SALARIED_EMPLOYEE và HOURLY_EMPLOYEE
Trùng lặp (overlap): Một thể hiện của lớp cha có thể đồng thời là thành viên
của nhiều hơn một lớp con
PART
O
MANUFACTURED_PART PURCHASED_PART DrawingNo
ManufactureDate
BatchNo
SupplierName
ListPrice È
È
Hình 2.7 Chuyên biệt hóa toàn phần và trùng lặp (sử dụng chữ o)[6]
Trang 32Các quy tắc chèn và xoá áp dụng đối với chuyên biệt hoá (tổng quát hoá)
Xoá một thực thể từ một lớp cha dẫn đến nó tự động xoá tất cả các thực thể ở
các lớp con mà thực thể này tồn tại
Chèn một thực thể ở lớp cha dẫn đến thực thể này phải được chèn vào tất cả các lớp con mà ở đó thực thể này thỏa mãn thuộc tính xác định Chẳng hạn, chèn một thực thể vào lớp cha của một chuyên biệt hoá toàn phần thì dẫn đến thực thể này phải được bổ sung vào ít nhất một lớp con của chuyên biệt hoá đó
Ta nên tạo ra danh sách đầy đủ các quy tắc cho việc chèn và xoá đối với các tập thực thể khác nhau trong chuyên biệt hoá
Định nghĩa thuộc tính phân biệt lớp con: Thuộc tính phân biệt lớp con là một
thuộc tính của lớp cha mà giá trị của nó có thể xác định lớp con
Trường hợp lớp con phân ly: Ví dụ lớp EMPLOYEE và các lớp con
SALARIED_EMPLOYEE và HOURLY_EMPLOYEE ta bổ sung thuộc tính mới Employee_Type vào kiểu cha, nó xem như thuộc tính phân biệt lớp con Khi nhân viên mới thêm vào lớp cha thuộc tính này có thể nhận các giá trị: “H”: chỉ nhân viên tính giờ, “S”: chỉ nhân viên hưởng lương tháng
FName Mlnit LName
Name Ssn Birthday Address
SALARIED_EMPLOYEE HOURLY_EMPLOYEE
EMPLOYEE
d
PayScale Salary
Employee_Type
Hình 2.8 Đưa thuộc tính phân biệt lớp con với trường hợp lớp con phân ly [6]
Trường hợp trùng lặp: một thể hiện của lớp cha có thể tạo ra nhiều hơn một
thể hiện lớp con Ví dụ, lớp thực thể PART và các lớp con trùng lặp Ta thêm thuộc tính Part_Type vào PART, nó là thuộc tính phức hợp với 2 thành phần Manufactured
và Purchased có kiểu Boolean
Trang 33PART PartNo Description
O
MANUFACTURED_PART PURCHASED_PART DrawingNo
ManufactureDate
BatchNo
SupplierName ListPrice È
È
Part_Type
Hình 2.9 Đưa thuộc tính phân biệt lớp con với trường hợp lớp con trùng lặp [6]
Khi một thể hiện mới đưa vào lớp cha PART các thành phần của Manufactured
và Purchased được mã hóa như sau:
2.3.2.2 Sơ đồ lưới và lược đồ phân cấp của chuyên biệt hoá/tổng quát hoá
Lược đồ phân cấp: Một lược đồ phân cấp của chuyên biệt hóa có ràng buộc là
mọi lớp con chỉ là lớp con duy nhất của quan hệ cha con (không có kế thừa bội)
Sơ đồ lưới: Một sơ đồ lưới thì một lớp con có thể là con của nhiều hơn một
quan hệ cha con
Trang 34Trong sơ đồ lưới hay lược đồ phân cấp chuyên biệt hóa có hơn một mức thì lớp con không chỉ kế thừa các thuộc tính của lớp cha trực tiếp mà còn kế thừa thuộc tính của tất cả các lớp cha tổ tiên của nó từ đường đi đến nút gốc Một lớp con có nhiều hơn một lớp cha gọi là lớp con chia sẻ
Qui tắc: Một thuộc tính (mối quan hệ) bắt nguồn từ cùng một lớp cha
(PERSON) được kế thừa từ hơn một lớp với các đường khác nhau (EMPLOYEE và STUDENT) trong sơ đồ lưới thì nó chỉ kế thừa một lần ở trong lớp con chia sẻ (STUDENT_ASSISTANT)
Cơ chế kế thừa không cho phép kế thừa bội (các lớp con chia sẻ), nên ta phải tạo lớp con bổ sung Bất kỳ sự chuyên biệt hoá tải bội nào cũng đòi hỏi nhiều lớp con
bổ sung
1111111111 Degrees
PERSON
Sex Name
Year
Degree
Major GRADUATE_STUDENT UNDERGRADUATE_STUDENT
STAFF FACULTY STUDENT_ASSISTANT
SEARCH_ASSISTANT TEACHING_ASSISTANT
Course DegreeProgram Class
Trang 35Hình 2.12 Sự hợp nhất của hai hay nhiều lớp sử dụng ký hiệu category [6]
So sánh Category và lớp con chia sẻ:
Lớp ENGINEERING_MANAGER là một lớp con của cả ba lớp cha ENGINEER, MANAGER, SALARIED_EMPLOYEE, vì thế một thực thể thành viên của ENGINEERING_MANAGER phải tồn tại trong cả ba lớp Một category là một tập con của sự hợp nhất các lớp cha của nó nên thực thể là thành viên của OWNER có thể là một COMPANY, BANK, hay một PERSON
Về sự kế thừa thuộc tính
Category: Có nhiều khả năng lựa chọn, tức mỗi thực thể OWNER kế thừa các
thuộc tính của COMPANY, PERSON, hay BANK tuỳ thuộc vào lớp thành phần mà thực thể này thuộc vào
Lớp con chia sẻ: Kế thừa tất cả thuộc tính, ENGINEERING_MANAGER kế
thừa các thuộc tính của tất cả các lớp cha của nó SALARIED_EMPLOYEE, ENGINEER và MANAGER
Lớp cha tổng quát hoá VEHICLE trong Hình 2.4 thì mọi Car và Truck đều là VEHICLE và nó có thể chứa thực thể khác, ví dụ như MOTOCYCLE
Category REGISTERED_VEHICLE chỉ gồm một số Car và Truck không cần thiết phải toàn bộ chúng và không cho phép các tập thực thể khác là thành phần của REGISTERED_VEHICLE
Trang 36Khóa của Category: Lớp cha của một category có thể có các thuộc tính khoá
khác nhau như category OWNER hoặc chúng có thể có cùng các thuộc tính khoá như category REGISTERED_VEHICLE
FOffice Rank
FPhone
Salary
Class Year
CS DC
CD
DName DPhone Office
Hình 2.13 Mô hình EER và CSDL của một trường đại học [6]
2.4 Chuyển đổi mô hình EER sang mô hình quan hệ
Cho đến nay đã có nhiều hệ thống thông tin, đặc biệt là các CSDL quan hệ, được thiết kế xuất phát từ mô hình EER Theo cách này, người ta xem quá trình thiết
kế một CSDL phải trải qua ba giai đoạn Đầu tiên là giai đoạn thiết kế mô hình khái niệm, tiếp đến là giai đoạn thiết kế mô hình logic, và cuối cùng là giai đoạn thiết kế CSDL vật lý Việc chuyển đổi một mô hình EER thành mô hình quan hệ là thuộc giai đoạn thiết kế mô hình logic từ một mô hình khái niệm
Trang 37Để làm cơ sở cho việc chuyển đổi mô hình quan hệ sang mô hình EER được bàn đến trong chương sau, một phương pháp chuyển đổi truyền thống từ mô hình EER sang mô hình quan hệ được đề cập đến trong phần này Phương pháp này thường được
sử dụng để thiết kế các CSDL quan hệ trong giai đoạn thiết kế logic với mô hình khái niệm ban đầu là mô hình EER
Kết quả của việc chuyển đổi này là tập các quan hệ và các khoá chính của chúng Ngoài ra, nhằm chi tiết hoá các kết quả đầu ra của thuật toán chuyển đổi, cũng như xác định rõ ngữ nghĩa mối quan hệ giữa các quan hệ (các bảng) bên trong mô hình quan hệ thu được, chúng tôi còn quan tâm đến việc xác định rõ thông tin về tập các khoá ngoài trên mỗi quan hệ kết quả, đồng thời thực hiện việc hình thức hoá thuật toán chuyển đổi này thông qua một số định nghĩa, ký hiệu quy ước và các thuật toán tựa Pascal
Các quan hệ thu được có thể xem là kết quả của một ánh xạ từ các tập thực thể
và các mối quan hệ tương ứng Thuật toán thực hiện việc ánh xạ từ mô hình EER vào
mô hình quan hệ trải qua các bước: chuyển đổi các tập thực thể mạnh, chuyển đổi các tập thực thể yếu, chuyển đổi mối quan hệ nhị nguyên 1-1, chuyển đổi mối quan hệ nhị
nguyên 1-nhiều, chuyển đổi mối quan hệ nhị nguyên nhiều-nhiều, chuyển đổi mối quan hệ đa nguyên, chuyển đổi thuộc tính đa trị, và chuyển đổi mối quan hệ is-a
Trước tiên, ta quy ước một số ký hiệu như sau:
EER: mô hình EER mà ta muốn thực hiện việc chuyển đổi (đầu vào của thuật
toán)
DB: tập các quan hệ trong mô hình quan hệ (đầu ra của thuật toán)
U R : tập tất cả các thuộc tính của quan hệ R
E : tập tất cả các thuộc tính đơn trị của tập thực thể E
R : tập tất cả các thuộc tính (đơn trị) của mối quan hệ R
PK R : khoá chính của quan hệ R
K E : tập các thuộc tính khoá của tập thực thể E
pk W : khoá bộ phận của một tập thực thể yếu W
FK R : tập tất cả các khoá ngoài của quan hệ R
min(E; R), max(E; R): các chỉ số cực tiểu và cực đại của bản số trên cung nối
tập thực thể E với mối quan hệ R
Trang 38Ngoài ra, để chỉ FK là một khoá ngoài của quan hệ R (hay FK FK R) tham
chiếu đến khoá chính của quan hệ R’, ta sử dụng ký hiệu: FK PK R’ Tên các thuộc
tính có trong FK có thể khác so với tên các thuộc tính có trong PK R’ , nhưng FK cần
thoả mãn đồng thời hai điều kiện sau:
(1) Các thuộc tính trong FK có cùng miền trị với các thuộc tính trong PK R’;
(2) Giá trị của FK tại một bộ t thuộc R chỉ có thể là null hoặc bằng giá trị của
PK R’ tại một bộ t’ nào đó thuộc R’
Các điều kiện trên của khoá ngoài FK đặc tả một ràng buộc toàn vẹn tham chiếu giữa hai quan hệ R và R’
Lưu ý rằng, để chỉ ràng buộc toàn vẹn tham chiếu này, đồng thời tên các thuộc
tính có trong FK phải trùng tên với các thuộc tính tương ứng có trong PK R’, ta ký hiệu:
FK PK R’
Thuật toán chuyển đổi từ mô hình EER thành mô hình quan hệ trải qua các bước sau
Bước 1 Chuyển đổi các tập thực thể mạnh
Tương ứng với mỗi tập thực thể mạnh E trong EER, ta tạo ra một quan hệ R
chứa tất cả các thuộc tính đơn trị của tập thực thể đó Đối với mỗi thuộc tính đơn trị và
phức hợp trên E phải được chuyển thành các thuộc tính đơn trên R Chuyển đổi này nhằm cho phép biểu diễn mỗi thực thể của E bởi một bộ của quan hệ R Ta có:
U R = E Ngoài ra, chọn PK R là một trong những thuộc tính khoá của E Nghĩa là:
PK R = k, với k K E Như vậy, ta có thuật toán chuyển đổi các tập thực thể mạnh là như sau
Thuật toán 2.1 Chuyển đổi các tập thực thể mạnh
+ Vào: Các tập thực thể mạnh E thuộc EER
+ Ra: Các quan hệ R thuộc DB và các PK R tương ứng
+ Phương pháp:
1 DB:= ;
2 for mỗi tập thực thể mạnh E trong EER do
3 Tạo ra một quan hệ R với U R = E;
4 Chọn PK R = k, với k K E;
6 endfor;
Trang 39Bước 2 Chuyển đổi các tập thực thể yếu
Với mỗi tập thực thể yếu W của tập thực thể chủ E trong EER, ta tạo ra một quan hệ R chứa tất cả các thuộc tính đơn trị của W (các thuộc tính phức hợp cũng được chuyển thành các thuộc tính đơn) cộng với các thuộc tính khoá ngoài của R tham chiếu đến khoá chính của quan hệ R’ tương ứng với tập thực thể chủ E Tức: U R = W È F, với: F FK R : F PK R’ Chọn PK R là hợp của khoá bộ phận của W với PK R’ Hay: PK R
= pk WÈ F
Một cách tổng quát, nếu một tập thực thể yếu W có thể có nhiều tập thực thể
chủ thì thuật toán chuyển đổi các tập thực thể yếu là như sau
Thuật toán 2.2 Chuyển đổi các tập thực thể yếu
+ Vào: Các tập thực thể yếu W thuộc EER
+ Ra: Các quan hệ R thuộc DB và các PK R , FK R tương ứng
U
1
È
i R i
PK
1
È
6 Chọn FK R {F i i1,2, , k};
8 endfor;
Bước 3 Chuyển đổi mối quan hệ nhị nguyên 1-1
Với mỗi mối quan hệ R là mối quan hệ nhị nguyên 1-1 trong EER, ta xác định các quan hệ S và S’ tương ứng với các tập thực thể E và E’ tham gia vào mối quan hệ
R Khi đó, tuỳ thuộc vào sự tham gia của E và E’ đối với mối quan hệ R là toàn bộ hay
cục bộ (chỉ số cực tiểu của bản số tại cung nối tương ứng trong sơ đồ EER là 1 hay 0)
mà ta có các chọn lựa cách thực hiện khác nhau cho việc chuyển đổi