Chương 3
Mô hình dữ liệu quan hệ
(The Relational Database Model)
1
Quá trình thiết kế CSDL
DBMS
Bài
toán
Thực tế
Mô hình
E-R
Mô hình
CSDL
Quan hệ
DB
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. Cung
cấp một cấu trúc dữ liệu đơn giản và đồng bộ.
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
Giới thiệu
Mô hình này 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ệ.
4
Quan hệ (Relation)
• Các thông tin lưu trữ trong CSDL được tổ chức thành bảng
(table) 2 chiều gọi là quan hệ
5
Quan hệ (Relation)
Quan hệ (thể hiện cho một tập thực thể) gồm:
- Tên của quan hệ: NHANVIEN.
- Tập hợp các cột (thể hiện các thuộc tính): Cố định, được đặt tên, có kiểu
dữ liệu riêng.
- Tập hợp các dòng (thể hiện một thực thể): có tính chất thay đổi theo
thời gian.
1 cột là 1 thuộc tính của nhân viên
TENNV
HONV
NGSINH
DCHI
PHAI
LUONG
PHG
Tung
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
5
Hang
Bui
07/19/1968
332 NTH Q1
Nu
25000
4
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
4
Hung
Nguyen
09/15/1962
Ba Ria VT
Nam
38000
5
1 dòng là 1 nhân viên
Tên quan hệ là NHANVIEN
6
Thuộc tính (Attribute)
Tên các cột của quan hệ.
Mô tả ý nghĩa cho các giá trị tại cột đó.
Tất cả các dữ liệu trong cùng 1 một cột đều có chung một
kiểu dữ liệu.
Thuộc tính
TENNV
HONV
NGSINH
DCHI
PHAI
LUONG
PHG
Tung
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
5
Hang
Bui
07/19/1968
332 NTH Q1
Nu
25000
4
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
4
Hung
Nguyen
09/15/1962
Ba Ria VT
Nam
38000
5
7
Bộ (Tuple)
• Là các dòng của quan hệ (trừ dòng tiêu đề - tên của các thuộc
tính).
• Thể hiện dữ liệu cụ thể của các thuộc tính trong quan hệ.
<Tung, Nguyen, 12/08/1955, 638 NVC, Q5, Nam, 40000, 5>
Dữ liệu cụ thể
của thuộc tính
8
Bộ (Tuple)
* Thứ tự các bộ trong quan hệ là không quan trọng
HONV
TENNV
NGSINH
DCHI
PHAI
LUONG
PHG
Nguyen
Tung
12/08/1955
638 NVC Q5
Nam
40000
5
Bui
Hang
07/19/1968
332 NTH Q1
Nu
25000
4
Le
Nhu
06/20/1951
291 HVH QPN
Nu
43000
4
Nguyen
Hung
09/15/1962
null
Nam
38000
5
• Thứ tự giữa các giá trị trong một bộ là quan trọng
Bộ <Nguyen, Tung, 12/08/1955, 638 NVC Q5, Nam, 40000, 5>
khác
Bộ <Nguyen, Tung, 12/08/1955, 638 NVC Q5, 40000, Nam, 5>
9
Bộ (Tuple)
- Mỗi giá trị trong một bộ:
+ Hoặc là một giá trị nguyên tố.
+ Hoặc là một giá trị rỗng (null).
- Không có bộ nào trùng nhau.
10
Lược đồ (relation schema)
Lược đồ quan hệ:
Ký hiệu: R(A1, A2,..., An)
R: Tên của quan hệ.
A1, A2,…, An: Danh sách các thuộc tính của quan hệ.
Lược đồ quan hệ
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)
Tập hợp các thuộc tính
11
Lược đồ (relation schema)
- Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả ý
nghĩa của nó.
Ví dụ:
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:
Ketqua( MASV, MAMH, MAKHOA, DIEMTHI)
12
Lược đồ (relation schema)
- Lược đồ Cơ sở dữ liệu : Tập hợp các lược đồ quan hệ trong
cùng một Cơ sở dữ liệu.
Lược đồ CSDL
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHG)
PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC)
DIADIEM_PHG(MAPHG, DIADIEM)
THANNHAN(MA_NVIEN, TENTN, PHAI, NGSINH, QUANHE)
DEAN(TENDA, MADA, DDIEM_DA, PHONG)
13
Kiểu dữ liệu và Miền giá trị (Domain)
- Các thuộc tính được phân biệt qua tên gọi và phải thuộc vào một
kiểu dữ liệu nhất đònh (số, chuỗi, ngày tháng, logic, hình ảnh,…).
Kiểu dữ liệu ở đây là kiểu đơn. Trong cùng một đối tượng không
được có hai thuộc tính cùng tên.
-Thông thường mỗi thuộc tính chỉ chọn lấy giá trò trong một tập con
của kiểu dữ liệu và tập hợp con đó gọi là miền giá trò của thuộc tính
đó.
- Ví dụ :
Thuộc tính ngày trong tháng thì có kiểu dữ liệu là số nguyên,
miền giá trò của nó là 1 đến (tối đa là) 31.
Điểm thi của sinh viên chỉ là các số nguyên từ 0 đến 10.
Họ tên: Tập hợp các dãy chữ cái có độ dài <= 30.
Tuổi: Tậ p các số ngun nằm trong khoảng từ 1 đến 80.
Giới tính: Tập hợp gồm hai giá trị “Nam”, “N ữ”.
14
Ký hiệu
• Lược đồ quan hệ
– Cho A1, A2, …, An là các thuộc tính
– Có các miền giá trị D1, D2, …, Dn tương ứng
– Ta có:
Ký hiệu: R(A1:D1, A2:D2, …, An:Dn) là một lược đồ quan hệ.
Bậc của lược đồ quan hệ là số lượng thuộc tính trong lược đồ
Ví dụ:
NHANVIEN(MANV:integer, TENNV:string, HONV:string,
NGSINH:date, DCHI:string, PHAI:string, LUONG:integer, PHONG:integer)
NHANVIEN là một lược đồ bậc 8 mô tả đối tượng nhân
viên
MANV là một thuộc tính có miền giá trị là số nguyên
TENNV là một thuộc tính có miền giá trị là chuỗi ký tự15
Ký hiệu
- Một quan hệ r của lược đồ quan hệ R(A1, A2, …, An),
ký hiệu r(R), là một tập các bộ r = {t1, t2, …, tk}
-Trong đó mỗi ti là 1 danh sách có thứ tự của n giá trị
ti=<v1, v2, …, vn>
-Mỗi vj là một phần tử của miền giá trị DOM(Aj) hoặc giá trị rỗng.
- Giá trị thứ i của bộ t, tương ứng với thuộc tính Ai được ký hiệu là
t[Ai] .
TENNV
HONV
NGSINH
DCHI
PHAI
LUONG
PHG
t1
Tung
Nguyen
12/08/1955
638 NVC Q5
Nam
40000
5
t2
Hang
Bui
07/19/1968
332 NTH Q1
Nu
25000
4
t3
Nhu
Le
06/20/1951
291 HVH QPN
Nu
43000
4
t4
Hung
Nguyen
09/15/1962
null
Nam
38000
5
vi
16
Khóa (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.
17
Khóa (Key)
* Lược đồ:
Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ:
rMonhoc
Mamon
THVP
LTC
CSDL1
CSDL2
Tenmon
Tin hoc văn phòng
Lập trình C
Co so du lieu
Co so du lieu
Sotiet
30
60
45
45
Siêu khóa: {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
18
Khóa (Key)
* Lược đồ:
Ketqua(MaSV, MaMH, Makhoa, Diemthi)
* Quan hệ:
rKetqua
MaSV
99001
99002
99001
99005
MaMH
CSDL
CSDL
THVP
THVP
Makhoa
CNTT
CNTT
CNTT
AV
Diemthi
3.0
8.0
6.0
5.0
Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,Makhoa},…
19
Khóa (Key)
* Lược đồ:
* Quan hệ:
MaSV
Sinhvien(MaSV, Hoten, Phai, soCMND)
rSinhvien
Hoten
Phai
soCMND
99001 Nguyen van anh
Nam 01245012
99002 Tran Le Tuan
Nam 02209875
99003 Nguyen Thi Hong Nu
99004 Do van Thuan
04563711
Nam
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
20
Khóa (Key)
Gọi S là một tập các thuộc tính của lược đồ quan hệ R.
Siêu khoá có ít thuộc tính nhất được gọi là khóa (Primary
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 phức (composite key) là khóa chính có nhiều hơn một
thuộc tính
21
Khóa (Key)
* Lược đồ:
* Quan hệ:
MaSV
Sinhvien(MaSV, Hoten, Phai, soCMND)
rSinhvien
Hoten
Phai
soCMND
99001 Nguyen van anh
Nam 01245012
99002 Tran Le Tuan
Nam 02209875
99003 Nguyen Thi Hong Nu
99004 Do van Thuan
04563711
Nam
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Khóa (khóa dự tuyển): {MaSV} , {soCMND}
Khóa chính : {MaSV}
22
Khóa (Key)
* Lược đồ:
Monhoc(Mamon, Tenmon, Sotiet)
* Quan hệ:
rMonhoc
Mamon
THVP
LTC
CSDL1
CSDL2
Tenmon
Tin hoc văn phòng
Lập trình C
Co so du lieu
Co so du lieu
Sotiet
30
60
45
45
Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},
{Mamon, Tenmon, Sotiet}
Khóa (khóa dự tuyển, khóa chính) : {Mamon}
23
Khóa (Key)
* Lược đồ:
Ketqua(MaSV, MaMH, Makhoa, Diemthi)
* Quan hệ:
rKetqua
MaSV
99001
99002
99001
99005
MaMH
CSDL
CSDL
THVP
THVP
Makhoa
CNTT
CNTT
CNTT
AV
Diemthi
3.0
8.0
6.0
5.0
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}
24
Khóa chính (Primary key)
Tính chất:
- Khóa chính là cơ sở để nhận biết các bộ.
- Các thuộc tính khóa chính phải có giá trị khác null.
- Các thuộc tính khóa chính thường được gạch dưới.
Ký hiệu:
NHANVIEN(MANV, TENNV, HONV, NGSINH, DCHI, PHAI, LUONG, PHONG)
25