Download - BÀI 3 MÔ HÌNH THỰC THỂ LIÊN KẾT - TOPICA
1
1
BÀI 3 MÔ HÌNH THỰC THỂ - LIÊN KẾT
2
TÌNH HUỐNG DẪN NHẬP
Quy trình thiết kế một CSDL
1. Vậy mô hình dữ liệu phổ biến nào để thiết kế khái niệm? 2. Các thành phần cơ bản của mô hình dữ liệu đó? 3. Làm thế nào để thiết kế khái niệm dựa trên mô hình dữ liệu đó?
Thế giới thực
Tập hợp các yêu cầu và phân tích
Các yêu cầu về CSDL
Thiết kế khái niệm
Lược đồ khái niệm (Trong một mô hình dữ liệu bậc cao)
Thiết kế logic (ánh xạ mô hình dữ liệu)
Thiết kế vật lý
Lược đồ trong (đối với một DBMS cụ thể đó)
Không phụ thuộc
DBMS
Phụ thuộc DBMS Lược đồ khái niệm
(trong mô hình dữ liệu của một DBMS cụ thể)
2
3
MỤC TIÊU
Trình bày mô hình thực thể và liên kết, một mô hình dữ liệu bậc cao
dùng trong phân tích dữ liệu hệ thống;
Trình bày các nguyên tắc thiết kế mô hình thực thể - liên kết;
Trình bày cách chuyển từ mô hình thực thể-liên kết sang mô hình
quan hệ.
4
NỘI DUNG
Giới thiệu mô hình Thực thể - Liên kết;
Các thành phần của mô hình Thực thể - Liên kết;
Biểu đồ thực thể;
Các nguyên tắc thiết kế;
Các ràng buộc trong mô hình Thực thể - Liên kết;
Thực thể yếu;
Các tính chất mở rộng của mô hình thực thể - liên kết;
Chuyển đổi từ mô hình Thực thể - Liên kết sang mô hình quan hệ.
2
1
5
3
4
6
7
8
3
5
1. GIỚI THIỆU MÔ HÌNH THỰC THỂ VÀ LIÊN KẾT
Mô hình thực thể - liên kết (Entity-Relationship model) còn được gọi là mô hình thực
thể - mối quan hệ và thường gọi tắt là mô hình E-R:
• Cho phép mô tả lược đồ khái niệm của một tổ chức, áp dụng cho vòng đời của
CSDL mà không để ý đến tính hiệu quả hoặc thiết kế CSDL vật lý;
• Mô tả thế giới thực gồm những đối tượng cơ bản được gọi là những thực thể và
những quan hệ giữa thực thể. Ánh xạ và những tác động qua lại của thế giới
thực phức tạp được mô tả bằng các khái niệm lược đồ;
• Tạo thuận lợi cho thiết kế CSDL bằng cách cho phép định rõ một lược đồ phức
tạp, đại diện cho toàn bộ cấu trúc logic của CSDL. Dạng đơn giản của mô hình
thực thể-quan hệ được dùng làm cơ sở để trao đổi một cách hiệu quả với người
sử dụng đầu cuối về CSDL khái niệm;
• Từ sơ đồ thực thể quan hệ có thể chuyển thành lược đồ khái niệm mô hình quan
hệ. Mô hình thực thể quan hệ có thể được xem như là mô hình hướng đối tượng;
• Mô hình thực thể - quan hệ cơ bản bao gồm ba lớp đối tượng: thực thể (Entity),
mối quan hệ (Relationship) và thuộc tính (Attribute).
6
2. CÁC THÀNH PHẦN CỦA MÔ HÌNH THỰC THỂ-LIÊN KẾT
2.1. Thực thể và kiểu thực thể;
2.2. Liên kết và kiểu liên kết;
2.3. Thuộc tính.
4
7
2.1. THỰC THỂ VÀ KIỂU THỰC THỂ
• Thực thể: Là một “vật” hay một “đối tượng” trong thế giới thực, phân biệt với
những đối tượng khác.
Ví du: Trong 1 công ty, coi mỗi nhân viên là một thực thể.
Trong CSDL, thực thể được mô tả bởi một tập các thuộc tính.
Ví du: Một thực thể nhân viên được mô tả bởi:
Mã số nhân viên;
Họ tên;
Tuổi;
Bậc lương.
• Kiểu thực thể (tập thực thể): Là một tập hợp các thực thể cùng kiểu, nghĩa là
cùng được thể hiện bởi một tập đặc trưng hay thuộc tính.
Ví du: Tập tất cả nhân viên của một công ty, mỗi nhân viên là một thực thể,
các thực thể nhân viên này đều được thể hiện qua một tập thuộc tính
(Mã nhân viên, Họ tên, Tuổi, Số chứng minh thư).
8
2.2. LIÊN KẾT VÀ KIỂU LIÊN KẾT
• Liên kết: Một liên kết là một sự kết hợp của một số thực thể.
Ví dụ: Liên kết “Làm việc cho” kết hợp 1 thực thể nhân viên với 1 thực thể phòng
Nhân viên Phòng Làm việc cho
• Kiểu liên kết (tập liên kết): Là tập hợp các mối liên kết giống nhau.
Ví dụ: Kiểu liên kết “Gửi tiền” là tập hợp các liên kết “Gửi tiền” giữa 1 thực thể
“Khách hàng” và 1 thực thể “Tài khoản”
Khách hàng Tài khoản
Gửi tiền
5
9
ghép
• Cấp của một kiểu liên kết là số các kiểu thực thể tham gia kiểu liên kết đó. Một kiểu
liên kết có thể có cấp 1, cấp 2, cấp 3.
Ví dụ 1: Kiểu liên kết “làm việc cho” giữa kiểu thực thể “Nhân viên” với kiểu thực
thể “Phòng” là kiểu liên kết cấp 2.
Ví dụ 2: 3 kiểu thực thể “Nhân viên”, “Phòng”, “Dự án” có thể có một kiểu liên
kết cấp 3: Một nhân viên E1 làm việc với dự án P1, phòng D1 chịu trách nhiệm
điều hành dự án P1.
Nhân viên
Dự Án
Phòng Làm việc cho
Nhân viên Phòng Làm việc cho
10
2.3. THUỘC TÍNH
Trong mô hình E-R có các kiểu thuộc tính:
• Thuộc tính đơn;
• Thuộc tính phức hợp;
• Thuộc tính đơn trị;
• Thuộc tính đa trị;
• Thuộc tính được lưu trữ;
• Thuộc tính được suy diễn.
6
11
2.3. THUỘC TÍNH (tiếp theo)
Trong phần này, ta xét ví dụ với kiểu thực thể “Nhân viên” được mô tả bởi: mã số nhân
viên, họ tên, tuổi, bậc lương, địa chỉ, số điện thoại của nhân viên.
• Thuộc tính đơn: Là thuộc tính không phân chia thành những thành phần nhỏ hơn.
Ví dụ: Thuộc tính “Bậc lương” của kiểu thực thể “Nhân viên”.
• Thuộc tính phức hợp: Là thuộc tính có thể phân chia thành các phần nhỏ hơn (nghĩa
là có thể chia thành các thuộc tính khác nữa).
Ví dụ: Thuộc tính “Địa chỉ” của kiểu thực thể “Nhân viên” được xác định là thuộc tính
phức hợp: Là sự kết hợp của 3 thuộc tính thành phần là “Số nhà”, “Tên phố”, “Tên
thành phố”.
• Thuộc tính đơn trị: Là thuộc tính có một giá trị duy nhất cho một thực thể cụ thể.
Ví dụ: thuộc tính “Bậc lương”, “Tuổi” của kiểu thực thể “Nhân viên”.
• Thuộc tính đa trị: Là thuộc tính có thể có của một tập hợp các giá trị cho cùng một
thực thể.
Ví dụ: Thuộc tính “Số điện thoại” của thực thể “Nhân viên” có thể là thuộc tính đa trị
vì một nhân viên có thể có hơn 1 số điện thoại.
12
2.3. THUỘC TÍNH (tiếp theo)
• Trong một số trường hợp, một số thuộc tính có liên quan đến nhau theo kiểu biết giá
trị của thuộc tính này thì có thể tính được giá trị của thuộc tính kia.
Ví dụ: Thuộc tính “Ngày tháng năm sinh” của một nhân viên và thuộc tính “Tuổi”. Có
thể từ “Ngày tháng năm sinh” ta tính được tuổi của nhân viên đó.
Trong trường hợp này: “Ngày tháng năm sinh” là thuộc tính lưu trữ, “Tuổi” là thuộc
tính suy diễn.
• Giá trị null: Một thực thể có thể thiếu vắng giá trị cho một thuộc tính nào đó. Khi đó
giá trị null được sử dụng nếu thực thể đó không có giá trị cho một thuộc tính (hoặc
giá trị đó có nhưng chưa được biết, hoặc thực sự không tồn tại một giá trị như thế).
• Thuộc tính khóa: Là thuộc tính mà bất cứ hai thực thể khác nhau trong tập thực thể
cũng đều có giá trị khác nhau trên thuộc tính đó.
Ví dụ thuộc tính “Mã sinh viên” là thuộc tính khóa của thực thể “Sinh viên”
• Có thể dùng mỗi giá trị của thuộc tính khóa để xác định một thực thể duy nhất.
• Đôi khi, một vài thuộc tính kết hợp với nhau tạo thành một khóa. Có những kiểu thực
thể có hơn một khóa.
7
13
TƯƠNG TÁC
• Câu hỏi: Bạn hãy nêu một kiểu thực thể mà có thuộc tính khóa là tập hợp của hai
hoặc nhiều thuộc tính?
• Trả lời trang sau:
13
14
3. BIỂU ĐỒ THỰC THỂ-LIÊN KẾT (E-R DIAGRAM)
3.1. Các ký hiệu biểu diễn biểu đồ;
3.2. Quan hệ nhị phân;
3.3. Quan hệ nhiều phía;
3.4. Chuyển từ quan hệ nhiều phía về quan hệ nhị phân.
8
15
3.1 CÁC KÝ HIỆU BIỂU DIỄN BIỂU ĐỒ THỰC THỂ-LIÊN KẾT
• Biểu đồ E-R được thành lập từ một số thành phần sau:
Kiểu thực thể được đặc trưng bởi hình vuông;
Thuộc tính được đặc trưng bởi hình Oval;
Kiểu liên kết được đặc trưng bởi hình kim cương (hình thoi);
Các đường kẻ, mũi tên dùng để kết nối thực thể với thuộc tính của thực
thể đó, giữa kiểu liên kết với tập thực thể đó.
• Ví dụ:
Beers
Name Manufacturer Thuộc tính
Kiểu thực thể
Kiểu liên kết
16
3.1. CÁC KÝ HIỆU BIỂU DIỄN BIỂU ĐỒ THỰC THỂ-LIÊN KẾT
Drinkers addr name
Beers
manf name
Bars
name
license
addr
Note: license = beer, full, none
Sells Bars sell some beers.
Likes Drinkers like some beers. Frequents
Drinkers frequent some bars.
9
17
3.2. QUAN HỆ NHỊ PHÂN (BINARY RELATIONSHIP)
• Quan hệ nhị phân có thể liên kết bất kỳ phần tử trong tập thực thể này với
phần tử của tập thực thể khác (nói cách khác là số các kiểu thực thể tham
gia kiểu liên kết này là 2);
• Ví dụ: Liên kết giữa Student-Class;
• Trong quan hệ nhị phân có các kiểu quan hệ:
Quan hệ nhiều-nhiều (Many-Many Relationships);
Quan hệ 1-nhiều (1-many Relationships);
Quan hệ 1-1 (1-1 Relationships).
18
3.2. QUAN HỆ NHỊ PHÂN (BINARY RELATIONSHIP)_(tiếp theo)
• Quan hệ nhiều-nhiều: 1 thực thể trong kiểu thực thể A có thể liên kết với nhiều thực
thể trong kiểu thực thể B.
Ví dụ: Thực thể “Bar” và “Beer” với liên kết “Sell”.
1 Bar có thể Sell nhiều Beer và 1 Beer có thể được Sell bởi nhiều Bar.
• Quan hệ 1-nhiều: Giữa kiểu thực thể A và kiểu thực thể B là:
Mỗi thực thể trong kiểu A liên kết với nhiều nhất một thực thể trong kiểu B;
Mỗi thực thể trong kiểu B có thể liên kết với 0, 1 hoặc nhiều thực thể trong kiểu
thực thể A;
Ví dụ: Thực thể “Drinker” và “Beer” với liên kết “Favourite” là quan hệ nhiều-một
Vì: 1 Drinker thì có Favourite ít nhất 1 Beer;
1 Beer thì có thể là Favourite của 0, 1 hoặc nhiều Drinker.
10
19
Ghép
• Quan hệ 1-1: Mỗi thực thể của kiểu thực thể này liên kết với nhiều nhất một
thực thể trong kiểu thực thể kia
• Ví dụ:
• Mũi tên để dùng cho bên “1” trong quan hệ nhiều-một, một-một:
• Mũi tên tròn dùng trong trường hợp liên kết với chính xác một:
Mỗi thực thể của kiểu A liên kết với 1 và chỉ 1 thực thể của kiểu B.
Manufacter Beer Best sellers
Studios Presidents Runs
20
VÍ DỤ VỀ QUAN HỆ NHỊ PHÂN
Nhiều-Nhiều 1-Nhiều 1-1
Drinkers Beers Likes
Favorite
Ví dụ 2:
Ví dụ 1:
• Quan hệ giữa thực thể drinkers và beers theo mối quan hệ like là nhiều nhiều:
1 Drinker có thể “like” nhiều loại Beer;
1 loại Beer có thể được Like bởi nhiều Drinker.
• Quan hệ giữa Drinkers và Beers theo mối quan hệ Favourite là quan hệ nhiều-một:
1 Drinker thì chỉ có một 1 loại Beer là Favourite;
1 loại Beer thì có thể là Favourite của nhiều Drinker.
11
21
VÍ DỤ VỀ QUAN HỆ NHỊ PHÂN (tiếp theo)
Nhận xét:
• 1 kiểu thực thể xuất hiện hơn 1 lần trong mối
liên kết. Khi đó nhãn trên liên kết giữa kiểu
thực thể và liên kết được gọi là Roles (Vai trò).
Drinkers
Married
Husband Wife Relationship Set
Husband Wife
Bob Sue
Joe … …
• 1 Movie có nhiều “Sequel” (phần/đoạn) nhưng
nhiều phần có cùng “Original” từ 1 Movie.
Movies Sequel-of
Original
Sequel
• Một vài “Beer” không là best-seller của bất kỳ “Manufacturer” nào cả.
• Mỗi “Manufacturer” phải best-seller đúng 1 “Beer” (giả sử ở đây là các manufacturer
này chỉ bán beer).
Manufacturer Beer Best-seller Ví dụ 3:
22
3.3.2. QUAN HỆ NHỊ PHÂN (BINARY RELATIONSHIP)
Thuộc tính trên liên kết (Attributes on Relationships)
Sells Bars Beers
Price
Sells Bars Beers
Price
Price
Thuộc tính trên liên kết: Một liên kết có thể có những
thuộc tính để mô tả liên kết đó.
Ví dụ:
• Thuộc tính Price không thể kết hợp với thực thể
Bars vì 1 Bar Sell(bán) các loại beer với Price
(giá) khác nhau;
• Ta có thể không sử dụng thuộc tính price trên
liên kết Sell bằng cách sử dụng thực thể Prices
tham gia liên kết Sells và thực thể này có thuộc
tính price.
• Khi đó liên kết Sells sẽ gồm 3 thực thể tham gia
• Thuộc tính Price không thể kết hợp với thực thể Beers vì 1 loại Beer được các Bar
khác nhau Sell (bán) với Price (giá) khác nhau;
• Liên kết Sells có thuộc tính Price để biết các 1 Bar đã Sell (bán) 1 loại Beer với Price
(giá) là bao nhiêu.
12
23
3.3.3. QUAN HỆ NHIỀU PHÍA (MULTIWAY RELATIONSHIP)
• Quan hệ nhiều phía: Liên kết giữa nhiều hơn 2 kiểu thực thể.
• Ví dụ: giả sử “Drinker” chỉ uống 1 loại “Beer” ở 1 “Bar” nào đó.
Khi đó các liên kết “Like”, “Sell” và “Frequent” không mô tả được mối quan hệ trên
nhưng có thể dùng liên kết giữa 3 thực thể như sau:
Bars Beers
Drinkers
name name addr manf
name addr
license
Preferences
24
3.3.3. QUAN HỆ NHIỀU PHÍA (MULTIWAY RELATIONSHIP)
Bar Drinker Beer
Joe’s Bar Ann Miller
Sue’s Bar Ann Budweiser
Sue’s Bar Ann Pete’s Ale
Joe’s Bar Bob Budweiser
Joe’s Bar Bob Miller
Joe’s Bar Cal Miller
Sue’s Bar Cal Bud Lite
Ví dụ: Bảng dữ liệu mô tả bộ giá trị (Bar, Drinker, Beer) trong mối liên kết Preferences.
Liên kết giữa Bars-Drinkers, Drinkers-Beer, Bars-Beers đều là quan hệ nhiều nhiều.
Ta có thể chuyển từ quan hệ nhiều phía sang quan hệ nhị phân như sau:
A B
C
R
A
B
C
RB
RA
RC
E
13
25
3.3.4. CHUYỂN TỪ QUAN HỆ NHIỀU PHÍA VỀ QUAN HỆ NHỊ PHÂN
• Giả sử R là kiểu liên kết cấp 3: R(A,B,C).
• Thay thế R bằng kiểu thực thể E và 3 kiểu liên kết nhị phân:
RA liên kết E và A;
RB liên kết E và B;
RC liên kết E và C;
• Về lý thuyết: Có thể yêu cầu mô hình thực thể-liên kết chỉ được phép chứa các kiểu
liên kết cấp hai.
26
4. CÁC NGUYÊN TẮC THIẾT KẾ
4.1. Trung thực;
4.2. Tránh lặp lại;
4.3. Đơn giản;
4.4. Chọn đúng kiểu phần tử.
14
27
4.1. TRUNG THỰC (FAITHFULNESS)
Điều quan trọng nhất khi thiết kế mô hình E-R là sự trung thực, phản ánh
chính xác những đặc điểm của yêu cầu đặt ra. Nghĩa là, thực thể hay tập thực
thể phải phản ánh được thực tế. Bất kỳ liên kết nào cũng có ý nghĩa như là
một phần của thế giới thực được mô hình hóa.
• Ví dụ: Thực thể “Stars” và thực thể “Movies” với liên kết “Stars-in” phải là
liên kết nhiều-nhiều vì 1 Movie có thể có nhiều Star và 1 Star có thể xuất
hiện trong nhiều phim.
• Thực thể “Courses” và “Instructors” với liên kết “Teaching” là liên kết
nhiều-một.
Stars Movies Stars-in
Courses instructors Teaching
28
4.2. TRÁNH LẶP LẠI (AVOID REDUNDANCY)
• Tránh dư thừa các thông tin lặp lại.
• Lặp lại dữ liệu không trái quy tắc nhưng tạo cho CSDL những vấn đề:
Cần nhiều không gian để lưu trữ;
Làm tăng mức độ phức tạp, kết quả là có thể không toàn vẹn dữ liệu;
• Ví dụ như mối liên kết “Owns” giữa “Movies” và “Studios”.
Có thể cho thêm thuộc tính “StudioName” vào thực thể “Movies”. Điều này không
có gì sai nhưng có thể tạo ra một số tiềm ẩn sai sót trong một số trường hợp:
Nếu một Movie được bán cho một Studio khác thì chúng ta phải thay đổi Studio
liên quan đến quan hệ “Owns” nhưng quên không thay đổi giá trị thuộc tính
“StudioName”.
Studios Owns Movies
studioname name address
15
29
4.3. ĐƠN GIẢN (SIMPLICITY COUNTS)
Phải tránh dùng các thành phần không cần thiết khi thiết kế CSDL
• Ví dụ: Thay vì quan hệ “Owns” giữa Movie và Studio, chúng ta thêm một quan hệ
“Holdings”, chủ sở hữu của một phim. Ta thêm kiểu thực thể “người nắm giữ” và
quan hệ “được đại diện”. Mỗi phim được đại diện bởi một người nắm giữ. Mối quan
hệ một nhiều giữa người nắm giữ và nhà sản xuất.
• Về mặt kỹ thuật, cấu trúc trên phản ánh thế giới thực: Bởi vì mỗi phim được được sở
hữu bởi nhà sản xuất thông qua những người nắm giữ. Tuy nhiên, thực thể “người
nắm giữ” ở đây không cần thiết và có thể bỏ đi. Việc thêm thực thể này có thể làm
chương trình phức tạp, thừa dữ liệu, dễ gây ra sai lầm.
Movies Represents Holdings owns Studios
Movies owns Studios
30
4.4. CHỌN ĐÚNG KIỂU PHẦN TỬ (PICKING THE RIGHT KIND OF ELEMENT)
Đôi khi chúng ta có những lựa chọn liên quan đến loại yếu tố để mô tả,
tượng trưng được cho khái niệm thế giới thực:
• Chọn thuộc tính hay kiểu thực thể;
• Chọn kiểu thực thể hay kiểu liên kết.
30
16
31
VÍ DỤ
31
Movies owns Studios
name
address
title year
length
type
Movies
title year
length
type
Studio-name
Studio-address
hay
32
5. CÁC RÀNG BUỘC TRONG MÔ HÌNH THỰC THỂ-LIÊN KẾT
5.1. Khóa;
5.2. Ràng buộc tham chiếu;
5.3. Ràng buộc về mức liên kết.
32
17
33
5.1. KHÓA
• Ràng buộc khóa hay còn gọi là ràng buộc về tính duy nhất trên các thuộc tính. Mỗi
kiểu thực thể thường có một thuộc tính mà bất cứ hai thực thể khác nhau trong tập
thực thể này đều có giá trị khác nhau trên thuộc tính đó. Thuộc tính như vậy được gọi
là thuộc tính khóa.
Ví dụ: thực thể “Student” được mô tả bởi Student Identify Number (mã sinh viên),
Identifiy Number (số chứng minh thư), Name(họ tên), Address(Địa chỉ), Tuổi (Age).
Thực thể Student trên có thể có khóa Student Identify Number.
• Đôi khi, một vài thuộc tính kết hợp với nhau tạo thành một khóa nghĩa là một tổ hợp
giá trị của các thuộc tính này ở các thực thể phân biệt phải khác nhau. Một tập các
thuộc tính như vậy tạo thành một thuộc tính phức hợp và đây chính là thuộc tính
khóa của kiểu thực thể đó.
Ví dụ: Thực thể “Student” có thể có khóa là tập hợp thuộc tính Name,Address,Age
• Có những thực thể có hơn một khóa.
Ví dụ: Thực thể “Student” có thể có khóa là: Student ID hoặc ID (chứng minh thư).
33
34
5.1. KHÓA
• Để biểu diễn thuộc tính khóa trong biểu đồ E-R, thông thường ta gạch chân dưới các
thuộc tính đó.
34
address name ssn
Person
Product
name category
price
• Ví dụ:
Thực thể Product có các kiểu thuộc tính
như sau: Product (price, name, category).
Thực thể Person có các kiểu thuộc tính
như sau: Person (address, name, ssn).
18
35
5.2. RÀNG BUỘC THAM CHIẾU
Ràng buộc tham chiếu (ràng buộc toàn vẹn tham chiếu: Referential Integrity
Constrains): Liên kết đó phải có 1 giá trị và giá trị đó phải tồn tại.
Ví dụ: Thực thể “Product” và “Company” với mối liên kết “madeBy”.
Ở đây “Company” phải tồn tại.
35
Company Product madeBy
36
5.3. RÀNG BUỘC VỀ MỨC LIÊN KẾT
• Xác định loại liên kết nhiều-nhiều hay nhiều-một, một-một.
• Ví dụ:quan hệ giữa Employee và Project là quan hệ nhiều nhiều vì 1 Employee
làm việc cho nhiều Project và 1 Project có nhiều Employee.
36
Project Employee Work with
19
37
6. THỰC THỂ YẾU
• Thực thể yếu (weak entity): Thuộc tính khóa của thực thể này được xác định từ mối
liên quan đến 1 thực thể (xác định) của một kiểu thực thể khác.
• Ví dụ: Hai “Dependent” của 2 “Employee” có thể giống nhau về “Name” nhưng đó là
2 đối tượng khác nhau và được phân biệt với nhau qua Employee liên quan.
37
Dependent Employee
ID Name name
Dependent on
38
7. CÁC TÍNH CHẤT MỞ RỘNG CỦA MÔ HÌNH THỰC THỂ-LIÊN KẾT
7.1. Phân cấp ISA (Đặc biệt hóa);
7.2. Phép gộp (Aggregation).
38
20
39
7.1. PHÂN CẤP ISA (ĐẶC BIỆT HÓA)
Một tập thực thể có thể chứa các tập con gồm các thực thể phân biệt với các thực thể
khác theo một cách nào đó.
name
category price
isa isa
Educational Product Software Product
Age Group platforms
Product
40
7.2. PHÉP GỘP
• Mô hình E-R có hạn chế ở chỗ không biểu diễn mối quan hệ giữa các liên kết.
• Phép gộp là sự trừu tượng hóa những liên kết vốn được xử lý như những thực thể ở
mức cao. Cho phép xem một tập các quan hệ như tập các thực thể khi xét đến sự
tham gia với quan hệ khác.
budget did pid
started_on
pbudget
dname
until
Departments Projects Sponsors
Employees
Monitors
lot
name
ssn
since
21
41
8. CHUYỂN ĐỔI TỪ MÔ HÌNH THỰC THỂ-LIÊN KẾT SANG MÔ HÌNH QUAN
8.1. Thiết kế lược đồ thực thể-liên kết;
8.2. Chuyển đổi từ thực thể sang quan hệ;
8.3. Chuyển đổi từ liên kết sang quan hệ.
41
42
8.1. THIẾT KẾ LƯỢC ĐỒ THỰC THỂ-LIÊN KẾT
• Mô hình dữ liệu thực thể-liên kết cho ta sự linh hoạt trong việc thiết kế lược đồ
CSDL nhằm mô hình hóa một thế giới nhỏ. Để có được một thiết kế như vậy
cần xem xét các vấn đề:
Dùng 1 thuộc tính hay 1 kiểu thực thể để biểu diễn một đối tượng;
Dùng 1 kiểu thực thể hay 1 kiểu liên kết để biểu diễn một khái niệm của
thế giới thực;
Dùng 1 liên kết cấp ba hay 1 bộ đôi liên kết cấp 2;
Dùng kiểu thực thể mạnh hay yếu;
Có nên dùng khái quát hóa không: khái quát hóa hay phân cấp ISA làm
cho một số thuộc tính chung của các kiểu thực thể tương tự với nhau được
biểu diễn chỉ ở một chỗ trong biểu đồ E-R;
Có nên dùng phép gộp không: Gộp gom nhóm 1 phần của 1 biểu đồ E-R
vào trong 1 kiểu thực thể cho phép xử lý kiểu thực thể (có được từ phép
gộp) như một đơn nguyên không liên quan đến những chi tiết về cấu trúc
nội tại bên trong nó.
42
22
43
8.2. CHUYỂN ĐỔI THỰC THỂ SANG QUAN HỆ
• Một tập thực thể E được biến đổi thành một quan hệ mà sơ đồ quan hệ của nó
bao gồm tập các thuộc tính của tập thực thể. Mỗi bộ của quan hệ biểu diễn một
thực thể trong thể hiện hiện thời của E.
• Nếu E là một tập thực thể mà các thực thể của nó được xác định thông qua một
liên kết với một tập thực thể khác F nào đó thì sơ đồ quan hệ tương ứng với E
chỉ chứa các thuộc tính trong khóa của F.
43
44
8.3. CHUYỂN ĐỔI TỪ LIÊN KẾT THÀNH QUAN HỆ
Một liên kết R giữa các tập thực thể E1, E2,…., Ek được biến đổi thành
một quan hệ mà sơ đồ quan hệ của nó bao gồm các thuộc tính trong
khóa của mỗi E1, E2,…., Ek. Thông qua phép đặt tên lại nếu cần thiết,
chúng ta đảm bảo chắc chắn rằng không có hai tập thực thể trong
danh sách có các thuộc tính cùng tên, thậm chí nếu chúng thuộc cùng
một tập thực thể.
44
23
45
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
• Mô hình dữ liệu quan hệ được xây dựng từ bảng (Tables). Trong đó:
Hàng (row): Là 1 bộ hay thể hiện của quan hệ;
Cột: Là 1 thuộc tính của quan hệ;
Tên bảng: Lược đồ quan hệ.
45
• Thực thể mạnh: Chuyển thành các Table với tên là tên của thực thể đó.
Ví dụ:
SID Name Major GPA
1234 John CS 2.8
5678 Mary EE 3.6
Student
SID Name
Major GPA
Advisor Professor
SSN Name
Dept
SSN Name Dept
9999 Smith Math
8888 Lee CS
46
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Thực thể yếu:
• Xây dựng 1 bảng với thuộc tính là tất cả các thuộc tính của thực thể đó;
• Thêm thuộc tính là thuộc tính khóa của thực thể mà thực thể yếu này liên kết tới;
• Khi đó: Khóa chính của bảng mới sẽ là khóa ngoài và các thuộc tính phân biệt của
thực thể yếu.
Ví dụ:
Age Name Parent_SID
10 Bart 1234
8 Lisa 5678
Name Age
Children Owns
* Primary key of Children is Parent_SID + Name
Student
SID Name
Major GPA
24
47
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Quan hệ 1-1:
• Nếu 1 thực thể tham gia bộ phận vào liên kết này thì:
xây dựng bảng mới với các cột là khóa của hai thực thể
tham gia liên kết và thuộc tính của liên kết (ví dụ 1);
• Nếu 1 thực thể tham gia toàn bộ vào liên kết này thì:
Thêm các cột vào bảng chứa thực thể tham gia toàn bộ.
Các cột thêm vào bao gồm: Thuộc tính khóa của thực
thể tham gia không đầy đủ và thuộc tính của liên kết
(ví dụ 2).
47
48
VÍ DỤ
Ví dụ 1:
48
SID Maj_ID Co S_Degree
9999 07 1234
8888 05 5678
Student
SID Name
Major GPA
ID Code
Major study
* Primary key can be either SID or Maj_ID_Co
Degree
25
49
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Ví dụ 2:
49
SID Name Major GPA LP_S/N Hav_Cond
9999 Bart Economy -4.0 123-456 Own
8888 Lisa Physics 4.0 567-890 Loan
Student
SID Name
Major GPA
S/N #
Laptop Have
* Primary key can be either SID or LP_S/N3
Condition
Brand
1:1 Relationship
50
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
• Quan hệ nhiều-một: với thực thể tham gia bộ phận vào liên kết đó thì xử lý như
quan hệ một-một;
• Quan hệ nhiều-một/một-nhiều với thực thể bên “1” tham gia toàn bộ với thực thể
bên “nhiều”:
Thêm cột vào bảng chứa thực thể bên “nhiều”. Cột thêm vào là khóa chính của
bảng chứa thực thể bên “1”.
Ví dụ:
50
SID Name Major GPA Pro_SSN Ad_Sem
9999 Bart Economy -4.0 123-456 Fall 2006
8888 Lisa Physics 4.0 567-890 Fall 2005
Student
SID Name
Major GPA
SSN
Professor
* Primary key of this table is SID
Semester
Name
N:1 Relationship
Dept
Advisor
26
51
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
• Quan hệ nhiều-nhiều:
Giống như quan hệ 1-1(trường hợp tham gia bộ phận);
Khóa chính là tổ hợp của các khóa ngoại của cả 2 thực thể.
• Quan hệ N-chiều:
Tạo bảng mới với thuộc tính là thuộc tính khóa của tất cả các thực thể tham gia
liên kết và thuộc tính của liên kết.
Ví dụ:
P-Key1 P-Key2 P-Key3 A-Key D-Attribute
9999 8888 7777 6666 Yes
1234 5678 9012 3456 No
E-Set 1 P-Key1
Another Set
* Primary key of this table is P-Key1 + P-Key2 + P-Key3
D-Attribute
A relationship
A-Key
E-Set 2 P-Key2
E-Set 3 P-Key3
52
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
• Thuộc tính phức hợp:
Thêm các cột là thuộc tính thành phần của thuộc tính phức hợp;
Không thêm cột là thuộc tính phức hợp;
• Ví dụ:
52
Professor
SSN Name
Address
SSN Name Street City
9999 Dr. Smith 50 1st St. Fake City
8888 Dr. Lee 1 B St. San Jose
Street City
27
53
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
• Thuộc tính đa trị:
Thêm bảng mới với các cột là: thuộc tính khóa của thực thể có thuộc tính đa trị,
thuộc tính còn lại là thuộc tính đa trị.
• Ví dụ:
53
SID Name Major GPA
1234 John CS 2.8
5678 Homer EE 3.6
Student
SID Name
Major GPA
Stud_SID Children
1234 Johnson
1234 Mary
5678 Bart
5678 Lisa
5678 Maggie
Children
The primary key for this table is Student_SID + Children, the union of all attributes
54
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Phân cấp ISA:
• Phân cấp không đầy đủ:
Tạo bảng cho thực thể “cha”;
Tạo mỗi bảng mới cho thực thể “con”: thuộc tính của thực thể con và thuộc tính
khóa của thực thể “cha”;
Khóa chính của thực thể cha được sử dụng làm khóa chính cho bảng mới này.
54
Ví dụ:
SSN SID Status Major GPA
1234 9999 Full CS 2.8
5678 8888 Part EE 3.6
Student
SID Status
Major GPA
SSN Name Gender
1234 Homer Male
5678 Marge Female
Person
Gender
SSN Name
ISA
28
55
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Phân cấp ISA:
• Phân cấp đầy đủ:
Không tạo bảng cho thực thể “cha”;
Tạo mỗi bảng mới cho thực thể “con”: Thuộc tính của thực thể con và thuộc tính
của thực thể “cha”.
55
56
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Ví dụ:
56
SSN Name SID Major GPA
1234 John 9999 CS 2.8
5678 Mary 8888 EE 3.6
Student SID
Major GPA
SSN Name Dept
1234 Homer C.S.
5678 Marge Math
SJSU people SSN Name
ISA
Faculty
Dept
Disjoint and Complete mapping
No table created for superclass entity set
29
57
8.4. CHUYỂN TỪ BIỂU ĐỒ E-R SANG TABLES
Student
Name
SID
Advisor Professor
SSN Name
Dept
Dept
Name
Code
member
SID Code
1234 04
5678 08
Primary Key of Advisor
Primary key of Dept
58
TÓM TẮT CUỐI BÀI
Trong bài này, các bạn đã được giới thiệu về:
• Tổng quan về mô hình thực thể-liên kết;
• Các thành phần của mô hình thực thể-liên kết;
• Biểu đồ E-R;
• Các ràng buộc trong mô hình thực thể-liên kết;
• Cách chuyển đổi từ mô hình thực thể-liên kết sang mô hình quan hệ.
58