Lược đồ quan hệ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 mối liên hệ giữa chúng được gọi là lược đồ quan hệ.. Khóa - Khóa ngọai của Quan hệ Siêu khoá: là một tập
Trang 2Ví dụ
Cách quản lý thông tin về sinh viên đăng ký môn học như sau:
Trang 3Ví dụ (tt)
Những hạn chế trên sẽ được khắc phục nếu tổ chức dữ liệu theo mô hình sau:
Trang 4MỘ SỐ KHÁI NIỆM
THU Ộ C TÍNH (ATTRIBUTE)
MI Ề N GIÁ TR Ị C Ủ A THU Ộ C TÍNH (DOMAIN)
B Ộ (TUBLE hay RECORD)
BHK 002
1.050 Trần văn Thành
LUC 001
DIEN_TICH (M2)
TEN_CSD LOAI_DAT
SO_THUA
Trang 5 Thuộc tính: là tính chất để mô tả đối tượng hay nói cách khác 1 đối tượng được mô tả thông qua thuộc tính của nó.
Miền giá trị: Thuộc tính có thể là một chuỗi các
ký tự hay là một con số hoặc ngày tháng năm Ngoài ra có thể còn là giá trị tiền tệ hay một đơn vị đo lường nào đó Tập hợp các giá trị này gọi là Miền giá trị của thuộc tính.
Bộ: Tập hợp các thuộc tính cùng mô tả một đối tượng gọi là Bộ Như vậy có thể nói bộ là một đối tượng cụ thể
Trang 6MỘ SỐ KHÁI NIỆM
QUAN HỆ (RELATIONSHIP)
Trang 7Lược đồ quan hệ
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 mối liên hệ giữa chúng được gọi là lược đồ
quan hệ Lược đồ quan hệ Q với tập thuộc tính
{A1,A2, ,An} được viết là
Q(A1,A2, ,An) Tập các thuộc tính của Q được ký hiệu
là Q+ Chẳng hạn lược đồ quan hệ sinh viên (Đặt tên là
Sv) với các thuộc tính như trên là:
Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP,
HOCBONG, TINH)
Trang 8QUAN HỆ
Trang 9Khóa - Khóa ngọai của Quan hệ
Siêâu kh kh óa
Khóa
Khóa ngọai
Trang 10Khóa - Khóa ngọai của Quan hệ
Siêu khoá: là một tập các thuộc tính để phân biệt giữa các đối tượng với nhau trong một quan hệ.
Khoá: Trong trường hợp siêu khoá chỉ bao gồm 1 thuộc tính thì gọi là khoá Các thuộc tính trong siêu khoá gọi là thuộc tính khoá Thuộc tính khoá thường đóng vai trò liên kết giữa các quan hệ với nhau.
Khoá ngoại: Trong trường hợp 2 quan hệ liên kết với nhau thông thông qua 1 thuộc tính nếu thuộc tính này đóng vai trò là khoá chính trong một quan hệ đã xác định thì
nó chính là khoá ngoại của quan hệ còn lại.
Trang 11Ví dụ 1
được phân thành 4 c 4 c ấp : Đư : Đư ờng quốc lộ ,
hẽm Đư Đư ờng quốc lộ có ó l l ộ giới 60m; đường
nhau; ; Qu Qu ốc lộ và tỉnh lộ có kết cấu bê-tông
Trang 12Ví dụ 2
Theo số liệu thống kê năm 2005 Huyện Hóc Môn có 02 tuyến đường quốc lộ với chiều dài trên 40km; 06 tuyến đường tỉnh
lộ với chiều dài trên 80km; 15 tuyến đường liên xã và đường nội bộ với chiều dài 150km và 60 con hẽm với tổng chiều dài trên 30km
Trang 13mà công ty quản lý về nhân viên bao gồm: : mã mã
nhân viên, tên nhân viên, ngày sinh, địa chỉ, và mặt hàng mà nhân viên đó phụ trách M M ỗi mặt hàng đều có tên và mã mặt hàng cùng với xuất
xứ nguồn gốc của mặt hàng đó mà nhân viên cần biết để nhập hàng khi có yêu cầu
Trang 14CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ
Các phép toán đại số quan hệ là phép toán mà tất cả các hệ quản trị cơ sở dữ liệu đều cài đặt cụ thể bằng các lệnh theo ngôn ngữ riêng Các phép toán này được thực hiện trực tiếp trên các bộ của các quan hệ lưu trữ trong máy tính Việc tổ chức các quan hệ và các bộ của
nó có thể được xem như biểu diễn tương ứng một – một qua các tệp(file) và các bản ghi(Records)
Trang 15Phép chèn(Insert)
Mục đích của phép chèn là thêm một bộ vào một quan hệ nhất định Kết quả của phép chèn có thể gây ra một số sai sót với những lý do sau đây:
- Bộ mới được thêm vào không phù hợp với lược đồ quan
Trang 16Phép chiếu (project)
Cho Q là một quan hệ với tập thuộc tính Q+, Q+=A1,A2, ,An, X Q+: X là một tập con các thuộc tính của Q.
Phép chiếu Q lên tập thuộc tính X là phép trích cột từ Q gồm những thuộc t nh có trong X, các bộ là một phần của các bộ trong Q, được ký hiệu Q[X]
Ví dụ: Người ta chỉ cần biết MA_LD (mã lọai đất) và thời hạn sử dụng của loại đất đó (TH_SD), thực hiện phép chiếu tập con gồm các thuộc tính MA_LD và TH_SD lên quan hệ LOAIDAT Kết quả ta được một quan hệ với hai thuộc tính MA_LD và TH_SD, hai thuộc tính này đều nằm trong quan
hệ LOAIDAT
Trang 17Phép chiếu
(ví dụ)
Trang 18Phép chọn:(select)
Cho Q là một quan hệ với tập thuộc t nh Q+, Q+=A1,A2, ,An, gọi D(x) là một điều kiện xác định trên Q+ Phép chọn từ Q những bộ thỏa D(x) là một quan hệ Q' với các phần tử (bộ) thuộc Q và thỏa điều kiện D(x).
Trang 19Phép chọn (ví dụ)
Trang 20Phép tích Đề-cac (cartesian product)
Cho hai quan hệ Q1(A1,A2, ,Am) và Q2( B1, B2, , Bn), tích Đề-cac của hai quan hệ Q1
và Q2 là quan hệ Q3 có các thuộc tính là hợp các thuộc tính Q1 và Q2, các n bộ là nối của các n bộ trong Q1 và Q2.
q2Q2, Q3 có m+n ngôi (có m+n thuộc tính)
Trang 21Phép tích Đề-cac (ví dụ)
Trang 22Phép hạn chế một quan hệ
(Restriction)
Phép hạn chế một quan hệ là phép toán một ngôi cho kết quả
là một quan hệ có các bộ thỏa mãn một điều kiện hạn chế Điều kiện hạn chế có thể áp dụng trên một hoặc nhiều thuộc tính của quan hệ Có hai chuẩn viết về điều kiện hạn chế của một quan hệ: Chuẩn và (AND) và chuẩn hoặc (OR).
Hạn chế của quan hệ Q bằng tiêu chuẩn T là quan hệ Q' có cùng lược đồ (số ngôi) trong đó các n bộ thỏa mãn tiêu chuẩn T.
Ví dụ: Trong quan hệ THUA xác định những thửa có diện tích >1000 và lọai đất là nông nghiệp Quan hệ mới từ điều kiện trên sẽ là các quan hệ có n bộ có đầy đủ những thuộc tính của quan hệ THUA các bộ thỏa điều kiện DT> 1000
LD ="NN"
Trang 23có các thuộc tính và các n bộ là ghép nối các n bộ và các thuộc tính của hai quan hệ Q1 và Q2., chỉ lấy ra những n bộ thỏa mãn điều kiện hạn chế Ai và Bj
Trang 24Phép liên kết(ví dụ)
Ai = Dj
Trang 25Câu lệnh SQL
Trang 26Truy vấn chọn
Select [ Distinct | Top n[%]] field1 [ As alias1][,field2 [ As alias2][, ]]
From table1 [ Inner Join table2 On table1.field1 θ table2.field2]
Where dieuKien]
Order By field1[ Asc | Desc ][,field2[ Asc | Desc ]][, ]]];
Distinct : loại bỏ các bộ trùng trong quan hệ đích
Top n[%]: Chọn n hay n% mẫu tin đầu tiên.
table : Tên table hay query chứa dữ liệu.
field : Tên field hay một biểu thức.
Alias : Trường hợp field là một biểu thức thì <Alias> là một tên mới của biểu thức.
Inner Join: mỗi mẫu tin của table1 nối với bất kỳ mẫu tin nào của table2
có dữ liệu của field1 thỏa mãn điều kiện so sánh với dữ liệu của field2 tạo thành mẫu tin của query.
điều kiện: Biểu thức mà dữ liệu mẫu tin phải thỏa mãn
Chú ý:
Khi nêu rõ thuộc t nh đó thuộc về quan hệ nào ta viết theo cú pháp
Trang 27Truy vấn chọn – ví dụ
Trang 28Truy vấn nhóm
Trang 29Truy vấn nhóm – ví dụ
Ví du: Đếm số lượng sinh viên nữ của mỗi khoa
SELECT
Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHO A) AS SOLUONG
FROM (Sv Inner Join Lop On Sv.MALOP =
Trang 30Truy vấn lồng nhau
Là những câu lệnh truy vấn mà trong thành phần WHERE hay
HAVING có chứa thêm một câu lệnh Select khác Câu lệnh select
khác này gọi là subquery Ta lồng câu Select vào phần Where hay
Having theo cú pháp sau:
o bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL)
ANY, SOME là bất kỳ, ALL là tất cả
Các mẫu tin của query chính thỏa mãn toán tử so sánh với bất kỳ/ tất
cả mẫu tin nào của subquery
o bieuThuc [NOT] IN (cauLenhSQL)
Các mẫu tin của query chính có giá trị bằng với một giá trị trong
subquery
o [NOT] EXISTS (cauLenhSQL).
Các mẫu tin của query chính thỏa mãn khi subquery có mẫu tin
Trang 31Truy vấn lồng nhau – ví dụ
Ví du: Lập danh sách sinh viên có học bổng cao nhất
SELECT *
FROM Sv
WHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV);
Ví du: Lập danh sách sinh viên có điểm thi môn CSDL cao nhất
SELECT SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI
FROM sv Inner Join kq On Sv.MASV = Kq.MASV
WHERE MAMH='CSDL' AND DIEMTHI >= ALL
(SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL');
Hiểu và vận dụng tốt lệnh truy vấn dữ liệu là một việc làm cực kỳ cần thiết để tạo ra các kết quả cho báo cáo, thống kê số liệu.
Trang 33Ràng buộc toàn vẹn (Entegrity constraint)
Trong mỗi CSDL luôn tồn tại nhiều mối liên hệ giữa các thuộc t nh, giữa các bộ
Sự liên hệ này có thể xảy ra trong một lược đồ quan hệ hoặc trong các lược đồ quan hệ của một cơ sở dữ liệu Các mối liên hệ này là những điều kiện bất biến
mà tất cả các bộ của những quan hệ có liên quan trong CSDL đều phải thỏa mãn
ở mọi thời điểm Những điều kiện bất biến đó được gọi là ràng buộc toàn vẹn Trong thực tế ràng buộc toàn vẹn là các quy tắc quản lý được áp đặt trên các đối tượng của thế giới thực.
Trang 34Kiểm tra Ràng buộc toàn vẹn
Trang 35Các yếu tố của RBTV
1 Điều kiện
Được mô tả một cách hình thức bằng ngôn ngữ tự nhiên hoặc đại số.
Ví dụ: Cho hai quan hệ:
LOAIDAT( MA_LD, TEN_FAO, TEN_VN,
Trang 36Các yếu tố của RBTV
2) Bối cảnh:
Bối cảnh của một ràng buộc toàn vẹn là những quan hệ mà ràng buộc đó có hiệu lực hay nói một cách khác, đó là những quan hệ cần phải được kiểm tra ràng buộc toàn vẹn Bối cảnh của một ràng buộc toàn vẹn có thể là một hoặc nhiều quan hệ.
Ví dụ: Xét CSDL về đăng ký đất đai bao gồm các thực thể
(quan hệ) sau:
LOAIDAT( MA_LD, TEN_FAO, TEN_VN, KY_HIEU)
DOITUONGSD(MA_DTSD, TEN_DTSD, NGAY_DK)
HIENTRANG( KY_HIEU, MD_SD)
DANGKY( SOTO_BD, SO_THUA, MA_LD, MA_DTSD, KY_HIEU, D_TICH, THOIHAN_SD).
Với các RBTV sau:
Trang 37Các yếu tố của RBTV
R1: Điều kiện: những lọai đất khác nhau sẽ đánh MA_LD khác nhau
Bối cảnh: trong trong một quan hệ
R2: Điều kiện: Các đối tượng sử dụng khác nhau sẽ đánh MA_DTSD khác nhau
Bối cảnh: trong trong một quan hệ
R3: Điều kiện: Mục đích sử dụng đất khác nhau sẽ đánh KY_HIEU khác
nhau
Bối cảnh: Trong một quan hệ
R4: Điều kiện: trong cùng một tờ bản đồ SO_THUA phải khác nhau
Bối cảnh: trong trong cùng một quan hệ
R5: Điều kiện: MA_LD trong trong DANGKY phải có trong LOAIDAT
Bối cảnh: Trong hai hai quan hệ DANGKY và LOAIDAT
R6: Điều kiện: MA_DTSD trong DANGKY phải có trong DOITUONGSD Bối cảnh: Trong hai hai quan hệ DANGKY và DOITUONGSD
Trang 38Tầm ảnh hưởng
Trang 391) Ràng buộc tòan vẹn có bối cảnh là một quan hệ (trên một quan hệ)
Trang 40Phân loại RBTV
2) Ràng buộc tòan vẹn có bối cảnh trên nhiều quan hệ:
a.) Phụ thuộc tồn tại: RBTV kiểu phụ thuộc tồn tại là sự tồn tại của một bộ trong quan này phụ thuộc vào sự tồn tại của 1 bộ trong quan hệ khác Thường gặp nhất là do
sự hiện diện của khóa ngọai hoặc lồng khóa.
b) RBTV liên bộ và liên quan hệ: Là RBTV liên quan đến một nhóm các bộ giữa các quan hệ – ví dụ hạng mức đất.
c) RBTV liên bộ, liên thuộc tính và liên quan hệ: Là RBTV
mà giá trị của một thuộc tính liên quan đến các thuộc tính khác nhau của nhiều bộ trên các quan hệ – ví dụ về định giá đất.
Trang 42Phụ thuộc hàm (Functional dependency)
Phụ thuộc hàm là sự biểu diễn ràng buộc toàn vẹn dưới hình thức toán học để bảo đảm thông tin không bị tổn thất khi phân rã hoặc kết nối giữa các quan hệ.
Cho Q là một quan hệ Q+ là tập thuộc tính của Q; X,Y Q+, XY( :tập rỗng) Ta nói: X xác định Y hay Y phụ thuộc hàm vào X, ký hiệu:X Y nếu:
(luôn xác định cùng trường hợp cụ thể Y khi cho cùng trường hợp cụ thể X)
q1,q2Q+:q1*X=q2*Xq1Y=q2Y
Số PTH cĩ thể cĩ của Q(A1, A2…An) là 2 2n
Trang 43Phụ thuộc hàm – ví dụ
Trang 44Phụ thuộc hàm – ví dụ
Trang 45Phụ thuộc hàm(ví dụ)
MASV → TEN_SV : Mỗi mã sv có một tên :
MAMH → TEN_MH : Mỗi mã môn học có một tên :
MSGV → TEN_GV: M ỗi mã giáo viên có một
mã số công chức
SHTHUA → TEN_CSD: Mỗi số thửa có một tên TEN_CSD:
chủ s ử dụng
Trang 46Phụ thuộc hàm(ví dụ)
Trang 47Phụ Thuộc Hàm – ví dụ
Trang 48Phụ Thuộc Hàm
Trang 49Phụ Thuộc Hàm – ví dụ
Trang 50Tính chất phụ thuộc hàm
Cho quan hệ Q với tập thuộc tính Q + , X, Y, Z thuộc Q +
* Tính chất 1: Tính phản xạ: Nếu Y X X Y (Y là con hoặc = X)
Ví dụ: SOTO_BD, SO_THUA : SOTO_BD, SO_THUA SO_THUA
* Tính chất 2: Tính thêm vào
Nếu X Y thì X Z Y Z (X Z= X Z)
* Tính chất 3: Tính bắc cầu:
Nếu X Y và Y Z thì X Z
Trang 51Tính chất phụ thuộc hàm
DANGKY(SOTO_BD, SO_THUA, CHU_SD, L_.DAT, D_TICH,
Trang 52Một số luật dẫn suy diễn
SODV D_TICH, L_DAT, T_DAY, N_NUOC, HT_SDD.
Nếu biết được số đơn vị đất đai thì sẽ biết tất cả các thông tin khác có liên quan đến đơn vị đó
SO_DV L_DAT, D_TICH (Chỉ muốn biết lọai đất và diện tích của đơn vị đó)
Trang 53Một số luật dẫn suy diễn
Trang 54Một số luật dẫn suy diễn
3) Luật hội:
Cho XY và XZ X YZ
Chứng minh:
XY XXY ( thêm vào)
XZ XYZY (thêm vào)
XYZ(bắc cầu)
Trang 55NỘI DUNG CHƯƠNG TRÌNH