You are on page 1of 84

Machine Translated by Google

Mô hình dữ liệu quan hệ và

Ánh xạ ER/EER-to-quan hệ
Chương 4
Machine Translated by Google

Nội dung

1 mô hình dữ liệu quan hệ

2 giai đoạn chính của thiết kế cơ sở dữ liệu

3 Ánh xạ ER-/EER-to-quan hệ

2
Machine Translated by Google

Nội dung

1 mô hình dữ liệu quan hệ

2 giai đoạn chính của thiết kế cơ sở dữ liệu

3 Ánh xạ ER-/EER-to-quan hệ

3
Machine Translated by Google

Mô hình dữ liệu quan hệ

Các khái niệm cơ bản: mô hình dữ liệu quan hệ, lược đồ


quan hệ, miền, bộ, số lượng & mức độ, lược đồ cơ sở dữ
liệu, v.v.

Ràng buộc toàn vẹn quan hệ Khóa,

khóa chính và khóa ngoại Ràng

buộc toàn vẹn thực thể

Tính toàn vẹn tham

chiếu Cập nhật các thao tác trên các quan hệ

4
Machine Translated by Google

Các khái niệm cơ bản

Mô hình quan hệ của dữ liệu dựa trên khái niệm


một mối quan hệ

Quan hệ là một khái niệm toán học dựa trên ý tưởng của
các tập hợp

Mô hình này được Tiến sĩ EF Codd của IBM đề xuất lần đầu tiên
vào năm 1970 trong bài báo sau:
"Mô hình quan hệ cho các ngân hàng dữ liệu được chia sẻ lớn,"

Thông tin của ACM, tháng 6 năm 1970

5
Machine Translated by Google

Các khái niệm cơ bản

Mô hình dữ liệu quan hệ: biểu diễn cơ sở dữ liệu trong


dạng quan hệ - bảng 2 chiều với các hàng và cột dữ liệu. Cơ sở

dữ liệu có thể chứa một hoặc nhiều bảng như vậy. Lược đồ quan
hệ được sử dụng để mô tả một mối quan hệ

Lược đồ quan hệ: R(A1, A2,…, An) được tạo thành từ tên
quan hệ R và danh sách các thuộc tính A1, A2, . . ., MỘT.

Mỗi thuộc tính Ai là tên vai trò của một miền D nào đó trong
lược đồ quan hệ R. R được gọi là tên của quan hệ này

6
Machine Translated by Google

Các khái niệm cơ bản

Bậc của quan hệ là số thuộc tính n


lược đồ quan hệ của nó.

Miền D: D gọi là miền của Ai và ký hiệu là dom(Ai). Nó là một tập

hợp các giá trị nguyên tử và một tập hợp các ràng buộc toàn

vẹn

SINH VIÊN (Tên, SSN, HomePhone, Địa chỉ, O icePhone,


Tuổi, điểm trung

bình) Bằng cấp = ??

dom(GPA) = ??

7
Machine Translated by Google

Các khái niệm cơ bản

Tuple: hàng/bản ghi trong

bảng Cardinality: số lượng bộ trong một

bảng Lược đồ cơ sở dữ liệu S = {R1, R2,…, Rm}

số 8
Machine Translated by Google

Các khái niệm cơ bản

Một quan hệ r (hoặc trạng thái quan hệ, thể hiện quan hệ) của

lược đồ quan hệ R(A1, A2, . . ., An), còn được ký hiệu là r(R),

là một tập hợp gồm n-bộ r = {t1, t2 , . . ., tm}.

Mỗi n-tuple t là một danh sách có thứ tự của n giá trị t = <v1,
v2, . . ., vn>, trong đó mỗi giá trị vi, i=1..n, là một phần
tử của dom(Ai) hoặc là một giá trị null đặc biệt . Giá trị
thứ i trong bộ t, tương ứng với thuộc tính Ai, được gọi là t[Ai]

9
Machine Translated by Google

Các khái niệm cơ bản

Mô hình dữ liệu quan hệ


Lược đồ cơ sở dữ liệu
Lược đồ quan hệ
Mối quan hệ

Bộ dữ liệu

Thuộc tính

10
Machine Translated by Google

Các khái niệm cơ bản

Một mối quan hệ có thể được biểu diễn thuận tiện bằng một bảng, như ví

dụ minh họa

Các cột của quan hệ dạng bảng biểu diễn các thuộc tính

Mỗi thuộc tính có một tên riêng biệt và luôn được tham chiếu

bằng tên đó chứ không bao giờ được tham chiếu theo vị trí của nó

Mỗi hàng của bảng biểu diễn một bộ. Thứ tự của các bộ dữ liệu là không

quan trọng và tất cả các bộ dữ liệu phải khác biệt

11
Machine Translated by Google

Các khái niệm cơ bản

12
Machine Translated by Google

Thuật ngữ thay thế cho mô hình quan hệ


Điều khoản chính thức Điều khoản không chính thức

Mối quan hệ Bàn

Thuộc tính Tiêu đề cột

Lãnh địa Tất cả các giá trị cột có thể có

Hàng ngang
Bộ dữ liệu

Lược đồ của một mối quan hệ Định nghĩa bảng

Trạng thái của mối quan hệ Bảng dân số

13
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ


Ràng buộc là điều kiện bắt buộc phải có đối với tất
cả các thể hiện quan hệ hợp lệ. Có ba loại ràng
buộc chính:

Các ràng buộc chính

Ràng buộc toàn vẹn thực thể

Ràng buộc toàn vẹn tham chiếu

Nhưng…

14
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ


Giá trị rỗng

Biểu thị giá trị cho một thuộc tính hiện tại
không xác định hoặc không thể áp dụng cho bộ dữ liệu

Xử lý dữ liệu không đầy đủ hoặc đặc biệt

Biểu thị sự vắng mặt của một giá trị và không giống như
số không hoặc dấu cách, là các giá trị

15
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Những hạn chế chính

Siêu khóa của R: Tập thuộc tính SK của R sao cho không có hai bộ

nào trong bất kỳ thể hiện quan hệ hợp lệ r(R) nào có cùng giá trị

cho SK. Nghĩa là, với mọi bộ phân biệt t1 và t2 trong r(R), t1[SK]

t2[SK]

Khóa của R: Siêu khóa "tối thiểu"; nghĩa là, một siêu khóa K

sao cho việc loại bỏ bất kỳ thuộc tính nào khỏi K sẽ dẫn đến

một tập hợp các thuộc tính không phải là siêu khóa

16
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Những hạn chế chính

Ví dụ: Lược đồ quan hệ CAR:


CAR(State, Reg#, SerialNo, Make, Model, Year) có hai khóa

Key1 = {Trạng thái, Reg#}

Key2 = {SerialNo}, cũng là siêu khóa. {SerialNo, Make} là siêu khóa nhưng

không phải là khóa

Nếu một quan hệ có nhiều khóa dự tuyển thì một khóa


được chọn tùy ý làm khóa chính . Các thuộc tính
khóa chính được gạch chân.

17
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Những hạn chế chính

Quan hệ CAR, với hai khóa dự tuyển:


License_Number và Engine_Serial_Number

18
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Tính toàn vẹn của thực thể

Lược đồ cơ sở dữ liệu quan hệ: Tập S của quan hệ

các lược đồ thuộc cùng một cơ sở dữ liệu. S là


tên cơ sở dữ liệu: S = {R1, R2, ..., Rn}
Tính toàn vẹn của thực thể: thuộc tính khóa chính PK của mỗi lược

đồ quan hệ R trong S không thể có giá trị null trong bất kỳ bộ giá

trị r(R) nào vì các giá trị khóa chính được sử dụng để xác định

các bộ giá trị riêng lẻ: t[PK] null đối với bất kỳ bộ giá trị t nào

trong r(R)

Lưu ý: Các thuộc tính khác của R có thể bị hạn chế tương tự
để không cho phép giá trị null, mặc dù chúng không
phải là thành viên của khóa chính

19
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ - Tham khảo


Chính trực

Một ràng buộc liên quan đến hai quan hệ (các ràng buộc
trước đó liên quan đến một quan hệ duy nhất)

Được sử dụng để xác định mối quan hệ giữa các bộ trong hai
quan hệ: quan hệ tham chiếu và quan hệ được tham chiếu

Các bộ trong quan hệ tham chiếu R1 có thuộc tính FK (được gọi là

thuộc tính khóa ngoài) tham chiếu đến thuộc tính khóa chính PK của

quan hệ được tham chiếu R2. Một bộ t1 trong R1 được gọi là tham chiếu

một bộ t2 trong R2 nếu t1[FK] = t2[PK]

Ràng buộc toàn vẹn tham chiếu có thể được hiển thị trong một
lược đồ cơ sở dữ liệu quan hệ dưới dạng một cung có hướng từ R1.FK đến

R2

20
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Tính toàn vẹn tham chiếu

21
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Tính toàn vẹn tham chiếu

Giá trị trong cột (hoặc các cột) khóa ngoại FK của quan hệ tham chiếu

R1 có thể là:

(1) giá trị của giá trị khóa chính hiện có của

khóa chính tương ứng PK trong quan hệ được tham chiếu


R2, hoặc

(2) một giá trị NULL

Trong trường hợp (2), FK trong R1 không được là một phần của khóa

chính của chính nó

22
Machine Translated by Google

Các ràng buộc toàn vẹn tham chiếu được hiển thị
trên lược đồ cơ sở dữ liệu quan hệ CÔNG TY

23
Machine Translated by Google

Ràng buộc toàn vẹn quan hệ -


Các loại ràng buộc khác
Ràng buộc toàn vẹn ngữ nghĩa:

dựa trên ngữ nghĩa ứng dụng và không thể diễn đạt được
theo mô hình
Ví dụ: “tối đa. KHÔNG. số giờ cho mỗi nhân viên cho tất cả các dự án
anh ấy hoặc cô ấy làm việc là 56 giờ mỗi tuần”

Một ngôn ngữ đặc tả ràng buộc có thể phải được sử dụng để diễn đạt
những

SQL-99 cho phép trigger và ASSERTIONS cho phép


mô t trong sô đo

Ràng buộc trạng thái/tĩnh (cho đến nay)

Ràng buộc chuyển tiếp/động: ví dụ: “mức lương của một


nhân viên chỉ có thể tăng lên”

24
Machine Translated by Google

Cập nhật hoạt động trên quan hệ


CHÈN một bộ

XÓA một bộ SỬA

ĐỔI một bộ

Các ràng buộc về tính toàn vẹn không nên bị vi phạm bởi
hoạt động cập nhật

25
Machine Translated by Google

Cập nhật hoạt động trên quan hệ


Insertion: chèn một bộ mới t vào quan hệ R.
Khi chèn một bộ dữ liệu mới, cần đảm bảo rằng các ràng
buộc cơ sở dữ liệu không bị vi phạm:
Giá trị của một thuộc tính phải có kiểu dữ liệu chính xác

(tức là từ miền thích hợp).

Giá trị của thuộc tính nguyên tố (tức là thuộc tính khóa) phải
không được rỗng

(Các) giá trị khóa không được giống với giá trị của bộ
hiện có trong cùng một quan hệ

Giá trị của khóa ngoại (nếu có) phải tham chiếu đến
bộ hiện có trong quan hệ tương ứng

Các phương án nếu vi phạm ràng buộc: Bài tập về nhà!!

26
Machine Translated by Google

Cập nhật hoạt động trên quan hệ


Xóa: để xóa một bộ dữ liệu t hiện có khỏi quan hệ R.
Khi xóa một bộ dữ liệu, các ràng buộc sau không
được vi phạm:

Bộ dữ liệu phải tồn tại sẵn trong cơ sở dữ liệu

Ràng buộc toàn vẹn tham chiếu không bị vi phạm

Sửa đổi: thay đổi giá trị của một số thuộc tính của
bộ t hiện có trong quan hệ R

27
Machine Translated by Google

Cập nhật hoạt động trên quan hệ


Trong trường hợp vi phạm tính toàn vẹn, một số hành động có thể được thực hiện

lấy:

Hủy bỏ thao tác gây ra vi phạm (TỪ CHỐI


lựa chọn)

Thực hiện thao tác nhưng thông báo cho người dùng về
sự vi phạm

Kích hoạt các cập nhật bổ sung để khắc phục vi phạm


(Tùy chọn CASCADE, tùy chọn SET NULL)

Thực hiện quy trình sửa lỗi do người dùng chỉ định

Một lần nữa, bài tập về nhà!!

28
Machine Translated by Google

Nội dung

1 mô hình dữ liệu quan hệ

2 giai đoạn chính của thiết kế cơ sở dữ liệu

3 Ánh xạ ER-/EER-to-quan hệ

29
Machine Translated by Google

Các giai đoạn chính của thiết kế cơ sở dữ liệu

Ba giai đoạn chính

Thiết kế cơ sở dữ liệu khái niệm

Thiết kế cơ sở dữ liệu

logic Thiết kế cơ sở dữ liệu vật lý

30
Machine Translated by Google

Tổng quan về cơ sở dữ liệu Thế giới nhỏ

Quá trình thiết kế


YÊU CẦU - THU THẬP & PHÂN TÍCH

Yêu cầu chức năng Yêu cầu dữ liệu

PHÂN TÍCH CHỨC NĂNG


THIẾT KẾ MẪU
Mậ
Sp
c Bl
ộ D
đ

Đặc tả giao dịch cấp cao Lược đồ khái niệm

THIẾT KẾ LOGIC

(Ánh xạ mô hình dữ liệu)

CHƯƠNG TRÌNH ỨNG DỤNG Lược đồ cơ sở dữ liệu


Mh
Sể Bt
ụD
c

THIẾT KẾ

THIẾT KẾ VẬT LÍ

GIAO DỊCH
Lược đồ nội bộ
THỰC HIỆN

Chương trình ứng dụng


31
Thiết kế ứng dụng Thiết kế cơ sở dữ liệu
Machine Translated by Google

Tổng quan về cơ sở dữ liệu Thế giới nhỏ

Quá trình thiết kế


YÊU CẦU - THU THẬP & PHÂN TÍCH

• Tạo lược đồ cơ sở dữ Yêu cầu dữ liệu

liệu trong
THIẾT KẾ MẪU

mô hình dữ liệu triển

Mậ
Sp
c Bl
ộ D
đ

khai của DBMS thương mại Lược đồ khái niệm

THIẾT KẾ LOGIC

• Ánh xạ mô hình dữ liệu (Ánh xạ mô hình dữ liệu)

thường được tự động hóa


Lược đồ cơ sở dữ liệu
hoặc bán tự động trong Bt
Mh
Sểụ D
c

công cụ thiết kế cơ THIẾT KẾ VẬT LÍ

sở dữ liệu.
Lược đồ nội bộ

32
Thiết kế cơ sở dữ liệu
Machine Translated by Google

Các giai đoạn chính của thiết kế cơ sở dữ liệu

Thiết kế cơ sở dữ liệu logic


Quá trình xây dựng mô hình dữ liệu được sử dụng trong
doanh nghiệp dựa trên mô hình dữ liệu cụ thể (ví dụ:
quan hệ), nhưng độc lập với DBMS cụ thể và các cân nhắc
vật lý khác
Ánh xạ ER- & EER sang quan hệ
Chuẩn hóa

33
Machine Translated by Google

Mối quan hệ thực thể


Sơ đồ (ERD) cho
Cơ sở dữ liệu CÔNG TY

34
Machine Translated by Google

Kết quả ánh xạ ERD vào lược đồ quan hệ

35
Machine Translated by Google

Nội dung

1 mô hình dữ liệu quan hệ

2 giai đoạn chính của thiết kế cơ sở dữ liệu

3 Ánh xạ ER-/EER-to-quan hệ

36
Machine Translated by Google

Ánh xạ ER- & EER-to-quan hệ


ER-
Bước 1: Ánh xạ các kiểu thực thể thông
thường Bước 2: Ánh xạ các kiểu thực
thể yếu Bước 3: Ánh xạ các kiểu mối quan hệ nhị
phân 1:1 Bước 4: Ánh xạ các kiểu mối quan hệ nhị
phân 1:N Bước 5: Ánh xạ nhị phân M :N Các kiểu
quan hệ Bước 6: Ánh xạ các thuộc tính đa
giá trị Bước 7: Ánh xạ các kiểu quan hệ N-
ary EER-

Bước 8: Tùy chọn chuyên môn hóa bản đồ hoặc


Sự khái quát.

Bước 9: Ánh xạ các loại liên minh (Danh mục)

37
Machine Translated by Google

Ánh xạ ER-quan hệ
Bước 1: Ánh xạ các kiểu thực thể thông thường (mạnh)
Thực thể --> Quan hệ

Thuộc tính của thực thể --> Thuộc tính của quan hệ

Khóa chính của thực thể --> Khóa chính của quan hệ

Ví dụ: Chúng ta tạo mối quan hệ NHÂN VIÊN,


BỘ PHẬN và DỰ ÁN trong lược đồ quan hệ tương ứng với
các thực thể thông thường trong sơ đồ ER.
SSN, DNUMBER và PNUMBER là khóa chính cho các mối quan
hệ NHÂN VIÊN, BỘ PHẬN và DỰ ÁN như hình

38
Machine Translated by Google

39
Machine Translated by Google

Bước 1: Ánh xạ các loại thực thể thông thường (mạnh)

40
Machine Translated by Google

Ánh xạ ER-quan hệ
Bước 2: Ánh xạ các kiểu thực thể yếu
Đối với mỗi thực thể yếu, loại W trong lược đồ ER có thực thể chủ sở hữu
gõ E, tạo quan hệ R và bao gồm tất cả các thuộc tính đơn giản (hoặc các
thành phần đơn giản của thuộc tính tổng hợp) của W làm thuộc tính của R
Ngoài ra, bao gồm (các) thuộc tính khóa ngoài của R (các) thuộc tính khóa chính
của (các) quan hệ tương ứng với (các) loại thực thể chủ sở hữu làm thuộc tính
khóa ngoài

Khóa chính của R là sự kết hợp giữa (các) khóa chính của chủ sở hữu và khóa
một phần của thực thể yếu loại W, nếu có
Ví dụ: Tạo mối quan hệ DEPENDENT ở bước này để tương ứng với kiểu thực thể
yếu DEPENDENT. Bao gồm SSN khóa chính của mối quan hệ NHÂN VIÊN làm thuộc
tính khóa ngoài của DEPENDENT (được đổi tên thành ESSN)

Khóa chính của mối quan hệ DEPENDENT là tổ hợp {ESSN, DEPENDENT_NAME}


vì DEPENDENT_NAME là khóa một phần của DEPENDENT

Lưu ý: Tùy chọn CASCADE đã được triển khai

41
Machine Translated by Google

PK của chủ sở hữu

PK
Loại thực thể yếu
Khóa một phần

42
Machine Translated by Google

Bước 2: Ánh xạ các loại thực thể yếu

43
Machine Translated by Google

Ánh xạ ER-quan hệ
ER-
Bước 1: Ánh xạ các kiểu thực thể thông
thường Bước 2: Ánh xạ các kiểu thực
thể yếu Bước 3: Ánh xạ các kiểu mối quan hệ nhị
phân 1:1 Bước 4: Ánh xạ các kiểu mối quan hệ
nhị phân 1:N Bước 5: Ánh xạ nhị phân M :N Các
kiểu mối quan hệ Bước 6: Ánh xạ các
thuộc tính đa giá trị Bước 7: Ánh xạ các
kiểu mối quan hệ N-ary Chuyển đổi các mối quan hệ nhị
phân - phụ thuộc vào chức năng của mối quan hệ và lớp
thành viên của các kiểu thực thể tham gia

44
Machine Translated by Google

Ánh xạ ER-quan hệ

Hạng thành viên bắt buộc


Đối với hai loại thực thể E1 và E2: Nếu E2 là bắt buộc
thành viên của mối quan hệ N:1 (hoặc 1:1) với E1 thì mối
quan hệ cho E2 sẽ bao gồm các thuộc tính chính của E1 làm
khóa ngoại để thể hiện mối quan hệ

Mối quan hệ 1:1: Nếu lớp thành viên của E1 và E2 đều là bắt
buộc thì khóa ngoại có thể được sử dụng trong cả hai
mối quan hệ

Mối quan hệ N:1: Nếu lớp thành viên của E2, nằm ở phía N
của mối quan hệ, là tùy chọn (tức là một phần), thì hướng
dẫn trên không được áp dụng

45
Machine Translated by Google

Ánh xạ ER-quan hệ

PHÒNG LỜI ĐỀ NGHỊ


MÔ-ĐUN
1 N

Giả sử mỗi module phải được cung cấp bởi một bộ phận thì
loại thực thể MODULE là thành viên bắt buộc của mối quan hệ
ƯU ĐÃI. Mối quan hệ của MODULE là:

MODULE(MDL-SỐ, TIÊU ĐỀ, HẠN, ..., DNAME)

46
Machine Translated by Google

47
Machine Translated by Google

Bước 3-4: Ánh xạ các loại mối quan hệ


(Bắt buộc)

48
Machine Translated by Google

Ánh xạ ER-quan hệ
Các lớp thành viên tùy chọn
Nếu loại thực thể E2 là thành viên tùy chọn của N:1
mối quan hệ với loại thực thể E1 (tức là E2 nằm ở phía N
của mối quan hệ) thì mối quan hệ đó thường là
được biểu diễn bằng một quan hệ mới chứa các thuộc
tính cơ bản của E1 và E2, cùng với bất kỳ thuộc tính
nào của mối quan hệ. Khóa của kiểu thực thể ở phía N
(tức là E2) sẽ trở thành khóa của quan hệ mới
Nếu cả hai loại thực thể trong mối quan hệ 1:1 đều có tư cách
thành viên tùy chọn, một mối quan hệ mới sẽ được tạo chứa các
thuộc tính cơ bản của cả hai loại thực thể, cùng với bất kỳ
thuộc tính nào của mối quan hệ. (Các) thuộc tính chính của
một trong hai loại thực thể sẽ là khóa của mối quan hệ mới

49
Machine Translated by Google

Ánh xạ ER-quan hệ

N
1
NGƯỜI VAY ON_LOAN SÁCH

Một cách biểu diễn mối quan hệ:


NGƯỜI VAY(BỐN, TÊN, ĐỊA CHỈ, ...)
SÁCH(ISBN, TITLE, ..., BNUMBER)
Một giải pháp thay thế tốt hơn:

NGƯỜI VAY(BỐN, TÊN, ĐỊA CHỈ, ...)


SÁCH(ISBN, TIÊU ĐỀ, ...)

ON_LOAN(ISBN, BNUMBER)
Machine Translated by Google

51
Machine Translated by Google

Bước 3-4: Ánh xạ các loại mối quan hệ


(Không bắt buộc)

52
Machine Translated by Google

Ánh xạ ER-quan hệ
Mối quan hệ nhị phân N:M:
Mối quan hệ N:M luôn được biểu diễn bằng một mối quan hệ mới
mối quan hệ bao gồm các thuộc tính chính của cả hai
loại thực thể tham gia cùng với bất kỳ thuộc tính nào
của mối quan hệ
Sự kết hợp của các thuộc tính cơ bản sẽ tạo thành
khóa chính của quan hệ mới

Ví dụ: ENROLL là mối quan hệ M:N giữa


SINH VIÊN và MODULE. Để thể hiện mối quan hệ, chúng ta
có một mối quan hệ mới:
ENROL(SNUMBER, MDL-NUMBER, DATE)

53
Machine Translated by Google

54
Machine Translated by Google

Bước 5: Ánh xạ các loại mối quan hệ M:N

55
Machine Translated by Google

Ánh xạ ER-quan hệ

Chuyển đổi các mối quan hệ đệ quy/liên quan


Mối quan hệ giữa các thể hiện khác nhau của cùng một thực thể

Tên của (các) thuộc tính cơ bản cần được thay đổi để phản ánh
vai trò của mỗi thực thể trong mối quan hệ

NGƯỜI KẾT HÔN


M

PHẦN BAO GỒM

N
N

NGƯỜI LAO ĐỘNG GIÁM SÁT

56
Machine Translated by Google

Ánh xạ ER-quan hệ
Ví dụ 1: Mối quan hệ liên quan 1:1, trong đó tư
cách thành viên của cả hai thực thể là tùy chọn

NGƯỜI(ID, TÊN, ĐỊA CHỈ, ...)

KẾT HỢP(CHỒNG-ID, WIFE_ID, DATE_OF_MARRIAGE)

57
Machine Translated by Google

Ánh xạ ER-to-Relational Ví dụ

2: Mối quan hệ liên quan 1:M Nếu mối


quan hệ là bắt buộc hoặc gần như bắt buộc:
EMPLOYEE(ID, ENAME, ..., SUPERVISOR_ID)
Nếu mối quan hệ là tùy
chọn: EMPLOYEE(ID, ENAME, ...)
GIÁM SÁT(ID, START_DATE, ..., SUPERVISOR_ID)

Ví dụ 3: Mối quan hệ liên quan N:M


PHẦN(SỐ, MÔ TẢ, ...)

BAO GỒM( SỐ CHÍNH, SỐ THIỂU, SỐ LƯỢNG)

58
Machine Translated by Google

Ánh xạ ER-quan hệ
ER-
Bước 1: Ánh xạ các kiểu thực thể thông
thường Bước 2: Ánh xạ các kiểu thực
thể yếu Bước 3: Ánh xạ các kiểu mối quan hệ nhị
phân 1:1 Bước 4: Ánh xạ các kiểu mối quan hệ nhị
phân 1:N Bước 5: Ánh xạ nhị phân M :N Các kiểu
quan hệ Bước 6: Ánh xạ các thuộc tính đa
giá trị Bước 7: Ánh xạ các kiểu quan hệ N-ary

59
Machine Translated by Google

Ánh xạ ER-quan hệ
Bước 6: Ánh xạ các thuộc tính đa giá trị
Với mỗi thuộc tính đa giá trị A, tạo một quan hệ R mới.
Quan hệ R này sẽ bao gồm một thuộc tính tương ứng với A,
cộng với thuộc tính khóa chính K-là khóa ngoại trong R-
của quan hệ đại diện cho kiểu thực thể hoặc
kiểu mối quan hệ có A là thuộc tính
Khóa chính của R là sự kết hợp của A và K. Nếu thuộc tính
đa giá trị là phức hợp thì ta gộp các thành phần đơn giản
của nó
Ví dụ: Mối quan hệ DEPT_LOCATIONS được tạo. Thuộc tính DLOCATION
đại diện cho thuộc tính đa giá trị LOCATIONS của DEPARTMENT,
trong khi DNUMBER-là khóa ngoại - đại diện cho khóa chính
của mối quan hệ DEPARTMENT. Khóa chính của R là sự kết hợp của
{DNUMBER, DLOCATION}

60
Machine Translated by Google

61
Machine Translated by Google

Kết quả ánh xạ lược đồ COMPANY ER vào lược đồ quan hệ

62
Machine Translated by Google

Ánh xạ ER-quan hệ
Bước 7: Ánh xạ các kiểu quan hệ N-ary
Với mỗi mối quan hệ n-ary kiểu R, trong đó n>2, tạo một mối
quan hệ S mới để biểu diễn R

Bao gồm các thuộc tính khóa ngoại trong S là khóa chính của các
quan hệ đại diện cho các kiểu thực thể tham gia

Cũng bao gồm bất kỳ thuộc tính đơn giản nào của n-ary
kiểu quan hệ (hoặc các thành phần đơn giản của thuộc tính
tổng hợp) là thuộc tính của S
Ví dụ: Loại mối quan hệ SUPPY trong ER bên dưới.
Điều này có thể được ánh xạ tới mối quan hệ CUNG CẤP được
hiển thị trong lược đồ quan hệ, có khóa chính là sự kết hợp
của ba khóa ngoại {SNAME, PARTNO, PROJNAME}

63
Machine Translated by Google

Ánh xạ ER-quan hệ
Các loại mối quan hệ bậc ba: Mối quan hệ CUNG CẤP

Lưu ý: nếu ràng buộc số


lượng trên bất kỳ loại
thực thể E nào tham gia vào
mối quan hệ là 1, thì
PK không nên bao gồm

Thuộc tính FK tham


chiếu quan hệ E' tương
ứng với E

64
Machine Translated by Google

Ánh xạ ER-quan hệ
Sự tương ứng giữa mô hình ER và mô hình quan hệ

Mô hình ER Mô hình quan hệ

Loại thực thể Mối quan hệ “thực thể”

Loại mối quan hệ 1:1 hoặc 1:N Khóa ngoại (hoặc quan hệ “mối quan hệ”)

Kiểu quan hệ M:N Quan hệ “Mối quan hệ” & 2 khóa ngoại

kiểu quan hệ n-ary Quan hệ “mối quan hệ” & n khóa ngoại

Thuộc tính đơn giản Thuộc tính

Thuộc tính tổng hợp Tập hợp các thuộc tính thành phần đơn giản

Thuộc tính đa giá trị Quan hệ và khóa ngoại

Đặt giá trị Lãnh địa

Thuộc tính khóa Khóa chính (hoặc phụ)

65
Machine Translated by Google

Ánh xạ ER- & EER-to-quan hệ


ER-
Bước 1: Ánh xạ các kiểu thực thể thông
thường Bước 2: Ánh xạ các kiểu thực
thể yếu Bước 3: Ánh xạ các kiểu mối quan hệ nhị
phân 1:1 Bước 4: Ánh xạ các kiểu mối quan hệ nhị
phân 1:N Bước 5: Ánh xạ nhị phân M :N Các kiểu
quan hệ Bước 6: Ánh xạ các thuộc tính đa
giá trị Bước 7: Ánh xạ các kiểu quan hệ N-
ary EER-

Bước 8: Tùy chọn chuyên môn hóa bản đồ hoặc


Sự khái quát.

Bước 9: Ánh xạ các loại liên minh (Danh mục)

66
Machine Translated by Google

Ánh xạ EER-to-quan hệ
Bước 8: Tùy chọn chuyên môn hóa bản đồ hoặc
Sự khái quát.

Chuyển đổi từng chuyên môn hóa với m lớp con {S1,
S2,….,Sm} và siêu lớp tổng quát C, trong đó các
thuộc tính của C là {k,a1,…an} và k là khóa (chính),
thành các lược đồ quan hệ bằng cách sử dụng một
trong các bốn lựa chọn sau:
Tùy chọn 8A: Nhiều quan hệ-Lớp trên và các lớp con
Tùy chọn 8B: Chỉ các quan hệ đa lớp-lớp con
Tùy chọn 8C: Quan hệ đơn với thuộc tính một loại
Tùy chọn 8D: Quan hệ đơn có nhiều thuộc tính kiểu

67
67
Machine Translated by Google

Ánh xạ EER-to-quan hệ
Tùy chọn 8A: Nhiều quan hệ-Lớp trên và các lớp
con
Tạo mối quan hệ L cho C với các thuộc tính Attrs(L) = {k,a1,…an} và
PK(L) = k. Tạo mối quan hệ Li cho mỗi lớp con Si, 1 < i < m, với
các thuộc tínhAttrs(Li) = {k} U {thuộc tính của Si} và PK(Li)=k. Tùy
chọn này phù hợp với mọi chuyên môn (toàn bộ hoặc một phần, rời
rạc hoặc chồng chéo).

Tùy chọn 8B: Chỉ các quan hệ đa lớp-lớp con


Tạo mối quan hệ Li cho mỗi lớp con Si, 1 < i < m, với các
thuộc tính Attr(Li) = {thuộc tính của Si} U {k,a1…,an} và PK(Li) = k.
Tùy chọn này chỉ hoạt động đối với một chuyên môn có tổng số lớp con
(mọi thực thể trong siêu lớp phải thuộc về (ít nhất) một trong các
lớp con).

68
Machine Translated by Google

Ví dụ:
Phương án 8A

69
Machine Translated by Google

Ví dụ:
Phương án 8B

Trọng tải
70
Machine Translated by Google

Ánh xạ EER-to-quan hệ

Tùy chọn 8C: Quan hệ đơn với thuộc tính một loại
Tạo một quan hệ L với các thuộc tính Attrs(L) = {k,a1,…an} U
{thuộc tính của S1} U…U {thuộc tính của Sm} U {t} và PK(L) = k.
Thuộc tính t được gọi là thuộc tính loại (hoặc phân biệt đối
xử) cho biết lớp con mà mỗi bộ thuộc về

Tùy chọn 8D: Quan hệ đơn có nhiều thuộc tính kiểu


Tạo lược đồ quan hệ đơn L với các thuộc tính Attrs(L) = {k,a1,…
an} U {thuộc tính của S1} U…U {thuộc tính của Sm} U {t1, t2,…,tm} và
PK(L) = K. Mỗi ti , 1 < I < m, là một thuộc tính kiểu Boolean
cho biết liệu một bộ có thuộc lớp con Si hay không .

71
Machine Translated by Google

Ví dụ:
Tùy chọn 8C

loại tiếng anh

72
Machine Translated by Google

Ví dụ:
Tùy chọn 8D

73
Machine Translated by Google

Ánh xạ EER-to-quan hệ
Ánh xạ các lớp con dùng chung (Đa kế thừa)
Một lớp con dùng chung, chẳng hạn như STUDENT_ASSISTANT, là một
lớp con của nhiều lớp, biểu thị tính đa kế thừa. Tất cả các
lớp này phải có cùng thuộc tính khóa; nếu không, lớp con dùng
chung sẽ được mô hình hóa thành một danh mục.

Chúng ta có thể áp dụng bất kỳ tùy chọn nào được thảo luận ở Bước
8 cho một lớp con dùng chung, tuân theo hạn chế được thảo luận
ở Bước 8 của thuật toán ánh xạ. Bên dưới cả 8C và 8D đều được
sử dụng cho lớp chia sẻ STUDENT_ASSISTANT.

74
Machine Translated by Google

75
Machine Translated by Google

Ví dụ: Ánh xạ các lớp con được chia sẻ

76
Machine Translated by Google

Ánh xạ EER-to-quan hệ
Bước 9: Lập bản đồ các loại liên minh (Danh mục).
Để ánh xạ một danh mục mà siêu lớp xác định có các khóa
khác nhau, thông thường phải chỉ định một thuộc
tính khóa mới, được gọi là khóa thay thế , khi tạo mối
quan hệ tương ứng với danh mục.
Trong ví dụ dưới đây, chúng ta có thể tạo một mối quan
hệ OWNER để tương ứng với danh mục OWNER và bao gồm
bất kỳ thuộc tính nào của danh mục trong mối quan hệ
này. Khóa chính của quan hệ OWNER là khóa thay thế mà
chúng tôi gọi là OwnerId.

77
Machine Translated by Google

Ví dụ: Ánh xạ các loại liên minh

78
Machine Translated by Google

Nội dung

1 mô hình dữ liệu quan hệ

2 giai đoạn chính của thiết kế cơ sở dữ liệu

3 Ánh xạ ER-/EER-to-quan hệ

79
Machine Translated by Google

80
Machine Translated by Google

Bài tập 1

81
Machine Translated by Google

Bài tập 2

82
Machine Translated by Google

Bài tập 3

83
Machine Translated by Google

84
Bài tập 4

You might also like