1
Chương 2
2
Nội dung
Các định nghĩa của mô hình dữ liệu quan hệ
Quan hệ
Lược đồ quan hệ
Ràng buộc bảo toàn Bảo toàn thực thể
Các loại khóa
Bảo toàn tham chiếu
Bảo toàn miền
3
Mô hình dữ liệu quan hệ (Relational data model)
Có nhiều loại mô hình dữ liệu khác nhau, nhưng thông dụng nhất là mô hình dữ liệu quan hệ.
Được đề xuất bởi E.F. Codd năm 1970.
Hầu hết các DBMS đều sử dụng mô hình này
nghệ mới như big data,…
Nhưng hiện nay dữ liệu đang được lưu trữ theo công
4
Mô hình dữ liệu quan hệ
Tập hợp các quan hệ (bảng)
Cấu trúc của bảng
Mối quan hệ giữa các bảng Quy luật bảo toàn dữ liệu
Được xây dựng theo lý thuyết quan hệ toán
học
Nội dung của bảng
Cấu trúc quan hệ (bảng)
5
Mỗi quan hệ được xem như 1 bảng (table)
có liên quan với nhau.
Mỗi hàng (row) biểu diễn 1 tập các giá trị dữ liệu
kiểu dữ liệu duy nhất
Mỗi cột (column) được gọi là 1 attribute/field có
6
Ví dụ
7
Một số khái niệm cơ bản
Domain Database schema Keys
8
Domain
Domain D là 1 tập các giá trị cơ bản (atomic
values)
Domain thường được xác định bằng kiểu dữ
liệu (data type) và nên đặt tên cho mỗi domain để dễ tham chiếu đến
Lượng số (cardinality) của 1 domain là số giá
trị có thể có trong domain đó, ký hiệu |D|
9
Ví dụ về Domain
Local_phone_numbers: tập hợp các số điện thoại
có 8 chữ số
Names: tập hợp các chuỗi ký tự biểu diễn tên của
người.
Ages: tập hợp các tuổi của một người
Lượng số của mỗi domain??
10
Quan hệ toán học (mathematical relation) là gì?
Một quan hệ thực tế là 1 tập con của tích một số
tập hợp 𝐴1, 𝐴2,…, 𝐴𝑛.
Mỗi thuộc tính Ai có 1 domain dom(Ai)
𝑟 𝑅 ⊆ (𝑑𝑜𝑚 𝐴1 𝑥 𝑑𝑜𝑚 𝐴2 x …. X 𝑑𝑜𝑚 𝐴𝑛 )
Tổng số hàng của tích các n domain sẽ là:
|dom(A1)| x |dom(A2)|x …x |dom(An)|
11
a
1
b
X
2
=
c
?
d
3
A
B
A x B
Liệt kê tất cả các quan hệ có thể được tạo ra từ các tập A,B trên?
12
Ví dụ: Quan hệ toán học
Cho các tập hợp A = students; B = class.
R = {(a,b) | student a is enrolled in class b}
Nếu A có 10 student, B có 4 class thì sẽ có tất
cả 10 x 4 = 40 phần tử của AxB nhưng sô student học lớp b tối đa là 10 và có thể không có student nào.
13
Lược đồ quan hệ (Relation schema)
Lược đồ quan hệ R được ký hiệu R(𝑨𝟏, 𝑨𝟐,…, 𝑨𝒏)
với 𝐴1, 𝐴2,… 𝐴𝑛 là danh sách các thuộc tính. Mỗi thuộc tính Ai đều có 1 domain tương ứng.
hệ (relation instance)
Domain của thuộc tính Ai được ký hiệu dom(Ai) Lược đồ quan hệ được dùng để mô tả các quan
14
Lược đồ quan hệ (Relation schema)
Bậc (degree) của quan hệ là số thuộc tính của
lược đồ quan hệ đó.
Lượng số (cardinality) là 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).
15
Ví dụ
Xét lược đồ quan hệ STUDENT
STUDENT(Name, Ssn, Home_phone, Address, Age, Gpa)
Có bao nhiêu thuộc tính, domain?
16
Ví dụ
17
Các tính chất của quan hệ
Thứ tự các giá trị trong 1 hàng
Hàng có n cột là 1 danh sách có thứ tự của n giá trị. Ví dụ: t=< Dick Davidson, 422-11-2320,NULL, 3452 Elgin
Road, (817)749-1253, 25, 3.53>
Thứ tự của thuộc tính và giá trị là không quan trọng
chừng nào mối tương quan giữa thuộc tính và giá trị
vẫn còn được duy trì. Hàng được biểu diễn như tập hợp
của (
18
Ví dụ
Hai hàng là đồng nhất
19
Các tính chất của quan hệ
Mỗi giá trị trong hàng đều là đơn trị (atomic value).
Giá trị NULL được dùng để biểu diễn giá trị chưa biết
hay không thể áp dụng được cho 1 hàng nào đó.
Ví dụ:
Vì sinh viên không có văn phòng làm việc nên có giá trị
NULL ở thuộc tính office phone.
Một số sinh viên tuy có số home phone nhưng chưa
biết để nhập liệu nên thuộc tính home phone là NULL.
20
Cơ sở dữ liệu quan hệ (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
21
Siêu khóa (super key)
Là một thuộc tính hay 1 tập thuộc tính của 1 quan hệ thỏa mãn tính chất là không có hai nào của quan hệ có cùng tổ hợp giá trị của các thuộc tính này.
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 hàng Siêu khoá hiển nhiên (trivial super key) là tập
tất cả các thuộc tính của quan hệ
22
Ví dụ siêu khóa
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???
23
Các loại khóa trong quan hệ
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á
các bộ của r là duy nhất
Tính duy nhất ( uniqueness): các giá trị của K trong
con thực sự K’ K lại có tính duy nhất.
Khóa dự tuyển của quan hệ STUDENT???
Tính tối giản (Minimal superkey): không có tập
24
Ví dụ
Xác định khóa dự tuyển cho quan hệ CAR?
25
Các loại thuộc tính
thuộc tính tham gia vào khoá dự tuyển
Thuộc tính khoá ( key attribute, prime attribute): là
tính không tham gia vào khóa dự tuyển
Thuộc tính không khóa (non-key attribute): là thuộc
một thuộc tính
Khóa phức hợp (composite key): là khóa có nhiều hơn
26
Khóa chính PK (primary key)
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)
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ệ STUDENT???
27
Khóa ngoại FK (foreign key)
Dùng để xác định mối liên hệ giữa 2 quan hệ Khóa ngoại (FK) là 1 tập thuộc tính trong quan hệ R1
tham chiếu đến quan hệ R2 nếu thỏa mãn các quy tắc sau: 1. Các thuộc tính trong FK có cùng domain với thuộc tính
khóa chính PK của R2.
2. Giá trị của FK trong hàng t1 của r1(R1) hoặc là 1 trong
các giá trị của PK trong r2(R2) hay NULL. Khi 𝑡1 𝐹𝐾 = 𝑡2[𝑃𝐾] : hàng t1 tham chiếu đến hàng t2
28
Khoá ngoại
29
30
Ví dụ
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 ??
Xét các lược đồ quan hệ sau:
31
Ràng buộc của mô hình quan hệ
Trong 1 DB thường có nhiều quan hệ
các giá trị trong cùng cột,..
Trong mỗi quan hệ có ràng buộc giữa các hàng,
tắc nghiệp vụ
Giữa các quan hệ có thể có ràng buộc lẫn nhau. Các ràng buộc đều được suy diễn từ các quy
32
Các ràng buộc toàn vẹn (Integrity constraints)
đồ thì trách nhiệm của 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 đó.
Ngay khi các ràng buộc đã được xác định trong lược
33
Toàn vẹn dữ liệu (Data integrity)
chính xác (accurary) và toàn vẹn dữ liệu (data integrity) trong CSDL.
Mục đích của ràng buộc (constraint): để duy trì tính
Ba loại toàn vẹn dữ liệu chính:
Entity integrity Domain integrity Referential integrity
34
Bảo toàn thực thể (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ệ.
không được có giá trị rỗng (null)”
“Trong một quan hệ cơ sở, mọi thuộc tính khóa chính
35
Bảo toàn thực thể (Entity Integrity)
Được thể hiện trong DBMS 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)
Thuộc tính identity
36
Bảo toàn miền (Domain Integrity)
Bảo toàn miền để bảo đảm tính hợp lệ của dữ
liệu trong 1 thuộc tính “Tất cả giá trị xuất hiện trong 1 thuộc tính của 1
quan hệ phải cùng 1 miền trị”
37
Bảo toàn miền (Domain Integrity)
sau:
Được thể hiện trong DBMS thông qua các ràng buộc
Ràng buộc CHECK
Kiểu dữ liệu (Data types)
Định nghĩa RULE, DEFAULT, NOT NULL.
38
Toàn vẹn tham chiếu Referential integrity
hệ giữa các bảng khi thêm hay xóa các hàng trong bảng.
Mục đích: duy trì tính nhất quán (consistency)
giữa các bộ của 2 quan hệ.
Toàn vẹn tham chiếu dùng để xác định mối quan
39
Toàn vẹn tham chiếu Referential integrity
Tính toàn vẹn tham chiếu được thể hiện thông qua 3
quy tắc sau: Không thể thêm các bản ghi vào bảng quan hệ nếu
không có bản ghi tương ứng trong bảng chính.
Không thể thay đổi giá trị trong bảng chính nếu làm cho các bản ghi tương ứng trong bảng quan hệ bị mất tham chiếu
Không thể xóa các bản ghi trong bảng chính nếu nó
được tham chiếu bởi 1 số bản ghi trong bảng quan hệ
40
Toàn vẹn tham chiếu (Reference Integrity)
bộ của 2 quan hệ
Mục đích: duy trì tính nhất quán (consistency) giữa các
“ Nếu tồn tại 1 khóa ngoại trong 1 quan hệ, thì mỗi giá trị khóa ngoại phải tương ứng với 1 giá trị khóa chính trong một quan hệ khác (hoặc trong cùng quan hệ này) hoặc giá trị khóa ngoại phải là giá trị rỗng”
41
Ví dụ bảo toàn tham chiếu
Constraints
SQL server supports some constraints :
Default
Domain integrity
Check
Unique
Entity integrity
Primary key
Referential integrity
Foreign key
42
43
Tài liệu tham khảo và bài tập
Bài tập Chương 3 sách Fundamentals of DB
systems – Trang 80 Câu 3.13, 3.14, 3.15, 3.16, 3.19