Chapter3-Relational Data Models

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 44

CƠ SỞ DỮ LIỆU QUAN HỆ

3. MÔ HÌNH DỮ LIỆU QUAN HỆ

1
Giảng viên
Ths. Đinh Thị Thúy - Phòng Thí Nghiệm Trí Tuệ Nhân tạo –
ĐH Thăng Long
Email: thuydt@thanglong.edu.vn

2
Trợ giảng
Nguyễn Thị Ánh, Lê Thị Huế
Trường ĐH Thăng Long
{A40670,A41131}@thanglong.edu.vn

3
Học liệu
Database Systems
Msteam
Bài giảng, bài thực hành,bài tập

4
MỤC TIÊU

 Mô hình dữ liệu quan hệ là gì?

 Cách nhìn lôgic về dữ liệu

 Thành phần cơ bản trong mô hình dữ liệu quan hệ

▪ Các loại khóa

▪ Phụ thuộc hàm

▪ Ràng buộc dữ liệu, Quy tắc toàn vẹn

▪ Mối quan hệ

 Phụ thuộc hàm, dư thừa dữ liệu 5


SỰ TIẾN HÓA CỦA CƠ SỞ DỮ LIỆU

6
MÔ HÌNH QUAN HỆ LÀ GÌ?

 Relational Model (RM)


▪ Thể hiện 1 CSDL như tập các
quan hệ (bảng) gồm dòng và cột
• Mỗi dòng là một bộ dữ liệu
của 1 trường hợp thực thể
• Mỗi cột là 1 thuộc tính

 Chỉ mô tả dữ liệu và mối quan hệ


 Góc nhìn đơn giản và thống nhất về
mặt khái niệm, không quan tâm các
chi tiết về mặt cài đặt trên DBMS cụ
thể
7
ĐẶC ĐIỂM CỦA BẢNG

STT Mô tả
1 Bảng là cấu trúc hai chiều gồm một hàng và một cột
2 Mỗi hàng của bảng (bộ – tuble) đại diện cho 1 thực thể duy nhất xuất hiện trong tập thực thể
3 Mỗi cột trong bảng đại diện cho một thuộc tính và mỗi cột có một tên riêng
4 Giao nhau của hàng và cột đại diện cho một giá trị dữ liệu
5 Tất cả các giá trị trong một cột phải cùng một định dạng dữ liệu
6 Mỗi cột có một phạm vi giá trị cụ thể được gọi là miền thuộc tính.
7 Thứ tự của các hàng và cột là không quan trọng trong DBMS
8 Mỗi bảng phải có một thuộc tính hoặc tổ hợp các thuộc tính giúp xác định duy nhất mỗi hàng

8
VÍ DỤ MINH HỌA

9
CÁC KHÁI NIỆM CỦA MÔ HÌNH QUAN HỆ

 Lược đồ quan hệ - Relation Schema:


▪ Mô tả ngắn gọn một quan hệ: tên quan hệ + các thuộc tính của quan hệ
▪ VD: Sinhvien(MaSV, Hoten, Ngaysinh, Quequan)
 Bậc – Degree:
▪ Tổng số thuộc tính trong quan hệ
 Lực lượng – Cardinality:
▪ Tổng số hàng trong bảng
 Miền thuộc tính - Attribute domain:
▪ Tập hợp các giá trị có thể của thuộc tính đó.
▪ VD: Giới tính = {Nam, Nữ}
10
CÁC LOẠI KHÓA

 Khoá – key
▪ Một/một tập thuộc tính mà có khả năng xác định giá trị
một số thuộc tính khác
▪ Khoá chứa nhiều hơn 1 thuộc tính gọi là khoá phức
▪ Mỗi thuộc tính cấu thành khoá đều gọi là thuộc tính
khoá
 Siêu khóa– Super Key:
▪ Là khoá xác định được giá trị MỌI thuộc tính khác (cả
bộ)
 Khóa dự tuyển – Candidate Key:
▪ Là siêu khoá tối thiểu, không thể bớt thuộc tính. 11
▪ Trong 1 bảng có thể có nhiều khóa dự tuyển
CÁC LOẠI
KHÓA

 Khóa chính – Primary Key:


▪ Một khóa dự tuyển được chọn
 Khóa thay thế - Alternate Key:
▪ Là khóa có thể thay thế khóa chính

12
CÁC LOẠI KHÓA

 Khóa ngoại – Foreign Key:


▪ Là các thuộc tính tham chiếu
đến khóa chính của bảng
khác hay chính bảng đó
▪ Giúp một bảng liên kết bảng
khác hay với chính nó (??)

13
CÁC RÀNG BUỘC TOÀN VẸN TRÊN QUAN HỆ

 Là điều kiện cần để đảm bảo quan hệ là hợp lệ


 Có 3 loại ràng buộc chính:
▪ Ràng buộc miền - Domain Constraints:
• Đảm bảo không có giá trị nằm ngoài
miền giá trị
• Đảm bảo đúng kiểu giá trị
• VD: Create DOMAIN CustomerName
CHECK (value not NULL)

14
CÁC RÀNG BUỘC TOÀN VẸN

 Ràng buộc toàn vẹn thực thể - Entity Integrity Constraints:


▪ Khoá chính phải mang giá trị duy nhất cho mỗi dòng
▪ Trong đó không thuộc tính nào được null
 Định nghĩa giá trị null:
▪ Là sự rỗng giá trị
▪ Nói chung nên hạn chế, vì có thể gây vấn đề cho các thao
tác COUNT, SUM, AVERAGE
Lưu ý: Một giá trị NULL thì khác với một giá trị “0” hoặc
một trường chứa khoảng trắng. Một trường với một giá trị
NULL là trường đã bị bỏ trống trong quá trình tạo bản ghi
15
RÀNG BUỘC TOÀN VẸN CỦA QUAN HỆ

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


Integrity Constraints:
‐ Khoá ngoại hoặc mang giá trị hợp lệ (thuộc
danh sách các giá trị khoá chính trong bảng
liên kết) hoặc mang giá trị null.

16
PHỤ THUỘC HÀM

 Biểu diễn mối quan hệ phụ thuộc của một tập thuộc tính này với tập thuộc tính khác.
 Dùng để đánh giá thiết kế dữ liệu (~xem sau)
 Định nghĩa: Quan hệ R được định nghĩa trên tập thuộc tính U ={A1,A2,..An}. A,B ⸦ U
( là hai tập con thuộc tập thuộc tính U).
Nếu tồn tại một ánh xạ f: A → B thì ta nói rằng A xác định hàm B, hay B phụ thuộc vào
hàm A
 Kí hiệu: A→B
▪ Trong đó: A và B có thể là 1 hoặc 1 tập các thuộc tính
▪ Đọc là A suy ra B hay là B phụ thuộc vào A

17
VÍ DỤ PHỤ THUỘC HÀM

 Mã sinh viên xác định được họ tên của sinh


viên:

▪ MASV → HOTENSV EmployeeID EmployeeName Salary City

 Mã phòng ban xác định tên phòng ban và 1 Dana 50000 San
ngày thành lập: Francisco

▪ MAPB → {TENPB, NGAYTL} 2 Francis 38000 London


 Mã sinh viên và Mã môn học xác định điểm 3 Andrew 25000 Tokyo
thi của sinh viên đối với môn học tương ứng

▪ {MASV,MAMH → DIEM}
Phụ thuộc hàm:EmployeeID → EmployeeName, salary, city 18
PHỤ THUỘC HÀM

 Quy tắc của phụ thuộc hàm:


▪ Tính phản xạ: Nếu Y ⊆ X thì X → Y
▪ Tính tăng trưởng: Nếu X → Y thì XZ → YZ
▪ Tính bắc cầu: Nếu X → Y và Y → Z thì X → Z

❑ Ví dụ: Xác định các phụ thuộc hàm trong quan hệ dưới đây:
SINHVIEN(Tên, Mônhọc, SốĐT, ChuyênNgành, GiảngViên, Điểm)
▪ Có một số tính chất sau:
Với mỗi Tên có duy nhất một SốĐT và ChuyênNgành
Với mỗi Tên, Mônhọc có duy nhất một Điểm
Với mỗi Mônhọc có duy nhất một GiảngViên
19
PHỤ THUỘC HÀM

 Ưu điểm của tìm ra tập các phụ thuộc hàm (PTH):


▪ Xác định ý nghĩa và ràng buộc dữ liệu
▪ Có cách thiết kế để tránh dư thừa dữ liệu.
▪ Giúp xác định khóa của bảng
▪ Đánh giá các thiết kế dữ liệu
▪ Tìm ra các dữ liệu liên quan trong CSDL

20
QUY TẮC TOÀN VẸN

 DBMS tự động thực thi các quy tắc toàn vẹn


 Đảm bảo thiết kế ứng dụng dữ liệu tuân theo các quy tắc toàn vẹn
▪ Toàn vẹn thực thể:
• Khóa chính đảm bảo tính duy nhất
• Các thuộc tính khóa đều không NULL
▪ Toàn vẹn tham chiếu:
• Giá trị của khóa ngoại hoặc NULL
• Hoặc phải tồn tại ở bảng tham chiếu đến
21
QUY TẮC TOÀN VẸN

 Minh họa quy tắc


toàn vẹn

22
MỐI QUAN HỆ - RELATIONSHIP

 Thể hiện khả năng kết hợp giữa hai bảng dữ liệu khi một bảng có khóa ngoại tham
chiếu đến khóa chính bảng kia
▪ Cho phép tách dữ liệu được lưu trữ trong các bảng khác nhau
▪ Nhưng vẫn giữ liên kết giữa các bảng
▪ Quản lý sự dư thừa dữ liệu, tránh các bất thường thao tác dữ liệu: Chèn, Sửa, Xóa
 Có 3 loại mối quan hệ:
▪ 1:N – quan hệ 1 – nhiều hay nhiều – 1
▪ 1:1 – quan hệ 1 – 1
▪ N:M – Quan hệ nhiều - nhiều
23
QUAN HỆ 1:N

 Lấy khoá chính ở bảng 1 cho vào bảng


N như là khoá ngoài
 Ví dụ: Họa sĩ và Bức tranh
▪ Một họa sĩ vẽ nhiều bức tranh, một
bức tranh chỉ do một họa sĩ vẽ
▪ Thể hiện mối quan hệ 1:N giữa họa
sĩ và bức tranh

24
QUAN HỆ 1:1

 Chọn ra bảng nào mà mọi dòng đều tham chiếu bảng còn lại
 Lấy khoá chính bảng còn lại làm khoá chính bảng này
 Ví dụ: Giáo viên và Khoa
▪ Một Giáo viên quản lý một Khoa, một Khoa chỉ do một Giáo viên quản lý
▪ Thể hiện mối quan hệ 1:1 giữa Giáo viên và Khoa

25
QUAN HỆ 1:1

 Ví dụ: Giáo viên và Khoa

26
QUAN HỆ M:N

 Ví dụ: Sinh viên và Lớp học


▪ Một lớp học có nhiều sinh viên, một sinh viên có thể học nhiều lớp
▪ Thể hiện mối quan hệ M:N giữa Lớp học và Sinh viên

▪ Với quan hệ M:N sẽ tách ra thêm 1 bảng trung gian

27
QUAN HỆ M:N

 Với quan hệ M:N sẽ tách ra thêm


1 bảng trung gian
▪ Lấy khóa ở 2 bảng gốc làm
khóa chính cho bảng trung
gian
▪ Thêm thuộc tính cho bảng
trung gian nếu muốn

28
Ví dụ

❖ Thư viện tổ chức cho việc mượn sách như sau:


- MỖi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các quyển sách khác, cùng
với các thông tin khác như: tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất bản (NHAXB),
năm xuất bản (NAMXB)
- Mỗi độc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã độc giả (MAĐG), cùng
với các thông tin khác như: họ tên (HOTEN), ngày sinh(NGAYSINH), địa chỉ (DIACHI), nghề
nghiệp (NGHENGHIEP)
- Cứ mỗi lượt mượn sách độc giả cần đăng kí các quyển sách cần mượn vào một phiếu mượn, mỗi
phiếu mượn có một số phiếu mượn (SOPM) khác nhau và có thông tin của ngày mượn sách và mã
độc giả.
- Các quyển sách trong cùng một phiếu mượn không nhất thiết phải trả trong cùng một lần. Mỗi quyển
sách có thể thuộc nhiều phiếu mượn khác nhau ( tất nhiên tại các thời điểm khác nhau).
29
DƯ THỪA DỮ LIỆU

Lo
MSV Hoten Diachi GT MM Tin chi MGV TenGV Khoa Diem
Là cùng 1 dữ liệu được lưu p
trữ lặp lại ở nhiều nơi riêng A01 Lê Na 12 Thái Hà Nữ M01 CSDL 4 T01 C.Nga Tin 8

biệt A01 Lê Na 12 Thái Hà Nữ M02 Anh 2 3 E01 C.Oanh Anh 5


A03 Trần An 56 Mã Mây Nam M01 CSDL 4 T01 C.Nga Tin 6
▪ PTH ={MSV → Hoten, Diachi, GT;
A02 Hà Nam 34 Cầu Gỗ Nam M04 Toán 1 3 M01 C.Hồng Toán 10
MM →Tenmon ,Tinchi,; A02 Hà Nam 34 Cầu Gỗ Nam M02 Anh 2 3 E01 C.Oanh Anh 7
A02 Hà Nam 34 Cầu Gỗ Nam M03 Vi mô 4 A01 T.Nam Kinh tế 9
MGV→ TenGV, Khoa; A04 Trần Hà 1 Láng Hạ Nữ M01 CSDL 4 T01 C.Nga Tin 9

MSV, MM→Diem; A04 Trần Hà 1 Láng Hạ Nữ M03 Vi mô 4 A01 T.Nam Kinh tế 5

}
▪ Khóa: MSV, MM
30
CÁC VẤN ĐỀ CỦA DƯ THỪA DỮ LIỆU

 Tốn không gian lưu trữ (waste space)


 Liệu có thể thêm thông tin của 1 sv nếu sv đó chưa học môn nào?
▪ KHÔNG Lỗi khi chèn (Insert anomalies)
 Liệu khi xóa sinh viên Hà, An, Na, thì có làm mất thông tin của môn?
▪ Mất môn CSDL Lỗi khi xóa (Delete anomalies)
 Liệu khi xóa môn CSDL thì có làm mất thông tin của sv?
▪ Mất SV Trần An Lỗi khi xóa (Delete anomalies)
 SV Hà Nam chuyển nhà đến 24 Phố Huế, bạn phải sửa
thông tin này ở bao nhiêu dòng?
31
▪ >= 3 dòng Lỗi khi sửa (Update anomalies)
XỬ LÝ VẤN ĐỀ DƯ THỪA

❖ Tách (phân rã) bảng dư thừa thành nhiều bảng Msv MM Diem
A01 M01 8
▪ Tách các bảng trên thành:
A01 M02 5
• SV(Msv, Hoten, Diachi, GT) có PTH ={Msv → Hoten,Diachi,GT} A03 M01 6

• MON(MM, Tenmon, Tinchi) có PTH ={MM → Tenmon, Tinchi} A02 M04 10


A02 M02 7
• GV(Mgv, TenGV, Khoa) có PTH ={Mgv → TenGV, Khoa} A02 M03 9
• KQ(Msv, MM, Diem) có PTH ={Msv,MM → Diem} A04 M01 9
MM Tenmon Tinchi
A04 M03 5
▪ Dựa vào các phụ thuộc hàm để tách M01 CSDL 4
Msv Hoten Diachi GT M02 Anh 2 3
A01 Lê Na 12 Thái Hà Nữ M04 Toán 1 3
A03 Trần An 56 Mã Mây Nam M03 Vi mô 4
A02 Hà Nam 34 Cầu Gỗ Nam M05 Kế toán 2
32
A04 Trần Hà 1Láng Hạ Nữ
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ

❖ Là phần mềm quản lý các CSDL:


▪ DB2 and Informix Dynamic Server - IBM
▪ Oracle and RDB – Oracle
▪ MySQL - Oracle
▪ SQL Server and Access - Microsoft

33
THAO TÁC TRÊN MÔ HÌNH QUAN HỆ

❖ Có 4 thao tác cơ bản trên mô hình dữ


liệu quan hệ:
▪ Chèn – Insert
▪ Cập nhật – Update
▪ Xóa - Delete
▪ Truy vấn - Select

34
THAO TÁC TRÊN MÔ HÌNH QUAN HỆ

 Có 4 thao tác cơ bản trên mô hình dữ liệu quan hệ:
▪ Chèn – Insert: Thêm các giá trị của 1 bộ mới vào quan hệ

 Cập nhật – Update:


‐ Sửa lại giá trị cho các giá trị trong quan hê

35
THAO TÁC TRÊN MÔ HÌNH QUAN HỆ

 Có 4 thao tác cơ bản trên mô hình dữ liệu quan hệ:
▪ Xóa – Delete: Xóa các dòng trên 1 quan hệ thỏa mãn điều kiện hoặc không

 Truy vấn - Select: Tìm kiếm dữ liệu trong quan hệ

36
ƯU ĐIỂM CỦA MÔ HÌNH QUAN HỆ

 Đơn giản: đơn giản hơn mô hình phân cấp và mạng

 Độc lập về cấu trúc: thay đổi trong cấu trúc tệp không làm ảnh hưởng đến truy cập dữ liệu

 Dễ sử dụng: dữ liệu lưu trữ dưới dạng bảng chứa các hàng và cột là tự nhiên và dễ hiểu

 Khả năng truy vấn: sử dụng ngôn ngữ truy vấn cấp cao SQL tránh sự phức tạp của CSDL

 Độc lập dữ liệu: cấu trúc của cơ sở dữ liệu quan hệ có thể được thay đổi mà không phải
thay đổi bất kỳ ứng dụng nào

 Có thể mở rộng: có thể mở rộng thêm hàng và cột

37
NHƯỢC ĐIỂM CỦA MÔ HÌNH QUAN HỆ

 Một số Hệ QT CSDLQH có giới hạn về số cột trong bảng

 Đôi khi các quan hệ giữa các bộ phận dữ liệu trở lên phức tạp

 Các CSDL quan hệ phức tạp có thể dẫn đến thông tin trong CSDL không thể chia
sẻ

38
TỪ KHÓA

39
CÂU HỎI ÔN TẬP

1. Sự khác nhau giữa CSDL và bảng?


2. Toàn vẹn thực thể, toàn vẹn tham chiếu là gì?
3. Tại sao toàn vẹn thực thể và toàn vẹn tham chiếu lại quan trọng ?
4. Phụ thuộc hàm là gì? Ý nghĩa của phụ thuộc hàm?
5. Khóa là gì? Giải thích các loại khóa?
6. Mối quan hệ – Relationship là gì? Có mấy loại? Cho ví dụ từng loại?
7. Cho ví dụ về quan hệ 1:N và minh họa bằng 2 bảng dữ liệu?
8. Dư thừa dữ liệu là gì? Những vấn đề có thể xảy ra khi dư thừa dữ liệu? Cách xử lý?
9. Các thao cơ bản trên bảng dữ liệu?
10. Hệ quản trị cơ sở dữ liệu là gì? Hãy kể tên các một số hệ quản trị 40
BÀI TẬP

41
BÀI TẬP

1. Hãy xác định khóa chính, khóa ngoại cho các bảng?
2. Mô tả mối quan hệ giữa STORE và REGION?
3. Vẽ lược đồ thể hiện mối quan hệ giữa STORE và REGION?
4. Mô tả mối quan hệ giữa EMPLOYEE và STORE?
5. Vẽ lược đồ thể hiện mối quan hệ giữa EMPLOYEE và STORE?
6. Vẽ lược đồ thể hiện mối quan hệ giữa EMPLOYEE và STORE và
REGION?

42
BÀI TẬP XÂY DỰNG MÔ HÌNH QUAN HỆ

Một công ty bất động sản có một số văn phòng tại nhiều địa điểm. Mỗi văn phòng có
một mã số văn phòng và địa chỉ.
Mỗi một văn phòng sẽ có các nhân viên. Mỗi nhân viên sẽ có mã số nhân viên, họ tên. Ở
mỗi văn phòng. Một nhân viên có một hay nhiều thân nhân (vợ và [các] con). Mỗi thân
nhân chúng ta sẽ lưu trữ tên, ngày sinh, mối quan hệ (với nhân viên).
Công ty có một danh sách các BDS cần bán. Thông tin về BDS là mã số và địa chỉ. Mỗi bất
động sản chỉ được rao bán tại 1 và chỉ 1 văn phòng. Mỗi văn phòng sẽ rao bán nhiều BDS
và không thể không rao bán BDS nào.
Mỗi BDS sẽ thuộc về 1 chủ sở hữu. Chủ sở hữu có các thuộc tính như mã số, tên, địa chỉ
và số điện thoại. Một chủ sở hữu có thể sở hữ 1 hoặc nhiều BDS.

43
CẢM ƠN
Liên hệ
thuydt@thanglong.edu.vn

45

You might also like