Bài giảng Cơ sở dữ liệu - Bài 4: Đại số quan hệ (Mới)
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 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ệ
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ệ.
Tóm tắt nội dung Bài giảng Cơ sở dữ liệu - Bài 4: Đại số quan hệ (Mới), để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ồng thời có nhà cung cấp?
Hiển thị danh sách các thành phố có khách hàng và không có nhà cung cấp?
24
Phép tích Descartes
Cho quan hệ r trên lược đồ R(A1, A2,..,Am) và s trên lược đồ S(B1,B2,,Bn)
Nếu R và S có các thuộc tính trùng tên, thì phải đổi tên.
Phép tích Descartes của r và s là 1 quan hệ trên lược đồ T(A1, A2,.., Am, B1, B2, .,Bn)
r x s = { t | t r r và t s s
với t[ A1, A2,.., Am ] = t r
và t[ B1, B2, .,Bn ] = t s }
25
25
Phép tích Descartes – ví dụ 1
Relations r, s :
r x s
MASV
MAMH
DIEM
99001
CSDL
5.0
99002
FOX
2.0
99003
MANG
8.0
MAMH
TENMH
CSDL
COSO DULIEU
FOX
FOXPRO
MASV
MAMH
DIEM
MAMH
TENMH
99001
CSDL
5.0
CSDL
COSO DULIEU
99001
CSDL
5.0
FOX
FOXPRO
99002
FOX
2.0
CSDL
COSO DULIEU
99002
FOX
2.0
FOX
FOXPRO
99003
MANG
8.0
CSDL
COSO DULIEU
99003
MANG
8.0
FOX
FOXPRO
26
Phép tích Descartes
ứng dụng :
phép tích Descartes là một phép tính vô nghĩa nếu đứng riêng. Tuy nhiên, nếu kết hợp sau phép toán này một phép chọn phù hợp , kết quả sẽ có nghĩa : kết hợp các bộ có liên quan từ hai quan hệ.
Vd : Hiển thị bảng điểm của các sinh viên. Bao gồm MaSV, MaMH, Diem, TenMH
=> Viết biểu thức đại số quan hệ ?
(r x s) ( r.MaMH = s.MaMH)
27
27
Phép kết (join)
thay thế phép ( r x s) (F)
với F là biểu thức điều kiện có dạng r.A s.B
Bao gồm :
Theta join ( -join )
Equijoin
Natural join
Outer join
28
Phép kết - Theta join
Cho r và s là hai quan hệ tương ứng trên các lược đồ R(A1, A2,..,Am) và S(B1,B2,,Bn)
Gọi Q(A1, A2,.., Am, B1, B2, .,Bn)
là 1 phép so sánh
Ai R và Bj S là 2 thuộc tính có thể so sánh với nhau bởi phép
Phép kết của r và s trên 2 thuộc tính Ai và Bj ký hiệu , cho kết quả là 1 quan hệ q trên lược đồ quan hệ Q, bao gồm các bộ t
q(Q) = {t | t r r và t s s với t[R] = t r
và t[S] = ts và t[Ai] t[Bj] }
29
r
s
Ai Bj
29
Phép kết - Theta join
Ví dụ : Hiển thị ứng với mã mỗi môn học và các môn học tiếp sau nó ?
MONHOC ( MaMon, TenMon, SoTC, Hocky)
30
MaMon
TenMon
SoTC
Hocky
A
Aaaa
3
1
B
Bbbb
4
1
C
Cccc
3
2
D
Dddd
2
3
Chú ý : Sử dụng phép gán để tạo ra một biến quan hệ tạm:
s r [MaMon, Hocky] , với r MONHOC
30
Phép kết - Theta join
MaMon
Hocky
A
1
B
1
C
2
D
3
MaMon
Hocky
A
1
B
1
C
2
D
3
r
s
r.Hocky < s.Hocky
MaMon
MaMonsau
A
C
A
D
B
C
B
D
C
D
31
Phép kết bằng và kết tự nhiên
Phép kết Theta với là phép so sánh bằng , thì được gọi là phép kết bằng _ Equijoin
Phép kết Theta với là phép so sánh bằng được thực hiện trên các thuộc tính chung (cùng tên) của R và S , thì được gọi là phép kết tự nhiên – Natural join. Ký hiệu
Quan hệ kết quả q không lặp lại các thuộc tính chung của R và S
VD: Hiển thị danh sách các khách hàng và nhà cung cấp ở cùng một thành phố
Customer( Cuscode, cusName, cusPhone, City)
Supplier ( SupCode, SupName, SupPhone, City)
32
r
s
32
Phân biệt các phép join
Phép so sánh
Áp dụng trên
Tập kết quả
Theta join
Tất cả
Trên 2 thuộc tính cùng kiểu dữ liệu
Equijoin
phép bằng
Trên 2 thuộc tính cùng kiểu dữ liệu
Natural join
phép bằng
Trên 2 thuộc tính chung
Không lặp lại thuộc tính chung
33
Phép kết ngoài - Outer join
Bao gồm : Left/ Right Outer Join, Full Outer Join
Phép kết Left Outer Join giữa r và s, cho phép các bộ của r không kết được với các bộ của s cũng được xuất hiện trong quan hệ kết quả
Những giá trị tương ứng với các bộ trong quan hệ bị thiếu sẽ được gán trị Null
Ưu điểm : giữ được thông tin mà lẽ ra bị mất trong phép kết
Ký hiệu :
34
r
s
34
r
s
MASV
MAMH
DIEM
99001
CSDL
5.0
99002
FOX
2.0
99003
MANG
8.0
MAMH
TENMH
CSDL
COSO DULIEU
FOX
FOXPRO
MASV
MAMH
DIEM
MAMH
TENMH
99001
CSDL
5.0
CSDL
COSO DULIEU
99002
FOX
2.0
FOX
FOXPRO
99003
MANG
8.0
Phép kết ngoài - Outer join
35
Phép chia - Division
Cho quan hệ r định nghĩa trên R với tập thuộc tính A
Cho quan hệ s định nghĩa trên S với tập thuộc tính B , với B A
Gọi C = A - B , là tập thuộc tính chỉ có trong tập thuộc tính A của R
Phép chia r s cho kết quả là một quan hệ với tập thuộc tính C và bao gồm các bộ sao cho đối với mọi bộ của s , thì tồn tại bộ thuộc r
36
Phép chia – Division
r s
A
B
1
2
A
B
1
2
3
1
1
1
3
4
6
1
2
s
s
r
37
Phép chia – Division
Ví dụ : cho lược đồ CSDL
SV( MaSV, HoSV, TenSV, Phai)
Monhoc( MaMon, TenMon, SoTC )
KetQua( MaSV, MaMon, Diem)
Hiển thị danh sách các Sinh viên (MaSV) đã có kết quả học tập của tất cả các môn học ?
KetQua[MaSV, MaMon] Monhoc[MaMon]
38
Ràng buộc toàn vẹn
Ràng buộc tòan vẹn là gì
Các loại ràng buộc toàn vẹn
Biểu diễn ràng buộc toàn vẹn
39
Khái niệm
Ràng buộc toàn vẹn (integrity constraint) là qui tắc mà tất cả các dữ liệu trong CSDL phải thỏa mãn
Nguồn gốc : xuất phát từ các qui tắc nghiệp vụ trong thế giới thực và những đặc tính của mô hình quan hệ
đảm bảo dữ liệu phản ánh đúng thế giới thực, đảm bảo những đặc trưng của mô hình quan hệ
Các dạng :
Ràng buộc toàn vẹn thực thể (ràng buộc khóa chính)_ Entity integrity
Ràng buộc toàn vẹn tham chiếu (ràng buộc phụ thuộc tồn tại / ràng buộc khóa ngọai)_ Referential integrity
Ràng buộc toàn vẹn miền giá trị _ Domain integrity
Ràng buộc toàn vẹn do người dùng định nghĩa _ User-defined integrity
40
Mô tả một ràng buộc toàn vẹn (RBTV): thông qua 3 yếu tố
Bối cảnh : nêu ra tên một hay một số quan hệ mà RBTV đó có hiệu lực
Biểu diễn : nội dung của một RBTV được biểu diễn bằng ngôn ngữ tự nhiên hoặc bằng một ngôn ngữ hình thức
Bảng tầm ảnh hưởng : xác định thời điểm (cập nhật dữ liệu) cần phải tiến hành kiểm tra RBTV
Khái niệm
41
Ràng buộc toàn vẹn thực thể
Ràng buộc khóa chính
Thể hiện: giá trị của khóa chính là duy nhất và NOT NULL
Mục tiêu: mỗi dòng sẽ được nhận diện duy nhất
VD: cho Sinhvien(MaSV, Hoten, Phai, Ngaysinh)
Tân từ : Mỗi sinh viên có một Mã sinh viên duy nhất, xác định một họ tên, phái và ngày sinh .
Mô tả R1 ”Mỗi sinh viên có một Mã sinh viên duy nhất ” như sau
Bối cảnh : Sinhvien
Biểu diễn : rSV SINHVIEN,
t 1 ,t 2 rSV
t1.MASV t2.MASV
Bảng tầm ảnh hưởng
R1
Theâm
Söûa
Xoùa
rSV
+
+ (MASV)
-
42
Ràng buộc tòan vẹn tham chiếu
Ràng buộc khóa ngoại
Thể hiện: gía trị của khóa ngoại có thể NULL, hoặc phải là một trong những giá trị của khóa chính của một bảng khác
Mục tiêu : duy trì tính nhất quán (consistency) giữa các bộ của 2 quan hệ.
Đượ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ệ
43
Ràng buộc tòan vẹn tham chiếu
VD: cho lược đồ CSDL , bao gồm
Khoa(Makhoa, Tenkhoa)
Tân từ : Mỗi khoa có một mã khoa duy nhất, một tên khoa
Sinhvien(MaSV, Hoten, Phai, Ngaysinh, Makhoa)
Tân từ : Mỗi sinh viên có một Mã sinh viên duy nhất, xác định một họ tên, phái và ngày sinh. Mỗi sinh viên thuộc một khoa
Mô tả R2 “ Mỗi sinh viên thuộc một khoa ” như sau
Bối cảnh : Khoa, Sinhvien
Biểu diễn : rSV SINHVIEN , rKhoa KHOA
rSV[MAKHOA] rKHOA[MAKHOA]
Bảng tầm ảnh hưởng :
R2
Theâm
Söûa
Xoùa
rSV
+
+
-
rKhoa
-
+
+
44
Ràng buộc toàn vẹn miền giá trị
Thể hiện : giá trị của một thuộc tính phải nằm trong một miền giá trị xác định
Mục tiêu : tuân thủ các qui tắc nghiệp vụ trong thế giới thực
VD: Hocbong(MaSV, Namhoc, Xeploai, Sotien)
Tân từ : Hàng năm, nếu đạt kết quả học tập lọai khá trở lên thì sinh viên được học bổng. Học bổng có 2 mức: loại khá được 500 , loại giỏi được 700.
Mô tả R3 “học bổng có 2 mức: loại khá được 500 , loại giỏi được 700 ” như sau
Bối cảnh : Hocbong
Biểu diễn : rHbong HOCBONG,
t rHbong ,
t.Sotien = 500 or t.Sotien = 700
Bảng tầm ảnh hưởng
R3
Theâm
Söûa
Xoùa
rHocbong
+
+ (Sotien)
-
45
Ràng buộc do user định nghĩa
Bao gồm các ràng buộc không thuộc các loại trên , như :
ràng buộc liên bộ / liên thuộc tính trong một quan hệ;
ràng buộc liên thuộc tính giữa các quan hệ;
ràng buộc do thuộc tính tính toán,
VD1: cho lược đồ quan hệ
Hoadon(MaHD, MaKH, Điachi, Ngaylap, NgayXuat )
Tân từ : Mỗi hóa đơn có một mã Hóa đơn duy nhất, bán cho một khách hàng có Mã KH, có địa chỉ. Ngày lập HD phải trước hoặc trùng ngày xuất hàng
Bối cảnh : Hoadon
Biểu diễn:
R 4 : t rHoaDon
t.NGAYLAP <= t.NGAYXUAT
Bảng tầm ảnh hưởng :
R 4
Theâm
Söûa
Xoùa
rHoaDon
+
+
-
46
Ràng buộc do user định nghĩa
VD2: R5 “Ngày đặt hàng phải trước ngày giao hàng”
Hoadon(MaHD, MaKH, Điachi, NgayLap, NgayGiao, SoDH )
Dathang(SoDH, MaKH, NgayDH)
Bối cảnh : Hoadon, Dathang
Biểu diễn :
R5: t1 rDatHang, t2 rHoaDon
Nếu t1.SODH = t2.SODH
Thì t1.NGAYDH <= t2.NGAYGIAO
Bảng tầm ảnh hưởng :
R 5
Theâm
Söûa
Xoùa
rDatHang
+
+
-
rHoaDon
+
+
-
47
Ràng buộc do user định nghĩa
VD3 : R6 “ Mỗi lớp học chỉ có tối đa 100 sinh viên”
Sinhvien(MaSV, Hoten, Phai, Malop)
Lop(Malop, Tenlop, Siso)
Bối cảnh : Sinhvien
Biểu diễn :
rSV Sinhvien, rSV’ rSv
t rSV, t’ rSV’ , D
thì Count t D t.MaSV <= 100
Bảng tầm ảnh hưởng :
rSV
rSV’
t.Malop = t’.Malop
R6
Theâm
Söûa
Xoùa
rSV
+
+
-
48
Hỗ trợ của các DBMS
SQL server 2000 hỗ trợ cài đặt các loại ràng buộc sau :
Default
Check
NULL / NOT NULL
Unique
Primary key
Foreign key
Domain integrity
Entity integrity
Referential integrity
49
File đính kèm:
bai_giang_co_so_du_lieu_bai_4_dai_so_quan_he_moi.ppt

