Cơ sỡ dữ liệu buổi 3

  • 27 trang
  • file .pdf
Bài 2: Mô hình dữ liệu quan hệ
(Relational Data Model)
Khoa HTTT-Đại học CNTT 1
Nội dung
1. Giới thiệu
2. Các khái niệm
3. Ràng buộc toàn vẹn
4. Lược đồ Cơ sở dữ liệu
5. Các đặc trưng của quan hệ
Khoa HTTT-Đại học CNTT 2
1. Giới thiệu
 Do tiến sĩ E. F. Codd đưa ra
 Cung cấp một cấu trúc dữ liệu đơn giản và
hữu hiệu
 Khái niệm quan hệ
 Có nền tảng lý thuyết vững chắc
 Lý thuyết tập hợp
 Là cơ sở của các HQT CSDL thương mại
 Oracle, DB2, SQL Server…
Khoa HTTT-Đại học CNTT 3
2. Các khái niệm
2.1 Quan hệ (Relation)
2.2 Thuộc tính (Attribute)
2.3 Lược đồ (Schema)
2.4 Bộ (Tuple)
2.5 Miền giá trị (Domain)
2.6 Thể hiện của quan hệ (Relation Instance)
Khoa HTTT-Đại học CNTT 4
2.1 Quan hệ
 Các thông tin được lưu trữ và tổ chức thành
bảng 2 chiều được gọi là quan hệ (relation)
Tên quan hệ
HOCVIEN Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
Khoa HTTT-Đại học CNTT 5
2.2 Thuộc tính (attribute)
 Tên các cột của quan hệ
 Mô tả ngữ nghĩa của dữ liệu trong cột đó.
Thuộc tính
HOCVIEN Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
 Trong quan hệ Hocvien có các thuộc tính là: mahv,
hoten, gioitinh, noisinh, malop
Khoa HTTT-Đại học CNTT 6
2.3 Lược đồ (Schema)
 Định nghĩa: Tên của một quan hệ và tập các
thuộc tính của quan hệ đó gọi là lược đồ
 Ký hiệu: Q( A1 , A2 ,..., An )
 Ví dụ:
HOCVIEN (Mahv, Hoten, Ngsinh, Gioitinh, Noisinh, Malop)
LOP (Malop, Tenlop, Siso, Trglop, Khoa)
 Tập thuộc tính của lược đồ quan hệ ký hiệu
là Q  A , A ,..., A 

1 2 n
Khoa HTTT-Đại học CNTT 7
2.4 Bộ (tuple)
 Định nghĩa: Bộ là các thông tin của một đối tượng
thuộc quan hệ (tên gọi khác là mẫu tin (record),
dòng).
 Ví dụ:
HOCVIEN Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
Bộ K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
 (K1103, Ha Duy Lap, Nam, Nghe An, K11) là một
bộ của quan hệ HOCVIEN
Khoa HTTT-Đại học CNTT 8
2.5 Miền giá trị (Domain)
 Tập hợp các giá trị mà một thuộc tính A có thể nhận được
gọi là miền giá trị của thuộc tính A.
 Ký hiệu: MGT(A) hoặc Dom(A).
 Kiểu dữ liệu cơ sở (elementary type)
 Chuỗi ký tự (string)
 Số (integer)
 Ngày tháng (date)
 Các kiểu dữ liệu phức tạp (không chấp nhận)
 Tập hợp (set), Danh sách (list), Mảng (array), Bản ghi (record)
 Ví dụ: hoten có kiểu dữ liệu string
Khoa HTTT-Đại học CNTT 9
2.6 Thể hiện của quan hệ
(Relation Instance)
 Định nghĩa: thể hiện của một quan hệ là tập hợp
các bộ giá trị của quan hệ tại một thời điểm.
 Ký hiệu: thể hiện của quan hệ Q là TQ
 Ví dụ: THOCVIEN là thể hiện của quan hệ HOCVIEN
tại thời điểm hiện tại gồm có các bộ như sau:
HOCVIEN Mahv HoTen Gioitinh Noisinh Malop
K1103 Ha Duy Lap Nam Nghe An K11
K1102 Tran Ngoc Han Nu Kien Giang K11
K1104 Tran Ngoc Linh Nu Tay Ninh K11
Khoa HTTT-Đại học CNTT 10
3. Ràng buộc toàn vẹn
3.1 Siêu khóa (super key)
3.2 Khóa (key)
3.3 Khóa chính (primary key)
3.4 Khóa tương đương
3.5 Ràng buộc toàn vẹn tham chiếu
3.6 Khóa ngoại (foreign key)
Khoa HTTT-Đại học CNTT 11
3.1 Siêu khóa (super key) (1)
 Siêu khóa : là một tập con các thuộc tính của Q+
mà giá trị của chúng có thể phân biệt 2 bộ khác
nhau trong cùng một quan hệ.
Nghĩa là:  t1, t2  TQ, t1  t2  t1[K] t2[K]
Thì K là siêu khóa của Q.
 Một quan hệ có ít nhất một siêu khóa (Q+) và có thể
có nhiều siêu khóa.
Khoa HTTT-Đại học CNTT 12
3.1 Siêu khóa (super key) (2)
 Ví dụ: các siêu khóa của quan hệ HOCVIEN là: {Mahv};
{Cmnd}; {Mahv, Hoten}; {mahv, noisinh}; {Cmnd,
Noisinh, Gioitinh}…
HOCVIEN Mahv HoTen Gioitinh Noisinh CMND
K1103 Ha Duy Lap Nam Nghe An 180777123
K1102 Tran Ngoc Han Nu Kien Giang 370213876
K1104 Tran Ngoc Linh Nu Tay Ninh 298777006
K1105 Tran Minh Long Nam TpHCM 024342114
K1106 Ha Duy Lap Nam TpHCM 020998888
Khoa HTTT-Đại học CNTT 13
3.2 Khóa (key) (1)
Khóa : K là khóa của quan hệ R, thỏa mãn 2 điều kiện:
 K là một siêu khóa.
 K là siêu khóa “nhỏ nhất” (chứa ít thuộc tính nhất và
khác rỗng) nghĩa là
 K1 K, K1 K, K1 không phải là siêu khóa.
 Thuộc tính tham gia vào một khóa gọi là thuộc tính
khóa, ngược lại là thuộc tính không khóa.
Khoa HTTT-Đại học CNTT 14
3.2 Khóa (key) (2)
 Ví dụ: các siêu khóa của quan hệ HOCVIEN là: {Mahv};
{Cmnd}; {Mahv, Hoten}; {mahv, noisinh}; {Cmnd, Noisinh,
Gioitinh}…
=> khóa của quan hệ HOCVIEN là {Mahv}; {Cmnd}
khóa
HOCVIEN Mahv HoTen Gioitinh Noisinh CMND
K1103 Ha Duy Lap Nam Nghe An 180777123
K1102 Tran Ngoc Han Nu Kien Giang 370213876
K1104 Tran Ngoc Linh Nu Tay Ninh 298777006
K1105 Tran Minh Long Nam TpHCM 024342114
K1106 Ha Duy Lap Nam TpHCM 020998888
Khoa HTTT-Đại học CNTT 15
3.2 Khóa (key) (3)
 Ví dụ: quan hệ GIANGDAY có khóa là K={Malop,Mamh}.
Thuộc tính khóa sẽ là: Mamh,Malop. Thuộc tính không khóa
sẽ là Magv, HocKy, Nam.
TT khóa TT không khóa
MALOP MAMH MAGV HOCKY NAM
K11 THDC GV07 1 2006
K12 THDC GV06 1 2006
K13 THDC GV15 1 2006
K11 CTRR GV02 1 2006
K12 CTRR GV02 1 2006
Khoa HTTT-Đại học CNTT 16
3.3 Khóa chính (primary key)
 Khi cài đặt trên một DBMS cụ thể, nếu quan hệ có
nhiều hơn một khóa, ta chỉ được chọn một và gọi là
khóa chính
 Ký hiệu: các thuộc tính nằm trong khóa chính khi
liệt kê trong lược đồ quan hệ phải được gạch dưới.
 Ví dụ:
 HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop, cmnd)
 GIANGDAY(Mamh,Malop,Magv,Hocky,Nam)
Khoa HTTT-Đại học CNTT 17
3.4 Khóa tương đương
 Các khóa còn lại (không được chọn làm khóa
chính) gọi là khóa tương đương.
Khóa chính Khóa tương đương
HOCVIEN Mahv HoTen Gioitinh Noisinh CMND
K1103 Ha Duy Lap Nam Nghe An 180777123
K1102 Tran Ngoc Han Nu Kien Giang 370213876
K1104 Tran Ngoc Linh Nu Tay Ninh 298777006
K1105 Tran Minh Long Nam TpHCM 024342114
K1106 Ha Duy Lap Nam TpHCM 020998888
Khoa HTTT-Đại học CNTT 18
3.5 Ràng buộc toàn vẹn tham
chiếu
 Ràng buộc tham chiếu: một bộ trong một quan hệ này tham
chiếu đến một bộ (đã tồn tại) trong quan hệ khác.
MAKH HOTEN DCHI SODT DOANHSO
KH01 Nguyen Van A 731 Tran Hung Dao, Q5, TpHCM 08823451 13,060,000
KH02 Tran Ngoc Han 23/5 Nguyen Trai, Q5, TpHCM 0908256478 280,000
KH03 Tran Ngoc Linh 45 Nguyen Canh Chan, Q1, TpHCM 0938776266 3,860,000
SOHD NGHD MAKH
1006 16/10/2006 KH01
1007 28/10/2006 KH03
1008 28/10/2006 KH01
Khoa HTTT-Đại học CNTT 19
3.6 Khóa ngoại (1)
 Cho R(U), S(V). PKU là khóa chính của R, FKV
 Ta nói FK là khóa ngoại của S tham chiếu đến khóa
chính PK của R nếu thỏa các điều kiện sau:
 PK và FK có cùng số lượng thuộc tính và ngữ
nghĩa của các thuộc tính trong PK và FK cũng
giống nhau.
 Giá trị tại FK của một bộ t1S
 Hoặc bằng giá trị tại khóa chính của một bộ t2R
 Hoặc bằng giá trị rỗng (null)
Khoa HTTT-Đại học CNTT 20