Bài giảng môn Cơ sở dữ liệu - Chương 2: Mô hình dữ liệu quan hệ

pdf 37 trang ngocly 3020
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Cơ sở dữ liệu - Chương 2: Mô hình dữ liệu quan hệ", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfbai_giang_mon_co_so_du_lieu_chuong_2_mo_hinh_du_lieu_quan_he.pdf

Nội dung text: Bài giảng môn Cơ sở dữ liệu - Chương 2: Mô hình dữ liệu quan hệ

  1. CƠ SỞ DỮ LIỆU ( Databases ) Ch ươ ng 2: Mô hình d ữ li ệu quan h ệ bangtqh@utc2.edu.vn Nội dung  2.1. Các khái ni ệm cơ b ản  2.2. Các phép toán trên đạ i s ố t ập h ợp  2.3. các phép toán trên đạ i s ố quan h ệ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 2
  2. Gi ới thi ệu  Do ti ến s ĩ E. F. Codd đư a ra – “A Relation Model for Large Shared Data Banks”, Communications of ACM, 6/1970  Cung c ấp m ột c ấu trúc d ữ li ệu đơ n gi ản và đồ ng b ộ – Khái ni ệm quan h ệ  Có n ền t ảng lý thuy ết v ững ch ắc – Lý thuy ết t ập h ợp  Là c ơ s ở c ủa các HQT CSDL th ươ ng m ại – Oracle, DB2, SQL Server bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 3 2.1. Các khái ni ệm c ơ bản 1. Quan h ệ (relation) 2. Thu ộc tính (attribute) 3. Bộ giá tr ị (Tuple) 4. Lượ c đồ quan h ệ (realation schema) và L ượ c đồ c ơ s ở dữ li ệu (database schema) 5. Th ể hi ện c ủa l ượ c đồ quan h ệ 6. Khóa – Siêu khóa – Khóa d ự tuy ển – Khóa chính – Khóa ngo ại 7. Ph ụ thu ộc hàm 8. Ràng bu ộc toàn v ẹn 9. Các thao tác c ơ b ản trên quan h ệ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 4
  3. 2.1.1. Quan h ệ  Các thông tin lưu tr ữ trong CSDL đượ c tổ ch ức thành bảng (table) 2 chi ều gọi là quan hệ 1 c ột là 1 thu ộc tính c ủa nhân viên TENNV HONV NS DIACHI GT LUONG PHG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 1 dòng là 1 nhân viên Tên quan h ệ là NHANVIEN bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 5 2.1.1. Quan h ệ (tt)  Quan h ệ g ồm – Tên –Tập h ợp các c ột •Cố đị nh • Đượ c đặ t tên • Có ki ểu d ữ li ệu –Tập h ợp các dòng • Thay đổ i theo th ời gian  Một dòng ~ M ột th ực th ể  Quan h ệ ~ T ập th ực th ể bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 6
  4. Các đặ c tr ưng c ủa quan h ệ  Th ứ t ự các b ộ trong quan h ệ là không quan tr ọng HONV TENNV NGSINH DCHI PHAI LUONG PHG NguyenTung 12/08/1955 638 NVC Q5 Nam 40000 5 BuiHang 07/19/1968 332 NTH Q1 Nu 25000 4 LeNhu 06/20/1951 291 HVH QPN Nu 43000 4 NguyenHung 09/15/1962 null Nam 38000 5  Th ứ t ự gi ữa các giá tr ị trong m ột b ộ là quan tr ọng Bộ khác Bộ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 7 Các đặ c tr ưng c ủa quan h ệ (tt)  Mỗi giá tr ị trong m ột b ộ – Ho ặc là m ột giá tr ị nguyên t ố – Ho ặc là m ột giá tr ị r ỗng ( null )  Không có b ộ nào trùng nhau trong m ột th ể hi ện c ủa quan h ệ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 8
  5. 2.1.2. Thu ộc tính - Attribute  Tên các c ột của quan h ệ  Mô t ả ý ngh ĩa cho các giá tr ị t ại c ột đó Thu ộc tính TENNV HONV NS DIACHI GT LUONG PHG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5  Tất c ả các d ữ li ệu trong cùng 1 m ột c ột đề u có cùng ki ểu d ữ li ệu bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 9 2.1.3. Bộ - Tuple  Là các dòng của quan h ệ ( tr ừ dòng tiêu đề )  Th ể hi ện giá tr ị c ụ th ể c ủa các thu ộc tính Dữ li ệu c ụ th ể của thu ộc tính bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 10
  6. 2.1.3. Bộ - Tuple (tt)  Mi ền giá tr ị: là tập các giá tr ị nguyên tố gắn li ền với một thu ộc tính – Ki ểu d ữ li ệu c ơ s ở • Chu ỗi ký t ự (string) •Số (integer) – Các ki ểu d ữ li ệu ph ức t ạp •Tập h ợp (set) • Danh sách (list) Không đượ c ch ấp nh ận •Mảng (array) •Bản ghi (record)  Ví d ụ – TENNV: string – LUONG: integer bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 11 2.1.4. L ược đồ quan h ệ  Là s ự tr ừu t ượ ng hóa c ủa quan h ệ ở m ức độ c ấu trúc của b ảng 2 chi ều.  Lượ c đồ quan h ệ ch ỉ ra – Tên của quan h ệ – Tên c ủa t ập thu ộc tính Lượ c đồ quan h ệ NHANVIEN(MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG) Là t ập h ợp bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 12
  7. 2.1.4. L ược đồ quan hệ (tt)  Lượ c đồ CSDL là tập hợp gồm nhi ều lượ c đồ quan hệ.  Ví d ụ: Lượ c đồ CSDL NHANVIEN(MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG) PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC) DIADIEM_PHG(MAPHG, DIADIEM) THANNHAN(MA_NVIEN, TENTN, GT, NS, QUANHE) DEAN(TENDA, MADA, DDIEM_DA, PHONG) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 13 2.1.4. L ược đồ quan h ệ (tt)  Đị nh ngh ĩa hình th ức l ượ c đồ quan h ệ – Cho A 1, A 2, , A n là các thu ộc tính – Có các mi ền giá tr ị D 1, D 2, , D n tươ ng ứng – Ký hi ệu R(A 1:D 1, A 2:D 2, , A n:D n) là m ột l ượ c đồ quan h ệ  Bậc của lượ c đồ quan hệ – Là số lượ ng thu ộc tính trong lượ c đồ  Lực lượ ng của quan hệ – Là số dòng (b ộ) trong quan hệ  Ví d ụ: – NHANVIEN (MANV:integer, TENNV:string, HONV:string, NGSINH:date, DCHI:string, GT:string, LUONG:integer, DONVI:integer) • NHANVIEN là một lượ c đồ bậc 8 mô tả đố i tượ ng nhân viên • MANV là m ột thu ộc tính có mi ền giá tr ị là s ố nguyên • TENNV là m ột thu ộc tính có mi ền giá tr ị là chu ỗi ký t ự bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 14
  8. 2.1.5. Th ể hi ện c ủa quan h ệ  Một quan h ệ r của l ượ c đồ quan h ệ R(A 1, A 2, , A n), ký hi ệu r(R) , là m ột t ập các b ộ r = {t 1, t 2, , t k}  Trong đó m ỗi t i là 1 danh sách có th ứ t ự của n giá tr ị ti= –Mỗi v j là m ột ph ần t ử c ủa mi ền giá tr ị DOM(A j) = D i ho ặc giá tr ị rỗng TENNV HONV NGSINH DCHI PHAI LUONG PHG t1 Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 t2 Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 t3 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 t4 Hung Nguyen 09/15/1962 null Nam 38000 5 Vj bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 15 2.1.6. Khóa (Keys)  Siêu khóa (Super Key) – Khóa c ủa quan h ệ R(A 1, A 2, A 3, , A n) là t ập các thu ộc tính K th ỏa mãn: ∀ bộ q 1, q 2 của R đề u t ồn t ại thu ộc tính A ∈ K sao cho q 1[A] ≠ q2[A]  K là siêu khóa của quan hệ R nếu K’ ⊆ K cũng là khóa của R  Các bộ trong quan hệ ph ải khác nhau từng đôi một bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 16
  9. 2.1.6. Khóa (tt)  Khóa d ự tuy ển – Candidate Key – Khóa của quan h ệ nếu ∄ ⊂ thì đượ c g ọi là khóa t ối ti ểu. – Có th ể có nhi ều khóa t ối ti ểu trong 1 quan h ệ. Nh ững khóa t ối ti ểu này đượ c g ọi là khóa d ự tuy ển ( đủ điều ki ện ứng tuy ển để làm khóa c ủa quan h ệ) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 17 2.1.6. Khóa (tt)  Khóa chính (Primary Key) – Trong s ố các khóa d ự tuy ển, khóa nào đượ c ch ọn để tạo các index chi ph ối truy xu ất đế n các b ộ thì đượ c g ọi là Khóa chính. – Xét quan h ệ NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) – Có 2 khóa (MANV) và (HONV, TENNV, NS) – Khi cài đặ t quan h ệ thành b ảng (table) • Ch ọn 1 khóa làm c ơ s ở để nh ận bi ết các bộ • Khóa đượ c ch ọn gọi là khóa chính (PK - primary key) – Các thu ộc tính khóa chính ph ải có giá tr ị khác null – Các thu ộc tính khóa chính th ườ ng đượ c g ạch d ướ i NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 18
  10. 2.1.6. Khóa (tt)  Khóa dự phòng (Alternate key) – Là các khóa dự tuy ển không đượ c ch ọn làm khóa chính – Trong ví dụ: NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG) Khóa dự phòng là: (TENNV, HONV, NSNV) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 19 2.1.6. Khóa (tt)  Tham chi ếu: –Một bộ trong quan hệ R, tại thu ộc tính A nếu nh ận một giá tr ị từ một thu ộc tính B của quan hệ S, ta gọi R tham chi ếu S –Bộ đượ c tham chi ếu ph ải t ồn t ại tr ướ c TENPHG MAPHG S Nghien cuu 5 Dieu hanh 4 Quan ly 1 TENNV HONV NS DCHI GT LUONG PHG Tung Nguyen 12/08/1955 638 NVC Q5 Nam 40000 5 R Hang Bui 07/19/1968 332 NTH Q1 Nu 25000 4 Nhu Le 06/20/1951 291 HVH QPN Nu 43000 4 Hung Nguyen 09/15/1962 Ba Ria VT Nam 38000 5 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 20
  11. 2.1.6. Khóa (tt) Khóa ngo ại – Foreign key – Xét 2 l ượ c đồ R và S, g ọi FK là t ập thu ộc tính khác rỗng c ủa R • FK là khóa ngo ại (Foreign Key ) của R khi các thu ộc tính trong FK ph ải có cùng mi ền giá tr ị với các thu ộc tính khóa chính của S. Giá tr ị tại FK của một bộ t1∈R – Ho ặc b ằng giá tr ị t ại khóa chính c ủa m ột b ộ t 2∈S – Ho ặc b ằng giá tr ị r ỗng  Ví d ụ Quan h ệ tham chi ếu NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG ) PHONGBAN(TENPHG, MAPHG) Khóa ngo ại Quan h ệ b ị Khóa chính tham chi ếu bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 21 2.1.6. Khóa (tt)  Nh ận xét Foreign key – Trong một lượ c đồ quan hệ, một thu ộc tính vừa có th ể tham gia vào khóa chính, vừa tham gia vào khóa ngo ại – Khóa ngo ại có th ể tham chi ếu đế n khóa chính trên cùng 1 l ượ c đồ quan h ệ VD: ? – Có th ể có nhi ều khóa ngo ại tham chi ếu đế n cùng m ột khóa chính. VD: ?? bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 22
  12. 2.1.6. Khóa (tt)  Nh ận xét chung v ề Khóa của quan h ệ – Giá tr ị của khóa dùng để xác đị nh một bộ cụ th ể trong quan hệ – Khóa là một đặ c tr ưng của lượ c đồ quan hệ, không ph ụ thu ộc vào th ể hi ện quan hệ. – Khóa đượ c xây dựng dựa vào ý ngh ĩa của một số thu ộc tính trong quan hệ –Lượ c đồ quan hệ có th ể có nhi ều khóa bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 23 2.1.7. Phụ thuộc hàm  Đị nh ngh ĩa: – Quan hệ R đượ c đị nh ngh ĩa trên tập thu ộc tính U = {A1 An} X, Y⊂ U là 2 tập con của U. Nếu tồn tại một ánh xạ f: X → Y thì ta nói rằng X xác đị nh hàm Y, hay Y ph ụ thu ộc hàm vào X và ký hi ệu là X → Y.  Ví dụ: NHANVIEN(MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG) PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC) DIADIEM_PHG(MAPHG, DIADIEM) THANNHAN(MA_NVIEN, TENTN, GT, NS, QUANHE) DEAN(TENDA, MADA, DDIEM_DA, PHONG) Quan hệ NHANVIEN có ph ụ thu ộc hàm: MANV → {TENNV, HONV, NS, DIACHI} Quan hệ PHONGBAN có ph ụ thu ộc ham: MAPHG → {TENPHG} bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 24
  13. 2.1.8. Ràng buộc toàn v ẹn  RBTV (Integrity Constraint) – Là nh ững qui tắc, điều ki ện, ràng bu ộc cần đượ c th ỏa mãn trong một th ể hi ện của CSDL quan hệ  RBTV đượ c mô tả khi đị nh ngh ĩa lượ c đồ quan hệ  RBTV đượ c ki ểm tra khi các quan hệ có thay đổ i bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 25 2.1.8. Ràng buộc toàn vẹn (tt)  Ràng bu ộc th ực th ể – Trong một quan không đượ c có thu ộc tính nào của khóa chính ch ưa giá tr ị null  Ràng bu ộc tham chi ếu –Nếu quan hệ có thu ộc tính là khóa ngo ại thì thu ộc tính đó ph ải tham chi ếu đượ c / tồn tại ở quan hệ bị tham chi ếu  Ràng bu ộc nghi ệp vụ – Nh ững lu ật liên quan tới nghi ệp vụ hay ng ườ i qu ản tr ị CSDL – VD: Ch ỉ rút ti ền nếu số dư tài kho ản còn lại sau khi rút số ti ền rút lớn hơn 50K VN Đ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 26
  14. 2.1.8. Ràng buộc toàn v ẹn (tt)  Bi ểu di ễn ràng bu ộc tham chi ếu bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 27 2.1.9. Các phép toán c ơ b ản trên quan h ệ  Phép thêm m ột b ộ m ới vào quan h ệ – Vi ệc thêm một bộ giá tr ị mới t vào quan hệ R (A1,A2, A3, ,A n) làm cho th ể hi ện TR của nó tăng thêm một ph ần tử mới: – INSERT (R; A i1 = v 1, A i2 = v 2, A im = v m) trong đó v i ∈ Dom (A ii ) – Phép thêm m ới có th ể không th ực hi ện đượ c ho ặc làm mất đi tính toàn v ẹn c ủa CSDL • Giá tr ị khóa chính = null •Bộ m ới không phù h ợp ki ểu giá tr ị c ủa thu ộc tính nào đó. • Giá tr ị m ới thêm không thu ộc mi ền giá tr ị bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 28
  15. 2.1.9. Các phép toán c ơ b ản (tt)  Phép lo ại b ỏ b ộ kh ỏi quan h ệ – DELETE (R; A i1 =v 1, A i2 =v 2, ., A im =v m) – Trong đó A ij =v j đượ c coi nh ư nh ững điều ki ện th ỏa mã để lo ại b ỏ m ột b ộ ra kh ỏi quan h ệ – Phép lo ại b ỏ có th ể d ẫn đế n phá h ỏng s ự toàn v ẹn (khi xóa 1 b ộ ở quan h ệ b ị tham chi ếu)  Phép s ửa đổ i giá tr ị c ủa các thu ộc tính – Vi ệc sửa dữ li ệu rất cần thi ết, một số hệ qu ản tr ị CSDL đư a ra nhi ều lệnh khác nhau nh ư: EDIT , CHANGE , BROW , UPDATE (FoxPro, Dbase) – UPDATE (R; A i1 = c 1, A i2 = c 2, A im = c m; A i1 = v1, Ai2 =v 2, Aim =v m). Trong đó: A ij = c j (j = 1, 2, , m) là điều ki ện tìm ki ếm b ộ giá tr ị để sửa. Aij = v j (j = 1, 2, , m) là giá tr ị m ới c ủa b ộ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 29 2.2. Các phép toán trên ĐS t ập h ợp  Phép H ợp (Union)  Phép Hi ệu (Minus)  Phép Giao (Intersection)  Tích Đề -các (Cartesrian)  Phép chia (Division) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 30
  16. 2.2. Các phép toán trên ĐS t ập h ợp  Tính kh ả h ợp (T ươ ng thích đồ ng nh ất - Union Compatibility) – Hai l ượ c đồ quan h ệ R(A 1, A 2, , A n) và S(B 1, B 2, , B n) là kh ả hợp nếu • Cùng b ậc n • Và có DOM(A i)=DOM(B i) , 1 ≤ i ≤ n  Kết qu ả c ủa ∪, ∩, và − là m ột quan h ệ có cùng tên thu ộc tính với quan h ệ đầ u tiên (R) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 31 2.2.1. Phép hợp  Cho 2 quan h ệ R và S kh ả h ợp  Phép h ợp c ủa R và S – Ký hi ệu R ∪ S – Là m ột quan h ệ g ồm các b ộ thu ộc R ho ặc thu ộc S, ho ặc c ả hai (các b ộ trùng l ắp s ẽ b ị b ỏ)  Ví d ụ R ∪ S = { t / t ∈R ∨ t∈S } R AB S AB R ∪ S AB α 1 α 2 α 1 α 2 β 3 α 2 β 1 β 1 β 3 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 32
  17. 2.2.2. Phép giao  Cho 2 quan h ệ R và S kh ả h ợp  Phép giao c ủa R và S – Ký hi ệu R ∩ S – Là m ột quan h ệ g ồm các b ộ thu ộc R đồ ng th ời thu ộc S  Ví d ụ R ∩ S = { t / t ∈R ∧ t∈S } R AB S AB R ∩ S AB α 1 α 2 α 2 α 2 β 3 β 3 β 3 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 33 2.2.3. Phép tr ừ  Cho 2 quan h ệ R và S kh ả h ợp  Phép giao c ủa R và S – Ký hi ệu R − S – Là m ột quan h ệ g ồm các b ộ thu ộc R và không thu ộc S  Ví d ụ R − S = { t / t ∈R ∧ t∉S } R AB S AB R - S AB α 1 α 2 α 2 α 2 β 3 β 1 β 1 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 34
  18. 2.2.4. Tích Đề các  Đượ c dùng để k ết h ợp các b ộ c ủa các quan h ệ l ại v ới nhau  Ký hi ệu R × S  Kết qu ả tr ả v ề là m ột quan h ệ Q –Mỗi b ộ c ủa Q là tổ h ợp gi ữa 1 b ộ trong R và 1 b ộ trong S –Nếu R có u b ộ và S có v b ộ thì Q s ẽ có u × v b ộ –Nếu R có n thu ộc tính và S có m thu ộc tính thì Q s ẽ có (n + m) thu ộc tính (R + ∩ Q+ ≠ ∅ ) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 35 2.2.4. Phép tích Đề các (tt)  Ví d ụ unambiguous R AB R × S A R.B S.B C D α 1 β 2 α 1 α 10 + α 1 β 10 + α 1 β 20 - S BC D α 1 γ 10 - β 2 α 10 + α 10 + β 2 β 10 + β 10 + β 2 β 20 - β 20 - β 2 γ 10 - γ 10 - bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 36
  19. 2.2.5. Phép chia  Đượ c dùng để lấy ra một số bộ trong quan hệ R sao cho th ỏa với tất cả các bộ trong quan hệ S  Ký hi ệu R ÷ S – R(Z) và S(X) • Z là t ập thu ộc tính c ủa R, X là t ập thu ộc tính c ủa S • X ⊆ Z  Kết qu ả c ủa phép chia là m ột quan h ệ T(Y) –Với Y=Z-X – Có t là m ột b ộ c ủa T n ếu với m ọi b ộ tS∈S, t ồn t ại b ộ tR∈R th ỏa 2 điều ki ện • tR(Y) = t R(Z) S(X) T(Y) • tR(X) = t S(X) XY bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 37 2.2.5. Phép chia (tt)  Ví d ụ R ÷ S R AB CD E S DE R ÷ S AB C α a α a 1 a 1 α a γ α a γ a 1 b 1 γ a γ α a γ b 1 β a γ a 1 β a γ b 3 γ a γ a 1 γ a γ b 1 γ a β b 1 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 38
  20. 2.3. Các phép toán trên ĐS quan h ệ  Phép chi ếu  Phép ch ọn  Phép k ết n ối 2 quan h ệ  Các phép k ết n ối khác. bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 39 2.3.1. Phép chi ếu (Projection)  Đượ c dùng để l ấy ra m ột vài c ột c ủa quan h ệ R  Ký hi ệu πA1, A2, , Ak (R)  Kết qu ả tr ả v ề là m ột quan h ệ – Có k thu ộc tính – Có s ố b ộ luôn ít h ơn ho ặc b ằng số b ộ c ủa R  Ví d ụ R AB C R A C α 10 1 α 1 β 1 α 20 1 πA,C (R) β 30 1 β 2 β 40 2 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 40
  21. Phép chi ếu (tt)  Phép chi ếu không có tính giao hoán ? πX,Y (R) = πX (πY (R)) πA1, A2, , An (πA1, A2, , Am (R)) = πA1, A2, , An (A 1, A 2, , Am) = R( A1, A 2, , A n) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 41 Ví dụ  Cho bi ết Họ tên và Lươ ng của các nhân viên πHONV, TENNV, LUONG (NHANVIEN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 42
  22. Ví dụ (tt)  Cho bi ết mã nhân viên có tham gia đề án ho ặc có thân nhân πMANV (PHANCONG) πMANV (THANNHAN) πMANV (PHANCONG) ∪ πMANV (THANNHAN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 43 Ví dụ (tt)  Cho bi ết mã nhân viên có ng ườ i thân và có tham gia đề án πMANV (PHANCONG) ∪ πMANV (THANNHAN)  Cho bi ết mã nhân viên không có thân nhân nào bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 44
  23. Ví dụ (tt)  Cho bi ết mã nhân viên có ng ườ i thân và có tham gia đề án πMANV (PHANCONG) ∩ πMANV (THANNHAN)  Cho bi ết mã nhân viên không có thân nhân nào πMANV (NHANVIEN) - πMANV (THANNHAN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 45 2.3.2. Phép ch ọn (Selection)  Đượ c dùng để lấy ra các bộ của quan hệ R  Các bộ đượ c ch ọn ph ải th ỏa mãn điều ki ện ch ọn Predicate  Ký hi ệu σ Pedicate (R)  Predicate là bi ểu th ức g ồm các m ệnh đề có d ạng – – • g ồm , ≤ , ≥ , ≠ , = • Các m ệnh đề đượ c n ối l ại nh ờ các phép ∧ , ∨ , ¬ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 46
  24. 2.3.2. Phép ch ọn (tt)  Kết qu ả tr ả v ề là m ột quan h ệ – Có cùng danh sách thu ộc tính v ới R – Có s ố b ộ luôn ít h ơn ho ặc bằng số b ộ c ủa R  Ví d ụ R AB C D R AB C D α α 1 7 α α 1 7 σ (A=B) ∧(D>5) (R) α β 5 7 β β 23 10 β β 12 3 β β 23 10 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 47 2.3.2. Phép ch ọn (tt)  Phép ch ọn có tính giao hoán σ p1 (σ p2 (R)) = σ p2 (σ p1 (R)) = σ p2 ∧p1 (R)  Kết h ợp nhi ều phép ch ọn thành 1 phép ch ọn σ p1 (σ p2 (R)) = σ p2 ∧p1 (R) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 48
  25. 2.3.2. Phép ch ọn (tt)  Ví d ụ 1: Cho bi ết các nhân viên ở phòng s ố 4 – Quan h ệ: NHANVIEN(MANV, HONV, TENNV, PHG, ) – Thu ộc tính: PHG – Điều ki ện: PHG=4 σ PHG=4 (NHANVIEN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 49 2.3.2. Phép ch ọn (tt)  Ví dụ 2: Tìm các nhân viên có lươ ng trên 2.5tr ở phòng 4 ho ặc các nhân viên có lươ ng trên 3tr ở phòng 5 – Quan h ệ: NHANVIEN(MANV, , LUONG, PHG, .) – Thu ộc tính: LUONG, PHG – Điều ki ện: • LUONG>2500000 và PHG=4 ho ặc • LUONG>3000000 và PHG=5 σ (PHG=4 AND LUONG>2.5tr) OR (PHG=5 AND LUONG>3tr) (NHANVIEN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 50
  26. 2.3.3. Phép n ối (Join)  Đượ c dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ thành 1 bộ  Ký hi ệu R S – R(A 1, A 2, , A n) và S(B 1, B 2, , B m)  Kết qu ả c ủa phép n ối là m ột quan h ệ Q – Có n + m thu ộc tính Q(A 1, A 2, , A n, B 1, B 2, , B m) –Mỗi b ộ c ủa Q là t ổ h ợp c ủa 2 b ộ trong R và S, th ỏa mãn m ột s ố điều ki ện n ối nào đó • Có d ạng A i θ Bj •Ai là thu ộc tính c ủa R, B j là thu ộc tính c ủa S •Ai và B j có cùng mi ền giá tr ị • θ là phép so sánh ≠, =, , ≤, ≥ bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 51 2.3.3. Phép n ối (Join)  Nối theta ( theta join ) là phép n ối có điều ki ện – Ký hi ệu R C S – C g ọi là điều ki ện n ối trên thu ộc tính  Nối b ằng ( equi join ) khi C là điều ki ện so sánh b ằng  Nối t ự nhiên ( natural join ) • Ký hi ệu R S hay R ∗ S •R+ ∩ S+ ≠ ∅ •Kết qu ả c ủa phép n ối equi join b ỏ bớt đi 1 c ột gi ống nhau bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 52
  27. 2.3.3. Phép nối(tt)  Ví d ụ phép n ối theta join R B<D S R AB C S DE Q AB C DE 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 1 2 3 6 2 7 8 9 4 5 6 6 2 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 53 2.3.3. Phép n ối(tt)  Ví d ụ phép n ối bằng (equi join) R C=D S R AB C S DE 1 2 3 3 1 4 5 6 6 2 7 8 9 R C=S.C S R AB C S CD 1 2 3 3 1 4 5 6 6 2 7 8 9 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 54
  28. 2.3.3. Phép n ối(tt)  Ví d ụ phép n ối t ự nhiên (natural join) R S R AB C S CD AB C S.CD D 1 2 3 3 1 1 2 3 31 1 4 5 6 6 2 4 5 6 62 2 7 8 9 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 55 2.3.4. Các phép k ết nối khác  Phép n ối n ội (Inner Join) – Th ực ch ất là phép equi join, ch ỉ khác ở ch ỗ gi ữ l ại c ủa 2 thu ộc tính ở quan h ệ k ết qu ả (k ể c ả tr ườ ng h ợp trùng tên) – Ví d ụ: R C=S.C S R AB C S CD AB C C D 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 7 8 9 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 56
  29. 2.3.4. Các phép k ết nối khác (tt)  Phép n ối trái (Left join) –Lấy các bộ của quan hệ bên trái ghép với các bộ của quan hệ bên ph ải nếu có giá tr ị gi ống nhau trên 2 thu ộc tính kết nối. Nếu không tìm th ấy giá tr ị th ỏa thu ộc tính kết nối ở bộ bên ph ải thì đặ t giá tr ị NULL vào kq R S C=D R AB C S DE R AB C DE 1 2 3 3 1 1 2 3 3 1 4 5 6 6 2 4 5 6 6 2 7 8 9 7 8 9 null null bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 57 2.3.4. Các phép k ết nối khác (tt)  Phép n ối ph ải (Right join) – Gi ống phép nối trái nh ưng ưu tiên lấy tất cả các bộ của quan hệ bên ph ải. R S C=D R AB C S DE R AB C DE 1 2 3 2 1 null null null 2 1 4 5 6 6 2 4 5 6 6 2 7 8 9 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 58
  30. Bài t ập  Cho các quan h ệ R1, R2, R3. Hãy cho bi ết k ết qu ả khi th ực hi ện các phép toán sau: bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 59 Bài tập (tt)  Cho các l ượ c đồ quan h ệ sau:  Hãy vi ết bi ểu th ức ( đạ i s ố quan h ệ) tr ả l ời các câu h ỏi 1. Đư a ra danh sách và đị a ch ỉ khách hàng 2. Đư a ra tên hàng và s ố l ượ ng hàng t ồn c ủa các m ặt hàng 3. Đư a ra thông tin các m ặt hàng có s ố l ượ ng t ồn >5 4. Đư a ra thông tin khách hàng có đị a ch ỉ ở HN 5. Đư a ra tên khách hàng mua hàng ngày 1/2/2014 6. Đư a ra mã hàng, tên hàng có giá bán > 500.000 đ 7. Đư a ra tên khách hàng ở SG mua hàng ngày 1/3/2015 8. Đư a ra danh sách tên hàng đượ c bán trong ngày 1/2/2015 9. Đư a ra mã các hàng ch ưa t ừng đượ c bán 10. Đư a ra mã các khách hàng không mua hàng ngày 14/2/2015 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 60
  31. Ki ểm tra 5p T1 T2T1 T1 T1.P = T2.A T2 T1 (T1.Q = T2.B) T2 T1 T1.P = T2.A T2 T1 (T1.Q = T2.B) T2 T1 (T1.Q = T2.A AND T1.R = T2.C) T2 bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 61 CHUYỂN ĐỔI MÔ HÌNH E/R  LƯỢC ĐỒ QUAN HỆ bangtqh@utc2.edu.vn
  32. Các quy tắc chuy ển đổ i  (1) T ập th ực th ể – Các t ập th ực th ể (tr ừ t ập th ực th ể y ếu) chuy ển thành các quan h ệ có cùng tên và t ập thu ộc tính MANV LUONG NS DCHI TENPHG MAPHG HONV (1,1) (1,n) TENNV NHANVIEN Lam_viec PHONGBAN GT (1,1) (1,1) La_truong_phong PHONGBAN(TENPHG, MAPHG) NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 63 Các qui t ắc chuy ển đổ i (tt)  (2) M ối quan h ệ – (2a) M ột-Một • Thêm vào quan h ệ này thu ộc tính khóa c ủa quan h ệ kia • Ho ặc thêm thu ộc tính khóa vào c ả 2 quan h ệ MANV LUONG NS DCHI TENPHG MAPHG HONV NG_NHANCHUC TENNV NHANVIEN PHONGBAN (1,1) (1,1) GT La_truong_phong PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC ) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 64
  33. Các qui t ắc chuy ển đổ i (tt)  (2) M ối quan h ệ – (2b) M ột-Nhi ều • Thêm vào quan-hệ-một thu ộc tính khóa c ủa quan-hệ- nhi ều MANV LUONG NS DCHI TENPHG MAPHG HONV (1,1) (1,n) TENNV NHANVIEN Lam_viec PHONGBAN GT NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, MAPHG ) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 65 Các qui t ắc chuy ển đổ i (tt)  (2) M ối quan h ệ – (2c) Nhi ều-Nhi ều •Tạo m ột quan h ệ m ới có – Tên quan h ệ là tên c ủa m ối quan h ệ – Thu ộc tính là nh ững thu ộc tính khóa c ủa các t ập th ực th ể liên quan MANV NGSINH LUONG DCHI DDIEM_D HONV A MADA TENNV NHANVIEN THOIGIAN DEAN TENDA (1,n) (1,n) PHAI Phan_cong PHANCONG(MANV, MADA, THOIGIAN) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 66
  34. Các qui t ắc chuy ển đổ i (tt)  (3) Th ực th ể y ếu – Chuy ển thành m ột quan h ệ • Có cùng tên v ới th ực th ể y ếu • Thêm vào thu ộc tính khóa c ủa quan h ệ liên quan MANV NS LUONG DCHI HONV (1,n) QUANHE TENNV NHANVIEN Co_than_nhan NS GT (1,1) GT THANNHAN TENTN THANNHAN( MANV , TENTN, GT, NS, QUANHE) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 67 Các qui t ắc chuy ển đổ i (tt)  (4) Thu ộc tính đa tr ị – Chuy ển thành m ột quan h ệ • Có cùng tên v ới thu ộc tính đa tr ị • Thu ộc tính khóa c ủa quan h ệ này là khóa ngoài c ủa quan hệ ch ứa thu ộc tính đa tr ị MANV NS LUONG BANGCAP HONV TENNV NHANVIEN BANGCAP( MANV, BANGCAP ) GT NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, DCHI) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 68
  35. Các qui t ắc chuy ển đổ i (tt)  (5) Liên k ết đa ngôi (n>2) – Chuy ển thành m ột quan h ệ • Có cùng tên v ới tên m ối liên k ết đa ngôi • Khóa chính là t ổ h ợp các khóa c ủa t ập các th ực th ể tham gia liên k ết SOLUONG TENDA MADA MANCC NHACUNGCAP Cung_cap DEAN MATB THIETBI DEAN(MADA, ) NHACUNGCAP(MANCC, ) THIETBI(MATB, ) CUNGCAP(MANCC, MATB, MADA, SOLUONG) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 69 Tổng k ết  ER – Lo ại th ực th ể  Mô hình quan h ệ – Quan h ệ 1:1, 1:N – Quan h ệ th ực th ể – Quan h ệ N:M – Khóa ngoài – Quan h ệ đa ngôi – Quan h ệ v ới 2 khóa ngoài – Thu ộc tính – Quan h ệ v ới n khóa ngoài – Thu ộc tính ph ức h ợp – Thu ộc tính – Thu ộc tính đa tr ị –Tập các thu ộc tính đơ n –Tập các giá tr ị – Quan h ệ v ới khóa ngoài – Thu ộc tính khóa – Mi ền giá tr ị – Khóa chính (khóa d ự tuy ển) bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 70
  36. Ví dụ quản lý công ty Họđệm Tên Ngàysinh Ngày b ắt đầu Gi ớitính Lươ ng Đị ach ỉ Họtên Mãs ố Tên Đị ađiểm Qu ảnlý (0,1) Mã s ố NHÂNVIÊN ĐƠ NV Ị (1,1) (0,N) (0,1) (1,N) (0,N) (0,N) Làmvi ệccho Giám sát (1,N) Có Sốgi ờ Ki ểm soát (1,1) Làmvi ệc (1,N) (1,1) trên DỰÁN CON Tên Mãs ố Đị ađiểm Tên Ngàysinh Gi ớitính bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 71 Bài t ập v ề nhà  Bài t ập – Chuy ển đổ i mô hình th ực th ể liên k ết sang mô hình quan h ệ cho bài t ập ch ươ ng 1b • Công ty B ất độ ng s ản • Bu ổi hòa nh ạc • Coffee Ph ố xanh bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 72
  37. bangtqh@utc2.edu.vn Ch ươ ng 2 - Mô hình d ữ li ệu quan h ệ 73