Tải bản đầy đủ (.ppt) (64 trang)

Chương 4: MÔ HÌNH QUAN HỆ - RELATIONAL MODEL pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 64 trang )


Chương 4
Chương 4
MÔ HÌNH QUAN HỆ - RELATIONAL MODEL

Nội dung
Nội dung

Các định nghĩa cơ bản của mô hình dữ liệu quan hệ

Quan hệ

Lược đồ quan hệ

Quan hệ toán học

Lược đồ quan hệ và quan hệ

Khóa quan hệ

Ràng buộc toàn vẹn

Chuyển mô hình thực thể kết hợp sang mô hình quan hệ
2

Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
(Relational data model)
(Relational data model)

Được đề xuất bởi E.F. Codd năm 1970.



Mô hình này bao gồm:

Các khái niệm liên quan đến cấu trúc dữ liệu dưới dạng dòng và
cột như quan hệ, bộ, thuộc tính, khóa chính, khóa ngoại,

Được xây dựng trên cơ sở của phép toán tập hợp và phép toán
quan hệ.

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

Các HQTCSDLQH được xây dựng dựa theo lý thuyết mô
hình quan hệ

Nhưng hiện nay DBMS bắt đầu theo hướng đối tượng
3

Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
(Relational data model)
(Relational data model)

Quan hệ (relation) là một bảng dữ liệu hai chiều gồm nhiều hàng
(mẫu tin hay bản ghi) và nhiều cột (thuộc tính hoặc vùng tin). Mỗi
cột tương ứng với một thuộc tính của thực thể. Mỗi dòng chứa các
giá trị dữ liệu của một đối tượng cụ thể thuộc thực thể

Mỗi hàng là duy nhất: không thể có hai hàng có cùng các giá
trị ở tất cả vùng tin.


Thứ tự của các hàng và cột là không quan trọng.
4
MaNV HoTenNV Tuoi
NV01 Nguyễn Trung Tiến 25
NV02 Trần Thị Yến 35
NV03 Nguyễn Văn An 40
Bài 4 TH107 5
Trực quan về Quan hệ

Ví dụ : Để quản lý điểm sv, nếu ta lưu trữ theo bảng sau thì không đúng với mô hình quan hệ vì
MASV TEN MALOP MAMH TENMH ĐIEM
TCTH01 Sơn TCTHA THVP Tin Học Văn Phòng 6.0
TCTH01 Sơn TCTHA CSDL Cơ Sở Dữ Liệu 5.0
TCTH02 Lan TCTHA CSDL Cơ Sở Dữ Liệu 3.0
Thuộc tính
Bộ

Ta không thể lưu trữ một SV mới khi SV này chưa có điểm thi.

Khi cần sửa đổi ten thì phải sửa tất cả các dòng có liên quan đến SV
này.

Khi có nhu cầu xóa điểm thi một SV kéo theo khả năng xóa luôn họ tên
Sv đó.

Để lưu trữ đúng mô hình quan hệ, ta có thể lưu trữ thành các bảng như
sau

Ví dụ về mô hình quan hệ
MONHOC

SVIEN
MASV TEN MALOP
TCTH01 Sơn TCTHA
TCTH02 Bảo TCTHB
TCTH03 Trang TCTHA
MASV MAMH DIEM
TCTH01 THVP 8
TCTH01 CSDL 6
TCTH01 CTDL 7
TCTH02 THVP 9
TCTH02 CSDL 8
TCTH03 THVP 10
MAMH TENMH TINCHI KHOA
THVP
Nhập môn
TH
4 CNTT
CSDL
Cấu trúc dữ
liệu
4 CNTT
CTDL Toán rời rạc 3 TOAN
KQUA
LOP
MALOP TENLOP
SIS
O
TCTHA TCTH32A 80
TCTHB TCTH32B 65
TCTHC TCTH32C 82


Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
(Relational data model)
(Relational data model)

Bộ

Bộ là tập mỗi giá trị liên quan của tất cả các thuộc tính
của một lược đồ quan hệ.

Ví dụ quan hệ sau có 2 bộ
7
MA
SV
HOTEN PHAI
NGAY
SINH
MA
LOP
TINH
HOC
BONG
99001 TRAN AN TRUE 15-03-1977 CÑTH2B T GIANG 120000
99002 NGUYEN HA TRUE 25-04-1986 TCTH29C TPHCM 120000

Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
(Relational data model)
(Relational data model)


Khóa - key

Khóa quan hệ là một tập nhỏ nhất các thuộc tính dùng để xác
định duy nhất một hàng.

Khóa thường được sử dụng làm chỉ mục (index) của bảng dữ
liệu để làm tăng tốc độ xử lý của truy vấn.

Một quan hệ phải có ít nhất một khóa và có thể có nhiều khóa.

Các thuộc tính thuộc một khóa được gọi là thuộc tính khóa
(prime attribute), các thuộc tính còn lại trong lược đồ quan hệ
được gọi là các thuộc tính không khóa (nonprime attribute).

Các thuộc tính khóa được gạch dưới.

Các thuộc tính khóa không được có giá trị rỗng (null value).
8

Lược đồ quan hệ (Relation schema)
Lược đồ quan hệ (Relation schema)

Lược đồ quan hệ bao gồm:

Tên quan hệ.

Tên các thuộc tính cùng với tên domain tương ứng.

Các ràng buộc bảo toàn ( integrity constraint): là các hạn chế trên

các quan hệ của lược đồ này.

Domain : là 1 tập hợp các giá trị cho phép của 1 hay nhiều thuộc
tính, thường là 1 tập con cuả kiểu dữ liệu. Ký hiệu dom(A)  miền
trị của thuộc tính A

Ví dụ:

Thuộc tính Address của quan hệ STUDENT có domain là tập hợp các
chuỗi.

Thuộc tính điểm có domain là các số thực trong phạm vi từ 0 đến 10.
9

Lược đồ quan hệ (relation schema)
Lược đồ quan hệ (relation schema)

Cho A
1
, A
2
, , A
n
là tên các thuộc tính thuộc các miền D
1
, D
2
, , D
n


Lược đồ quan hệ R với 1 tập thuộc tính {A
1
, A
2
, , A
n
}
R(A
1
, A
2
, , A
n
)

Gọi U={A
1
, A
2
, , A
n
} là tập các thuộc tính của lược đồ quan hệ R

Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý nghĩa của nó.

Biểu diễn 1 lược đồ quan hệ:
TÊN_QUAN_H ( thu c tính 1, thu c tính 2,…)Ệ ộ ộ
Ví dụ : lược đồ quan hệ Employee có 3 thuộc tính
NHANVIEN(MANV, Ten, MaPb, Luong)
Tân từ: Mỗi nhân viên có một MaNV duy nhất dùng để nhận diện

TenNV, MaPB và Lương.
10

Quan hệ (Relation)
Quan hệ (Relation)

Gọi D = D1 ∪ D2 ∪…∪ Dn

Quan hệ r trên lược đồ quan hệ R được ký hiệu r(R) là một tập
hữu hạn các ánh xạ {t1,t2, ,tp} từ R vào D với điều kiện mọi ánh
xạ t ∈ r thì t[Ai]∈ Di, 1 ≤ i ≤ n

Quan hệ r là một thể hiện quan hệ (relation instance) của R tại
1 một thời điểm

Mỗi ánh xạ của quan hệ là 1 bộ của quan hệ và được ký hiệu
(A1:d1, A2: d2,…,An:dn) với di ∈ Di, 1 ≤ i ≤ n

Thành phần Ai của bộ t được ký hiệu là t[Ai] hoặc t.Ai
11
MaNV HoTenNV Tuoi
NV01 Nguyễn Trung Tiến 25 t1
NV02 Trần Thị Yến 35 t2
Quan hệ NHANVIEN trên tập các thuộc tính R={Manv, HoTenNV, Tuoi) là một quan hệ 3 ngôi.
t1(NV01, ‘Nguyễn Trung Tiến’, 25) =
t1(R) là một bộ của quan hệ
NHANVIEN

Lược đồ quan hệ
Lược đồ quan hệ

(Relation schema)
(Relation schema)

Lược đồ cơ sở dữ liệu

Trong một lược đồ cơ sở dữ liệu, các tên lược đồ quan
hệ là duy nhất.
Lược đồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)
Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City)
Supply (Snum, Pnum, Deptnum, Quan)
12

Cơ sở dữ liệu quan hệ
Cơ sở dữ liệu quan hệ
(Relational database)
(Relational database)

Cơ sở dữ liệu quan hệ (relational database):

Là 1 tập hợp hữu hạn các quan hệ (relations)

Dữ liệu được lưu trữ trong các quan hệ (bảng)

Có nhiều mối quan hệ giữa các bảng
13
SVIEN
MASV TEN MALOP
TCTH01 Sơn TCTHA

TCTH02 Bảo TCTHB
TCTH03 Trang TCTHA
LOP
MALOP TENLOP
SIS
O
TCTHA TCTH32A 80
TCTHB TCTH32B 65
TCTHC TCTH32C 82
n
1

Cấu trúc dữ liệu quan hệ (tt)
Cấu trúc dữ liệu quan hệ (tt)

Bậc (degree): là số lượng các thuộc tính của quan hệ.
Số thuộc tính
Số thuộc tính
Bậc của quan hệ
Bậc của quan hệ
1
1
quan hệ nhất phân (unary relation)
quan hệ nhất phân (unary relation)
2
2
quan hệ nh
quan hệ nh



phân (binary relation)
phân (binary relation)
3
3
quan hệ tam phân (ternary relation)
quan hệ tam phân (ternary relation)
n
n
quan hệ n phân (ternary relation)
quan hệ n phân (ternary relation)
14

Lượng số (cardinality): số lượng các bộ của quan hệ. Lượng
số sẽ thay đổi khi thêm hay xoá các tuple (hàng).

Khoá quan hệ (Relational Keys)
Khoá quan hệ (Relational Keys)

Siêu khoá (superkey) là một thuộc tính hoặc một tập các
thuộc tính dùng để xác định duy nhất một bộ của quan hệ

Một siêu khoá có thể chứa thêm các thuộc tính không cần
thiết để xác định duy nhất một bộ

Siêu khoá hiển nhiên là tập tất cả các thuộc tính của quan
hệ

Ví dụ: Xét 1 lược đồ quan hệ
STUDENT (StudentID, FirstName, LastName, BirthDate,
Major, SSN, ClassID)


Xác định các siêu khóa có thể có của R???
15

Các loại khoá quan hệ (Relational Keys)
Các loại khoá quan hệ (Relational Keys)

Khoá dự tuyển (candidate key): là một siêu khoá K mà
không có một tập con thực sự bất kỳ K’ ⊂ K lại là một siêu
khoá

Tính duy nhất (uniqueness): các giá trị của K trong các bộ
của r là duy nhất

Tính tối giản (irreducibility hay minimality) không có tập
con thực sự K’ ⊂ K lại có tính duy nhất.

Ví dụ: khóa dự tuyển của quan hệ STUDENT???
16

Các loại khoá quan hệ (Relational Keys)
Các loại khoá quan hệ (Relational Keys)

Khóa đơn (simple key): là khóa có một thuộc tính.

Khóa phức hợp (composite key): là khóa có nhiều hơn một
thuộc tính

Khóa chính (primary key): là một khóa dự tuyển được chọn
để xác định duy nhất một bộ của quan hệ. Khóa chính có thể

chỉ có 1 thuộc tính hay khóa phức hợp.

Ví dụ: khóa chính của quan hệ SINHVIEN???
SINHVIEN(Masv, Tensv, Ngaysinh, Phai, Malop)
17


Định nghĩa khóa theo quan hệ toán học:

Khóa (key) của R(U) với U={A
1
, A
2
,. . ,A
m
} là một tập con
K= {A
j1
, A
j2
,…, A
jn
} với j
1
, j
2
, j
n
là các số nguyên phân biệt
nằm trong khoảng từ 1 đến m, phải thỏa mãn đồng thời 2

điều kiện sau:

∀r(R), ∀ t
1
, t
2
∈ r, nếu t
1
≠ t
2
thì t[K
1
] ≠ t[K
2
]

Không tồn tại K’ ⊂ K sao cho K’ thỏa mãn điều kiện (1)
18
Các loại khoá quan hệ (Relational Keys)
Các loại khoá quan hệ (Relational Keys)


Các khóa dự tuyển (candidate key) còn lại sau khi chọn khóa
chính được gọi là khóa khác (alternate key)

Khóa ngoại (foreign key): là 1 thuộc tính hay 1 tập thuộc tính của
1 quan hệ tham chiếu đến khóa dự tuyển của 1 quan hệ khác hay
của cùng 1 quan hệ.

Khóa mượn (borrowed key): là 1 khóa dự tuyển có chứa khóa

ngoại

Xét các lược đồ quan hệ sau:
Employee(Emp_ID, Name, Dept_Name, Salary)
Training(Emp_ID, Course, Date_Completed)
Department(Dept_Name, Location,Fax)
Xác định khóa chính, khóa ngoại ??
19
Các loại khoá quan hệ (Relational Keys)
Các loại khoá quan hệ (Relational Keys)

Mô hình dữ liệu quan hệ
Mô hình dữ liệu quan hệ
(Relational data model)
(Relational data model)
Ví dụ: Ta hãy xem lược đồ quan hệ sau:

Xe(SODANGBO,QUICACH,
HINHDANG,MAUSAC,SOSUON,SOMAY,MAXE,QUOCGIA)

Siêu khóa: (SOSUON,QUICACH),

Khóa chỉ định: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY),
(MAXE)

Khóa chính: MAXE

Thuộc tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE

Thuộc tính không khóa: QUICACH, HINHDANG, MAUSAC


Khóa của Sv là (MASV), Khoá của Mh là (MAMH), khoá của Kh là
(MAKHOA), khóa của Kq là (MASV,MAMH) khóa của Lop là
MALOP, trong Lop thuộc tính MAKHOA là khóa ngoại
20

Các ràng buộc toàn vẹn
Các ràng buộc toàn vẹn
(Integrity constraints)
(Integrity constraints)

Một số ràng buộc dựa vào các quy tắc nghiệp vụ. Các ràng buộc
này thường nằm trong phần requirement Document của ứng dụng.

Nhân viên không thể có lương cao hơn giám đốc

Sinh viên phải thỏa mãn các điều kiện tiên quyết mới được đăng
ký môn học đó

Các ràng buộc khác thường là ràng buộc type và domain, xuất hiện
trong sơ đồ thiết kế và được thiết kế bởi nhà thiết kế CSDL.

Ngay khi các ràng buộc đã được xác định trong lược đồ thì trách
nhiệm của các DBMS là phải bảo đảm sao cho chúng không bị vi
phạm khi có bất kỳ giao dịch (transaction) nào được thực thi trong
CSDL đó.
21

Toàn vẹn dữ liệu
Toàn vẹn dữ liệu

(Data integrity)
(Data integrity)

Mục đích của ràng buộc (constraint): để duy trì tính chính
xác (accurary) và toàn vẹn dữ liệu (data integrity) trong
CSDL.

Các loại toàn vẹn dữ liệu :

Ràng buộc thực thể - Entity integrity

Ràng buộc miền giá trị - Domain integrity

Ràng buộc toàn vẹn - Referential integrity

Ràng buộc do người dùng định nghĩa - User-defined
integrity
22

Bảo toàn thực thể
Bảo toàn thực thể
(Entity Integrity)
(Entity Integrity)

Bảo toàn thực thể dùng để bảo đảm tính duy nhất của mỗi
hàng trong bảng.

Để bảo toàn thực thể thì mỗi quan hệ có 1 khóa chính và
giá trị của khóa chính phải luôn hợp lệ.


“Trong một quan hệ cơ sở, mọi thuộc tính khóa chính
không được có giá trị rỗng (null)”

Được thể hiện trong SQL server thông qua các ràng buộc sau:

Ràng buộc khóa chính (primary key)

Ràng buộc duy nhất (unique)

Chỉ mục (index)

Thuộc tính identity
23

Bảo toàn miền
Bảo toàn miền
(Domain Integrity)
(Domain Integrity)

Bảo toàn miền để bảo đảm tính hợp lệ của dữ liệu trong một
thuộc tính.

Việc xác định miền giá trị của các thuộc tính bao gồm một
số các yêu cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ
liệu, khuôn dạng của dữ liệu, các giá trị giới hạn cho phép,
ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng
hay không.

“Tất cả giá trị xuất hiện trong một thuộc tính của
một quan hệ phải cùng một miền trị”

24


Được thể hiện trong SQL server thông qua các ràng buộc
sau:

Kiểu dữ liệu (Data types)

Ràng buộc CHECK

Định nghĩa RULE, DEFAULT, NOT NULL.

Giá trị Null dùng để chỉ:

Giá trị chưa biết của thuộc tính

Giá trị đã biết nhưng đang bị thiếu

Giá trị null khác số 0 hay chuỗi rỗng “”
25
Bảo toàn miền
Bảo toàn miền
(Domain Integrity)
(Domain Integrity)

×