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
Trang 1Mô hình cơ sở dữ liệu quan hệ
(The Relational Database Model)
Chương 2
Trang 2Giớ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ệ
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ệ.
Trang 5Quan 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)
Trang 7Thuộ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
Trang 8Bộ 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.
Trang 9Lược đồ Quan hệ
Lược đồ quan hệ - relation schema
Mô tả cấu trúc của quan hệ
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 đó.
Ketqua( MASV, MAMH, MAKHOA, DIEMTHI)
Ký hiệu r(Ketqua) là một thể hiện của LĐQH trên.
Trang 10Khó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 khóa được chọn để cài đặt gọi là khóa chính (primary key)
khóa ngoại (foreign key) là thuộc tính của LĐQH này nhưng lại
Trang 11Khóa _ ví dụ 1
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}
THVP Tin hoc văn phòng 30
CSDL1 Co so du lieu 45CSDL2 Co so du lieu 45
Trang 12Khóa _ ví dụ 2
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}
Trang 13Khóa _ ví dụ 3
rSV
Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,
{soCMND} , {soCMND, Hoten},…
Trang 14Đại số quan hệ
Khái niệm
Các phép toán đại số quan hệ
Ví dụ
Trang 15 Đượ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ệ
Trang 17Ký 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ị
Trang 18Phé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 }
* Phép chọn và phép chiếu là phép toán một toán hạng
Trang 197 7 3
7 3 10
Trang 20Phé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
Trang 211 2 1 2
r[A,C]
Trang 23Phé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
Trang 24Phé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
Trang 26Phé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 | tr r và ts s
với t[A1, A2, , Am] = tr
và t[B1, B2, ….,Bn] = ts }
Trang 27MASV MAMH DIEM MAMH TENMH
99001 CSDL 5.0 CSDL COSO DULIEU
99001 CSDL 5.0 FOX FOXPRO
99002 FOX 2.0 CSDL COSO DULIEU
Trang 28nghĩ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ệ ?
q (r x s)
q ( r.MaMH = s.MaMH)
Trang 29Phép tích Descartes
q ( r.MaMH = s.MaMH)
Trang 32Phép kết -join Theta join
Cho r và s là hai quan hệ tương ứng trên các lược đồ
q(Q) = {t | tr r và ts s với t[R] = tr
và t[S] = ts và t[Ai] t[Bj] }
r Ai Bjs
Trang 33Phép kết -join 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)
Trang 35Phé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
đượ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
vd1
Trang 36Phân biệt các phép join
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
Trang 37Bài tập
Customer( Cuscode, cusName, cusPhone, City)
Branch ( BraCode, BraName, BraPhone, City)
VD 1 : Hiển thị danh sách các khách hàng và các chi nhánh
ở cùng một thành phố Thông tin yêu cầu : CusCode,
CusName, BraCode, BraName, City
VD 2 : Hiển thị danh sách các khách hàng ở những thành phố chưa có chi nhánh
Trang 38Phép kết ngoài -join 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 :
vd2
Trang 39Av Anh van
MASV r.MAMH DIEM s.MAMH TENMH
99001 CSDL 5.0 CSDL COSO DULIEU
Phép kết ngoài -join Outer join
Left Outer Join
Trang 40MASV MAMH DIEM
Phép kết ngoài -join Outer join
Right Outer Join
Trang 41MASV MAMH DIEM
Av Anh van
MASV r.MAMH DIEM s.MAMH TENMH
99001 CSDL 5.0 CSDL COSO DULIEU
Phép kết ngoài -join Outer join
Full Outer Join
Trang 42Phép chia -join 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ộ <a> sao cho đối với mọi bộ <b> của s , thì tồn tại
bộ <a,b> thuộc r
Trang 43Phép chia – Division
r s
A
B 1 2
s
s
r
Trang 44Phé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]
Trang 45Rà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
Trang 46 đả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ệ
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
Trang 47Mô tả một ràng buộc toàn vẹn (RBTV): thông qua 3 yếu tố
đó có hiệu lực
bằng ngôn ngữ tự nhiên hoặc bằng một ngôn ngữ hình thức
liệu) cần phải tiến hành kiểm tra RBTV
Khái niệm
Trang 48Ràng buộc tồ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
t 1 ,t 2 rSV t1.MASV t2.MASV
Bảng tầm ảnh hưởng R1 Thêm Sửa Xóa
rSV + + (MASV)
Trang 49-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:
có bản ghi tương ứng trong bảng chính.
bản ghi tương ứng trong bảng quan hệ bị mất tham chiếu
tham chiếu bởi 1 số bản ghi trong bảng quan hệ
Trang 50Ràng buộc tòan vẹn tham chiếu
Sinhvien(MaSV, Hoten, Phai, soCMND)
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
KetQua(MaSV, MaMH, Makhoa, Diemthi)
Tân từ : Mỗi sinh viên, học môn học nào thì sẽ dự thi và có điểm thi
của môn học đó
Mô tả R2 “Mỗi sinh viên học mônhọc sẽ thi và có điểm ”
Bối cảnh : Sinhvien, Ketqua
Biểu diễn : rSV SINHVIEN , rKQ KETQUA
Trang 51-MASV MAMH MAKHOA DIEMTHI
Trang 52Rà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
Trang 53Rà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
Trang 54-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)
Trang 55-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)
Trang 56Referential integrity
Trang 57Bài tập
cuả học viên, cũng như theo dõi các lớp học, đã thiết kế lược đồ CSDL sau:
Mô tả : Mỗi một khoá học có một mã số (MAKH) duy nhất phân biệt với các khoá học
khác, có tên khoá học (TENKH), ngày bắt đầu (BD) và ngày kết thúc khoá học (KT).
Mô tả : Mỗi một học viên có một mã số (MAHV) duy nhất để phân biệt với các học viên
khác, có họ (HO), tên (TEN), ngày tháng năm sinh (NTNS), địa chỉ (DCHI),
Nghề nghiệp (NNGHIEP).
Mô tả : Mỗi một giáo viên có một mã số (MAGV) duy nhất để phân biệt với các giáo viên
khác, có họ tên (HOTEN), ngày tháng năm sinh (NTNS), địa chỉ (DC).
Mô tả: Mỗi một lớp học có một mã số (MALH) duy nhất để phân biệt với các lớp học khác,
có tên lớp (TENLOP) Mỗi một lớp học thuộc về một khoá học duy nhất (MAKH) và do một giáo viên (MAGV) duy nhất phụ trách, và có một lớp trưởng (LTRG) Vào đầu khoá học người ta dự định một sĩ số dự kiến (SISODK) cho mỗi lớp, và một phòng học (PHHOC) sử dụng trong suốt khoá học.
Mô tả : Mỗi học viên ghi danh vào một lớp (MALH) trong khoá (MAKH), sẽ có một số biên
lai duy nhất (SOBL) trong khoá đó , trong đó có ghi nhận số tiền học viên thực nộp
(TIENNOP) Nếu học viên được miễn học phí thì TIENNOP= 0 hoặc Null Cuối mỗi khoá học, mỗi học viên sẽ có một kết quả đánh giá, bao gồm: điểm kiểm tra (DIEM), xếp loại