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