2. Đề cương
Tổng quan về quá trình thiết kế
Mô hình thực thể-mối quan hệ
Thuộc tính phức tạp
Lập bản đồ Cardinalities
Khóa chính
Loại bỏ các thuộc tính dư thừa trong Entity Sets
Giảm sơ đồ ER thành lược đồ quan hệ
Các tính năng ER mở rộng
Các vấn đề về thiết kế mối quan hệ thực thể
Ký hiệu thay thế cho dữ liệu mô hình hóa
Các khía cạnh khác của thiết kế cơ sở dữ liệu
3. Đề cương
Các tính năng ER mở rộng
Các vấn đề về thiết kế mối quan hệ thực thể
Ký hiệu thay thế cho dữ liệu mô hình hóa
Các khía cạnh khác của thiết kế cơ sở dữ liệu
4. Giai đoạn thiết kế
Giai đoạn ban đầu -- mô tả đầy đủ nhu cầu dữ liệu của
những người sử dụng cơ sở dữ liệu tiềm năng.
Giai đoạn thứ hai - chọn một mô hình dữ liệu
Áp dụng các khái niệm của mô hình dữ liệu đã chọn
Dịch các yêu cầu này thành một lược đồ khái niệm
của cơ sở dữ liệu.
Một lược đồ khái niệm được phát triển đầy đủ chỉ ra
các yêu cầu chức năng của doanh nghiệp.
Mô tả các loại hoạt động (hoặc giao dịch) sẽ được
thực hiện trên dữ liệu.
5. Các giai đoạn thiết kế (tt)
Giai đoạn cuối -- Chuyển từ mô hình dữ liệu trừu tượng
sang triển khai cơ sở dữ liệu
Thiết kế logic – Quyết định lược đồ cơ sở dữ liệu.
Thiết kế cơ sở dữ liệu yêu cầu chúng ta tìm một
tập hợp các lược đồ quan hệ “tốt”.
Quyết định kinh doanh – Chúng ta nên ghi lại
những thuộc tính nào trong cơ sở dữ liệu?
Quyết định về khoa học máy tính – Chúng ta nên
có những lược đồ quan hệ nào và các thuộc tính
nên được phân phối như thế nào giữa các lược đồ
quan hệ khác nhau?
Thiết kế vật lý – Quyết định bố cục vật lý của cơ sở
dữ liệu
6. Giải pháp thay thế thiết kế
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ẫy chính:
Dự phòng: một thiết kế tồi có thể dẫn đến thông tin
lặp lại.
Biểu diễn thông tin dự phòng có thể dẫn đến sự
không nhất quán dữ liệu giữa các bản sao thông tin
khác nhau
Tính không đầy đủ: một thiết kế tồi có thể khiến một
số khía cạnh của doanh nghiệp trở nên khó khăn hoặc
không thể mô hình hóa được.
Tránh những thiết kế xấu là không đủ. 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.
7. Phương pháp thiết kế
Mô hình quan hệ thực thể (được trình bày trong chương
này)
Mô hình hóa một doanh nghiệp như một tập hợp các thực
thể và các mối quan hệ
Thực thể: một “sự vật” hoặc “đối tượng” trong doanh
nghiệp có thể phân biệt với các đối tượng khác
Được mô tả bởi một tập hợp các thuộc tính
Mối quan hệ: một hiệp hội giữa một số thực thể
Được biểu diễn dưới dạng sơ đồ bằng sơ đồ mối quan hệ
thực thể:
Lý thuyết chuẩn hóa (Chương 7)
Chính thức hóa những thiết kế nào là xấu và kiểm tra
chúng
9. Mô hình ER
Mô hình hóa cơ sở dữ liệu
• Chế độ dữ liệu ER được phát triển để hỗ trợ thiết kế cơ sở dữ liệu
bằng cách cho phép đặc tả sơ đồ 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 dữ liệu ER sử dụng ba khái niệm cơ bản:
• Tập thực thể,
• Tập liên kết ,
• Tập thuộc tính.
• Mô hình ER cũng có một biểu diễn sơ đồ liên quan, sơ đồ ER , có
thể biểu thị cấu trúc logic tổng thể của cơ sở dữ liệu bằng đồ họa
10. Tập thực thể
• Một thực thể là một đối tượng tồn tại và có thể phân biệt được với các đối
tượng khác.
• Ví dụ: người cụ thể, công ty, sự kiện, nhà máy
• Một tập thực thể là tập hợp các thực thể cùng loại có chung thuộc tính.
• Ví dụ: tập hợp tất cả người, công ty, cây cối, ngày lễ
• Một thực thể được đại diện bởi một tập hợp các thuộc tính; nghĩa là các
thuộc tính mô tả được sở hữu bởi tất cả các thành viên của một tập thực
thể.
• Ví dụ:
instructor = (ID, name, salary )
course= (course_id, title, credits)
• Một tập con của các thuộc tính tạo thành khóa chính của tập thực thể; tức
là xác định duy nhất từng thành viên của tập hợp.
12. Biểu diễn cho các tập Thực thể trong Sơ đồ ER
Các tập thực thể có thể được biểu diễn bằng đồ họa như sau:
• Hình chữ nhật đại diện cho tập thực thể.
• Các thuộc tính được liệt kê bên trong hình chữ nhật thực
thể
• Gạch dưới chỉ ra các thuộc tính khóa chính
13. Tập liên kết
• Một liên kết là một quan hệ giữa một số thực thể
Ví dụ:
44553 (Peltier) advisor 22222 (Einstein)
student entity relationship set instructor entity
• Một tập liên kết là một quan hệ toán học giữa n 2 thực
thể, mỗi thực thể lấy từ tập thực thể
{( e 1 , e 2 , … e n ) | e 1 E 1 , e 2 E 2 , …, e n E n }
trong đó ( e 1 , e 2 , …, e n ) là một quan hệ
• Ví dụ:
(44553,22222) advisor
14. Tập liên kết(Tiếp theo)
Ví dụ: chúng tôi xác định tập liên kết “advisor” để biểu thị
mối liên hệ giữa “student” và “instructor” đóng vai trò là cố
vấn của họ.
Bằng hình ảnh, chúng tôi vẽ một đường thẳng giữa các thực
thể liên quan.
15. Đại diện cho các tập liên kết thông qua sơ đồ ER
Hình thoi đại diện cho các tập liên kết.
16. Tập liên kết(Tiếp theo)
• Một thuộc tính cũng có thể được liên kết với một tập liên
kết.
• Chẳng hạn, liên kết “advisor “ được thiết lập giữa tập thực
thể “instructor” và “student“ có thể có thuộc tính date theo
dõi thời điểm sinh viên bắt đầu được liên kết với cố vấn
instructor
student
76766 Crick
Katz
Srinivasan
Kim
Singh
Einstein
45565
10101
98345
76543
22222
98988
12345
00128
76543
44553
Tanaka
Shankar
Zhang
Brown
Aoi
Chavez
Peltier
3 May 2008
10 June 2007
12 June 2006
6 June 2009
30 June 2007
31 May 2007
4 May 2006
76653
23121
18. Roles
• Các tập thực thể của một liên kết không cần phải khác biệt
• Mỗi lần xuất hiện của một tập thực thể đóng một “vai trò”
trong liên kết
• Các nhãn “ course_id ” và “ prereq_id ” được gọi là roles.
19. Bậc của một tập liên kết
• Mối liên kết nhị phân
• Liên quan đến hai tập thực thể (hoặc mức độ hai).
• Hầu hết các bộ liên kết trong một hệ thống cơ sở dữ
liệu là nhị phân.
• Liên kết giữa nhiều hơn hai tập thực thể là rất hiếm. Hầu
hết các liên kết là nhị phân. (Thêm về điều này sau.)
• Ví dụ: sinh viên làm việc trong các dự án nghiên cứu
dưới sự hướng dẫn của giảng viên .
• Liên kết proj_guide là quan hệ ba chiều giữa instructor,
student, và project
20. Tập liên kết không nhị phân (ternary)
• Hầu hết các bộ liên kết là nhị phân
• Có những trường hợp thuận tiện hơn khi biểu diễn các
mối liên kết dưới dạng không nhị phân.
• Sơ đồ ER với liên kết ternary
21. Thuộc tính phức tạp
• Các loại thuộc tính:
• Thuộc tính đơn và tổng hợp .
• Tính đơn trị và đa trị
• Ví dụ: thuộc tính đa trị: phone_numbers
• Tính dẫn xuất
• Có thể được tính toán từ các thuộc tính khác
• Ví dụ: age, date_of_birth
• Miền– tập hợp các giá trị được phép cho từng thuộc tính
22. Thuộc tính tổng hợp
• Các thuộc tính tổng hợp cho phép chúng ta chia các
thuộc tính thành các phần con (các thuộc tính khác).
name address
first_name middle_initial last_name street city state postal_code
street_number street_name apartment_number
composite
attributes
component
attributes
23. Biểu diễn cho các thuộc tính phức tạp trong sơ
đồ ER
24. Ánh xạ các ràng buộc lực lượng
• 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 quan hệ.
• Hữu ích nhất trong việc mô tả các bộ quan hệ nhị phân.
• Đối với tập hợp quan hệ nhị phân, lực lượng ánh xạ
phải là một trong các loại sau:
• một đối một
• Một đến nhiều
• Nhiều đến một
• Nhiều nhiều
25. Lập bản đồ lực lượng
một đối một Một đến nhiều
Lưu ý: Một số phần tử trong A và B có thể không được ánh xạ tới bất kỳ
các phần tử trong tập hợp khác
26. Lập bản đồ lực lượng
Nhiều đến một Nhiều nhiều
Lưu ý: Một số phần tử trong A và B có thể không được ánh xạ tới bất kỳ
các phần tử trong tập hợp khác
27. Biểu diễn các ràng buộc lưc lượng trong sơ đồ ER
• Chúng ta thể hiện các ràng buộc về số lượng bằng cách
vẽ một đường có hướng ( ), biểu thị “một” hoặc một
đường vô hướng (—), biểu thị “nhiều” giữa tập quan hệ
và tập thực thể.
• Mối quan hệ trực tiếp giữa instructor và student :
• Một sinh viên được liên kết với nhiều nhất một người
hướng dẫn thông qua quan hệ advisor
• Một sinh viên được liên kết với tối đa một khoa qua
stud_dept
28. Liên kết một-nhiều
• Liên kết một-nhiều giữa giảng viên và sinh viên
• Một người hướng dẫn được liên kết với một số sinh viên (bao gồm
0) thông qua liên kết advisor
• Một sinh viên được liên kết với nhiều nhất một người hướng dẫn
thông qua liên kết advisor,
29. Liên kết nhiều-một
• Trong liên kết nhiều-một giữa giảng viên và sinh viên,
• Một người hướng dẫn được liên kết với nhiều nhất một sinh viên
thông qua cố vấn ,
• và một sinh viên được liên kết với một số người hướng dẫn (bao
gồm 0) thông qua cố vấn
30. Liên kết nhiều-nhiều
• Một người hướng dẫn được liên kết với một số sinh viên
(có thể là 0) thông qua cố vấn
• Một sinh viên được liên kết với một số người hướng dẫn
(có thể là 0) thông qua cố vấn
31. Tham gia toàn bộ và một phần
Tổng số tham gia (được biểu thị bằng dòng kép): mọi thực thể
trong tập thực thể tham gia vào ít nhất một mối quan hệ trong
tập mối quan hệ
sự tham gia của sinh viên trong mối quan hệ cố vấn là toàn bộ
mỗi học sinh phải có một người hướng dẫn liên quan
Tham gia một phần : một số thực thể có thể không tham gia
vào bất kỳ mối quan hệ nào trong tập hợp mối quan hệ
• Ví dụ: sự tham gia của người hướng dẫn trong cố vấn là một
phần
32. Ký hiệu để thể hiện các ràng buộc phức tạp hơn
Một dòng có thể có số lượng thẻ tối thiểu và tối đa được liên kết, được hiển thị ở
dạng l..h , trong đó l là số tiền tối thiểu và h là số lượng thẻ tối đa
• Giá trị tối thiểu là 1 cho biết tổng số người tham gia.
• Giá trị tối đa là 1 cho biết thực thể tham gia vào nhiều nhất một mối quan hệ
• Giá trị tối đa của * cho biết không có giới hạn.
Ví dụ
• Giảng viên có thể tư vấn cho 0 hoặc nhiều sinh viên. Một sinh viên phải có 1 cố
vấn; không thể có nhiều cố vấn
33. Ràng buộc lực lượng trên liên kết ternary
• Chúng tôi cho phép tối đa một mũi tên trong liên kết bậc ba (hoặc mức độ cao
hơn) để biểu thị ràng buộc về lực lượng
• Ví dụ: một mũi tên từ proj_guide đến người hướng dẫn cho biết mỗi sinh viên
có nhiều nhất một hướng dẫn cho một dự án
• Nếu có nhiều hơn một mũi tên, có hai cách xác định ý nghĩa.
• Ví dụ: mối quan hệ ba bên R giữa A , B và C với các mũi tên đến B và C có
thể có nghĩa là
1. Mỗi thực thể A được liên kết với một thực thể duy nhất từ B
và C hoặc
2. Mỗi cặp thực thể từ ( A, B ) được liên kết với một thực thể C duy nhất và
mỗi cặp ( A, C ) được liên kết với một B duy nhất
• Mỗi lựa chọn thay thế đã được sử dụng trong các hình thức khác nhau
• Để tránh nhầm lẫn, chúng tôi cấm nhiều hơn một mũi tên
35. Khóa chính
• Khóa chính cung cấp một cách để xác định cách phân
biệt các thực thể và quan hệ. Chúng tôi sẽ xem xét:
• Tập thực thể
• Tập liên kết.
• Tập thực thể yếu
36. Khóa chính cho Tập thực thể
• Theo định nghĩa, các thực thể riêng lẻ là khác biệt.
• Từ góc độ cơ sở dữ liệu, sự khác biệt giữa chúng phải được thể hiện
dưới dạng các thuộc tính của chúng.
• 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ể đó.
• 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óa của một thực thể là một tập hợp các thuộc tính đủ để phân biệt
các thực thể với nhau
37. Khóa chính cho các tập liên kết
• Để phân biệt giữa các liên kết khác nhau của một tập liên kết, chúng tôi sử dụng các
khóa chính riêng lẻ của các thực thể trong tập hợp liên kết.
• Cho R là tập liên kết bao gồm các tập thực thể E1, E2, .. En
• Khóa chính của R bao gồm hợp các khóa chính của các tập thực thể E1, E2, .. En
• Nếu tập liên kết R có các thuộc tính a1, a2, .., am gắn với nó thì khóa chính của R
cũng bao gồm các thuộc tính a1, a2, .., am
• Ví dụ: tập quan hệ “cố vấn”.
• Khóa chính bao gồm instructor.ID và student.ID
• Việc lựa chọn khóa chính cho một tập liên kết phụ thuộc vào lực lượng ánh xạ của tập
liên kết.
38. Lựa chọn khóa chính cho liên kết nhị phân
• Liên kết nhiều-nhiều. Sự kết hợp trước của các khóa chính
là một siêu khóa tối thiểu và được chọn làm khóa chính.
• Liên kết một-nhiều. Khóa chính của bên “Nhiều” là một
siêu khóa tối thiểu và được sử dụng làm khóa chính.
• Liên kết nhiều-một. Khóa chính của bên “Nhiều” là một
siêu khóa tối thiểu và được sử dụng làm khóa chính.
• Liên kết một đối một. Khóa chính của một trong các tập
thực thể tham gia tạo thà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.
39. Tập thực thể yếu
• Hãy xem xét một thực thể section, được xác định duy nhất bởi một
course_id, semester, year, and sec_id.
• Rõ ràng, các thực thể phần có liên quan đến các thực thể khóa học.
Giả sử chúng ta tạo một tập hợp mối quan hệ sec_course giữa tập hợp
thực thể section và course .
• Lưu ý rằng thông tin trong sec_course là dư thừa, vì section đã có một
thuộc tính Course_id , thuộc tính này xác định khóa học có liên quan
đến section đó.
• Một lựa chọn để giải quyết sự dư thừa này là loại bỏ mối quan hệ
sec_course ; tuy nhiên, bằng cách đó, mối quan hệ giữa section và
course trở nên tiềm ẩn trong một thuộc tính, điều này không được
mong muốn.
40. Tập thực thể yếu (tiếp)
• Một cách khác để xử lý sự dư thừa này là không lưu trữ thuộc tính
course_id trong thực thể section và chỉ lưu trữ các thuộc tính còn lại
section_id, year, and semester.
• Tuy nhiên, tập thực thể section sau đó không có đủ thuộc tính để xác
định duy nhất một thực thể section cụ thể
• Để giải quyết vấn đề này, chúng tôi coi mối quan hệ sec_course là một
mối quan hệ đặc biệt cung cấp thông tin bổ sung, trong trường hợp này
là Course_id , được yêu cầu để xác định duy nhất các thực thể section .
• Tập thực thể yếu là tập có sự tồn tại phụ thuộc vào một thực thể khác,
được gọi là thực thể xác định của nó
• Thay vì liên kết khóa chính với một thực thể yếu, chúng tôi sử dụng thực
thể xác định, cùng với các thuộc tính bổ sung được gọi là phân biệt đối
xử để xác định duy nhất một thực thể yếu.
41. Tập thực thể yếu (tiếp)
• Một tập thực thể không phải là một 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ể xác định; nghĩa là,
tập thực thể yếu được cho là 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 cho 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ể xác định được gọi
là mối quan hệ xác định .
• Lưu ý rằng lược đồ quan hệ cuối cùng chúng ta tạo từ phần tập hợp thực
thể có thuộc tính Course_id , vì những lý do sẽ rõ sau, mặc dù chúng ta
đã loại bỏ thuộc tính Course_id khỏi phần tập hợp thực thể .
42. Thể hiện tập thực thể yếu
• Trong sơ đồ ER, một tập hợp thực thể yếu được mô tả thông qua một
hình chữ nhật kép.
• Chúng tôi gạch chân bộ phân biệt của một tập thực thể yếu bằng một
đường đứt nét.
• Tập liên kết 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.
• Khóa chính cho section – ( course_id , sec_id , quarter , year )
43. Thuộc tính dự phòng
• Giả sử chúng ta có các tập thực thể:
• student , với các thuộc tính: ID, name, tot_cred, dept_name
• department, với các thuộc tính: dept_name, building, budget
• Ta mô hình hóa rằng mỗi sinh viên có một bộ phận liên quan sử dụng tập hợp
mối quan hệ stud _dept
• Thuộc tính dept_name trong student bên dưới sao chép thông tin có trong
liên kết và do đó không cần thiết
• Và cần phải được loại bỏ.
• NHƯNG: khi chuyển đổi trở lại bảng, trong một số trường hợp, thuộc tính
được giới thiệu lại, như chúng ta sẽ thấy sau.
46. Rút gọn các lược đồ quan hệ
• Tập thực thể và tập liên kết có thể được biểu diễn thống nhất dưới
dạng lược đồ quan hệ biểu diễn nội dung của cơ sở dữ liệu.
• Cơ sở dữ liệu phù hợp với sơ đồ ER có thể được biểu diễn bằng một
tập hợp các lược đồ.
• Đối với mỗi tập thực thể và tập liên kết, có một lược đồ duy nhất được
gán tên của tập thực thể hoặc tập liên kết tương ứng.
• Mỗi lược đồ có một số cột (thường tương ứng với các thuộc tính), có
tên duy nhất.
47. Biểu diễn tập thực thể
• Một tập thực thể mạnh rút gọn thành lược đồ có cùng thuộc tính
student(ID, name, tot_cred)
• Một tập thực thể yếu trở thành một bảng bao gồm một cột cho
khóa chính của tập thực thể mạnh xác định
section ( course_id, sec_id, sem, year )
• Ví dụ
48. Biểu diễn các tập thực thể với các thuộc tính tổng hợp
Các thuộc tính tổng hợp được làm phẳng bằng cách tạo một
thuộc tính riêng cho từng thuộc tính thành phần
• Ví dụ: tập thực thể instructor đã cho với thuộc tính tổng
hợp name với các thuộc tính thành phần first_name và
last_name lược đồ tương ứng với tập thực thể có hai
thuộc tính name_last_name và name_last_name
Tiền tố bị bỏ qua nếu không có sự mơ hồ (
name_first_name có thể là first_name )
Bỏ qua các thuộc tính đa trị, lược đồ instructor mở rộng là
• instructor(ID,
first_name, middle_initial, last_name,
street_number, street_name,
apt_number, city, state, zip_code,
date_of_birth)
49. Biểu diễn các tập thực thể với các thuộc tính đa trị
Thuộc tính đa trị M của thực thể E được biểu diễn bằng lược đồ riêng EM
Lược đồ EM có các thuộc tính tương ứng với khóa chính của E và một thuộc
tính tương ứng với thuộc tính đa trị M
Ví dụ: Thuộc tính đa trị phone_number của instructor được biểu diễn bằng
lược đồ:
inst_phone = ( ID , phone_number)
Mỗi giá trị của thuộc tính đa trị ánh xạ tới một bộ riêng biệt của quan hệ
trên lược đồ EM
• Ví dụ: một thực thể instructor có khóa chính 22222 và các số điện thoại
456-7890 và 123-4567 ánh xạ tới hai bộ:
(22222, 456-7890) và (22222, 123-4567)
50. Biểu diễn các tập hợp quan hệ
• Tập mối quan hệ nhiều-nhiều được biểu diễn dưới dạng lược
đồ với các thuộc tính dành cho khóa chính của hai tập thực
thể tham gia và bất kỳ thuộc tính mô tả nào của tập mối
quan hệ.
• Ví dụ: lược đồ cho tập quan hệ advisor
advisor = ( s_id , i_id )
51. Dự phòng của các lược đồ
Các tập quan hệ nhiều-một và một-nhiều hoàn toàn ở phía nhiều có thể
được biểu diễn bằng cách thêm một thuộc tính bổ sung cho phía “nhiều”,
chứa khóa chính của phía “một”
Ví dụ: Thay vì tạo lược đồ cho tập hợp mối quan hệ inst_dept , hãy thêm
thuộc tính dept_name vào lược đồ phát sinh từ tập thực thể instructor
Ví dụ
52. Sự dư thừa của lược đồ (tt)
Đối với các bộ mối quan hệ một-một, có thể chọn một
trong hai bên để đóng vai trò là bên “nhiều”
• Nghĩa là, một thuộc tính bổ sung có thể được thêm
vào một trong hai bảng tương ứng với hai tập thực
thể.
Nếu sự tham gia là một phần của phía “nhiều”, thì việc
thay thế lược đồ bằng một thuộc tính bổ sung trong
lược đồ tương ứng với phía “nhiều” có thể dẫn đến giá
trị null
53. Sự dư thừa của lược đồ (tt)
Lược đồ tương ứng với một tập quan hệ liên kết một tập
thực thể yếu với tập thực thể mạnh xác định của nó là
dư thừa.
Ví dụ: Lược đồ section đã chứa các thuộc tính sẽ xuất
hiện trong lược đồ sec_course
55. Cụ thể hóa
• Quy trình thiết kế từ trên xuống; chúng tôi chỉ định các
nhóm con trong một tập hợp thực thể để phân biệt với
các thực thể khác trong tập hợp.
• Các nhóm con này trở thành các tập thực thể cấp thấp
hơn có các thuộc tính hoặc tham gia vào các mối quan
hệ không áp dụng cho tập thực thể cấp cao hơn.
• Được mô tả bằng một thành phần tam giác có nhãn ISA
(ví dụ: instructor “là” person ).
• Kế thừa thuộc tính – một tập thực thể cấp thấp hơn
kế thừa tất cả các thuộc tính và sự tham gia vào mối
quan hệ của tập thực thể cấp cao hơn mà nó được liên
kết.
56. Ví dụ cụ thể hóa
• Chồng chéo – employee và student
• Phân chia – instructor và secretary
• Toàn bộ và một phần
57. Biểu diễn cụ thể hóa thông qua các lược đồ
Cách 1:
• Tạo một lược đồ cho thực thể cấp cao hơn
• Tạo lược đồ cho từng tập thực thể cấp thấp hơn, bao
gồm khóa chính của tập thực thể cấp cao hơn và các
thuộc tính cục bộ
• Hạn chế: nhận thông tin về một employee yêu cầu truy
cập hai quan hệ, một tương ứng với lược đồ cấp thấp
và một tương ứng với lược đồ cấp cao
58. Biểu diễn cụ thể hóa thông qua các lược đồ (Tiếp theo)
Cách 2:
• Tạo một lược đồ cho từng tập thực thể với tất cả các
thuộc tính cục bộ và thuộc tính kế thừa
• Hạn chế: name, street và city có thể được lưu trữ dư
thừa đối với những người vừa là sinh viên vừa là
nhân viên
59. Khái quát hóa
• Quy trình thiết kế từ dưới lên – kết hợp một số tập
thực thể có chung tính năng thành một tập thực thể
cấp cao hơn.
• Cụ thể hóa và khái quát hóa là sự đảo ngược đơn giản
của nhau; chúng được biểu diễn trong sơ đồ ER theo
cùng một cách.
• Các thuật ngữ cụ thể hóa và khái quát hóa được sử
dụng thay thế cho nhau.
60. Ràng buộc đầy đủ
• Ràng buộc đầy đủ -- chỉ định liệu một thực thể trong
tập thực thể cấp cao hơn có phải thuộc về ít nhất một
trong các tập thực thể cấp thấp hơn trong một khái
quát hóa hay không.
• Tổng : một thực thể phải thuộc về một trong các tập
thực thể cấp thấp hơn
• một phần : một thực thể không cần thuộc về một
trong các tập thực thể cấp thấp hơn
61. Ràng buộc đầy đủ (Cont.)
• Khái quát hóa một phần là mặc định.
• Chúng ta có thể chỉ định tổng khái quát hóa trong sơ đồ ER bằng cách
thêm từ khóa tổng vào sơ đồ và vẽ một đường đứt nét từ từ khóa đến
đầu mũi tên rỗng tương ứng mà nó áp dụng (đối với khái quát hóa) hoặc
tập hợp các mũi tên rỗng -heads mà nó áp dụng (đối với một khái quát
hóa chồng chéo).
• student là khái quát hóa toàn bộ: Tất cả các thực thể sinh viên phải tốt nghiệp
hoặc chưa tốt nghiệp. Bởi vì tập thực thể cấp cao hơn đạt được thông qua
quá trình tổng quát hóa thường chỉ bao gồm các thực thể đó trong tập
thực thể cấp thấp hơn, nên ràng buộc về tính đầy đủ đối với tập thực thể
cấp cao hơn được tổng quát hóa thường là toàn bộ
62. Tổng hợp
Hãy xem xét mối quan hệ ba ngôi proj_guide mà chúng ta đã
thấy trước đó
Giả sử chúng ta muốn ghi lại đánh giá của một học sinh bởi
một hướng dẫn về một dự án
63. Tổng hợp (Tiếp)
• Bộ mối quan hệ eval_for và proj_guide đại diện cho thông tin chồng
chéo
• Mỗi mối quan hệ eval_for tương ứng với mối quan hệ proj_guide
• Tuy nhiên, một số mối quan hệ proj_guide có thể không tương ứng
với bất kỳ mối quan hệ eval_for nào
• Vì vậy, chúng tôi không thể loại bỏ mối quan hệ proj_guide
• Loại bỏ sự dư thừa này thông qua tổng hợp
• Coi mối quan hệ như một thực thể trừu tượng
• Cho phép mối quan hệ giữa các mối quan hệ
• Trừu tượng hóa mối quan hệ thành thực thể mới
64. Tổng hợp (Tiếp)
Loại bỏ sự dư thừa này thông qua tổng hợp mà
không đưa ra sự dư thừa, sơ đồ sau đây thể
hiện:
• Một sinh viên được hướng dẫn bởi một người
hướng dẫn cụ thể về một dự án cụ thể
• Một sinh viên, người hướng dẫn, sự kết hợp dự
án có thể có một đánh giá liên quan
65. Rút gọn các lược đồ quan hệ
Để biểu diễn tổng họp, hãy tạo một lược đồ chứa
• Khóa chính của quan hệ tổng hợp,
• Khóa chính của tập thực thể được liên kết
• Bất kỳ thuộc tính mô tả nào
Trong ví dụ của chúng tôi:
• Lược đồ eval_for là:
eval_for (s_ID, project_id, i_ID, evaluation_id)
• Lược đồ proj_guide là dư thừa.
69. Thực thể so với Thuộc tính
Sử dụng tập thực thể so với thuộc tính
Việc sử dụng điện thoại làm thực thể cho phép thêm thông tin về
số điện thoại (cộng với nhiều số điện thoại)
70. Các thực thể so với các tập quan hệ
Sử dụng tập thực thể so với tập mối quan hệ
Hướng dẫn có thể là chỉ định một tập hợp mối quan hệ để
mô tả một hành động xảy ra giữa các thực thể
• Vị trí của các thuộc tính quan hệ
Ví dụ: ngày thuộc tính là thuộc tính của cố vấn hoặc là thuộc
tính của sinh viên
71. Quan hệ Nhị phân và Quan hệ không nhị phân
• Mặc dù có thể thay thế bất kỳ mối quan hệ không nhị phân nào ( n - ary ,
đối với n > 2) bằng một số bộ mối quan hệ nhị phân riêng biệt, nhưng
một bộ mối quan hệ n - ary cho thấy rõ ràng hơn rằng một số thực thể
tham gia vào một mối quan hệ duy nhất.
• Một số mối quan hệ dường như không phải là nhị phân có thể được biểu
diễn tốt hơn bằng cách sử dụng các mối quan hệ nhị phân
• Ví dụ, mối quan hệ bậc ba cha mẹ , liên quan đến một đứa trẻ với cha
và mẹ của mình, tốt nhất nên thay thế bằng hai mối quan hệ nhị phân,
cha và mẹ .
• Sử dụng hai mối quan hệ nhị phân cho phép thông tin một phần (ví
dụ: chỉ mẹ được biết)
• Nhưng có một số mối quan hệ tự nhiên là phi nhị phân
• Ví dụ: proj_guide
72. Chuyển đổi các mối quan hệ không nhị
phân sang dạng nhị phân
• Nói chung, bất kỳ mối quan hệ không nhị phân nào cũng có
thể được biểu diễn bằng các mối quan hệ nhị phân bằng cách
tạo một tập thực thể nhân tạo.
• Thay thế R giữa các tập thực thể A, B và C bởi một tập thực
thể E và ba tập quan hệ:
1. R A , liên quan đến E và A; 2. R B , liên quan đến E và B;
3. R C , liên quan đến E và C
• Tạo thuộc tính nhận dạng cho E và thêm bất kỳ thuộc tính
nào của R vào E
• Đối với mỗi mối quan hệ ( a i , b i , c i ) trong R, hãy tạo
1. một thực thể mới e i trong tập thực thể E ;
2. thêm ( e i , a i ) đến R A;
3. thêm ( e i , b i ) đến R B ; 4. thêm ( e i , c i ) vào R C
73. Chuyển đổi các mối quan hệ không nhị phân (tt)
• Cũng cần dịch các ràng buộc
• Dịch tất cả các ràng buộc có thể không thực hiện được
• Có thể có các phiên bản trong lược đồ đã dịch
không thể tương ứng với bất kỳ phiên bản nào của R
• Bài tập: thêm các ràng buộc vào các mối quan hệ R A , R B và R C để
đảm bảo rằng một thực thể mới được tạo tương ứng với chính xác
một thực thể trong mỗi tập thực thể A, B và C
• Chúng ta có thể tránh tạo ra một thuộc tính xác định bằng cách biến
E thành một tập thực thể yếu (được mô tả ngắn gọn) được xác định
bởi ba tập quan hệ
74. Thiết kế ER
• Việc sử dụng một thuộc tính hoặc tập hợp thực thể để đại diện
cho một đối tượng.
• Liệu một khái niệm trong thế giới thực có được thể hiện tốt nhất
bởi một tập thực thể hay một tập quan hệ hay không.
• Việc sử dụng một mối quan hệ bậc ba so với một cặp mối quan
hệ nhị phân.
• Việc sử dụng một tập thực thể mạnh hay yếu.
• Việc sử dụng chuyên môn hóa/khái quát hóa – góp phần vào tính
mô đun hóa trong thiết kế.
• Việc sử dụng tổng hợp – có thể coi tập thực thể tổng hợp là một
đơn vị duy nhất mà không cần quan tâm đến các chi tiết về cấu
trúc bên trong của nó.
75. Tóm tắt các ký hiệu được sử dụng trong ký hiệu ER
76. Các ký hiệu được sử dụng trong Ký
hiệu ER (Tiếp)
78. Ký hiệu ER thay thế
Chen IDE1FX (Ký hiệu vết chân chim)
79. UML • UML : Ngôn ngữ lập mô hình thống nhất
• UML có nhiều thành phần để mô hình hóa đồ họa các khía cạnh
khác nhau của toàn bộ hệ thống phần mềm
• Sơ đồ lớp UML tương ứng với Sơ đồ ER, nhưng có một số khác
biệt.
80. Sơ đồ lớp ER so với UML
* Lưu ý đảo ngược vị trí trong mô tả ràng buộc cardinality
81. Sơ đồ lớp ER so với UML
Ký hiệu sơ đồ ER Tương đương trong UML
* Tổng quát hóa có thể sử dụng các mũi tên được hợp nhất hoặc riêng biệt độc lập
rời rạc/chồng chéo
82. Sơ đồ lớp UML (Tiếp)
• Các tập quan hệ nhị phân được biểu diễn trong UML bằng cách chỉ vẽ
một đường kết nối các tập thực thể. Tên bộ mối quan hệ được viết
liền kề với dòng.
• Vai trò của một tập hợp thực thể trong tập hợp mối quan hệ cũng có
thể được chỉ định bằng cách viết tên vai trò trên dòng, liền kề với tập
hợp thực thể.
• Ngoài ra, tên của bộ mối quan hệ có thể được viết trong một hộp,
cùng với các thuộc tính của bộ mối quan hệ và hộp được kết nối, sử
dụng một đường chấm, với đường mô tả bộ mối quan hệ.