Bài giảng cơ sở dữ liệu

  1. 1
    BÀI GIẢNG MÔN HỌC CƠ SỞ DỮ LIỆU Biên soạn : ThS. Văn Như Bích B, ThS. Võ Hoàng Khang, Khoa CNTT, trường Đại học KTCN TP.HCM. ( Thành Phố Hồ Chí Minh, tháng 1/2011. Lưu hành nội bộ )
  2. 2
    NỘI DUNG:
    Chương I. MỘT SỐ KHÁI NIỆM CƠ BẢN Chương II. MÔ HÌNH DỮ LIỆU QUAN HỆ Chương III. NGÔN NGỮ ĐẠI SỐ QUAN HỆ Chương IV. NGÔN NGỮ TRUY VẤN CSDL Chương V. RÀNG BUỘC TOÀN VẸN Chương VI. CHUẨN HÓA DỮ LIỆU Chương VII. NGÔN NGỮ TÂN TỪ ( tự đọc )
  3. 3
    Chương 1. MỘT SỐ KHÁI NIỆM CƠ BẢN NỘI DUNG : 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL 1.2. CÁC MÔ HÌNH DỮ LIỆU
  4. 4
    1.1. CƠ SỞ

    DỮ LIỆU – HỆ QUẢN TRỊ CSDL (1)
    1. CƠ SỞ DỮ LIỆU (Database):
    Là một hệ thống thông tin (HTTT) có cấu trúc kết hợp
    với các phép toán phù hợp với cấu trúc đó, nhằm mục
    đích tổ chức, lưu trữ, khai thác và kiểm tra qui tắc quản
    lý một cách “Tốt nhất”, đảm bảo tính nhất quán và
    không trùng lắp cho nhiều người sử dụng một cách
    đồng thời với nhiều mục đích khác nhau.
    Lưu ý:
    Các tính chất: Hệ thống, có cấu trúc, nhiều người sử
    dụng, khai thác đồng thời, nhiều mục đích khác nhau.
    Nội dung của môn CSDL sẽ làm rõ tính “Tốt nhất“.

    Bạn đang đọc: Bài giảng cơ sở dữ liệu

  5. 5
    1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL ( 2 )  Tính ” Tốt nhất ” cần làm rõ bởi những nội dung sau :  Tổ chức và tàng trữ ” Tốt nhất ” : HTTT dữ liệu dạng bảng -> gần gủi với người sử dụng ( MH Quan Hệ – Chương II ).  Khai thác ” Tốt nhất ” : Tường minh và chặt chẻ bởi những phép toán Đại số Quan hệ ( Ngôn ngữ Đại số Quan hệ, chương III ). Trong sáng dễ diễn đạt và thân thiện với ngôn từ tự nhiên được giải quyết và xử lý khai thác bởi bởi ngôn từ SQL ( Ngôn ngữ truy vấn DL, chương IV ), đã được tối ưu hóa ( Chương VII – TỐI ƯU HÓA CÂU HỎI )
  6. 6
    1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL ( 3 ) • Kiểm tra những quy tắc quản trị ” Tốt nhất ” : Dễ dàng kiểm tra những quy tắc dựa vào 3 yếu tố của RBTV ( Bối cảnh, nội dung, tầm ảnh hưởng tác động ) ( Chương V – Ràng buộc toàn vẹn ). • Biểu diễn HTTT theo tiêu chuẩn bảo vệ tính đồng nhất, không trùng lắp thông tin dựa vào việc chuẩn hóa dữ liệu ( Chuẩn hóa dữ liệu, Chương VI ) .
  7. 7
    1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL ( 4 ) Để bảo vệ HTTT cho nhiều người sử dụng với nhiều mục tiêu khác nhau khi chọn hệ quản trị CSDL cần chăm sóc đến những yếu tố : • Tính chủ quyền lãnh thổ bị vi phạm • Tính đồng nhất của dữ liệu • Vấn đề bảo mật thông tin • Tính bảo đảm an toàn dữ liệu • Vấn đề tranh chấp dữ liệu
  8. 8
    1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL ( 5 ) 2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ( DataBase Management System – DBMS ) : Là mạng lưới hệ thống những chương trình quản trị CSDL, đồng thời là công cụ tiếp xúc giữa người sử dụng hoặc những ứng dụng với CSDL. • Hệ quản trị CSDL cần có : – Từ điển dữ liệu ( Data Dictionary ) – Cơ chế xử lý tranh chấp. – Cơ chế bảo mật thông tin dữ liệu. – Cơ chế tự động hóa sao lưu ( Backup ) và hồi sinh ( Restore ) dữ liệu khi có sự cố. – Ngôn ngữ tiếp xúc người sử dụng ( NSD ) với CSDL. – Đảm bảo tính độc lập giữa dữ liệu và chương trình. – Có thể, cần có giao diện tốt với người dùng không chuyên .
  9. 9
    1.2. CÁC MÔ HÌNH DỮ LIỆU 1. MÔ HÌNH MẠNG ( Network Data Model ) 2. MÔ HÌNH PHÂN CẤP ( Hierachical Data Model ) 3. MÔ HÌNH QUAN HỆ ( Relational Data Model ) 4. MÔ HÌNH THỰC THỂ KẾT HỢP ( Entity – RelationShip ) 5. MÔ HÌNH HƯỚNG ĐỐI TƯỢNG ( Object Oriented Model )
  10. 10
    Chương 2. MÔ HÌNH DỮ LIỆU QUAN HỆ NỘI DUNG : 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
  11. 11
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 1 ) 1. Quan Hệ : Là một đối tượng người dùng sống sót trong quốc tế thực được làm rõ bởi những giá trị có tương quan nhau :  Ví dụ : 1 quan hệ sinh viên : 005, Trần Văn A, 06/10/1990, Nam, 10DTH01 -> Quan hệ sinh viên có mãsố sinh viên là 005, có tên là Trần Văn A, ngày sinh là 06/10/1990, phái Nam, thuộc lớp 10DTH01.  Những giá trị có quan hệ ( tương quan ) Là : ( i ) Lớp 10DTH01 có SV là Trần Văn A. ( ii ) SV Trần Văn A có ngày sinh là 06/10/1990 và mã số để phân biệt với những SV khác là 005. ( iii ) SV Trần Văn A là SV Nam. v.v …
  12. 12
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 2 )  Tên gọi của những giá trị tương quan gọi là thuộc tính ( mã số, tên, ngày sinh, phái, lớp )  Ví dụ 2 : 1 quan hệ địa chỉ -> gồm những giá trị tương quan nào ? thuộc tính nào ? 2. Loại Quan Hệ : Tất cả những quan hệ có cùng đặc thù diễn đạt ( cùng tên gọi những thuộc tính tương quan ). Tính chất miêu tả gọi là thuộc tính của loại quan hệ. => Loại quan hệ là :  Danh sách những quan hệ.  Dữ liệu dạng bảng có dòng đầu là list những thuộc tính, dòng thứ 2 là những quan hệ với những giá trị tương ứng với tên gọi những thuộc tính .
  13. 13
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 3 ) • Các thuộc tính ( hay những tên gọi của những giá trị miêu tả của quan hệ ) » Dữ liệu dạng bảng : • Danh sách những quan hệ cùng loại, được gọi là loại quan hệ Sinh Viên MãSố Tên Ngàysinh Phái Lớp 01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8 01212148901 Nguyễn Trung Tín 02-0119 92 Nam 10CDH8 01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
  14. 14
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 4 ) Loại quan hệ thường được trình diễn dưới dạng lược đồ quan hệ ( lđ qh ). Ví dụ : lđ qh SinhVien ( MãSố, Tên, Ngàysinh, Phái, Lớp ) đây là dạng viết tắt của loại quan hệ sinh viên ( hay dữ liệu dạng bảng là list những sinh viên ). => dữ liệu dạng bảng là loại quan hệ ( hay list những quan hệ ) là dạng viết dầy đủ của lđ qh ký hiệu T ( quanhệ ). Ví dụ TSinhVien : MãSố Tên Ngàysinh Phái Lớp 01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8 01212148901 Nguyễn Trung Tín 02-0119 92 Nam 10CDH8 01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
  15. 15
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 5 ) 3. Thuộc tính : Tính chất để diễn đạt loại quan hệ hay tên gọi những giá trị miêu tả những quan hệ cùng loại.  Ví dụ : MãSố, Tên, Ngàysinh, Phái, Lớp.  Mỗi một quan hệ được miêu tả bởi những giá trị có tương quan tương ứng với tên gọi của những giá trị ( Thuộc tính ) đó, được gọi là một bộ ( hay một bộc lộ của một loại quan hệ tức một quan hệ ). Ví dụ : 1 bộ q1 -> ( 005, Trần Văn A, 06/10/1990, Nam, 10DTH01 ) 1 bộ q2 -> ( 006, Trần Văn B, 06/10/1990, Nam, 10DTH01 )
  16. 16
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 6 ) • Thuộc tính được đặc trưng bởi 3 yếu tố : a. Tên gọi. b. Kiểu giá trị. c. Miền giá trị .
  17. 17
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 7 ) 4. Siêu khóa và Khóa ( của một loại quan hệ ) : • Siêu Khóa : Tập thuộc tính mà giá trị của nó dùng để phân biệt quan hệ này với quan hệ khác trong cùng một loại quan hệ. => * Hai quan hệ ( 2 bộ ) có cùng giá trị của khóa thì hai quan hệ đó là một ( trùng nhau ) nghĩa là những giá trị trên những thuộc tính khác cũng giống nhau. * Mỗi một quan hệ trên một loại quan hệ chỉ được biểu lộ một lần nghĩa là bộ giá trị của siêu khóa không được trùng nhau trong T quan hệ. • Khóa : Siêu khóa bé nhất hay Tập thuộc tính bé nhất mà giá trị của nó dùng để phân biệt quan hệ này với quan hệ khác trong cùng một loại quan hệ .
  18. 18
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 8 ) • Các ví dụ về khóa : Ví dụ1 : TKB ( Thứ, Ca, Phòng, Sốtiết, Lớp, Mãmôn, MãGV ). Xác định khóa ? Ví dụ 2 : BànThắng ( MãcầuThủ, MãTrận, Phút ). Xác định khóa ? Ví dụ 3 : HônThú ( SốHT, CMND_Ch, LầnCh, CMND_Vo, LầnVo, NgayKetHon ). Tìm những khóa khác với khóa : SốHT. Ví dụ 4 : SV tự đưa những lđ quan hệ và xác lập khóa ? Ví dụ 5 : Quản lý ẩm thực ăn uống cần những lđ quan hệ ?
  19. 19
    2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA ( 9 ) • Những điều quan tâm về khóa : * Khóa không do chủ quan của người thiết lập mà do quy tắc quản trị quyết định hành động. * Không phải tổng thể những thuộc tính có tên Mã số là tham gia vào khóa mà chỉ hoàn toàn có thể là khóa ngoại ( hay khóa của một loại quan hệ khác ). * Bất cứ loại quan hệ nào cũng có tối thiểu là 1 khóa. * Khóa của loại quan hệ là tập thuộc tính còn khóa của 1 quan hệ là tập những giá trị biểu lộ của quan hệ đó trên tập thuộc tính khóa. * Cách tìm khóa dựa vào : Quy tắc quản trị ( tân từ ), dựa vào 2 bộ với những giá trị không hề trùng nhau ( vì trùng nhau buộc những giá trị khác phải trùng nhau tức 2 bộ là một )
  20. 20
    2.2. CÁC THAO

    TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (1)
    1. Lệnh tạo lđ quan hệ R(A1, A2,… An):
    CREATE TABLE (
    [],
    [],

    [] )
    Ví dụ: CREATE TABLE NHANVIEN (
    HOTENNV NVARCHAR(50) NOT NULL,
    MANV CHAR(9) PRIMARY KEY,
    NS SMALLDATETIME,
    DCHI NVARCHAR(50),
    GT CHAR(3) CHECK (GT IN (‘Nam’, ‘Nu’)),
    PHG INT )

  21. 21
    2.2. CÁC THAO

    TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (2)
    2. Lệnh sửa bảng:
    – Thay đổi cấu trúc bảng.
    – Thay đổi RBTV.
    Thêm cột:
    ALTER TABLE ADD COLUMN
    []
    Xóa cột:
    ALTER TABLE DROP COLUMN
    Mở rộng cột:
    ALTER TABLE ALTER COLUMN

  22. 22
    2.2. CÁC THAO

    TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (3)
    • Thêm RBTV:
    ALTER TABLE ADD
    CONSTRAINT ,
    CONSTRAINT ,
    ….
    • Xóa RBTV:
    ALTER TABLE DROP
    • Lệnh xóa bảng:
    DROP TABLE

  23. 23
    2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ ( 4 ) • Ví dụ – Thay đổi cấu trúc bảng : ALTER TABLE NHANVIEN ADD NGHENGHIEP CHAR ( 20 ) ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP ALTER TABLE NHANVIEN ALTER COLUMN NGHENGHIEP CHAR ( 50 ) Ví dụ – Xóa bảng : DROP TABLE NHANVIEN Ví dụ – Thay đổi RBTV :
  24. 24
    CREATE TABLE PHONGBAN ( TENPB NVARCHAR ( 20 ), MAPHG INT NOT NULL, TRPHG CHAR ( 9 ), NG_NHANCHUC DATETIME ) ALTER TABLE PHONGBAN ADD CONSTRAINT PB_MAPHG_PK PRIMARY KEY ( MAPHG ), CONSTRAINT PB_TRPHG FOREIGN KEY ( TRPHG ) REFERENCES NHANVIEN ( MANV ), CONSTRAINT PB_NGNHANCHUC_DF DEFAULT ( GETDATE ( ) ) FOR ( NG_NHANCHUC ), CONSTRAINT PB_TENPB_UNI UNIQUE ( TENPB )
  25. 25
    2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ ( 5 ) 3. Thêm bộ giá trị mới vào quan hệ R ( A1, A2, … An ) : INSERT ( R ; v1, v2, …, vn ) Ví dụ : ? 4. Sửa giá trị những bộ của quan hệ R : UPDATE ( R ; A1 = e1, A2 = e2, …, An = en ; điều kiện kèm theo sửa ) Ví dụ : ? 5. Xóa những bộ của quan hệ R : DELETE ( R ; điều kiện kèm theo xóa ) Ví dụ : ?
  26. 26
    Chương 3. NGÔN NGỮ ĐẠI SỐ QUAN HỆ NỘI DUNG : 3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ 3.2 CÁC PHÉP TOÁN QUAN HỆ 3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT 3.4 CÁC VÍ DỤ MINH HỌA
  27. 27
    3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ ( 1 ) 1. Phép hợp nhất 2 quan hệ ( UNION ) : • Cho R ( U ) và S ( U ) là 2 lđ quan hệ. Phép hợp của 2 lđ quan hệ R và S, ký hiệu : R ∪ S, là một lđ quan hệ Q. được định nghĩa : Q = R ∪ S đn ( i ) Q + = U ;  ( ii ) TQ = { t : t ∈ TR ∨ t ∈ tiến sỹ } 2. Phép trừ 2 quan hệ ( MINUS ) : • Cho R ( U ) và S ( U ) là 2 lđ quan hệ. Phép hiệu của 2 lđ quan hệ R và S, ký hiệu : R S, là một lđ quan hệ Q. được định nghĩa : Q = R S đn ( i ) Q + = U ;  ( ii ) TQ = { t : t ∈ TR ∨ t ∉ TS }
  28. 28
    3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ ( 2 ) 3. Phép lấy phần chung của 2 quan hệ ( INTERSECTION ) : Cho R ( U ) và S ( U ) là 2 lđ quan hệ. Phần chung ( Phép giao ) của 2 lđ quan hệ R và S, ký hiệu : R ∩ S, là một lđ quan hệ Q. được định nghĩa : Q = R ∩ S đn ( i ) Q + = U ;  ( ii ) TQ = { t : t ∈ TR ∧ t ∈ tiến sỹ } 4. Phép tích Đề những ( Des CARTESIAN ) : Cho R ( A1, A2, …, An ) và S ( B1, B2, …, Bn ) là 2 lđ quan hệ. Tích Đề những của 2 lđ quan hệ R và S, ký hiệu : R x S, là một quan hệ Q. được định nghĩa : Q = R x S đn ( i ) Q + = { A1, A2, …, An, B1, B2, …, Bn } ;  ( ii ) TQ = { t = ( u, v ) : u ∈ TR ∧ v ∈ TS }
  29. 29
    3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ ( 3 ) 5. Phép lấy phần bù của 1 quan hệ ( COMPLEMENT ) : Cho R ( A1, A2, …, An ) là một lđ quan hệ. Ai có miền giá trị là Dom ( Ai ) với i = 1, 2, …, n. Phần bù của R, ký hiệu :  R hoặc, là một lđ quan hệ Q. được định nghĩa : Q =  R đn ( i ) Q + = { A1, A2, …, An } ;  ( ii ) TQ = { t = ( v1, v2, …, vn ) : vi ∈ Dom ( Ai ) ∧ t ∉ TR } 6. Phép chia 2 quan hệ ( DIVISION ) : Không làm mất tính tổng quát, giả sử R ( A, B ) và S ( B ) là 2 lđ quan hệ. Thương của 2 lđ quan hệ R và S, ký hiệu : R ÷ S, là một lđ quan hệ Q. được định nghĩa : Q = R ÷ S đn ( i ) Q + = { A } ;  ( ii ) TQ = { t = r. A : r ∈ TR ∧ ∀ u ∈ TS ∧ ( t, u ) ∈ TR } Tức là : Q. x S ⊆ R R
  30. 30
    3.2 CÁC PHÉP TOÁN QUAN HỆ ( 1 ) 1. Phép chiếu ( PROJECTION ) : Cho R ( U ) là một lđ quan hệ và K ⊆ U. Phép chiếu quan hệ R trên tập thuộc tính K, ký hiệu : R [ K ] hoặc ΠK ( R ) là một lđ quan hệ Q. được định nghĩa : Q = ΠK ( R ) đn ( i ) Q + = K ;  ( ii ) TQ = { t = r. K, r ∈ TR } Nói đơn thuần, là một quan hệ mới lấy từ R sau khi đã vô hiệu đi những cột không cần giữ lại, và vô hiệu những dòng giống nhau .
  31. 31
    3.2 CÁC PHÉP TOÁN QUAN HỆ ( 2 ) 2. Phép chọn ( SELECTION ) : Phép chọn những bộ của quan hệ R thỏa điều kiện kèm theo e đã cho, ký hiệu là R : ( e ), hoặc σ ( e ) ( R ) được định nghĩa : Q = σ ( e ) ( R ) đn ( i ) Q + = R ;  ( ii ) TQ = { r ∈ TR : e ( r ) = true }
  32. 32
    3.2 CÁC PHÉP TOÁN QUAN HỆ ( 3 ) 3. Phép thêta kết ( θ – JOIN ) : Ở đây θ là một trong những phép so sánh : >, > =, <, < =, = Cho R ( U ) và S ( V ) là những lđ quan hệ được định nghĩa trên tập thuộc tính U = { A1, A2, ..., An } và V = { B1, B2, ..., Bn }. A ∈ U, B ∈ V là 2 thuộc tính của 2 lđ quan hệ. Phép θ - kết giữa quan hệ R và S, ký hiệu là R S, được định nghĩa : Q = R S đn ( i ) Q + = U ∪ V ;  ( ii ) TQ = { t = ( u, v ) : u ∈ TR ∧ v ∈ TS ∧ u. A θ v. B }. Hay R S = ( R x S ) : ( R.A θ S.B ) A θ B A θ B A θ B
  33. 33
    3.2 CÁC PHÉP TOÁN QUAN HỆ ( 4 ) Các trường hợp đặc biệt quan trọng : • Nếu θ là phép so sánh bằng nhau ( = ) thì phép kết được gọi là phép kết bằng nhau, hay phép kết tương tự ( EQUI-JOIN ). • Nếu θ là phép so sánh bằng nhau ( = ) và 2 thuộc tính A, B có tên giống nhau thì gọi đó là phép kết tự nhiên ( NATURAL JOIN ), và ký hiệu là R S. Ví dụ : ” Cho tên phòng ban cùng list tên những nhân viên cấp dưới ” : PhongBan ( MAPB, TenPB ), NhanVien ( MNV, TenNV, DC, ĐT, MAPB ) PhongBan NhanVien [ TenPB, TenNV ]
  34. 34
    3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT ( 1 ) • Phép kết đặc biệt quan trọng xảy ra khi θ là phép so sánh bằng nhau ( = ), A là khóa chính của R và B là khóa ngoại của S khi tham chiếu tới quan hệ R. Giả sử bộc lộ của 2 quan hệ như sau : 1. Phép kết trong ( INNER JOIN ). Thực chất là phép kết bằng nhau, hay phép kết tương tự EQUI-JOIN. ký hiệu phép toán này bằng dấu sao ( * ). Kết quả của phép kết trong giữa R và S : ( R * S ) : Q. ( A, X, B, Y ) ( 1, x1, 1, y1 ) ( 2, x2, 2, y2 ) R ( A, X ) ( 1, x1 ) ( 2, x2 ) ( 3, x3 ) S ( B, Y ) ( 1, y1 ) ( 2, y2 ) ( 4, y4 )
  35. 35
    3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT ( 2 ) 2. Phép kết vế trái ( LEFT JOIN ) : Phép kết vế trái giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = ( u, v ) : u ∈ TR ∧ v ∈ TS ∧ u. A = v. B, hoặc t = ( u, Null ) : u ∈ TR ∧  ∃ v ∈ TS s / c u. A = v. B } Kết quả phép kết vế trái giữa R và S là : Q. ( A, X, B, Y ) ( 1, x1, 1, y1 ) ( 2, x2, 2, y2 ) ( 3, x3, Null, Null ) ( 1 ) Suy ra, hoàn toàn có thể thuận tiện tìm được những bộ của R mà không có bộ giá trị tương ứng trong quan hệ S.
  36. 36
    3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT ( 4 ) 3. Phép kết vế phải ( RIGHT JOIN ) : Phép kết vế phải giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = ( u, v ) : u ∈ TR ∧ v ∈ TS ∧ u. A = v. B, hoặc t = ( Null, v ) : v ∈ tiến sỹ ∧  ∃ u ∈ TR s / c u. A = v. B } Kết quả phép kết vế phải giữa R và S là : Q. ( A, X, B, Y ) ( 1, x1, 1, y1 ) ( 2, x2, 2, y2 ) ( Null, Null, 4, y4 ) ( 2 ) Suy ra, hoàn toàn có thể thuận tiện tìm được những bộ của S mà không có bộ giá trị tương ứng trong quan hệ R.
  37. 37
    3. 3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT ( 5 ) 4. Phép kết ngoài ( OUTER JOIN ) : Phép kết ngoài giữa R và S là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = ( u, v ) : u ∈ TR ∧ v ∈ TS ∧ u. A = v. B, hoặc t = ( u, Null ) : u ∈ TR ∧  ∃ v ∈ TS s / c u. A = v. B, hoặc t = ( Null, v ) : v ∈ tiến sỹ ∧  ∃ u ∈ TR s / c u. A = v. B } Kết quả phép kết ngoài giữa R và S là : Q. ( A, X, B, Y ) ( 1, x1, 1, y1 ) ( 2, x2, 2, y2 ) ( 3, x3, Null, Null ) ( 1 ) ( Null, Null, 4, y4 ) ( 2 )
  38. 38
    3.4 CÁC VÍ DỤ MINH HỌA ( 1 ) Viết những biểu thức quan hệ để vấn đáp cho những câu hỏi sau : 1 ) ” Cho list nhân viên cấp dưới làm cùng phòng với Watson ”. ( Employee : ( Name = ‘ Watson ’ ) ) [ Deptno ] Employee 2 ) ” Cho tên của người chỉ huy Smith ”. ( ( ( ( Employee : ( Name = ‘ Smith ’ ) ) [ Deptno ] Department ) [ Mgr ] ) Employee ) [ Name ] 3 ) ” Cho list nhân viên cấp dưới có lương trên 4000 ”. EMPLOYEE : ( SALARY > 4000 )
  39. 39
    Chương IV. NGÔN NGỮ TRUY VẤN CSDL NỘI DUNG : 4.1 Câu truy vấn tổng quát 4.2 Truy vấn đơn thuần 4.3 Phép kết 4.4 Đặt bí danh, sử dụng *, distinct 4.5 Các toán tử 4.6 Câu truy vấn con ( subquery ) 4.7 Phép chia 4.8 Hàm thống kê giám sát, gom nhóm
  40. 40
    4.1 Câu truy vấn tổng quát ( 1 ) SELECT [ DISTINCT ] * | tên_cột | hàm FROM bảng [ WHERE điều_kiện ] [ GROUP BY tên_cột ] [ HAVING điều_kiện ] [ ORDER BY tên_cột ASC | DESC ]
  41. 41
    4.2 Truy vấn đơn thuần ( 1 ) • SELECT – Tương đương phép chiếu của ĐSQH – Liệt kê những thuộc tính cần hiển thị trong tác dụng • WHERE – Tương ứng với điều kiện kèm theo chọn trong ĐSQH – Điều kiện tương quan tới thuộc tính, sử dụng những phép nối luận lý AND, OR, NOT, những phép toán so sánh, BETWEEN • FROM – Liệt kê những quan hệ thiết yếu, những phép kết
  42. 42
    4.2 Truy vấn đơn thuần ( 2 ) • Tìm masp, tensp do ” Trung Quoc ” sản xuất có giá từ 20000 đến 30000. Select masp, tensp From SANPHAM Where nuocsx = ‘ Trung Quoc ’ and gia between 20000 and 30000
  43. 43
    4.3 Phép kết ( 1 ) • Inner Join, Left Join, Right Join, Full Join • Ví dụ : – In ra list những người mua ( MAKH, HOTEN ) đã mua hàng trong ngày 1/1/2007. select KHACHHANG.makh, hoten from KHACHHANG inner join HOADON on KHACHHANG.makh = HOADON.makh where nghd = ‘ 1/1/2007 ‘
  44. 44
    4.3 Phép kết ( 2 ) • Ví dụ : In ra list tổng thể những hóa đơn và họ tên của người mua mua hóa đơn đó ( nếu có ). Select sohd, hoten From HOADON left join KHACHHANG on HOADON.makh = KHACHHANG.makh Select sohd, hoten From HOADON, KHACHHANG Where HOADON.makh = KHACHHANG.makh
  45. 45
    4.4 Đặt bí danh, sử dụng *, distinct • Đặt bí danh ( Alias ) cho thuộc tính và quan hệ : Tên_cũ AS Tên_mới Select manv, hoten as [ ho va ten ] From NHANVIEN • Liệt kê toàn bộ những thuộc tính của quan hệ : Select * from Nhanvien Select NHANVIEN. * from NHANVIEN • Distinct : trùng chỉ lấy một lần Select distinct nuocsx from SANPHAM • Sắp xếp tác dụng hiển thị : Order by Select * from SANPHAM order by nuocsx, gia DESC
  46. 46
    4.5 Toán tử truy vấn ( 1 ) • Toán tử so sánh : =, >, <, > =, < =, < > • Toán tử logic : AND, OR, NOT • Phép toán : +, -, *, / • BETWEEN …. AND • IS NULL, IS NOT NULL • LIKE ( _ % ) • IN, NOT IN • EXISTS, NOT EXISTS • SOME, ALL
  47. 47
    4.5 Toán tử truy vấn ( 2 ) • IS NULL, IS NOT NULL Select sohd from HOADON where makh is Null Select * from HOADON where makh is Not Null • Toán tử so sánh, phép toán Select gia * 1.1 as [ gia ban ] from SANPHAM where nuocsx < > ’ Viet Nam ’ Select * from SANPHAM where ( gia between 20000 and 30000 ) OR ( nuocsx = ‘ Viet Nam ’ ) • Toán tử IN, NOT IN Select * from SANPHAM where masp NOT IN ( ‘ BB01 ’, ’ BB02 ’, ’ BB03 ’ )
  48. 48
    4.5 Toán tử so sánh ( 3 ) Toán tử LIKE – So sánh chuỗi tương đối – Cú pháp : s LIKE p, p hoàn toàn có thể chứa % hoặc _ – % : thay thế sửa chữa một chuỗi ký tự bất kể – _ : sửa chữa thay thế một ký tự bất kể – Ví dụ : Select masp, tensp from SANPHAM where masp like ‘ B % 01 ‘
  49. 49
    4.6 Câu truy vấn con ( 1 ) In hoặc Exists • Ví dụ : Tìm những số hóa đơn mua cùng lúc 2 mẫu sản phẩm có mã số ” BB01 ” và ” BB02 ”. Select distinct sohd From CTHD where masp = ‘ BB01 ‘ and sohd IN ( select distinct sohd from CTHD Where masp = ‘ BB02 ‘ ) Select distinct A.sohd From CTHD A Where A.masp = ‘ BB01 ‘ and EXISTS ( select * from CTHD B where B.masp = ‘ BB02 ‘ and A.sohd = B.sohd )
  50. 50
    4.6 Câu truy vấn con ( 2 ) Not In hoặc Not Exists Ví dụ : Tìm những số hóa đơn có mua mẫu sản phẩm mã số ‘ BB01 ’ nhưng không mua loại sản phẩm mã số ‘ BB02 ’. Select distinct sohd From CTHD Where masp = ‘ BB01 ‘ and sohd NOT IN ( select distinct sohd from CTHD where masp = ‘ BB02 ‘ ) Select distinct A.sohd From CTHD A Where A.masp = ‘ BB01 ‘ and NOT EXITST ( select * from CTHD B where B.masp = ‘ BB02 ‘ and A.sohd = B.sohd )
  51. 51
    4.7 Phép chia
    Sử dụng NOT EXISTS • Ví dụ : Tìm số hóa đơn đã mua toàn bộ những loại sản phẩm do ” Trung Quoc ” sản xuất. • Select sohd from HOADON where not exists ( select * from SANPHAM where nuocsx = ‘ Trung Quoc ’ and not exists ( select * from CTHD where HOADON.sohd = CTHD.sohd and CTHD.masp = SANPHAM.masp ) )
  52. 52
    4.8 Các hàm thống kê giám sát và gom nhóm ( 1 ) 4.8.1 Các hàm đo lường và thống kê cơ bản : – COUNT : Đếm số bộ dữ liệu của thuộc tính – MIN : Tính giá trị nhỏ nhất – MAX : Tính giá trị lớn nhất – AVG : Tính giá trị trung bình – SUM : Tính tổng giá trị những bộ dữ liệu
  53. 53
    NHANVIEN
    MANV HOTEN PHAI MANQL PHONG LUONG NV001 Nguyễn Ngọc Linh Nữ Null NC 2.800.000 NV002 Đinh Bá Tiến Nam NV002 DH 2.000.000 NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000 NV004 Trần Thanh Long Nam NV002 DH 1.800.000 NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000 NV006 Nguyễn Minh Nam NV002 DH 2.000.000 NV007 Hà Duy Lập Nam NV003 NC 1.800.000 NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000 NV009 Nguyễn Kim Anh Nữ NV003 NC 2.000.000
  54. 54
    Ví dụ
    1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của toàn bộ những nhân viên cấp dưới. 2. Có toàn bộ bao nhiêu nhân viên cấp dưới ? 3. Bao nhiêu nhân viên cấp dưới có người quản trị ? 4. Bao nhiêu phòng ban có nhân viên cấp dưới thường trực ? 5. Tính lương trung bình của những nhân viên cấp dưới. 6. Tính lương trung bình của những nhân viên cấp dưới theo từng phòng ban .
  55. 55
    Ví dụ
    1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của toàn bộ những nhân viên cấp dưới. SELECT min ( luong ) as thapnhat, max ( luong ) as caonhat, avg ( luong ) as trungbinh, sum ( luong ) as tongluong FROM NhanVien
  56. 56
    Ví dụ
    2. Có tổng thể bao nhiêu nhân viên cấp dưới ? SELECT count ( * ) FROM NhanVien 3. Bao nhiêu nhân viên cấp dưới có người quản trị ? SELECT count ( * ) FROM NhanVien WHERE manql is not null SELECT count ( Manql ) FROM NhanVien 4. Bao nhiêu phòng ban có nhân viên cấp dưới thường trực SELECT count ( distinct phong ) FROM NhanVien
  57. 57
    4.8 Các hàm đo lường và thống kê và gom nhóm ( 2 ) 4.8.2 Gom nhóm : mệnh đề GROUP BY • Sử dụng hàm gom nhóm trên những bộ trong quan hệ. • Mỗi nhóm bộ gồm có tập hợp những bộ có cùng giá trị trên những thuộc tính gom nhóm. • Hàm gom nhóm vận dụng trên mỗi bộ độc lập nhau. • SQL có mệnh đề GROUP BY để chỉ ra những thuộc tính gom nhóm, những thuộc tính này phải Open trong mệnh đề SELECT.
  58. 58
    Ví dụ
    5. Tính lương trung bình của những nhân viên cấp dưới SELECT avg ( LUONG ) as LUONGTB FROM NhanVien 6. Tính lương trung bình của những nhân viên cấp dưới theo từng phòng ban. SELECT phong, avg ( LUONG ) as LUONGTB FROM NhanVien GROUP BY phong
  59. 59
    4.8 Các hàm thống kê giám sát và gom nhóm ( 3 ) 4.8.3 Điều kiện sau gom nhóm : mệnh đề HAVING – Lọc hiệu quả theo điều kiện kèm theo, sau khi đã gom nhóm – Điều kiện ở HAVING được triển khai sau khi gom nhóm, những điều kiện kèm theo có tương quan đến thuộc tính Group By. • Ví dụ : Tìm phòng có số lượng nhân viên cấp dưới ” Nữ ” trên 5 người. SELECT Phong FROM NhanVien WHERE Phai = ‘ Nữ ’ GROUP BY Phong HAVING count ( manv ) > 5
  60. 60
    Chương V. RÀNG BUỘC TOÀN VẸN 5.1 Giới thiệu ràng buộc toàn vẹn ( RBTV ) 5.2 Các đặc trưng của một RBTV 5.3 Phân loại RBTV 5.3 Bảng tầm tác động ảnh hưởng tổng hợp
  61. 61
    5.1 Giới thiệu ràng buộc toàn vẹn ( RBTV ) • Ràng buộc toàn vẹn là những pháp luật, điều kiện kèm theo từ ứng dụng trong thực tiễn, những điều kiện kèm theo này là không bao giờ thay đổi. ⇒ Vì thế phải luôn bảo vệ cơ sở dữ liệu thỏa ràng buộc toàn vẹn sau mỗi thao tác làm biến hóa thực trạng của cơ sở dữ liệu .
  62. 62
    5.2 Các đặc trưng của một RBTV 5.2.1 Nội dung 5.2.2 Bối cảnh 5.2.3 Bảng tầm tác động ảnh hưởng
  63. 63
    5.2.1 Nội dung
    • Mô tả ngặt nghèo ý nghĩa của ràng buộc toàn vẹn. • Nội dung được phát biểu bằng ngôn từ tự nhiên hoặc bằng ngôn từ hình thức ( ngôn từ tân từ, đại số quan hệ, mã giả, … ) – Ngôn ngữ tự nhiên : dễ hiểu nhưng không ngặt nghèo, logic. – Ngôn ngữ hình thức : ngặt nghèo, cô đọng .
  64. 64
    5.2.2 Bối cảnh
    • Là tập những loại quan hệ khi thao tác trên những loại quan hệ đó có năng lực làm cho ràng buộc bị vi phạm. • Đó là những loại quan hệ hoàn toàn có thể vi phạm ràng buộc toàn vẹn khi triển khai những thao tác thêm, xóa, sửa .
  65. 65
    5.2.3 Bảng tầm ảnh hưởng tác động ( 1 ) • Nhằm xác lập khi nào thực thi kiểm tra ràng buộc toàn vẹn. Thao tác nào thực thi hoàn toàn có thể làm vi phạm ràng buộc toàn vẹn. • Phạm vi ảnh hưởng của một ràng buộc toàn vẹn được trình diễn bằng một bảng 2 chiều gọi là Bảng tầm ảnh hưởng tác động .
  66. 66
    5.2.3 Bảng tầm ảnh hưởng tác động ( 2 ) Một số lao lý • Những thuộc tính khóa ( những thuộc tính nằm trong khóa chính của quan hệ ) không được phép sửa giá trị. • Thao tác thêm và xóa xét trên một bộ của quan hệ. Thao tác sửa xét sửa từng thuộc tính trên bộ của quan hệ. • Trước khi xét thao tác thực thi hoàn toàn có thể làm vi phạm ràng buộc hay không thì CSDL phải thỏa ràng buộc toàn vẹn trước .
  67. 67
    5.2.3 Bảng tầm ảnh hưởng tác động ( 3 ) • Bảng tầm tác động ảnh hưởng của một ràng buộc + : thực thi thao tác hoàn toàn có thể làm vi phạm RBTV – : thực thi thao tác không hề làm vi phạm RBTV + ( A ) : hoàn toàn có thể làm vi phạm RBTV khi sửa trên thuộc tính A – ( * ) : không vi phạm RBTV do thao tác không thực thi được RÀNG BUỘC RI THÊM XÓA SỬA LOẠI QUAN HỆ 1 LOẠI QUAN HỆ 2 LOẠI QUAN HỆ 3
  68. 68
    5.3 Phân loại RBTV 5.3.1 RBTV có toàn cảnh trên 1 loại quan hệ 5.3.2 RBTV có toàn cảnh trên nhiều loại quan hệ
  69. 69
    5.3.1 RBTV có toàn cảnh trên 1 loại quan hệ 5.3.1. 1 RBTV miền giá trị 5.3.1. 2 RBTV liên thuộc tính 5.3.1. 3 RBTV liên bộ
  70. 70
    Lược đồ CSDL quản trị giáo vụ HOCVIEN ( MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP ) LOP ( MALOP, TENLOP, TRGLOP, SISO, MAGVCN ) KHOA ( MAKHOA, TENKHOA, NGTLAP, TRGKHOA ) MONHOC ( MAMH, TENMH, TCLT, TCTH, MAKHOA ) DIEUKIEN ( MAMH, MAMH_TRUOC ) GIAOVIEN ( MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA ) GIANGDAY ( MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY ) KETQUATHI ( MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA )
  71. 71
    5.3.1.1 Ràng buộc miền giá trị • Là tập giá trị mà một thuộc tính hoàn toàn có thể nhận. • R1 : Giới tính của học viên chỉ là Nam hoặc Nữ – Nội dung : ∀ hv ∈ HOCVIEN : hv. Gioitinh ∈ { ‘ Nam ’, ’ Nữ ’ } – Bối cảnh : loại quan hệ HOCVIEN – Bảng tầm tác động ảnh hưởng : R1 THÊM XÓA SỬA HỌC VIÊN + – + ( gioitinh )
  72. 72
    5.3.1.2 Ràng buộc liên thuộc tính • Là ràng buộc giữa những thuộc tính với nhau trên 1 bộ của quan hệ • R2 : Ngày mở màn ( TUNGAY ) giảng dạy một môn học cho một lớp luôn nhỏ hơn ngày kết thúc ( DENNGAY ) – Nội dung : ∀ gd ∈ GIANGDAY : gd. TUNGAY < gd. DENNGAY – Bối cảnh : GIANGDAY – Bảng tầm ảnh hưởng tác động :
  73. 73
    5.3.1.3 Ràng buộc

    liên bộ (1)
    • Là ràng buộc giữa các bộ trên cùng một quan hệ (có thể
    liên quan đến nhiều thuộc tính).
    • R3: Tất cả các học viên phải có mã số phân biệt với nhau
    – Nội dung:
    ∀h1,h2∈ HOCVIEN: Nếu h1≠h2 thì h1.Mahv≠h2.Mahv
    – Bối cảnh: quan hệ HOCVIEN
    – Bảng tầm ảnh hưởng:
    R3 Thêm Xóa Sửa
    HOCVIEN + – + (MAHV)

  74. 74
    5.3.1.3 Ràng buộc liên bộ ( 2 ) • R4 : Các giáo viên có cùng học vị, cùng thông số lương thì mức lương sẽ bằng nhau – Nội dung : ∀ gv1, gv2 ∈ GIAOVIEN : Nếu ( gv1. Hocvi = gv2. Hocvi ) ∧ ( gv1. Heso = gv2. Heso ) thì gv1. Mucluong = gv2. Mucluong – Bối cảnh : quan hệ GIAOVIEN – Bảng tầm ảnh hưởng tác động :
  75. 75
    5.3.2 RBTV có toàn cảnh nhiều loại quan hệ 5.3.2. 1 RBTV tham chiếu ( khóa ngoại, nhờ vào sống sót ) 5.3.2. 2 RBTV liên thuộc tính 5.3.2. 3 RBTV do thuộc tính tổng hợp 5.3.2. 4 RBTV do quy trình trong lược đồ trình diễn quan hệ
  76. 76
    5.3.2.1 Ràng buộc tham chiếu ( 1 ) • Là ràng buộc pháp luật giá trị thuộc tính trong một bộ của loại quan hệ R ( tập thuộc tính này gọi là khóa ngoại ), phải phụ thuộc vào vào sự sống sót của một bộ trong quan hệ S ( tập thuộc tính này là khóa chính trong quan hệ S ). • RBTV tham chiếu còn gọi là ràng buộc phụ thuộc vào sống sót hay ràng buộc khóa ngoại .
  77. 77
    3.2.1 Ràng buộc tham chiếu ( 2 ) • R5 : Học viên thi một môn học nào đó thì môn học đó phải có trong list những môn học – Nội dung : ∀ ∀ k ∈ KETQUATHI, ∃ m ∈ MONHOC : k. Mamh = m. Mamh • Hoặc : KETQUATHI [ Mamh ] ⊆ MONHOC [ Mamh ] – Bối cảnh : loại quan hệ KETQUATHI, MONHOC – Bảng tầm tác động ảnh hưởng : R5 Thêm Xóa Sửa KETQUATHI + – + ( MAMH ) MONHOC – + + ( MAMH )
  78. 78
    5.3.2.2 Ràng buộc liên thuộc tính ( 1 ) • Là ràng buộc giữa những thuộc tính trên những loại quan hệ khác nhau • R6 : Ngày giáo viên giảng dạy một môn học phải lớn hơn hoặc bằng ngày giáo viên đó vào làm. – Nội dung : ∀ gd ∈ GIANGDAY Nếu ∃ gv ∈ GIAOVIEN : gd. Magv = gv. Magv thì gv. NGVL ≤ gd. TUNGAY – Bối cảnh : GIANGDAY, GIAOVIEN – Bảng tầm ảnh hưởng tác động :
  79. 79
    5.3.2.2 Ràng buộc liên thuộc tính ( 2 ) • R7 : Ngày thi một môn học phải lớn hơn ngày kết thúc học môn học đó. – Nội dung : ∀ kq ∈ KETQUATHI Nếu ∃ gd ∈ GIANGDAY, ∃ hv ∈ HOCVIEN : ( gd. Malop = hv. Malop ) ∧ ( kq. Mamh = gd. Mamh ) thì gd. Denngay < kq. Ngthi – Bối cảnh : GIANGDAY, HOCVIEN, KETQUATHI
  80. 80
    5.3.2.2 Ràng buộc liên thuộc tính ( 3 ) • Bảng tầm ảnh hưởng tác động :
  81. 81
    5.3.2.3 RBTV do thuộc tính tổng hợp ( 1 ) • Là ràng buộc giữa những thuộc tính, những bộ trên những loại quan hệ khác nhau. • Thuộc tính tổng hợp là thuộc tính được thống kê giám sát từ giá trị của những thuộc tính khác, những bộ khác. • Ví dụ : SANPHAM ( Masp, Tensp, Nuocsx, Gia ) KHACHHANG ( Makh, Hoten, Doanhso ) HOADON ( Sohd, Nghd, Makh, Trigia ) CTHD ( Sohd, Masp, Soluong, Gia ) – Trị giá của một hóa đơn bằng tổng thành tiền của những chi tiết cụ thể thuộc hóa đơn đó .
  82. 82
    5.3.2.3 RBTV do thuộc tính tổng hợp ( 2 ) • Doanh số của một người mua bằng tổng trị giá những hóa đơn mà người mua đó đã mua : – Nội dung : ∀ kh ∈ KHACHHANG, kh. Doanhso = ∑ ( hd ∈ HOADON : hd. Makh = kh. Makh ) ( hd. Trigia ) – Bối cảnh : KHACHHANG, HOADON – Bảng tầm tác động ảnh hưởng :
  83. 83
    5.3.2.3 RBTV do thuộc tính tổng hợp ( 3 ) • R8 : Sĩ số của một lớp là số lượng học viên thuộc lớp đó – Nội dung : ∀ l ∈ LOP, l. Siso = Count ( hv ∈ HOCVIEN : hv. Malop = l. Malop ) ( * ) – Bối cảnh : quan hệ LOP, HOCVIEN – Bảng tầm ảnh hưởng tác động :
  84. 84
    5.3.2.4 Do hiện diện của quy trình ( 1 ) Biểu diễn lược đồ quan hệ dưới dạng đồ thị : – Loại quan hệ được màn biểu diễn bằng nút tròn rỗng to. – Thuộc tính được màn biểu diễn bằng nút tròn đặc nhỏ. – Tất cả những nút đều được chỉ rõ bằng tên của quan hệ hoặc thuộc tính. Thuộc tính thuộc một loại quan hệ được trình diễn bởi một cung nối giữa nút tròn to và nút tròn nhỏ. – Nếu đồ thị màn biểu diễn Open một đường khép kín. => Lược đồ CSDL có sự hiện hữu của quy trình .
  85. 85
    5.3.2.4 Do hiện diện của quy trình ( 2 )
  86. 86
    5.3.2.4 Do hiện diện của quy trình ( 3 ) • X = GIANGDAY [ Magv, Mamh ] • Y = ( GIAOVIEN ⋈ MONHOC ) [ Magv, Mamh ] • Ý nghĩa : – X : giáo viên và những môn học đã được phân công cho giáo viên đó giảng dạy – Y : giáo viên và những môn học thuộc khoa giáo viên đó đảm nhiệm • Mối quan hệ giữa X và Y trong những ràng buộc sau :
  87. 87
    5.3.2.4 Do hiện diện của quy trình ( 4 ) Xảy ra một trong ba ràng buộc sau : • Ràng buộc 1 : giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó đảm nhiệm X ⊆ Y • Ràng buộc 2 : giáo viên phải được phân công giảng dạy tổng thể những môn thuộc khoa giáo viên đó đảm nhiệm X = Y • Ràng buộc 3 : hoàn toàn có thể phân công giáo viên giảng dạy bất kể môn học nào X ≠ Y
  88. 88
    5.3.2.4 Do hiện diện của quy trình ( 4 ) • R9 : giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó đảm nhiệm X ⊆ Y
  89. 89
    5.3.3 Phụ thuộc hàm ( functional dependency ) 5.3.4 Thuật toán tìm khóa
  90. 90
    5.3.3 Phụ thuộc hàm ( 1 ) • Cho lđ quan hệ Q. ( A, B, C ). Phụ thuộc hàm A xác lập B. Ký hiệu A → B nếu : ∀ q1, q2 ∈ Q. : Nếu q1. A = q2. A thì q1. B = q2. B • A → B được gọi là phụ thuộc vào hàm hiển nhiên nếu B ⊆ A • A → B được gọi là nhờ vào hàm nguyên tố nếu ¬ ∃ A ’ ⊂ A, A ’ ≠ A sao cho A ’ → B
  91. 91
    • Ràng buộc khóa cũng là một nhờ vào hàm Mamh → Tenmh, Tclt, Tcth, Makhoa • R4 : Các giáo viên có cùng học vị, cùng thông số lương thì mức lương sẽ bằng nhau. Ràng buộc này hoàn toàn có thể màn biểu diễn bằng phụ thuộc vào hàm như sau : Hocvi, Heso → Mucluong 5.3.3 Phụ thuộc hàm ( 2 )
  92. 92
    5.3.4 Thuật toán tìm khóa ( 1 ) 5.3.4. 1 Thuật toán tìm bao đóng ( Closure ) của tập thuộc tính : 1. X0 = X 2. Xi + 1 = Xi ∪ A sao cho ∃ ( Y  Z ) ∈ F, mà A ∈ Z và Y ∈ Xi 3. Cho đến khi Xi + 1 = Xi ( Vì X = X0 ⊆ X1 ⊆ X2 ⊆ … ⊆ U, mà U hữu hạn vì vậy sẽ sống sót 1 chỉ số i nào đó mà Xi + 1 = Xi )  Khi đó X + F = Xi
  93. 93
    Ví dụ:
    • Cho R ( U ) với U = ABCDEGH F = { B  A, DA  CE, D  H, GH  C, AC  D } • Tính X + F, với : X = BD X = AC 5.3.4 Thuật toán tìm khóa ( 2 )
  94. 94
    5.3.4.2 Định nghĩa khóa :  R là lược đồ quan hệ định nghĩa trên tập những thuộc tính U = { A1, A2, …, An }, với tập những phụ thuộc vào hàm F = { f1, f2, …, fm } xác lập trên R.  K ⊆ U là khóa của R nếu thỏa mãn nhu cầu hai điều kiện kèm theo sau đây : 1 ) K → U. ( K là siêu khóa ) 2 ) ! K ’ ⊂ K mà K ’ → U. ( siêu khóa nhỏ nhất ) 5.3.4 Thuật toán tìm khóa ( 3 )
  95. 95
    5.3.4.3: Bài toán tìm khóa :  A gọi là thuộc tính nguồn nếu A không Open ở vế phải của bất kỳ Pth không hiển nhiên nào của F. Tập những thuộc tính nguồn ký hiệu là N.  A gọi là thuộc tính đích nếu A không phải thuộc tính nguồn và A không Open ở vế trái của bất kỳ PTH không hiển nhiên nào của F. Ký hiệu là D. 5.3.4 Thuật toán tìm khóa ( 4 )
  96. 96
     Tập hợp những thuộc tính không phải nguồn và không phải đích gọi là tập trung gian. Ký hiệu là L  Các tập hợp N, D, L rời nhau từng đôi một và N ∪ D ∪ L = R + Nhận xét  Nếu K là khóa của R thì K chứa toàn bộ những thuộc tính nguồn và không chứa bất kể thuộc tính đích nào. 5.3.4 Thuật toán tìm khóa ( 5 )
  97. 97
     B1: Xây dựng 2 v tập con của L : L1, L2, … bằng giải pháp đường chạy nhị phân.  B2 : Xây dựng tập K chứa những siêu khóa  K = ∅  ∀ Li, Xi = N ∪ Li  Tính Xi + F. Nếu Xi + F = R + thì K = K ∪ Xi  B3 : Loại bỏ dần những siêu khóa lớn. 5.3.4 Thuật toán tìm khóa ( 6 )
  98. 98
    • Ví dụ:
    Cho R ( ABCDEG ) với tập Pth F = { AE  C, CG  A, BD  G, GA  E } Xác định tổng thể những khóa của R.  Ta có : – N = { B, D } – D = ∅ – L = { A, C, E, G }  Xây dựng tập thuộc tính Li bằng giải pháp đường chạy nhị phân. 5.3.4 Thuật toán tìm khóa ( 7 )
  99. 100
    5.4. Bảng tầm tác động ảnh hưởng tổng hợp ( 1 ) • Bảng tầm ảnh hưởng tác động tổng hợp của m ràng buộc trên n quan hệ toàn cảnh :
  100. 101
    5.4. Bảng tầm ảnh hưởng tác động tổng hợp ( 1 )
  101. 102
    Chương VI. CHUẨN HÓA DỮ LIỆU 6.1. Đặt yếu tố 6.2. Dạng chuẩn 1 6.3. Dạng chuẩn 2 6.4. Dạng chuẩn 3 6.5. Dạng chuẩn Boyce-Codd 6.6. Chuẩn hóa lược đồ CSDL bằng giải pháp phân rã 6.7. Ví dụ
  102. 103
    6.1. Đặt vấn đề ( 1 ) • Xét lđ quan hệ ĐẶT_HÀNG ( SốĐH, NgàyĐH, MãKH, MãHH, SốLượng ) Với tập Pth F = { SốĐH  NgàyĐH, MãKH ; SốĐH, MãHH  SốLượng } => => Có Trùng lắp thông tin. Có Trùng lắp thông tin .
  103. 104
    Sự trùng lắp thông tin dẫn đến :  Tăng chí phí tàng trữ  Tăng ngân sách kiểm tra RBTV  Thiếu đồng nhất  Vi phạm tính toàn vẹn của dữ liệu 6.1. Đặt yếu tố ( 2 )
  104. 105
    Tổ chức lại thành 2 loại quan hệ như sau : ĐẶT_HÀNG ( SốĐH, NgàyĐH, MãKH ) Với F1 = { SốĐH  NgàyĐH, MãKH } CHITIẾT_ĐH ( SốĐH, MãHH, SốLượng ) Với F2 = { SốĐH, MãHH  SốLượng } => Không còn xảy ra thực trạng trùng lắp thông tin. 6.1. Đặt yếu tố ( 3 )
  105. 106
    • Để có thể nhìn nhận một cách đơn cử chất lượng phong cách thiết kế của một lược đồ CSDL, lúc đầu E.F.Codd ( tác giả của quy mô dữ liệu quan hệ ) đưa ra 3 dạng chuẩn và sau đó R.F.Boyce và E.F.Codd nâng cấp cải tiến dạng chuẩn 3 gọi là dạng chuẩn Boyce-Codd ( BC ). • Các dạng chuẩn được định nghĩa dựa trên khái niệm nhờ vào hàm. 6.1. Đặt yếu tố ( 4 )
  106. 107
    • Mục đích của quy trình chuẩn hóa : – Để màn biểu diễn được mọi quan hệ trong CSDL – Tránh sai sót khi thêm, xóa, sửa dữ liệu – Tránh phải kiến thiết xây dựng lại cấu trúc của những loại quan hệ khi cần đến những kiểu dữ liệu mới 6.1. Đặt yếu tố ( 5 )
  107. 108
    6.2. DẠNG CHUẨN 1 ( 1 ) Thuộc tính đơn : Giả sử có lược đồ quan hệ Q. Một thuộc tính A của Q. gọi là thuộc tính đơn nếu mỗi một biểu lộ ( dòng ) thuộc tính A chỉ có một giá trị. • Ví dụ 1 : Môn không là thuộc tính đơn CHUYÊN_MÔN ( MÃGV, MÔN )
  108. 109
    Định nghĩa:
    • Một lược đồ quan hệ Q. được gọi là ở dạng chuẩn 1 nếu mọi thuộc tính của Q. đều là thuộc tính đơn. Ví dụ : Quan hệ CHUYÊN_MÔN ( MÃGV, MÔN ) không đạt dạng chuẩn 1 Khắc phục : CHUYÊN_MÔN ( MÃGV, MÔN ) 6.2. DẠNG CHUẨN 1 ( 2 )
  109. 110
    • CHUYÊN_MÔN (MÃGV, MÔN ) đạt dạng chuẩn 1 : 6.2. DẠNG CHUẨN 1 ( 3 )
  110. 111
    6.3. DẠNG CHUẨN 2 ( 1 ) • Phụ thuộc vừa đủ : Giả sử có 1 lược đồ quan hệ Q. và tập phụ thuộc vào hàm F. Thuộc tính A được gọi là nhờ vào vừa đủ vào 1 tập thuộc tính X nếu : – A ∈ X + F – X  A là phụ thuộc vào hàm nguyên tố ( không sống sót X ’ ⊆ X, mà X ’  A )
  111. 112
    Định nghĩa:
    • Một lược đồ quan hệ Q. được gọi là ở dạng chuẩn 2 nếu : – Q ở dạng chuẩn 1. – Mọi thuộc tính không khóa của Q. đều phụ thuộc vào vừa đủ vào những khóa của Q. 6.3. DẠNG CHUẨN 2 ( 2 )
  112. 113
    Ví dụ: Loại quan hệ ĐẶT_HÀNG ( SốĐH, MãHH, NgàyĐH, MãKH, SốLượng ) Với tập Pth F = { SốĐH  NgàyĐH, MãKH ; SốĐH, MãHH  SốLượng }  Không đạt dạng chuẩn 2 Khắc phục : Tách thành 2 quan hệ : ĐẶT_HÀNG ( SốĐH, NgàyĐH, MãKH ) Với F1 = { SốĐH  NgàyĐH, MãKH } CHITIẾT_ĐH ( SốĐH, MãHH, SốLượng ) Với F2 = { SốĐH, MãHH  SốLượng } 6.3. DẠNG CHUẨN 2 ( 3 )
  113. 114
    • Nhận xét:
    – Nếu lược đồ quan hệ Q. chỉ có 1 khóa K và K chỉ có 1 thuộc tính thì Q. ở dạng chuẩn 2. – Một lược đồ quan hệ Q. ở dạng chuẩn 2 vẫn hoàn toàn có thể tiềm ẩn sự trùng lắp thông tin. 6.3. DẠNG CHUẨN 2 ( 4 )
  114. 115
    6.4. DẠNG CHUẨN 3 ( 1 ) Phụ thuộc bắc cầu : • Thuộc tính A ∈ Q + được gọi là phụ thuộc vào bắc cầu vào tập thuộc tính X nếu ∃ Y ∈ Q + : – X  Y ∈ F + và Y  A ∈ F + – Y  X ∉ F + – A ∉ ( X ∪ Y ) • Khi đó X  A được gọi là phụ thuộc vào hàm bắc cầu .
  115. 116
     Định nghĩa:
    Một lược đồ quan hệ Q. được gọi là ở dạng chuẩn 3 nếu : – Q ở dạng chuẩn 2. – Mọi thuộc tính không khóa của Q. đều không phụ thuộc vào bắc cầu vào một khóa nào của Q. 6.4. DẠNG CHUẨN 3 ( 2 )
  116. 117
    Ví dụ: Loại quan hệ GIẢNG_DẠY ( MãLớp, MãsốGV, TênGV, Địachỉ ) Với tập Pth F = { Mãlớp  MãsốGV ; MãSốGV  TênGV, Địachỉ }  Không đạt dạng chuẩn 3 Khắc phục : Tách thành 2 quan hệ : GIẢNG_DẠY ( MãLớp, MãsốGV ) Với tập Pth F1 = { Mãlớp  MãsốGV } GIÁO_VIÊN ( MãsốGV, TênGV, Địachỉ ) Với tập Pth F2 = { MãSốGV  TênGV, Địachỉ } 6.4. DẠNG CHUẨN 3 ( 3 )
  117. 118
    • Nhận xét:
    – Chính phụ thuộc vào hàm bắc cầu là nguyên do dẫn đến thực trạng trùng lắp thông tin. – Dạng chuẩn 3 là tiêu chuẩn tối thiểu trong phong cách thiết kế cơ sở dữ liệu. 6.4. DẠNG CHUẨN 3 ( 4 )
  118. 119
    6.5. DẠNG CHUẨN BOYCE-CODD ( 1 ) • Định nghĩa : – Một lược đồ quan hệ Q. được gọi là ở dạng chuẩn Boyce-Codd ( BC ) nếu mọi phụ thuộc vào hàm không hiển nhiên của F đều có vế trái chứa khóa. – Dạng chuẩn lược đồ CSDL là Min ( dạng chuẩn Qi ), Qi là những lược đồ quan hệ của CSDL.
  119. 120
    • Nhận xét:
    – Nếu 1 lược đồ quan hệ Q. ở dạng chuẩn BC thì cũng ở dạng chuẩn 3. – Trong 1 lược đồ quan hệ Q. ở dạng chuẩn BC, việc kiểm tra phụ thuộc vào hàm đa phần là kiểm tra khóa nội. 6.5. DẠNG CHUẨN BOYCE-CODD ( 2 )
  120. 121
    Ví dụ:
    ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH ) Với F1 = { SốĐH  NgàyĐH, MãKH } CHITIẾT_ĐH ( SốĐH, MãHH, SốLượng ) Với F2 = { SốĐH, MãHH  SốLượng } => 2 lđ quan hệ đều đạt dạng chuẩn Boyce – Codd. 6.5. DẠNG CHUẨN BOYCE-CODD ( 3 )
  121. 122
    Chương VII. NGÔN NGỮ TÂN TỪ ( tự đọc ) 7.1 Giới thiệu 7.2 Cú pháp 7.3 Các định nghĩa 7.4 Diễn giải của một công thức 7.5 Quy tắc lượng giá công thức 7.6 Ngôn ngữ tân từ có biến là n bộ 7.7 Ngôn ngữ tân từ có biến là miền giá trị
  122. 123
    7.1. Giới thiệu
    • Ngôn ngữ tân từ là ngôn từ truy vấn hình thức do Codd ý kiến đề nghị ( 1972 – 1973 ) được Lacroit, Proix và Ullman tăng trưởng, thiết lập trong 1 số ít ngôn từ như QBE, ALPHA.. • Đặc điểm : – Ngôn ngữ phi thủ tục. – Rút trích cái gì chứ không phải rút trích như thế nào. – Khả năng diễn đạt tương tự với đại số quan hệ. • Có hai loại : – Có biến là n bộ. – Có biến là miền giá trị .
  123. 124
    7.2. Cú pháp
    • ( ) : biểu thức trong ngoặc • Biến : dùng chữ thường ở cuối bộ ký tự : x, y, z, t, s … • Hằng : dùng chữ thường ở đầu bộ ký tự : a, b, c, … • Hàm : là một ánh xạ từ một miền giá trị vào tập hợp gồm 2 giá trị : đúng hoặc sai. Thường dùng chữ thường ở giữa bộ ký tự : h, g, f, … • Tân từ : là một biểu thức được kiến thiết xây dựng dựa trên biểu thức logic. Dùng chữ in hoa ở giữa bộ ký tự P., Q., R … • Các phép toán logic : phủ định ( ¬ ), kéo theo ( ⇒ ), và ( ∧ ), hoặc ( ∨ ). • Các lượng từ : với mọi ( ∀ ), sống sót ( ∃ )
  124. 125
    7.3. Các định nghĩa ( 1 ) • Định nghĩa 1 : Tân từ 1 ngôi – Tân từ 1 ngôi được định nghĩa trên tập X và biến x có giá trị chạy trên những thành phần của X. – Với mỗi giá trị của x, tân từ P. ( x ) là một mệnh đề logic, tức là nó có giá trị đúng ( Đ ) hoặc sai ( S ). – Ví dụ : • P ( x ), x là biến chạy trên X, là một tân từ • P ( gt ), gt ∈ X là một mệnh đề, X = { Nguyen Van A, Tran Thi B } • Với tân từ NỮ ( x ) được xác lập : ” x là người nữ ”. Khi đó • Mệnh đề NỮ ( Nguyen Van A ) : cho tác dụng Sai • NỮ ( Tran Thi B ) : cho tác dụng Đúng
  125. 126
    • Định nghĩa 2 : Tân từ n ngôi – Tân từ n ngôi được định nghĩa trên những tập X1, X2, …, Xn và n biến x1, x2, …, xn lấy giá trị trên những tập Xi tương ứng. – Với mỗi giá trị ai ∈ Xi, xi = ai. Tân từ n ngôi là một mệnh đề. – Ký hiệu : P. ( x1, x2, …, xn ) – Ví dụ : CHA ( x1, x2 ) : ” x1 là CHA của x2 ” – Chú ý : • Các Xi không nhất thiết phải là rời nhau • Với xi = ai, P. ( x1, x2, …, ai, …, xn ) là tân từ n-1 ngôi 7.3. Các định nghĩa ( 2 )
  126. 127
    • Định nghĩa 3 : Từ – Từ là một hằng hay là một biến – Nếu f ( t1, t2, …, tn ) là hàm n ngôi thì f là một từ • Định nghĩa 4 : Công thức – Công thức nguyên tố : P. ( t1, t2, …, tn ), ti là những từ – Nếu F1, F2 là những công thức thì những biểu thức sau cũng là những công thức : F1 ∨ F2, F1 ∧ F2, F1 => F2, ¬ F1 – Nếu F1 là một công thức thì ∀ : F1, ∃ x : F1 cũng là những công thức – Nếu F1 là công thức thì ( F1 ) cũng là một công thức 7.3. Các định nghĩa ( 3 )
  127. 128
    • Định nghĩa 4 : – Công thức đóng là công thức nếu mọi biến đều có kèm với lượng từ. ( khẳng định chắc chắn Đ, S ) – Công thức mở là công thức sống sót 1 biến không kèm lượng từ. ( tìm kiếm thông tin ) • Ví dụ : – C1 : ∀ x ∃ t ∀ y ( P. ( x, y, a ) ⇒ ∃ z ( Q. ( y, z, t ) ∧ R ( x, t ) ) là công thức đóng vì những biến x, y, z, t đều có kèm lượng từ ∀, ∃ – C2 : ∀ x ∃ t ( P. ( x, y, a ) ⇒ ∃ z ( Q. ( y, z, t ) ∧ R ( x, t ) ) là công thức mở vì biến y không có lượng từ ∀, ∃ 7.3. Các định nghĩa ( 4 )
  128. 129
    7.4. Diễn giải của một công thức Gồm 4 phần : • Miền giá trị của những biến của công thức ( ký hiệu là tập M ) • Sử dụng những hằng, những tân từ ( ý nghĩa tân từ, xác lập được quan hệ n ngôi ) • Ý nghĩa của công thức • Xác định 1 quan hệ n ngôi trên tập Mn
  129. 130
    7.5. Quy tắc lượng giá công thức • Lượng giá tân từ : xét tân từ bậc n : P. ( x1, x2, … xn ) và link với quan hệ R, n ngôi. P ( a1, a2, …, an ) : Đ ⇔ ( a1, a2, …, an ) ∈ R P ( a1, a2, …, an ) : S ⇔ ( a1, a2, …, an ) ∉ R • Các phép toán ∧, ∨, ¬, ⇒ dùng bảng chân trị • Lượng từ ∃ : gọi x là biến. Công thức ∃ x F ( x ) là đúng khi có tối thiểu một ai ∈ M / F ( ai ) : Đ M = { a1, a2, …, an } ≡ ∨ F ( ai ), ai ∈ M • Lượng từ ∀ : x là biến, ∀ x F ( x ) : Đ với ∀ ai ∈ M / F ( ai ) : Đ M = { a1, a2, …, an } ≡ ∧ F ( ai ), ai ∈ M
  130. 131
    7.6. Ngôn ngữ tân từ có biến là n bộ 7.6.1 Quy tắc 7.6.2 Định nghĩa 7.6.3 Công thức bảo đảm an toàn 7.6.4 Biểu diễn những phép toán
  131. 132
    7.6.1 Quy tắc ( 1 ) 1. Biến là 1 bộ của quan hệ 2. Từ : hằng, biến hoặc biểu thức có dạng s [ C ], s : biến, C : tập những thuộc tính của quan hệ được gọi là từ chiếu. 3. Công thức : – Rs ( R là quan hệ, s là biến ) được gọi là từ. Miền giá trị sẽ định nghĩa miền biến thiên của s. – t1θ a, t1θ t2 ở đây t1, t2 là những từ chiếu, còn a là một hằng, θ là toán tử so sánh dược gọi là công thức nguyên tố .
  132. 133
    4. Một công thức nguyên tố là một công thức 5. F1 và F2 là công thức : F1 ∨ F2, F1 ∧ F2, F1 ⇒ F2, ¬ F1 là công thức 6. F là công thức, s là biến ∃ sF, ∀ sF là công thức 7. F là công thức, ( F ) là công thức 7.6.1 Quy tắc ( 2 )
  133. 134
    7.6.2 Định nghĩa
    • Một câu hỏi trong ngôn từ tân từ có biến là n bộ được trình diễn như sau : { s | F }. Trong đó s là biến n bộ, F là một công thức, chỉ có một biến tự do là s. • Ví dụ : BIENGIOI ( Nuoc, Tinhtp ). Phép toán quan hệ BIENGIOI [ Nuoc ] được chuyển thành câu hỏi trong ngôn từ tân từ có biến là bộ : { s [ Nuoc ] BIENGIOI s }
  134. 135
    7.6.3 Công thức bảo đảm an toàn F là công thức bảo đảm an toàn : nếu nó thỏa mãn nhu cầu 3 điều kiện kèm theo sau : i ) Nếu s là bộ n thỏa : F ( s ) là đúng thì mọi thành phần của s là thành phần của DOM ( F ) : ( FS : Đúng ) → s ∈ DOM ( F ) ii ) F ’ là công thức con của F : ∃ sF’S, F’S : Đúng → s ∈ DOM ( F ’ ) iii ) ∀ sF’S, F’S : Đúng → s ∉ DOM ( F ’ )
  135. 136
    7.6.4 Biểu diễn những phép toán ( 1 ) 1. Phép hội – Q1, Q2 là những quan hệ n chiều – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 ∪ Q2 – Fs = F1s ∨ F2s 2. Phép trừ – Q1, Q2 là những quan hệ n chiều – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 – Q2 – Fs = F1 ∧ ¬ F2s
  136. 137
    • 3. Phép tích Q1 ( x1, …, xm ), Q2 ( y1, …, yn ) – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 x Q2 Fs : s ( x1, …, xm, y1, …, yn ) Fs = ( ∃ v ) ( ∃ p ) ( F1v ∧ F2p ∧ s1 = v1 ∧ … sm = vm ∧ sm + 1 = p1 ∧ … sm + n = pn ) 7.6.4 Biểu diễn những phép toán ( 2 )
  137. 138
    • 4. Phép chiếu – Q1 ( x1, …, xn ), F1 là những công thức ứng với Q1 – Công thức của Q = Q1 [ xi1, xi2, …, xik ] Fs = ( ∃ v ) ( F1v ∧ s1 = vi1 ∧ s2 = vi2 ∧ … sk = vik ) • 5. Phép chọn – Q1 là quan hệ n chiều, F1 là công thức ứng với Q1 – Công thức Q = Q1 : điều kiện kèm theo ĐK ( ĐK : xiθxj hoặc xiθa ) Fs = F1s ∧ si θsj hoặc F1s ∧ si θa ( 1 ≤ i, j ≤ n, i ≠ j ) 7.6.4 Biểu diễn những phép toán ( 3 )
  138. 139
    7.7. Ngôn ngữ tân từ có biến là miền giá trị 7.7.1 Quy tắc 7.7.2 Biểu diễn câu hỏi 7.7.3 Công thức bảo đảm an toàn 7.7.4 Biểu diễn những phép toán
  139. 140
    7.7.1 Quy tắc
    1. Từ : là hằng hoặc biến 2. Công thức nguyên tố – Q ( t1, t2, …, tn ) : ti là những từ, Q. là quan hệ – tiθ tj, tiθ a với ti là từ, a là một hằng, θ là phép toán 3. Một công thức nguyên tố là một công thức 4. F1 và F2 là công thức : F1 ∨ F2, F1 ∧ F2, F1 ⇒ F2, ¬ F1 là công thức 5. F là công thức, t : biến tự do, ∃ sF, ∀ sF cũng công thức 6. F là công thức, ( F ) là công thức
  140. 141
    7.7.2 Biểu diễn câu hỏi { ( x1, x2, …, xn ) | F ( x1, x2, …, xn ) } • xi là những biến tự do của F • Q = { ( x1, x2, …, xn ) | F ( x1, x2, …, xn ) } nên ( x1, x2, …, xn ) ∈ Q ⇒ F ( x1, x2, …, xn ) : Đúng
  141. 142
    7.7.3 Công thức

    an toàn
    F là công thức an toàn: nếu nó thỏa mãn 3 điều
    kiện sau:
    i. Nếu s là bộ n thỏa: F(s) là đúng thì mọi thành
    phần của s là phần tử của DOM(F):
    (F(x1,…,xn): Đúng) → xi ∈ DOM(F), i=1,…,n
    ii. F’ là công thức con của F:
    ∃xF’: Đúng → x ∈ DOM(F’)
    ∀xF’: Đúng → ∃x ∉ DOM(F’)
    iii. (F(x1,…,xn): Đúng) → ∃x ∉ DOM(F), i=1,…,n

  142. 143
    7.7.4 Biểu diễn những phép toán ( 1 ) 1. Phép hội – Q1, Q2 là những quan hệ n chiều – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 ∪ Q2 – F = F1 ∨ F2 2. Phép trừ – Q1, Q2 là những quan hệ n chiều – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 – Q2 – F = F1 ∧ ¬ F2
  143. 144
    3. Phép tích
    – Q1 ( x1, …, xm ), Q2 ( y1, …, yn ) – F1, F2 là những công thức ứng với Q1, Q2 – Công thức của Q = Q1 x Q2 F ( x1, …, xm, y1, …, yn ) = F1 ( x1, …, xm ) ∧ F2 ( y1, …, yn ) 7.7.4 Biểu diễn những phép toán ( 2 )

  144. 145
    4. Phép chiếu
    – Q1 ( x1, …, xn ), F1 ( x1, …, xn ) là những công thức ứng với Q1 – Công thức của Q = Q1 [ xi1, xi2, …, xik ] Fs ( xi1, xi2, …, xik ) = ( ∃ xji ) ( ∃ xjz ) … ( ∃ xjn-k ) ( F1 ( x1, …, xn ) ) trong đó ( xi1, xi2, …, xik ) ∪ ( xj1, xj2, …, xjn-k ) = ( x1, x2, …, xn ) 5. Phép chọn – Q1 ( x1, …, xn ), F1 ( x1, …, xn ) là những công thức ứng với Q1 – Công thức Q = Q1 : điều kiện kèm theo ĐK ( ĐK : xiθxj hoặc xiθa ) F1 ( x1, …, xn ) = F1 ( x1, …, xn ) ∧ xi θxj hoặc = F1 ( x1, …, xn ) ∧ xi θa 7.7.4 Biểu diễn những phép toán ( 3 )
Bài giảng cơ sở dữ liệu

Bài viết liên quan
Hotline 24/7: O984.666.352
Alternate Text Gọi ngay