Professional Documents
Culture Documents
Mô hình dữ liệu quan hệ và Ánh xạ ER/EER-to-quan hệ
Mô hình dữ liệu quan hệ và Ánh xạ ER/EER-to-quan hệ
Ánh xạ ER/EER-to-quan hệ
Chương 4
Machine Translated by Google
Nội dung
3 Ánh xạ ER-/EER-to-quan hệ
2
Machine Translated by Google
Nội dung
3 Ánh xạ ER-/EER-to-quan hệ
3
Machine Translated by Google
4
Machine Translated by Google
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,"
5
Machine Translated by Google
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
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
dom(GPA) = ??
7
Machine Translated by Google
số 8
Machine Translated by Google
Một quan hệ r (hoặc trạng thái quan hệ, thể hiện quan hệ) của
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
Bộ dữ liệu
Thuộc tính
10
Machine Translated by Google
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
11
Machine Translated by Google
12
Machine Translated by Google
Hàng ngang
Bộ dữ liệu
13
Machine Translated by Google
Nhưng…
14
Machine Translated by Google
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
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
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
Key2 = {SerialNo}, cũng là siêu khóa. {SerialNo, Make} là siêu khóa nhưng
17
Machine Translated by Google
18
Machine Translated by Google
đồ 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
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
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
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
21
Machine Translated by Google
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
Trong trường hợp (2), FK trong R1 không được là một phần của khóa
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
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
24
Machine Translated by Google
ĐỔ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
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
26
Machine Translated by Google
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
lấy:
Thực hiện thao tác nhưng thông báo cho người dùng về
sự vi phạm
Thực hiện quy trình sửa lỗi do người dùng chỉ định
28
Machine Translated by Google
Nội dung
3 Ánh xạ ER-/EER-to-quan hệ
29
Machine Translated by Google
Thiết kế cơ sở dữ liệu
30
Machine Translated by Google
THIẾT KẾ LOGIC
THIẾT KẾ
THIẾT KẾ VẬT LÍ
GIAO DỊCH
Lược đồ nội bộ
THỰC HIỆN
liệu trong
THIẾT KẾ MẪU
Mậ
Sp
c Bl
ộ D
đ
–
khai của DBMS thương mại Lược đồ khái niệm
THIẾT KẾ LOGIC
sở dữ liệu.
Lược đồ nội bộ
32
Thiết kế cơ sở dữ liệu
Machine Translated by Google
33
Machine Translated by Google
34
Machine Translated by Google
35
Machine Translated by Google
Nội dung
3 Ánh xạ ER-/EER-to-quan hệ
36
Machine Translated by Google
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ệ
38
Machine Translated by Google
39
Machine Translated by Google
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)
41
Machine Translated by Google
PK
Loại thực thể yếu
Khóa một phần
42
Machine Translated by Google
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ệ
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ệ
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à:
46
Machine Translated by Google
47
Machine Translated by Google
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
ON_LOAN(ISBN, BNUMBER)
Machine Translated by Google
51
Machine Translated by Google
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
53
Machine Translated by Google
54
Machine Translated by Google
55
Machine Translated by Google
Ánh xạ ER-quan hệ
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ệ
N
N
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
57
Machine Translated by Google
Ánh xạ ER-to-Relational Ví dụ
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
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
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ệ
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 tổng hợp Tập hợp các thuộc tính thành phần đơn giản
65
Machine Translated by Google
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).
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ề
71
Machine Translated by Google
Ví dụ:
Tùy chọn 8C
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
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
78
Machine Translated by Google
Nội dung
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