Chƣơng 3
MÔ HÌNH DỮ LIỆU QUAN HỆ
Relation_Data_Model
Giảng viên: Ths. Nguyễn Thị Khiêm Hòa
NỘI DUNG
• Mô hình quan hệ
• Ràng buộc toàn vẹn
• Thiết kế cơ sở dữ liệu quan hệ
2 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BA THÀNH PHẦN CỦA MÔ HÌNH DL QUAN HỆ
Tổ chức
dữ liệu
Ràng
buộc trên
dữ liệu
Thao tác
trên dữ liệu
3 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MÔ HÌNH DỮ LIỆU QUAN HỆ
• Lƣợc đồ quan hệ
• Bậc của quan hệ
• Thuộc tính
• Miền giá trị
• Bộ dữ liệu
• Thể hiện quan hệ
• Lƣợc đồ cơ sở dữ liệu quan hệ
4 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUAN HỆ
Bảng: TIỀN GỞI
Cột
Chi nhánh
Số TK
Tên Khách hàng
Số dƣ
TPHCM
101
Hồ Thanh Hải
1000
Dòng
Hà Nội
103
Nguyễn Thiên An
1800
D1
D2
D3
D4
5 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUAN HỆ
• Mỗi bảng là tập hợp các tập hợp con có thể có
TIỀN GỞI = D1 × D2 × D3 × D4 (Tích Descartes)
• Quan hệ là tập con của tích Descartes của một danh
sách các miền giá trị.
• Ký hiệu: R.
• Thành phần: cột_thuộc tính, dòng_bộ (bản ghi)
• Tích Descartes D1 × D2 × … × Dn đƣợc gọi là quan
hệ n ngôi: bậc của quan hệ
6 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
THUỘC TÍNH
• Mỗi cột đƣợc gọi là thuộc tính (attribute) cho biết ý
nghĩa từng giá trị dữ liệu trong một bộ.
• Thứ tự thuộc tính trong một bộ là không quan trọng.
• Thuộc tính trong quan hệ là thuộc tính đơn và đơn trị
• Bậc của quan hệ: số thuộc tính của quan hệ.
7 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MIỀN GIÁ TRỊ
• Tập hợp các giá trị mà một thuộc tính có thể nhận
đƣợc gọi là miền giá trị.
• Ký hiệu: Dom(Ai).
• Miền giá trị có thể nhận giá trị NULL
8 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BỘ DỮ LIỆU
• Mỗi dòng trong quan hệ (trừ tiêu đề) đƣợc gọi là một
bộ (tuple), là tập hợp giá trị mô tả một thực thể hoặc
mối kết hợp trong thế giới thực.
9 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
LƢỢC ĐỒ QUAN HỆ
• Đƣợc đặc trƣng bởi một biểu đồ Q và tập hữu hạn
các thuộc tính {A1, A2, …, An}
• Tập các thuộc tính của lƣợc đồ quan hệ Q đƣợc ký
hiệu Q+
• Lƣợc đồ cơ sở dữ liệu quan hệ: Bao gồm nhiều lƣợc
đồ quan hệ con
10 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
VÍ DỤ MẪU
Thuộc tính
Bộ dữ liệu
Giá trị thành phần
Hình 4.1. Một thể hiện của quan hệ EMPLOYEE
11 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
VÍ DỤ MẪU
Hình 4.2. Lược đồ cơ sở dữ liệu COMPANY
12 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MỘT SỐ ĐẶC TRƢNG CỦA MÔ HÌNH DỮ
LIỆU QUAN HỆ
• Thứ tự của các bộ trong quan hệ
Hình 4.3. Hai thể hiện của quan hệ EMPLOYEE
TƢƠNG ĐƢƠNG
13 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MỘT SỐ ĐẶC TRƢNG CỦA MÔ HÌNH DỮ
LIỆU QUAN HỆ
• Thứ tự của các giá trị bên trong một bộ
Hình 4.3. Hai thể hiện của quan hệ EMPLOYEE
TƢƠNG ĐƢƠNG
14 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MỘT SỐ ĐẶC TRƢNG CỦA MÔ HÌNH DỮ
LIỆU QUAN HỆ
• Các giá trị thuộc tính trong bộ
Giá trị thuộc tính là giá trị đơn
Sử dụng NULL để biểu diễn
giá trị không biết
MỘT SỐ ĐẶC TRƢNG CỦA MÔ HÌNH DỮ
LIỆU QUAN HỆ
• Quan hệ biểu diễn thực thể và quan hệ biểu diễn liên
kết
Quan hệ biểu diễn thực thể
EMPLOYEE (ESSN, EName, ESalary, …, DNum, supervisorSSN)
PROJECT (PNumber, PName, PLocation, DNum)
WORKSON (ESSN, PNum, workHours)
Quan hệ biểu diễn liên kết
16 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
RÀNG BUỘC TOÀN VẸN
• Là những quy định, điều kiện ràng buộc đƣợc áp dụng
trên toàn bộ CSDL nhằm đảm bảo CSDL luôn biểu diễn
đúng ngữ nghĩa thực tế. Tất cả các RBTV phải đƣợc
thỏa mãn tại mọi thời điểm.
• Tiêu chuẩn:
• Tính toàn vẹn dữ liệu
• Tính kết dính
• Tính nhất quán
17 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BỐI CẢNH của RÀNG BUỘC TOÀN VẸN
• Bối cảnh của RBTV là những lƣợc đồ quan hệ liên quan
đến RBTV đó.
• Có ba thao tác cập nhật dữ liệu ảnh hƣởng đến RBTV:
• Thêm: thêm mới một (số) bộ dữ liệu vào quan hệ
• Sửa: cập nhật giá trị một (số) bộ dữ liệu vào quan hệ
• Xóa: xóa một (số) bộ dữ liệu vào quan hệ
18 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
HOẠT ĐỘNG 1
• Thao tác thêm mới có khả năng gây ra vi phạm ràng
buộc toàn vẹn nào?
• Thao tác sửa có khả năng gây ra vi phạm ràng buộc
toàn vẹn nào?
• Thao tác xóa có khả năng gây ra vi phạm ràng buộc
toàn vẹn nào?
NỘI DUNG của RÀNG BUỘC TOÀN VẸN
• Nội dung của RBTV có thể đƣợc biểu diễn bằng:
• Ngôn ngữ tự nhiên
• Ngôn ngữ hình thức
20 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BẢNG TẦM ẢNH HƢỞNG của RBTV
• Ký hiệu: dấu cộng (+), dấu trừ (-)
• Bảng tầm ảnh hƣởng cho một RBTV:
Tên_RB
Thêm
Xóa
Sửa
Quan hệ 1
+
-
+ (thuộc tính)
Quan hệ 2
-
+
-
…
Quan hệ n
-
+
-
21 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BẢNG TẦM ẢNH HƢỞNG của RBTV
• Bảng tầm ảnh hƣởng tổng hợp
RB1
RB2
…
RBm
T X S T X S T X S T X S
Quan hệ 1
+
- + +
- + … … … +
- +
Quan hệ 2
- +
-
- +
-
- +
-
…
Quan hệ n
- +
-
- +
-
- +
-
22 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
PHÂN LOẠI RÀNG BUỘC TOÀN VẸN
• RBTV trên một quan hệ
• RBTV miền giá trị
• RBTV liên bộ trên một quan hệ
• RBTV liên thuộc tính trên một quan hệ
• RBTV trên nhiều quan hệ
• RBTV tham chiếu
• RBTV liên bộ trên nhiều quan hệ
• RBTV liên thuộc tính liên quan hệ
• RBTV trên thuộc tính tổng hợp
23 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ràng buộc miền giá trị
• Giá trị ứng với thuộc tính A phải là đơn trị
và phải thuộc miền giá trị dom(A)
Ví dụ
Mọi bộ trong quan hệ EMPLOYEE có giá trị
tại ESex là ‘M’, ‘F’, hoặc null
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
• Ràng buộc khóa
• Hai bộ bất kỳ của quan hệ không có giá trị bằng
nhau tại thuộc tính khóa
• Định nghĩa
• SK là siêu khóa của quan hệ R khi hai bộ bất kỳ
của R không có giá trị bằng nhau tại SK
• K là khóa của quan hệ R khi
• K là siêu khóa
• K là siêu khóa nhỏ nhất
25 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
VÍ DỤ MẪU
• Khóa của EMPLOYEE là gì?
• {ESSN}?
• {EName, ESex}?
26 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
HOẠT ĐỘNG 2
• Xác định tất cả khóa của các quan hệ
• Khóa nào được chọn làm khóa chính trong số
các khóa của từng quan hệ, tại sao?
27 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ràng buộc giá trị NULL
• Khi thuộc tính A đƣợc thiết lập là NOT NULL thì
các bộ dữ liệu không đƣợc nhận giá trị null tại
thuộc tính này
Ví dụ
Mọi bộ trong quan hệ EMPLOYEE không
thể nhận giá trị null tại thuộc tính EName
28 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ràng buộc thực thể
• Nếu K là khóa chính của quan hệ R thì tồn tại
đồng thời ràng buộc NOT NULL trên các thuộc
tính của K
Ví dụ
là khóa chính của
Nếu {ESSN}
EMPLOYEE thì các bộ dữ liệu không
được có giá trị null tại thuộc tính này
29 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
RÀNG BUỘC TOÀN VẸN DỮ LIỆU
Ràng buộc toàn vẹn tham chiếu
Một giá trị xuất hiện trong cột A của quan hệ R
thì phải xuất hiện trong cột B của quan hệ S
Để tồn tại một ràng buộc toàn vẹn tham chiếu
từ A của R tới B của S, thì
dom(A) = dom(B)
B phải là khóa (chính hoặc phụ) của S
A(R) B(S)
30 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
VÍ DỤ MẪU
• Xét hai lƣợc đồ quan hệ
• Ràng buộc toàn vẹn tham chiếu?
31 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
VÍ DỤ MẪU
• Xét hai lƣợc đồ quan hệ
• Ràng buộc toàn vẹn tham chiếu?
32 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BA CƠ CHẾ XỬ LÝ VI PHẠM RBTV
• Cơ chế mặc định: Tự động từ chối mọi hành vi vi phạm
ràng buộc toàn vẹn
• Cơ chế thay thế: Tự động cập nhật giá trị khóa ngoại
khi giá trị khóa chính tƣơng ứng bị thay đổi
• Cơ chế sử dụng giá trị null: Mọi giá trị vi phạm ràng
buộc toàn vẹn đƣợc thiết lập giá trị là null
33 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
THIẾT KẾ CSDL QUAN HỆ
• Quy trình thiết kế CSDL
• Thiết kế cơ sở dữ liệu ý niệm
• Thiết kế cơ sở dữ liệu luận lý
34 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
MỤC TIÊU
Không
trùng lắp
Nhất
quán
Cập
nhật,
nâng cấp
?
Dễ khai
thác
35 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
TIÊU CHÍ LỰA CHỌN BẢN THIẾT KẾ CSDL
• Thời gian thực hiện yêu cầu truy xuất dữ liệu
• Chi phí hoạt động xây dựng, cài đặt, triển khai
• Thời gian sao lƣu, phục hồi khi gặp sự cố
• Tính ổn định trong thời gian dài, mức độ phù hợp với
mục đích sử dụng
36 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU
Đặc tả yêu cầu
ngƣời sử dụng
Thiết kế cơ sở dữ
liệu ý niệm
Thiết kế cơ sở dữ
liệu luận lý
Thiết kế cơ sở dữ
liệu vật lý
37 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
THIẾT KẾ CƠ SỞ DỮ LIỆU Ý NIỆM
• Mục tiêu:
Mô tả tổ chức của dữ liệu và mối liên quan giữa
chúng với nhau
• Giải pháp:
Mô hình thực thể kết hợp (mở rộng)
38 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
• Bƣớc 1: Xác định yêu cầu về dữ liệu lƣu trữ của hệ
thống, phân tích các thành phần dữ liệu của hệ thống
• Bƣớc 2: Mô hình hóa các yêu cầu về dữ liệu bằng các
sơ đồ riêng lẻ
• Bƣớc 3: Tích hợp sơ đồ tổng thể về tổ chức dữ liệu
lƣu trữ của hệ thống
• Bƣớc 4: Hoàn thiện bản thiết kế, loại bỏ dữ thừa
39 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
1. Xác định yêu cầu về dữ liệu của hệ thống
Xác định các tập thực thể
Xác định các thuộc tính cho từng tập thực thể
Xác định các kiểu liên kết giữa các tập thực thể
40 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
2. Mô hình hóa các yêu cầu về dữ liệu
41 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
2. Mô hình hóa các yêu cầu về dữ liệu
42 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
3. Tích hợp thành sơ đồ tổng thể
43 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL Ý NIỆM
4. Hoàn thiện bản thiết kế
44 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
THIẾT KẾ CƠ SỞ DỮ LIỆU LUẬN LÝ
• Mục tiêu
Tổ chức dữ liệu trên máy tính phục vụ nhu cầu lƣu
trữ, vận hành và khai thác thông tin
• Giải pháp
Mô hình dữ liệu quan hệ
45 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
• Ánh xạ kiểu thực thể thƣờng
1
• Ánh xạ kiểu thực thể yếu
2
• Ánh xạ kiểu liên kết hai ngôi 1:1
3
• Ánh xạ kiểu liên kết hai ngôi 1:N
4
• Ánh xạ kiểu liên kết hai ngôi M:N
5
• Ánh xạ thuộc tính đa trị
6
• Ánh xạ kiểu liên kết nhiều ngôi
7
• Ánh xạ kiểu liên kết cha/con
8
• Ánh xạ lớp con chung
9
46 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
1. Ánh xạ kiểu thực thể thƣờng
47 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
2. Ánh xạ kiểu thực thể yếu
48 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
3. Ánh xạ kiểu liên kết hai ngôi 1:1
49 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
4. Ánh xạ kiểu liên kết hai ngôi 1:N
50 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
5. Ánh xạ kiểu liên kết hai ngôi M:N
51 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
6. Ánh xạ các thuộc tính đa trị
52 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
7. Ánh xạ các liên kết nhiều ngôi
53 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
SO SÁNH HAI MÔ HÌNH
MÔ HÌNH THỰC THỂ KẾT HỢP
MÔ HÌNH DỮ LIỆU QUAN HỆ
Kiểu thực thể
Quan hệ thực thể
Kiểu liên kết 1:1 hay 1:N
Khóa ngoại (quan hệ liên kết)
Kiểu liên kết N:M
Quan hệ liên kết với hai khóa ngoại
Kiểu liên kết N - ngôi
Quan hệ liên kết với N khóa ngoại
Thuộc tính đơn
Thuộc tính
Thuộc tính đa trị
Quan hệ và khóa ngoại
Tập giá trị
Miền giá trị
Thuộc tính khóa
Khóa chính (khóa phụ)
54 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
8. Ánh xạ các liên kết cha / con
EMPLOYEE(ESSN, EName,
ESalary,
ESex, EBirthdate, EStartdate)
SECRETARY(ESSN,
TypingSpeed)
DRIVER(ESSN, VehicleType)
ENGINEER(ESSN, EngType)
55 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
8. Ánh xạ các liên kết cha / con
EMPLOYEE(ESSN, EName,
ESalary, ESex, EBirthdate,
EStartdate)
SECRETARY(ESSN, …,
TypingSpeed)
DRIVER(ESSN, …, VehicleType)
ENGINEER(ESSN, …, EngType)
56 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
8. Ánh xạ các liên kết cha / con
EMPLOYEE(ESSN, …, EStartdate,
TypingSpeed, VehicleType,
EngType, JobType)
57 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
8. Ánh xạ các liên kết cha / con
EMPLOYEE(ESSN, …, EStartdate,
TypingSpeed, VehicleType,
EngType, Secretary, Service,
Engineer)
58 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
QUY TRÌNH THIẾT KẾ CSDL LUẬN LÝ
9. Ánh xạ các lớp con chung
KEY_MAN (ESSN, …, EStartdate, EngType, Position)
59 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
CƠ SỞ DỮ LIỆU LUẬN LÝ
60 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
CƠ SỞ DỮ LIỆU LUẬN LÝ
61 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BÀI TẬP TỔNG HỢP
Bài tập 1
• Chuyển đổi lƣợc đồ thực thể kết hợp trong hình
thành lƣợc đồ cơ sở dữ liệu quan hệ
62 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BÀI TẬP TỔNG HỢP
Bài tập 2
• Chuyển đổi lƣợc đồ thực thể kết hợp trong
hình thành lƣợc đồ cơ sở dữ liệu quan hệ
63 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BÀI TẬP TỔNG HỢP
Bài tập 3
• Chuyển đổi lƣợc đồ thực thể kết hợp trong
hình thành lƣợc đồ cơ sở dữ liệu quan hệ
64 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
BÀI TẬP TỔNG HỢP
Bài tập 4
• Chuyển đổi lƣợc đồ thực thể kết hợp trong
hình thành lƣợc đồ cơ sở dữ liệu quan hệ
65 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM
TÓM TẮT
• Mô hình quan hệ
• Ràng buộc toàn vẹn
• Thiết kế cơ sở dữ liệu quan hệ
• Bài tập
66 Khoa Công nghệ Thông tin - Trƣờng Đại học Ngân hàng TP.HCM