Các thuộc tính liên kết với học sinh là mã học sinh, tên, và tín dụng tot.Các thuộc tính là một phần của khóa chính sẽ được gạch chân xem Phần 6.5.2.2 Bộ mối kết hợp Mối quan hệ là sự kế
Trang 1TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA CÔNG NGHỆ THÔNG TIN
HỌC PHẦN: CƠ SỞ DỮ DỮ LIỆU NÂNG CAO
BÁO CÁO TIỂU LUẬN TÌM HIỂU – MICROFT ACCESSỨNG DỤNG – HỆ THỐNG QUẢN LÝ KHO ĐIỆN THOẠI DI ĐỘNG
Giảng viên hướng dẫn:
Trần Sơn Hải
Nhóm sinh viên thực hiện: 5C-2F
Đinh Ngọc Ân – 3121410062 (Nhóm 5)
Vũ Trung Hiếu – 3121410202 (Nhóm 5) Nguyễn Văn Long – 3121410299 (Nhóm 2)
TP HCM THÁNG 12/2023
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
Trang 3LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn đến cô Trần Sơn Hải – giảng viên bộ môn “Cơ sở
dữ liệu nâng cao” thuộc Khoa Công Nghệ Thông Tin, trường Đại học Sài Gòn, đã trang bị cho chúng em những kiến thức, kỹ năng cơ bản cần có để có thể hoàn thành tiểu luận này.
Tuy nhiên, trong quá trình hoàn thiện tiểu luận, với vốn kiến thức cũng như kinh nghiệm còn rất khiêm tốn và là bước đầu làm quen với công việc nghiên cứu mang tính thực nghiệm, chúng em vẫn còn nhiều thiếu sót, hạn chế trong việc tìm hiểu thông tin Rất mong được sự quan tâm, góp ý của thầy để tiểu luận của chúng
em được đầy đủ và hoàn chỉnh hơn.
Xin kính chúc thầy Trần Sơn Hải dồi dào sức khỏe và hạnh phúc để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau Xin chân thành cảm ơn.
Tp.HCM tháng 12 năm 2023
Sinh viên thực hiện
Đinh Ngọc Ân
Vũ Trung Hiếu Nguyễn Văn Long
Trang 4LỜI MỞ ĐẦU
Kính chào Thầy,
Em xin gửi đến Thầy báo cáo tiểu luận môn học "Cơ sở dữ liệu nâng cao" của nhóm chúng em Trong báo cáo này, chúng em sẽ trình bày về những kiến thức và kỹ năng chúng em đã học được trong quá trình nghiên cứu và thực hành môn học này.
Cơ sở dữ liệu là một lĩnh vực quan trọng và không thể thiếu trong thế giới kỹ thuật số hiện đại Với sự phát triển của công nghệ thông tin, cơ sở dữ liệu nâng cao
đã trở thành một yếu tố không thể thiếu trong việc xây dựng và quản lý các hệ thống thông tin lớn và phức tạp Trên cơ sở dữ liệu cơ bản, môn học "Cơ sở dữ liệu nâng cao" đã giúp em khám phá sâu hơn về các khái niệm và công nghệ mới trong lĩnh vực này.
Trong báo cáo này, chúng em sẽ trình bày về những nội dung chính đã được học, thông qua việc dịch thuật chương 6 trong tài liệu “database-system-concept-7” –
“Database Design Using the E-R Model”, tìm hiểu và đánh giá hệ quản trị cơ sở dữ liệu “Microsoft Access” và ứng dụng hệ quản trị này trong việc phát triển xây dựng
“Hệ thống kho quản lý điện thoại di động”.
Qua quá trình học môn này, chúng em đã nhận thấy sự quan trọng của việc hiểu và áp dụng các nguyên tắc và thuật toán của cơ sở dữ liệu nâng cao Chúng em
đã có cơ hội nghiên cứu và thảo luận với các bạn học trong lớp, từ đó mở rộng kiến thức và nhận thức về các vấn đề và thách thức thực tế trong quản lý dữ liệu.
Em xin chân thành cảm ơn Thầy vì sự hướng dẫn và sự quan tâm trong suốt quá trình học môn này Nhờ môn học "Cơ sở dữ liệu nâng cao", em đã có cơ sở vững chắc để tiếp tục khám phá và phát triển trong lĩnh vực này Em hy vọng báo cáo tiểu luận này sẽ phản ánh được những nỗ lực và thành tựu của chúng em trong môn học này.
Xin kính chúc Thầy sức khỏe và thành công trong công việc giảng dạy.
Trang 5TÀI LIỆU THAM KHẢO
[1] Tài liệu dịch : “Database-System-Concept-7”[2] ChatGPT
[3] Microsoft – Trang Chủ chính thức
Trang 6MỤC LỤC
LỜI CẢM ƠN 3
LỜI MỞ ĐẦU 4
TÀI LIỆU THAM KHẢO 5
I DỊCH CHAPTER 6 – DATABASE DESIGNER USING THE E-R MODEL trong tài liệu “Database-system-concept-7 9”.
1 Tổng quản về quá trình thiết kế 9
1.1 Giai đoạn thiết kế 9
1.2 Các phương pháp thay thế 10
2 Mô hình thực thể kết hợp 11
2.1 Tập thực thể 11
2.2 Bộ mối kết hợp 13
3 Thuộc tính phức tạp 16
4 Lập bản đồ Cardinals 18
5 Khóa chính 22
5.1 Tập thực thể 22
5.2 Bộ mối quan hệ 22
5.3 Tập thực thể yếu 23
6 Loại bỏ những thuộc tính dư thừa trong tập thực thể 25
7 Chuyển đổi mô hình thực thể kết hợp sang mô hình quan hệ dữ liệu 28
7.1 Biểu diễn của tập thực thể mạnh 28
7.2 Biểu diễn của tập thực thể mạnh với các thuộc tính phức tạp 28
7.3 Biểu diễn tập thực thể yếu 30
7.4 Biểu diễn các tập quan hệ 30
7.5 Sự trùng lắp của các lược đồ 32
7.6 Kết hợp các lược đồ 32
8 Các tính năng mở rộng của mô hình E-R 33
8.1 Chuyên môn hóa 33
8.2 Khái quát hóa 34
8.3 Kế thừa thuộc tính 35
8.4 Hạn chế về chuyên môn 36
8.5 Tổng hợp 37
8.6 Rút gọn lược đồ quan hệ 38
Trang 78.6.1 Biểu diễn khái quát hóa 38
8.6.2 Đại diện của tập hợp 39
9 Những vấn đề trong thiết kế các mối quan hệ thực thể 39
9.1 Những lỗi sai phổ biến trong mô hình E-R 40
9.2 So sánh việc sử dụng thực thể và thuộc tính 41
9.3 So sánh việc sử dụng thực thể với mối quan hệ 41
9.4 So sánh mối quan hệ nhị phân và mối quan hệ n-ary 42
10 Những ký hiệu thay thế trong mô hình hóa dữ liệu 43
10.1 Những ký hiệu E-R thay thế 44
10.2 Ngôn ngữ mô hình hóa thống nhất (UML) 45
11 Những khía cạnh khác trong việc thiết kế cơ sở dữ liệu 47
11.1 Những yêu cầu về chức năng 47
11.2 Dòng dữ liệu, quy trình công việc (Data Flow, Workflow) 47
11.3 Phát triển lược đồ 48
12 Tổng kết 48
Review Term 49
Mở rộng 50
Tài liệu tham khảo 50
Credits 50
II TÌM HIỂU VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU: MICROSOFT ACCESS 50
1 Tổng quan về Microsoft Access 50
2 Cách cài đặt 51
Cài đặt thông qua Microsoft Office 51
Cài đặt Microsoft Access Runtime 52
3 Cách sử dụng 52
4 Đặc điểm cơ bản 55
5 Ưu - nhược điểm 56
6 Đánh giá – so sánh với MySQL 57
1) Tổng quát 57
2) Hiệu quả và mở rộng 57
3) Chức Năng 58
4) Kiến thức yêu cầu 58
5) Môi Trường Ứng Dụng 58
6) Tích Hợp và Kết Nối 58
Tóm Lược 58
III ỨNG DỤNG VỚI HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ĐÃ TRÌNH BÀY CHO “HỆ THỐNG QUẢN LÝ KHO ĐIỆN THOẠI DI ĐỘNG” 59
1 Ứng dụng 59
Trang 8a) Mô tả bài toán 59
b) Hướng xử lý 59
2 Mô hình 60
a) Entity Relationship Diagram 60
b) Relational Data Model 60
c) Sơ đồ BFD 60
d) Sơ đồ DFD 61
DFD Kiểm kê 62
DFD Quản lý sản phẩm 62
DFD Quản lý phiếu nhập 62
DFD Quản lý phiếu xuất 62
DFD Quản lý nhân viên 62
DFD Quản lý tài khoản 62
DFD Quản lý nhóm quyền 62
DFD Quản lý khách hàng 62
DFD Quản lý nhà cung cấp 62
DFD Quản lý khu vực kho 62
DFD Quản lý dịch vụ 62
DFD Quản lý thuộc tính sản phẩm 62
3 Mô tả bảng dữ liệu 62
4 Ràng buộc 67
5 Dashboard 67
6 Giao diện minh họa 70
7 Kết luận 71
Trang 9I. DỊCH CHAPTER 6 – DATABASE DESIGNER USING THE E-R MODEL trong tài liệu “Database-system-concept-7”.
Cho đến thời điểm này trong văn bản, chúng tôi đã giả định một lược đồ cơ sở dữ liệu nhấtđịnh và nghiên cứu cách thể hiện các truy vấn và cập nhật Bây giờ chúng ta xem xét cách thiết kếlược đồ cơ sở dữ liệu ngay từ đầu Trong chương này, chúng tôi tập trung vào mô hình dữ liệu mốiquan hệ thực thể (ER), cung cấp phương tiện xác định các thực thể được thể hiện trong cơ sở dữliệu và cách các thực thể đó có liên quan với nhau Cuối cùng, thiết kế cơ sở dữ liệu sẽ được thểhiện dưới dạng thiết kế cơ sở dữ liệu quan hệ và một tập hợp các ràng buộc liên quan Trongchương này, chúng tôi trình bày cách một thiết kế ER có thể được chuyển đổi thành một tập hợpcác lược đồ quan hệ và cách có thể nắm bắt được một số ràng buộc trong thiết kế đó Sau đó, trongChương 7, chúng ta xem xét chi tiết liệu một tập hợp các lược đồ quan hệ là một thiết kế cơ sở dữliệu tốt hay xấu và nghiên cứu quá trình tạo ra các thiết kế tốt bằng cách sử dụng một tập hợp cácràng buộc rộng hơn Hai chương này bao gồm các khái niệm cơ bản về thiết kế cơ sở dữ liệu
1 Tổng quản về quá trình thiết kế
Nhiệm vụ tạo một ứng dụng cơ sở dữ liệu là một nhiệm vụ phức tạp, bao gồm thiết kế lược
đồ cơ sở dữ liệu, thiết kế các chương trình truy cập và cập nhật dữ liệu cũng như thiết kế sơ đồ bảomật để kiểm soát quyền truy cập vào dữ liệu Nhu cầu của người dùng đóng vai trò trung tâm trongquá trình thiết kế
Trong chương này, chúng tôi tập trung vào thiết kế lược đồ cơ sở dữ liệu, mặc dù chúng tôi
sẽ phác thảo ngắn gọn một số nhiệm vụ thiết kế khác ở phần sau của chương
1.1 Giai đoạn thiết kế
Đối với các ứng dụng nhỏ, có thể khả thi đối với người thiết kế cơ sở dữ liệu hiểu được cácyêu cầu của ứng dụng để quyết định trực tiếp về các quan hệ sẽ được tạo, các thuộc tính của chúng
và các ràng buộc đối với các quan hệ đó Tuy nhiên, quá trình thiết kế trực tiếpnhư vậy là khó khănđối với các ứng dụng trong thế giới thực vì chúng thường rất phức tạp Thường thì không ai hiểuđược nhu cầu dữ liệu đầy đủ của một ứng dụng Người thiết kế cơ sở dữ liệu phải tương tác vớingười dùng ứng dụng để hiểu nhu cầu của ứng dụng, trình bày chúng theo cách thức cấp cao màngười dùng có thể hiểu được và sau đó chuyển các yêu cầu sang các cấp độ thấp hơn của thiết kế
Mô hình dữ liệu cấp cao phục vụ người thiết kế cơ sở dữ liệu bằng cách cung cấp khung khái niệm
để xác định, một cách có hệ thống, các yêu cầu dữ liệu của người dùng cơ sở dữ liệu và cấu trúc cơ
sở dữ liệu đáp ứng các yêu cầu này
Giai đoạn đầu tiên của thiết kế cơ sở dữ liệu là mô tả đầy đủ nhu cầu dữ liệu củangười dùng cơ sở dữ liệu tiềm năng Người thiết kế cơ sở dữ liệu cần tương tác rộng rãivới các chuyên gia tên miền và người dùng để thực hiện nhiệm vụ này Kết quả của giaiđoạn này là đặc tả các yêu cầu của người dùng Mặc dù có các kỹ thuật biểu diễn các yêucầu của người dùng bằng sơ đồ, nhưng trong chương này chúng ta hạn chế ở việc mô tảbằng văn bản các yêu cầu của người dùng
Tiếp theo, người thiết kế chọn một mô hình dữ liệu và bằng cách áp dụng các kháiniệm của mô hình dữ liệu đã chọn, chuyển các yêu cầu này thành lược đồ khái niệm của
cơ sở dữ liệu Lược đồ được phát triển tại thời điểm này thiết kế mẫu Giai đoạn nàycung cấp một cái nhìn tổng quan chi tiết về doanh nghiệp Mô hình thực thể-mối quan hệ
mà chúng ta nghiên cứu trong phần còn lại của chương này thường được sử dụng để thể
Trang 10hiện thiết kế khái niệm Được phát biểu dưới dạng mô hình mối quan hệ thực thể, lược
đồ khái niệm chỉ định các thực thể được biểu diễn trong cơ sở dữ liệu, các thuộc tính củacác thực thể, mối quan hệ giữa các thực thể và các ràng buộc đối với các thực thể và mốiquan hệ Thông thường, giai đoạn thiết kế khái niệm dẫn đến việc tạo ra một sơ đồ mốiquan hệ thực thể cung cấp sự biểu diễn đồ họa của lược đồ
Người thiết kế xem xét lược đồ để xác nhận rằng tất cả các yêu cầu về dữ liệu thực
sự được thỏa mãn và không xung đột với nhau Cô ấy cũng có thể kiểm tra thiết kế đểloại bỏ bất kỳ tính năng dư thừa nào Trọng tâm của cô tại thời điểm này là mô tả dữ liệu
và mối quan hệ của chúng, thay vì chỉ định chi tiết lưu trữ vật lý
Một lược đồ khái niệm được phát triển đầy đủ cũng chỉ ra các yêu cầu chức năngcủa doanh nghiệp trong một đặc tả các yêu cầu chức năng, người dùng mô tả các loạihoạt động (hoặc giao dịch) sẽ được thực hiện trên dữ liệu Các thao tác ví dụ bao gồmsửa đổi hoặc cập nhật dữ liệu, tìm kiếm và truy xuất dữ liệu cụ thể cũng như xóa dữ liệu
Ở giai đoạn thiết kế khái niệm này, người thiết kế có thể xem lại lược đồ để đảm bảorằng nó đáp ứng các yêu cầu chức năng
Quá trình chuyển từ mô hình dữ liệu trừu tượng sang triển khai cơ sở dữ liệu tiếnhành theo hai giai đoạn thiết kế cuối cùng
Bên trong Giai đoạn thiết kế logic, người thiết kế ánh xạ lược đồ khái niệm cấp caovào mô hình dữ liệu triển khai của hệ thống cơ sở dữ liệu sẽ được sử dụng Mô hình dữliệu triển khai thường là mô hình dữ liệu quan hệ và bước này thường bao gồm việc ánh
xạ lược đồ khái niệm được xác định bằng mô hình mối quan hệ thực thể vào lược đồquan hệ
Cuối cùng, người thiết kế sử dụng lược đồ cơ sở dữ liệu dành riêng cho hệ thống thuđược trong tiếp theo giai đoạn thiết kế vật lý, trong đó các tính năng vật lý của cơ sở dữliệu được xác định Những tính năng này bao gồm hình thức tổ chức tập tin và lựa chọncấu trúc chỉ mục, được thảo luận trong Chương 13 và Chương 14
Lược đồ vật lý của cơ sở dữ liệu có thể được thay đổi tương đối dễ dàng sau khi ứng dụngđược xây dựng Tuy nhiên, những thay đổi đối với lược đồ logic thường khó thực hiện hơn vìchúng có thể ảnh hưởng đến một số truy vấn và cập nhật nằm rải rác trong mã ứng dụng Do đó,điều quan trọng là phải thực hiện giai đoạn thiết kế cơ sở dữ liệu một cách cẩn thận trước khi xâydựng phần còn lại của ứng dụng cơ sở dữ liệu
1.2 Các phương pháp thay thế
Một phần quan trọng của quá trình thiết kế cơ sở dữ liệu là quyết định cách thể hiện trongthiết kế các loại “sự vật” khác nhau như con người, địa điểm, sản phẩm và những thứ tương tự.Chúng tôi sử dụng thuật ngữ thực thể để đề cập đến bất kỳ mục nào có thể nhận dạng rõ ràng nhưvậy Trong cơ sở dữ liệu của trường đại học, ví dụ về các thực thể sẽ bao gồm người hướng dẫn,sinh viên, khoa, khóa học và dịch vụ khóa học Chúng tôi giả định rằng một khóa học có thể diễn ratrong nhiều học kỳ cũng như nhiều lần trong một học kỳ; chúng tôi gọi mỗi khóa học như vậy làmột phần Các thực thể khác nhau có liên quan với nhau theo nhiều cách khác nhau, tất cả đều cầnđược nắm bắt trong thiết kế cơ sở dữ liệu Ví dụ, một sinh viên tham gia khóa học, trong khi ngườihướng dẫn dạy khóa học đó; dạy và nhận là những ví dụ về mối quan hệ giữa các thực thể.Khi thiết kế lược đồ cơ sở dữ liệu, chúng ta phải đảm bảo tránh được hai cạm bẫylớn:
1 Dư thừa:Một thiết kế tồi có thể lặp lại thông tin Ví dụ: nếu chúng tôi lưu trữ mã
định danh khóa học và tiêu đề của một khóa học với mỗi khóa học cung cấp, thì tiêu đề đó
sẽ được lưu trữ dư thừa (tức là nhiều lần, không cần thiết) với mỗi khóa học cung cấp Chỉcần lưu trữ mã định danh khóa học với mỗi khóa học được cung cấp và liên kết tiêu đề với
mã định danh khóa học chỉ một lần là đủ, trong một thực thể khóa học
Sự dư thừa cũng có thể xảy ra trong lược đồ quan hệ Trong ví dụ về trường đại học màchúng ta đã sử dụng cho đến nay, chúng ta có mối quan hệ với thông tin phần và mối quan
Trang 11hệ riêng với thông tin khóa học Giả sử rằng thay vào đó, chúng ta có một mối quan hệ duynhất trong đó chúng ta lặp lại tất cả thông tin khóa học (id khóa học, tiêu đề, tên môn học,tín chỉ) một lần cho mỗi phần (cung cấp) của khóa học Thông tin về các khóa học sau đó sẽđược lưu trữ dư thừa.
Vấn đề lớn nhất với việc trình bày thông tin dư thừa như vậy là các bản sao của một phầnthông tin có thể trở nên không nhất quán nếu thông tin được cập nhật mà không có biệnpháp phòng ngừa để cập nhật tất cả các bản sao của thông tin Ví dụ: các dịch vụ khác nhaucủa một khóa học có thể có cùng mã định danh khóa học nhưng có thể có các tiêu đề khácnhau Khi đó sẽ không rõ tiêu đề chính xác của khóa học là gì Lý tưởng nhất là thông tin sẽxuất hiện ở chính xác một nơi
2 Sự không đầy đủ:Một thiết kế tồi có thể làm cho một số khía cạnh nhất định của
doanh nghiệp trở nên khó khăn hoặc không thể lập mô hình Ví dụ: giả sử rằng, như trongtrường hợp (1) ở trên, chúng ta chỉ có các thực thể tương ứng với việc cung cấp khóa học
mà không có thực thể tương ứng với các khóa học Tương tự, về mặt quan hệ, giả sử chúng
ta có một mối quan hệ duy nhất trong đó chúng ta lặp lại tất cả thông tin khóa học một lầncho mỗi phần mà khóa học được cung cấp Khi đó sẽ không thể trình bày thông tin về mộtkhóa học mới, trừ khi khóa học đó được cung cấp Chúng ta có thể cố gắng giải quyết thiết
kế có vấn đề bằng cách lưu trữ các giá trị null cho thông tin phần Cách giải quyết như vậykhông những không hấp dẫn mà còn có thể bị ngăn cản bởi các ràng buộc khóa chính Tránh những thiết kế xấu là chưa đủ Có thể có một số lượng lớn các thiết kế tốt mà chúng
ta phải chọn Một ví dụ đơn giản, hãy xem xét một khách hàng mua một sản phẩm Việcbán sản phẩm này có phải là mối quan hệ giữa khách hàng và sản phẩm không? Ngoài ra,bản thân việc bán hàng có phải là một thực thể liên quan đến cả khách hàng và sản phẩmkhông? Sự lựa chọn này, mặc dù đơn giản, nhưng có thể tạo ra sự khác biệt quan trọng vềnhững khía cạnh nào của doanh nghiệp có thể được mô hình hóa tốt Xem xét nhu cầu đưa
ra những lựa chọn như thế này cho số lượng lớn các thực thể và mối quan hệ trong mộtdoanh nghiệp trong thế giới thực, không khó để thấy rằng thiết kế cơ sở dữ liệu có thể làmột vấn đề đầy thách thức Quả thực chúng ta sẽ thấy rằng nó đòi hỏi sự kết hợp của cảkhoa học và “khẩu vị tốt”
2 Mô hình thực thể kết hợp
Các mối quan hệ thực thể (E-R mô hình dữ liệu ) được phát triển để hỗ trợ việc thiết kế cơ
sở dữ liệu bằng cách cho phép đặc tả một lược đồ doanh nghiệp đại diện cho cấu trúc logic tổng thểcủa cơ sở dữ liệu
Mô hình ER rất hữu ích trong việc ánh xạ ý nghĩa và sự tương tác của các doanh nghiệptrong thế giới thực vào một lược đồ khái niệm Vì tính hữu ích này nên nhiều công cụ thiết kế cơ sở
dữ liệu dựa trên các khái niệm từ mô hình ER Mô hình dữ liệu ER sử dụng ba khái niệm cơ bản:tập thực thể, tập hợp mối quan hệ và thuộc tính Mô hình ER cũng có một biểu diễn sơ đồ liênquan, đó là sơ đồ ER Như chúng ta đã thấy ngắn gọn ở Phần 1.3.1, một sơ đồ ER có thể thể hiệncấu trúc logic tổng thể của cơ sở dữ liệu bằng đồ họa Sơ đồ ER rất đơn giản và rõ ràng—nhữngđặc điểm có thể góp phần lớn vào việc sử dụng rộng rãi mô hình ER
Phần Công cụ ở cuối chương cung cấp thông tin về một số trình soạn thảo sơ đồ mà bạn cóthể sử dụng để tạo sơ đồ ER
2.1 Tập thực thể
Một thực thể là một “vật” hoặc “vật thể” trong thế giới thực có thể phân biệt được với tất cảcác vật thể khác Ví dụ, mỗi người trong trường đại học là một thực thể Một thực thể có một tậphợp các thuộc tính và các giá trị cho một số tập hợp thuộc tính phải xác định duy nhất một thực thể
Ví dụ, một người có thể có một id người tài sản có giá trị xác định duy nhất người đó Do đó, giátrị 677-89-9011 cho id người sẽ xác định duy nhất một người cụ thể trong trường đại học Tương
tự, các khóa học có thể được coi là các thực thể và id khóa học xác định duy nhất một thực thể
Trang 12khóa học trong trường đại học Một thực thể có thể cụ thể, chẳng hạn như một người hoặc mộtcuốn sách, hoặc nó có thể trừu tượng, chẳng hạn như một khóa học, một khóa học hoặc đặt chỗchuyến bay.
Một tập thực thể là một tập hợp các thực thể cùng loại có chung thuộc tính hoặc thuộc tính
Ví dụ, tập hợp tất cả những người là giảng viên tại một trường đại học nhất định có thể được địnhnghĩa là tập thực thể người hướng dẫn Tương tự, tập thực thể học sinh có thể đại diện cho tập hợptất cả sinh viên trong trường đại học
Trong quá trình mô hình hóa chúng ta thường sử dụng thuật ngữtập thực thểmột cách trừutượng mà không đề cập đến một tập hợp cụ thể của các thực thể riêng lẻ Chúng tôi sử dụng thuậtngữ sự mở rộng của tập thực thể để chỉ tập hợp thực tế của các thực thể thuộc tập thực thể đó Do
đó, tập hợp những người hướng dẫn thực tế trong trường đại học tạo thành phần mở rộng của tậpthực thể người hướng dẫn Sự khác biệt này tương tự như sự khác biệt giữa một quan hệ và một thểhiện quan hệ mà chúng ta đã thấy ở Chương 2
Các tập thực thể không cần phải rời rạc Ví dụ: có thể định nghĩa tập thực thể người bao
gồm tất cả mọi người trong một trường đại học MỘT người thực thể có thể là một người hướng dẫn thực thể, một học sinh thực thể, cả hai, hoặc không cái nào cả
Một thực thể được đại diện bởi một tập hợp các thuộc tính Thuộc tính là các thuộc tính mô
tả được sở hữu bởi mỗi thành viên của một tập thực thể Việc chỉ định một thuộc tính cho một tậpthực thể thể hiện rằng cơ sở dữ liệu lưu trữ thông tin tương tự liên quan đến từng thực thể trong tậpthực thể; tuy nhiên, mỗi thực thể có thể có giá trị riêng cho từng thuộc tính Các thuộc tính có thể
có của người hướng dẫn tập thực thể là mã phòng ban, tên tên phòng ban, , và lương Trong thực tế,
sẽ có các thuộc tính khác, chẳng hạn như số đường, số căn hộ, tiểu bang, mã bưu chính và quốcgia, nhưng chúng tôi thường bỏ qua chúng để giữ cho ví dụ của mình đơn giản Các thuộc tính cóthể có của khóa học tập thực thể là mã khóa học,tiêu đề,tên phòng ban, Vàtín dụng
Trong phần này chúng ta chỉ xem xét các thuộc tínhđơn giản-những phần không được chiathành các phần nhỏ Trong Phần 6.3, chúng ta thảo luận về các tình huống phức tạp hơn trong đócác thuộc tính có thể được
tổng hợp và có nhiều giá trị
Mỗi thực thể có một giá trị cho từng thuộc tính của nó Ví dụ, một điều cụ thể người hướng dẫn thực thể có thể có giá trị 12121 cho mã, giá trị Wu cho tên, giá trị Tài chính cho tên phòng ban
và giá trị 90000 cho lương
Các mã Thuộc tính được sử dụng để nhận dạng duy nhất người hướng dẫn vì có thể cónhiều người hướng dẫn có cùng tên Trước đây, nhiều doanh nghiệp thấy thuận tiện khi sử dụng sốnhận dạng do chính phủ cấp làm thuộc tính có giá trị nhận dạng duy nhất một người Tuy nhiên, đóđược coi là hành vi xấu vì lý do bảo mật và quyền riêng tư Nói chung, doanh nghiệp sẽ phải tạo vàgán mã định danh duy nhất của riêng mình cho mỗi người hướng dẫn
Do đó, cơ sở dữ liệu bao gồm một tập hợp các tập thực thể, mối tập chứa bất kỳ số lượngthực thể nào cùng loại Cơ sở dữ liệu của một trường đại học có thể bao gồm một số tập thực thểkhác Ví dụ, ngoài việc theo dõi người hướng dẫn và sinh viên, trường đại học còn có thông tin vềcác khóa học, được đại diện bởi tập thực thể khóa học với các thuộc tính Mã khóa học tiêu đề tên, ,
hàng tá tập thực thể
Hình 1.1 Mô hình E-R biểu diễn tập thực thể instructor và student
Trang 13Một tập thực thể được biểu diễn trong sơ đồ ER bằng một hình chữ nhật,được chia thànhhai phần Phần đầu tiên, trong văn bản này được tô màu xanh lam, chứa tên của tập thực thể Phầnthứ hai chứa tên của tất cả các thuộc tính của tập thực thể Sơ đồ ER trong Hình 1.1 hiển thị hai tậpthực thể người hướng dẫn và học sinh Các thuộc tính liên kết với người hướng dẫn là mã ngườihướng dẫn ,tên, và lương Các thuộc tính liên kết với học sinh là mã học sinh, tên, và tín dụng tot.Các thuộc tính là một phần của khóa chính sẽ được gạch chân (xem Phần 6.5).
2.2 Bộ mối kết hợp
Mối quan hệ là sự kết hợp giữa nhiều thực thể Ví dụ: chúng ta có thể định nghĩa mối quan
là cố vấn cho sinh viên Shankar Mộttập hợp mối quan hệ là tập hợp các mối quan hệ cùng loại.Hãy xem xét hai tập thực thể người hướng dẫn Và học sinh Chúng tôi xác định tập hợpmối quan hệ cố vấn để biểu thị mối liên hệ giữa sinh viên và người hướng dẫn đóng vai trò là cốvấn của họ Hình 1.2 mô tả sự liên kết này Để hình ảnh đơn giản, chỉ một số thuộc tính của hai tậpthực thể được hiển thị
Một ví dụ về mối quan hệ trong lược đồ ER thể hiện sự liên kết giữa các thực thể được đặttên trong doanh nghiệp trong thế giới thực đang được mô hình hóa Như một minh họa, cá nhân
học sinh có mã 12345, tham gia vào một thể hiện mối quan hệ của cố vấn
Hình 1.2 Bộ mối quan hệ cố vấn (chỉ một số thuộc tính của người hướng dẫn và học sinh là
Hình 1.3 Sơ đồ ER hiển thị tập hợp mối quan hệ cố vấn
Ví dụ về mối quan hệ này thể hiện rằng ở trường đại học, người hướng dẫn Katz đang tưvấn cho sinh viên Shankar
Một tập hợp các mối quan hệ được thể hiện trong sơ đồ ER bằng một hình thoi,được liênkết thông qua dòng đến một số tập thực thể khác nhau (hình chữ nhật) Sơ đồ ER trong Hình 1.3hiển thị hai tập thực thể người hướng dẫn và học sinh, liên quan thông qua một tập hợp mối quan
hệ cố vấn
Trang 14Một ví dụ khác, hãy xem xét hai tập thực thể học sinh và phần, Ở đâu phần biểu thị việccung cấp một khóa học Chúng ta có thể định nghĩa tập hợp mối quan hệ nhận để biểu thị sự liênkết giữa một sinh viên và một bộ phận mà sinh viên đó đang theo học.
Mặc dù trong các ví dụ trước, mỗi tập hợp mối quan hệ là một liên kết giữa hai tập thực thể,nhưng nói chung một tập hợp mối quan hệ có thể biểu thị sự liên kết của nhiều hơn hai tập thựcthể
Về mặt chính thức, một tập hợp mối quan hệ là một mối quan hệ toán học trên ≥ 2 tậpn
thực thể (có thể không khác biệt) Nếu như E1,E2,… , là tập thực thể, sau đó là tập mối quan hệ E N R
là một tập hợp con của
{( ,e1e2,… ,eN ) | e1 ∈ E1, ,… , e2∈E2 e n ∈ E n}
Ở đâu (e1,e2,… , ) là một thể hiện mối quan hệ.e n
Sự liên kết giữa các tập thực thể được gọi là sự tham gia; tức là tập thực thể E1,E2,… ,En
tham gia trong tập hợp mối quan hệ R
Chức năng mà một thực thể thực hiện trong một mối quan hệ được gọi là chức năng củathực thể đó vai trò Vì các tập thực thể tham gia vào một tập mối quan hệ thường khác biệt nên cácvai trò là ẩn và thường không được chỉ định Tuy nhiên, chúng rất hữu ích khi ý nghĩa của một mốiquan hệ cần được làm rõ Đó là trường hợp khi các tập thực thể của một tập quan hệ không khácbiệt; nghĩa là, cùng một tập thực thể tham gia vào một tập hợp mối quan hệ nhiều lần, với các vaitrò khác nhau Trong loại tập hợp mối quan hệ này, đôi khi được gọi là tập hợp đệ quy tập mốiquan hệ, tên vai trò rõ ràng là cần thiết để xác định cách một thực thể tham gia vào một thể hiệnmối quan hệ Ví dụ, hãy xem xét tập thực thể khóa học ghi lại thông tin về tất cả các khóa học đượccung cấp trong trường đại học Để mô tả tình huống trong đó một khóa học (C2) là điều kiện tiênquyết cho khóa học khác (C1), chúng ta có tập hợp mối quan hệ điều kiện tiên quyết được mô hìnhhóa bởi các cặp có thứ tự khóa học các thực thể Khóa học đầu tiên của cặp đóng vai trò là khóa họcC1, trong khi khóa học thứ hai đóng vai trò là khóa học tiên quyết C2
Hình 1.4 Sơ đồ ER với các chỉ số vai trò.
Bằng cách này, mọi mối quan hệ của điều kiện tiên quyết được đặc trưng bởi các cặp (C1,C2); Các cặp (C2, C1) bị loại trừ Chúng tôi chỉ ra vai trò trong sơ đồ ER bằng cách dán nhãn cácđường nối các hình thoi đến hình chữ nhật Hình 1.4 thể hiện các chỉ số vai trò Mã khóa học Và mã điều kiện tiên quyết giưa khóa học tập thực thể và điều kiện tiên quyết tập hợp mối quan hệ.Một mối quan hệ cũng có thể có các thuộc tính được gọi là thuộc tính mô tả Như một ví
dụ về các thuộc tính mô tả cho các mối quan hệ, hãy xem xét tập hợp các mối quan hệ nhận
liên quan đến các tập thực thể học sinh và phần Chúng tôi có thể muốn lưu trữ một thuộc tính mô
tả cấp với mối quan hệ để ghi lại điểm mà sinh viên đạt được trong khóa học
Một thuộc tính của một tập hợp mối quan hệ được thể hiện trong sơ đồ ER bằng một hìnhchữ nhật Chúng ta liên kết hình chữ nhật bằng một đường đứt nét với hình thoi biểu thị tập hợpmối quan hệ đó Ví dụ, Hình 1.5 thể hiện tập hợp mối quan hệ nhận giữa các tập thực thể phần và
mối quan hệ có thể có nhiều thuộc tính mô tả; ví dụ: chúng tôi cũng có thể lưu trữ thuộc tính mô tả
này hay đang kiểm tra (hoặc tham gia) khóa học
Trang 15Quan sát rằng các thuộc tính của hai bộ thực thể đã bị bỏ qua khỏi sơ đồ ER trong Hình 1.5,với sự hiểu biết rằng chúng được chỉ định ở nơi khác trong sơ đồ ER hoàn chỉnh cho trường đạihọc; chúng ta đã thấy các thuộc tính cho học sinh và chúng ta sẽ thấy các thuộc tính của phần sau
này trong chương này Các thiết kế ER phức tạp có thể cần được chia thành nhiều sơ đồ có thể nằm
ở các trang khác nhau Tập hợp mối quan hệ chỉ được hiển thị ở một vị trí nhưng tập hợp thực thể
có thể được lặp lại ở nhiều vị trí Các thuộc tính của một tập thực thể phải được hiển thị ở lần xuấthiện đầu tiên Các lần xuất hiện tiếp theo của tập thực thể phải được hiển thị mà không có thuộctính, để tránh lặp lại thông tin và dẫn đến khả năng không nhất quán trong các thuộc tính được hiểnthị trong các lần xuất hiện khác nhau
Hình 1.5 Sơ đồ ER với một thuộc tính được gắn vào một tập hợp mối quan hệ.
Có thể có nhiều hơn một tập hợp mối quan hệ bao gồm cùng một tập thực thể Ví dụ: giả sửrằng sinh viên có thể là trợ giảng cho một khóa học Sau đó, tập thực thể phần và học sinh có thểtham gia vào một tập hợp mối quan hệ trợ giảng, ngoài việc tham gia vào nhận tập hợp mối quanhệ
Định nghĩa chính thức của một tập hợp mối quan hệ, mà chúng ta đã thấy trước đó, định
nghĩa một tập hợp mối quan hệ như một tập hợp các thể hiện mối quan hệ Hãy xem xét nhận mối
quan hệ giữa học sinh Và phần Vì một học phần không thể có các bản sao, nên một học sinh cụthể chỉ có thể có một liên kết với một phần cụ thể trong nhận mối quan hệ Vì vậy, một học sinhchỉ có thể có một điểm liên quan đến một phần, điều này hợp lý trong trường hợp này Tuy nhiên,nếu chúng ta muốn cho phép một học sinh có nhiều điểm cho cùng một phần, chúng ta cần có mộtthuộc tính điểm nơi lưu trữ một tập hợp các điểm; những thuộc tính như vậy được gọi là thuộc tính
đa giá trị và chúng ta sẽ thấy chúng ở phần sau trong Phần 6.3
Bộ mối quan hệ cố vấn Và nhận cung cấp ví dụ về một tập quan hệ nhị phân—nghĩa là mộttập hợp bao gồm hai tập thực thể Hầu hết các tập hợp mối quan hệ trong hệ thống cơ sở dữ liệuđều là nhị phân Tuy nhiên, đôi khi, các tập mối quan hệ bao gồm nhiều hơn hai tập thực thể Sốtập thực thể tham gia vào một tập mối quan hệ là mức độ của tập hợp mối quan hệ Tập hợp mốiquan hệ nhị phân có cấp độ 2; Một tập hợp mối quan hệ bậc ba là bậc 3
Ví dụ: giả sử rằng chúng ta có một tập thực thể dự án đại diện cho tất cả các dự án nghiêncứu được thực hiện trong trường đại học Hãy xem xét các tập thực thể người hướng dẫn,học sinh,
mỗi sinh viên làm việc trong một dự án phải có một người hướng dẫn liên quan hướng dẫn sinhviên thực hiện dự án Hiện tại, chúng ta bỏ qua hai mối quan hệ đầu tiên, giữa dự án và ngườihướng dẫn, giữa dự án và sinh viên Thay vào đó, chúng tôi tập trung vào thông tin về người hướngdẫn nào đang hướng dẫn sinh viên nào trong một dự án cụ thể
Để thể hiện thông tin này, chúng ta liên kết ba tập thực thể thông qua một tập quan hệ bậc
ba hướng dẫn dự án, liên quan đến các tập thực thể người hướng dẫn học sinh, , và dự án Một ví
dụ về hướng dẫn dự án chỉ ra rằng một sinh viên cụ thể được hướng dẫn bởi một người hướng dẫn
cụ thể về một dự án cụ thể Lưu ý rằng một sinh viên có thể có những người hướng dẫn khác nhaulàm người hướng dẫn cho các dự án khác nhau, điều này không thể nắm bắt được bằng mối quan
hệ nhị phân giữa sinh viên và người hướng dẫn
Các tập hợp mối quan hệ phi nhị phân có thể được xác định dễ dàng trong sơ đồ ER Hình1.6 thể hiện sơ đồ ER biểu diễn tập quan hệ bậc ba hướng dẫn dự án
Trang 163 Thuộc tính phức tạp
Đối với mỗi thuộc tính, có một tập hợp các giá trị được phép, được gọi là lãnhđịa, hoặc tập giá trị, của thuộc tính đó Miền thuộc tính Mã khóa học có thể là tập hợptất cả các chuỗi văn bản có độ dài nhất định Tương tự, miền thuộc tính học kỳ có thể
là các chuỗi từ tập hợp {Fall, Winter, Spring, Summer}
Hình 1.7 Người hướng dẫn thuộc tính tổng hợp tên và Địa chỉ.Một thuộc tính, như được sử dụng trong mô hình ER, có thể được đặc trưngbởi các loại thuộc tính sau
Đơn giản và tổng hợp thuộc tính Trong các ví dụ của chúng ta cho đếnnay, các thuộc tính đã được đơn giản; nghĩa là chúng chưa được chia thành các phầnnhỏ Tổng hợp mặt khác, các thuộc tính có thể được chia thành các phần con (tức làcác thuộc tính khác) Ví dụ, một thuộc tínhtêncó thể được cấu trúc như một thuộc tínhtổng hợp bao gồm tên đầu tiên,chữ cái đầu ở giữa, và Sử dụng các thuộc tínhhọ
tổng hợp trong lược đồ thiết kế là một lựa chọn tốt nếu người dùng muốn tham chiếuđến toàn bộ thuộc tính trong một số trường hợp và chỉ một thành phần của thuộc tínhtrong các trường hợp khác Giả sử chúng ta thêm một địa chỉ vào học sinh tập thựcthể Địa chỉ có thể được định nghĩa là thuộc tính tổng hợp Địa chỉ với các thuộc tính
đường phố thành phố tình trạng, , , và Thuộc về bưu điện mã số.1Các thuộc tính tổnghợp giúp chúng ta nhóm các thuộc tính liên quan lại với nhau, làm cho việc lập môhình trở nên rõ ràng hơn
Cũng lưu ý rằng thuộc tính tổng hợp có thể xuất hiện dưới dạng phân cấp.Trong thuộc tính tổng hợp Địa chỉ, thuộc tính thành phần của nó đường phố có
thể chia tiếp thành số đường,tên đường, và Số nhà Hình 1.7 mô tả các ví dụ về thuộctính tổng hợp cho người hướng dẫn tập thực thể
Giá trị đơn và đa giá trị thuộc tính Tất cả các thuộc tính trong ví dụ
của chúng tôi đều có một giá trị duy nhất cho một thực thể cụ thể Ví dụ, mã học sinh
thuộc tính cho một thực thể sinh viên cụ thể chỉ đề cập đến một mã sinh viên Những
Trang 17thuộc tính như vậy được cho là giá trị duy nhất Có thể có những trường hợp mộtthuộc tính có một tập hợp các giá trị cho một thực thể cụ thể Giả sử chúng ta thêm
thể có 0, một hoặc nhiều số điện thoại và những người hướng dẫn khác nhau có thể có
số điện thoại khác nhau Loại thuộc tính này được gọi là đa giá trị Một ví dụ khác,chúng ta có thể thêm vào người hướng dẫn thực thể đặt một thuộc tính tên phụ thuộc
liệt kê tất cả những người phụ thuộc Thuộc tính này sẽ có nhiều giá trị, vì bất kỳngười hướng dẫn cụ thể nào cũng có thể có không, một hoặc nhiều người phụ thuộc
Thuộc tính dẫn xuất Giá trị của loại thuộc tính này có thể được lấy từgiá trị của các thuộc tính hoặc thực thể liên quan khác Ví dụ, chúng ta hãy nói rằng
viên mà người hướng dẫn tư vấn Chúng ta có thể lấy giá trị cho thuộc tính này bằngcách đếm số lượng học sinh các thực thể liên quan đến người hướng dẫn đó.Một ví dụ khác, giả sử rằng người hướng dẫn tập thực thể có một thuộc tính
một thuộc tính ngày sinh, chúng ta có thể tính toán tuổi từ ngày sinh và ngày hiện tại.Như vậy, tuổi là thuộc tính dẫn xuất Trong trường hợp này, ngày sinh có thể được gọi
là một căn cứ thuộc tính hoặc một được lưu trữ thuộc tính Giá trị của thuộc tính dẫnxuất không được lưu trữ mà được tính toán khi được yêu cầu
Hình 1.8 cho thấy các thuộc tính tổng hợp có thể được biểu diễn như thế nàotrong ký hiệu ER Ở đây, một thuộc tính tổng hợp tên với các thuộc tính thành phần
tên đầu tiên tên đệm, , và họ thay thế thuộc tính đơn giản tên của người hướng dẫn Một
ví dụ khác, giả sử chúng ta thêm một địa chỉ vào người hướng dẫn tập thực thể Địachỉ có thể được định nghĩa là thuộc tính tổng hợp Địa chỉ với các thuộc tính đường phố, thành phố tình trạng, , và Thuộc về bưu điện mã số , Thuộc tính đường phố bản
thân nó là một thuộc tính tổng hợp có các thuộc tính thành phần đượcsố đường tên,
đóng góp bởi "{số điện thoại}”, và một thuộc tính dẫn xuất tuổi, được miêu tả bởi
Ví dụ, nếu tên giá trị cho một người hướng dẫn cụ thể là vô giá trị, chúng tagiả định rằng giá trị này bị thiếu vì mỗi người hướng dẫn đều phải có tên Một giátrị null cho Số nhà thuộc tính có thể có nghĩa là địa chỉ không bao gồm số căn hộ(không áp dụng), số căn hộ tồn tại nhưng chúng tôi không biết là gì, đó là (thiếu),hoặc chúng tôi không biết liệu số căn hộ có phải là một phần địa chỉ của ngườihướng dẫn hay không (không xác định)
Trang 184 Lập bản đồ Cardinals
L p b n đ s l ậ ả ồ ố ượ ng b n đ ả ồ, ho c t l ph n t , bi u th s l ặ ỷ ệ ầ ử ể ị ố ượ ng th c th mà m t th c th ự ể ộ ự ểkhác có thểđược liên kết thông qua một tập hợp mối quan hệ Ánh xạ phần tử hữu ích nhất trong việc mô tảcác tập hợp mối quan hệ nhị phân, mặc dù chúng có thể góp phần mô tả các tập hợp mối quan hệbao gồm nhiều hơn hai tập thực thể
Đối với tập hợp mối quan hệ nhị phân giữa các tập thực thể Và , số lượng bản đồ ánhR A B
xạ phải là một trong những điều sau đây:
Một đối một Một thực thể trong A được liên kết với nhất một thực thể trong vàB
một thực thể trong được liên kết với B nhất một thực thể trong (Xem Hình 1.9a.) A
Một-nhiều Một thực thể trong A được liên kết với bất kỳ số lượng (không hoặcnhiều) thực thể nào trong Một thực thể trong tuy nhiên có thể liên kết với B B nhất một thực thể
trong A (Xem Hình 1.9b.)
Nhiều-một Một thực thể trong A được liên kết với nhất một thực thể trong MộtB
thực thể trong tuy nhiên, có thể được liên kết với bất kỳ số lượng nào (không hoặc nhiều hơn)B
Hình 1.9 Lập bản đồ các số lượng hồng y (a) Một đối một (b) Một-nhiều.
Nhiều nhiều Một thực thể trong A được liên kết với bất kỳ số lượng (không hoặcnhiều) thực thể nào trong và một thực thể trong được liên kết với bất kỳ số lượng (không hoặcB B
nhiều) thực thể nào trong (Xem Hình 1.10b.) A
Trang 19Số lượng bản đồ phù hợp cho một tập hợp mối quan hệ cụ thể rõ ràng phụ thuộc vào tìnhhuống thực tế mà tập hợp mối quan hệ đang mô hình hóa.
Để minh họa, hãy xem xét cố vấn tập hợp mối quan hệ Nếu một sinh viên có thể được tưvấn bởi nhiều người hướng dẫn (như trong trường hợp sinh viên được tư vấn cùng nhau), thì mốiquan hệ được thiết lập là nhiều-nhiều Ngược lại, nếu một trường đại học cụ thể áp đặt một ràngbuộc là một sinh viên chỉ có thể được tư vấn bởi một người hướng dẫn và một người hướng dẫn cóthể tư vấn cho nhiều sinh viên, thì mối quan hệ được thiết lập từ người hướng dẫn đến học sinh
phải là một-nhiều Như vậy, việc lập bản đồ số lượng số có thể được sử dụng để xác định các ràngbuộc về những mối quan hệ nào được phép trong thế giới thực Trong ký hiệu sơ đồ ER, chúng tôibiểu thị các ràng buộc về số lượng trên một mối quan hệ bằng cách vẽ một đường có hướng(→)hoặc một đường vô hướng (-) giữa tập hợp mối quan hệ và tập thực thể được đề cập Cụ thể,đối với ví dụ về trường đại học:
Hình 1.10Lập bản đồ các số lượng hồng y (a) Nhiều-một (b) Nhiều-nhiều.
Một đối một Chúng ta vẽ một đường có hướng từ tập mối quan hệ cho cả hai tậpthực thể Ví dụ, trong Hình 1.11a, các đường dẫn tới người hướng dẫn và học sinh chỉ ra rằng mộtngười hướng dẫn có thể tư vấn cho tối đa một học sinh và một học sinh có thể có nhiều nhất một cốvấn
Trang 20 Một-nhiều Chúng ta vẽ một đường thẳng từ mối quan hệ được đặt về phía “một”của mối quan hệ Như vậy, trong Hình 1.11b có một đường có hướng từ tập quan hệ cố vấn tới tậpthực thể người hướng dẫn và một dòng vô hướng đến tập thực thể học sinh Điều này cho thấy rằngmột người hướng dẫn có thể tư vấn cho nhiều sinh viên, nhưng một sinh viên có thể có nhiều nhấtmột cố vấn.
Nhiều-một Chúng ta vẽ một đường thẳng từ mối quan hệ được đặt về phía “một”của mối quan hệ Vì vậy, trong Hình 1.11c, có một đường vô hướng từ tập quan hệcố vấntới tậpthực thể người hướng dẫn và một đường dẫn tới tập thực thể học sinh Điều này chỉ ra rằng mộtngười hướng dẫn có thể tư vấn cho nhiều nhất một học sinh, nhưng một học sinh có thể có nhiều cốvấn
Nhiều nhiều Chúng ta vẽ một đường vô hướng từ tập hợp mối quan hệ cho cả haitập thực thể Vì vậy, trong Hình 1.11d, có các đường vô hướng từ tập quan hệ cố vấn cho cả hai tậpthực thể người hướng dẫn và học sinh Điều này cho thấy rằng một người hướng dẫn có thể tư vấncho nhiều sinh viên và một sinh viên có thể có nhiều cố vấn
Sự tham gia của một tập thực thể trong một tập hợp mối quan hệ được cho là E R tổng cộng
nếu mọi thực thể trong phải tham gia vào ít nhất một mối quan hệ trong Nếu có thể một sốE R
thực thể trong không tham gia vào các mối quan hệ trong , sự tham gia của tập thực thể E R E trong
mối quan hệ được cho là R một phần
Ví dụ, một trường đại học có thể yêu cầu mọi học sinh có ít nhất một cố vấn; trong mô hình
ER, điều này tương ứng với việc yêu cầu mỗi thực thể phải có liên quan đến ít nhất một người
Trang 21hướng dẫn thông qua cố vấn mối quan hệ Vì vậy, sự tham gia của học sinh trong tập hợp mối quan
Vì vậy, có thể chỉ một số người hướng dẫn các thực thể có liên quan đến học sinh thực thể đượcthiết lập thông qua cố vấn mối quan hệ và sự tham gia của người hướng dẫn bên trong cố vấn do
đó tập hợp mối quan hệ là một phần
Chúng tôi biểu thị toàn bộ sự tham gia của một thực thể trong một tập hợp mối quan hệbằng cách sử dụng các đường đôi Hình 1.12 cho thấy một ví dụ về cố vấn thiết lập mối quan hệtrong đó đường đôi cho biết rằng học sinh phải có cố vấn
Sơ đồ ER cũng cung cấp một cách để biểu thị các ràng buộc phức tạp hơn về số lần mỗithực thể tham gia vào các mối quan hệ trong một tập hợp mối quan hệ Một dòng có thể có
số lượng tối thiểu và tối đa liên quan, được hiển thị dưới dạng l h, Ở đâu là tối thiểu và l h số
lượng tối đa
Hình 1.12Sơ đồ ER thể hiện tổng số người tham gia
Hình 1.13 Giới hạn số lượng trên các tập hợp mối quan hệ.
Giá trị tối thiểu là 1 biểu thị toàn bộ sự tham gia của tập thực thể trong tập mối quan hệ;nghĩa là, mỗi thực thể trong tập thực thể xuất hiện trong ít nhất một mối quan hệ trong tập mốiquan hệ đó Giá trị tối đa là 1 chỉ ra rằng thực thể tham gia vào nhiều nhất một mối quan hệ, trongkhi giá trị tối đa cho biết không có giới hạn.∗
Ví dụ, hãy xem xét Hình 1.13 Đường ranh giới giữa cố vấn và học sinh có ràng buộc về sốlượng là 1 1, nghĩa là số lượng tối thiểu và tối đa đều bằng .Nghĩa là mỗi học sinh phải có chính 1xác một cố vấn Giới hạn 0 trên đường giữa ∗ cố vấn và người hướng dẫn chỉ ra rằng một ngườihướng dẫn có thể có không hoặc nhiều sinh viên Như vậy, mối quan hệ cố vấn là một-nhiều từ
người hướng dẫn đến học sinh, và hơn nữa sự tham gia của học sinh trong cố vấn là toàn bộ, ngụ ýrằng một sinh viên phải có một cố vấn
Rất dễ hiểu sai số 0 ở cạnh trái và nghĩ rằng mối quan hệ ∗ cố vấn là nhiều-một từ người
Nếu cả hai cạnh có giá trị tối đa là 1 thì mối quan hệ là một đối một Nếu chúng tôi đã chỉđịnh giới hạn số lượng là 1 ở cạnh bên trái, chúng ta có thể nói rằng mỗi người hướng dẫn phải tư ∗
vấn cho ít nhất một học sinh
Sơ đồ ER trong Hình 1.13 có thể được vẽ bằng một đường đôi từ học sinh đến cố vấn, vàmột mũi tên trên đường từ cố vấn đến người hướng dẫn, thay cho các ràng buộc về số lượng đượchiển thị Sơ đồ thay thế này sẽ thực thi chính xác các ràng buộc tương tự như các ràng buộc đượchiển thị trong hình
Trong trường hợp các tập hợp mối quan hệ không nhị phân, chúng ta có thể chỉ định một sốloại mối quan hệ nhiều-một Giả sử một học sinh có thể có nhiều nhất một người hướng dẫn làmngười hướng dẫn cho một dự án Ràng buộc này có thể được chỉ định bằng một mũi tên trỏ đến
Trang 22Chúng tôi cho phép tối đa một mũi tên trong tập hợp mối quan hệ phi nhị phân, vì sơ đồ ER
có hai hoặc nhiều mũi tên trong tập hợp mối quan hệ phi nhị phân có thể được hiểu theo hai cách.Chúng tôi giải thích chi tiết về vấn đề này trong Phần 6.5.2
Do đó, các giá trị của các giá trị thuộc tính của một thực thể phải sao cho chúng có thể xác
định duy nhất thực thể Nói cách khác, không có hai thực thể nào trong một tập thực thể được phép
có cùng một giá trị cho tất cả các thuộc tính
Khái niệm về một chìa khóa đối với lược đồ quan hệ, như được định nghĩa trong Phần 2.3,
áp dụng trực tiếp cho các tập thực thể Nghĩa là, khóa của một thực thể là một tập hợp các thuộctính đủ để phân biệt các thực thể với nhau Các khái niệm về siêu khóa, khóa dự tuyển và khóachính có thể áp dụng cho các tập thực thể giống như chúng có thể áp dụng cho các lược đồ quan hệ.Khóa cũng giúp xác định các mối quan hệ một cách duy nhất và do đó phân biệt các mốiquan hệ với nhau Tiếp theo, chúng ta xác định các khái niệm tương ứng về khóa cho các tập hợpmối quan hệ
5.2 Bộ mối quan hệ
Chúng ta cần một cơ chế để phân biệt giữa các mối quan hệ khác nhau của một tập hợp mốiquan hệ
Cho phép là một tập hợp mối quan hệ bao gồm các tập thực thể R E1,E2,… , Cho phépE n
giờ tên thuộc tính của tất cả các khóa chính là duy nhất Thành phần của khóa chính cho một tậpquan hệ phụ thuộc vào tập hợp các thuộc tính liên quan đến tập quan hệ đó .R
Nếu mối quan hệ được thiết lập không có thuộc tính nào được liên kết với nó thì tập hợpR
các thuộc tính khóa chính (E1) ∪ khóa chính (E ∪⋯∪ khóa chính (En2) ) mô tả một mối quan hệ cánhân trong tập hợp R
Nếu mối quan hệ được thiết lập có thuộc tính R a1,a2,… , được liên kết với nó thì tập cácai
Hãy nhớ lại rằng tập mối quan hệ là tập hợp các thể hiện mối quan hệ và mỗi thể hiện đượcxác định duy nhất bởi các thực thể tham gia vào nó Vì vậy, trong cả hai trường hợp trước, tập hợpcác thuộc tính khóa chính (E1) ∪ khóa chính (E2) ∪⋯∪ khóa chính (En) tạo thành một siêu khóacho tập hợp mối quan hệ
Việc lựa chọn khóa chính cho tập hợp mối quan hệ nhị phân phụ thuộc vào số phần tử ánh
xạ của tập hợp mối quan hệ Đối với mối quan hệ nhiều-nhiều, sự kết hợp trước đó của các khóachính là siêu khóa tối thiểu và được chọn làm khóa chính Để minh họa, hãy xem xét các tập thực
Trang 23mối quan hệ là nhiều-nhiều Khi đó khóa chính của cố vấn bao gồm sự kết hợp của các khóa chínhcủa người hướng dẫn và học sinh.
Đối với các mối quan hệ một-nhiều và nhiều-một, khóa chính của bên “nhiều” là siêu khóa
tối thiểu và được sử dụng làm khóa chính Ví dụ: nếu mối quan hệ là nhiều-một từ học sinh đến
người hướng dẫn nghĩa là mỗi sinh viên có thể có nhiều nhất một cố vấn khi đó khóa chính của cố vấn đơn giản là khóa chính của học sinh Tuy nhiên, nếu người hướng dẫn chỉ có thể tư vấn chomột học sinh - nghĩa là nếu cố vấn mối quan hệ là nhiều-một từ người hướng dẫn đến học sinh thìkhóa chính của cố vấn đơn giản là khóa chính của người hướng dẫn
Đối với các mối quan hệ một-một, khóa chính của một trong các tập thực thể tham gia tạothành một siêu khóa tối thiểu và một trong hai có thể được chọn làm khóa chính của tập hợp mốiquan hệ Tuy nhiên, nếu một người hướng dẫn chỉ có thể tư vấn cho một học sinh và mỗi học sinhchỉ có thể được một người hướng dẫn tư vấn ,tức là, nếu cố vấn mối quan hệ là một-một khi đókhóa chính của một trong hai học sinh hoặc người hướng dẫn có thể được chọn làm khóa chính cho
cố vấn.
Đối với các mối quan hệ phi nhị phân, nếu không có ràng buộc về số lượng thì siêu khóađược hình thành như được mô tả trước đó trong phần này là khóa ứng cử viên duy nhất và nó đượcchọn làm khóa chính Việc lựa chọn khóa chính sẽ phức tạp hơn nếu có ràng buộc về số lượng.Như chúng tôi đã lưu ý trong Phần 6.4, chúng tôi cho phép nhiều nhất một mũi tên trong tập hợpmối quan hệ Chúng tôi làm như vậy vì sơ đồ ER có hai hoặc nhiều mũi tên trong tập hợp mối quan
hệ phi nhị phân có thể được diễn giải theo hai cách mà chúng tôi mô tả bên dưới Giả sử có một tậphợp mối quan hệ giữa các tập thực thể R E1, 2, 3, E E E4 và các mũi tên duy nhất nằm ở các cạnh củatập thực thể 3 Và 4 Khi đó, có hai cách giải thích có thể là:E E
1 Một sự kết hợp cụ thể của các thực thể từ E1,E2 có thể được liên kết với nhiều nhấtmột tổ hợp các thực thể từ E3,E4 Vì vậy, khóa chính cho mối quan hệ có thể được xây dựngR
bằng cách kết hợp các khóa chính của 1và 2.E E
2 Một sự kết hợp cụ thể của các thực thể từ E1, 2, E E3có thể được liên kết với nhiềunhất một tổ hợp các thực thể từ 4và hơn nữa là sự kết hợp cụ thể của các thực thể từ E E1, 2, E E4 cóthể được liên kết với nhiều nhất một tổ hợp các thực thể từ 3, Khi đó sự kết hợp các khóa chínhE
của E1,E2, và 3 tạo thành một khóa dự tuyển, cũng như việc kết hợp các khóa chính của E E1,E2,
và 4.E
Mỗi cách giải thích này đều đã được sử dụng trong thực tế và cả hai đều đúng đối với cácdoanh nghiệp cụ thể được lập mô hình Do đó, để tránh nhầm lẫn, chúng tôi chỉ cho phép một mũitên trong tập hợp mối quan hệ phi nhị phân, trong trường hợp đó hai cách diễn giải là tương đươngnhau
Để thể hiện tình huống trong đó một trong các tình huống có nhiều mũi tên xảy ra, thiết kế
ER có thể được sửa đổi bằng cách thay thế tập hợp mối quan hệ phi nhị phân bằng một tập thựcthể Nghĩa là, chúng tôi coi mỗi trường hợp của tập hợp mối quan hệ phi nhị phân là một thực thể.Sau đó, chúng ta có thể liên kết từng thực thể đó với các trường hợp tương ứng của E1, ,E2E4 thông
qua các tập hợp mối quan hệ riêng biệt Một cách tiếp cận đơn giản hơn là sử dụng phụ thuộc chức
năng, mà chúng ta nghiên cứu trong Chương 7 (Phần 7.4) Các phụ thuộc chức năng cho phép một
trong hai cách diễn giải này được chỉ định một cách đơn giản theo cách rõ ràng
Khóa chính của tập hợp mối quan hệ R khi đó là tập hợp các khóa chính của các tập thựcthể tham gia đó Ei không có mũi tên đến từ tập hợp mối quan hệ R
Trang 245.3 Tập thực thể yếu
Hãy xem xét một phần thực thể, được xác định duy nhất bằng mã định danh khóa học, học
kỳ, năm và phần định danh Các thực thể của phần có liên quan đến các thực thể của khóa học Giả
sử chúng ta tạo một tập hợp mối quan hệ khóa học-phần giữa các tập thực thể phần và khóa học.Bây giờ, hãy quan sát rằng thông tin trong khóa học-phần là dư thừa, vì phần đã có thuộctính rồi Mã khóa học, xác định khóa học mà phần đó có liên quan Một lựa chọn để giải quyết sự
dư thừa này là loại bỏ mối quan hệ khóa học-phần; tuy nhiên, bằng cách làm như vậy mối quan hệgiữa phần và khóa học trở nên tiềm ẩn trong một thuộc tính, điều này không được mong muốn
Một cách khác để giải quyết sự dư thừa này là không lưu trữ thuộc tính Mã khóa học bên
trong phần thực thể và chỉ lưu trữ các thuộc tính còn lại Mã phần,năm, và học kỳ.2Tuy nhiên, tậpthực thể phần thì không có đủ thuộc tính để xác định một cụ thể phần thực thể duy nhất; mặc dù
một mối quan hệ đặc biệt cung cấp thêm thông tin, trong trường hợp này là Mã khóa học, cần xácđịnh phần các thực thể một cách duy nhất
Ý niệm về tập thực thể yếu hình thức hóa trực giác trên.Tập thực thể yếu là một thực thể mà
sự tồn tại của nó phụ thuộc vào một tập thực thể khác, được gọi là tập thực thể xác định; thay vìliên kết khóa chính với thực thể yếu, chúng tôi sử dụng khóa chính của thực thể nhận dạng, cùngvới các thuộc tính bổ sung, được gọi là thuộc tính phân biệt đối xử để xác định duy nhất một thựcthể yếu Một tập thực thể không phải là tập thực thể yếu được gọi là một tập thực thể mạnh.Mọi thực thể yếu phải được liên kết với một thực thể nhận dạng; nghĩa là tập thực thể yếuđược gọi là sự tồn tại phụ thuộc trên tập thực thể nhận dạng Tập thực thể xác định được gọi là sởhữu tập thực thể yếu mà nó xác định Mối quan hệ liên kết tập thực thể yếu với tập thực thể nhậndạng được gọi là xác định mối quan hệ Mối quan hệ xác định là nhiều-một từ tập thực thể yếu đếntập thực thể xác định và sự tham gia của tập thực thể yếu trong mối quan hệ là toàn bộ
Tập hợp mối quan hệ xác định không nên có bất kỳ thuộc tính mô tả nào, vì bất kỳ thuộctính nào như vậy thay vào đó có thể được liên kết với tập thực thể yếu
Trong ví dụ của chúng tôi, tập thực thể nhận dạng cho phần khóa họclà , và mối quan hệ
định Khóa chính của phần được hình thành bởi khóa chính của tập thực thể xác định (nghĩa là
khóa học), cộng với bộ phân biệt đối xử của tập thực thể yếu (nghĩa là, phần) Do đó, khóa chính là
{Mã khóa học mã phần, , năm, học kỳ}
Lưu ý rằng chúng ta có thể chọn thực hiện mã phần duy nhất trên toàn cầu trong tất cả cáckhóa học được cung cấp tại trường đại học, trong trường hợp đó phần tập thực thể sẽ có khóachính Tuy nhiên, về mặt khái niệm, một phần vẫn phụ thuộc vào một khóa học cho sự tồn tại của
nó, điều này được làm rõ bằng cách biến nó thành một tập thực thể yếu Trong sơ đồ ER, một tậpthực thể yếu được mô tả thông qua một hình chữ nhật kép với dấu phân biệt được gạch chân bằngmột đường đứt nét Tập mối quan hệ kết nối tập thực thể yếu với tập thực thể mạnh xác định được
mô tả bằng hình thoi kép Trong Hình 1.14, tập thực thể yếu phần phụ thuộc vào tập thực thể mạnh
Hình này cũng minh họa việc sử dụng các đường đôi để chỉ ra rằng sự tham gia của tậpthực thể (yếu) phần trong các mối quan hệ khóa học-phần tổng cộnglà , nghĩa là mọi phần phải liênquan thông qua khóa học giây đến một khóa học nào đó Cuối cùng, mũi tên từ khóa học-phần đến khóa học chỉ ra rằng mỗi phần có liên quan đến một khóa học duy nhất Nói chung, một tập thực
thể yếu phải có sự tham gia hoàn toàn vào tập mối quan hệ xác định của nó và mối quan hệ lànhiều-một đối với tập thực thể xác định
Một tập thực thể yếu có thể tham gia vào các mối quan hệ khác ngoài mối quan hệ xác định
Ví dụ, phần thực thể có thể tham gia vào mối quan hệ với ca thời gian tập thực thể, xác định thờiđiểm một phần lớp cụ thể gặp nhau Một tập thực thể yếu có thể tham gia với tư cách là chủ sở hữutrong mối quan hệ xác định với một tập thực thể yếu khác Cũng có thể có một tập thực thể yếu vớinhiều hơn một tập thực thể xác định Khi đó, một thực thể yếu cụ thể sẽ được xác định bằng sự kết
Trang 25hợp của các thực thể, một thực thể từ mỗi tập thực thể xác định Khóa chính của tập thực thể yếu sẽbao gồm sự kết hợp các khóa chính của các tập thực thể xác định, cộng với bộ phân biệt đối xử của
tập thực thể yếu
Hình 1.14 Sơ đồ ER với tập thực thể yếu.
6 Loại bỏ những thuộc tính dư thừa trong tập thực thể
Khi thiết kế cơ sở dữ liệu bằng mô hình E-R, chúng ta thường bắt đầu bằng cách xác địnhcác tập thực thể Ví dụ, trong một tổ chức đại học chúng ta đã thảo luận cho đến nay và quyết địnhthêm vào một số tập thực thể như student và instructor Một tập thực thể đã được xác định, chúng taphải quyết định các thuộc tính cho nó Những thuộc tính này hỗ trợ cho việc trình bày cho các giátrị khác nhau mà chúng ta muốn lưu vào cơ sở dữ liệu Trong tổ chức đại học, chúng ta quyết định
là đối với tập thực thể instructor sẽ có các thuộc tính bao gồm ID, name, dept_name, salary Chúng
ta có thể thêm các thuộc tính phone_number, office_number, home_page và những thứ khác Việclựa chọn các thuộc tính để thêm vào là do, người có hiểu biết rõ hơn về cấu trúc của doanh nghiệp,người thiết kế quyết định
Một khi các thực thể và các thuộc tính tượng ứng của chúng đã được chọn,các tập quan hệgiữa các thực thể khác nhau được hình thành Những tập quan hệ này có thể dẫn đến một tìnhhuống trong đó các thuộc tính trong các tập thực thể khác nhau trùng lặp và cần được loại bỏ khỏicác tập thực thể ban đầu Ví dụ, hãy xem xét các tập thực thể instructor và department:
• Tập thực thể instructor bao gồm các thuộc tính ID,name , dept_name và salary với
Việc loại bỏ thuộc tính dept_name khỏi tập thực thể instructor có vẻ khá không trực quan,
vì mối quan hệ instructor mà chúng ta đã sử dụng trong các chương trước có một thuộc tínhdept_name Như chúng ta sẽ thấy sau này, khi chúng ta tạo một lược đồ liên kết từ biểu đồ E-R,thuộc tính dept_name thực sự được thêm vào quan hệ instructor, nhưng chỉ khi mỗi instructor có tối
đa một department liên quan Nếu một instructor có nhiều hơn một department liên quan, mối quan
hệ giữa instructor và các department được ghi lại trong một quan hệ riêng instructor-department
Xử lý kết nối giữa instructor và các department theo cách đồng nhất như một quan hệ, thay
vì là một thuộc tính của instructor,làm cho mối quan hệ logic rõ ràng hơn và giúp tránh sự giả địnhsớm rằng mỗi instructor chỉ liên quan đến một department
Tương tự, tập thực thể student liên quan đến tập thực thể department thông qua tập quan hệstud_dept và do đó không cần có thuộc tính tên department trong student
Một ví dụ khác, hãy xem xét các department học (các phần) cùng với các khe thời gian củacác department học Mỗi khe thời gian được xác định bằng một id khe thời gian và có liên quan đếnmột tập hợp các cuộc họp hàng tuần, mỗi cuộc họp được xác định bằng một ngày trong tuần, thời
Trang 26gian bắt đầu và thời gian kết thúc Chúng ta quyết định mô hình tập hợp các lịch họp hàng tuần như
là một thuộc tính ghép nhiều giá trị Giả sử chúng ta mô hình tập thực thể section và time slot nhưsau:
• Tập thực thể section bao gồm các thuộc tính course_id, sec_id, semester, year,building, room number và time_slot_id, với (course_id, sec_id, year, semester) tạothành department chính
• Tập thực thể time_slot bao gồm các thuộc tính time_slot_id, là department chính
và một thuộc tính ghép nhiều giá trị {(day, start_time, end_time)}
Các thực thể này được liên kết thông qua tập quan hệ sec-time slot
Thuộc tính time_slot_id xuất hiện trong cả hai tập thực thể Vì nó là department chính chotập thực thể time_slot, nó là trùng lặp trong tập thực thể department học và cần được loại bỏ
Ví dụ cuối cùng, giả sử chúng ta có một tập thực thể classroom, với các thuộc tính building,room number và capacity, với building và room_number tạo thành department chính Giả sử cũngrằng chúng ta có một tập quan hệ sec_class liên kết department học với lớp học Sau đó các thuộctính {building, room_number} là trùng lặp trong tập thực thể department học
Một thiết kế mối quan hệ thực thể tốt không chứa các thuộc tính trùng lặp Đối với ví dụ củachúng ta về đại học, chúng ta liệt kê các tập thực thể và các thuộc tính của chúng dưới đây, với cácdepartment chính được gạch chân:
class: có các thuộc tính (building, room_number, capacity)
department: có các thuộc tính (dept_name, building, budget)
course: có các thuộc tính (course_id, title, credits)
instuctor: có các thuộc tính (ID, name, salary)
section: có các thuộc tính (course_id, sec_id, semeter, year)
student: có các thuộc tính (ID, tên, tot_cred)
time_slot: có các thuộc tính (time_slot_id, {(day, start_time, end_time)})
Các tập mối quan hệ trong thiết kế :
inst_dept: liên kết giữa instructor và department
stud_dept: liên kết giữa student và department
teaches: liên kết giữa instructor và department học
takes: liên kết giữa student với department học và có thuộc tính phụ là grade
course_dept: liên kết học phân với department
sec_course: liên kết department học với học phần
sec_class: liên kết department học với lớp học
sec_time_slot: liên kết department học với time slots
advisor: liên kết instructor và student
prereq: liên kết học phần với học phân tiên quyết ( học phần học trước)
Bạn có thể xác minh rằng không có bộ thực thể nào có bất kỳ thuộc tính nào là dư thừa bởimột trong các bộ quan hệ Hơn nữa, bạn có thể xác minh rằng tất cả thông tin (ngoại trừ các ràngbuộc) trong lược đồ quan hệ cho cơ sở dữ liệu đại học của chúng ta, mà chúng ta đã thấy trước đótrong Hình 2.9, đã được bắt giữ bởi thiết kế trên, nhưng với một số thuộc tính trong thiết kế quan hệđược thay thế bằng các mối quan hệ trong thiết kế E-R Cuối cùng, chúng ta có thể hiển thị (Hình1.15) biểu đồ E-R tương ứng với doanh nghiệp đại học mà chúng ta đã sử dụng cho đến nay trongvăn bản Biểu đồ E-R này tương đương với mô tả văn bản của mô hình E-R của trường đại học,nhưng có một số ràng buộc bổ sung Trong cơ sở dữ liệu trường đại học của chúng ta, chúng ta cómột ràng buộc rằng mỗi instructor phải có chính xác một phòng ban liên quan Do đó, có hai đườngkép trong Hình 1.15 giữa instructor và inst_dept, cho biết sự tham gia toàn diện của instructor trong
Trang 27inst_dept; nghĩa là, mỗi instructor phải được liên kết với một phòng ban Hơn nữa, có mũi tên từinst_dept đến department, cho biết mỗi instructor chỉ có thể có tối đa một phòng ban liên quan.Tương tự, tập thực thể course có hai đường kép đến tập quan hệ course_dept, cho thấy mỗicourse phải thuộc về một phòng ban nào đó, và tập thực thể sinh viên có hai đường kép đến tậpquan hệ stud_dept, cho thấy mỗi sinh viên phải chuyên ngành trong một phòng ban nào đó Trongmỗi trường hợp, mũi tên trỏ đến tập thực thể phòng ban để chỉ ra rằng một course (và tương ứng,một sinh viên) chỉ có thể liên quan đến một phòng ban, không phải nhiều phòng ban.
Tương tự, tập thực thể course có hai đường kép đến tập quan hệ course_dept, cho thấy mỗicourse phải thuộc về một phòng ban nào đó, và tập thực thể sinh viên có hai đường kép đến tậpquan hệ stud_dept, cho thấy mỗi sinh viên phải chuyên ngành trong một phòng ban nào đó Trongmỗi trường hợp, mũi tên trỏ đến tập thực thể phòng ban để chỉ ra rằng một course (và tương ứng,một sinh viên) chỉ có thể liên quan đến một phòng ban, không phải nhiều phòng ban
Hơn nữa, Hình 1.15 cho thấy rằng tập quan hệ takes có thuộc tính miêu tả là grade và rằngmỗi sinh viên có tối đa một cố vấn Hình cũng cho thấy rằng section là tập thực thể yếu, với cácthuộc tính sec id, semester và year cùng nhau tạo thành bộ phân biệt; sec_course là tập quan hệ xácđịnh liên kết giữa tập thực thể yếu section và tập thực thể mạnh course
Hình 1.15 Sơ đồ E-R cho một trường đại họcTrong phần 6.7 chúng tôi trình bày cách sử dụng sơ đồ E-R để rút ra các lược đồ quan hệ sửdụng
Trang 287 Chuyển đổi mô hình thực thể kết hợp sang mô hình quan hệ dữ liệu
Cả mô hình E-R và mô hình cơ sở dữ liệu quan hệ đều là các biểu diễn trừu tượng, logic củacác doanh nghiệp trong thế giới thực Bởi vì hai mô hình này sử dụng các nguyên tắc thiết kế tương
tự, chúng ta có thể chuyển đổi thiết kế E-R thành thiết kế quan hệ Đối với mỗi tập thực thể và chomỗi tập quan hệ trong thiết kế cơ sở dữ liệu, có một lược đồ quan hệ duy nhất được gán cho tậpthực thể hoặc tập quan hệ tương ứng
Ở phần này, chúng ta mô tả cách một lược đồ E-R có thể được biểu diễn bằng các lược đồquan hệ và cách ràng buộc phát sinh từ thiết kế E-R có thể được ánh xạ thành các ràng buộc trêncác lược đồ quan hệ
7.1 Biểu diễn của tập thực thể mạnh
Hãy cho E là một tập thực thể mạnh chỉ với các thuộc tính miêu tả đơn giản a1, a2, …, an.Chúng ta biểu diễn thực thể này bằng một lược đồ được gọi là E với n thuộc tính riêng biệt Mỗi bộtrong một quan hệ trên lược đồ này tương ứng với một thực thể của tập thực thể E
Đối với các lược đồ được dẫn xuất từ các tập thực thể mạnh, khóa chính của tập thực thểphục vụ như khóa chính của lược đồ kết quả Điều này xuất phát trực tiếp từ việc mỗi bộ tương ứngvới một thực thể cụ thể trong tập thực thể
Ví dụ, hãy xem xét tập thực thể sinh viên của sơ đồ E-R trong Hình 1.15 Tập thực thể này
có ba thuộc tính: ID, name, tot_cred Chúng ta biểu diễn tập thực thể này bằng một lược đồ đượcgọi là student với ba thuộc tính
student (ID, name, tot_cred)
Lưu ý rằng vì ID sinh viên là khóa chính của tập thực thể, nó cũng là khóa chính của lược
đồ quan hệ Tiếp tục với ví dụ của chúng ta, đối với sơ đồ E-R trong Hình 1.15, tất cả các tập thựcthể mạnh, ngoại trừ time slot, chỉ có các thuộc tính đơn giản Các lược đồ được dẫn xuất từ các tậpthực thể mạnh này được miêu tả trong Hình 1.16 Lưu ý rằng các lược đồ instructor, student vàcourse khác với các lược đồ chúng ta đã sử dụng trong các chương trước (chúng không chứa thuộctính dept name) Chúng ta sẽ xem lại vấn đề này trong thời gian sớm nhất
7.2 Biểu diễn của tập thực thể mạnh với các thuộc tính phức tạp
Khi một tập thực thể mạnh có các thuộc tính không đơn giản, việc xử lý sẽ phức tạp hơnmột chút Chúng ta xử lý các thuộc tính ghép bằng cách tạo ra một thuộc tính riêng cho từng thuộctính thành phần; chúng ta không tạo ra một thuộc tính riêng cho chính thuộc tính ghép Để minhhọa, hãy xem xét phiên bản của tập thực thể instructor được miêu tả trong Hình 1.8 Đối với thuộctính ghép name, lược đồ được tạo ra cho instructor chứa các thuộc tính first name, middle initial vàlast name; không có thuộc tính hoặc lược đồ riêng cho name Tương tự, đối với thuộc tính ghépaddress, lược đồ được tạo ra chứa các thuộc tính street, city, state và postal code Vì street là mộtthuộc tính ghép nên nó được thay thế bằng street number, street name và apt number
Các thuộc tính đa giá trị được xử lý khác với các thuộc tính khác Chúng ta đã thấy rằng cácthuộc tính trong sơ đồ E-R nói chung được ánh xạ trực tiếp thành các thuộc tính cho các lược đồquan hệ phù hợp Tuy nhiên, các thuộc tính đa giá trị là một ngoại lệ; các lược đồ quan hệ mớiđược tạo ra cho những thuộc tính này, như chúng ta sẽ thấy ngay sau đây
Trang 29Các thuộc tính dẫn xuất không được biểu diễn rõ ràng trong mô hình dữ liệu quan hệ Tuynhiên, chúng có thể được biểu diễn dưới dạng các thủ tục lưu trữ, hàm hoặc phương pháp trong các
mô hình dữ liệu khác
Hình 1.16 Các lược đồ bắt nguồn từ các tập thực thể trong sơ đồ E-R trong Hình 1.15.Lược đồ quan hệ bắt nguồn từ phiên bản của trình hướng dẫn tập thực thể với các thuộctính, không bao gồm thuộc tính đa giá trị, do đó:
Đối với thuộc tính đa giá trị M, chúng ta tạo lược đồ quan hệ R với thuộc tính A tương ứngvới M và các thuộc tính tương ứng với khóa chính của thực thể tập hoặc tập quan hệ trong đó M làthuộc tính
Để minh họa, hãy xem xét sơ đồ E-R trong Hình 1.8 mô tả tập thực thể instructor, bao gồm
số điện thoại thuộc tính đa giá trị Khóa chính của instructor là ID Đối với thuộc tính đa giá trị này,chúng ta tạo một lược đồ quan hệ
instructor phone (ID, phone number)
Mỗi số điện thoại của instructor được biểu diễn dưới dạng một bộ duy nhất trong mối quan
hệ trên lược đồ này Do đó, nếu chúng ta có một instructor có ID 22222 và số điện thoại 555-1234
và 555-4321, điện thoại của instructor quan hệ sẽ có hai bộ dữ liệu (22222, 555-1234) và (22222,555-4321)
Chúng ta tạo khóa chính của lược đồ quan hệ bao gồm tất cả các thuộc tính của lược đồ.Trong ví dụ trên, khóa chính bao gồm cả hai thuộc tính của mối quan hệ điện thoại của instructorlược đồ
Ngoài ra, chúng tôi tạo một ràng buộc khóa ngoại trên lược đồ quan hệ được tạo từthuộc tính đa giá trị Trong lược đồ mới được tạo đó, thuộc tính được tạo từ khóa chính củatập thực thể phải tham chiếu đến mối quan hệ được tạo từ thực thể đó Trong ví dụ trên, ràng buộckhóa ngoại trên mối quan hệ điện thoại của instructor ID thuộc tính đó sẽ tham chiếu đến mối quan
hệ của instructor
Trong trường hợp một tập thực thể chỉ bao gồm hai thuộc tính—một khóa chính duy nhấtthuộc tính B và một thuộc tính đa giá trị M - lược đồ quan hệ cho thực thể tập hợp sẽ chỉ chứa mộtthuộc tính, cụ thể là thuộc tính khóa chính B Chúng ta có thể loại bỏ mối quan hệ này trong khivẫn giữ lại lược đồ quan hệ với thuộc tính B và thuộc tính A tương ứng với M
Để minh họa, hãy xem xét thời gian của tập thực thể được mô tả trong Hình 1.15 Ở đây,time_id vị trí là khóa chính của tập thực thể vị trí thời gian và có một giá trị đa giá trị duy nhất
Trang 30thuộc tính đó cũng là thuộc tính tổng hợp Tập thực thể có thể được biểu diễn bằng lược đồ sauđược tạo từ thuộc tính tổng hợp đa giá trị:
time slot (time slot id, day, start time, end time)
Mặc dù không được biểu diễn dưới dạng ràng buộc trên sơ đồ E-R, nhưng chúng ta biếtrằng không thể có hai buổi họp của một lớp bắt đầu vào cùng một thời điểm, cùng một ngày trongtuần Nhưng kết thúc vào những thời điểm khác nhau; dựa trên ràng buộc này, thời gian kết thúc đã
bị bỏ qua khỏi khóa chính của lược đồ khe thời gian
Mối quan hệ được tạo từ tập thực thể sẽ chỉ có một thuộc tính duy nhất là time id vị trí; việctối ưu hóa việc loại bỏ mối quan hệ này có lợi ích là đơn giản hóa lược đồ cơ sở dữ liệu kết quả,mặc dù nó có một nhược điểm liên quan đến khóa ngoại, chúng tôi thảo luận ngắn gọn trong Phần6.7.4
7.3 Biểu diễn tập thực thể yếu
Cho A là tập thực thể yếu có các thuộc tính a1, a2, …, am Gọi B là tập thực thể mạnh mà Aphụ thuộc vào Cho khóa chính của B gồm các thuộc tính b1, b2, …, bn Chúng tôi biểu diễn tậpthực thể A bằng một lược đồ quan hệ gọi là A với một thuộc tính cho mỗi thành viên của tập hợp:{a1, a2, … , am} {b1, b2, … , bn}∪
Đối với các lược đồ được tạo ra từ một tập thực thể yếu, sự kết hợp của khóa chính của tậpthực thể mạnh và bộ phân biệt của tập thực thể yếu được sử dụng làm khóa chính của lược đồ.Ngoài việc tạo ra một khóa chính, chúng ta cũng tạo ra một ràng buộc khóa ngoại trên quan hệ A,chỉ định rằng các thuộc tính b1, b2, … , bn tham chiếu đến khóa chính của quan hệ B Ràng buộckhóa ngoại đảm bảo rằng đối với mỗi bộ dữ liệu biểu diễn một thực thể yếu, có một bộ dữ liệutương ứng biểu diễn thực thể mạnh tương ứng
Ví dụ, hãy xem xét tập thực thể yếu section trong sơ đồ E-R của Hình 1.15 Tập thực thểnày có các thuộc tính: sec id, semester và year Khóa chính của tập thực thể course, mà section phụthuộc vào, là course id Do đó, chúng ta biểu diễn section bằng một lược đồ với các thuộc tính sau:section (course id, sec id, semester, year)
Khóa chính bao gồm khóa chính của tập thực thể couse, cùng với bộ phân biệt của phần, đó
là sec id, semester và year Chúng tôi cũng tạo ra một ràng buộc khóa ngoại trên lược đồ phần, vớithuộc tính course_id tham chiếu đến khóa chính của lược đồ course
7.4 Biểu diễn các tập quan hệ
Cho R là một tập hợp quan hệ, cho a1, a2, …, am là tập hợp các thuộc tính được hình thànhbởi sự liên minh của các khóa chính của mỗi tập thực thể tham gia trong R, và cho các thuộc tính
mô tả (nếu có) của R là b1, b2, …, bn Chúng ta biểu diễn tập hợp quan hệ này bằng một lược đồquan hệ được gọi là R với một thuộc tính cho mỗi thành viên của tập hợp: {a1, a2, …, am} {b1,∪b2, …, bn} Chúng ta đã miêu tả trong phần 6.5 cách chọn khóa chính cho một tập hợp quan hệ nhịphân Các thuộc tính khóa chính của tập hợp quan hệ cũng được sử dụng như các thuộc tính khóachính của lược đồ quan hệ R Ví dụ, xét tập hợp quan hệ giảng viên trong sơ đồ E-R của Hình 1.15.Tập hợp quan hệ này liên quan đến các tập thực thể sau:
instructor với khóa chính ID
student với khóa chính ID
Vì tập hợp quan hệ không có thuộc tính nào cả, lược đồ giảng viên có hai thuộc tính là cáckhóa chính của giảng viên và sinh viên Vì cả hai thuộc tính đều có cùng tên, chúng ta đổi tên
Trang 31chúng thành i_ID và s_ID Vì tập hợp quan hệ giảng viên là một-nhiều từ sinh viên đến giảng viênnên khóa chính cho lược đồ quan hệ giảng viên là s ID
Chúng ta cũng tạo ràng buộc khóa ngoại trên lược đồ quan hệ R như sau: Đối với mỗi tậpthực thể Ei liên quan bởi tập hợp quan hệ R, chúng ta tạo ràng buộc khóa ngoại từ lược đồ quan hệ
R, với các thuộc tính của R được xuất phát từ các thuộc tính khóa chính của E i tham chiếu đếnkhóa chính của lược đồ quan hệ đại diện cho Ei Trở lại ví dụ trước của chúng ta, chúng ta sẽ tạohai ràng buộc khóa ngoại trên lược đồ giảng viên như sau: Thuộc tính i ID tham chiếu đến khóachính của giảng viên và thuộc tính s ID tham chiếu đến khóa chính của sinh viên
Áp dụng các kỹ thuật trước vào các tập hợp quan hệ khác trong sơ đồ E-R trong Hình 1.15,chúng ta có được các lược đồ quan hệ được miêu tả trong Hình 1.17
Quan sát rằng trong trường hợp của tập hợp quan hệ prereq, các chỉ số vai trò liên quan đếnmối quan hệ được sử dụng như tên thuộc tính, vì cả hai vai trò đều tham chiếu đến cùng mộtcourse
Tương tự như trường hợp của instructor, khóa chính cho mỗi trong các quan hệ sec_course, sec_time_slot, sec_class, inst_dept, stud_dept và course_dept bao gồm khóa chính củachỉ một trong hai tập thực thể liên quan, vì mỗi mối quan hệ tương ứng là một-nhiều
Ràng buộc khóa ngoại không được hiển thị trong Hình 1.17, nhưng đối với mỗi trong cácquan hệ trong hình, có hai ràng buộc khóa ngoại, tham chiếu đến hai quan hệ được tạo ra từ hai tậpthực thể liên quan Do đó, ví dụ: sec_course có các khóa ngoại tham chiếu đến section vàclassroom, teaches có các khóa ngoại tham chiếu đến instructor và section, và takes có các khóangoại tham chiếu đến student và section
Hình 1.17 Lược đồ được tạo ra từ các tập hợp quan hệ trong sơ đồ E-R trong Hình 1.15
Tối ưu hóa cho phép chúng tôi tạo chỉ một lược đồ quan hệ từ tập thực thể time_slot, có mộtthuộc tính đa giá trị, ngăn chặn việc tạo khóa ngoại từ lược đồ quan hệ sec_time_slot đến lược đồđược tạo từ tập thực thể time_slot, vì chúng tôi đã bỏ lược đồ được tạo từ tập thực thể time_slot.Chúng tôi giữ lại lược đồ được tạo từ thuộc tính đa giá trị và đặt tên là time_slot, nhưng lược đồnày có thể không có bản ghi nào tương ứng với id_time_slot hoặc có thể có nhiều bản ghi tươngứng với id_time_slot; do đó, id_time_slot trong mối quan hệ sec_time_slot không thể tham chiếuđến lược đồ này
Độc giả khôn ngoan có thể tự hỏi tại sao chúng ta không xem các lược đồ sec_course,sec_time_slot, sec_class, inst_dept, stud_dept và course_dept trong các chương trước Lý do làthuật toán mà chúng ta đã trình bày cho đến nay dẫn đến một số lược đồ có thể được loại bỏ hoặckết hợp với các lược đồ khác Chúng ta sẽ khám phá vấn đề này tiếp theo
Trang 32số các thuộc tính khác) Mỗi kết hợp (course_id, sec_id, semester, year) trong một mối quan hệsec_course cũng sẽ có mặt trong mối quan hệ section và ngược lại Do đó, lược đồ sec_course là dưthừa.
Nói chung,lược đồ cho bộ quan hệ liên kết một tập thực thể yếu với tập thực thể mạnhtương ứng là dư thừa và không cần phải có trong thiết kế cơ sở dữ liệu quan hệ dựa trên sơ đồ E-R
7.6 Kết hợp các lược đồ
Giả sử có mối quan hệ nhiều-1 AB từ tập thực thể A đến tập thực thể B Sử dụng thuật toánxây dựng lược đồ quan hệ đã được trình bày trước đó, chúng ta có ba lược đồ: A, B và AB Giả sửthêm rằng sự tham gia của A trong mối quan hệ là toàn bộ; tức là, mọi thực thể a trong tập thực thể
A phải tham gia vào mối quan hệ AB Sau đó, chúng ta có thể kết hợp các lược đồ A và AB để tạothành một lược đồ duy nhất bao gồm sự liên minh của các thuộc tính của cả hai lược đồ Khóachính của lược đồ kết hợp là khóa chính của tập thực thể vào lược đồ của nó đã được hợp nhất
Để minh họa, chúng ta xem xét các mối quan hệ khác nhau trong sơ đồ E-R của Hình 1.15thỏa mãn các tiêu chí trên:
inst_dept Các lược đồ instructor và department tương ứng với các tập thực thể A và B,tương ứng Do đó, lược đồ inst dept có thể được kết hợp với lược đồ instructor lược đồ instructorkết quả bao gồm các thuộc tính {ID, name, dept_name, salary}
stud_dept Các lược đồ student và department tương ứng với các tập thực thể A và B, tươngứng Do đó, lược đồ stud dept có thể được kết hợp với lược đồ student lược đồ student kết quả baogồm các thuộc tính {ID, name, dept name, tot_cred}
course_dept Các lược đồ course và department tương ứng với các tập thực thể A và B,tương ứng Do đó, lược đồ course dept có thể được kết hợp với lược đồ course lược đồ course kếtquả bao gồm các thuộc tính {course_id, title, dept_name, credits}
sec_class Các lược đồ section và classroom tương ứng với các tập thực thể A và B, tươngứng Do đó, lược đồ sec class có thể được kết hợp với lược đồ section lược đồ section kết quả baogồm các thuộc tính {course_id, sec_id, semester, year, building, room_number}
sec_time slot Các lược đồ section và time_slot tương ứng với các tập thực thể A và B lầnlượt Do đó, lược đồ sec_time_slot có thể được kết hợp với lược đồ section thu được ở bước trước.lược đồ section kết quả bao gồm các thuộc tính {course_id, sec_id, semester, year, building,room_number, time_slot_id}
Trong trường hợp các mối quan hệ một-một, lược đồ quan hệ cho bộ quan hệ có thể đượckết hợp với các lược đồ cho bất kỳ tập thực thể nào
Chúng ta có thể kết hợp các lược đồ ngay cả khi sự tham gia là một phần bằng cách sử dụnggiá trị null Trong ví dụ trước đó, nếu inst_dept là một phần, chúng ta sẽ lưu giá trị null cho thuộctính dept_name cho những instructor không có phòng ban liên quan
Cuối cùng, chúng ta xem xét các ràng buộc khóa ngoại mà sẽ xuất hiện trong lược đồ đạidiện cho bộ quan hệ Sẽ có các ràng buộc khóa ngoại tham chiếu đến từng tập thực thể tham gia
Trang 33vào bộ quan hệ Chúng ta loại bỏ ràng buộc tham chiếu đến tập thực thể vào lược đồ của nó đãđược hợp nhất và thêm các ràng buộc khóa ngoại khác vào lược đồ được kết hợp Ví dụ, inst_dept
có ràng buộc khóa ngoại của thuộc tính dept_name tham chiếu đến quan hệ department Ràng buộcngoại này được áp dụng một cách ngầm định bởi quan hệ instructor khi lược đồ cho inst_dept đượchợp nhất vào instructor
8 Các tính năng mở rộng của mô hình E-R
Mặc dù các khái niệm cơ bản của E-R có thể mô hình hóa hầu hết các tính năng cơ sở dữliệu, nhưng một số khía cạnh của cơ sở dữ liệu có thể được diễn tả tốt hơn bằng một số phần mởrộng cho mô hình E-R cơ bản Trong phần này, chúng ta sẽ thảo luận về các tính năng mở rộng củaE-R như specialization, generalization, higher- và lower-level entity sets, attribute inheritance vàaggregation
Để giúp cho các cuộc thảo luận, chúng ta sẽ sử dụng một schema cơ sở dữ liệu phức tạp hơncho trường đại học Cụ thể, chúng ta sẽ mô hình các cá nhân khác nhau trong trường đại học bằngcách xác định một tập thực thể person, với các thuộc tính ID, name, street và city
8.1 Chuyên môn hóa
Một tập thực thể có thể bao gồm các nhóm con của các thực thể khác nhau một cách đặcbiệt so với các thực thể khác trong tập Ví dụ, một tập hợp các thực thể trong một tập thực thể cóthể có các thuộc tính không được chia sẻ bởi tất cả các thực thể trong tập thực thể đó Mô hình E-Rcung cấp một phương tiện để đại diện cho các nhóm thực thể đặc biệt này
Ví dụ, tập thực thể person có thể được phân loại thêm thành một trong những loại sau đây:
student
Mỗi loại người này được mô tả bởi một tập hợp các thuộc tính bao gồm tất cả các thuộc tínhcủa tập thực thể người cộng với các thuộc tính có thể bổ sung Ví dụ, các thực thể nhân viên có thểđược mô tả thêm bởi thuộc tính lương, trong khi các thực thể student có thể được mô tả thêm bởithuộc tính tín chỉ tổng Quá trình chỉ định các nhóm con trong một tập thực thể được gọi là chuyênmôn Chuyên môn của người cho phép chúng ta phân biệt giữa các thực thể person theo cách nào
đó tương ứng với employee hoặc sinh viên: nói chung, một người có thể là employee, student, hoặc
là cả hai hoặc không phải là cả hai
Một ví dụ khác, giả sử trường đại học chia student thành hai loại: granduate vàundergranduate Granduate student được phân công một văn phòng Undergranduate được phânvào một khuôn viên sinh hoạt Mỗi loại sinh viên này được mô tả bởi một tập hợp các thuộc tínhbao gồm tất cả các thuộc tính của tập thực thể sinh viên cộng với các thuộc tính bổ sung.Chúng ta có thể áp dụng chuyên môn lặp đi lặp lại để tinh chỉnh thiết kế Trường đại học cóthể tạo ra hai chuyên môn của student, đó là đại học và sau đại học Như chúng ta đã thấy trước đó,các thực thể student được mô tả bởi các thuộc tính ID,name,street, city và tot_cred Tập thực thể đạihọc sẽ có tất cả các thuộc tính của sinh viên và một thuộc tính bổ sung là office_number Tập thựcthể undergranduate sẽ có tất cả các thuộc tính của student và một thuộc tính bổ sung là khuôn viênsinh hoạt Một ví dụ khác, nhân viên của trường đại học có thể được phân loại tiếp theo là mộttrong hai instructor hoặc secretary
Mỗi loại employee này được mô tả bởi một tập hợp các thuộc tính bao gồm tất cả các thuộctính của tập thực thể employee cộng với các thuộc tính bổ sung Ví dụ, các thực thể instructor cóthể được mô tả thêm bởi thuộc tính hạng trong khi các thực thể secretary được mô tả bởi thuộc tínhgiờ làm việc hàng tuần Hơn nữa, các thực thể secretary có thể tham gia vào mối quan hệ secretary
Trang 34cho giữa các tập thực thể secretary và employee, xác định các employee được hỗ trợ bởi mộtsecretary.
Một tập thực thể có thể được chuyên môn bởi nhiều hơn một đặc điểm phân biệt Trong ví
dụ của chúng ta, đặc điểm phân biệt giữa các thực thể employee là công việc mà employee thựchiện Một chuyên môn khác, cùng tồn tại, có thể dựa trên việc người đó là temporary employee (cóthời hạn) hay permanent employee, dẫn đến các tập thực thể temporary employee và permanentemployee Khi nhiều hơn một chuyên môn được hình thành trên một tập thực thể, một thực thể cụthể có thể thuộc về nhiều chuyên môn Ví dụ, một employee cụ thể có thể là một temporaryemployee là một secretary
Trong một biểu đồ E-R, chuyên môn được miêu tả bằng một đầu mũi tên rỗng trỏ từ thựcthể được chuyên môn đến thực thể khác (xem Hình 1.18) Chúng ta gọi mối quan hệ này là mốiquan hệ ISA, viết tắt của “là một” và đại diện, ví dụ, rằng một instructor “là một” employee Cách chúng ta miêu tả chuyên môn trong một biểu đồ E-R phụ thuộc vào việc một thực thể
có thể thuộc về nhiều tập thực thể chuyên môn hay nó phải thuộc về tối đa một tập thực thể chuyênmôn Trường hợp trước (cho phép nhiều tập) được gọi là chuyên môn chồng chéo, trong khi trườnghợp sau (tối đa một tập) được gọi là chuyên môn không giao nhau Đối với chuyên môn chồng chéo(như là trường hợp của student và employee là các chuyên môn của người), hai mũi tên riêng biệtđược sử dụng Đối với chuyên môn không giao nhau (như là trường hợp của instructor và secretary
là các chuyên môn của employee), chỉ sử dụng một mũi tên Mối quan hệ chuyên môn cũng có thểđược gọi là mối quan hệ lớp cha-lớp con Tập thực thể cấp cao và thấp hơn được miêu tả như cáctập thực thể thông thường - tức là, như các hình chữ nhật chứa tên của tập thực thể
Hình 1.18 Chuyên môn hóa và khái quát hóa
8.2 Khái quát hóa
Quá trình tinh chỉnh từ một tập thực thể ban đầu thành các cấp độ con của thực thể đại diệncho một quá trình thiết kế từ trên xuống trong đó các phân biệt được làm rõ Quá trình thiết kế cũng
có thể tiến hành theo cách từ dưới lên, trong đó nhiều tập thực thể được tổng hợp thành một tậpthực thể cao hơn dựa trên các đặc điểm chung Người thiết kế cơ sở dữ liệu có thể đã xác định trướccác thực thể ban đầu:
Tập thể thực thể instructor với các thuộc tính instructor id, instructor name, instructorsalary,and rank
Trang 35Tập thể thực thể secretary với các thuộc tính secretary id, secretary name, secretary salary,and hours per week.
Có những điểm tương đồng giữa tập thực thể instructor và tập thực thể secretary trong việcchúng có một số thuộc tính có ý nghĩa giống nhau trên hai tập thực thể: đó là các thuộc tính địnhdanh, tên và lương Sự tương đồng này có thể được biểu diễn bằng cách tổng quát hóa, đó là mộtmối quan hệ chứa đựng tồn tại giữa một tập thực thể cấp cao hơn và một hoặc nhiều tập thực thểcấp thấp hơn Trong ví dụ của chúng ta, tập thực thể employee là tập thực thể cấp cao hơn vàinstructor và secretarylà các tập thực thể cấp thấp hơn Trong trường hợp này, các thuộc tính có ýnghĩa giống nhau có tên khác nhau trên hai tập thực thể cấp thấp Để tạo ra một tổng quát hóa, cácthuộc tính phải được đặt tên chung và được đại diện bằng tập thực thể cấp cao hơn là người Chúng
ta có thể sử dụng các tên thuộc tính ID, name, street và city, như chúng ta đã thấy trong ví dụ ởMục 6.8.1
Các tập thực thể cấp cao và cấp thấp cũng có thể được chỉ định bằng các thuật ngữ siêu lớp
và siêu phân lớp, tương ứng Tập thực thể person là siêu lớp của các phân lớp employee và student
Về mặt thực tế, tổng quát hóa là một sự đảo ngược đơn giản của chuyên môn Chúng ta áp dụng cảhai quy trình, kết hợp với nhau, trong quá trình thiết kế lược đồ E-R cho một doanh nghiệp Về mặtcủa chính lược đồ E-R, chúng ta không phân biệt giữa chuyên môn và tổng quát hóa Các cấp độmới của việc đại diện thực thể được phân biệt (chuyên môn) hoặc tổng hợp (tổng quát hóa) khi lược
đồ thiết kế đầy đủ biểu diễn ứng dụng cơ sở dữ liệu và yêu cầu của người dùng của cơ sở dữ liệu
Sự khác biệt giữa hai phương pháp có thể được đặc trưng bởi điểm khởi đầu và mục tiêu tổng thểcủa chúng
Chuyên môn phát sinh từ một tập thực thể duy nhất; nó nhấn mạnh sự khác biệt giữa cácthực thể trong tập bằng cách tạo ra các tập thực thể cấp thấp riêng biệt Những tập thực thể cấp thấpnày có thể có thuộc tính hoặc có thể tham gia vào các mối quan hệ, không áp dụng cho tất cả cácthực thể trong tập thực thể cấp cao hơn Thật vậy, lý do mà một nhà thiết kế áp dụng chuyên môn là
để đại diện cho những đặc điểm độc đáo như vậy Nếu student và employee có chính xác các thuộctính giống như các thực thể person và tham gia vào các mối quan hệ giống như các thực thể person,thì không cần phải chuyên môn tập thực thể person.Tổng quát hóa tiến hành từ nhận thức rằng một
số tập thực thể chia sẻ một số đặc điểm chung (tức là, chúng được mô tả bởi các thuộc tính giốngnhau và tham gia vào các tập hợp mối quan hệ giống nhau) Dựa trên sự giống nhau của chúng,tổng quát hóa tổng hợp các tập thực thể này thành một tập thực thể cấp cao hơn duy nhất Tổngquát hóa được sử dụng để nhấn mạnh sự tương đồng giữa các tập thực thể cấp thấp và ẩn đi sự khácbiệt; nó cũng cho phép một kinh tế biểu diễn trong đó các thuộc tính được chia sẻ không được lặplại
8.3 Kế thừa thuộc tính
Một thuộc tính quan trọng của các thực thể cấp cao và cấp thấp được tạo ra bởi sự chuyênmôn hóa và tổng quát hóa là kế thừa thuộc tính Các thuộc tính của các tập thực thể cấp cao đượccho là được kế thừa bởi các tập thực thể cấp thấp Ví dụ, student và employee thừa hưởng các thuộctính của person Do đó, student được mô tả bởi các thuộc tính ID, name, street và city của nó, vàthêm một thuộc tính tot_cred; employee được mô tả bởi các thuộc tính ID, name, street và city của
nó, và thêm một thuộc tính salary Kế thừa thuộc tính áp dụng cho tất cả các tầng của các tập thựcthể cấp thấp; do đó, instructor và secretary, là các lớp con của employee, thừa hưởng các thuộc tính
ID, name, street và city từ person, ngoài việc thừa hưởng salary từ employee
Một tập thực thể cấp thấp (hoặc lớp con) cũng kế thừa sự tham gia vào các tập quan hệ màthực thể cấp cao của nó (hoặc lớp cha) tham gia Giống như kế thừa thuộc tính, kế thừa tham gia ápdụng cho tất cả các tầng của các tập thực thể cấp thấp Ví dụ, giả sử tập thực thể person tham giavào một mối quan hệ person_dept với department Sau đó, các tập thực thể student, employee,
Trang 36instructor và secretary, là các lớp con của tập thực thể person, cũng tham gia một cách ngầm địnhtrong mối quan hệ person_dept với department Những tập thực thể này có thể tham gia vào bất kỳmối quan hệ nào mà tập thực thể person tham gia.
Dù một phần của mô hình E-R được đạt được bằng cách chuyên môn hóa hoặc tổng quáthóa, kết quả về cơ bản là giống nhau:
• Một tập thực thể cấp cao với các thuộc tính và mối quan hệ áp dụng cho tất cả các tập thựcthể cấp thấp của nó
• Các tập thực thể cấp thấp với các đặc điểm độc đáo chỉ áp dụng trong một tập thực thể cấpthấp cụ thể
Trong những gì sẽ được trình bày dưới đây, mặc dù chúng ta thường chỉ đề cập đến tổngquát hóa, các thuộc tính mà chúng ta thảo luận thuộc về cả hai quá trình
Hình 1.18 mô tả một cấu trúc tập thực thể phân cấp Trong hình, employee là một tập thựcthể cấp thấp của person và là một tập thực thể cấp cao của các tập thực thể instructor và secretary.Trong một cấu trúc phân cấp, một tập thực thể cụ thể có thể tham gia vào một mối quan hệ ISA chỉdưới dạng tập thực thể cấp thấp duy nhất; tức là, các tập thực thể trong biểu đồ này chỉ có kế thừađơn Nếu một tập thực thể là tập thực thể cấp thấp trong nhiều hơn một mối quan hệ ISA, thì tậpthực thể đó có kế thừa nhiều lần, và cấu trúc kết quả được gọi là một lưới
• Tổng quát hóa/chuyên môn toàn bộ Mỗi thực thể cấp cao phải thuộc về một tập thực thểcấp thấp
• Tổng quát hóa/chuyên môn một phần Một số thực thể cấp cao có thể không thuộc về bất
kỳ tập thực thể cấp thấp nào
Tổng quát hóa/chuyên môn một phần là mặc định Chúng ta có thể chỉ định tổng quáthóa/chuyên môn toàn bộ trong một biểu đồ E-R bằng cách thêm từ khóa “total” vào biểu đồ và vẽmột đường nét đứt từ từ khóa đó đến mũi tên rỗng tương ứng mà nó áp dụng (đối với tổng quáthóa/chuyên môn toàn bộ), hoặc đến tập các mũi tên rỗng mà nó áp dụng (đối với tổng quáthóa/chuyên môn chồng chéo)
Tổng quát hóa của person thành student hoặc employee là toàn bộ nếu trường đại học khôngcần đại diện cho bất kỳ người nào không phải là sinh viên hoặc nhân viên Tuy nhiên, nếu trườngđại học cần đại diện cho những người đó, thì sự chuyên môn sẽ là một phần
Ràng buộc hoàn thiện và ràng buộc không giao nhau không phụ thuộc vào nhau Do đó, sựchuyên môn có thể là chồng chéo một phần, không giao nhau một phần, chồng chéo toàn bộ vàkhông giao nhau toàn bộ
Trang 37Chúng ta có thể thấy rằng một số yêu cầu về chèn và xóa theo sau các ràng buộc áp dụngcho một tổng quát hóa hoặc chuyên môn cụ thể Ví dụ, khi một ràng buộc hoàn thiện toàn bộ đượcđặt, một thực thể được chèn vào tập thực thể cấp cao phải được chèn vào ít nhất một trong các tậpthực thể cấp thấp Một thực thể bị xóa khỏi tập thực thể cấp cao cũng phải bị xóa khỏi tất cả các tậpthực thể cấp thấp liên quan mà nó thuộc về.
8.5 Tổng hợp
Một giới hạn của mô hình E-R là nó không thể biểu thị mối quan hệ giữa các mối quan hệ
Để minh họa nhu cầu cho một cấu trúc như vậy, hãy xem xét mối quan hệ ba phía giữa instructor,student và project (xem Hình 1.6)
Giả sử mỗi instructor hướng dẫn một student trên một project đều phải nộp báo cáo đánhgiá hàng tháng Chúng ta mô hình báo cáo đánh giá như một thực thể đánh giá, với khóa chính làevaluation_id Một phương án khác để ghi lại sự kết hợp (student, project, instructor) mà mộtevaluation tương ứng là tạo một tập hợp mối quan hệ bốn phía eval giữa instructor, student, project
và evaluation (Một mối quan hệ bốn phía là bắt buộc - một mối quan hệ nhị phân giữa student vàevaluation, ví dụ, sẽ không cho phép chúng ta biểu thị sự kết hợp (project,instructor) mà một đánhgiá tương ứng.) Sử dụng các cấu trúc mô hình E-R cơ bản, chúng ta thu được sơ đồ E-R của Hình1.19 (Chúng tôi đã bỏ qua các thuộc tính của các tập thực thể, để đơn giản.)
Hình 1.19 Mô hình E-R và những mối quan hệ dư thừa
Trang 38Hình 1.20 Mô hình E-R và mối kết hợp tổng hợp
Có vẻ như các tập hợp quan hệ proj_guide và eval_for có thể được kết hợp thành một tậphợp quan hệ duy nhất Tuy nhiên, chúng ta không nên kết hợp chúng thành một quan hệ duy nhất,
vì một số sự kết hợp giữa instructor, student và project có thể không có đánh giá đi kèm
Có thông tin dư thừa trong hình vẽ kết quả, tuy nhiên, vì mỗi sự kết hợp giữa instructor,student và project trong eval for cũng phải nằm trong proj_guide Nếu evaluation được mô hình hóadưới dạng giá trị thay vì thực thể, chúng ta có thể thay đổi đánh giá thành một thuộc tính composite
đa giá của tập hợp quan hệ proj_guide Tuy nhiên, phương án thay thế này có thể không khả thi nếuđánh giá cũng có thể liên quan đến các thực thể khác; ví dụ, mỗi báo cáo đánh giá có thể được liênkết với một thư ký chịu trách nhiệm xử lý báo cáo đánh giá để thực hiện thanh toán học bổng.Cách tốt nhất để mô hình một tình huống như vừa được mô tả là sử dụng tổng hợp Tổnghợp là một trừu tượng thông qua đó các mối quan hệ được xem xét như các thực thể cấp cao hơn
Do đó, đối với ví dụ của chúng ta, chúng ta coi tập hợp mối quan hệ proj guide (liên quan đến cáctập thực thể instructor, student và project) là một tập thực thể cấp cao hơn được gọi là proj guide.Một tập thực thể như vậy được xử lý theo cùng cách như bất kỳ tập thực thể nào khác Chúng ta sau
đó có thể tạo mối quan hệ nhị phân eval giữa proj guide và evaluation để đại diện cho tổ hợp(student, project, instructor) mà một đánh giá đang được thực hiện Hình 1.20 cho thấy một ký hiệutổng hợp thường được sử dụng để biểu diễn tình huống này
8.6 Rút gọn lược đồ quan hệ
Chúng ta đã sẵn sàng mô tả cách các tính năng E-R mở rộng có thể được dịch sang các lược đồ quanhệ
8.6.1 Biểu diễn khái quát hóa
Có hai phương pháp khác nhau để thiết kế lược đồ quan hệ cho sơ đồ E-R Bao gồm sự kháiquát hóa Mặc dù chúng tôi đề cập đến sự khái quát hóa trong Hình 1.18 trong phần này thảo luận,chúng tôi đơn giản hóa nó bằng cách chỉ bao gồm tầng đầu tiên của các tập thực thể cấp thấp hơn—
đó là employee và student Chúng tôi giả định rằng ID là khóa chính của person
1 Tạo lược đồ cho tập thực thể cấp cao hơn Đối với mỗi tập thực thể cấp thấp hơn,
Trang 39tạo một lược đồ bao gồm một thuộc tính cho từng thuộc tính của thực thể đó đặt cộng mộtcho mỗi thuộc tính của khóa chính của tập thực thể cấp cao hơn Vì vậy, đối với sơ đồ E-R củaHình 1.18 (bỏ qua tập thực thể instructor và secretary), chúng ta có ba lược đồ:
person (ID, name, street, city)employee (ID, salary)student (ID, tot_cred)Các thuộc tính khóa chính của tập thực thể cấp cao hơn trở thành thuộc tính khóa chính củatập thực thể cấp cao hơn cũng như tất cả các tập thực thể cấp thấp hơn Những cái này có thể đượcgạch chân trong ví dụ trước
Ngoài ra, chúng tôi tạo các ràng buộc khóa ngoại trên các tập thực thể cấp thấp hơn, với cácthuộc tính khóa chính của chúng tham chiếu đến khóa chính của mối quan hệ được tạo từ tập thựcthể cấp cao hơn Trong ví dụ trước, thuộc tính ID của employee sẽ tham chiếu khóa chính củaperson và tương tự đối với student
2 Có thể sử dụng một cách biểu diễn thay thế nếu việc khái quát hóa là rời rạc và hoàn
chỉnh - nghĩa là nếu không có thực thể nào là thành viên của hai tập thực thể cấp thấp hơn ngay bêndưới một tập thực thể cấp cao hơn và nếu mọi thực thể trong tập thực thể cấp cao hơn cũng là mộtthành viên của một trong các tập thực thể cấp thấp hơn Ở đây, chúng tôi không tạo lược đồ cho tậpthực thể cấp cao hơn Thay vào đó, đối với mỗi tập thực thể cấp thấp hơn, chúng tôi tạo một lược
đồ bao gồm một thuộc tính cho từng thuộc tính của tập thực thể đó cộng với một cho mỗi thuộctính của tập thực thể cấp cao hơn Sau đó, đối với sơ đồ E-R của Hình 1.18, chúng ta có hai lượcđồ:
employee (ID, name, street, city, salary)
student (ID, name, street, city, tot_cred)
Cả hai lược đồ này đều có ID, là thuộc tính khóa chính của cấp cao hơn thực thể người, làmkhóa chính
Một nhược điểm của phương pháp thứ hai nằm ở việc xác định các ràng buộc khóa ngoại
Để minh họa vấn đề, giả sử chúng ta có một tập mối quan hệ R liên quan đến tập thực thể person.Với phương thức đầu tiên, khi chúng ta tạo lược đồ quan hệ R từ tập mối quan hệ, chúng tôi cũngxác định ràng buộc khóa ngoại trên R, tham chiếu lược đồ người Thật không may, với phươngpháp thứ hai, chúng ta không có một mối quan hệ duy nhất mà ràng buộc khóa ngoại trên R có thểtham chiếu tới Để tránh vấn đề này, chúng ta cần tạo một lược đồ quan hệ người chứa ít nhất cácthuộc tính khóa chính của thực thể person Nếu phương pháp thứ hai được sử dụng để khái quát hóachồng chéo, một số giá trị sẽ được lưu trữ nhiều lần, không cần thiết Ví dụ, nếu một person vừa làmột employee và student, giá trị của street và city sẽ được lưu trữ hai lần Nếu sự khái quát hóa rờirạc nhưng không hoàn chỉnh - nghĩa là nếu một person nào đó không phải là employee cũng khôngphải là student - thì một lược đồ bổ sung
person (ID, name, street, city)
sẽ được yêu cầu đại diện cho những người như vậy Tuy nhiên, vấn đề với khóa ngoạinhững hạn chế nêu trên sẽ vẫn còn Như một nỗ lực để giải quyết vấn đề, Giả sử employee vàstudent được đại diện bổ sung trong mối quan hệ person Thật không may, thông tin name, street vàcity sau đó sẽ được lưu trữ dư thừa trong mối quan hệ con người và mối quan hệ student vớistudent, và tương tự như vậy trong mối quan hệ con người và nhân viên và mối quan hệ nhân viênđối với nhân viên Điều đó gợi ý lưu trữ name, street, và city chỉ trong mối quan hệ cá nhân và xóathông tin đó khỏi student và employee Nếu chúng tôi làm điều đó, kết quả chính xác là phươngpháp đầu tiên chúng tôi trình bày
8.6.2 Đại diện của tập hợp
Việc thiết kế các lược đồ cho sơ đồ E-R chứa tập hợp rất đơn giản Hãy xem xét Hình 1.20.Lược đồ cho tập hợp mối quan hệ được đánh giá giữa tập hợp của hướng dẫn dự án và đánh giá tậpthực thể bao gồm một thuộc tính cho mỗi thuộc tính trong các khóa chính của việc đánh giá tậpthực thể và hướng dẫn dự án tập hợp mối quan hệ Nó cũng bao gồm một thuộc tính cho bất kỳthuộc tính mô tả nào, nếu chúng tồn tại, của tập hợp mối quan hệ đánh giá cho Sau đó, chúng tôi
Trang 40chuyển đổi các tập hợp mối quan hệ và các tập thực thể trong phạm vi tổng hợp tập thực thể tuântheo các quy tắc mà chúng ta đã xác định.
Các quy tắc chúng ta đã thấy trước đó để tạo các ràng buộc khóa chính và khóa ngoại trêncác tập hợp mối quan hệ cũng có thể được áp dụng cho các tập hợp mối quan hệ liên quan đến cáctập hợp, với tập hợp được xử lý giống như bất kỳ tập thực thể nào khác Khóa chính của tập hợp làkhóa chính của tập hợp quan hệ xác định của nó Không cần có mối quan hệ riêng biệt để đại diệncho tập hợp; mối quan hệ được tạo từ mối quan hệ xác định được sử dụng thay thế
9 Những vấn đề trong thiết kế các mối quan hệ thực thể
Các khái niệm về thực thể và mối quan hệ thường không rõ ràng, và có thể xác định một tậphợp các thực thể và mối quan hệ giữa chúng theo nhiều cách khác nhau Trong phần này, chúng taxem xét các vấn đề cơ bản trong thiết kế một lược đồ cơ sở dữ liệu mối quan hệ thực thể Trongphần 6.11 sẽ trình bày quy trình thiết kế một cách chi tiết hơn
(a) Sử dụng thuộc tính chưa chính xác
(b) Lỗi sai khi sử dụng thuộc tính mối quan hệ
Hình 1.21 Ví dụ về lỗi sai trong mô hình E-R
9.1 Những lỗi sai phổ biến trong mô hình E-R
Một sai lầm phổ biến khi tạo mô hình E-R là sử dụng khóa chính của một thực thể như mộtthuộc tính của một thực thể khác, thay vì sử dụng một mối quan hệ Ví dụ, trong mô hình E-R củachúng ta về trường đại học, việc có tên phòng ban là một thuộc tính của sinh viên (như được miêu
tả trong Hình 1.21a) là không chính xác, mặc dù nó xuất hiện là một thuộc tính trong lược đồ quan
hệ cho sinh viên Mối quan hệ " stud_dept " là cách chính xác để biểu thị thông tin này trong môhình E-R, vì nó làm cho mối quan hệ giữa student và department rõ ràng, thay vì ngầm thông quamột thuộc tính Sử dụng một thuộc tính "dept_name" cùng với mối quan hệ "stud_dept" sẽ dẫn đếntrùng lặp thông tin
Một sai lầm liên quan khác mà mọi người đôi khi mắc phải là chỉ định các thuộc tính khóachính của các thực thể liên quan là các thuộc tính của mối quan hệ Ví dụ, ID (các thuộc tính khóachính của student) và ID (khóa chính của instructor) không nên xuất hiện là các thuộc tính của mốiquan hệ Điều này không nên làm vì các thuộc tính khóa chính đã ngầm hiện diện trong mối quan