29
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ể)

BÀI 3 MÔ HÌNH THỰC THỂ LIÊN KẾT - TOPICA

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

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