intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Cơ sở dữ liệu: Chương 3 - Nguyễn Việt Cường

Chia sẻ: Bautroibinhyen15 Bautroibinhyen15 | Ngày: | Loại File: PDF | Số trang:9

45
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng "Cơ sở dữ liệu - Chương 3: Mô hình cơ sở dữ liệu quan hệ" cung cấp cho người học các kiến thức: các khái niệm về mô hình cơ sở dữ liệu quan hệ, các thuộc tính, lược đồ Quan hệ, các phép toán,... Mời các bạn cùng tham khảo nội dung chi tiết.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Cơ sở dữ liệu: Chương 3 - Nguyễn Việt Cường

Giới thiệu<br /> Mô hình Cơ sở dữ liệu Quan hệ (gọi tắt là Mô<br /> hình Quan hệ) do E.F Codd đề xuất năm 1971<br />  Mô hình Quan hệ thể hiện dữ liệu dưới góc độ logic<br />  Mô hình này bao gồm:<br /> <br /> <br /> Chương 3<br /> Mô hình cơ sở dữ liệu quan hệ<br /> <br /> <br /> <br /> (The Relational Database Model)<br /> <br /> <br /> <br /> <br /> <br /> Các khái niệm nhằm mô tả dữ liệu dưới dạng dòng và cột<br /> như quan hệ, bộ, thuộc tính, khóa chính, khoá ngoại, ...<br /> Các phép toán thao tác với dữ liệu_ Đại số quan hệ<br /> Ràng buộc toàn vẹn quan hệ<br /> <br /> Các Hệ quản trị CSDL quan hệ (RDBMS) được xây<br /> dựng dựa trên lý thuyết mô hình quan hệ.<br /> <br /> 1<br /> <br /> Quan hệ<br /> <br /> Các khái niệm<br /> <br /> <br /> <br /> <br /> <br /> <br /> 2<br /> <br /> <br /> <br /> Quan hệ / bảng<br /> Thuộc tính<br /> Bộ<br /> Lược đồ quan hệ<br /> Khóa<br /> <br /> <br /> <br /> <br /> <br /> Dữ liệu lưu trữ trong CSDL Quan hệ được tổ<br /> chức thành các Quan hệ (relation)<br /> Quan hệ (relation) thể hiện ra như là bảng<br /> (table)<br /> Một quan hệ có :<br /> <br /> <br /> <br /> <br /> <br /> Một tên<br /> Tập hợp các thuộc tính (attribute), có tên và kiểu dữ<br /> liệu<br /> Tập hợp các bộ (tuple), có thể thay đổi theo thời gian<br /> <br /> 3<br /> <br /> Quan hệ và bảng<br /> <br /> 4<br /> <br /> Thuộc tính<br /> <br /> Thuật ngữ tương đương :<br /> • Quan hệ, bộ, thuộc tính (Relation, tuple, attribute)<br /> • Bảng, dòng, cột (Table, row, column)<br /> <br /> MASV<br /> 99001<br /> <br /> MAMH<br /> CSDL<br /> <br /> MAKHOA DIEMTHI<br /> CNTT<br /> 3.0<br /> <br /> 99002<br /> 99001<br /> 99005<br /> <br /> CSDL<br /> THVP<br /> THVP<br /> <br /> CNTT<br /> CNTT<br /> AV<br /> <br /> 8.0<br /> 6.0<br /> 5.0<br /> 5<br /> <br /> Một thuộc tính bao gồm :<br />  Tên thuộc tính<br />  Tên phân biệt<br />  Giúp diễn giải ý nghĩa thuộc tính (thuộc tính của thực thể,<br /> hay mối kết hợp)<br />  Kiểu dữ liệu thuộc tính<br />  Số nguyên, số thực, văn bản, logic,…<br />  Miền giá trị xác định<br />  Có thể bị áp đặt bởi qui tắc nghiệp vụ, hay ràng buộc dữ<br /> liệu<br />  Có thể NULL<br /> 6<br /> <br /> Lược đồ Quan hệ<br /> <br /> Bộ và quan hệ<br /> <br /> <br /> <br /> Mỗi bộ (dòng) là một tổ hợp các giá trị tương ứng với<br /> các thuộc tính của quan hệ<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> mô tả về một thực thể , hay một mối kết hợp có trong thế<br /> giới thực<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> Ký hiệu: r(Ketqua)<br /> Không có 2 bộ trùng nhau trong một quan hệ<br /> <br /> khóa<br /> Trật tự của các bộ (và các thuộc tính) là không quan trọng<br /> đối với DBMS.<br /> <br /> <br /> <br /> Khóa<br /> (Key hay candidate key)<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> Lược đồ CSDL<br /> <br /> <br /> Tập hợp các lược đồ quan hệ trong cùng một<br /> CSDL<br /> <br /> 8<br /> <br /> Khóa _ ví dụ 1<br /> <br /> Gọi S là một tập các thuộc tính của lược đồ quan hệ R<br /> <br /> <br /> Các thuộc tính và Mối liên hệ giữa các thuộc tính<br /> Mỗi lược đồ quan hệ luôn kèm một tân từ để diễn tả<br /> ý nghĩa của nó.<br /> Vd, tân từ: Mỗi Sinh viên thuộc một khoa, học một<br /> môn học thì có kết quả thi môn học đó.<br /> Ký hiệu:<br /> <br /> Ketqua( MASV, MAMH, MAKHOA, DIEMTHI)<br /> <br /> 7<br /> <br /> <br /> <br /> Mô tả cấu trúc của quan hệ<br /> <br /> Một tập các bộ xác định tại một thời điểm, gọi là<br /> một thể hiện của lược đồ quan hệ (hay quan hệ)<br /> <br /> <br /> <br /> <br /> <br /> Lược đồ quan hệ - relation schema<br /> <br /> S được gọi là một siêu khóa (superkey) của lược đồ quan hệ<br /> R, nếu với hai bộ bất kỳ trong R thì giá trị của các thuộc tính<br /> trong S là khác nhau<br /> Siêu khoá có ít thuộc tính nhất được gọi là khóa (key) hay<br /> khóa dự tuyển (candidate key)<br />  Một lược đồ quan hệ có thể có nhiều khóa (khóa dự tuyển)<br /> Một khóa được chọn để cài đặt gọi là khóa chính (primary<br /> key)<br />  Không chứa giá trị NULL<br /> khóa ngoại (foreign key) là thuộc tính của LĐQH này nhưng<br /> lại là khóa chính của LĐQH khác<br /> Khóa phức (composite key) là khóa có nhiều hơn một thuộc<br /> tính<br /> <br /> Thuộc tính khóa và thuộc tính không khóa<br /> <br /> 9<br /> <br /> <br /> <br /> Monhoc(Mamon, Tenmon, Sotiet)<br /> <br /> rMonhoc<br /> <br /> Mamon Tenmon<br /> THVP<br /> Tin hoc văn phòng<br /> LTC<br /> Lập trình C<br /> <br /> Sotiet<br /> 30<br /> 60<br /> <br /> CSDL1<br /> CSDL2<br /> <br /> 45<br /> 45<br /> <br /> Co so du lieu<br /> Co so du lieu<br /> <br /> Siêu khóa : {Mamon}, {Mamon, Tenmon}, {Mamon, Sotiet},<br /> {Mamon, Tenmon, Sotiet}<br /> Khóa (khóa dự tuyển, khóa chính) : {Mamon}<br /> <br /> Khóa _ ví dụ 2<br /> <br /> Khóa _ ví dụ 3<br /> <br /> Ketqua(MaSV, MaMH, Makhoa, Diemthi)<br /> rKQ<br /> MASV<br /> MAMH<br /> MAKHOA DIEMTHI<br /> <br /> 10<br /> <br /> <br /> <br /> Sinhvien(MaSV, Hoten, Phai, soCMND)<br /> rSV MaSV Hoten<br /> Phai soCMND<br /> <br /> <br /> <br /> 99001<br /> 99002<br /> 99001<br /> 99005<br /> <br /> CSDL<br /> CSDL<br /> THVP<br /> THVP<br /> <br /> CNTT<br /> CNTT<br /> CNTT<br /> AV<br /> <br /> 99001 Nguyen van anh<br /> <br /> Nam 02209875<br /> <br /> 99003 Nguyen Thi Hong Nu<br /> 99004 Do van Thuan<br /> <br /> Siêu khóa: {MaSV, MaMH}, {MaSV,MaMH,MaKhoa},…<br /> Khóa (khóa dự tuyển, khóa chính , khóa phức): {MaSV, MaMH}<br /> Khóa ngoại : {Makhoa}<br /> <br /> Nam 01245012<br /> <br /> 99002 Tran Le Tuan<br /> <br /> 3.0<br /> 8.0<br /> 6.0<br /> 5.0<br /> <br /> 04563711<br /> <br /> Nam<br /> <br /> Siêu khóa : {MaSV} , {MaSV, Hoten}, … ,<br /> {soCMND} , {soCMND, Hoten},…<br /> Khóa (khóa dự tuyển): {MaSV} , {soCMND}<br /> <br /> 11<br /> <br /> 12<br /> <br /> Khóa chính : {MaSV}<br /> <br /> Đại số quan hệ<br /> <br /> <br /> <br /> <br /> Giới thiệu<br /> <br /> Khái niệm<br /> Các phép toán đại số quan hệ<br /> Ví dụ<br /> <br /> <br /> <br /> Đại số quan hệ (và phép tính quan hệ) được<br /> định nghĩa bởi Codd 1971<br /> <br /> <br /> <br /> <br /> Là ngôn ngữ thủ tục bậc cao<br /> <br /> <br /> <br /> <br /> được xem như là nền tảng của các ngôn ngữ<br /> quan hệ khác như SQL<br /> Được dùng để chỉ ra cách xây dựng một quan hệ mới<br /> từ một hay nhiều quan hệ trong DB<br /> <br /> Bao gồm tập các phép toán thao tác trên các<br /> quan hệ<br /> <br /> 13<br /> <br /> Các phép toán (operation)<br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> Ký hiệu<br /> <br /> 5 phép toán cơ bản<br /> <br /> <br /> 14<br /> <br /> <br /> <br /> Phép chọn (selection)<br /> Phép chiếu (projection)<br /> Phép hợp (union)<br /> Phép trừ (set difference)<br /> Phép tích Descartes (Cartesian product)<br /> <br /> <br /> <br /> Quan hệ r là một thể hiện của lược đồ quan<br /> hệ R(A1, A2, …, Am)<br /> Điều kiện F là 1 biểu thức luận lý có giá trị<br /> true/false. F bao gồm:<br /> <br /> <br /> <br /> 3 phép toán suy dẫn*<br /> Phép kết (Join)<br />  Phép giao (Intersection)<br />  Phép chia (Division)<br /> 15<br /> (*Có thể được biểu diễn dưới dạng các phép toán cơ bản)<br /> <br /> Các toán hạng là hằng hoặc tên thuộc tính<br /> Các phép toán so sánh =, , , <br /> <br /> <br /> <br /> Các phép toán luận lý not (), and (), or ()<br /> <br /> <br /> <br /> 16<br /> <br /> Phép chọn (selection) – ví dụ 1<br /> Phé chọ<br /> Phép chọn (selection)<br /> Phé chọ<br /> chọn trên quan hệ r(R) theo điều kiện<br /> F, ký hiệu là r(F) hay r:F , cho kết quả là 1<br /> quan hệ bao gồm các bộ của r thỏa mãn<br /> điều kiện F<br /> r(F) = r:F = { t |t r và F(t) = true }<br /> <br />  Phép<br /> <br /> Relation r<br /> B<br /> <br /> C<br /> <br /> D<br /> <br /> 1<br /> 5<br /> <br /> 7<br /> <br /> <br /> <br /> <br /> <br /> 1<br /> <br /> 7<br /> <br />  12 3<br />  23 10<br /> <br /> A<br /> <br /> B<br /> <br /> C<br /> <br /> D<br /> <br /> <br /> <br /> 1<br /> <br /> 7<br /> <br /> <br /> <br />  23 10<br /> 18<br /> <br />  12 3<br />  23 10<br /> <br /> D<br /> <br /> <br /> <br /> 7<br /> <br /> <br /> <br /> <br /> <br /> 17<br /> 17<br /> <br /> <br /> <br /> <br /> <br /> <br /> * Phép chọn và phép chiếu là phép toán một toán hạng<br /> <br /> <br /> <br /> C<br /> <br /> <br /> <br /> r(A=B)<br /> <br /> B<br /> <br /> <br /> <br /> A<br /> <br /> A<br /> <br /> r(A=B ^ D>5)<br /> <br /> Phép chiếu (Projection) – ví dụ 1<br /> Phé chiế<br /> <br /> Phép chiếu (Projection)<br /> Phé chiế<br /> <br />  Relation<br /> <br />  Cho<br /> <br /> quan hệ r trên R(A1, A2,..,Am) và tập<br /> con các thuộc tính X={Aj1, Aj2, …, Ajn} với<br /> j1, j2,.., jn là các số nguyên phân biệt nằm<br /> trong khoảng từ 1 đến m<br />  Phép chiếu r trên tập thuộc tính X cho kết<br /> quả là 1 quan hệ<br /> r[X] = r.X = {t |  u r sao cho t = u[X]}<br /> <br /> B<br /> <br /> r[A,C]<br /> <br /> C<br /> <br /> A<br /> <br /> C<br /> <br /> A C<br /> <br />  10 1<br /> <br /> <br /> <br /> 1<br /> <br />  1<br /> <br />  20 1<br /> <br /> <br /> <br /> 1<br /> <br /> <br /> <br /> 1<br /> <br />  30 1<br /> <br /> <br /> <br /> 1<br /> <br /> <br /> <br /> 2<br /> <br />  40 2<br />  Phép<br /> <br /> A<br /> <br /> r<br /> <br /> <br /> <br /> 2<br /> <br /> chiếu loại bỏ những bộ trùng nhau<br /> 19<br /> 19<br /> <br /> Phép hợp (union)<br /> Phé hợ<br /> <br /> <br /> 20<br /> <br /> Phép hiệu (Set Difference)<br /> <br /> Phép hợp của 2 quan hệ r và s<br /> r + s = r  s = { t | t  r  t  s}<br /> trong đó: r và s là hai quan hệ khả hợp<br /> <br /> <br /> <br /> Phép hiệu của 2 quan hệ r và s<br /> <br /> r-s={t|tr  ts}<br /> trong đó: r và s là hai quan hệ khả hợp<br /> <br /> r+s<br /> <br /> r-s<br /> <br /> 21<br /> <br /> Phép giao (Intersection)<br /> <br /> <br /> 22<br /> <br /> Bài tập<br /> <br /> Phép giao của 2 quan hệ r và s<br /> r * s = r  s = {t | t  r  t  s}<br /> <br /> Cho 2 quan hệ định nghĩa trên 2 lược đồ Quan hệ :<br /> Customer( Cuscode, cusName, cusPhone, City)<br /> Supplier ( SupCode, SupName, SupPhone, City)<br /> <br /> <br /> trong đó: r và s là hai quan hệ khả hợp<br /> <br /> r*s<br /> <br /> <br /> <br /> <br /> Hai quan hệ r và s là khả hợp ( union-compatible) khi :<br /> •Có cùng số thuộc tính<br /> •Các thuộc tính tương ứng có cùng miền giá trị<br /> <br /> 23<br /> <br /> Hiển thị danh sách các thành phố có khách hàng và<br /> đồng thời có nhà cung cấp?<br /> Hiển thị danh sách các thành phố có khách hàng và<br /> không có nhà cung cấp?<br /> <br /> 24<br /> <br /> Phép tích Descartes<br /> Phé tí<br /> <br /> Phép tích Descartes – ví dụ 1<br /> Phé tí<br /> <br /> Cho quan hệ r trên lược đồ R(A1, A2,..,Am)<br /> và s trên lược đồ S(B1,B2,…,Bn)<br /> Nếu R và S có các thuộc tính trùng tên, thì<br /> phải đổi tên.<br /> <br />  Relations r, s:<br /> MASV<br /> <br /> MAMH<br /> <br /> rxs<br /> <br /> DIEM<br /> <br /> MAMH<br /> <br /> TENMH<br /> <br /> 99001<br /> <br /> CSDL<br /> <br /> 5.0<br /> <br /> CSDL<br /> <br /> COSO DULIEU<br /> <br /> 99002<br /> <br /> FOX<br /> <br /> 2.0<br /> <br /> FOX<br /> <br /> FOXPRO<br /> <br /> 99003<br /> <br /> MANG<br /> <br /> 8.0<br /> <br />  Phép<br /> <br /> tích Descartes của r và s là 1 quan hệ<br /> trên lược đồ T(A1, A2,.., Am, B1, B2, ….,Bn)<br /> r x s ={ t |  tr  r và ts  s<br /> với t[A1, A2,.., Am] = tr<br /> và t[B1, B2, ….,Bn] = ts }<br /> <br /> MASV<br /> <br /> MAMH<br /> <br /> DIEM<br /> <br /> MAMH<br /> <br /> TENMH<br /> <br /> 99001<br /> <br /> COSO DULIEU<br /> <br /> CSDL<br /> <br /> 5.0<br /> <br /> FOX<br /> <br /> FOXPRO<br /> <br /> FOX<br /> <br /> 2.0<br /> <br /> CSDL<br /> <br /> COSO DULIEU<br /> <br /> 99002<br /> <br /> FOX<br /> <br /> 2.0<br /> <br /> FOX<br /> <br /> FOXPRO<br /> <br /> 99003<br /> <br /> <br /> <br /> CSDL<br /> <br /> 99002<br /> <br /> Phép tích Descartes<br /> Phé tí<br /> <br /> 5.0<br /> <br /> 99001<br /> <br /> MANG<br /> <br /> 8.0<br /> <br /> CSDL<br /> <br /> COSO DULIEU<br /> <br /> 99003<br /> <br /> 25<br /> 25<br /> <br /> CSDL<br /> <br /> MANG<br /> <br /> 8.0<br /> <br /> FOX<br /> <br /> FOXPRO<br /> <br /> 26<br /> <br /> Phép kết (join)<br /> <br /> ứng dụng :<br />  phép<br /> <br /> tích Descartes là một phép tính vô nghĩa<br /> nếu đứng riêng. Tuy nhiên, nếu kết hợp sau phép<br /> toán này một phép chọn phù hợp , kết quả sẽ có<br /> nghĩa : kết hợp các bộ có liên quan từ hai quan<br /> hệ.<br /> <br /> <br /> <br /> thay thế phép (r x s) (F)<br /> với F là biểu thức điều kiện có dạng r.A  s.B<br /> <br /> <br /> <br /> Bao gồm :<br /> <br /> <br /> : Hiển thị bảng điểm của các sinh viên. Bao<br /> gồm MaSV, MaMH, Diem, TenMH<br /> => Viết biểu thức đại số quan hệ ?<br /> <br />  Vd<br /> <br /> <br /> <br /> <br /> (r x s) ( r.MaMH = s.MaMH)<br /> <br /> <br /> <br /> Theta join (-join)<br />  join<br /> Equijoin<br /> Natural join<br /> Outer join<br /> <br /> 27<br /> <br /> 28<br /> <br /> 27<br /> <br /> Phép kết  - Theta join<br /> <br /> Phép kết  - Theta join<br /> r và s là hai quan hệ tương ứng trên các<br /> lược đồ R(A1, A2,..,Am) và S(B1,B2,…,Bn)<br />  Gọi Q(A1, A2,.., Am, B1, B2, ….,Bn)<br />   là 1 phép so sánh<br />  Ai  R và Bj  S là 2 thuộc tính có thể so sánh<br /> với nhau bởi phép <br />  Phép kết  của r và s trên 2 thuộc tính Ai và Bj<br /> s<br /> ký hiệu , r Ai  Bj cho kết quả là 1 quan hệ q trên<br /> lược đồ quan hệ Q, bao gồm các bộ t<br /> q(Q) = {t |  tr  r và ts  s với t[R] = tr<br /> và t[S] = ts và t[Ai]  t[Bj] }<br />  Cho<br /> <br /> 29<br /> 29<br /> <br /> dụ : Hiển thị ứng với mã mỗi môn học và<br /> các môn học tiếp sau nó ?<br /> MONHOC ( MaMon, TenMon, SoTC, Hocky)<br />  Ví<br /> <br /> MaMon<br /> A<br /> B<br /> <br /> TenMon SoTC<br /> Aaaa<br /> 3<br /> Bbbb<br /> 4<br /> <br /> Hocky<br /> 1<br /> 1<br /> <br /> C<br /> D<br /> <br /> Cccc<br /> Dddd<br /> <br /> 2<br /> 3<br /> <br /> 3<br /> 2<br /> <br /> Chú ý : Sử dụng phép gán để tạo ra một biến quan hệ tạm:<br /> s  r [MaMon, Hocky] , với r  MONHOC<br /> <br /> 30<br /> 30<br /> <br />
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2