CƠ SỞ DỮ LIỆU
GV: ThS. Lương Thị Ngọc Khánh
Email:
Web: it.tdt.edu.vn/~ltnkhanh
Chương II
MÔ HÌNH DỮ LIỆU QUAN HỆ
• Các khái niệm
• Các ràng buộc mô hình quan hệ
và lược đồ CSDL quan hệ
• Ngôn ngữ thao tác dữ liệu
SQL/DML cơ bản
Các định nghĩa - Mở đầu
maSoSV
hoTenSV
ngaySinh
diemTB
mucHBg
Ti05020
Lê Ngọc Phúc
06-12-1988
9.0
240.000
Ti05023
Nguyễn Mỹ Truyền
20-02-1987
8.2
180.000
Ti05027
Phạm Thu Hoa
23-05-1987
8.5
180.000
Ti05006
Phạm Thu Hường
23-06-1987
7.8
120.000
– maSoSV, hoTenSV, ngaySinh, mucHBg được gọi là các
thuộc tính,
– {9.0, 8.2, 8.5, 7.8…} chính là miền giá trị của thuộc tính
diemTB.
– Một dòng trong bảng:
Ti05020 Lê Ngọc Phúc
06-12-1988 9.0
240.000
đgl một bộ. Bảng có tên là HOCBONG đgl một quan hệ.
01-2014
504009 – Mô hình dữ liệu quan hệ
3
Các định nghĩa (tt)
• Mô hình CSDL quan hệ gọi tắt là mô hình
quan hệ (E.F Codd đề xuất 1971), bao
gồm:
– Một hệ thống các ký hiệu để 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, khóa ngoại,…
– Một tập hợp các phép toán trên dữ liệu như
phép toán tập hợp, phép toán quan hệ.
– Ràng buộc toàn vẹn quan hệ.
01-2014
504009 – Mô hình dữ liệu quan hệ
4
Thuộc tính (attribute, arity)
• Là các đặc trưng của đối tượng
• Được phân biệt bằng tên gọi
• Phải thuộc vào một kiểu dữ liệu nhất định
(số, chuỗi, ngày tháng, lôgic, hình ảnh…).
01-2014
504009 – Mô hình dữ liệu quan hệ
5
Thuộc tính (tt)
• Miền giá trị của thuộc tính.
– Ví dụ điểm thi của sinh viên chỉ là các số
nguyên từ 0 đến 10.
– Ký hiệu là D(Ai).
– Ví dụ: D(Diemtrungbinh) = [0..10]
• Thường dùng các chữ cái hoa A, B, C để
biểu diễn các thuộc tính, hoặc A1, …, An
để biểu diễn một số lượng lớn các thuộc
tính.
01-2014
504009 – Mô hình dữ liệu quan hệ
6
Lược đồ quan hệ (Relation)
• Là tập tất cả các thuộc tính cần quản lý
của một đối tượng cùng với những mối
liên hệ giữa chúng.
• ký hiệu R(U), hoặc R(A1,…,An).
• Ví dụ:
SV(maSoSV, hoTenSV, ngaySinh, diemTB,
mucHbg)
01-2014
504009 – Mô hình dữ liệu quan hệ
7
Lược đồ quan hệ (Relation) (tt)
- Tân từ của LĐQH:
- ý nghĩa của LĐQH
- Ví dụ: với lược đồ quan hệ SV:
SV(maSoSV, hoTenSV, ngaySinh, diemTB,
mucHbg)
ta có tân từ như sau:
- Mỗi sinh viên có một mã số duy nhất, mỗi mã
số xác định tất cả các thuộc tính của sinh viên
đó như họ tên, ngày sinh, mức học bổng…
01-2014
504009 – Mô hình dữ liệu quan hệ
8
Lược đồ quan hệ (Relation) (tt)
• Nhận xét:
– khi nói cho tập thuộc tính U = {A1, A2…, An}
ta coi như cho trước lược đồ quan hệ
(LĐQH) và cùng với nó ta có quan hệ rỗng r =
.
– Khi lược đồ được nạp thêm ít nhất một dòng
thì ta có một quan hệ khác rỗng.
01-2014
504009 – Mô hình dữ liệu quan hệ
9
Lược đồ CSDL
• Lược đồ CSDL:
– Nhiều LĐQH cùng nằm trong một hệ thống
quản lý cùng với mối quan hệ giữa chúng với
nhau.
• Ví dụ lược đồ CSDL quản lý điểm :
SV(maSV, hotenSV, ngaySinh, maLop, tinh,
hocBong)
Lop(maLop, tenLop, siSo, maKhoa)
Khoa(maKhoa, tenKhoa, soCB)
MonHoc(maMH, tenMH, soTiet)
KetQua(maSV, maMH, diemThi)
01-2014
504009 – Mô hình dữ liệu quan hệ
10
Quan hệ (relation)
• Là sự thể hiện của LĐQH ở một thời điểm.
• Cụ thể, một quan hệ r trên LĐQH R là một
tập con của tích Descartes (Đề các) của
các miền giá trị D(Ai) với i = 1…n.
r D(A1) x D(A2) x … x D(An)
01-2014
504009 – Mô hình dữ liệu quan hệ
11
Nhận xét
• Quan hệ r là một bảng hai chiều:
– trên cột thứ i là các giá trị của D(Ai),
– trên mỗi dòng của bảng là bộ n giá trị của các
miền giá trị của các thuộc tính Ai. Một dòng
chứa thông tin về một đối tượng và gọi là một
bộ (phần tử) của quan hệ.
• Trên một LĐQH có thể xây dựng được
nhiều QH khác nhau bằng cách thay đổi
một dòng hoặc một cột
01-2014
504009 – Mô hình dữ liệu quan hệ
12
Nhận xét (tt)
• Với cách nhìn của tập hợp việc thêm vào
một dòng (cột) giống với dòng (cột) đã có
thì QH không thay đổi. Đồng thời thứ tự
của các dòng (cột) không quan trọng.
01-2014
504009 – Mô hình dữ liệu quan hệ
13
Bộ (Tupple)
ma
hoten
nsinh
donvi
luong
phucap
thuong
01
Minh
1965
K.CNTT
800
50
100
02
Đông
1946
K. toán
700
122
48
03
Long
1954
K. lý
1.500
100
90
04
Kiên
1956
K. hóa
1.900
150
75
05
Đại
1958
K. văn
3.000
60
80
– Quan hệ r ở trên có năm phần tử. Mỗi phần tử
là một bộ 7 giá trị (còn gọi là 7-bộ)
01-2014
504009 – Mô hình dữ liệu quan hệ
14
Siêu khóa của LĐQH
• Siêu khóa của một lược đồ quan hệ R
– là một tập hợp gồm một hay nhiều thuộc tính
của lược đồ R có tính chất xác định duy nhất
một bộ trong mỗi thể hiện của R.
– SK: siêu khóa trên r(R):
ti(SK) ≠ tj(SK), với ti, tj là hai bộ khác nhau
bất kỳ trong r.
01-2014
504009 – Mô hình dữ liệu quan hệ
15
Siêu khóa của LĐQH (tt)
• Nhận xét:
– Cho R (U), nếu SK là siêu khóa của R thì SK
U
– Dễ thấy một quan hệ có ít nhất một siêu khóa,
đó là tập U gồm tất cả các thuộc tính của
quan hệ.
– Mọi tập con của U chứa một siêu khóa cũng
là siêu khóa.
01-2014
504009 – Mô hình dữ liệu quan hệ
16
Khóa của LĐQH
• Khóa của lược đồ quan hệ là một siêu
khóa của lược đồ này sao cho mọi tập con
thực sự của nó không là siêu khóa.
khóa là siêu khóa tối thiểu (tối tiểu)
• Ví dụ:
– Lược đồ quan hệ SV, thuộc tính maSV là
khóa.
• Khóa chính (primary key)
– Khóa chính là một khóa tối thiểu được người
phân tích chọn để cài đặt. (ký hiệu gạch chân)
01-2014
504009 – Mô hình dữ liệu quan hệ
17
Khóa của LĐQH (tt)
• Khóa dự tuyển (candidate key)
– Các khóa dự tuyển là các khóa tối thiểu khác
mà không phải là khóa chính.
• Khóa ngoài (khóa ngoại) của một lược đồ
quan hệ:
– là một tập hợp gồm một hay nhiều thuộc tính
là khóa của một lược đồ quan hệ khác.
– Ký hiệu gạch chân nét đứt
01-2014
504009 – Mô hình dữ liệu quan hệ
18
Khóa của LĐQH (tt)
• Thuộc tính khóa
– Là thuộc tính có tham gia vào một khóa bất kỳ
(dự tuyển hay khóa chính)
• Ngược lại, thuộc tính không tham gia vào
một khóa nào gọi là thuộc tính không
khóa.
01-2014
504009 – Mô hình dữ liệu quan hệ
19
Ràng buộc toàn vẹn
CSDL mẫu
• CSDL HSSINHVIEN
– SINH_VIEN(maSV, hotenSV, nam, ngSinh,
maKhoa)
- KHOA(maKhoa, tenKhoa, soCB)
– MON_HOC(maMH,
tenMH,
soTietLT,
soTietTH)
– KET_QUA(maSV, maMH, lanThi, diem)
01-2014
504009 – Mô hình dữ liệu quan hệ
21
CSDL mẫu (tt)
• CSDL QLHANGHOA
– KHACH(maKH, tenKh, diachiKH, dienThoai,
congNo)
– HANG_HOA(maHH, tenHH, dvTinh)
– DAT_HANG(soDH, maHH, soLuongDat, ngayDH,
maKH)
– HOA_DON(soHD, ngayHD, soDH, trigiaHD,
ngayXuat)
– CTIET_HD(soHD,maHH,giaBan, soLuongBan)
– PHIEU_THU(soPT, ngayPT, maKH, soTien)
01-2014
504009 – Mô hình dữ liệu quan hệ
22
Khái niệm ràng buộc toàn vẹn
• Ràng buộc toàn vẹn
– Là những điều kiện bất biến mà các đối
tượng của CSDL phải thỏa mãn ở bất kỳ thời
điểm nào.
– Là các quy tắc quản lý được áp đặt lên trên
các đối tượng của thế giới thực.
01-2014
504009 – Mô hình dữ liệu quan hệ
23
Ví dụ
• Ví dụ:
Trong CSDL HSSINHVIEN ta có một số RBTV như sau:
• C1: Mỗi sinh viên có một mã số riêng biệt, không
trùng với bất kỳ sinh viên nào khác.
• C2: Mỗi sinh viên chỉ được thi tối đa hai lần cho
một môn học.
• C3: Mỗi sinh viên phải thuộc về một khoa nào đó.
01-2014
504009 – Mô hình dữ liệu quan hệ
24
Khái niệm ràng buộc toàn vẹn
• Công việc kiểm tra RBTV có thể được tiến
hành vào một trong các thời điểm sau:
– ngay khi thực hiện một thao tác câp nhật
CSDL (thêm, sửa, xóa…).
– định kỳ hay đột xuất.
01-2014
504009 – Mô hình dữ liệu quan hệ
25