Tài liệu Mô hình dữ liệu quan hệ: Chương 2
1
Nội dung
Các định nghĩa của mô hình dữ liệu quan hệ
Quan hệ
Lược đồ quan hệ
Các loại khóa
Ràng buộc bảo toàn
Bảo toàn thực thể
Bảo toàn tham chiếu
Bảo toàn miền
2
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
Nhưng hiện nay dữ liệu đang được lưu trữ theo công
nghệ mới như big data,
3
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
Nội dung 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
4
Cấu trúc quan hệ (bảng)
Mỗi quan hệ được xem như 1 bảng (table)
Mỗi hàng (row) biểu diễn 1 tập các giá trị dữ liệu
có liên quan với nhau.
Mỗi cột (column) được gọi là 1 attribute/field có
kiểu dữ liệu duy nhất
5
Ví dụ 6
Một ...
43 trang |
Chia sẻ: putihuynh11 | Lượt xem: 1047 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Mô hình dữ liệu quan hệ, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chương 2
1
Nội dung
Các định nghĩa của mô hình dữ liệu quan hệ
Quan hệ
Lược đồ quan hệ
Các loại khóa
Ràng buộc bảo toàn
Bảo toàn thực thể
Bảo toàn tham chiếu
Bảo toàn miền
2
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
Nhưng hiện nay dữ liệu đang được lưu trữ theo công
nghệ mới như big data,
3
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
Nội dung 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
4
Cấu trúc quan hệ (bảng)
Mỗi quan hệ được xem như 1 bảng (table)
Mỗi hàng (row) biểu diễn 1 tập các giá trị dữ liệu
có liên quan với nhau.
Mỗi cột (column) được gọi là 1 attribute/field có
kiểu dữ liệu duy nhất
5
Ví dụ 6
Một số khái niệm cơ bản
Domain
Database schema
Keys
7
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|
8
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??
9
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)|
10
11
1
2
3
A B A x B
a
b
c
d
X = ?
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?
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 thi ̀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 va ̀có thê ̉không
có student nào.
12
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.
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
hệ (relation instance)
13
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).
14
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?
15
Ví dụ 16
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 ( ,)
17
Ví dụ
Hai hàng là đồng nhất
18
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.
19
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
20
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ệ
21
Ví dụ siêu kho ́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???
22
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á
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 (Minimal superkey): không có tập
con thực sự K’ K lại có tính duy nhất.
Khóa dự tuyển của quan hệ STUDENT???
23
Ví dụ 24
Xác định khóa dự tuyển cho quan hệ CAR?
Các loại thuộc tính
Thuộc tính khoá ( key attribute, prime attribute): là
thuộc tính tham gia vào khoá dự tuyển
Thuộc tính không khóa (non-key attribute): là thuộc
tính không tham gia vào khóa dự tuyển
Khóa phức hợp (composite key): là khóa có nhiều hơn
một thuộc tính
25
Khóa chính PK (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ệ STUDENT???
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)
26
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
27
Khoá ngoại 28
29
Ví dụ
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 ??
30
Ràng buộc của mô hình quan hệ
Trong 1 DB thường có nhiều quan hệ
Trong mỗi quan hệ có ràng buộc giữa các hàng,
các giá trị trong cùng cột,..
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
tắc nghiệp vụ
31
Các ràng buộc toàn vẹn
(Integrity constraints)
Ngay khi các ràng buộc đã được xác định trong lược
đồ 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 đó.
32
Toàn vẹn dữ liệu
(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.
Ba loại toàn vẹn dữ liệu chính:
Entity integrity
Domain integrity
Referential integrity
33
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ệ.
“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)”
34
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
35
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ị”
36
Bảo toàn miền (Domain Integrity)
Được thể hiện trong DBMS 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.
37
Toàn vẹn tham chiếu
Referential integrity
Toàn vẹn tham chiếu dùng để xác định mối quan
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ệ.
38
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ệ
39
Toàn vẹn tham chiếu
(Reference Integrity)
Mục đích: duy trì tính nhất quán (consistency) giữa các
bộ của 2 quan hệ
“ 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”
40
Ví dụ bảo toa ̀n tham chiếu 41
Constraints
SQL server supports some constraints :
Default
Check
Unique
Primary key
Foreign key
42
Domain integrity
Entity integrity
Referential integrity
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
43
Các file đính kèm theo tài liệu này:
- 1_chuong_2_mo_hinh_du_lieu_quan_he_2_6233_1997411.pdf