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ể)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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),