Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
1,95 MB
Nội dung
Chương2 Mô hìnhcơsởdữliệuquanhệ (The Relational Database Model) Giới thiệu Mô hìnhCơsởdữliệuQuanhệ (gọi tắt là MôhìnhQuan hệ) do E.F Codd đề xuất năm 1971 MôhìnhQuanhệ thể hiện dữliệu dưới góc độ logic MôhìnhQuanhệ 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ốquanhệ • Ràng buộc toàn vẹn quanhệ Các Hệquản trị CSDL quanhệ (RDBMS) được xây dựng dựa trên lý thuyết môhìnhquan hệ. • Các khái niệm • Quanhệ / bảng • Thuộc tính • Bộ • Lược đồ quanhệ • Khóa Quanhệ • Dữliệu lưu trữ trong CSDL Quanhệ được tổ chức thành các Quanhệ (relation) • Quanhệ (relation) thể hiện ra như là bảng (table) • Một quanhệcó : Một tên Tập hợp các thuộc tính (attribute) Tập hợp các bộ (tuple) Quanhệ 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) 1 Thuộ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ệuCó thể NULL Bộ và quanhệ • 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 quanhệ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 quanhệ 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 đồ quanhệ (hay quan hệ) • Không có2 bộ trùng nhau trong một quanhệ • 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. Lược đồ Quanhệ • Lược đồ quanhệ - relation schema Mô tả cấu trúc của quanhệ Các thuộc tính và Mối liên hệ giữa các thuộc tính Mỗi lược đồ quanhệ luôn kèm một tân từ để diễn tả ý nghĩa 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 đó. Ký hiệu LĐQH Ketqua( MASV, MAMH, MAKHOA, DIEMTHI) Ký hiệu r(Ketqua) là một thể hiện của LĐQH trên. • Lược đồ CSDL Tập hợp các lược đồ quanhệ trong cùng một CSDL 2 Khóa (Key hay candidate key) • Gọi S là một tập các thuộc tính của lược đồ quanhệ R S được gọi là một siêu khóa (superkey) của lược đồ quanhệ 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 lược đồ quanhệcó thể có nhiều khóa (khóa dự tuyển) Một khóa được chọn để cài đặt gọi là khóa chính (primary key) Không chứa giá trị NULL Khóa ngoại (foreign key) là thuộc tính của LĐQH này nhưng lại là khóa chính của LĐQH khác Khóa phức (composite key) là khóa có nhiều hơn một thuộc tính • Thuộc tính khóa và thuộc tính không khóa Khóa _ ví dụ 1 Monhoc(Mamon, Tenmon, Sotiet) rMonhoc Mamon Tenmon Sotiet THVP Tin hoc văn phòng 30 LTC Lập trình C 60 CSDL1 Cosodulieu 45 CSDL2 Cosodulieu 45 Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet}, {Mamon, Tenmon, Sotiet} Khóa (khóa dự tuyển, khóa chính) : {Mamon} Khóa _ ví dụ2 Ketqua( MaSV, MaMH, Makhoa, Diemthi) rKQ MASV MAMH MAKHOA DIEMTHI 99001 CSDL CNTT 3.0 99002 CSDL CNTT 8.0 99001 THVP CNTT 6.0 99005 THVP AV 6.0 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} Khóa _ ví dụ 3 Sinhvien(MaSV, Hoten, Phai, soCMND) rSV MaSV Hoten Phai soCMND 99001 Nguyen van anh Nam 01245012 99002 Tran Le Tuan Nam 02209875 99003 Nguyen Thi Hong Nu 04563711 99004 Do van Thuan Nam 76876768 3 Siêu khóa : {MaSV} , {MaSV, Hoten}, … , {soCMND} , {soCMND, Hoten},… Khóa (khóa dự tuyển): {MaSV} , {soCMND} Khóa chính : {MaSV} Đại sốquanhệ Giới thiệu Đại sốquanhệ (và phép tính quan hệ) được định nghĩa bởi Codd 1971 được xem như là nền tảng của các ngôn ngữ quanhệ khác như SQL Là ngôn ngữ thủ tục bậc cao Được dùng để chỉ ra cách xây dựng một quanhệ mới từ một hay nhiều quanhệ trong DB Bao gồm tập các phép toán thao tác trên các quanhệ Các phép toán (operation) 5 phép toán cơ bản • Phép chọn (selection) • Phép chiếu (projection) • Phép hợp (union) • Phép trừ (set difference) • Phép tích Descartes (Cartesian product) 3 phép toán suy dẫn* • Phép kết (Join) • Phép giao (Intersection) • Phép chia (Division) (*Có thể được biểu diễn dưới dạng các phép toán cơ bản) Ký hiệu Quanhệ r là một thể hiện của lược đồ quanhệ R(A1, A2, …, Am) Điều kiện F là 1 biểu thức luận lý có giá trị true/false. F bao gồm: • Các toán hạng là hằng hoặc tên thuộc tính • Các phép toán so sánh =, ≠, <, ≤, >, ≥ • Các phép toán luận lý not(¬), and (∧), or (∨) • Phép chọn (selection) Phép chọn trên quanhệ r(R) theo điều kiện F, ký hiệu là r(F) hay r:F , cho kết quả là 1 quanhệ 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 (selection) – ví dụ 1 4 Phép chiếu (Projection) Cho quanhệ 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 quanhệ • 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 Phép chiếu (Projection) – ví dụ 1 Phép hợp (union) Phép hợp của 2quanhệ r và s • r + s = r ∪ s = { t | t ∈ r ∨ t ∈ s} trong đó: r và s là hai quanhệ khả hợp Phép hiệu (Set Difference) Phép hiệu của 2quanhệ r và s • r - s = { t | t ∈ r ∧ t ∉ s } trong đó: r và s là hai quanhệ khả hợp Phép giao (Intersection) Phép giao của 2quanhệ r và s • r * s = r ∩ s = {t | t ∈ r ∧ t ∈ s} trong đó: r và s là hai quanhệ khả hợp 5 Bài tập Cho 2quanhệ định nghĩa trên 2 lược đồ Quanhệ : • Customer( Cuscode, cusName, cusPhone, City) • Branch( BraCode, BraName, BraPhone, City) Hiển thị danh sách các thành phố có khách hàng và đồng thời có chi nhánh ? Hiển thị danh sách các thành phố có khách hàng và không có chi nhánh ? Phép tích Descartes Cho quanhệ 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 quanhệ 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 } Ứ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ốquanhệ ? q ← (r x s) q ( r.MaMH = s.MaMH) 6 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 s.B Bao gồm : • Theta join ( θ θ -join -join) • Equijoin • Natural join • Outer join Phép kết θ - Theta join Cho r và s là hai quanhệ 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 quanhệ q trên lược đồ quanhệ 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] } 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) 7 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 • Quanhệ kết quả q không lặp lại các thuộc tính chung của R và S • vd1 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 Bà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 . 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 quanhệ kết quả • Những giá trị tương ứng với các bộ trong quanhệ 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 8 Phép chia - Division Cho quanhệ r định nghĩa trên R với tập thuộc tính A Cho quanhệ 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 quanhệ 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 9 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] 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 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ìnhquanhệ • Đả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ìnhquanhệ 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 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ốquanhệ 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 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) - 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 2quan hệ. • Được thể hiện thông qua 3 quy tắc sau: 10 [...]... t1 rDatHang, t2 rHoaDon Nu t1.SODH = t2.SODH Thỡ t1.NGAYDH