Cơ sở dữ liệu (Cao đẳng CNTT) - Nguồn: BCTECH

85 48 0
Cơ sở dữ liệu (Cao đẳng CNTT) - Nguồn: BCTECH

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

- Trình bày được khái niệm về quan hệ, thuộc tính, các loại khóa, lược đồ quan hệ, bộ giá trị và phụ thuộc hàm, ràng buộc toàn vẹn của mô hình cơ sở dữ liệu quan hệ.. - Trình bày được kh[r]

(1)

UBND TỈNH BÀ RỊA – VŨNG TÀU

TRƯỜNG CAO ĐẲNG KỸ THUẬT CÔNG NGHỆ

GIÁO TRÌNH MƠN HỌC : CƠ SỞ DỮ LIỆU NGHỀ: CƠNG NGHỆ THƠNG TIN

TRÌNH ĐỘ: CAO ĐẲNG

(Ban hành kèm theo Quyết định số: /QĐ-CĐKTCN

ngày…….tháng….năm Hiệu trưởng Trường Cao đẳng Kỹ thuật Công nghệ BR – VT)

(2)(3)

TUYÊN BỐ BẢN QUYỀN

Nhằm đáp ứng nhu cầu học tập nghiên cứu cho giảng viên sinh viên nghề Công nghệ thông tin trường Cao đẳng Kỹ thuật Công nghệ Bà Rịa – Vũng Tàu Chúng thực biên soạn tài liệu Cơ sở liệu

Tài liệu biên soạn thuộc loại giáo trình phục vụ giảng dạy học tập, lưu hành nội nhà trường nên nguồn thơng tin phép dùng ngun trích dùng cho mục đích đào tạo tham khảo

(4)

LỜI GIỚI THIỆU

Cơ sở liệu môn học sở ngành Công nghệ thông tin Là tảng để xây dựng, tổ chức liệu thực tế

Giáo trình Cơ sở liệu biên soạn cho sinh viên ngành Công nghệ thông tin, dựa chương trình đào tạo mơn học Cung cấp cho người học kiến thức kỹ để phân tích thiết kế sở liệu

Giáo trình gồm 12 với nội dung trình bày từ nội dung đến nâng cao Trang bị đầy đủ kiến thức để người học xây dựng, tổ chức liệu cấu trúc cho phần mềm Đây coi tảng lý thuyết để xây dựng hệ quản trị sở liệu phù hợp, tối ưu Nội dung sau:

Bài mở đầu: Giới thiệu sở liệu

Bài 1: Khái niệm mơ hình sở liệu quan hệ Bài 2: Phép hội, phép giao, phép trừ đại số quan hệ Bài 3: Phép tích đề phép chia đại số quan hệ Bài 4: Phép chiếu phép chọn đại số quan hệ Bài 5: Phép kết nối đại số quan hệ

Bài 6: Xác định RBTV bối cảnh quan hệ Bài 7: Xác định RBTV bối cảnh nhiều quan hệ

Bài 8: Phụ thuôc hàm hệ tiên đề Amstrong cho phụ thuộc hàm Bài 9: Xác định Bao đóng tập thuộc tính

Bài 10: Xác định Khóa lược đồ CSDL

Bài 11: Xác định Phủ tối thiểu lược đồ CSDL Bài 12: Xác định Dạng chuẩn lược đồ CSDL

Xin gửi lời cảm ơn tới thầy cô, đặc biệt thầy cô khoa Công nghệ thông tin trường Cao đẳng kỹ thuật cơng nghệ tỉnh BRVT nhiệt tình góp ý để tác giả hồn thiện giáo trình mặt nội dung hình thức trình bày

BRVT, ngày … tháng… năm 2020 Tham gia biên soạn

(5)

MỤC LỤC

TRANG

LỜI GIỚI THIỆU 3

MỤC LỤC 4

BÀI MỞ ĐẦU: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU 8

1 Một số khái niệm

1.1 Cơ sở liệu

1.2 Hệ quản trị sở liệu 11

2 Các mơ hình liệu 12

2.1 Mơ hình liệu mạng 13

2.2 Mơ hình phân cấp 14

2.3 Mơ hình quan hệ 15

2.4 Mơ hình thực thể mối kết hợp (Entity Relationship Diagram ERD) 15

2.5 Cách chuyển đổi từ mô hình thực thể kết hợp sang mơ hình quan hệ .18 2.6 Mơ hình hướng đối tượng 21

CÂU HỎI - BÀI TẬP: 21

BÀI 1: CÁC KHÁI NIỆM CƠ BẢN TRONG MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 24

1 Thuộc tính 24

2 Lược đồ quan hệ 25

3 Quan hệ 25

4 Bộ giá trị 26

5 Tân từ 26

6 Khóa, siêu khóa, khóa định, khóa chính, khóa ngoại 26

9 Các phép tính sở liệu quan hệ 28

CÂU HỎI - BÀI TẬP 28

BÀI 2: PHÉP HỘI, PHÉP GIAO, PHÉP TRỪ TRÊN ĐẠI SỐ QUAN HỆ 31

1 Giới thiệu đại số quan hệ 31

2 Phép hội (hợp) quan hệ (Union) 32

3 Phép giao quan hệ (Intersection) 32

4 Phép Trừ quan hệ (Minus) 33

CÂU HỎI - BÀI TẬP 34

BÀI 3: PHÉP TÍCH ĐỀ CÁC VÀ PHÉP CHIA TRÊN ĐẠI SỐ QUAN HỆ 35

1 Tích Decac quan hệ (Cartesian Product) 35

2 Phép chia quan hệ: 37

CÂU HỎI - BÀI TẬP 37

BÀI 4: PHÉP CHIẾU VÀ PHÉP CHỌN TRONG ĐẠI SỐ QUAN HỆ 38

1 Phép chiếu ( Project) 38

2 Phép chọn (Selection) 39

3 Phép gán 41

4 Phép gom nhóm hàm nhóm 41

CÂU HỎI - BÀI TẬP 42

(6)

1 Phép kết ( phép nối) 47

2 Phép kết tự nhiên 48

3 Phép kết (outer join) 49

CÂU HỎI - BÀI TẬP 50

BÀI 6: XÁC ĐỊNH RÀNG BUỘC TỒN VẸN CĨ BỐI CẢNH MỘT QUAN HỆ 56

1 Khái niệm yếu tố ràng buộc toàn vẹn 56

2 Ràng buộc miền giá trị bối cảnh quan hệ 58

3 Ràng buộc toàn vẹn liên thuộc tính 58

4 Ràng buộc liên - liên thuộc tính bối cảnh quan hệ 59

CÂU HỎI - BÀI TẬP 59

BÀI 7: XÁC ĐỊNH RÀNG BUỘC TỒN VẸN CĨ BỐI CẢNH NHIỀU QUAN HỆ 61

1 Ràng buộc toàn vẹn tham chiếu 61

2 Ràng buộc toàn vẹn liên thuộc tính 62

3 Ràng buộc tồn vẹn thuộc tính tổng hợp 62

CÂU HỎI – BÀI TẬP 63

BÀI 8: PHỤ THUỘC HÀM VÀ HỆ TIÊN ĐỀ AMSTRONG CHO CÁC PHỤ THUỘC HÀM 65

1 Định nghĩa phụ thuộc hàm 65

2 Một số tính chất phụ thuộc hàm - Hệ luật dẫn Armstrong 66

CÂU HỎI – BÀI TẬP 67

BÀI 09: XÁC ĐỊNH BAO ĐÓNG 70

1 Bao Đóng Của Tập Phụ Thuộc Hàm F 70

2 Bao đóng tập thuộc tính 70

CÂU HỎI – BÀI TẬP 72

BÀI 10: XÁC ĐỊNH KHÓA CỦA LƯỢC ĐỒ CƠ SỞ DỮ LIỆU 73

1 Định nghĩa khoá quan hệ (relation key) 73

2 Thuật tốn tìm khóa 73

3 Thuật tốn tìm tất khóa 74

CÂU HỎI - BÀI TẬP 76

BÀI 11: XÁC ĐỊNH PHỦ TỐI THIỂU 77

1 Tập phụ thuộc hàm tương đương 77

2 Phủ tối thiểu ( Tập phụ thuộc hàm tối thiểu) 78

CÂU HỎI - BÀI TẬP 79

BÀI 12: XÁC ĐỊNH DẠNG CHUẨN CỦA LƯỢC ĐỒ CSDL 80

1 Một số khái niệm liên quan đến dạng chuẩn 80

2 Dạng chuẩn 81

3 Dạng chuẩn (2NF) 81

4 Dạng Chuẩn (third normal form) 83

5 Dạng Chuẩn BC (Boyce Codd normal form- BC NF) 84

(7)

GIÁO TRÌNH MƠ ĐUN Tên mô đun: Cơ sở liệu

Mã mơ đun: MĐ11

Vị trí, tính chất, ý nghĩa vai trị mơ đun: Vị trí:

- Đây môn học sở môn bắt buộc trình độ cao đẳng nghề cơng nghệ thơng tin bố trí sau sinh viên học xong môn chung, anh văn, tin học sở, lập trình bản, Hệ quản trị sở liệu Access

Tính chất:

- Là mơn học tảng thiết kế lưu trữ liệu, kiến thức để học môn hệ quản trị sở liệu sau này: MS SQL, Oracle, My SQL … Mục tiêu mô đun:

- Trình bày khái niệm về: Cơ sở liệu, Các mơ hình liệu, ngơn ngữ định nghĩa xử lý liệu

- Trình bày khái niệm quan hệ, thuộc tính, loại khóa, lược đồ quan hệ, giá trị phụ thuộc hàm, ràng buộc tồn vẹn mơ hình sở liệu quan hệ

- Trình bày khái niệm phép hội, giao, trừ, tích dề các, chia đại số tập hợp

- Trình bày khái niệm phép chiếu, chọn, kết đại số quan hệ

- Trình bày khái niệm bao đóng thuật tốn tìm bao đóng tập thuộc tính

- Trình bày hệ tiên đề Amstrong phụ thuộc hàm

- Trình bày khái niệm khóa thuật tốn tìm khóa lược đồ CSDL - Trình bày khái niệm tập phụ thuộc hàm tương đương phủ tối thiểu - Trình bày thuật tốn tìm phủ tối thiểu

- Trình bày khái niệm dạng chuẩn 1,2,3,BC

- Trình bày phương pháp chuẩn hóa CSDL dạng chuẩn - Trình bày phương pháp tối ưu hóa câu hỏi đại số quan hệ

- Thực phép toán hội, giao,trừ, tích đề các, chia đại số tập hợp

- Thực phép chiếu, chọn, kết đại số quan hệ - Phân biệt loại ràng buộc toàn vẹn

(8)

- Xác định phụ thuộc hàm CSDL

- Xác định bao đóng tập thuộc tính CSDL

- Tìm khóa lược đồ CSDL thuật tốn tìm khóa thuật tốn tìm tất khóa

- Tìm phủ tối thiệu lược đồ quan hệ thuật tốn tìm phủ tối thiểu - Xác định dạng chuẩn lược đồ CSDL

(9)

BÀI MỞ ĐẦU: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU Mã bài: 11.00

Giới thiệu:

Cơ sở liệu cần phải có Cơ sở liệu? Cơ sở liệu (CSDL) hệ thống thơng tin có cấu trúc, liệu có liên quan với lưu trữ thiết bị lưu trữ nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với mục đích khác Một sở liệu biểu thị khía cạnh giới thực hoạt động công ty, nhà trường, ngân hàng… Vì Cơ sở liệu cần thiết sống

Cơ sở liệu kỹ thuật sở liệu có ảnh hưởng lớn đến việc sử dụng máy tính Có thể nói sở liệu đóng vai trị quan trọng lĩnh vực có sử dụng máy tính giáo dục, thương mại, kỹ nghệ, khoa học, thư viện,… Thuật ngữ sở liệu trở thành thuật ngữ phổ dụng

Bài giới thiệu cách tổng quan khái niệm: sở liệu, hệ quản trị sở liệu, hệ thống sở liệu mơ hình sở liệu;

Mục tiêu:

- Phân biệt hệ sở liệu với hệ thống tập tin cổ điển

- Phân biệt mơ hình liệu mạng, phân cấp, quan hệ, thực thể liên kết mơ hình hướng đối tượng

- Nghiêm túc, tự giác học tập Nội dung chính:

1 Một số khái niệm 1.1 Cơ sở liệu 1.1.1 Dẫn nhập

Lưu trữ thông tin nhu cầu thông dụng sống người Từ thời xa xưa người biết sử dụng vật dụng có sẵn để lưu trữ thơng tin in hình lên đá, in lên gốc cây, gỗ Nhưng việc lưu trữ trở nên lỗi thời Thay vào cơng nghệ thơng tin phát triển, người có khả mua máy tính lưu trữ thơng tin máy tính

(10)

Hình Hệ thống tập tin liệu Microsoft Office

Khi sử dụng máy tính thơng thường ta lưu trữ thông tin dạng file, file ta đặt folder có tên khác nhằm mục đích dễ dàng tìm đến Với cách ta có ưu điểm nhược điểm sau:

* Ưu điểm:

- Với việc lưu trữ rõ ràng ta cần lưu nên tốc độ triển khai nhanh

- Rõ ràng trực quan với người khơng có chun mơn công nghệ thông tin * Khuyết điểm:

- Dữ liệu khơng qn, đơi có trường hợp nhiều người sử dụng file xảy tượng lưu đè

- Trùng lặp liệu nhiều

- Tính chia sẻ liệu khơng cao (kém)

Hiện cá nhân sử dụng máy tính đa số sử dụng cách lưu trữ để lưu trữ thơng tin cho riêng mình, nên nói phổ biến cách phổ biến nhất, nhiên với hệ thống liệu lớn có nhiều hạn chế việc truy xuất tìm kiếm liệu chậm, khó bảo quản, Với hạn chế khái niệm sở liệu hệ quản trị sở liệu đời

1.1.2 Khái niệm Cơ sở liệu

Cơ sở liệu (CSDL) hệ thống thơng tin có cấu trúc, liệu có liên quan với lưu trữ thiết bị lưu trữ nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng với mục đích khác

Ví dụ: Để quản lý việc học tập trường học, liệu thông tin sinh viên, môn học, điểm thi….Chúng ta tổ chức liệu thành bảng lưu giữ chúng vào sổ sách sử dụng phần mềm máy tính để lưu giữ chúng máy tính Ta có tập liệu có liên quan đến mang nhiều ý nghĩa, sở liệu

1.1.3 Tính chất

(11)

thế giới thực phải phản ánh cách trung thực vào sở liệu Những thông tin đưa vào sở liệu tạo thành không gian sở liệu “thế giới nhỏ” (miniworld)

- Một sở liệu tập hợp liệu liên kết với cách logic mang ý nghĩa cố hữu Một sở liệu tập hợp tuỳ tiện

- Một sở liệu thiết kế phổ biến cho mục đích riêng Nó có nhóm người sử dụng có chủ định có số ứng dụng xác định phù hợp với mối quan tâm người sử dụng Nói cách khác, sở liệu có nguồn cung cấp liệu, mức độ tương tác với kiện giới thực nhóm người quan tâm tích cực đến nội dung

- Một sở liệu có cỡ tuỳ ý có độ phức tạp thay đổi Có sở liệu gồm vài trăm ghi (như sở liệu phục vụ việc quản lý lương quan nhỏ), có sở liệu có dung lượng lớn (như sở liệu phục vụ cho việc tính cước điện thoại, quản lý nhân phạm vi lớn) Các sở liệu phải tổ chức quản lý cho người sử dụng tìm kiếm liệu, cập nhật liệu lấy liệu cần thiết Một sở liệu tạo trì cách thủ cơng tin học hoá

1.1.4 Ưu điểm sở liệu

-Giảm trùng lắp thông tin xuống mức thấp bảo đảm tính quán toàn vẹn liệu

-Đảm bảo liệu truy xuất theo nhiều cách khác -Khả chia sẻ thông tin cho nhiều người sử dụng

1.1.5 Những vấn đề Cơ sở liệu cần giải quyết

- Tính chủ quyền liệu: thể phương diện an toàn liệu, khả biểu diễn mối liên hệ ngữ nghĩa liệu tính xác liệu Điều có nghĩa người khai thác CSDL phải có nhiệm vụ cập nhật thơng tin CSDL

- Tính bảo mật quyền khai thác thơng tin người sử dụng: Do có nhiều người phép khai thác liệu cách đồng thời, nên cần thiết phải có chế bảo mật phân quyền hạn khai thác CSDL Các hệ điều hành nhiều người sử dụng hay hệ điều hành mạng cục có cung cấp chế

- Tranh chấp liệu: Nhiều người phép truy nhập lúc vào tài nguyên liệu CSDL với mục đích khác nhau, cần thiết phải có chế ưu tiên truy nhập liệu Cơ chế ưu tiên thực việc cấp quyền ưu tiên cho người khai thác

(12)

dịch vụ lưu ảnh đĩa cứng, tự động kiểm tra khắc phục lỗi có cố Tuy nhiên, bên cạnh dịch vụ hệ điều hành, để đảm bảo CSDL ln ổn định, CSDL thiết phải có chế khơi phục liệu có cố bất ngờ xảy

1.1.6 Đối tượng sử dụng Cơ sở liệu

* Người quản trị CSDL: thực công việc quản lý bảo trì CSDL như sau:

- Sự xác toàn vẹn liệu, bảo mật liệu - Thực công việc lưu phục hồi liệu

- Giữ liên lạc thường xuyên với người lập trình, người dùng, người phát triển ứng dụng để kịp thời cập nhật CSDL

- Bảo đảm hoạt động CSDL HQTCSDL

* Người phát triển lập trình ứng dụng người rành máy tính có trách nhiệm thiết kế tạo chương trình ứng dụng dành cho người dùng cuối

* Người dùng cuối: người khơng rành máy tính nắm rõ nghiệp vụ mà ứng dụng triển khai

1.2 Hệ quản trị sở liệu

Một hệ quản trị sở liệu (HQTCSDL) là:

- Một tập phần mềm quản lý sở liệu cung cấp dịch vụ xử lý sở liệu cho người phát triển ứng dụng người dùng cuối

- HQTCSDL cung cấp giao diện người sử dụng liệu - HQTCSDL biến đổi sở liệu vật lý thành sở liệu logic

Hiện thị trường phần mềm có hệ quản trị sở liệu hỗ trợ nhiều tiện ích như: MS Access, SQL Server, Oracle, …

Mỗi hệ quản trị sở liệu cài đặt dựa mơ hình liệu cụ thể Dù dựa mơ hình liệu nào, hệ quản trị sở liệu phải hội đủ yếu tố sau:

Yếu tố 1: Ngôn ngữ giao tiếp người sử dụng CSDL, bao gồm :

- Ngôn ngữ mô tả liệu (DDL – Data Definition Language): Để cho phép khai báo cấu trúc sở liệu, khai báo mối liên hệ liệu quy tắc quản lý áp đặt lên liệu

- Ngôn ngữ thao tác liệu (DML – Data Manupulation Language): Cho phép người sử dụng cập nhật liệu (thêm/sửa/xoá)

(13)

- Ngôn ngữ quản lý liệu (DCL – Data Control Language): Cho phép người quản trị hệ thống thay đổi cấu trúc bảng liệu, khai báo bảo mật thông tin cấp quyền hạn khai thác sở liệu cho người sử dụng.,…

Yếu tố 2: Từ điển liệu:

Dùng để mô tả ánh xạ liên kết, ghi nhận thành phần cấu trúc sở liệu, chương trình ứng dụng, mật mã, quyền hạn sử dụng,…

Yếu tố 3: Cơ chế giải vấn đề tranh chấp liệu:

Mỗi hệ quản trị sở liệu cài đặt chế riêng để giải vấn đề Một số biện pháp sau thường sử dụng: thứ nhất: cấp quyền ưu tiên cho người sử dụng; thứ hai: Đánh dấu yêu cầu truy xuất liệu, phân chia thời gian, người có u cầu trước có quyền truy xuất liệu trước,…

Yếu tố 4: Hệ quản trị sở liệu phải có chế lưu (backup) và phục hồi (restore) liệu có cố xảy ra.

Điều thực sau thời gian định hệ quản trị sở liệu tự động tạo sở liệu, cách tốn kém, sở liệu lớn

Yếu tố 5: Hệ quản trị CSDL phải cung cấp giao diện thân thiện, dễ sử dụng.

Yếu tố 6: Tính độc lập liệu chương trình:

Khi có thay đổi liệu (như sửa đổi cấu trúc lưu trữ bảng liệu, thêm mục (Index) ) chương trình ứng dụng (Application) chạy Cơ sở liệu khơng cần phải viết lại, hay không làm ảnh hưởng đến người sử dụng khác

* Các mức biểu diễn sở liệu:

- Mức trong: (mức vật lý – Physical) mức lưu trữ sở liệu Thể vấn để cần giải quyết, liệu gì, lưu trữ nào, đâu, cần mục gì, Truy xuất hay ngẫu nhiên Mức dành cho người quản trị người sử dụng chuyên môn

- Mức quan niệm: (Conception hay Logical) cần phải lưu trữ loại dữ liệu, liệu gì, mối quan hệ

- Mức ngoài: người sử dụng chương trình ứng dụng. 2 Các mơ hình liệu

(14)

2.1 Mơ hình liệu mạng

Mơ hình liệu mạng (Network Data Model) - cịn gọi tắt mơ hình mạng mơ hình lưới (Network Model) mơ hình biểu diễn đồ thị có hướng Trong mơ hình người ta đưa vào khái niệm: mẫu tin hay ghi (Record), loại mẫu tin (Record Type) loại liên hệ (Set Type) * Mẫu tin: mô tả đối tượng giới thực.

Ví dụ: (‘NV001’,’Nguyen Lam’,’Nam’,’10/10/1970’,’Dong Nai’) * Loại mẫu tin: Là tập mẫu tin có tính chất

Ví dụ: Tập hợp mẫu tin nhân viên công ty tạo thành NHANVIEN Ký hiệu:

* Loại liên hệ: Mô tả liên kết loại mẫu tin chủ loại mẫu tin thành viên

- Ví dụ: Nhân viên (tham gia) cơng việc - Ký hiệu: Hình elip bên ghi tên

* Bản số: số lượng mẫu tin tham gia mối liên hệ

- (1:1) (one-to-one): mẫu tin loại mẫu tin chủ kết hợp với mẫu tin loại mẫu tin thành viên

- (1:n) (one-to-many): mẫu tin loại mẫu tin chủ kết hợp với hay nhiều mẫu tin thành viên

- (n:1) (many-to-one): nhiều mẫu tin loại mẫu tin chủ kết hợp với mẫu tin loại mẫu tin thành viên

- Recursive: loại mẫu tin chủ đồng thời loại mẫu tin thành viên với Loại liên hệ Đệ quy

- Ví dụ:

(15)

- Tương đối đơn giản - Dễ sử dụng

- Không thích hợp biểu diễn CSDL có quy mơ lớn - Khả diễn đạt ngữ nghĩa

2.2 Mô hình phân cấp

Mơ hình liệu phân cấp (Hierachical Data Model) - gọi tắt mơ hình phân cấp (Hierachical Model): Mơ hình (Tree), nút biểu diễn thực thể, nút nút cha liên hệ với theo mối quan hệ xác định

* Loại mẫu tin:

(Recorde Type) mẫu đặc trưng cho loại đối tượng riêng biệt Chẳng hạn việc quản lý nhân đơn vị, đối tượng cần phản ảnh giới thực Phịng, Nhân viên, Cơng việc, lý lịch có loại mẫu tin đặc trưng cho đối tượng Trong đồ thị biểu diễn mơ hình mạng loại mẫu tin biểu diễn hình chữ nhật, thể (Instance) loại mẫu tin gọi ghi Trong ví dụ loại mẫu tin Phịng có mẫu tin phòng, ban đơn vị; loại mẫu tin nhân viên có mẫu tin nhân viên làm việc phòng ban quan

* Loại mối liên hệ:

Kiểu liên hệ phân cấp, theo cách:

- Mẫu tin thành viên đóng vai trị thành viên mối liên hệ nhất, tức thuộc chủ Như vậy, mối liên hệ từ mẫu tin chủ tới mẫu tin thành viên 1¸n, từ mẫu tin (hay ghi - record) thành viên với mẫu tin chủ 1¸1

- Giữa loại mẫu tin tồn mối liên hệ * Ví dụ

Dưới ví dụ mơ hình phân cấp quản lý nhân công ty

(16)

2.3 Mơ hình quan hệ

Mơ hình đượcc E.F Codd đưa vào đầu năm 70, mơ hình dựa lý thuyết tập hợp đại số quan hệ Vì tính chất chặt chẽ tốn học lí thuyết tập hợp nên mơ hình mô tả liệu cách rõ ràng, mềm dẻo mơ hình thơng dụng Hầu hết hệ QT sở liệu tổ chức liệu theo mơ hình liệu quan hệ Trong liệu tổ chức dạng bảng phép toán thao tác liệu dựa lý thuyết tập hợp toán học Tập liệu tổ chức theo cấu trúc mô hình liệu quan hệ gọi sở liệu quan hệ

Dữ liệu bảng thể sau:

Hình 4: Thể liệu bảng Ví dụ: Mơ hình sở liệu quan hệ

SINHVIEN (MASV, HOTENSV, NU, NGAYSINH, NOISINH, TINH, MALOP)

LOP (MALOP,TENLOP, MAKHOA)

2.4 Mơ hình thực thể mối kết hợp (Entity Relationship Diagram ERD) Mối liên hệ tập thực thể danh sách có thứ tự tập thực thể Một tập thực thể đặc biệt xuất nhiều lần danh sách Danh sách tập thực thể khái niệm mức lược đồ mối liên hệ

Mơ hình thực thể quan hệ CHEN giới thiệu năm 1976 ANSI công nhận mô hình chuẩn năm 1988 Mơ hình sử dụng nhiều thiết kế liệu mức khái niệm, dùng để mơ hình hố liệu

Các khái niệm ERD gồm: Loại thực thể, thực thể, thuộc tính, mối kết hợp, vai trò, số

a Loại thực thể (Entity Type) loại đối tượng, vật giới thực tồn cụ thể cần quản lý Bắt buộc phải đặt tên Danh từ cụm danh từ Được biểu diễn hình chữ nhật hình chữ nhật bo góc

(17)

- (HS002, ‘Trần Thị C’, ’02/10/1992’, ‘Nữ’)

* Lưu ý: Khái niệm Loại thực thể sử dụng nhiều hẳn khái niệm Thực thể mơ hình Vì vậy, số tài liệu sử dụng tên Thực thể thay cho Loại thực thể để rút gọn

c Loại kết hợp (Mối quan hệ): mối kết hợp, liên kết hai hay nhiều loại thực thể Được biểu diễn hình thoi Tên mối quan hệ Động từ Cụm động từ

Ví dụ:

Hình 5: Minh hoạ mối kết hợp thực thể Khachhang nuocgiaikhat Khách hàng nước giải khát Loại thực thể (Thực thể)

Đặt: Là mối quan hệ thực thể

Có loại mối quan hệ sau: MQH đa phân, MDQ phản thân

Phản thân Đa phân

Hình 6: Minh hoạ mối kết hợp đa phân phản thân

d Bản số nhánh số lượng tối thiểu số lượng tối đa mà thực thể tham gia vào mối kết hợp Ký hiệu (min,max) – (1,n)

Hình 7: Minh hoạ mối kết hợp có số

e Thuộc tính: tính chất đặc trưng loại thực thể/mối kết hợp. Ký hiệu:

Ví dụ:

Hình 8: Minh hoạ thuộc tính thực thể

- Thuộc tính nhận diện: thuộc tính để phân biệt thực thể với thực thể tập thực thể

(18)

- Đơn trị (Simple): thực thể có giá trị ứng với thuộc tính Ví dụ: MAHV, HOTEN

- Đa trị (Multi Value): thuộc tính có nhiều giá trị thực thể Với thuộc tính cần sử dụng số

Ví dụ:

Hình 9: Minh hoạ thuộc tính đa trị

Học vị thuộc tính đa trị, người có nhiều học vị tiến sĩ, giáo sư, thạc sĩ,

- Đa hợp (Composite): thuộc tính tạo từ nhiều thành phần Ví dụ: DIACHI (Sonha, tenduong, phuong, quan)

Chú ý: thuộc tính đa trị đa hợp lồng tùy ý Ví dụ: {BANGCAP(TRUONGCAP, KETQUA, CHUYENNGANH)} - Thuộc tính kết hợp: Là nhóm thuộc tính có liên hệ

Hình 10: Minh hoạ thuộc tính kết hợp

f Khóa: Khóa loại thực thể thuộc tính để nhận dạng thực thể.Căn vào để xác định thực thể

Ví dụ: Mỗi HOCSINH có mã để phân biệt học sinh với học sinh

Việc thành lập mơ hình thực thể kết hợp cho ứng dụng tin học tiến hành theo bước sau:

Bước 1.Xác định danh sách loại thực thể

Bước 2.Xác định mối kết hợp loại thực thể để phác thảo mơ hình

(19)

Bài toán quản lý điểm sinh viên phát biểu sơ sau:

Mỗi sinh viên cần quản lý thông tin như: họ tên (HOTENSV),ngày tháng năm sinh (NGAYSINH), giới tính (NU), nơi sinh(NƠISINH), hộ thường trú (TINH) Mỗi sinh viên cấp mã số sinh viên (MASV) để phân biệt với sinh viên khác trường, sinh viên thuộc lớp

Mỗi lớp học có mã số lớp (MALOP) để phân biệt với tất lớp học khác trường: có tên gọi (TENLOP) lớp, lớp thuộc khoa

Mỗi khoa có tên gọi (TENKHOA) mã số (MAKHOA) để phân biệt với khoa khác

Mỗi môn học có tên gọi (TENMH) cụ thể, học số đơn vị học trình (DONVIHT) ) ứng với môn học mã số (MAMH) để phân biệt với môn học khác

Mỗi giảng viên cần quản lý thông tin: họ tên (HOTENGV), cấp học vị (HOCVI), thuộc chuyên ngành (CHUYENNGANH) gán cho mã số gọi mã giảng viên(MAGV) để phân biệt với giảng viên khác

Mỗi giảng viên dạy nhiều môn nhiều khoa, thuộc quản lý hành khoa

Mỗi sinh viên với môn học phép thi tối đa lần, lần thi (LANTHI), điểm thi (DIEMTHI)

Mỗi môn học lớp học phân công cho giảng viên dạy (tất nhiên giảng viên dạy nhiều mơn lớp)

Lập mơ hình thực thể kết hợp cho toán

Bài hướng dẫn giải

(20)

Hình 11: Minh hoạ chuyển đổi tập thực thể. -Mối kết hợp – 1

Thuộc tính khố bên làm khố ngoại bên ngược lại Bên ví dụ chuyển mối kết hợp –

Hình 12: Minh hoạ mối quan hệ 1 -Mối kết hợp – n

(21)

-Mối kết hợp n – n

Chuyển thành quan hệ có khố gồm thuộc tính khố quan hệ; thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ Ví dụ

Hình 14: Minh hoạ mối quan hệ n n -Mối kết hợp (Ba thực thể tham gia vào mối kết hợp)

Chuyển thành quan hệ mới, có khố gồm thuộc tính khố thực thể tham gia mối kết hợp Thuộc tính mối kết hợp (nếu có) trở thành thuộc tính quan hệ Ví dụ

Hình 15: Minh hoạ mối quan hệ ngơi

-Thuộc tính đa trị (Thuộc tính có nhiều giá trị cho thể hiện)

(22)

Hình 16: Minh hoạ thuộc tính đa trị 2.6 Mơ hình hướng đối tượng

Mơ hình liệu hướng đối tượng (Object Oriented Data Model) đời từ cuối năm 80 đầu năm 90 Đây loại mơ hình tiên tiến dựa cách tiếp cận hướng đối tượng quen thuộc phương pháp lập trình hướng đối tượng, sử dụng khái niệm lớp (class), kế thừa (inheritance), kế thừa bội (tức kết thừa từ nhiều lớp sở multi-inheritance) Đặc trưng cách tiếp cận tính đóng gói (encapsulation), tính đa hình (polymorphism) tính tái sử dụng (Reusability)

Lớp (class) kiểu liệu có cấu trúc bao gồm thành phần liệu phương thức xử lý thao tác cấu trúc liệu Nó kiểu (hay cấu trúc) liệu trừu tượng hóa, tác động (cịn gọi phương thức - method) để phục vụ thao tác kiểu liệu Dữ liệu phương thức hòa quyện vào thành thể thống nhất: liệu cần có cách thức xử lý thỏa đáng, phương thức xử lý đưa vào kiểu liệu để phục vụ cho đối tượng có cấu trúc Người ta gọi thống đóng gói

Phương pháp tiếp cận hướng đối tượng mô hình liệu cịn mẻ nhiều người quan tâm nghiên cứu phát triển áp dụng Các hệ quản trị sở liệu hướng đối tượng chưa nhiều, số chưa (nghĩa việc lập trình hướng đối tượng sở liệu chủ yếu dựa mơ hình quan hệ)

CÂU HỎI - BÀI TẬP: Câu hỏi:

1.1 Định nghĩa thuật ngữ : sở liệu, hệ quản trị sở liệu, hệ sở liệu, từ điển sở liệu, mơ hình sở liệu

1.2 Nêu tính chất sở liệu

1.3 Nêu chức hệ quản trị sở liệu 1.4 Nêu mơ hình liệu

(23)

1.6 Xây dựng mơ hình ER cho sở liệu:

1.7 Nêu quy tắc chuyển từ mô hình ER sang mơ hình quan hệ Bài tập:

Bài số 1: QUẢN LÝ HỌC VIÊN Ở MỘT TRUNG TÂM TIN HỌC

Trung tâm tin học KTCT thường xuyên mở lớp tin học ngắn hạn dài hạn Mỗi lớp ngắn hạn có nhiều mơn học (chẳng hạn lớp Tin học văn phịng có mơn : Word, Power Point, Excel, cịn lớp lập trình Pascal học mơn Pascal) Các lớp dài hạn (chẳng hạn lớp kỹ thuật viên đồ hoạ đa truyền thông, lớp kỹ thuật viên lập trình, lớp kỹ thuật viên phần cứng mạng,… ) học nhiều học phần học phần có nhiều mơn học

Mỗi học viên có mã học viên(MAHV) thuộc lớp (nếu học viên lúc học nhiều lớp ứng với lớp, học viên có MAHV khác nhau) Mỗi học viên xác định họ tên (HOTEN), ngày sinh (NGAYSINH),nơi sinh (NOISINH), phái nam hay nữ (PHAI), nghề nghiệp (NGHENGHIEP) - nghề nghiệp SINH VIÊN, GIÁO VIÊN, KỸ SƯ…

Trung tâm KTCT có nhiều lớp, lớp có mã lớp (MALOP), lớp xác định thông tin: tên lớp (TENLOP), thời khoá biểu, ngày khai giảng (NGAYKG), học phí (HOCPHI).Chú ý thời điểm, trung tâm mở nhiều lớp cho chương trình học Với lớp dài hạn ngày khai giảng xem ngày bắt đầu học phần HỌC PHÍ học phí học phần, với lớp ngắn hạn HỌC PHÍ học phí tồn khố học Trung tâm có nhiều mơn học, mơn học có mã mơn học (MAMH) nhất, môn học xác định tên môn học(TENMH), số tiết lý thuyết (SOTIETLT), số tiết thực hành (SOTIETTH)

Mỗi học viên ứng với môn học có điểm thi(DIEMTHI) Mỗi lần đóng học phí, học viên trung tâm giao cho phiếu biên lai thu tiền, biên lai có số biên lai để quản lý

Bài số 2: QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN Một thư viện tổ chức việc cho mượn sách sau:

Mỗi sách đánh mã sách (MASH) dùng để phân biệt với sách khác (giả sử tác phẩm có nhiều giống có nhiều tập xem có mã sách khác nhau), mã sách xác định thông tin khác : tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất (NHAXB), năm xuất (NAMXB)

Mỗi độc giả thư viện cấp cho thẻ thư viện, có ghi rõ mã độc giả (MAĐG), với thông tin khác : họ tên (HOTEN), ngày sinh (NGAYSINH), địa (ĐIACHI), nghề nghiệp(NGHENGHIEP)

(24)

phiếu mượn xác định thông tin như: ngày mượn sách (NGAYMUON), mã độc giả Các sách phiếu mượn không thiết phải trả lần Mỗi sách thuộc nhiều phiếu mượn khác (tất nhiên thời điểm khác nhau)

Bài số 3: QUẢN LÝ TỔ CHỨC THI TỐT NGHIỆP Việc tổ chức kỳ thi tốt nghiệp khoa sau:

Mỗi thí sinh có Mã số sinh viên (MASV), MASV xác định thông tin: họ tên (HOTEN), ngày sinh (NGAYSINH), nơi sinh, nữ,phái, dân tộc Mỗi lớp có mã lớp (MALOP) , mã lớp xác định thông tin: tên lớp (TENLOP), lớp thuộc quản lý khoa Mỗi khoa có mã khoa (MAKHOA), mã khoa xác định tên khoa (TENKHOA) Mỗi thí sinh phải dự thi tốt nghiệp ba mơn Mỗi mơn thi có mã môn thi (MAMT) nhất, mã môn thi xác định thông tin: tên môn thi (TENMT), thời gian làm – tính phút (PHUT), ngày thi (NGAYTHI), buổi thi (BUOITHI), môn thi môn lý thuyết hay thực hành (LYTHUYET) Chú ý rằng, mơn học cho thi nhiều hệ đặt MAMT khác (chẳng hạn trung cấp cao đẳng ngành công nghệ thông tin thi môn Cơ Sở Dữ Liệu), để diễn tả điều này, mã môn học cần phải ghi (GHICHU) biết mơn thi dành cho khối trung cấp, hay cao đẳng) Mỗi thí sinh ứng với mơn thi có điểm thi (DIEMTHI)

Trong phịng thi có thí sinh nhiều lớp Trong kỳ thi, thí sinh thi phịng thi (PHONGTHI) khác nhau, chẳng hạn thí sinh thi tốt nghiệp ba mơn Cơ sở liệu, Lập trình C Visual Basic mơn Cơ Sở Dữ Liệu Lập Trình C thi phịng A3.4, cịn mơn thực hành Visual Basic thi phòng máy H6.1

(25)

BÀI 1: CÁC KHÁI NIỆM CƠ BẢN TRONG MƠ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ

Mã bài: 11.01 Giới thiệu:

Mơ hình liệu quan hệ (Ralational Data Model)- gọi tắt mơ hình quan hệ, EF.Codd đề xuất năm 1970 Nền tảng lý thuyết khái niệm lý thuyết tập hợp quan hệ, tức tập giá trị

Mơ hình liệu quan hệ mơ hình nghiên cứu nhiều nhất, thực tiễn cho thấy có sở lý thuyết vững Mơ hình liệu với mơ hình thực thể kết hợp sử dụng rộng rãi việc phân tích thiết kế sở liệu

Bài giới thiệu cách tổng quan khái niệm mơ hình sở liệu quan hệ như: Thuộc tính, khóa, quan hệ, giá trị, phụ thuộc hàm Mục tiêu:

- Nêu khái niệm quan hệ, thuộc tính, loại khóa, lược đồ quan hệ, giá trị phụ thuộc hàm

- Lấy ví dụ thực tế để minh họa Nội dung chính:

1 Thuộc tính

Thuộc tính đặc điểm riêng đối tượng (đối tượng hiểu loại thực thể mơ hình thực thể kết hợp), thuộc tính có tên gọi phải thuộc kiểu liệu định

Kiểu liệu (data type)

Các thuộc tính phân biệt qua tên gọi phải thuộc kiểu liệu định (số, chuỗi, ngày tháng, logic, hình ảnh,…) Kiểu liệu kiểu vơ hướng kiểu có cấu trúc Nếu thuộc tính có kiểu liệu vơ hướng gọi thuộc tính đơn hay thuộc tính ngun tố, thuộc tính có kiểu liệu có cấu trúc ta nói khơng phải thuộc tính ngun tố Chẳng hạn với sinh viên Nguyễn Văn Thành thuộc tính họ tên, mã số sinh viên thuộc kiểu chuỗi, thuộc tính ngày sinh thuộc kiểu ngày tháng, hộ thường trú kiểu chuỗi, thuộc tính hình ảnh kiểu hình ảnh,…

Miền giá trị (domain of values)

(26)

Lưu ý không lưu ý đến ngữ nghĩa tên thuộc tính thường ký hiệu chữ in hoa bảng chữ la tinh: A,B,C,D,… Những chữ in hoa X,Y,Z,W,… thường dùng thay cho nhóm nhiều thuộc tính Đơi cịn dùng ký hiệu chữ với số A1,A2, …,An để thuộc tính trường hợp tổng quát hay muốn đề cập đến số lượng thuộc tính Tên thuộc tính phải đặt cách gợi nhớ, không nên đặt tên thuộc tính q dài (vì làm cho việc viết câu lệnh truy vấn trở nên vất vả hơn), khơng nên đặt tên thuộc tính q ngắn (vì khơng cho thấy ngữ nghĩa thuộc tính), đặc biệt khơng đặt trùng tên hai thuộc tính mang ngữ nghĩa khác thuộc hai đối tượng khác

Trong nhiều hệ quản trị sở liệu, người ta thường đưa thêm vào miền giá trị thuộc tính giá trị đặc biệt gọi giá trị rỗng (NULL) Tuỳ theo ngữ cảnh mà giá trị đặc trưng cho giá trị xác định giá trị chưa xác định vào thời điểm nhập tin xác định vào thời điểm khác

Ví dụ:

Hình 1.1 Thuộc tính quan hệ

+ Tất liệu cột có dùng kiểu liệu 2 Lược đồ quan hệ

Tập tất thuộc tính cần quản lý đối tượng với mối liên hệ chúng gọi lược đồ quan hệ Lược đồ quan hệ Q với tập thuộc tính {A1,A2, ,An} viết Q(A1,A2, ,An)

Ví dụ: Sinhvien (MASV, HOTENSV, NGAYSINH, NOISINH,TINH, MALOP)

Khái niệm lược đồ quan hệ ứng với khái niệm loại thực thể mơ hình thực thể kết hợp

Nhiều lược đồ quan hệ nằm hệ thống thông tin gọi lược đồ sở liệu

3 Quan hệ

(27)

Về trực quan quan hệ (hay bảng quan hệ) bảng hai chiều gồm dòng cột

Một quan hệ có n thuộc tính gọi quan hệ n

Để quan hệ r xác định lược đồ quan hệ Q ta viết r(Q) 4 Bộ giá trị

Mỗi thông tin đối tượng thuộc quan hệ, gọi mẫu tin

Quan hệ bảng (table) với cột thuộc tính dịng gọi

Ví dụ: HOCVIEN(Mahv, Hoten, Ngsinh, Noisinh) có q=(1003,Nguyen Van Lam, 1/1/1987,Dong Nai) nghĩa học viên có mã số 1003, họ tên Nguyen Van Lam, sinh ngày 1/1/1987 Dong Nai

5 Tân từ

Diễn tả ý nghĩa quan hệ, mối liên hệ thuộc tính với Dựa vào tân từ này, người ta xác định tập khoá, siêu khoá lược đồ quan hệ Ký hiệu ║Q║

Ví dụ: Tân từ lược đồ quan hệ Sinhvien (MASV, HOTENSV, NGAYSINH, NOISINH,TINH, MALOP) là: ”Mỗi sinh viên có MASV Mỗi MASV xác định thuộc tính cịn lại sinh viên HOTENSV,NGAYSINH, NOISINH,TINH,MALOP

6 Khóa, siêu khóa, khóa định, khóa chính, khóa ngoại

Siêu khóa: Là tập thuộc tính Q mà giá trị chúng có thể phân biệt khác thể TQ

Một quan hệ có siêu khóa hay nhiều siêu khóa

Ví dụ: Các siêu khóa lược đồ quan hệ HOCVIEN là:{Mahv}; {Mahv,Hoten}; {Mahv, Noisinh, Hoten}

Hình 1.2 Lược đồ quan hệ HOCVIEN siêu khố Khóa:

- Định nghĩa: K khóa quan hệ R, thỏa mãn điều kiện: - K siêu khóa

(28)

K1  K, K1  cho K1 siêu khóa

-Thuộc tính tham gia vào khóa gọi thuộc tính khóa, ngược lại thuộc tính khơng khóa

Ví dụ 1: Các siêu khóa quan hệ HOCVIEN là: {Mahv}; {Mahv,Hoten}; {Hoten};{Hoten,Gioitinh};{Noisinh,Hoten}; {Mahv,Hoten,Gioitinh,Noisinh}…

 khóa quan hệ HOCVIEN {Mahv}; {Hoten}

Ví dụ 2: khóa quan hệ GIANGDAY (Malop, Mamh, Magv, HocKy, Nam) K={Malop,Mamh} Thuộc tính khóa là: Mamh, Malop Thuộc tính khơng khóa Magv, HocKy, Nam

Khóa (primary key)

Là học nhiều trường lược đồ mà liệu cột phải không rỗng Từ giá trị khóa xác định giá trị lược đồ

- Ký hiệu: thuộc tính nằm khóa liệt kê quan hệ phải gạch

- VD: HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop) GIANGDAY(Mamh,Malop,Magv,Hocky,Nam) Khóa tương đương:

- Các khóa cịn lại (khơng chọn làm khóa chính) gọi khóa tương đương - Ví dụ: hai khóa {Mahv},{Hoten} khóa {Mahv}, khóa tương đương {Hoten}

Khóa ngoại:

Là nhiều trường lược đồ mà trường khóa lược đồ khác

Ví dụ, cho quan hệ

LOP (Malop,Tenlop,Siso,Khoahoc)

HOCVIEN (Mahv, Hoten, Gioitinh,Noisinh,Malop)

Thuộc tính Malop quan hệ LOP khóa quan hệ LOP Thuộc tính Malop quan hệ HOCVIEN khóa ngoại, tham chiếu đến Malop quan hệ LOP

(29)

Cho R={a1,a2,… ,an} tập thuộc tính ,r ={h1,h2,…,hn}là quan hệ R, A,B tập R Khi ta nói :A xác định hàm cho B hay B phụ thuộc hàm vào A r

Ký hiệu: A→B

8 Ràng buộc toàn vẹn

Dữ liệu hệ thống có liên quan với thỏa số ràng buộc, quy tắc bất biến quan hệ sở liệu Chúng gọi ràng buộc tồn vẹn Hay nói cách khác Ràng buộc toàn vẹn quy định điều kiện từ ứng dụng thực tế, điều kiện bất biến Vì phải ln đảm bảo sở liệu thỏa ràng buộc toàn vẹn sau thao tác làm thay đổi tình trạng sở liệu Những lược đồ quan hệ tham gia mô tả ràng buộc toàn vẹn gọi bối cảnh ràng buộc tồn vẹn Các thao tác thêm, xố, sửa có ảnh hưởng đến ràng buộc tồn vẹn mô tả bảng gọi bảng tầm ảnh hưởng; nhờ bảng dễ dàng đặc tả phương thức xử lý thao tác liệu

Khi định nghĩa khoá cho lược đồ quan hệ, đưa quy tắc gọi ràng buộc khoá Với ràng buộc khoá, bối cảnh ràng buộc lược đồ quan hệ khố định nghĩa thao tác thêm sửa ảnh hưởng đến ràng buộc

9 Các phép tính sở liệu quan hệ

Nội dung sở liệu cập nhật thao tác - Thêm (insertion)

- Xóa (deletion) - Sửa (updating) 9.1 Phép thêm

Phép chèn thêm vảo quan hệ r{A1,…,An} Insert(r; A1=d1, A2=d2,…,An=dn)

Trong Ai(i=1, , n) tên thuộc tính didom(Ai)

9.2.Phép loại bỏ

Phép loại bỏ (DEL) phép xóa, khỏi quan hệ cho trước Giống phép chèn, phép loại bỏ có dạng biểu diễn hình thức tốn học: r=r-t

DEL(r; A1=d1, A2=d2,…,An=dn) ngắn gọn viết: DEL(r;d1, d2,…, dn)

9.3 Phép sửa đổi

Khi cần điều chỉnh số giá trị số thuộc tính, lúc ta sử dụng phép thay đổi

Gọi tập {C1,…, Cp}{A1,…, An} tập thuộc tính mà giá trị

bộ cần thay đổi; CH(r; A1=d1, A2=d2,…, An=dn; C1=e1, C2=e2,…, Cp=ep) Nếu K={B1,…, Bm} khóa quan hệ, ta cần viết:

(30)

CÂU HỎI - BÀI TẬP

1.1 Nêu khái niệm : Thuộc tính, quan hệ, lược đồ quan hệ, giá trị, khóa, ràng buộc toàn vẹn, phụ thuộc hàm

1.2 Các thao tác quan hệ: Trả lời câu hỏi sau:

INSERT: Thao tác gì? DELETE: Thao tác gì? UPDATE: Thao tác gì? Bài tập:

Bài số 1: Cho mơ hình quan hệ:

(31)

-Trong đó: Số hố đơn xác định ngày tạo lập; Mã khách hàng xác định tên khách hàng, địa chỉ; Mã hàng xác định tên hàng hoá, đơn vị tính, đơn giá số lượng

Bài số 3: Thiết kế mơ hình liệu quan hệ dựa vào mẫu phiếu mượn sách thư viện

(32)

BÀI 2: PHÉP HỘI, PHÉP GIAO, PHÉP TRỪ TRÊN ĐẠI SỐ QUAN HỆ Mã bài: 11.02

Giới thiệu:

Đại số quan hệ (ĐSQH) có tảng toán học (cụ thể lý thuyết tập hợp) để mơ hình hóa CSDL quan hệ Đối tượng xử lý quan hệ sở liệu quan hệ Bài cung cấp kiến thức phép toán hội, giao, trừ đại số quan hệ Các phép toán thực quan hệ xuất phát từ lý thuyết tập hợp toán học: phép hội (RS), phép giao (RS), phép trừ (R-S),

phép tích (RS) Qua đó, giúp người học thực phép toán để

cho kết quan hệ theo yêu cầu Mục tiêu:

- Nêu khái niệm phép hội, phép giao, phép trừ đại số tập hợp - Lấy ví dụ thực tế để minh họa

- Thực phép toán tập cụ thể - Nghiêm túc, tự giác học tập

- Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Giới thiệu đại số quan hệ

1.1 Định nghĩa

Đại số quan hệ (ĐSQH) có tảng toán học (cụ thể lý thuyết tập hợp) để mơ hình hóa CSDL quan hệ Đối tượng xử lý quan hệ sở liệu quan hệ

1.2 Chức năng

- Cho phép mô tả phép tốn rút trích liệu từ quan hệ sở liệu quan hệ

- Cho phép tối ưu q trình rút trích phép tốn có sẵn lý thuyết tập hợp

1.3 Biểu thức đại số quan hệ

- Biểu thức ĐSQH biểu thức gồm phép toán ĐSQH - Biểu thức ĐSQH xem quan hệ (khơng có tên) - Có thể đặt tên cho quan hệ tạo từ biểu thức quan hệ

- Có thể đổi tên thuộc tính quan hệ tạo từ biểu thức ĐSQH 1.4 Phép toán Đại số quan hệ

- Đại số quan hệ gồm tập phép toán tác động quan hệ cho kết quan hệ Các phép toán thực quan hệ xuất phát từ lý thuyết tập hợp toán học: phép hội (RS), phép giao (RS), phép trừ (R-S),

phép tích (RS)

(33)

Số lượng thuộc tính R S phải nhau: R(A1,A2,…An) S(B1,B2,…

Bn)

Miền giá trị thuộc tính phải tương thích dom(Ai)=dom(Bi)

Quan hệ kết phép hội, giao, trừ có tên thuộc tính với quan hệ

VD: Hai quan hệ tương thích khả hợp

2 Phép hội (hợp) quan hệ (Union)

Cho hai quan hệ R S khả hợp Hội (hợp) hai quan hệ R S ký hiệu RS quan hệ lược đồ quan hệ Q gồm phần tử thuộc R

thuộc S, thuộc hai (các trùng lắp bị loại bỏ), tức là: R  S = {t / t  R t  S}

- Phép hội (hợp) hai quan hệ phép gộp hai bảng quan hệ thành bảng bỏ trùng

Ví dụ: Cho quan hệ R S khả hợp kết phép hội R S

* Tính chất. + Giao hốn: R  S = S  R

+ Kết hợp:

R  (S  T) = (R  S)  T

3 Phép giao quan hệ (Intersection)

Cho hai quan hệ tương thích R S Giao hai quan hệ R S ký hiệu RS quan hệ lược đồ quan hệ Q gồm phần tử vừa thuộc R vừa

(34)

R  S = {t / t  R t  S}

Phép giao hai quan hệ lấy có mặt hai bảng quan hệ

* Tính chất. + Giao hoán: R  S = S  R

+ Kết hợp:

R  (S  T) = (R  S)  T

4 Phép Trừ quan hệ (Minus)

Cho hai quan hệ tương thích R S Hiệu hai quan hệ R S ký hiệu R-S quan hệ lược đồ quan hệ Q gồm phần tử thuộc R mà không thuộc S, tức là:

R - S = {t / t  r t s}

Phép trừ hai quan hệ A B lấy có bảng A mà khơng có bảng B

Lưu ý: Phép trừ khơng có tính chất giao hốn (R - S  S - R)

(35)

3.1 Cho hai quan hệ R, S

Hãy thực R  S , R  S , R – S , S-R

3.2 Cho hai quan hệ r,s lược đồ quan hệ R = (ABC) :

Hãy thực hiện: R  S , R  S , R – S , S – R

3.3 Cho hai quan hệ sau:

Hãy thực hiện: R  S , R  S , R – S , S – R

Nội dung cần ghi nhớ:

(36)

BÀI 3: PHÉP TÍCH ĐỀ CÁC VÀ PHÉP CHIA TRÊN ĐẠI SỐ QUAN HỆ Mã bài: 11.03

Giới thiệu:

Bài giới thiệu cách tổng quan về: phép tốn tích Đề các, phép chia, phép gán đại số tập hợp Qua đó, giúp người học thực phép toán kết quan hệ theo yêu cầu

Mục tiêu:

- Nêu khái niệm phép tích đề các, phép chia đại số tập hợp - Lấy ví dụ thực tế để minh họa

- Thực phép toán tập cụ thể - Nghiêm túc, tự giác học tập

- Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Tích Decac quan hệ (Cartesian Product)

Cho quan hệ r(R), R={A1,A2, ,An} quan hệ s(U), U={B1,B2, ,Bm} Tích

Descartes (decac) r s ký hiệu r x s

r x s ={t=(a1,a2, ,an, b1,b2, ,bm) /a1,a2, ,an r b1,b2, ,bm s}

- Kết trả quan hệ Q

- Mỗi Q tổ hợp r s - Nếu r có u s có v Q có u  v

- Nếu r có n thuộc tính s có m thuộc tính Q có n + m thuộc tính (R+

Q+ ) (R+: Tập thuộc tính R, Q+: Tập thuộc tính Q).

Ví dụ 1.1: Cho quan hệ r s, kết r x s

(37)

Kết NHANVIEN x PHONGBAN

Phép tích Decartes NHANVIEN x PHONGBAN tổ hợp tất từ bảng Nhanvien tới bảng phongban Điều dẫn tới sai sót liệu thực tế Dễ dàng nhìn thấy ví dụ 1.2, nhân viên làm việc phòng ban, hay phịng ban có đến trưởng phịng

Để giải vấn đề thực tế, phép tích Decas thường kết hợp với điều kiện chọn Tức thực phép tích thoả mãn điều kiện (thường ràng buộc khoá ngoại)

Trong ví dụ này, điều kiện chọn là: giá trị thuộc tính phong bảng Nhanvien trùng với giá trị thuộc tính mapb bảng Phongban Điều tương đương với việc: thực phép tích decas phong trùng mapb biểu diễn: phong = mapb

(38)

2 Phép chia quan hệ:

Cho lược đồ quan hệ Q1(A1,A2, ,An), Q2(B1,B2, ,Bm), r quan hệ xác định Q1; s quan hệ xác định Q2 (n>m s khác rỗng), có m thuộc tính chung (giống mặt ngữ nghĩa, thuộc tính so sánh được) r s Phép chia quan hệ r s ký hiệu r ÷ s , quan hệ q có n - m thuộc tính định nghĩa sau:

q= r ÷ s={t/  u  s, (t,u)  r}

Phép chia dùng để lấy số quan hệ r cho thỏa với tất quan hệ s

Ví dụ 2.1:

Ví dụ 2.2:

CÂU HỎI - BÀI TẬP 4.1 Cho hai quan hệ NHANVIEN PHONG sau:

Hãy thực phép tích Đề quan hệ

(39)

BÀI 4: PHÉP CHIẾU VÀ PHÉP CHỌN TRONG ĐẠI SỐ QUAN HỆ Mã bài: 11.04

Giới thiệu:

Bài giới thiệu cách tổng quan về: phép toán chiếu, phép chọn, đại số quan hệ Qua đó, giúp người học thực phép toán kết quan hệ theo yêu cầu

Mục tiêu:

- Nêu khái niệm phép chiếu, phép chọn đại số quan hệ - Nêu cú pháp phép chiếu, phép chọn

- Lấy ví dụ thực tế để minh họa

- Thực phép toán tập cụ thể - Nghiêm túc, tự giác học tập

- Đảm bảo an toàn cho người thiết bị Nội dung chính:

1 Phép chiếu ( Project)

Dùng để trích giá trị số thuộc tính danh sách thuộc tính quan hệ

Phép chiếu ký hiệu là:

<danh sách thuộc tính>( R) Quan hệ [cột1, cột2, cột3, …]

Trong  ký hiệu dùng để biểu diễn phép chiếu <danh sách thuộc

tính> danh sách thuộc tính quan hệ R

R biểu thức đại số quan hệ, trường hợp đơn giản tên quan hệ Kết phép chiếu quan hệ có thuộc tính nằm <danh sách thuộc tính> có thứ tự thứ tự chúng có danh sách Như vậy, cấp quan hệ kết số thuộc tính có <danh sách thuộc tính>

Ví dụ: Cho biết họ tên nhân viên giới tính ? Cách 1: πhoten, phai(NHANVIEN)

(40)

Hình 4.1: Kết phép chiếu Hoten, phai quan hệ NHANVIEN

Số quan hệ kết từ phép chiếu luôn nhỏ số R Nếu danh sách chiếu siêu khố R (nghĩa chứa khố R) quan hệ kết có số R Ngồi ra, <danh sách 2> chứa tất thuộc tính có <danh sách 1>

< danh sách1>(< danh sách2> ( R)) = < danh sách 1> ( R)

Nếu <danh sách thuộc tính> bao gồm thuộc tính khơng phải thuộc tính khố R Phép chiếu loại bỏ trùng lặp

+ Mở rộng phép chiếu cách cho phép sử dụng phép toán số học danh sách thuộc tính

Ký hiệu: F1, F2, …, Fn (E)

trong : E biểu thức ĐSQH

F1, F2, …, Fn biểu thức số học liên quan đến • Hằng số

• Thuộc tính E Ví dụ:

Cho biết họ tên nhân viên lương họ sau tăng 10%

πho nv, tennv ,luong∗1.1(NHANVIEN)

Chúng ta áp dụng nhiều phép tốn quan hệ liên tiếp Trong trường hợp viết phép toán biểu thức đại số quan hệ đơn cách xếp lồng phép tốn lại với nhau, áp dụng phép toán thời điểm tạo quan hệ kết trung gian

2 Phép chọn (Selection)

Phép chọn sử dụng để c họn dòng (bộ) quan hệ thỏa điều kiện chọn Phép chọn ký hiệu là:

< điều kiện chọn>(R) (Quan hệ: <Điều kiện chọn>)

trong ký hiệu  dùng để ký hiêu phép chọn, <điều kiện chọn>

là biểu thức lôgic thuộc tính R Chú ý Quan hệ nói chung biểu thức đại số quan hệ Kết biểu thức đại số quan hệ R Biểu thức đơn giản tên quan hệ sở liệu Quan hệ kết phép chọn có thuộc tính Quan hệ

Biểu thức logic <điều kiện chọn> tạo nên từ số hạng mục có dạng :

(41)

hoặc <tên thuộc tính> <phép so sánh> <tên thuộc tính>

trong <tên thuộc tính> tên thuộc tính quan hệ, <phép so sánh> phép toán so sánh {<, <=, =, >=, >, ≠} <giá trị hằng> giá trị từ miền giá trị thuộc tính Các hạng mục nối với phép tốn lơgic AND (^), OR (v), NOT để tạo điều kiện chọn chung

Kết phép chọn xác định sau: <Điều kiện chọn> áp dụng cho t R cách độc lập Điều thực cách thay thuộc tính Ai điều kiện chon giá trị t[Ai] Nếu điều kiện chọn cho giá trị t chọn Tất chọn xuất kết phép chọn Các phép toán logic AND, OR, NOT thực theo quy tắc bình thường chúng

Phép chọn phép tốn ngơi, nghĩa áp dụng cho quan hệ Hơn nữa, phép chọn áp dụng cho cách độc lập, vậy, điều kiện chọn khơng thể liên quan đến nhiều Quan hệ kết phép chọn có cấp giống cấp R Số quan hệ kết luôn nhỏ số R

Ví dụ 1: Cho biết nhân viên nam Cách 1: σp hai=Nam(Nhanvien)

Cách 2: (NhanVien:Phai= “Nam’)

Hình 4.2: Kết phép chọn nhân viên có giới tính nam Ví dụ 2: Cho biết nhân viên nam sinh sau năm 1975

Cách 1: σp hai= Nam ^Year(NTNS)>1975(Nhanvien)

Cách 2: (NhanVien: Phai=‘Nam’  Year(NTNS)>1975)

(42)

¿Đi uề ki nệ 2>¿(R)

¿Đi uề ki nệ 1>¿(R)

σ¿

¿Đi uề ki nệ 2>¿ ¿

σ¿=σ¿

¿Đi uề ki nệ 1>¿ ¿

σ¿

Hơn ta kết hợp loạt phép chọn thành phép chọn đơn giản cách sử dụng phép tốn AND Ví dụ:

¿Đi uề ki nệ 2>¿(R)

¿Đi uề ki nệ 1>¿<Đi uề ki nệ 2>¿(R)

σ¿=σ¿

¿Đi uề ki nệ 1>¿ ¿

σ¿

Ví dụ: Tìm tên lớp có sĩ số từ 30 học viên trở lên thuộc k14 k15 sĩ số từ 40 trở lên

Cách 1:

πtenlopσ(siso ≥30hoahoc

=k14)V(siso≥40hoahoc

=k15)(HOCVIEN)

Cách 2: HOCVIEN: ((SISO>=30) ^ (KHOAHOC=14) V (SISO>=40) ^ (KHOAHOC=1)) [TENLOP]

Lưu ý: thực phép chọn xác định điều kiện phép chọn gì? Có

mấy điều kiện, Sử dụng toán tử

3 Phép gán.

Trong trường hợp tạo quan hệ trung gian viết phép toán biểu thức đại số quan hệ đơn, phải đặt tên cho quan hệ

Ký hiệu: 

Ví dụ:

Để đưa Hoten Luong nhân viên làm việc đơn vị có Maso phải áp dụng phép chọn phép chiếu Chúng ta viết biểu thức đại số quan hệ đơn sau:

πhoten, luongσmaso=4(NHANVIEN)

Một cách khác, tạo kết trung gian viết biểu thức thành dãy phép toán sau:

KQTG  σmaso=4(NHANVIEN)

Ketqua  πhoten, luong(KQTG)

Thơng thường việc phân tích dãy phức tạp phép toán cách quan hệ kết trung gian dễ việc viết biểu thức đại số quan hệ đơn

Để đặt lại tên cho thuộc tính quan hệ, liệt kê tên thuộc tính cặp dấu ngoặc Ví dụ:

R(Hovaten, Luong)  πhoten, luong(KQTG)

(43)

Hovaten

Nếu khơng có việc đặt lại tên tên thuộc tính quan hệ kết phép chọn giống tên quan hệ ban đầu có thứ tự thứ tự thuộc tính Đối với phép chiếu, khơng có việc đặt lại tên quan hệ kết có tên thuộc tính giống tên danh sách chiếu có thứ tự chúng xuất danh sách

Chúng ta định nghĩa phép tốn đặt lại tên , đặt lại tên cho tên quan hệ tên thuộc tính hai

4 Phép gom nhóm hàm nhóm.

Các hàm hay áp dụng để thu thập giá trị số hàm Tổng (SUM), Trungbình (AVERAGE), Tính giá trị lớn (MAX), Giá trị bé (MIN) Hàm Đếm (COUNT) sử dụng để đếm giá trị

Nhóm quan hệ theo giá trị số thuộc tính chúng sau áp dụng hàm nhóm cách độc lập cho nhóm

Định nghĩa phép tốn nhóm sau:

< thuộc tính nhóm> < danh sách hàm>(R)

trong  ký hiệu phép tốn hàm nhóm, <các thuộc tính nhóm> danh

sách thuộc tính quan hệ R, <danh sách hàm> danh sách cặp (<hàm><thuộc tính)>) Trong cặp vậy, <hàm> hàm cho phép SUM, AVERAGE, MAX, MIN, COUNT, <thuộc tính> thuộc tính quan hệ R Quan hệ kết có thuộc tính nhóm cộng với thuộc tính cho phần tử danh sách hàm

Ví dụ:

Để lấy theo MaSoĐV nhân viên lương trung bình nhân viên theo đơn vị, ta viết:

MaSoDV COUNT ( ), AVERAGE(Luong)( NhanVien)

2 Điểm thi cao nhất, thấp nhất, trung bình mơn CSDL?

max( Diem ), min( Diem ), agv( Diem )Mamh 'CSDL' (KETQUATHI)

3 Điểm thi cao nhất, thấp nhất, trung bình môn?

Mamh  max( Diem ), min( Diem ), avg( Diem ) (KETQUATHI)

CÂU HỎI - BÀI TẬP Bài số 1: Cho lược đồ sở liệu

SinhVien (MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,MALOP) Lop (MALOP,TENLOP, MAKHOA)

Khoa(MAKHOA,TENKHOA) Monhoc(MAMH,TENMH,DONVIHT) GiangVien (MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) KetQua (MASV, MAMH, LANTHI, DIEMTHI)

Phancong(MALOP,MAMH,MAGV)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

(44)

2 Lập danh sách sinh viên lớp có MALOP CDTH2A, danh sách cần thông tin: MASV, HOTENSV, NGAYSINH, TINH

3 Lập danh sách giảng viên có cấp học vị THAC SY khoa có MAKHOA “CNTT”, danh sách cần: MAGV,HOTENGV, CHUYENNGANH

Bài số 2: Cho lược đồ sở liệu

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

NHANVIEN (MANV,HOTEN, NGVL, SODT) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

1 In danh sách sản phẩm (MASP,TENSP) “Trung Quoc” sản xuất In danh sách sản phẩm (MASP, TENSP) có đơn vị tính “cay”, ”quyen”

3 In danh sách sản phẩm (MASP,TENSP) có mã sản phẩm bắt đầu “B” kết thúc “01”

4 In danh sách sản phẩm (MASP,TENSP) “Trung Quốc” sản xuất có giá từ 30.000 đến 40.000

5 In danh sách sản phẩm (MASP,TENSP) “Trung Quoc” “Thai Lan” sản xuất có giá từ 30.000 đến 40.000

6 In số hóa đơn, trị giá hóa đơn bán ngày 1/1/2007 ngày 2/1/2007

7 In số hóa đơn, trị giá hóa đơn tháng 1/2007, xếp theo ngày (tăng dần) trị giá hóa đơn (giảm dần)

8 In danh sách khách hàng (MAKH, HOTEN) mua hàng ngày 1/1/2007

9 In số hóa đơn, trị giá hóa đơn nhân viên có tên “Nguyen Van B” lập ngày 28/10/2006

10 In danh sách sản phẩm (MASP,TENSP) khách hàng có tên “Nguyen Van A” mua tháng 10/2006

11 Tìm số hóa đơn mua sản phẩm có mã số “BB01” “BB02” 12 Tìm số hóa đơn mua sản phẩm có mã số “BB01” “BB02”, sản phẩm mua với số lượng từ 10 đến 20

Bài số 3: Cho lược đồ sở liệu với lược đồ quan hệ sau: KHACHHANG(MAKH, TEN, DCHI, DTHOAI)

NHANVIEN(MANV,TEN, DCHI, DTHOAI, LUONG, LOAINV) LOAIMB(MALOAI, HANGSX)

(45)

CHUYENBAY(MACB, SBDI, SBDEN, GIODI, GIODEN) LICHBAY(NGAYDI, MACB, SOHIEU, MALOAI)

DATCHO(MAKH, NGAYDI, MACB) KHANANG(MANV, MALOAI)

PHANCONG(MANV, NGAYDI, MACB)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

1 Cho biết mã số, tên phi công, địa chỉ, điện thoại phi công lái máy bay loại B747

2 Cho biết mã số ngày chuyến bay xuất phát từ sân bay DCA khoảng thời gian từ 14 đến 18

3 Cho biết tên nhân viên phân cơng chuyến bay có mã số 100 xuất phát sân bay SLC Các dòng liệu xuất không phép trùng lắp Cho biết mã loại số hiệu máy bay xuất phát sân bay MIA Các dòng liệu xuất không phép trùng lắp

5 Cho biết mã chuyến bay, ngày đi, với tên, địa chỉ, điện thoại tất hành khách chuyến bay Sắp xếp theo thứ tự tăng dần mã chuyến bay theo ngày giảm dần

6 Cho biết mã chuyến bay, ngày đi, với tên, địa chỉ, điện thoại tất nhân viên phân cơng chuyến bay Sắp xếp theo thứ tự tăng dần mã chuyến bay theo ngày giảm dần

7 Cho biết mã chuyến bay, ngày đi, mã số tên phi công phân công vào chuyến bay hạ cánh xuống sân bay ORD

8 Cho biết chuyến bay (mã số chuyến bay, ngày tên phi cơng) phi cơng có mã 1001 phân công lái

9 Cho biết thông tin (mã chuyến bay, sân bay đi, đi, đến, ngày đi) chuyến bay hạ cánh xuống DEN Các chuyến bay liệt kê theo ngày giảm dần sân bay xuất phát (SBDI) tăng dần

10.Với phi công, cho biết hãng sản xuất mã loại máy bay mà phi cơng có khả bay Xuất tên phi công, hãng sản xuất mã loại máy bay

11 Cho biết mã phi công, tên phi công lái máy bay chuyến bay mã số 100 vào ngày 11/01/2000

12 Cho biết mã chuyến bay, mã nhân viên, tên nhân viên phân công vào chuyến bay xuất phát ngày 10/31/2000 sân bay MIA vào lúc 20:30

13 Cho biết thông tin chuyến bay (mã chuyến bay, số hiệu, mã loại, hãng sản xuất) mà phi công “Quang” lái

14 Cho biết tên phi công chưa phân công lái chuyến bay 15 Cho biết tên khách hàng chuyến bay máy bay hãng “Boeing” 16 Cho biết mã chuyến bay bay với máy bay số hiệu 10 mã loại B747

GOM NHÓM + HÀM

(46)

18.Với sân bay (SBDI), cho biết số lượng chuyến bay xuất phát từ sân bay đó, xếp theo thứ tự tăng dần sân bay xuất phát

19.Với sân bay (SBDI), cho biết số lượng chuyến bay xuất phát theo ngày Xuất mã sân bay đi, ngày số lượng

20.Với sân bay (SBDEN), cho biết số lượng chuyến bay hạ cánh theo ngày Xuất mã sân bay đến, ngày số lượng

21.Với lịch bay, cho biết mã chuyến bay, ngày với số lượng nhân viên phi cơng chuyến bay

22.Số lượng chuyến bay xuất phát từ sân bay MIA vào ngày 11/01/2000

23.Với chuyến bay, cho biết mã chuyến bay, ngày đi, số lượng nhân viên phân công chuyến bay đó, theo thứ tự giảm dần số lượng 24.Với chuyến bay, cho biết mã chuyến bay, ngày đi, với số lượng hành khách đặt chỗ chuyến bay đó, theo thứ tự giảm dần số lượng

25.Với chuyến bay, cho biết mã chuyến bay, ngày đi, tổng lương phi hành đồn (các nhân viên phân cơng chuyến bay), xếp theo thứ tự tăng dần tổng lương

26 Cho biết lương trung bình nhân viên phi công 27 Cho biết mức lương trung bình phi cơng

28.Với loại máy bay, cho biết số lượng chuyến bay bay loại máy bay hạ cánh xuống sân bay ORD Xuất mã loại máy bay, số lượng chuyến bay 29 Cho biết sân bay (SBDI) số lượng chuyến bay có nhiều chuyến bay xuất phát khoảng 10 đến 22

30 Cho biết tên phi công phân công vào chuyến bay ngày

31 Cho biết mã chuyến bay ngày chuyến bay có hành khách đặt chỗ

32 Cho biết số hiệu máy bay loại máy bay mà phi cơng có mã 1001 phân công lái lần

33.Với hãng sản xuất, cho biết số lượng loại máy bay mà hãng sản xuất Xuất hãng sản xuất số lượng

TRUY VẤN LỒNG + HÀM

34 Cho biết hãng sản xuất, mã loại số hiệu máy bay sử dụng nhiều

35 Cho biết tên nhân viên phân công nhiều chuyến bay

36 Cho biết thông tin phi công (tên, địa chỉ, điện thoại) lái nhiều chuyến bay

37 Cho biết sân bay (SBDEN) số lượng chuyến bay sân bay có chuyến bay đáp xuống

38 Cho biết sân bay (SBDI) số lượng chuyến bay sân bay có nhiều chuyến bay xuất phát

(47)

40 Cho biết mã số, tên lương phi cơng có khả lái nhiều loại máy bay

41 Cho biết thông tin (mã nhân viên, tên, lương) nhân viên có mức lương cao

42 Cho biết tên, địa nhân viên có lương cao phi hành đồn (các nhân viên phân cơng chuyến bay) mà người tham gia

43 Cho biết mã chuyến bay, đến chuyến bay bay sớm ngày

44 Cho biết mã chuyến bay có thời gian bay dài Xuất mã chuyến bay thời gian bay (tính phút)

45 Cho biết mã chuyến bay có thời gian bay Xuất mã chuyến bay thời gian bay

46 Cho biết mã chuyến bay ngày chuyến bay bay loại máy bay B747 nhiều

47.Với chuyến bay có hành khách, cho biết mã chuyến bay số lượng nhân viên chuyến bay Xuất mã chuyến bay số lượng nhân viên

48.Với loại nhân viên có tổng lương 600000, cho biết số lượng nhân viên loại nhân viên Xuất loại nhân viên, số lượng nhân viên tương ứng

49.Với chuyến bay có nhân viên, cho biết mã chuyến bay số lượng khách hàng đặt chỗ chuyến bay

50.Với loại máy bay có nhiều chiếc, cho biết số lượng chuyến bay bố trí bay loại máy bay Xuất mã loại số lượng

PHÉP CHIA

51 Cho biết mã chuyến bay bay tất máy bay hãng “Boeing”

52 Cho biết mã tên phi cơng có khả lái tất máy bay hãng “Airbus”

53 Cho biết tên nhân viên (không phải phi công) phân công bay vào tất chuyến bay có mã 100

54 Cho biết ngày mà có tất loại máy bay hãng “Boeing” tham gia

55 Cho biết loại máy bay hãng “Boeing” có tham gia vào tất ngày

56 Cho biết mã tên khách hàng có đặt chổ tất ngày từ 31/10/2000 đến 1/1/2000

57 Cho biết mã tên phi cơng khơng có khả lái tất máy bay hãng “Airbus”

(48)(49)

BÀI 5: PHÉP KẾT NỐI TRONG ĐẠI SỐ QUAN HỆ Mã bài: 11.05

Giới thiệu:

Bài giới thiệu cách tổng quan về: phép kết, phép kết tự nhiên đại số quan hệ Qua đó, giúp người học thực phép toán kết quan hệ theo yêu cầu

Mục tiêu:

- Nêu khái niệm phép kết, phép kết tự nhiên đại số quan hệ - Nêu cú pháp phép kết, phép kết tự nhiên

- Lấy ví dụ thực tế để minh họa

- Thực phép toán tập cụ thể - Nghiêm túc, tự giác học tập

- Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Phép kết ( phép nối)

Phép kết (nối) dùng kết hợp có liên hệ với từ hai quan hệ thành Phép toán quan trọng sở liệu quan hệ có nhiều bảng cho phép ta xử lý mối liên kết quan hệ

Dạng tổng quát phép kết hai quan hệ R(A1, A2,…,An) S(B1,B2,…, Bm)

Kết phép kết quan hệ Q(A1,A2,…,An,B1,B2,…,Bm) có n+m thuộc tính Mỗi Q kết nối R S chúng thoả mãn điều kiện nối Sự khác tích Đề phép nối chỗ phép nối, có thoả mãn điều kiện nối xuất kết quả, trong tích Đề tổ hợp có kết Điều kiện nối thuộc tính hai quan hệ R S tính toán cho tổ hợp Mọi tổ hợp mà điều kiện nối chứa quan hệ kết Q đơn Một điều kiện nối tổng quát có dạng

<điều kiện> AND <điều kiện> AND … AND <điều kiện>

(50)

Ví dụ : Giả sử ta có hai quan hệ R S sau:

Khi kết phép nối tê-ta R S với điều kiện A3 = B1 cho kết là:

Phần lớn phép nối cho phép điều kiện nối với so sánh Những phép nối sử dụng phép so sánh gọi nối Ví dụ phép nối

Ví dụ 2:

2 Phép kết tự nhiên

(51)

toán đặt lại tên Ví dụ:

Kết tự nhiên hai quan hệ R(A1,A2,A3) S(B1,B2,B3) ví dụ Để thực phép nối tự nhiên với điều kiện so sánh bằng, ta phải đổi tên thuộc tính B1 thành A3

Phép nối có kết sau:

Nếu thuộc tính mà nối tự nhiên có tên việc đặt lại tên khơng cần thiết

Chú ý khơng có tổ hợp thoả mãn điều kiện nối kết phép nối quan hệ rỗng khơng chứa Nói chung, R có nR S có nS kết phép nối R với S có số lớn nhỏ nR.nS Cỡ kết nối chia cho cỡ cực đại nR.nS tạo nên tỷ lệ gọi chọn lựa nối, tính chất điều kiện nối Nếu khơng có điều kiện nối, tổ hợp chọn phép nối trở thành tích Đề

Phép nối sử dụng để kết hợp liệu từ nhiều quan hệ cho thơng tin có liên hệ với biểu diễn bảng Đôi phép nối áp dụng nối bảng với Chúng ta áp dụng phép nối tự nhiên nối để nối nhiều bảng với Nếu ta nối n bảng với phải n-1 điều kiện nối

3 Phép kết (outer join)

Các phép tốn nối mơ tả liên kết thoả mãn điều kiện nối Như vậy, khơng có liên kết bị loại khỏi kết nối Các với giá trị null thuộc tính nối bị loại Một tập hợp phép tốn gọi nối ngồi sử dụng muốn giữ R S hai quan hệ kết phép nối dù chúng có liên kết quan hệ hay không

- Phép kết để mở rộng phép kết để tránh thông tin

- Thực phép kết sau thêm vào kết phép kết quan hệ mà không phù hợp với quan hệ

(52)

+ Left outer join + Right outer join + Full outer join

Phép nối trái giữ lại quan hệ bên trái R phép nối Nếu khơng có liên kết tìm thấy S thuộc tính S kết phép nối “làm đầy” giá trị null

Ví dụ: In danh sách tất học viên điểm số mơn học mà học viên thi (nếu có)

CÂU HỎI - BÀI TẬP Cho lược đồ sở liệu

Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,MALOP) Lop(MALOP,TENLOP, MAKHOA)

Khoa(MAKHOA,TENKHOA)

Monhoc(MAMH,TENMH,DONVIHT)

Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI, DIEMTHI)

Phancong(MALOP,MAMH,MAGV)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

4 Lập bảng điểm thi lần môn học “869” cho tất sinh viên thuộc hai lớp có MALOP “CĐTH2A” “CĐTH2B”, danh sách cần: MASV,HOTENSV,DIEMTHI

5 Lập danh sách giảng viên dạy lớp CĐTH2A, danh sách cần thông tin: MAGV, HOTENGV,TENKHOA,HOCVI,TENMH

6 Lập danh sách môn mà lớp CDTH2A học, danh sách cần thông tin: MAMH,TENMH,DONVIHT,HOTENGV

7 Lập danh sách giảng viên dạy sinh viên có MASV “00CDTH189“, danh sách cần MAGV, HOTENGV, HOCVI, CHUYENNGANH, TENKHOA, TENMH

8 Lập danh sách sinh viên có mã khoa “CNTT” có điểm thi lần mơn học “869” lớn 8, danh sách cần MASV, HOTENSV, DIEMTHI, TENLOP

Bài số 2: Cho lược đồ sở liệu

KHACHHANG (MAKH, HOTEN, DCHI, SODT, NGSINH, DOANHSO, NGDK)

(53)

SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA) HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

13 Tìm số hóa đơn mua lúc sản phẩm có mã số “BB01” “BB02”, sản phẩm mua với số lượng từ 10 đến 20

14 In danh sách sản phẩm (MASP,TENSP) “Trung Quoc” sản xuất sản phẩm bán ngày 1/1/2007

15 In danh sách sản phẩm (MASP,TENSP) không bán

16 In danh sách sản phẩm (MASP,TENSP) không bán năm 2006

17 In danh sách sản phẩm (MASP,TENSP) “Trung Quoc” sản xuất không bán năm 2006

18 Tìm số hóa đơn mua tất sản phẩm Singapore sản xuất 19 Tìm số hóa đơn năm 2006 mua tất sản phẩm Singapore sản xuất

20 Có hóa đơn khơng phải khách hàng đăng ký thành viên mua? 21 Có sản phẩm khác bán năm 2006

22 Cho biết trị giá hóa đơn cao nhất, thấp ?

23 Trị giá trung bình tất hóa đơn bán năm 2006 bao nhiêu?

24 Tính doanh thu bán hàng năm 2006

25 Tìm số hóa đơn có trị giá cao năm 2006

26 Tìm họ tên khách hàng mua hóa đơn có trị giá cao năm 2006 27 In danh sách khách hàng (MAKH, HOTEN) có doanh số cao 28 In danh sách sản phẩm (MASP, TENSP) có giá bán mức giá cao

29 In danh sách sản phẩm (MASP, TENSP) “Thai Lan” sản xuất có giá mức giá cao (của tất sản phẩm)

30 In danh sách sản phẩm (MASP, TENSP) “Trung Quoc” sản xuất có giá mức giá cao (của sản phẩm “Trung Quoc” sản xuất)

31 * In danh sách khách hàng có doanh số cao (sắp xếp theo kiểu xếp hạng)

32 Tính tổng số sản phẩm “Trung Quoc” sản xuất 33 Tính tổng số sản phẩm nước sản xuất

34 Với nước sản xuất, tìm giá bán cao nhất, thấp nhất, trung bình sản phẩm

35 Tính doanh thu bán hàng ngày

36 Tính tổng số lượng sản phẩm bán tháng 10/2006 37 Tính doanh thu bán hàng tháng năm 2006

(54)

39 Tìm hóa đơn có mua sản phẩm “Viet Nam” sản xuất (3 sản phẩm khác nhau)

40 Tìm khách hàng (MAKH, HOTEN) có số lần mua hàng nhiều 41 Tháng năm 2006, doanh số bán hàng cao ?

42 Tìm sản phẩm (MASP, TENSP) có tổng số lượng bán thấp năm 2006

43 *Mỗi nước sản xuất, tìm sản phẩm (MASP,TENSP) có giá bán cao 44 Tìm nước sản xuất sản xuất sản phẩm có giá bán khác

45 *Trong 10 khách hàng có doanh số cao nhất, tìm khách hàng có số lần mua hàng nhiều

Bài số 3: Cho lược đồ sở liệu với lược đồ quan hệ sau: KHACHHANG(MAKH, TEN, DCHI, DTHOAI)

NHANVIEN(MANV,TEN, DCHI, DTHOAI, LUONG, LOAINV) LOAIMB(MALOAI, HANGSX)

MAYBAY(SOHIEU, MALOAI)

CHUYENBAY(MACB, SBDI, SBDEN, GIODI, GIODEN) LICHBAY(NGAYDI, MACB, SOHIEU, MALOAI)

DATCHO(MAKH, NGAYDI, MACB) KHANANG(MANV, MALOAI)

PHANCONG(MANV, NGAYDI, MACB)

Thực yêu cầu sau ngôn ngữ đại số quan hệ:

8 Cho biết chuyến bay (mã số chuyến bay, ngày tên phi cơng) phi cơng có mã 1001 phân cơng lái

9 Cho biết thông tin (mã chuyến bay, sân bay đi, đi, đến, ngày đi) chuyến bay hạ cánh xuống DEN Các chuyến bay liệt kê theo ngày giảm dần sân bay xuất phát (SBDI) tăng dần

10.Với phi công, cho biết hãng sản xuất mã loại máy bay mà phi cơng có khả bay Xuất tên phi công, hãng sản xuất mã loại máy bay

11 Cho biết mã phi công, tên phi công lái máy bay chuyến bay mã số 100 vào ngày 11/01/2000

12 Cho biết mã chuyến bay, mã nhân viên, tên nhân viên phân công vào chuyến bay xuất phát ngày 10/31/2000 sân bay MIA vào lúc 20:30

13 Cho biết thông tin chuyến bay (mã chuyến bay, số hiệu, mã loại, hãng sản xuất) mà phi công “Quang” lái

14 Cho biết tên phi công chưa phân công lái chuyến bay 15 Cho biết tên khách hàng chuyến bay máy bay hãng “Boeing” 16 Cho biết mã chuyến bay bay với máy bay số hiệu 10 mã loại B747

GOM NHÓM + HÀM

(55)

18.Với sân bay (SBDI), cho biết số lượng chuyến bay xuất phát từ sân bay đó, xếp theo thứ tự tăng dần sân bay xuất phát

19.Với sân bay (SBDI), cho biết số lượng chuyến bay xuất phát theo ngày Xuất mã sân bay đi, ngày số lượng

20.Với sân bay (SBDEN), cho biết số lượng chuyến bay hạ cánh theo ngày Xuất mã sân bay đến, ngày số lượng

21.Với lịch bay, cho biết mã chuyến bay, ngày với số lượng nhân viên phi công chuyến bay

22.Số lượng chuyến bay xuất phát từ sân bay MIA vào ngày 11/01/2000

23.Với chuyến bay, cho biết mã chuyến bay, ngày đi, số lượng nhân viên phân cơng chuyến bay đó, theo thứ tự giảm dần số lượng 24.Với chuyến bay, cho biết mã chuyến bay, ngày đi, với số lượng hành khách đặt chỗ chuyến bay đó, theo thứ tự giảm dần số lượng

25.Với chuyến bay, cho biết mã chuyến bay, ngày đi, tổng lương phi hành đoàn (các nhân viên phân công chuyến bay), xếp theo thứ tự tăng dần tổng lương

26 Cho biết lương trung bình nhân viên khơng phải phi cơng 27 Cho biết mức lương trung bình phi công

28.Với loại máy bay, cho biết số lượng chuyến bay bay loại máy bay hạ cánh xuống sân bay ORD Xuất mã loại máy bay, số lượng chuyến bay 29 Cho biết sân bay (SBDI) số lượng chuyến bay có nhiều chuyến bay xuất phát khoảng 10 đến 22

30 Cho biết tên phi cơng phân cơng vào chuyến bay ngày

31 Cho biết mã chuyến bay ngày chuyến bay có hành khách đặt chỗ

32 Cho biết số hiệu máy bay loại máy bay mà phi cơng có mã 1001 phân cơng lái lần

33.Với hãng sản xuất, cho biết số lượng loại máy bay mà hãng sản xuất Xuất hãng sản xuất số lượng

TRUY VẤN LỒNG + HÀM

34 Cho biết hãng sản xuất, mã loại số hiệu máy bay sử dụng nhiều

35 Cho biết tên nhân viên phân công nhiều chuyến bay

36 Cho biết thông tin phi công (tên, địa chỉ, điện thoại) lái nhiều chuyến bay

37 Cho biết sân bay (SBDEN) số lượng chuyến bay sân bay có chuyến bay đáp xuống

38 Cho biết sân bay (SBDI) số lượng chuyến bay sân bay có nhiều chuyến bay xuất phát

(56)

40 Cho biết mã số, tên lương phi công có khả lái nhiều loại máy bay

41 Cho biết thông tin (mã nhân viên, tên, lương) nhân viên có mức lương cao

42 Cho biết tên, địa nhân viên có lương cao phi hành đoàn (các nhân viên phân cơng chuyến bay) mà người tham gia

43 Cho biết mã chuyến bay, đến chuyến bay bay sớm ngày

44 Cho biết mã chuyến bay có thời gian bay dài Xuất mã chuyến bay thời gian bay (tính phút)

45 Cho biết mã chuyến bay có thời gian bay Xuất mã chuyến bay thời gian bay

46 Cho biết mã chuyến bay ngày chuyến bay bay loại máy bay B747 nhiều

47.Với chuyến bay có hành khách, cho biết mã chuyến bay số lượng nhân viên chuyến bay Xuất mã chuyến bay số lượng nhân viên

48.Với loại nhân viên có tổng lương 600000, cho biết số lượng nhân viên loại nhân viên Xuất loại nhân viên, số lượng nhân viên tương ứng

49.Với chuyến bay có nhân viên, cho biết mã chuyến bay số lượng khách hàng đặt chỗ chuyến bay

50.Với loại máy bay có nhiều chiếc, cho biết số lượng chuyến bay bố trí bay loại máy bay Xuất mã loại số lượng

PHÉP CHIA

51 Cho biết mã chuyến bay bay tất máy bay hãng “Boeing”

52 Cho biết mã tên phi cơng có khả lái tất máy bay hãng “Airbus”

53 Cho biết tên nhân viên (không phải phi công) phân công bay vào tất chuyến bay có mã 100

54 Cho biết ngày mà có tất loại máy bay hãng “Boeing” tham gia

55 Cho biết loại máy bay hãng “Boeing” có tham gia vào tất ngày

56 Cho biết mã tên khách hàng có đặt chổ tất ngày từ 31/10/2000 đến 1/1/2000

57 Cho biết mã tên phi công khơng có khả lái tất máy bay hãng “Airbus”

58 Cho biết sân bay có tất loại máy bay hãng “Boeing” xuất phát

(57)

PhongThi (SoPT, Diachi, SucChua)

ThiSinh(SoBD, Hoten, NgaySinh, DiaChi, GioiTinh, SoPT) MonThi (MaMT, Buoi, NgayThi)

KetQua(,SoBD, MaMT , DiemThi, VangThi)

1 Liệt kê tất thí sinh bao gồm: Sobd, HoTen, NgaySinh, Diachi, GiớiTinh)

2 Liệt kê thi sinh Nữ BRVT

3 Liệt kê tất phòng thi sở có sức chứa >30

4 Liệt kê mơn thi có MaMT ‘CSDL’ MaMT ‘LTCB’ thi buổi sáng Liệt kê Sobd có điểm đậu

7 In HoTen, SoBD học viên có năm sinh 2003 2004 In học viên có tên “Tran Anh Tuan” BRVT In số báo danh có điểm thi từ đến 10

10 In số báo đanh có điểm thi từ đến 10 mơn thi có MaMT=‘CSDL’

11 In số báo danh, họ tên thí sinh thi phịng thi có sức chứa từ 30 người chở lên

12 In kết thi ( Sobd, hoten, tenmonthi, diemthi) thí sinh thuộc phịng thi có sức chứa từ 30 người chở lên

13 Tìm họ tên thí sinh đạt điểm 9, 10 mơn CSDL điểm 9, 10 môn ‘LTCB’

14 In họ tên thí sinh thuộc phịng thi=‘101’ họ tên thí sinh đạt điểm 10 mơn CSDL

15 Tìm thí sinh đạt điểm 10 mơn CSDL điểm 10 mơn LTCB 16 Tìm họ tên, số báo danh thí sinh vắng thi mơn ‘CSDL’ 17 Tìm mơn thi mà tất thí sinh thi đậu

18 Tìm tất thi sinh thi tất môn đậu

19 In kết thí sinh thuộc phịng thi có số phịng thi = ‘101’, in

(58)

BÀI 6: XÁC ĐỊNH RÀNG BUỘC TỒN VẸN CĨ BỐI CẢNH MỘT QUAN HỆ

Mã bài: 11.06 Giới thiệu:

Ràng buộc toàn vẹn (Integrity Constraint / Rule viết tắt là: RBTV) kiểm tra vi phạm ràng buộc toàn vẹn hai vấn đề quan trọng trình phân tích, thiết kế khai thác CSDL Trong trình phân tích - thiết kế sở liệu, không quan tâm mức đến vấn đề trên, dẫn đến hậu nghiêm trọng tính an tồn tồn vẹn liệu, đặc biệt CSDL tương đối lớn

Bài giới thiệu cách tổng quan về: ràng buộc toàn vẹn bối cảnh quan hệ Qua đó, giúp người học phát đầy đủ ràng buộc tồn vẹn tốt mơ tả chúng cách xác hồ sơ phân tích thiết kế - việc làm quan trọng

Mục tiêu:

- Trình bày khái niệm RBTV yếu tố RBTV - Phân loại loại ràng buộc toàn vẹn quan hệ - Lấy ví dụ thực tế để minh họa

- Phát biểu RBTV tập cụ thể Nội dung chính:

1 Khái niệm yếu tố ràng buộc toàn vẹn

1.1 Khái niệm

Ràng buộc toàn vẹn điều kiện bất biến không vi phạm sở liệu

Trong sở liệu tồn nhiều mối liên hệ thuộc tính, bộ; liên hệ xảy quan hệ quan hệ lược đồ sở liệu Các mối liên hệ điều kiện bất biến mà tất quan hệ có liên quan sở liệu phải thoả mãn thời điểm Những điều kiện bất biến gọi ràng buộc toàn vẹn Trong thực tế ràng buộc toàn vẹn quy tắc quản lý áp đặt đối tượng giới thực Chẳng hạn sinh viên phải có mã sinh viên nhất, hai thí sinh dự thi vào trường phải có số báo danh khác nhau, sinh viên dự thi môn học không lần,…

Trong sở liệu, ràng buộc toàn vẹn xem công cụ để diễn đạt ngữ nghĩa sở liệu Trong suốt q trình khai thác sở liệu, RBTV phải thỏa mãn thời điểm nhằm đảm bảo cho sở liệu luôn trạng thái an toàn quán liệu

(59)

tra xử lý vi phạm RBTV người phân tích - thiết kế cài đặt Việc kiểm tra RBTV tiến hành vào thời điểm sau:

-Kiểm tra thực thao tác cập nhật sở liệu (thêm, sửa, xóa) Thao tác cập nhật xem hợp lệ khơng vi phạm RBTV nào, nghĩa khơng làm tính tồn vẹn liệu sở liệu Nếu vi phạm RBTV, thao tác cập nhật bị coi không hợp lệ bị hệ thống hủy bỏ (hoặc có xử lý thích hợp đó)

-Kiểm tra định kỳ hay đột xuất, nghĩa việc kiểm tra RBTV tiến hành cách độc lập thao tác cập nhật liệu Đối với trường hợp vi phạm RBTV, hệ thống có xử lý ngầm định yều cầu người sử dụng xử lý sai sót cách tường minh

1.2 Các yếu tố ràng buộc toàn vẹn. 1.2.1 Nội dung ( Điều kiện)

- Mô tả chặt chẽ ý nghĩa ràng buộc tồn vẹn

Nội dung phát biểu ngơn ngữ tự nhiên ngơn ngữ hình thức (ngơn ngữ tân từ, đại số quan hệ, mã giả)

- Ngôn ngữ tự nhiên: dễ hiểu, không chặt chẽ, logic - Ngơn ngữ hình thức: chặt chẽ, đọng

Ví dụ:

Giả sử có CSDL quản lý hóa đơn bán hàng gồm bảng sau: HĨAĐƠN (Số-hóa-đơn, Số-chủng-loại-mặt-hàng, Tổng-trị-giá) DM_HÀNG (Mã-hàng, Tên-hàng, Đơn-vị-tính)

CHITIẾT-HĐ (Số-hóa-đơn, Mã-hàng, Số-lượng-đặt, Đơn-giá, Trị-giá) Điều kiện ràng buộc tồn vẹn biểu diễn sau:

R1 : “Mỗi hóa đơn có Số hóa đơn riêng biệt, khơng trùng với hóa đơn khác”:

hd1,hd2 HĨAĐƠN: Nếu hd1hd2 hd1 Số-hóa-đơn hd2.Số-hóa-đơn

1.2.2 Bối cảnh

- Là tập quan hệ thao tác quan hệ có khả làm cho ràng buộc bị vi phạm

- Đó quan hệ vi phạm ràng buộc tồn vẹn thực thao tác thêm, xoá, sửa

Ví dụ: Bối cảnh ràng buộc tồn vẹn R1 quan hệ HÓAĐƠN; 1.2.3 Bảng tầm ảnh hưởng

- Nhằm xác định cần tiến hành kiểm tra ràng buộc toàn vẹn Thao tác thực vi phạm ràng buộc tồn vẹn

- Phạm vi ảnh hưởng ràng buộc toàn vẹn biểu diễn bảng chiều gọi bảng tầm ảnh hưởng

Một số quy định chung:

- Những thuộc tính khóa khơng sửa giá trị

- Trước xét thao tác thực vi phạm ràng buộc hay khơng sở liệu phải thỏa mãn ràng buộc toàn vẹn trước

(60)

+ : Ảnh hưởng đến RBTV - : Không ảnh hưởng

+ (A): Ảnh hưởng sửa thuộc tính A

- (*): Không ảnh hưởng thao tác không thực Ví dụ:

Bảng tầm ảnh hưởng ràng buộc toàn vẹn R1

2 Ràng buộc miền giá trị bối cảnh quan hệ

Là tập giá trị mà thuộc tính nhận được. Ví dụ: Cho Lược đồ CSDL quản lý giáo vụ sau:

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) Ràng buộc miền giá trị

R1: Điểm học viên từ 1→ 10

+ Nội dung: hv  KETQUATHI: hv.DIEM {1 10}

+ Bối cảnh: quan hệ KETQUATHI + Bảng tầm ảnh hưởng:

R1 Thêm Xóa Sửa

KETQUATHI + - +(Diem)

3 Ràng buộc tồn vẹn liên thuộc tính

Là ràng buộc thuộc tính với quan hệ

R2: Ngày bắt đầu (TUNGAY) giảng dạy môn học cho lớp nhỏ

ngày kết thúc (DENNGAY)

+ Nội dung : gd GIANGDAY: gd.TUNGAY < gd.DENNGAY

(61)

+ Bảng tầm ảnh hưởng:

4 Ràng buộc liên - liên thuộc tính bối cảnh quan hệ

Là ràng buộc nhiều quan hệ liên quan đến nhiều thuộc tính

Ví dụ:

R3: Tất 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 h1.Mahvh2.Mahv

+ Bối cảnh: quan hệ HOCVIEN + Bảng tầm ảnh hưởng:

R4: Các giáo viên có học vị, hệ số lương mức lương

+ Nội dung: gv1,gv2GIAOVIEN:

Nếu (gv1.Hocvi=gv2.Hocvi) Λ (gv1.Heso=gv2.Heso) Thì gv.Mucluong=gv.Mucluong

+ Bối cảnh: quan hệ GIAOVIEN + Bảng tầm ảnh hưởng:

CÂU HỎI - BÀI TẬP

1 Nêu khái niệm đặc trưng Ràng buộc toàn vẹn

2 Nêu Ràng buộc tồn vẹn có bối cảnh quan hệ? Cho ví dụ?

3 Tìm tất ràng buộc tồn vẹn có bối cảnh quan hệ Lược đồ CSDL quản lý giáo vụ

Bài tập số 1: Cho lược đồ quan hệ:

KHACHTV (MAKH,HOTEN, DCHI,SODT,NGSINH,DOANHSO,NGGN) NHANVIEN (MANV,HOTEN,NGSINH,NGVL,HESO,MUCLUONG) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL)

Nêu nội dung, bối cảnh bảng tầm ảnh hưởng:

(62)

3 Tổng giá trị mặt hàng CTHD có số hóa (SOHD) đơn phải tổng trị giá (TONGTRIGIA) HOADON

4 Mỗi CTHD phải có MAMH thuộc DANHMUCMH Tất sản phẩm có giá từ 1.000 đồng trở lên

6 Ngày gia nhập khách hàng thành viên phải lớn ngày sinh người

7 Các nhân viên có hệ số lương phải mức lương

8 Ngày nhân viên bán hàng phải lớn ngày vào làm nhân viên

9 Mỗi hóa đơn phải có chi tiết hóa đơn

(63)

BÀI 7: XÁC ĐỊNH RÀNG BUỘC TOÀN VẸN CÓ BỐI CẢNH NHIỀU QUAN HỆ

Mã bài: 11.07 Giới thiệu:

Bài giới thiệu cách tổng quan về: ràng buộc toàn vẹn bối cảnh nhiều quan hệ Qua đó, giúp người học phát đầy đủ ràng buộc toàn vẹn tốt mơ tả chúng cách xác hồ sơ phân tích thiết kế - việc làm quan trọng

Mục tiêu:

- Trình bày khái niệm RBTV yếu tố RBTV - Phân loại loại ràng buộc toàn vẹn nhiều quan hệ - Lấy ví dụ thực tế để minh họa

- Phát biểu RBTV tập cụ thể Nội dung chính:

1 Ràng buộc tồn vẹn tham chiếu

Là ràng buộc quy định giá trị thuộc tính quan hệ R (tập thuộc tính gọi khố ngoại), phải phụ thuộc vào tồn quan hệ S (tập thuộc tính khố quan hệ S)

RBTV tham chiếu gọi ràng buộc phụ thuộc tồn hay ràng buộc khóa ngoại

Ví dụ: Cho Lược đồ CSDL quản lý giáo vụ sau:

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)

R5: Học viên thi mơn học mơn học phải có danh sách

các môn học

+ Nội dung: k  KETQUATHI, m  MONHOC: k.Mamh = m.Mamh

Hoặc: KETQUATHI[Mamh]  MONHOC[Mamh]

(64)

2 Ràng buộc tồn vẹn liên thuộc tính.

Là ràng buộc thuộc tính quan hệ khác Ví dụ:

R6: Ngày giáo viên giảng dạy môn học phải lớn 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:

R7: Ngày thi môn học phải lớ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 + Bảng tầm ảnh hưởng:

3 Ràng buộc tồn vẹn thuộc tính tổng hợp.

- Là ràng buộc thuộc tính, quan hệ khác

- Thuộc tính tổng hợp thuộc tính tính tốn từ giá trị thuộc tính khác, khác

Ví dụ 1:

R8: Sỉ số lớp số lượng học viên thuộc lớp đó

(65)

lp.Siso = Count(hv  HOCVIEN: hv.Malop = lp.Malop)(*)

+ Bối cảnh: quan hệ LOP, HOCVIEN + Bảng tầm ảnh hưởng:

Ví dụ 2: Cho lược đồ CSDL quản lý bán hàng sau: SANPHAM(Masp,Tensp, Nuocsx, Gia)

KHACHHANG(Makh, Hoten, Doanhso) HOADON(Sohd, Nghd,Makh,Trigia) CTHD(Sohd,Masp,Soluong,Gia)

Ràng buộc toàn vẹn thuộc tính tổng hợp: Doanh số khách hàng tổng trị giá hoá đơn mà khách hàng 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 ảnh hưởng:

CÂU HỎI – BÀI TẬP

1 Nêu Ràng buộc tồn vẹn có bối cảnh nhiều quan hệ? Cho ví dụ? Tìm tất ràng buộc tồn vẹn có bối cảnh nhiều quan hệ Lược đồ CSDL quản lý giáo vụ lược đồ CSDL quản lý bán hàng

Bài tập:

Bài số 1: Cho lược đồ CSDL Quản lý bán hàng

KHACHTV (MAKH,HOTEN, DCHI,SODT,NGSINH,DOANHSO,NGGN) NHANVIEN (MANV,HOTEN,NGSINH,NGVL,HESO,MUCLUONG) SANPHAM (MASP,TENSP, DVT, NUOCSX, GIA)

HOADON (SOHD, NGHD, MAKH, MANV, TRIGIA) CTHD (SOHD,MASP,SL)

1 Mỗi hóa đơn có số hóa đơn riêng biệt, khơng trùng với hóa đơn khác Số chủng loại mặt hàng = số CTHD có số hóa đơn

3 Tổng giá trị mặt hàng CTHD có số hóa (SOHD) đơn phải tổng trị giá (TONGTRIGIA) HOADON

(66)

6 Ngày gia nhập khách hàng thành viên phải lớn ngày sinh người

7 Các nhân viên có hệ số lương phải mức lương

8 Ngày nhân viên bán hàng phải lớn ngày vào làm nhân viên

9 Mỗi hóa đơn phải có chi tiết hóa đơn

(67)

BÀI 8: PHỤ THUỘC HÀM VÀ HỆ TIÊN ĐỀ AMSTRONG CHO CÁC PHỤ THUỘC HÀM

Mã bài: 11.08 Giới thiệu:

Phụ thuộc hàm (functional dependancy - FD) công cụ dùng để biểu diễn cách hình thức ràng buộc tồn vẹn Phương pháp biểu diễn có nhiều ưu điểm, công quan trọng, gắn chặt với lý thuyết thiết kế sở liệu

Trong định nghĩa hình thức khái niệm cách sử dụng Mục tiêu:

- Trình bày khái niệm phụ thuộc hàm

- Trình bày luật hệ tiên đề Amstrong - Lấy ví dụ thực tế để minh họa

- Áp dụng luật hệ tiên đề Amstrong tập cụ thể Nội dung chính:

1 Định nghĩa phụ thuộc hàm

Cho lược đồ quan hệ Q{A1,A2,…,An} X,Y hai tập khác rỗng Q+ Ta nói X xác định Y (hay Y phụ thuộc hàm vào X) với r quan hệ Q, t1,t2 ∈ r mà t1.X = t2.X ⇒ t1.Y = t2.Y (nghĩa tồn

hai r giống thuộc tính tập X mà lại khác hay nhiều thuộc tính tập Y) Khi ta ký hiệu X → Y

Như vậy, X xác định hàm Y lược đồ quan hệ R hai r(R) giá trị X chúng thiết phải giá trị Y Ta có nhận xét sau:

Nếu có ràng buộc trạng thái R có giá trị X thể quan hệ r(R) điều kéo theo X  Y

với tập thuộc tính Y R

Nếu X  Y khơng thể nói Y  X

Phụ thuộc hàm viết tắt FD (functional dependency) Tập thuộc tính X gọi vế trái FD, tập thuộc tính Y gọi vế phải FD

Chẳng hạn phụ thuộc hàm thuộc tính họ tên sinh viên (HOTENSV) vào mã số sinh viên (MASV) ta diễn tả phụ thuộc MASV→ HOTENSV MaSV xác định HoTenSV

Phụ thuộc hàm X → X gọi phụ thuộc hàm hiển nhiên người ta thường dùng F để tập phụ thuộc hàm định nghĩa Q Vì Q hữu hạn nên F hữu hạn, ta đánh số phụ thuộc hàm F f1,f2, ,fm

Quy ước: cần mô tả phụ thuộc hàm không hiển nhiên tập F, phụ thuộc hàm hiển nhiên ngầm hiểu có F

(68)

Cho lược dồ quan hệ Q(ABCDE), r quan hệ xác định Q cho sau:

Những phụ thuộc hàm sau thoả r ? A → D; AB → D; E → A; A → E;

Giải: AB → D; A → E;

* Cách xác định phụ thuộc hàm cho lược đồ quan hệ

Cách để xác định phụ thuộc thích hợp cho lược đồ quan hệ xem xét nội dung tân từ lược đồ quan hệ

Ví dụ: Cho lược đồ sở liệu quản lý giáo vụ sau:

SINHVIEN(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH, MALOP)

LOP(MALOP,TENLOP,MAKHOA) KHOA(MAKHOA,TENKHOA)

MONHOC (MAMH,TENMH,DONVIHT)

GIANGVIEN (MAGV, HOTENGV, HOCVI, CHUYENNGANH, MAKHOA)

KETQUA (MASV, MAMH, LANTHI,DIEMTHI) PHANCONG (MALOP,MAMH,MAGV)

thì phụ thuộc hàm ứng với lược đồ quan hệ xác định sau: MASV → HOTENSV, NU, NGAYSINH, MALOP, TINH

MALOP → TENLOP,MAKHOA MAKHOA → TENKHOA

MAMH → TENMH, DONVIHT

MASV, MAMH,LANTHI → DIEMTHI

2 Một số tính chất phụ thuộc hàm - Hệ luật dẫn Armstrong

Để xác định phụ thuộc hàm khác từ tập phụ thuộc hàm có, ta dùng hệ tiên đề Armstrong (1974), gồm luật sau: với X,Y,Z,W ⊆ F+ Tập

quy tắc sử dụng để suy diễn phụ thuộc hàm từ tập phụ thuộc hàm cho trước Ta sử dụng ký hiệu F |= X→ Y để ký hiệu phụ thuộc hàm X→ Y suy diễn từ tập phụ thuộc hàm F Để cho tiện, ta viết tắt phụ thuộc hàm có dạng {X,Y}→ Z thành XY → Z ( nghĩa ta nối biến bỏ dấu ngoặc nhọn đi)

(69)

Quy tắc đưa phụ thuộc hàm hiển nhiên (phụ thuộc hàm tầm thường), phụ thuộc hàm mà vế trái bao hàm vế phải Những phụ thuộc hàm hiển nhiên quan hệ

2.Luật tăng trưởng (augmentation)

X → Y ⇒ XZ → YZ hay({ X→ Y } |= XZ →YZ) 3.Luật bắc cầu(transitivity)

X → Y, Y → Z ⇒ X → Z hay { X→ Y, Y→ Z } |= X→ Y Các quy tắc suy rộng:

4.Luật hợp (the union rule)

Cho X → Y, X → Z ⇒ X → YZ hay { X→ Y , X→ Z } |= X→ YZ 5.Luật bắc cầu giả (the pseudotransitivity rule)

Cho X → Y,WY→ Z ⇒ XW → Z hay { X→ Y, WY→ Z } |= WX→ Z 6.Luật phân rã (the decomposition rule):

Cho X → YZ ⇒ X → Z, X → Z hay { X→ YZ } |= X→ Y X→ Z Ví dụ 1:

Hãy dùng hệ tiên đề Amstrong để chứng minh: Nếu X→Y U → V XU → YV

1 X → Y (gia thiet)

2 XU → YU (tăng trưởng U vào (1)) U → V (gia thiet)

4 YU → YV (tăng trưởngY vào 3) XU → YV ( bắc cầu 4)

Ví dụ 2: Hãy dùng hệ tiên đề Amstrong để chứng minh: Nếu MaSP→TenSP và NuocSX → gia

MaSP, NuocSX → TenSP, Gia MaSP → TenSP (gia thiet)

2 MaSP, NuocSX → TenSP,NươcSX (tăng trưởng nuocsx vào (1)) NuocSX → Gia (gia thiet)

4 NuocsSX, TenSP → TenSP, Gia (tăng trưởng tensp vào 3) MaSP, NuocSX → TenSP, Gia (bắc cầu 4)

Ví dụ 3:

Cho F = {AB→ C, C→A } CMR: BC → ABC Ta có:

(1) C → A (giả thiết)

(2) BC → AB (tăng trưởng 1) (3) AB → C (giả thiết)

(4) AB → ABC (tăng trưởng 3) (5) BC → ABC (bắc cầu & 4)

CÂU HỎI – BÀI TẬP

1 Nêu định nghĩa phụ thuộc hàm? Trình bày hệ luật dẫn Amstrong?

(70)

Phụ thuộc hàm sau không thoả R D → A; A,C → D; CD → A; D → B;

b Cho lược đồ quan hệ Q(ABCD), r quan Q cho sau:

Những phụ thuộc hàm sau thoả r ? AB → D; C → B; B → C; BC → A; BD → A

c.Cho lược đồ quan hệ Q(ABCD), r quan hệ Q cho sau:

Những phụ thuộc hàm sau không thoả r ?

A → B; A → C; B → A; C → D; D → C; D → A Bài số 2: Chứng minh suy diễn sau đúng:

1 {W → Y, Y→Z} |= {WX→Y} {X→Y, Y Z} |= {X→Z}

3 {X→Y, X→W, WY→Z} |={X→Z} {X→Y, Z→W} |={XZ→YW} {X→Y, Y→Z} |= {X→YZ}

Bài số 3: Cho F = { AB→ C, B→ DE, CD→ EK, CE→ GH, G→ AC } Chứng minh AB→EG

Bài số 4: Cho lược đồ quan hệ R=(ABCDEFG) tập phụ thuộc hàm F xác định R:

F = { AB, DF, BFE, EFG, AC, BC  D }

Chứng minh AF G suy dẫn logic từ F dựa vào hệ tiên đề Armstrong

Bài số 5: Cho lược đồ quan hệ R=(ABCDEFGH) tập phụ thuộc hàm F xác định R:

F = (AB→D; B→E; DE →C; CD → GH; H→A

Vận dụng tiên đề Amstrong tìm chuỗi suy diễn AB → H

Bài số 6: Cho lược đồ quan hệ R=(ABCDEFGH) tập phụ thuộc hàm F xác định R: F= {ACH → D; BC →E; E→CD; D→G}

(71)

Bài số 7: Cho lược đồ quan hệ R=(ABCDEG) tập phụ thuộc hàm F xác định R: F= {BC → D; AC → E; E → CD; D → G}

Vận dụng tiên đề Amstrong tìm chuỗi suy diễn AC→G

Bài số 8: Cho lược đồ quan hệ R=(ABCDEG) tập phụ thuộc hàm F xác định R: F= {AB → D; BC → E; D →H; H→B; E→G}

Vận dụng tiên đề Amstrong tìm chuỗi suy diễn CD→E

Bài số 9: Cho lược đồ quan hệ R=(ABCDEG) tập phụ thuộc hàm F xác định R: F= {AB → D; BC → E; D →H; D→B; E→G}

Vận dụng tiên đề Amstrong tìm chuỗi suy diễn CD→G

Bài số 10: Cho lược đồ quan hệ R=(ABCDEG) tập phụ thuộc hàm F xác định R: F= {BC → E; AB → D; D →BE; E→G}

(72)

BÀI 09: XÁC ĐỊNH BAO ĐÓNG Mã bài: 11.09

Giới thiệu:

Bao đóng (Closure) khái niệm gắn chặt với lý thuyết thiết kế sở liệu Trong định nghĩa khái niệm thuật tốn tìm bao đóng

Mục tiêu:

- Trình bày khái niệm bao đóng

- Trình bày thuật tốn tìm bao đóng tập thuộc tính - Xác định bao đóng thuật tốn tìm bao đóng - Nghiêm túc, tự giác học tập

- Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Bao Đóng Của Tập Phụ Thuộc Hàm F

Bao

đóng (closure) tập phụ thuộc hàm F (ký hiệu F+) tập hợp tất phụ thuộc hàm suy từ F dựa vào tiên đề Armstrong Rõ ràng F ⊆ F+

Hay nói cách khác

Cho tập phụ thuộc hàm, F, X, Y tập thuộc tính R Ta nói: f : X →Y phụ thuộc hàm suy dẫn từ F suy từ F luật dẫn hệ tiền đề Armstrong Ký hiệu F | = f

Tập F+ = {f / F | = f } gọi bao đóng F.

Ví dụ:

Cho lược đồ quan hệ Q(ABCDEGH) F cho sau: F = {B → A; DA→ CE; D → H; GH→ C; AC→ D }

Khi F+ ={B→ A; DA→ CE; D → H; GH→ C; AC→ D ;

BC → AC; BC → D; DA → AH; DG → C;BC → AD;….}

(Lưu ý rằng, thuộc tính biểu diễn ký tự danh sách thuộc tính có khơng có dấu phẩy được, phụ thuộc hàm phải có dấu chấm phẩy)

Các tính chất tập F+

1 Tính phản xạ:

Với tập phụ thuộc hàm F+ ta ln có F ⊆ F+

2 Tính đơn điệu: Nếu F ⊆ G F+⊆ G+

3 Tính luỹ đẳng:

Với tập phụ thuộc hàm F ta ln ln có F++ = F+.

2 Bao đóng tập thuộc tính.

(73)

Cho lược đồ quan hệ R=(U, F) Bao đóng tập thuộc tính X (X ⊆ U), ký hiệu X+ tập tất hợp thuộc tính mà suy diễn logic từ X Nghĩa là:

X+ = {A : A

 U+ X → A  F+}

Tương tự tập bao đóng tập phụ thuộc hàm F+, tập bao đóng tập thuộc tính X+ cũng chứa phần tử tập X, tức X  X+

Các tính chất bao đóng tập thuộc tính X+ Nếu X, Y tập của

tập thuộc tính Q ta có tính chất sau đây: Tính phản xạ: X X+

2 Tính đơn điệu: Nếu X  Y X+ Y+

3 Tính luỹ đẳng: X++ = X+ (XY)+ X+Y+

5 (X+Y)+ = (XY+)+ = (X+Y+)+

6 X → Y F+  Y  X+

7 X → Y  Y+X+

2.2 Thuật tốn xác định bao đóng tập thuộc tính Nhập: U, F X  U

Xuất: X+

Phương pháp: Lần lượt tính tập X(0), X(1 ), , X(i),

– B1: X(0) = X;

– B2: X(i+1 ) = X(i) A,  YZ F, AZ Y X(i),

Ngược lại qua B3 – B3: xuất X+ = X

(i)

Ví dụ:

Cho lược đồ quan hệ Q(ABCDEGH) tập phụ thuộc hàm F F = { f1: B → A;

f2: DA → CE; f3: D → H; f4: GH → C; f5: AC → D}

Tìm bao đóng tập X = {AC} dựa F Giải:

+ Bước 1: X+ = AC

+ Bước 2: Do f1, f2, f3, f4 không thoả f5 thoả : X+=ACD

(74)

f3 thoả : X+ =ACDEH

+ Bước 3: Đến rõ ràng khơng có phụ thuộc hàm làm thay đổi X+ nữa,

thuật toán dừng lại kết X+ = ACDEH.

CÂU HỎI – BÀI TẬP Câu hỏi:

1 Nêu thuật tốn tìm bao đóng tập thuộc tính Bài tập:

Bài số 1: Cho lược đồ quan hệ R = ( ABCDEGH ) tập phụ thuộc hàm F xác định R

F = { A → D, AB → DE, CE → G, E → H} Tính bao đóng:

a) (AB)+

b) (ACE)+

Bài số 2: Cho lược đồ quan hệ R = ( ABCDEG) tập phụ thuộc hàm F xác định R

F = { A → C, BC→ D, D → E, E → A} Tính bao đóng:

a) (AB)+

(75)

BÀI 10: XÁC ĐỊNH KHÓA CỦA LƯỢC ĐỒ CƠ SỞ DỮ LIỆU Mã bài: 11.10

Giới thiệu:

Từ giá trị khóa xác định giá trị lược đồ Phương pháp biểu diễn có nhiều ưu điểm, công quan trọng, gắn chặt với lý thuyết thiết kế sở liệu

Trong định nghĩa hình thức khái niệm cách sử dụng Mục tiêu:

- Trình bày khái niệm khóa

- Trình bày thuật tốn tìm khóa tìm tất khóa

- Xác định khóa thuật tốn tìm khóa thuật tốn tìm tất khóa

- Nghiêm túc, tự giác học tập - Đảm bảo an tồn cho nguời thiết bị Nội dung chính:

1 Định nghĩa khoá quan hệ (relation key)

Cho quan hệ Q(U), U=(A1,A2,…,An) xác định tập thuộc tính U tập phụ thuộc hàm F định nghĩa Q, cho K  U, K khoá Q thoả

đồng thời hai điều kiện sau:

1 K → U  F+ (hay KF+= U) (K thoả điều kiện gọi siêu khố)

2 Khơng tồn K'  K cho K'+ = U

Một lược đồ quan hệ có nhiều siêu khố, nhiều khố Khóa siêu khóa nhỏ Thuộc tính A  K gọi thuộc tính khóa

2 Thuật tốn tìm khóa.

Thuật tốn K = U

While A  K

if (K - A)+ = U then K = K - A

K cịn lại khố cần tìm

Lưu ý: Nếu muốn tìm khố khác (nếu có) lược đồ quan hệ, ta thay đổi thứ tự loại bỏ phần tử K

Ví dụ 1:

Cho lược đồ quan hệ Q(ABC) tập phụ thuộc hàm F={ A→ B;

A → C; B → A}

Hãy tìm khóa Q Giải:

K={A,B,C}

Loại thuộc tính A, (K-A)+ = Unên K={B,C}

(76)

Loại thuộc tính C, (K-C)+ = U nên K={B}.

Vậy khóa Q B Ví dụ 2:

Cho R(U), U = {A, B, C, D, E, F, G} F = {B  A, D  C, D  BE, DF  G}

Tìm khóa R Giải:

– Bước :

K = ABCDEFG – Bước 2:

• Lặp : (BCDEFG)F+ = BCDEFGA  K = BCDEFG

• Lặp 2: (CDEFG)F+ = CDEFGBA  K = CDEFG

• Lặp 3: (DEFG)F+ = DEFGCBA  K = DEFG

• Lặp 4: (EFG)F+ = EFG

• Lặp 5: (DFG)F+ = DFGCBEA  K = DFG

• Lặp 6: (DG)F+ = DGCBEA

• Lặp 7: (DF)F+ = DFCBEAG  K = DF

– Bước 3:

Khóa K = DF

3 Thuật tốn tìm tất khóa.

Một số khái niệm:

- Tập nguồn (TN) chứa tất thuộc tính có xuất vế trái không xuất vế phải tập phụ thuộc hàm Những thuộc tính khơng tham gia vào phụ thuộc hàm đưa vào tập nguồn

-Tập đích ( TĐ) chứa tất thuộc tính có xuất vế phải khơng xuất vế trái tập phụ thuộc hàm

-Tập trung gian(TG) chứa tất thuộc tính vừa tham gia vào vế trái vừa tham gia vào vế phải

Nhập: tập PTH F xác định lược đồ R(U). Xuất: tất khóa R.

Thuật tốn

- Bước 1: Tìm tập thuộc tính nguồn, tập thuộc tính trung gian if tập trung gian=∅ then

Tập Khoá = Tập nguồn ; kết thúc Ngược lại

Qua bước

- Bước 2: Tìm tất tập tập trung gian: Xi

S= ∅

∀ Xi ∈ tập trung gian

(77)

- Bước 3: Tính TN ∪ Xi - Bước 4: Tính (TN ∪ Xi)+

- Bước 5: Nếu Xi+ = Q+ Xi siêu khoá

Nếu tập TN ∪ Xi có bao đóng Q+ TN ∪ Xi siêu

khoá Q

Giả sử sau bước có m siêu khố: S = {S1,S2,…,Sm} - Bước 6: Xây dựng tập chứa tất khoá Q từ tập S

Xét Si,Sj S (i ≠ j), Si ⊂ Sj ta loại Sj (i,j=1 m), kết

cịn lại tập tất khố cần tìm

Dùng đồ thị tập phụ thuộc hàm để xác định khóa lược đồ quan hệ Đồ thị tập phụ thuộc hàm:

-Phụ thuộc hàm A→B -Phụ thuộc hàm AB →C

-Phụ thuộc hàm ABC →D

-Phụ thuộc hàm A →BC Ví dụ:

Tìm tất khố lược đồ quan hệ Q(A,B,C) tập phụ thuộc hàm F cho sau:

F={ A→ B; A → C; B → A}

TN ={ φ} ; TG ={A,B} Gọi Xi tập tập TG:

A B

A

C B

A

D B

C

A

B

(78)

Vậy quan hệ có hai khố : [A] [B]

CÂU HỎI - BÀI TẬP

a Cho lược đồ quan hệ R(ABCDEFGHIJ)với tập phụ thuộc hàm F1= { AB→C, A→DE, B→F, F→GH, D→IJ}

Tìm khố quan hệ?

b Làm lại câu a, với tập phụ thuộc hàm sau: G1={AB→C, BD→EF, AD→GH, A→I, H→J} c Làm lại câu a, với tập phụ thuộc hàm sau: H1={AB→C, BDI→EF, ADG→H, AJ→I}

d Cho lược đồ quan hệ R(U), U={ABCDE} tập phụ thuộc hàm F={AB→DE, D→E, BC→D, B→C} Tìm tất khóa R

2 Cho lược đồ quan hệ R (U,F) U={ABCDG} F={B→C, C→B, A→GD} a BC có khóa R khơng?

(79)

BÀI 11: XÁC ĐỊNH PHỦ TỐI THIỂU Mã bài: 11.11

Giới thiệu:

Để phục vụ trình thiết kế sở liệu, cần đưa thêm khái niệm tập phụ thuộc hàm tối thiểu Vậy Tập phụ thuộc hàm tối thiểu gì?

Trong định nghĩa hình thức khái niệm xác định phủ tối thiểu

Mục tiêu:

- Trình bày khái niệm tập phụ thuộc hàm tương đương phủ tối thiểu - Trình bày thuật tốn tìm phủ tối thiểu

- Xác định phủ tối thiểu - Nghiêm túc, tự giác học tập - Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Tập phụ thuộc hàm tương đương.

Một tập hợp phụ thuộc hàm E phủ tập phụ thuộc

hàm F- F phủ E- phụ thuộc hàm E F+, điều có nghĩa phụ thuộc hàm E suy diễn từ F Hai tập phụ thuộc hàm E F tương đương E+ = F+ Như tương đương có nghĩa phụ thuộc hàm E suy diễn từ F phụ thuộc hàm F suy diễn từ E

Chúng ta xác định xem F có phủ E hay khơng cách tính X+ F thuộc hàm X→Y E sau kiểm tra xem X+ có thuộc tính Y hay không (nghĩa X+ ⊃ Y) Nếu điều xẩy với phụ thuộc hàm E, F phủ E Chúng ta xác định xem E F có tương đương hay khơng cách kiểm tra E phủ F F phủ E

Ví dụ: Xét hai tập phụ thuộc hàm

F = {A →C, AC → D, E→AD, E→ H } E = { A →CD, E → AH }

Chứng minh F phủ E:

Tìm bao đóng vế trái phụ thuộc hàm E theo F Ta có: {A}+ = {A, C, D};

{E}+ = {E, A, D, H}

ta thấy bao đóng chứa vế phải tương ứng Từ suy F phủ E Chứng minh E phủ F:

(80)

{AC}+ = {A,C,D},

{E}+ = {E,A,D,H},

Ta thấy bao đóng chứa vế phải tương ứng Từ suy E phủ F Vậy E tương đương với F

2 Phủ tối thiểu ( Tập phụ thuộc hàm tối thiểu)

Để phục vụ q trình thiết kế sở liệu, cần đưa thêm khái niệm tập phụ thuộc hàm tối thiểu.

Bổ đề: Mỗi tập phụ thuộc hàm F phủ tập phụ thuộc hàm G mà vế phải phụ thuộc hàm G gồm thuộc tính

Định nghĩa: F gọi tập phụ thuộc hàm tối thiểu F thoả đồng thời ba điều kiện sau:

a) Vế phải F có thuộc tính

b) Khơng  f: X → A  F Z  X mà: F + = (F − (X → A)  (Z → A))+

c) Không  f: X → AF mà: F + = (F − (X → A))+

Trong vế phải phụ thuộc hàm điều kiện a) có thuộc tính, nên bảo đảm khơng có thuộc tính vế phải dư thừa điều kiện b) bảo đảm khơng có thuộc tính tham gia vế trái phụ thuộc hàm dư thừa điều kiện c)bảo đảm cho tập F phụ thuộc hàm dư thừa

Thuật tốn tìm phủ tối thiểu

Dữ liệu vào : Lược đồ quan hệ ban đầu Q tập phụ thuộc hàm F, số lượng phụ thuộc hàm F m

Dữ liệu : Tập phụ thuộc hàm tối thiểu F

+ Bước 1: Tách vế phải phụ thuộc hàm F cho vế phải mỗi phụ thuộc hàm chứa thuộc tính (điều ln thực bổ đề trên)

+ Bước Tìm tập phụ thuộc hàm đầy đủ cách loại bỏ thuộc tính dư thừa vế trái phụ thuộc hàm

Chú ý:

Việc tìm tất tập X'  X theo thuật tốn hồn tồn thay việc

tìm X' cách tìm tập X

+ Bước Loại bỏ phụ thuộc hàm dư thừa F Ví dụ:

Cho lược đồ quan hệ Q tập phụ thuộc F sau: Q(ABCD) F={ AB→CD; B→C; C→D} Hãy tìm phủ tối thiểu F Giải:

Bước 1: Tách phụ thuộc hàm có vế phải chưa đơn F1={ AB→C; AB→D; B→C; C→D}

Bước 2: Loại bỏ phụ thuộc hàm có vế trái dư thừa Xét 1: A+ =A không chứa C

B+ = BCD  C Vậy (1) dư thừa thuộc tính A

Xét 2: A+ =A không chứa D

B+ = BCD

 D Vậy (2) dư thừa thuộc tính A

(81)

Bước 3: Loại bỏ phuộc hàm dư thừa Xét 1: B+ =BCD  Dsuy (1) thừa

Xét 2: B+ -{1}- {2} =B không chứa C

Xét 3: C+ -{1}- {3} =C không chứa D

Q(ABCD) F={ B→C; C→D }

CÂU HỎI - BÀI TẬP Cho lược đồ quan hệ R(U, F), U={ABCDEFGHIJ}, F1={AB→CI, BD→EF, C→HI, AD→GH, A→I, H→J} Tìm tập F tối thiểu?

2 Cho lược đồ quan hệ R(U, F), U={ABCDE} tập phụ thuộc hàm F={AB→DE, D→EB, BD→C, B→D}

(82)

BÀI 12: XÁC ĐỊNH DẠNG CHUẨN CỦA LƯỢC ĐỒ CSDL Mã bài: 11.12

Giới thiệu:

Tất hệ thống phải sử dụng sở liệu mình, sở liệu có sở liệu xây dựng Cũng có hệ thống sử dụng sở liệu cũ Vấn đề đặt cần xây dựng sở liệu giảm tối đa dư thừa liệu đồng thời phải dễ khôi phục bảo trì Vì khái niệm dạng chuẩn đưa để biết lược đồ tối ưu (không có dư thừa liệu, quán liệu, …) Bên cạnh thao tác cập nhật liệu (qua phép chèn thêm, xóa, sửa đổi) gây nên dị thường, quan hệ thiết phải biến đổi thành dạng phù hợp, q trình gọi q trình chuẩn hóa liệu Bài giới thiệu khái niệm tổng quát dạng chuẩn (1NF), dạng chuẩn (2NF), dạng chuẩn (3NF) dạng chuẩn Boyce – Codd (BC NF) cách nhận biết lược đồ đạt dạng chuẩn

Mục tiêu:

- Trình bày khái niệm Dạng chuẩn 1,2,3 Boyce-Codd ( BC) - Xác định dạng chuẩn lược đồ quan hệ

- Nghiêm túc, tự giác học tập - Đảm bảo an toàn cho nguời thiết bị Nội dung chính:

1 Một số khái niệm liên quan đến dạng chuẩn + Thuộc tính khố/khơng khố

A thuộc tính khố A có tham gia vào khoá quan hệ, ngược lại A gọi thuộc tính khơng khố

Ví dụ: Cho lược đồ quan hệ Q(ABC) tập phụ thuộc hàm F={ A→ B; A → C; B → A}

Có hai khóa A B thuộc tính khố A, B; thuộc tính khơng khóa là: C

+ Thuộc tính phụ thuộc đầy đủ-phụ thuộc hàm đầy đủ.

A thuộc tính phụ thuộc đầy đủ vào tập thuộc tính X X →A phụ thuộc hàm đầy đủ (tức không tồn X'  X cho X' → A  F+)

Ví dụ:

Cho lược đồ quan hệ Q(ABC) tập phụ thuộc hàm F={ A → B; A→ C; AB → C}

PTH A →B; A → C phụ thuộc hàm đầy đủ

(83)

Chú ý rằng, phụ thuộc hàm mà vế trái có thuộc tính phụ thuộc hàm đầy đủ.

+ Thuộc tính phụ thuộc trực tiếp-phụ thuộc hàm trực tiếp (Phụ thuộc bắc

cầu)

A thuộc tính phụ thuộc trực tiếp vào tập thuộc tính X X →A , khơng tồn Z  U, X→ Z, Z→ A X→A phụ thuộc trực tiếp Nếu ngược lại

được gọi phụ thuộc hàm bắc cầu Ví dụ:

Cho lược đồ quan hệ Q(ABC) tập phụ thuộc hàm F={ A → B; A→ C; C → B}

PTH C →B; A → C phụ thuộc hàm trực tiếp

PTH A → B phụ thuộc hàm bắc cầu tồn C  U (A → C, C → B) 2 Dạng chuẩn 1.

Lược đồ quan hệ Q gọi đạt dạng chuẩn (1NF) tồn thuộc tính Q mang giá trị đơn.Chẳng hạn xét quan hệ

Hình 11.1 Lược đồ không đạt 1NF

Lược đồ quan hệ khơng đạt dạng chuẩn thuộc tính MONHOC, DIEMTHI không mang giá trị đơn (chẳng hạn sinh viên Nguyễn Văn Thành có thuộc tính mơn học Kỹ Thuật Lập Trình, Cơ Sở Dữ Liệu, Cấu Trúc Dữ Liệu)

Hình 11.2 Lược đồ đạt 1NF

3 Dạng chuẩn (2NF)

(84)

Trong lược đồ THI MONTHI khóa, lược đồ SINHVIEN MONTHI, MSSV (mã số sinh viên) khóa

Trong quan hệ SINHVIEN thuộc tính MONTHI, MSSV, DIEM xác định kết học tập sinh viên Còn MSSV, TEN, TUOI, DIACHI xác định đối tượng sinh viên, nghĩa SINHVIEN ta có hai phụ thuộc hàm: MONTHI, MSSV → DIEM VÀ MSSV → TEN, TUOI, DIACHI phụ thuộc khơng đầy đủ khóa quan hệ

Trong quan hệ này, ta nhận thấy: việc lưu trữ thông tin sinh viên LAN, học n mơn lặp lại n lần TEN, TUOI, DIACHI, ta thấy dư thừa! Từ việc dư thừa dẫn đến sai phạm thao tác liệu

Bổ sung: thêm sinh viên học mơn đó, ta khơng biết sinh viên đã có chưa nên lần lại nhập TEN, TUOI, DIACHI sinh viên Trong q trình thêm nhập sai tuổi chẳng hạn, dẫn đến không quán liệu Một sinh viên có hai tuổi khác

Loại bỏ: Khi sinh viên khơng cịn học mơn học đó, ta phải xóa sinh viên khỏi quan hệ Nếu quan hệ cịn chứa sinh viên mà ta xóa đi, dẫn đến hẳn thông tin sinh viên hệ thống

Sửa liệu: Khi cầu điều chỉnh số thơng tin sinh viên, ta phải sửa tất sinh viên Trong q trình sửa sót dẫn đến khơng qn liệu: mơt sinh viên có hai thơng tin khác

Do đó: để tổ chức liệu tốt hơn, ta nên tách lược đồ SINHVIEN thành hai lược đồ sau: SINHVIEN(MASV, TEN, TUOI, DIACHI) DIEMTHI(MASV, MONTHI, DIEM)

(85)

-Mọi thuộc tính khơng khố Q phụ thuộc đầy đủ vào khố Nếu lược đồ quan hệ không đạt chuẩn ta nói đạt dạng chuẩn Ví dụ 1:

Xét lược đồ quan hệ Q(A,B,C,D) F={ AB → CD; B → D; C→ A}

Khố {A,B} {B,C} Do D thuộc tính khơng khố; AB → D khơng phụ thuộc hàm đầy đủ có B → D Vậy Q khơng đạt dạng chuẩn

Ví dụ 2:

Xác định dạng chuẩn lược đồ quan hệ sau Q(GMVNHP) F={G→N; G→H; G→P; M→V; NHP→M}

Giải

Khố Q G

Thuộc tính khơng khoá M,V,N,H,P

Do phụ thuộc hàm G → M; G → V; G → N; G → H; G → P phụ thuộc hàm đầy đủ, nên lược đồ quan hệ Q đạt dạng chuẩn

+ Hệ quả

- Q đạt 2NF Q 1NF tập thuộc tính khơng khố Q rỗng - Nếu khoá quan hệ có thuộc tính quan hệ đạt chuẩn Ví dụ:

Q(ABCDEH) F={A → E; C → D; E → DH} Khoá Q K={ABC}

D thuộc tính khơng khố C → D , C tập thực khố nên Q khơng đạt dạng chuẩn

4 Dạng Chuẩn (third normal form)

Một lược đồ quan hệ Q đạt dạng chuẩn thỏa mãn điều kiện -Là dạng chuẩn

-Mọi thuộc tính khơng khóa khơng phụ thuộc bắc cầu vào khóa Ví dụ:

Cho lược đồ quan hệ R=(ABCD) F={A→B; B→C; A→D; D→C} f1 f2 f3 f4

- Xét 1NF (hiển nhiên) -Xét 2NF:

Vì khóa có thuộc tính, thuộc tính khơng khóa phụ thuộc đầy đủ vào khóa Cho nên lược đồ (R,F) đạt 2NF

(86)

Thuộc tính khơng khóa B D khơng phụ thuộc bắc cầu vào khóa A

Thuộc tính khóa C phụ thuộc bắc cầu vào khóa A, lược đồ vi phạm 3NF Kết luận: dạng chuẩn cao cho lược đồ (R,F) 2NF

Ví dụ:

Cho lược đồ quan hệ Q(ABCD) F=[AB → C ; D → B C → ABD] K1=[AB]; K2=[AD];K3=[C]

là khoá, Q khơng có thuộc tính khơng khố nên Q đạt chuẩn + Hệ quả

Nếu lược đồ quan hệ Q,F mà Q khơng có thuộc tính khơng khố Q đạt chuẩn

Ví dụ:

Xác định dạng chuẩn lược đồ quan hệ sau Q(NGPM)

F={NGP→M; M→P}

Khoá Q {NGP}, {NGM} NGP → M có vế trái siêu khố M → P có vế phải thuộc tính khố Nên Q đạt chuẩn

5 Dạng Chuẩn BC (Boyce Codd normal form- BC NF)

Một lược đồ quan hệ Q dạng chuẩn BC với phụ thuộc hàm không hiển nhiên X → A ∈ F X siêu khố Q

Nhận xét: Nếu Q đạt chuẩn BC Q đạt chuẩn 3 Ví dụ:

Xác định dạng chuẩn lược đồ quan hệ sau Q(ACDEIB)

F={ACD→EBI; CE→AD}

(87)

ĐỊNH LÝ : Các lớp dạng chuẩn lược đồ quan hệ có quan hệ lồng nhau: nghĩa lớp sau nằm trọn lớp trước BCNF ⊂ 3NF ⊂ 2NF ⊂ 1NF

Ví dụ:

Chẳng hạn cho lược đồ quan hệ Q(ABCD) F = [AB → C; D → B; C→ ABD] Q đạt chuẩn 3NF khơng BCNF

Nếu F = [B → D, A → C, C → ABD] Q đạt dạng chuẩn 2NF khơng NF

Dạng chuẩn lược đồ sở liệu dạng chuẩn thấp lược đồ quan hệ

+ Thuật toán kiểm tra dạng chuẩn lược đồ quan hệ Vào: Lược đồ quan hệ Q, tập phụ thuộc hàm F

Ra: Khẳng định Q chuẩn gì? Bước 1: Tìm tất khóa Q

Bước 2: Kiểm tra chuẩn BC Q đạt chuẩn BC, kết thúc thuật toán Ngược lại qua bước

Bước 3: Kiểm tra chuẩn Q đạt chuẩn 3, kết thúc thuật tốn Ngược lại qua bước

Bước 4: Kiểm tra chuẩn Q đạt chuẩn 2, kết thúc thuật toán Ngược lại Q đạt chuẩn

CÂU HỎI - BÀI TẬP

1 Cho lược đồ quan hệ R(U), U={ABCDEF} tập phụ thuộc hàm F={AB→C, C→B, ABD→E, F→A}

Xác định dạng chuẩn R

2 Cho lược đồ quan hệ R(U), U={ABCD} tập phụ thuộc hàm F={AB→C, A→D, BD→C}

Xác định dạng chuẩn R

3 Cho lược đồ quan hệ R(U), U={JKLMNPQ} tập phụ thuộc hàm F={J→KLM, KL→NP, K→MQ, N→KP}

(88)

Ngày đăng: 01/04/2021, 18:17