1
Mô hình cơ sở dữ liệu quan hệ
(The Relational Database Model)
Chương 2
2
Giới thiệu
Mô hình Cơ sở dữ liệu Quan hệ (gọi tắt là Mô
hình Quan hệ) do E.F Codd đề xuất năm 1971
Mô hình Quan hệ thể hiện dữ liệu dưới góc độ logic
Mô hình Quan hệ bao gồm:
Các khái niệm nhằm mô tả dữ liệu dưới dạng dòng và cột
như quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại,
Các phép toán thao tác với dữ liệu_ Đại số quan hệ
Ràng buộc toàn vẹn quan hệ
Các Hệ quản trị CSDL quan hệ (RDBMS) được xây
dựng dựa trên lý thuyết mô hình quan hệ.
3
Các khái niệm
Quan hệ / bảng
Thuộc tính
Bộ
Lược đồ quan hệ
Khóa
4
Quan hệ
Dữ liệu lưu trữ trong CSDL Quan hệ được tổ
chức thành các Quan hệ (relation)
Quan hệ (relation) thể hiện ra như là bảng
(table)
Một quan hệ có :
Một tên
Tập hợp các thuộc tính (attribute)
Tập hợp các bộ (tuple)
5
Quan hệ và bảng
Thuật ngữ tương đương :
•
Quan hệ, bộ, thuộc tính (Relation, tuple, attribute)
•
Bảng, dòng, cột (Table, row, column)
MASV Hoten Phai QueQuan
99001 Nguyễn Tuấn 1 TP HCM
99002 Trần Long 1 Da Nang
99003 Phạm Hồng 0 Long An
99004 Lê Văn 1 Binh Thuan
99005 Nguyễn Nam 1 Tp HCM
Quan hệ
sinhvien
6
Quan hệ và bảng
MASV MAMH MAKHOA DIEMTHI
99001 CSDL CNTT 3.0
99002 CSDL CNTT 8.0
99001 THVP CNTT 6.0
99005 THVP AV 5.0
Quan hệ
ketquaHT
7
Thuộc tính
Một thuộc tính bao gồm :
Tên thuộc tính
Tên phân biệt
Giúp diễn giải ý nghĩa thuộc tính (thuộc tính của thực thể,
hay mối kết hợp)
Kiểu dữ liệu thuộc tính
Số nguyên, số thực, văn bản, logic,…
Miền giá trị xác định
Có thể bị áp đặt bởi qui tắc nghiệp vụ, hay ràng buộc dữ
liệu
Có thể NULL
8
Bộ và quan hệ
Mỗi bộ (dòng) là một tổ hợp các giá trị tương ứng
với các thuộc tính của quan hệ
mô tả về một thực thể , hay một mối kết hợp có trong
thế giới thực
Tập các bộ trong một quan hệ thay đổi theo thời
gian
Một tập các bộ xác định tại một thời điểm, gọi là một thể
hiện của lược đồ quan hệ (hay quan hệ)
Không có 2 bộ trùng nhau trong một quan hệ
Trật tự của các bộ (và các thuộc tính) là không
quan trọng đối với DBMS.
9
Lược đồ Quan hệ
Lược đồ quan hệ - relation schema
Mô tả cấu trúc của quan hệ
Các thuộc tính và Mối liên hệ giữa các thuộc tính
Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý nghĩa
của nó.
Vd, tân từ: Mỗi Sinh viên thuộc một khoa, học một môn học
thì có kết quả thi môn học đó.
Ký hiệu LĐQH
Ketqua( MASV, MAMH, MAKHOA, DIEMTHI)
Ký hiệu r(Ketqua) là một thể hiện của LĐQH trên.
Lược đồ CSDL
Tập hợp các lược đồ quan hệ trong cùng một CSDL
10
Khóa
(Key hay candidate key)
Gọi S là một tập các thuộc tính của lược đồ quan hệ R
S được gọi là một siêu khóa (superkey) của lược đồ quan hệ
R, nếu với hai bộ bất kỳ trong R thì giá trị của các thuộc tính
trong S là khác nhau
Siêu khoá có ít thuộc tính nhất được gọi là khóa (key) hay
khóa dự tuyển (candidate key)
Một lược đồ quan hệ có thể có nhiều khóa (khóa dự tuyển)
Một khóa được chọn để cài đặt gọi là khóa chính (primary
key)
Không chứa giá trị NULL
khóa ngoại (foreign key) là thuộc tính của LĐQH này nhưng
lại là khóa chính của LĐQH khác
Khóa phức (composite key) là khóa có nhiều hơn một thuộc
tính
Thuộc tính khóa và thuộc tính không khóa
11
Khóa _ ví dụ 1
Monhoc(Mamon, Tenmon, Sotiet)
rMonhoc
Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
Khóa (khóa dự tuyển, khóa chính) : {Mamon}
Mamon Tenmon Sotiet
THVP Tin hoc văn phòng 30
LTC Lập trình C 60
CSDL1 Co so du lieu 45
CSDL2 Co so du lieu 45
12
Khóa _ ví dụ 2
Ketqua( MaSV, MaMH, Makhoa, Diemthi)
rKQ
Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,MaKhoa},…
Khóa (khóa dự tuyển, khóa chính , khóa phức): {MaSV,
MaMH}
Khóa ngoại : {MaMH} , {MaKhoa}
MASV MAMH MAKHOA DIEMTHI
99001 CSDL CNTT 3.0
99002 CSDL CNTT 8.0
99001 THVP CNTT 6.0
99005 THVP AV 6.0
13
Khóa _ ví dụ 3
Sinhvien(MaSV, Hoten, Phai, soCMND)
rSV
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Khóa (khóa dự tuyển): {MaSV} , {soCMND}
Khóa chính : {MaSV}
MaSV Hoten Phai soCMND
99001 Nguyen van anh Nam 01245012
99002 Tran Le Tuan Nam 02209875
99003 Nguyen Thi Hong Nu 04563711
99004 Do van Thuan Nam 76876768
14
Đại số quan hệ
Khái niệm
Các phép toán đại số quan hệ
Ví dụ
15
Giới thiệu
Đại số quan hệ (và phép tính quan hệ) được
định nghĩa bởi Codd 1971
được xem như là nền tảng của các ngôn ngữ
quan hệ khác như SQL
Là ngôn ngữ thủ tục bậc cao
Được dùng để chỉ ra cách xây dựng một quan hệ mới
từ một hay nhiều quan hệ trong DB
Bao gồm tập các phép toán thao tác trên các
quan hệ
16
Các phép toán (operation)
5 phép toán cơ bản
Phép chọn (selection)
Phép chiếu (projection)
Phép hợp (union)
Phép trừ (set difference)
Phép tích Descartes (Cartesian product)
3 phép toán suy dẫn*
Phép kết (Join)
Phép giao (Intersection)
Phép chia (Division)
(*Có thể được biểu diễn dưới dạng các phép toán cơ bản)
17
Ký hiệu
Quan hệ r là một thể hiện của lược đồ quan
hệ R(A1, A2, …, Am)
Điều kiện F là 1 biểu thức luận lý có giá trị
true/false. F bao gồm:
Các toán hạng là hằng hoặc tên thuộc tính
Các phép toán so sánh =, ≠, <, ≤, >, ≥
Các phép toán luận lý not (¬), and (∧), or (∨)
18
Phép chọn (selection)
Phép chọn (selection)
Phép chọn trên quan hệ r(R) theo điều kiện
F, ký hiệu là r(F) hay r:F , cho kết quả là 1
quan hệ bao gồm các bộ của r thỏa mãn
điều kiện F
r(F) = r:F = { t |t ∈r và F(t) = true }
18
* Phép chọn và phép chiếu là phép toán một toán hạng
19
Phép chọn (selection) – ví dụ 1
Phép chọn (selection) – ví dụ 1
Relation r
A B C D
α
α
β
β
α
β
β
β
1
5
12
23
7
7
3
10
r(A=B ^ D>5)
A B C D
α
β
α
β
1
23
7
10
r(A=B)
A B C D
α
β
β
α
β
β
1
12
23
7
3
10
20
Phép chiếu (Projection)
Phép chiếu (Projection)
Cho quan hệ r trên R(A1, A2, ,Am) và tập
con các thuộc tính X={Aj1, Aj2, …, Ajn} với
j1, j2, , jn là các số nguyên phân biệt nằm
trong khoảng từ 1 đến m
Phép chiếu r trên tập thuộc tính X cho kết
quả là 1 quan hệ
r[X] = r.X = {t | ∃ u∈ r sao cho t = u[X]}
Phép chiếu loại bỏ những bộ trùng nhau
20
21
Phép chiếu (Projection) – ví dụ 1
Phép chiếu (Projection) – ví dụ 1
Relation r
A B C
α
α
β
β
10
20
30
40
1
2
1
2
A C
α
α
β
β
1
2
1
2
r[A,C]
22
Phép hợp (union)
Phép hợp (union)
Phép hợp của 2 quan hệ r và s
r + s = r ∪ s = { t | t ∈ r ∨ t ∈ s}
trong đó: r và s là hai quan hệ khả hợp
r + s
23
Phép hiệu (Set Difference)
Phép hiệu của 2 quan hệ r và s
r - s = { t | t ∈ r ∧ t ∉ s }
trong đó: r và s là hai quan hệ khả hợp
r - s
24
Phép giao (Intersection)
Phép giao của 2 quan hệ r và s
r
*
s = r ∩ s = {t | t ∈ r ∧ t ∈ s}
trong đó: r và s là hai quan hệ khả hợp
Hai quan hệ r và s là khả hợp ( union-compatible) khi :
•
Có cùng số thuộc tính
•
Các thuộc tính tương ứng có cùng miền giá trị
r
*
s
25
Bài tập
Cho 2 quan hệ định nghĩa trên 2 lược đồ Quan hệ :
Customer( Cuscode, cusName, cusPhone, City)
Branch( BraCode, BraName, BraPhone, City)
Hiển thị danh sách các thành phố có khách hàng
và đồng thời có chi nhánh ?
Hiển thị danh sách các thành phố có khách hàng
và không có chi nhánh ?