Trong thực tế, các thực thể không thể tồn tại độc lập mà chúng luôn luôn có quan hệ mật thiết với nhau. Quan hệ ở đây là mối liên kết giữa một hoặc nhiều thực thể để chỉ ra sự liên quan về nội dung và ý nghĩa giữa các cá thể trong các thực thể.
Ví dụ như mối quan hệ giữa thực thể “khách hàng” và thực thể “hóa đơn” (khách hàng mua hàng được liệt kê trong hóa đơn, trong mỗi hóa đơn có tên một khách hàng), mối quan hệ giữa thực thể “sản phẩm” và thực thể “nhà cung cấp” (một sản phẩm được cung cấp bởi một
số nhà cung cấp và một nhà cung cấp sẽ cung cấp một số loại sản phẩm nào đó). Quan hệ “Mỗi sinh viên học nhiều môn học, mỗi môn học có nhiều sinh viên tham gia” thể hiện sự liên kết ý nghĩa của thực thể “Sinh viên” và thực thể “Môn học”.
Khi xác định một quan hệ giữa các cá thể của cùng một thực thể hoặc của hai thực thể thì tất cả các cá thể trong thực thể đều được xét đến quan hệ này (có thể có hoặc không có quan hệ này). Giữa chúng có thể có nhiều quan hệ khác nhau, ví dụ giữa hai thực thể “Nhân viên” và “Công việc” có quan hệ “Thực hiện”, “Phân công”, “Kiểm tra”… Do đó,
việc xác định quan hệ giữa các cá thể của cùng một thực thể hoặc của các thực thể mang tính chọn lọc, chỉ nên quan tâm đến quan hệ nào cần sử dụng trong hệ thống.
Những mối quan hệ như vậy được biểu diễn trên mô hình thực thể bằng hình thoi, bên trong ghi tên quan hệ, các đoạn thẳng nối từ hình thoi với các hình chữ nhật ghi tên các thực thể.
A B A, B: Hai thực thể
X R Y R : Quan hệ giữa A&B X, Y: Kiểu quan hệ giữa A&B
Hình 4.7. Biểu diễn mối quan hệ giữa hai thực thể
0 Có hai khái niệm liên quan đến các mối quan hệ giữa các thực thể, đó là bậc quan hệ và kiểu quan hệ.
0Bậc của quan hệ chỉ số lượng thực thể tham gia vào quan hệ đó, cụ thể là: 0Quan hệ bậc 1 là quan hệ của một cá thể với các cá thể khác thuộc cùng một thực thể.
1Quan hệ bậc 2 là quan hệ giữa 2 thực thể. Đây là quan hệ thường gặp trong thực tế.
2 Quan hệ bậc 3 trở lên được gọi quan hệ bậc cao. Người ta đã chứng minh được rằng mọi quan hệ bậc cao đều biến đổi được về quan hệ bậc 2.
1Kiểu quan hệ liên quan tới mỗi cá thể của một thực thể không liên kết hoặc có liên kết với một hoặc nhiều cá thể của chính nó hoặc của các thực thể khác. Có ba kiểu quan hệ chính được sử dụng dưới các dạng đơn giản nhất của Mô hình thực thể:
0 Kiểu quan hệ Một – Một (1-1) 1 Kiểu quan hệ Một – Nhiều (1-N) 2 Kiểu quan hệ Nhiều – Nhiều (N-N)
Trong mỗi bậc quan hệ đều tồn tại các kiểu quan hệ nêu trên.
4.2.2.1 Quan hệ bậc 1
0Kiểu quan hệ 1-1 của quan hệ bậc 1: một cá thể không có quan hệ hoặc chỉ quan hệ với một cá thể khác thuộc cùng một thực thể.
1
Nhân dân
1
Kết
hôn
Ví dụ: Tình trạng hôn nhân của mỗi người có thể là độc thân hoặc đã kết hôn.
Nếu người đó đã kết hôn thì chỉ được kết hôn với duy nhất một người khác.
Hình 4.8. Quan hệ kết hôn trong xã hội 0Kiểu quan hệ 1-N của quan hệ bậc 1:
Trong cùng một thực thể, có hai loại cá thể, loại thứ nhất: mỗi cá thể có quan hệ với nhiều cá thể, loại thứ hai: mỗi cá thể chỉ có quan hệ với duy nhất một cá thể khác mà thôi.
1 Phụ Nhân viên trách N Hình 4.9. Quan hệ phụ trách trong thực thể “Nhân viên”
Ví dụ: Xét thực thể là “Nhân viên” của một cơ quan. Một nhân viên có thể phụ trách nhiều nhân viên khác, nhưng tại một thời điểm, một nhân viên chỉ chịu sự phụ trách của một nhân viên – là người phụ trách - khác mà thôi.
Kiểu quan hệ N-N của quan hệ bậc 1: một cá thể đều có quan hệ với nhiều cá thể khác thuộc cùng một thực thể. N Sản phẩm N Được cấu thành Ví dụ: Xét thực thể là Sản phẩm, trong đó một sản phẩm được cấu thành từ một số sản phẩm và nó cũng có thể là thành phần của nhiều sản phẩm khác.
Hình 4.10. Quan hệ “Được cấu thành” trong thực thể “Sản phẩm”
4.2.2.2 Quan hệ bậc 2
Có hai thực thể tham gia mối quan hệ.
Kiểu quan hệ 1-1 của quan hệ bậc 2
Người ta nói thực thể A có quan hệ 1-1 với thực thể B nếu mỗi cá thể của thực thể A hoặc là không liên kết hoặc là liên kết với chỉ một cá thể của thực thể B và ngược lại, mỗi cá thể của thực thể B hoặc là không liên kết hoặc là liên kết với chỉ một cá thể của thực thể A.
A R
1 1
thể hiện sự liên kết một cá thể của B với tối đa là
một cá thể của A
B
thể hiện sự liên kết một cá thể của A với tối đa là một cá
thể của B
A
B A, B: Hai thực thể Hình 4.11.a Hình 4.11.b
R: Quan hệ 1-1 giữa A&B
Hình 4.11. Biểu diễn mối quan hệ 1-1 giữa hai thực thể A&B
Ví dụ 1. Để quản lý một chung cư, người ta xây dựng hai thực thể “Hộ gia đình” và “Căn hộ”. Giả sử rằng: mỗi hộ gia đình chỉ sống tại một căn hộ, mỗi căn hộ có thể chưa có hộ gia đình nào sống hoặc nếu có thì chỉ có duy nhất một hộ sống tại đó mà thôi.
Hộ gia đình Sống tại
1 1
Căn hộ
Hình 4.12. Mối quan hệ giữa hai thực thể “Hộ gia đình” và “Căn hộ”
Ví dụ 2. Xét hai hai thực thể “Phòng công tác”, “Lãnh đạo phòng” và quan hệ 1-1: “Một Phòng công tác bao giờ cũng có một Lãnh đạo phòng (Trưởng phòng hoặc Q.Trưởng phòng hoặc Phó phòng – hụ trách phòng). Một Lãnh đạo phòng thì chắc chắn lãnh đạo một Phòng công tác và chỉ một mà thôi”.
Lãnh đạo phòng Lãnh đạo
1 1
Phòng công tác
Hình 4.13. Mối quan hệ giữa hai thực thể “Lãnh đạo phòng” và “Phòng công tác”
Ví dụ 3. Cho hai thực thể “Nhân viên” và “Name card”. Mỗi nhân viên có (duy nhất) một bộ Name card và mỗi bộ Name card tương ứng với (duy nhất) một nhân viên.
Nhân viên Có
1 1
Name card
Kiểu quan hệ 1-N của quan hệ bậc 2
Người ta nói thực thể A có quan hệ 1-N với thực thể B nếu mỗi cá thể của thực thể A liên kết với một hoặc nhiều cá thể của thực thể B và mỗi cá thể của thực thể B chỉ liên kết với một cá thể của thực thể A. A R B 1 N thể hiện sự liên kết một cá thể của B với một cá thể của A thể hiện sự liên kết một cá thể của A với nhiều cá thể của B A B Hình 4.15.a Hình 4.15.b
Hình 4.15. Biểu diễn mối quan hệ 1-N giữa hai thực thể A&B
Ngoài cách biểu diễn như hình 4.15.a, quan hệ Một – Nhiều còn được vẽ trong mô hình thực thể bằng một đường có hình tam giác ở một đầu, ứng với nhiều dòng của một bảng (thực thể B), còn đầu kia ứng với một dòng ở bảng kia (thực thể A) (Hình 4.15.b).
Ví dụ 1. Xét mối quan hệ giữa 2 thực thể “Khách hàng” và “Hóa đơn”. Một khách hàng có thể có nhiều hóa đơn mua hàng, nhưng trên mỗi hóa đơn chỉ ghi tên của một khách hàng.
Khách hàng 1 Có Hóa đơn N
Hình 4.16. Mối quan hệ giữa hai thực thể “Khách hàng” và “Hóa đơn”
Khách
hàng Hóa đơn
Ví dụ 2. Xét mối quan hệ giữa thực thể “Lớp học” và thực thể “Sinh viên”. Một lớp học có nhiều sinh viên, nhưng mỗi sinh viên chỉ thuộc một lớp học.
Lớp học 1 Có N Sinh viên
Hình 4.17. Mối quan hệ giữa hai thực thể “Lớp học” và “Sinh viên”
Kiểu quan hệ N-N của quan hệ bậc 2
Lớp học
Sinh
viên
Người ta nói thực thể A có quan hệ N-N với thực thể B nếu mỗi cá thể của thực thể A liên kết với nhiều cá thể của thực thể B và mỗi cá thể của thực thể B liên kết với nhiều cá thể của thực thể A.
Khái niệm “nhiều cá thể” ở đây có thể là 0, 1 hay nhiều cá thể, có nghĩa là: mỗi cá thể của thực thể A liên kết với 0, 1 hay nhiều cá thể của thực thể B và ngược lại, mỗi cá thể của thực thể B liên kết với 0, 1 hay nhiều cá thể của thực thể A.
A R B N N thể hiện sự liên kết một cá thể của B với nhiều cá thể của A thể hiện sự liên kết một cá thể của A với nhiều cá thể của B A B Hình 4.18.a Hình 4.18.b
Hình 4.18. Biểu diễn mối quan hệ N-N giữa hai thực thể A&B
Ví dụ 1. Xét mối quan hệ giữa thực thể “Sinh viên” và thực thể “Môn học”. Một sinh viên học nhiều môn học và mỗi môn học có nhiều sinh viên tham gia học tập.
Sinh viên Học Môn học
N N
Hình 4.19. Mối quan hệ giữa hai thực thể “Sinh viên” và “Môn học”
Sinh
viên Môn học
Ví dụ 2. Xét mối quan hệ giữa thực thể “Hóa đơn” và thực thể “Hàng hóa”. Trong một hóa đơn dùng để thanh toán cho một hoặc nhiều hàng hóa và mỗi một hàng hóa có thể có mặt trong nhiều hóa đơn.
Hóa đơn N Chứa N Hàng hóa
Hình 4.20. Mối quan hệ giữa hai thực thể Hóa đơn và Hàng hóa
4.2.2.3 Quan hệ bậc 3
Hóa đơn
Hàng
hóa
Ta xét 3 thực thể là “Nhà cung cấp”, “Hàng hóa” và “Siêu thị”. Quan hệ được xét là nhà cung cấp cung cấp hàng hóa cho các siêu thị.
Nhà cung cấp Cung cấp
N N
N Siêu thị
Hàng hóa
Hình 4.21. Quan hệ bậc 3 giữa “Nhà cung cấp”, “Hàng hóa” và “Siêu thị”
Ta có thể biến đổi quan hệ bậc 3 thành các quan hệ bậc 2 bằng cách thay thế quan hệ bậc 3 bằng một thực thể ảo – “Kho hàng” – và xét quan hệ đã có với quan hệ này.
Ta có bảng biến đổi như hình 4.22 sau đây: Nhà cung cấp
N Gửi hàng
N
Kho hàng N Chứa Hàng hóa N
N Chuyển đến
N Siêu thị
Hình 4.22. Biến đổi quan hệ bậc 3 thành quan hệ bậc 2
Việc mô tả các mối quan hệ giữa các cá thể của cùng một thực thể hoặc của các thực thể khác nhau phụ thuộc vào kiểu quan hệ.
Đối với kiểu quan hệ 1-1 và 1-N: Chúng có thể được mô tả bằng một thuộc tính quan hệ ở một thực thể, thuộc tính này là thuộc tính định danh của chính thực thể đó hoặc của thực thể kia.
Ví dụ. “Mỗi sinh viên thuộc một lớp học”. Có hai thực thể “Sinh viên”, “Lớp học” và mối quan hệ “Thuộc” được xét đến trong phát biểu trên. Để biểu diễn quan hệ “Thuộc”, ta sử dụng thuộc tính quan hệ “Mã Lớp học” như sau:
Thực thể “Lớp học” có các thuộc tính: #Mã Lớp học, Khóa học, Ngành học, … Thực thể “Sinh viên” có các thuộc tính: #Mã Sinh viên, Họ và tên, …, Mã Lớp học Qua đó, chúng ta sẽ biết một sinh viên thuộc lớp học nào.
Đối với kiểu quan hệ N-N: cần xây dựng một thực thể quan hệ. Thực thể này thường có những thuộc tính riêng (trong một số ít trường hợp có thể không có thuộc tính riêng).
Ví dụ 1. “Mỗi sinh viên sau mỗi lần thi một môn học sẽ có một điểm xác định cho lần thi đó”. Có 2 thực thể “Sinh viên” và “Môn học” được đề cập trong phát biểu; quan hệ “Thi” liên kết 2 thực thể này. “Lần thi” và “Điểm” là dữ liệu phát sinh sau khi thi nên chúng là thuộc tính của quan hệ Thi, không phải là thuộc tính của sinh viên hoặc môn học. Vì một sinh viên S có thể thi nhiều lần đối với một môn học M, nên quan hệ “Thi” cần có nhiều bộ dữ liệu (lần thi, điểm) để mô tả cho mối liên kết (S, M) trong quan hệ “Thi”. Như vậy “Thi” là một thực thể quan hệ, được vẽ trong hình sau:
Sinh viên THI
1 N N 1
Môn học
Mã SV Lần thi Điểm Mã MH
Hình 4.23. Thực thể quan hệ “ hi”
Ví dụ 2. Có 2 thực thể “Giảng viên” và “Môn học”. Chúng ta muốn xác định “Danh sách các môn đã giảng dạy của giảng viên”. Khi đó cần xây dựng thực thể quan hệ “Giảng viên – Môn học” với hai thuộc tính quan hệ “Mã giảng viên” và “Mã môn học”. Trong trường hợp này, thực thể quan hệ có thể không chứa các thuộc tính mô tả riêng. Tuy nhiên, giữa giảng viên và môn học có thể quản lý một số thông tin như “Số năm đã dạy”, “Chất lượng giảng dạy” môn học đó…
4.3 XÂY DỰNG SƠ ĐỒ QUAN HỆ-THỰC THỂ VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU 4.3.1 Sơ đồ Quan hệ - Thực thể (Entity Relation Diagram - ERD)
Sơ đồ Quan hệ - Thực thể là sơ đồ biểu diễn tất cả các thực thể mà tổ chức cần quản lý và các mối quan hệ giữa chúng.
Sau khi đã nghiên cứu các thực thể và mối quan hệ giữa các thực thể, chúng ta có thể xây dựng Sơ đồ Quan hệ - Thực thể ERD. Các bước xây dựng Sơ đồ ERD:
Xác định các thực thể dựa trên vai trò, ý nghĩa của thực thể đối với hệ thống:
Đặt tên cho thực thể. Nên chọn danh từ để đặt tên cho thực thể, ví dụ như “Sinh viên”, “Môn học”, … Mỗi thực thể có một tên duy nhất trong toàn bộ hệ thống.
Xác định các thuộc tính của thực thể. Cần xác định đầy đủ (không thừa, không thiếu) các thuộc tính tùy theo nhu cầu quản lý của mỗi tổ chức. Thêm thuộc tính để tăng tính mô tả, hoặc để có thêm dữ liệu phân biệt các cá thể; bỏ bớt thuộc tính nếu chúng dư thừa hoặc không liên quan đến vai trò, ý nghĩa của thực thể trong hệ thống. Tên các thuộc tính thường là danh từ. Cần xác định cụ thể và sử dụng thêm các ký hiệu để biểu diễn:
Thuộc tính mô tả: “Tên thuộc tính mô tả” Lập bảng các thuộc tính của thực thể.
Xác định quan hệ giữa các thực thể, bao gồm mối quan hệ, bậc quan hệ, các kiểu quan hệ.
Lưu ý: Trong quá trình xác định các mối quan hệ, cần xác định các quan hệ tiêu biểu mà tổ chức cần quản lý. Tên của các quan hệ thường được diễn tả bằng động từ hoặc tính từ để chỉ các hành động, sự kiện liên kết các thể hiện trong các thực thể có quan hệ nhau, ví dụ như “Có”, “Thi”, “Học”, …
3. Vẽ sơ đồ Quan hệ - Thực thể.
Ví dụ. Cho bản mô tả một hoạt động quản lý của Bộ Giáo dục và Đào tạo như sau:
Bộ Giáo dục và Đào tạo tổ chức khảo sát các trường Đại học. Mỗi trường Đại học có nhiều Khoa, mỗi Khoa có nhiều Bộ môn, mỗi Bộ môn có nhiều Giảng viên.
Để nâng cao chất lượng đào tạo, các trường quy định mỗi giảng viên chỉ giảng một môn học, mỗi môn học chỉ do một giảng viên phụ trách. Tại các trường, mỗi Khoa đều quản lý nhiều lớp, mỗi lớp có nhiều Sinh viên. Trong suốt các năm học tại trường, mỗi sinh viên phải học nhiều môn học, mỗi Môn học có nhiều Sinh viên tham gia.
Hãy vẽ sơ đồ Quan hệ - Thực thể (ERD) để làm cơ sở thiết kế sơ đồ cấu trúc dữ liệu nhằm quản lý trường đại học.
Để xây dựng sơ đồ Quan hệ - Thực thể, chúng ta thực hiện các bước sau đây:
Bước 1: Xác định các thực thể: Trường, Khoa, Bộ môn, Giảng viên, Môn học, Lớp, Sinh viên. Xác định các thuộc tính của các thực thể và lập bảng sau:
Bảng 4.2. Danh sách các thực thể và các thuộc tính
Thực thể huộc tính
Trường #Mã trường, Tên trường