tÀi liỆu tham khẢo nỘi dung mÔn hỌc · 3 2. quá trình quản lý dữliệu quản lý...

47
1 HCƠ SỞ DLIU GV: Nguyn Vit Cường NI DUNG MÔN HC Chương 1: Gi i thi u chung vlý thuyết CSDL Chương 2: Mô hình thc thkếthp Chương 3: Mô hình quan hChương 4: Chuyntmô hình thc thkếthp sang mô hình quan hChương 5: Ngôn ngtruy vn SQL Chương 6: Chun hóa dli u Chương 7: Thi ếtkế vt lý sdli u Chương 8: Thtc lưu trvà trigger Chương 9: Bomt và quynca người dùng •Tng cng: 45 LT+60TH NI DUNG MÔN HC 60 45 Tng cng: 6 3 Bomt và quynca người dùng 9 24 6 Thtc lưu trvà trigger 8 0 3 Thiếtkế vt lý sdliu 7 0 6 Chun hóa dliu 6 30 12 Ngôn ngtruy vn SQL 5 0 3 Chuyntmô hình thc thkếthp sang mô hình quan h4 0 6 Mô hình quan h3 0 3 Mô hình thc thkếthp 2 0 3 Gii thiu chung vthuyết CSDL 1 THC HÀNH LÝ THUYT TÊN CHƯƠNG CHƯƠNG TÀI LIU THAM KHO [1]Concepts of Database management – Philip J. Pratt & Joseph J. Adamski – Thomson , 5th edition [2] Database Systems: Design, Implementation & Management – Peter Rob & Carlos Coronel – Thomson, 6th edition [3] Programming Logic and Design – Joyce Farrell – Thomson, 3rd Edition [4] Giáo trình sdli u- Trường ĐH Công nghi p TP HCM [5] Các bài thc hành môn sdli u- Trường ĐH Công nghi p TP HCM [6] Principles of database and knowledge base systems - JEFFREY D. ULLMAN Gii thiu chung vlý thuyết SDLiu (CSDL) Chương 1 Các khái ni m bn và đị nh nghĩa Hthng xlý tp tin truyn thng Cách ti ếpcn sdli u Các thành phnca môi trường hqun trị cơ sdli u Các chc năng cahqun trị cơ sdli u Ki ến trúc sdli u ba lược đồ Ni dung

Upload: others

Post on 04-Nov-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

1

HỆ CƠ SỞ DỮ LIỆU

GV: Nguyễn Việt Cường

NỘI DUNG MÔN HỌC• Chương 1: Giới thiệu chung về lý thuyết CSDL• Chương 2: Mô hình thực thể kết hợp• Chương 3: Mô hình quan hệ• Chương 4: Chuyển từ mô hình thực thể kết hợp

sang mô hình quan hệ• Chương 5: Ngôn ngữ truy vấn SQL• Chương 6: Chuẩn hóa dữ liệu• Chương 7: Thiết kế vật lý cơ sở dữ liệu• Chương 8: Thủ tục lưu trữ và trigger• Chương 9: Bảo mật và quyền của người dùng• Tổng cộng: 45 LT+60TH

NỘI DUNG MÔN HỌC

6045Tổng cộng:

63Bảo mật và quyền củangười dùng9

246Thủ tục lưu trữ và trigger8

03Thiết kế vật lý cơ sở dữliệu7

06Chuẩn hóa dữ liệu6

3012Ngôn ngữ truy vấn SQL5

03Chuyển từ mô hình thựcthể kết hợp sang mô hìnhquan hệ

4

06Mô hình quan hệ303Mô hình thực thể kết hợp2

03Giới thiệu chung về lýthuyết CSDL1

THỰC HÀNHLÝ THUYẾTTÊN CHƯƠNGCHƯƠNG

TÀI LIỆU THAM KHẢO• [1]Concepts of Database management – Philip

J. Pratt & Joseph J. Adamski – Thomson , 5th edition

• [2] Database Systems: Design, Implementation & Management – Peter Rob & Carlos Coronel –Thomson, 6th edition

• [3] Programming Logic and Design – Joyce Farrell – Thomson, 3rd Edition

• [4] Giáo trình cơ sở dữ liệu - Trường ĐH Côngnghiệp TP HCM[5] Các bài thực hành môn cơ sở dữ liệu-Trường ĐH Công nghiệp TP HCM

• [6] Principles of database and knowledge base systems - JEFFREY D. ULLMAN

Giới thiệu chung về lý thuyếtCơ Sở Dữ Liệu (CSDL)

Chương 1 Các khái niệm cơ bản và định nghĩaHệ thống xử lý tập tin truyền thốngCách tiếp cận cơ sở dữ liệuCác thành phần của môi trường hệ

quản trị cơ sở dữ liệuCác chức năng của hệ quản trị cơ sở

dữ liệuKiến trúc cơ sở dữ liệu ba lược đồ

Nội dung

2

Dữ liệu và thông tinDữ liệu (data):

• Là một mô tả hình thức thích hợp về những sựkiện(event), khái niệm (concept) hay chỉ thị đểgiúp con người giao tiếp, diễn giải hay xử lýhoặc thực hiện 1 cách tự động

• Dữ liệu được mô tả bất kỳ dạng nào, chẳng hạnký tự hay số gắn liền với ngữ nghĩa

Thông tin (Information):• Là dữ liệu đã được qua xử lý nhằm đáp ứng

yêu cầu của người sử dụng trong những hoàncảnh cụ thể

• Dữ liệu trong ngữ cảnh• Dữ liệu được tổng hợp / xử lý

1. Các khái niệm cơ bản và định nghĩa 1. Các khái niệm cơ bản và định nghĩa

Thông tin: dữ liệu trong ngữ cảnhSTT Mã sinh viên Họ và tên sinh viên Lớp

Tuổi1 10273 Nguyễn Văn Hoà CDTH7 202 00298 Nguyễn Minh Tâm CDTH7 19…151 50542 Hồ Xuân Phương TCTH33 18152 50075 Lê Việt Dũng CNTH34 20

Dữ liệu1 10273 Nguyễn Văn Hoà CDTH7 202 00298 Nguyễn Minh Tâm CDTH7 19…151 50542 Hồ Xuân Phương TCTH33 18152 50075 Lê Việt Dũng CNTH34 20

1. Các khái niệm cơ bản và định nghĩa

Siêu dữ liệu (metadata)Siêu dữ liệu là dữ liệu dùng để mô tả các tính

chất / đặc tính của dữ liệu khác (dữ liệu về dữliệu).

Các đặc tính: định nghĩa dữ liệu, cấu trúc dữliệu, qui tắc / ràng buộc.

1. Các khái niệm cơ bản và định nghĩa

Hệ thống xử lý tập tin(file processing system)Hệ thống xử lý tập tin là tập hợp các chương trình

dùng để lưu trữ, thao tác và truy xuất các tập tin dữ liệu có kích thước lớn.

Các tập tin dữ liệu được lưu trữ trong các thư mục(folder).

2.1 Hệ thống xử lý tập tin theo lối cũ

2. Quá trình quản lý dữ liệu 2. Quá trình quản lý dữ liệu Các thành phần của hệ thống xử lý tập tin

Phần cứng: các máy tính. Phần mềm:

Hệ điều hành Các tiện ích Các tập tin Các chương trình quản lý tập tin Các chương trình ứng dụng tạo các báo cáo từ các

dữ liệu được lưu trữ trong các tập tin. Con người: người quản lý, chuyên gia, người lập

trình, người sử dụng cuối cùng. Các thủ tục: các lệnh và các qui tắc chi phối việc

thiết kế và sử dụng các thành phần của phầnmềm.

Dữ liệu: tập hợp các sự kiện.

3

2. Quá trình quản lý dữ liệu Quản lý dữ liệu của hệ thống tập tin

Ngôn ngữ lập trình: 3GL (third-Generation Language). Làm gì? Làm như thế nào? Các ngôn ngữ:

COBOL (COmmon Business-Oriented Language)BASIC (Beginner’s All-purpose Symbolic Instruction Code)FORTRAN (FORmula TRANslation)

Các chương trình xử lý tập tin Tạo cấu trúc tập tin. Thêm dữ liệu vào tập tin. Xóa dữ liệu của tập tin Sửa dữ liệu của tập tin. Liệt kê dữ liệu của tập tin.

Hệ thống xử lý tập tin theo lối cũ Nhược điểm của hệ thống xử lý tập tin

Phụ thuộc dữ liệu – chương trình (Program-Data Dependence) Tất cả các chương trình ứng dụng phải duy trì siêu

dữ liệu (phần mô tả) của các tập tin mà chúng sửdụng.

Dư thừa dữ liệu / Trùng lặp dữ liệu (Data Redundancy / Duplication of Data) Các hệ thống / chương trình khác nhau có các bản

dữ liệu riêng biệt của cùng dữ liệu. Hạn chế việc dùng chung dữ liệu

Mỗi ứng dụng có các tập tin riêng biệt, ít sử dụngchung dữ liệu với các ứng dụng khác.

Hệ thống xử lý tập tin theo lối cũ Nhược điểm của hệ thống xử lý tập tin

Thời gian phát triển lâu Người lập trình phải thiết kế các dạng tập tin dữ liệu

riêng và viết cách truy xuất tập tin cho mỗi ứng dụngmới.

Chi phí bảo trì chương trình cao Các nhược điểm nêu trên làm cho việc bảo trì

chương trình gặp nhiều khó khăn, thường chiếmkhoảng 80% ngân sách phát triển HTTT.

Mỗi người lập trình phải duy trì dữ liệu riêngbiệt.

Mỗi chương trình ứng dụng phải có mã lệnhcho siêu dữ liệu của mỗi tập tin.

Mỗi chương trình ứng dụng phải có cácchương trình con xử lý để đọc, thêm, sửa vàxóa dữ liệu.

Không có các điều khiển chung và phối hợp. Các dạng thức tập tin không có cùng chuẩn.

Phụ thuộc dữ liệu

Tốn vùng nhớ để lưu trữ dữ liệu dư thừa. Gây ra các vấn đề khó về bảo trì dữ liệu. Vấn đề chính:

Việc cập nhật dữ liệu của một tập tin có thể dẫnđến các mâu thuẫn dữ liệu.

Vi phạm tính toàn vẹn dữ liệu.

Dư thừa dữ liệu Dư thừa dữ liệuDuplicate Data

4

2. Quá trình quản lý dữ liệu

2.2 Cách tiếp cận cơ sở dữ liệu

2. Quá trình quản lý dữ liệu

2.2 Cách tiếp cận cơ sở dữ liệu

Cơ sở dữ liệu (CSDL)Cơ sở dữ liệu là sự tập hợp có tổ chức các dữ liệu

có liên quan luận lý với nhau được lưu trữ trongcác tập tin

Tập dữ liệu này sẽ được lưu trữ trên cácthiết bị thông tin lưu trữ như băng từ, đĩa…nhằm thỏa mãn yêu cầu khai thácthông tin đồng thời của nhiều người dùnghay nhiều chương trình ứng dụng với nhiềumục đích sử dụng khác nhau.

Một hệ CSDL= CSDL+ hệ QTCSDL

3.Các khái niệm vềhệ quản trị cơ sở dữ liệu

Hệ quản trị CSDL DBMS – DataBase Management SystemHệ quản trị CSDL là tập hợp các chương trình,

phần mềm dùng để quản lý cấu trúc và dữ liệucủa CSDL và điều khiển truy xuất dữ liệu trongCSDL.

Cho phép người sử dụng định nghĩa, tạo lập vàbảo trì CSDL và cung cấp các truy xuất dữ liệu.

Cung cấp một giao diện giưã người sử dụng vàdữ liệu.

3.Các khái niệm vềhệ quản trị cơ sở dữ liệu

3.1 Các cách nhìn khác nhau về dữ liệu

View 1 View 2 View n…..

Logical (or Conceptal) Level

Physical Level

Cấp

độtrừ

utư

ợng

Các mức độ trừu tượng trong một DBMS

Sự trừu tượng đạt được thông qua mô tả mỗi mức dưới dạng một lược đồbằng cách dùng một mô hình dữ liệu cụ thể

3.2 Mô hình dữ liệu, lược đồ và thể hiện

Mô hình Dữ liệu – Data Model: Tập hợpcác khái niệm mô tả:Dữ liệu và mối kết hợp giữa dữ liệuNgữ nghĩa dữ liệu và ràng buộc dữ liệu

Các thao tác trên Mô hình Dữ liệu: Cácthao tác rút trích và cập nhật CSDL bằngcách tham chiếu đến các khái niệm của Mô

hình Dữ liệu

Mô hình Dữ liệu

5

3.2 Mô hình dữ liệu, lược đồ và thể hiện

Mô hình Quan hệ- Relational ModelMô hình Mạng-Network ModelMô hình Dữ liệu Phân cấp-Hierarchical

Data ModelMô hình Hướng đối tượng-Object-oriented Data ModelsMô hình Quan hệ Đối tượng-Object-

Relational Models

Các Mô hình Dữ liệu:

3.2 Mô hình dữ liệu, lược đồ và thể hiện

Lược đồ CSDL-Database Schema: Mô tảvề CSDL. Bao gồm mô tả về cấu trúc CSDL và các ràng buộc trên CSDL đóThể hiện CSDL-Database Instance: Dữliệu hiện thời được lưu trong một CSDL ởmột thời điểm nào đó, hay còn gọi là trạngthái CSDL- database state(hay thể hiện-occurrence)Lược đồ CSDL rất ít khi thay đổi. Trạngthái CSDL thay đổi mỗi khi CSDL được cậpnhật

Lược đồ và thể hiện:

Một kho chứa dữ liệu được định nghĩa 1 lần, được duy trì và truy xuất bởi nhiềungười dùng.

Bản chất tự mô tả của 1 hệ CSDL Một DBMS catalog lưu trữ mô tả về CSDL(mô

tả này gọi là meta-data). CSDL+ mô tả về cấu trúc và ràng buộc của

CSDLPhần mềm DBMS làm việc với nhiều ứng

dụng CSDLSự tách biệt giữa chương trình và dữ liệu,

sự trừu tượng của dữ liệu

3.3 Các đặc điểm của Cách tiếp cận cơ sở dữ liệu

Mô hình dữ liệu Dữ liệu.Hỗ trợ nhiều cách nhìn về dữ liệuChia sẽ dữ liệu và xử lý giao dịch nhiều

người dùng

3.3 Các đặc điểm của Cách tiếp cận cơ sở dữ liệu

3.4 Các đối tượng dùng Cơ sở dữ liệu

Những người lập trình: Những người này phải hiểurõ cấu trúc CSDL, cách lưu trữ dữ liệu.

Những người sử dụng không chuyên: Chỉ cần biếtnội dung CSDL và cách truy xuất

Những người quản trị CSDL: Đối tượng này xuấthiện do tính chất quá phức tạp của hệ quản trịCSDL, không phải ai cũng có toàn quyền đối vớiCSDL. Những người thuộc đối tượng này có nhiệmvụ cài đặt cấu trúc CSDL vào hệ quản trị CSDL, nhập dữ liệu ban đầu, giải quyết các biến cố xảy ra, backup , restore dữ liệu, sửa đối cấu trúc CSDL theo yêu cầu của người thiết kế, nắm các quyền ưutiên, lập cơ chế bảo mật của hệ thống CSDL.

Dữ liệu tạo thành một tài sản của tổ chức: Điều khiển tích hợp

Giảm tối thiểu sự dư thừa dữ liệu (data redundancy).

Nâng cao tính nhất quán (data consistency) / toàn vẹn dữ liệu (data integrity).

Nâng cao việc dùng chung dữ liệu (data sharing). Những người sử dụng khác nhau có những cái nhìn

khác nhau về dữ liệu.

3.5 Sự cần thiết của CSDL

6

Nâng cao an toàn dữ liệuTăng hiệu suất phát triển ứng dụng Độc lập dữ liệu – chương trình (data - program

independence). DBMS chứa siêu dữ liệu (metadata), do đó các ứng

dụng không cần quan tâm đến các dạng thức củadữ liệu.

DBMS quản lý các truy vấn và cập nhật dữ liệu, do đó ứng dụng không cần xử lý việc truy xuất dữ liệu.

3.5 Sự cần thiết của CSDL

Các chức năng của hệ quản trị CSDLLưu trữ, truy xuất và cập nhật dữ liệu

Ngôn ngữ định nghĩa dữ liệu (DDL - Data Definition Language)

Ngôn ngữ thao tác dữ liệu (DML - Data Manipulation Language).

Quản lý giao tác (transaction management).Điều khiển tương tranh (concurrency control)Chép lưu(backup) và phục hồi dữ

liệu(rescovery).Bảo mật dữ liệu(security)

Ngôn ngữ điều khiển dữ liệu (DCL - Data Control Language).

Hỗ trợ truyền thông dữ liệu.Duy trì tính toàn vẹn / nhất quán dữ liệu.Cung cấp các tiện ích.

3.6 Các chức năng của hệ quản trị CSDL

Các yêu cầu của 1 DBMS Khả năng đáp ứng caoĐộ tin cậy caoLưu lượng caoThời gian phản hồi thấp

4. Nội dung và kiến trúc của DBMS

Các yêu cầu của 1 DBMS Chu kỳ sống lâuAn toànXác thực (authentication), chứng thực

(authorization), mã hóa (encryption)

4. Nội dung và kiến trúc của DBMS

Phân loại DBMS:Dựa trên mô hình dữ liệu được dùng:

Truyền thống: Quan hệ, mạng, phân cấpĐang thịnh hành: hướng đối tượng, Quan hệ

Đối tượngCác sự phân loại khác:

Người sử dụng đơn(single-user), đa ngườidùng(multi user)

Tập trung và phân tánChi phí phần mềm DBMS……

4. Nội dung và kiến trúc của DBMS

Các thành phần của DBMS:

4. Nội dung và kiến trúc của DBMS

Ngôn ngữ định nghĩa dữ liệu: Tạo cấu trúc của bảng SinhVienCREATE TABLE SinhVien

(MaSV NUMBER(7,0) NOT NULL,HoTen VARCHAR(25) NOT NULL,DiaChi VARCHAR(30),NoiSinh VARCHAR(20),CONSTRAINT PK_SinhVien PRIMARY KEY (MaSV));

Ngôn ngữ thao tác dữ liệu: Liệt kê mã, tên và địa chỉ của các sinhviên thuộc thành phố ‘HCM’

SELECT MaSV, HoTen, DiaChiFROM SinhVienWHERE NoiSinh = ‘HCM’;

Ngôn ngữ điều khiển dữ liệu: Cho phép người sử dụng A và B được phép xem và thêm dữ liệu vào bảng SinhVien

GRANT SELECT, INSERT ON SinhVienTO A,B;

7

Mô hình thực thể kết hợp(Mô hình liên kết thực thể)

Chương 2

1. Quá trình thiết kế Cơ sở dữ liệu

Thu thập và phân tích các yêu cầuThiết kế mức quan niệmÁnh xạ thiết kế logic/mô hình dữ liệuThiết kế mức vật lý

Thế giới thực

Thu thập và phân tíchyêu cầu

Phân tích quan niệmPhân tích chức năng

Thiết kế logic

Thiết kế ctr. ứng dụng

Thực hiện giao tác

Thiết kế mức vật lý

Các yêu cầu của CSDLCác yêu cầu chức năng

Các đặc tả giao táccấp cao

Lược đồ quan niệm(trong một mô hình dữ liệu cấp cao)

Lược đồ quan niệm(trong mô hình dữ liệu của một DBMS cụ thể)

Lược đồ trong

Các chương trình ứng dụng

Phụ thuộc DBMS cụ thể

• Hiện nay mô hình dữ liệu quan hệ thườngđược dùng trong các hệ quản trị CSDL, tuynhiên mô hình này không được trực quan.

• Để thuận lợi trong việc thiết kế mô hình dữ liệuquan hệ, người ta thường dùng một mô hìnhtrung gian đó là mô hình thực thể kết hợp.

2. Mô hình thực thể kết hợp

• Hiện nay mô hình thực thế kết hợp được coi làmô hình chuẩn để thiết kế hệ thống thông tin.

• Moâ hình ER ñoâi khi coøn ñöôïc goïi laø moâ hình yùnieäm döõ lieäu (Conceptual Data Model) hay ñôngiaûn laø moâ hình döõ lieäu (data model)

2. Mô hình thực thể kết hợp

• Các thực thể và mối kết hợp nào cần quantâm?

• Thông tin nào về thực thể và mối quan hệgiữa các thực thể cần được lưu trữ trongCSDL?

• Các ràng buộc nào cần được bảo đảm đốivới thực thể và mối kết hợp?

Vấn đề khi thiết kế CSDL?

8

Là một đối tượng hay sự vật của thế giới thực tồntại cụ thể hay tồn tại quan niệm mà có thể phân biệtđược với các đối tượng khác

Ví dụ : Thực thể SINHVIEN Nguyễn Thị Lan Anh, LOP TCTH36D,….

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Thực thể(entity, instance, entity instance, entity occurence):

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Thực thể(entity, instance, entity instance, entity occurence):

Thực thể nên là đối tượng có nhiều thể hiện trong CSDL. đối tượng có nhiều thuộc tính. đối tượng cần được mô hình hóa.

Thực thể không nên là người sử dụng của hệ CSDL. kết xuất của hệ CSDL (ví dụ bản báo cáo).

Đặc điểm của thực thể là tính phân biệt (distinctness): có thể phân biệt giữa thực thể này với thực thể khác.

Là các đặc tính riêng dùng để mô tả 1 thực thểVí dụ : Thực thể SINHVIEN có các thuộc tính

MASV,TENSV, DCHI, PHAI, NGAYSINHVí dụ : Thực thể sinh viên cụ thể có các thuộc tính:

• MASV=‘06028071’• TENSV=‘Nguyen Thi Lan Anh’,• DCHI=‘580 CMT8, TP HCM’• PHAI=‘Nu’• NGAYSINH=’05/06/1991’,

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trịThuộc tính (Attributes):

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính:

Thuộc tính đơn và thuộc tính phức hợpThuộc tính đơn (simple attribute) là thuộc tính

không bị phân rã thành nhiều thuộc tính khác.Thuộc tính phức hợp (composite attribute) là

thuộc tính bị phân rã thành nhiều thuộc tínhkhác.

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính:

Thuoäc tính ñôn

Thuoäc tính phức hôïp

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính: Thuộc tính đơn trị và thuộc tính đa trị

Thuộc tính đơn trị (single-valued attribute) làthuộc tính chỉ chứa một giá trị.

Thuộc tính đa trị (multivalued attribute) là thuộctính chứa nhiều giá trị khác nhau thuộc một miềntrị, được biểu diễn bằng hình bầu dục nét đôi.

9

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính:

Thuộc tính chứa và thuộc tính dẫn xuấtThuộc tính chứa (stored attribute) là thuộc tính

mà giá trị của nó không được suy dẫn từ cácthuộc tính khác.

Thuộc tính dẫn xuất (derived attribute) là thuộctính mà giá trị của nó được suy dẫn từ các thuộctính khác, được biểu diễn bằng hình bầu dục nétđứt.

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính:

Giá trị của tập thuộc tínhCòn được gọi là “Miền giá trị” của thuộc tínhTập các giá trị có thể được gán cho thuộc tính

đó đối với mỗi loại thực thể riêngKhông được thể hiện trên giản đồ ER

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Các loại thuộc tính:

Thuộc tính đơn trị

Thuộc tính đa trị

Thuộc tính chứa

Thuộc tính dẫn xuất

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Loại thöïc theå (entity type, regular entity type,entityclass, generic entity) :

Là tập hợp các thực thể thuộc cùng một loại(thường tương ứng với một bảng).

Loại Thực thể thường được biểu diễn bởi mộthình chữ nhật, và tên của thực thể được đặttrong hình chữ nhật

Tên của các loại thực thể (trong một hệthống) phải khác nhau trong một mô hìnhthực thể kết hợp

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

Tập thöïc theå (entity set):

Là tập hợp các thực thể thuộc cùng một loại nàođó ở một thời điểm bất kỳ

2.1 Thực thể, Thuộc tính, Loại Thực thể, Tập Giá trị

NHANVIEN(Ten, Tuoi, Luong)

CONGTY(Ten, Diachi, Giamdoc)ENTITY TYPE:

N1: Tran A, 24, 2Tr

N2: Nguyen B, 34, 3Tr

N3: Le C, 56, 4Tr…

C1: ABC, HCMC, Nguyen B

C2: MNO, HNC, Tran A

ENTITY SET:(Extension)

10

Khóa / thuộc tính xác địnhkey / identifierKhóa là một thuộc tính hoặc tổ hợp các thuộc

tính dùng để xác định duy nhất một thể hiện củamột kiểu thực thể.

Thuộc tính khóa và thuộc tính không khóaThuộc tính khóa là thuộc tính ở trong khóa.

key attribute / prime attribute / identifier attribute Thuộc tính khóa được gạch dưới.

Thuộc tính không khóa (non-key attribute) làthuộc tính không ở trong khóa. Thuộc tính không khóa còn được gọi là thuộc tính

mô tả (descriptor).

2.2 Khóa của loại Thực thể 2.2 Khóa của loại Thực thể

Khóa đơn và khóa phức hợpKhóa đơn (simple key) là khóa chỉ có một thuộc

tính.Khóa phức hợp (composite key) là khóa có nhiều

hơn một thuộc tính. Khóa dự tuyển

candidate keyKhóa dự tuyển là khóa của một kiểu thực thể.Một kiểu thực thể có ít nhất một khóa dự tuyển.

2.2 Khóa của loại Thực thể Khóa chính

primary keyKhóa chính là một khóa tiêu biểu trong các khóa

dự tuyển của một kiểu thực thể.primary keyKhóa chính dùng để liên kết giữa các thực thể.

2.2 Khóa của loại Thực thể

Khóa đơn

Khóa phức hợp

Thuộc tính không khóa

2.3 Mối kết hợp và loại mối kết hợp

Mối kết hợp (relationship): liên hệ với hai hay nhiều thực thể khác nhau mang một ý nghĩa nàođóTập mối kết hợp (relationship set): những mốikết hợp có cùng loại kết hợpLoại mối kết hợp (relationship type): các thựcthể được nhóm lại hay phân loại thành một loạimối kết hợp

2.3 Mối kết hợp và loại mối kết hợpLoại mối kết hợp và tập mối kết hợp có cùng tênCó nhiều hơn một loại mối kết hợp có thể cótrong cùng loại thực thể

Ví dụ: QUANLY và PHANCONG là các mối kếthợp khác nhau giữa NHANVIEN vàPHONGBAN

11

2.3 Mối kết hợp và loại mối kết hợp

Giamsat Nhanvien Phongban

Lamviec

Quanly

(0,N)

(1,1)

(1,1) (1,N)

(1,1)(0,1)

Theo mô hình cuảPeter Chen

1

N

1N

11

Nhanvien Phongban

Lamviec

Duoc_quanly

Bi_giamsat

Giamsat

Theo mô hình cuảCrow’s Foot

Duoc_lamviec

Quanly

Bậc / ngôi của mối liên kết (degree / arity of relationship)Bậc của mối liên kết là số lượng kiểu thực thể

tham gia đồng thời vào mối liên kết này. Các loại mối liên kết

Mối liên kết 1-ngôi (unary relationship)Mối liên kết 2-ngôi (binary relationship)Mối liên kết 3-ngôi (ternary relationship): 3 kiểu

thực thể đồng thời tham gia vào mối liên kết.….Mối liên kết n-ngôi(n-ary):………….

2.3 Mối kết hợp và loại mối kết hợp

Bậc / ngôi của mối liên kết (degree / arity of relationship)

2.3 Mối kết hợp và loại mối kết hợp

One entity related to another of the same entity type

Entities of two different types related to each other

Entities of three different types related to each other

Bậc / ngôi của mối liên kết (degree / arity of relationship):Relationship Degree

2.3 Mối kết hợp và loại mối kết hợp

Theo mô hình củaPeter Chen

is married

EMPLOYEE11

CONTRIBUTOR

teaches

PROFESSOR

CLASS

1

M

RECIPIENTCFR

FUND

M N

P

UnaryBinary

Terary

or recursive relationship

Thuộc tính của mối kết hợp (Relationship Attributes)Một loại mối kết hợp có thể có các thuộc

tính để mô tả tính chất của một mối kết hợpCác thuộc tính này không thể gắn với các

thực thể tham gia, i.e., nó chỉ có ý nghĩatrong ngữ cảnh của một mối kết hợp

Mối kết hợp không có thuộc tính khóachính. Việc xác định một mối kết hợp nàođó trong một tập các mối kết hợp thông qua các khóa của các thực thể tham gia

2.3 Mối kết hợp và loại mối kết hợp Thuộc tính của mối kết hợp (Relationship

Attributes)

2.3 Mối kết hợp và loại mối kết hợp

Nhanvien PhongbanPhancong(1,N) (1,M)

Thoigian

Nhanvien PhongbanPhancong

(1,N) (1,M)

Thoigian

(1,1) (1,1)Composite entity

Hoặc bridge entity

Hoặc assocciative entity

Hoặc intersection entity

12

Loại mối kết hợp luôn có một số ràng buộc vềcấu trúc nhằm giới hạn khả năng có thể kếthợp của các thực thể tham gia trong một tậphợp mối kết hợp tương ứngXuất phát từ các ràng buộc của thế giới

thựcCó 2 loại ràng buộc mối kết hợp chính:

• cardinality ratio constraint• participation constraint

2.4 Các ràng buộc trên loại mối kết hợp Lượng số của mối liên kết (cardinality of

relationship)Lượng số của mối liên kết là số lượng thể hiện

thực thể tham gia vào mối liên kết này.

2.4 Các ràng buộc trên loại mối kết hợp

Các loại lượng sốMany-to-Many,N:M (mặc định)Many-to-One, N:1 One-to-Many, 1:NOne-to-One, 1:1

2.4 Các ràng buộc trên loại mối kết hợp

Many-to-Many1-to-1 1-to Many Many-to-1

Many-to-Many, N:M

Ý nghĩa:Một nhân viên có thể làm việc ở nhiều phòng

ban (≥0) và một phòng ban có thể có nhiềunhân viên (N, M là bất kỳ)

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANLAMVIECN M

Many-to-One, N:1

Ý nghĩa:Một nhân viên có thể làm việc ở nhiều nhất là

một phòng ban (≤1) và một phòng ban cóthể có nhiều nhân viên (N là bất kỳ)

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANLAMVIECN 1

One-to-Many, 1:N

Ý nghĩa:Một nhân viên có thể làm việc ở nhiều phòng

ban (≥0) và một phòng ban chỉ có nhiềunhất một nhân viên (N là bất kỳ)

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANLAMVIEC1 N

13

One-to-One, 1:1

Ý nghĩa:Một nhân viên có thể làm việc ở nhiều nhất là

một phòng ban (≤1) và một phòng ban chỉcó nhiều nhất một nhân viên

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANLAMVIEC1 1

Participation Constraint (Ràng buộc về sựtham gia)Cho biết sự tồn tại của một thực thể e E

có phụ thuộc vào một thực thể khác thôngqua loại kết hợp R hay không

Có hai loại:• Toàn phần (total) – phụ thuộc tồn tại: mỗi thực

thể e E phải tham gia vào một mối kết hợp, nó không thể tồn tại mà không tham gia

• Từng phần (partial): một thực thể e E trongtoàn bộ tập thực thể có tham gia vào một mốikết hợp

2.4 Các ràng buộc trên loại mối kết hợp

Toàn phần (total) – phụ thuộc tồn tại: mỗi thực thể e E phải tham gia vàomột mối kết hợp

Ví dụ:

Ý nghĩa:Mọi nhân viên bắt buộc phải làm việc ở một

phòng ban nào đó

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANLAMVIECN 1

Riêng phần (partial): một số thực thể e E trong toàn bộ tập thực thể có thamgia vào một mối kết hợp

Ví dụ:

Ý nghĩa:Trong mối kết hợp QUANLY, không phải mọi

nhân viên đều quản lý phòng ban, ta nói, sự tham gia của NHANVIEN trong loại mốikết hợp QUANLY là riêng phần

2.4 Các ràng buộc trên loại mối kết hợp

NHANVIEN PHONGBANQUANLY(1,1)(0,1)

Ký hiệu (min,max) cho các ràng buộccấu trúc trên mối kết hợpChỉ định mỗi thực thể e E tham gian ít

nhất min và nhiều nhất max thể hiện quanhệ trong R

Ý nghĩa:Mỗi thực thể e1 E phải tham gia trong tập

mối kết hợp R ít nhất min1 và nhiều nhấtmax1 lần (tương tự cho e2 E )

2.4 Các ràng buộc trên loại mối kết hợp

E1 E2R(min1, max1) (min2, max2)

Ký hiệu (min,max) cho các ràng buộccấu trúc trên mối kết hợpMin=0 là tùy chọn (optional)Nếu Min=1 hoặc nhiều là bắt buộc

(mandatory).

2.4 Các ràng buộc trên loại mối kết hợp

E1 E2R(min1, max1) (min2, max2)

14

Giamsat Nhanvien Phongban

Lamviec

Quanly

(0,N)

(1,1)

(1,1) (1,N)

(1,1)(0,1)

Theo mô hình cuảPeter Chen

1

N

1N

11

2.4 Các ràng buộc trên loại mối kết hợp

Nhanvien Phongban

Lamviec

Duoc_quanly

Bi_giamsat

Giamsat

Theo mô hình cuảCrow’s Foot

Duoc_lamviec

Quanly

2.5 Loại thực thể yếu (weak entity type)Loại thực thể không có thuộc tính khóaPhải tham gia trong một loại mối kết hợp xác định(identifying relationship type) trong đó có một loạithực thể chủ hay lọai thực thể xác định (owner entity type)Các thực thể được xác định bằng sự kết hợp của:

•Khóa riêng phần (partial key) của loại thực thểyếu•Loại thực thể mà chúng có quan hệ với trongloại thực thể xác định

Lọai thực thể yếu luôn có ràng buộc tham gia toànphần(phụ thuộc tồn tại) trong mối kết hợp xác địnhtương ứng, bởi vì thực thể yếu không thể xác địnhmà không có thực thể chủ tương ứng

3. Thiết kế quan niệm ER:

►Có thể định nghĩa thực thể và mối kết hợp theocác cách khác nhau với cùng một mô hình!►Thiết kế giản đồ là một việc lặp đi lặp lại và cóthể cần có sự tinh chế

•Các thuộc tính của loại mối kết hợp 1:1 có thể đượcghép vào một trong các thực thể tham gia•Các thuộc tính của loại mối kết hợp 1:N (or N:1) có thểđược ghép vào loại thực thể của nhánh N•Các thuộc tính của loại mối kết hợp N:M không thểđược ghép chung

3.1 Các bước thiết kế ER

1. Xác định các loại thực thể (loại thực thể hay thuộc tính)

2. Xác định loại mối kết hợp3. Xác định và gắn thuộc tính với loại thực thể và

loại mối kết hợp4. Quyết định miền giá trị của thuộc tính5. Quyết định các thuộc tính khóa cho loại thực thể6. Gắn (tinh chế) cardinality ratio(s) vào loại mối kết

hợp7. Thiết kế phân cấp chuyên biệt hóa/tổng quát hóa

(specialization/generalization) trong các ràngbuộc

3.2 Chuyển đổi lược đồ ER thành Bảng (table)► Một lược đồ ER có thể được thể hiện dưới dạng tập hợp

các bảng thể hiện nội dung của CSDL (instance)► Các khóa chính cho phép các loại thực thể và loại mối kết

hợp được diễn đạt dưới dạng bảng► Đối với mỗi loại thực thể và loại mối kết hợp, một bảng

duy nhất có thể được phát sinh được gán cho một têntương ứng với tên của loại thực thể hay loại mối kết hợp

► Mỗi bảng có một số cột tương ứng với các thuộc tính(atomic) và có một tên duy nhất. Một thuộc tính của mộtbảng có thể có cùng miền giá trị với thuộc tính trong lượcđồ ER

► Việc chuyển đổi một lược đồ ER thành một tập hợp cácbảng là cơ bản để phát sinh một lược đồ quan hệ từ mộtgiản đồ ER

Các ký hiệu của mô hình ER

Entity Type…

E1 R E2

E1 R E2

R E(min, max)

Weak Entity Type

Relationship Type

Identifying Relationship Type

Attribute

Key Attribute

Multivalued AttributeStructural Constraint (min, max) on Participation of E in R

Cardinality Ratio 1:N for E1:E2in R

Total Participation of E2 in R

Derived Attribute

Composite Attribute

15

4. Ví dụ về Cơ sở dữ liệu quản lý điểm củasinh viênVí dụ: Bài toán quản lý điểm của sinh viên được phátbiểu đơn giản như sau:"Trường có nhiều khoa, mỗi khoa có một mã khóa duynhất, mỗi mã khoa xác định tên khoa, số điện thoạikhoa. Một khoa có nhiều lớp, mỗi lớp có một mã lớp duynhất, mỗi mã lớp xác định tên lớp. Mỗi sinh viên có mộtmã số sinh viên duy nhất, mỗi mã số sinh viên xác địnhhọ tên, ngày sinh, địa chỉ, lớp mà sinh viên đó theo học, giới tính của sinh viên đó, … Mỗi sinh viên có thể đăngký học nhiều môn và với mỗi môn học thì chỉ có một kếtquả nhất định. Mỗi môn học có một mã môn học nhấtđịnh, mỗi mã môn học xác định tên môn học, số tiết củamôn học đó".

Với bài toán trên thì cần quản lý các đối tượngnhư: SINH VIÊN, MÔN HỌC, KHOA, LỚP.

• Mối kết hợp• Mối kết hợp "thuộc" sau biểu diễn mối liên

hệ giữa hai thực thể LỚP và KHOA.

KHOALỚP thuộc

• Bản số của mối kết hợp

KHOALỚP(1,1) (1,n)

thuộc (1,n)

SINH VIEÂN MOÂN HOÏC

LÔÙP KHOA

(0,n)

(1,1)

(1,n)

(1,1) (1,n)

-MAMH-TENMH-SOTIET

MASV-NU-

HOTEN-NGAYSINH HOCBONG

TINH-

-MAKHOA-TENKHOA -SOCBGD

MALOP-

TENLOP-

DIEMTHI

thuộc

thuộc

ketqua

QUAÛN LYÙ LAO ÑOÄNGÑeå quaûn lyù vieäc phaân coâng caùc nhaân vieân tham gia vaøo xaây döïng caùc coângtrình. Coâng ty xaây döïng ABC toå chöùc quaûn lyù nhö sau:Cuøng luùc coâng ty coù theå tham gia xaây döïng nhieàu coâng trình, moãi coângtrình coù moät maõ soá coâng trình duy nhaát (MACT), moãi maõ soá coâng trình xaùcñònh caùc thoâng tin nhö: Teân goïi coâng trình (TENCT), ñòañieåm(ÑIAÑIEM), ngaøy coâng trình ñöôïc caáp giaáy pheùp xaây döïng(NGAYCAPGP), ngaøy khôûi coâng (NGAYKC), ngaøy hoaøn thaønh(NGAYHT)Moãi nhaân vieân cuûa coâng ty ABC coù moät maõ soá nhaân vieân(MANV) duynhaát, moät maõ soá nhaân vieân xaùc ñònh caùc thoâng tin nhö: Hoï teân (HOTEN), ngaøy sinh(NGAYSINH), phaùi (PHAI), ñòa chæ (ÑIACHI),phoøng ban, …Coâng ty phaân coâng caùc nhaân vieân tham gia vaøo caùc coâng trình, moãi coângtrình coù theå ñöôïc phaân cho nhieàu nhaân vieân vaø moãi nhaân vieân cuøng luùccuõng coù theå tham gia vaøo nhieàu coâng trình. Vôùi moãi coâng trình moät nhaânvieân coù moät soá löôïng ngaøy coâng (SLNGAYCONG) ñaõ tham gia vaøo coângtrình ñoù.Coâng ty coù nhieàu phoøng ban(Phoøng keá toaùn, phoøng kinh doanh, phoøng kyõthuaät, phoøng toå chöùc, phoøng chuyeân moân, Phoøng phuïc vuï,…). Moãi phoøngban coù moät maõ soá phoøng ban(MAPB) duy nhaát, moät phoøng ban öùng vôùimoät teân phoøng ban(TENPB)

16

QUAÛN LYÙ THÖ VIEÄNMoät thö vieän toå chöùc vieäc cho möôïn saùch nhö sau:Moãi quyeån saùch ñöôïc ñaùnh moät maõ saùch (MASH) duøng ñeå phaân bieätvôùi caùc quyeån saùch khaùc (giaû söû neáu moät taùc phaåm coù nhieàu baûngioáng nhau hoaëc coù nhieàu taäp thì cuõng xem laø coù maõ saùch khaùcnhau), moãi maõ saùch xaùc ñònh caùc thoâng tin khaùc nhö : teân saùch(TENSACH), teân taùc giaû (TACGIA), nhaø xuaát baûn (NHAXB), naêmxuaát baûn (NAMXB).Moãi ñoïc giaû ñöôïc thö vieân caáp cho moät theû thö vieän, trong ñoù coù ghiroõ maõ ñoïc giaû (MAÑG), cuøng vôùi caùc thoâng tin khaùc nhö : hoï teân(HOTEN), ngaøy sinh (NGAYSINH), ñòa chæ (ÑIACHI), ngheànghieäp(NGHENGHIEP).Cöù moãi löôït möôïn saùch, ñoïc giaû phaûi ñaêng kyù caùc quyeån saùch caànmöôïn vaøo moät phieáu möôïn, moãi phieáu möôïn coù moät soá phieáu möôïn(SOPM) khaùc nhau, moãi phieáu möôïn xaùc ñònh caùc thoâng tin nhö: ngaøy möôïn saùch (NGAYMUON), maõ ñoïc giaû. Caùc caùc quyeån saùchtrong cuøng moät phieáu möôïn khoâng nhaát thieát phaûi traû trong moät laàn.

ÑAÀU SAÙCH

ÑOÄC GIAÛ

maDauSachbantap

maDGhoTenngaySinhdiaChingheNghiep

Moâ hình ER vaø löôïc ñoà CSDL

laø chuû theå

thuoäc veà

Moâ hình ER

Löôïc ñoà CSDLDOCGIA(maDG,hoTen,ngaySinh,diaChi,ngheNghiep)PHIEUMUON(soPM,ngayMuon,maDG)CHITIETMUON(soPM,maDauSach,ngayTra,maDauSach)

PHIEÁUMÖÔÏN

soPMngayMuon

thuoäc veà

chöùa

DAUSACH(maDauSach,ban,tap,maSH)

CHI TIEÁTMÖÔÏNkeâ

ñöôïc keâ bôûisoPMmaDauSachngayTra

TÖÏA SAÙCH

maSHtenSachtacGianhaXBnamXB

coù

laø töïa cuûa

TUASACH(maSH,tenSach,tacGia,nhaXB,namXB)

QUAÛN LYÙ BAÙN HAØNG

Moãi khaùch haøng coù moät maõ khaùch haøng (MAKH) duynhaát, moãi MAKH xaùc ñònh ñöôïc caùc thoâng tin veà khaùchhaøng nhö : hoï teân khaùch haøng (HOTEN), ñòa chæ(ÑIACHI), soá ñieän thoaïi (ÑIENTHOAI). Caùc maët haøngñöôïc phaân loaïi theo töøng nhoùm haøng, moãi nhoùm haøng coùmoät maõ nhoùm (MANHOM) duy nhaát, moãi maõ nhoùm haøngxaùc ñònh teân nhoùm haøng (TENNHOM), taát nhieân moätnhoùm haøng coù theå coù nhieàu maët haøng. Moãi maët haøng ñöôïcñaùnh moät maõ soá (MAHANG) duy nhaát, moãi maõ soá naøy xaùcñònh caùc thoâng tin veà maët haøng ñoù nhö : teân haøng(TENHANG), ñôn giaù baùn (ÑONGIA), ñôn vò tính (ÑVT). Moãi hoùa ñôn baùn haøng coù moät soá hoùa ñôn (SOHÑ) duynhaát, moãi hoùa ñôn xaùc ñònh ñöôïc khaùch haøng vaø ngaøy laäphoùa ñôn (NGAYLAPHÑ), ngaøy baùn haøng (NGAYBAN). Vôùi moãi maët haøng trong moät hoùa ñôn cho bieát soá löôïngbaùn (SLBAN) cuûa maët haøng ñoù.

QUAÛN LYÙ DAÏY HOÏCÑeå quaûn lyù lòch daïy cuûa caùc giaùo vieân vaø lòch hoïc cuûa caùc lôùp, moät tröôøng toå chöùc nhö sau:Moãi giaùo vieân coù moät maõ soá giaùo vieân (MAGV) duy nhaát, moãi MAGV xaùc ñònh caùc thoângtin nhö: hoï vaø teân giaùo vieân (HOTEN), soá ñieän thoaïi (DTGV). Moãi giaùo vieân coù theå daïynhieàu moân cho nhieàu khoa nhöng chæ thuoäc söï quaûn lyù haønh chaùnh cuûa moät khoa naøo ñoù.Moãi moân hoïc coù moät maõ soá moân hoïc (MAMH) duy nhaát, moãi moân hoïc xaùc ñònh teân moânhoïc(TENMH). Öùng vôùi moãi lôùp thì moãi moân hoïc chæ ñöôïc phaân cho moät giaùo vieân.Moãi phoøng hoïc coù moät soá phoøng hoïc (PHONG) duy nhaát, moãi phoøng coù moät chöùc naêng(CHUCNANG); chaúng haïn nhö phoøng lyù thuyeát, phoøng thöïc haønh maùy tính, phoøng nghenhìn, xöôûng thöïc taäp cô khí,…Moãi khoa coù moät maõ khoa (MAKHOA) duy nhaát, moãi khoa xaùc ñònh caùc thoâng tin nhö: teânkhoa (TENKHOA), ñieän thoaïi khoa(DTKHOA).Moãi lôùp coù moät maõ lôùp (MALOP) duy nhaát, moãi lôùp coù moät teân lôùp (TENLOP), só soá lôùp(SISO). Moãi lôùp coù theå hoïc nhieàu moân cuûa nhieàu khoa nhöng chæ thuoäc söï quaûn lyù haønhchính cuûa moät khoa naøo ñoù.Haøng tuaàn, moãi giaùo vieân phaûi laäp lòch baùo giaûng cho bieát giaùo vieân ñoù seõ daïy nhöõng lôùpnaøo, ngaøy naøo (NGAYDAY), moân gì?, taïi phoøng naøo, töø tieát naøo (TUTIET) ñeán tieát naøo(ÑENTIET),töïa ñeà baøi daïy (BAIDAY), nhöõng ghi chuù (GHICHU) veà caùc tieát daïy naøy, ñaâylaø giôø daïy lyù thuyeát (LYTHUYET) hay thöïc haønh - giaû söû neáu LYTHUYET=1 thì ñoù laø giôødaïy thöïc haønh vaø neáu LYTHUYET=2 thì ñoù laø giôø lyù thuyeát, moät ngaøy coù 16 tieát, saùng töøtieát 1 ñeán tieát 6, chieàu töø tieát 7 ñeán tieát 12, toái töø tieát 13 ñeán 16.

17

Mô hình quan hệ

Chương 3Moâ hình quan heä (Relational Model)Moâ hình Cô sôû döõ lieäu Quan heä (goïi taét laø Moâ hìnhQuan heä) do E.F Codd ñeà xuaát naêm 1970. Moâ hìnhnaøy bao goàm:

– caùc khaùi nieäm lieân quan ñeán caáu truùc döõ lieäu döôùidaïng doøng vaø coät nhö quan he ä, boä, thuoäc tính, khoùachính, khoaù ngoaïi, ...

– pheùp toaùn taäp hôïp vaø pheùp toaùn quan heä.– raøng buoäc toaøn veïn quan heä.

Caùc HQTCSDLQH ñöôïc xaây döïng döïa theo lyù thuyeát moâhình quan heä

MOÂ HÌNH QUAN HEÄ

5.0ANH VANTIN HOC VAN P.TRUNGLE THANH99005

6.0CNTTTIN HOC VAN P.THUTRAN DAN99001

8.0CNTTCO SO DU LIEUTHAONGUYEN HA DA99002

3.0CNTTCO SO DU LIEUTHUTRAN DAN99001

DIEMTHI

TENKHOA

MONHOCTENSV

HOSVMASV

Baøi toaùn quaûn lyù ñieåm thi ñöôïc löu tröõ khoâng ñuùngvôùi moâ hình quan heä seõ gaây ra dö thöøa döõ lieäu. Döthöøa döõ lieäu daãn ñeán caäp nhaät dò thöôøng

MOÂ HÌNH QUAN HEÄ

5.0AVTHVP99005

6.0CNTTTHVP99001

8.0CNTTCSDL99002

3.0CNTTCSDL99001

DIEMTHIMAKHOAMAMHMASV

90TIN HOC VAN PHONGTHVP90CO SO DU LIEUCSDL

SOTIETTENMHMAMH

ANH VANAV

CONG NGHE THONG TINCNTTTENKHOAMAKHOA

TRUNGLE THANH 99005

THAONGUYEN HA DA99002

THUTRAN DAN99001

TENSVHOSVMASV

THUOÄC TÍNH (Attribute, arity)– Thoâng tin chi tieát söï vaät, söï vieäc hay ñoái töôïng– Thuoäc tính cuûa söï vaät ñöôïc phaân bieät qua teân

vaø khoâng ñöôïc coù hai thuoäc tính cuøng teân– Thuoäc tính phaûi thuoäc moät kieåu döõ lieäu nhaát

ñònh nhö soá, chuoãi, ngaøy ...

LÖÔÏC ÑOÀ QUAN HEÄ (Relation schema)– Laø taäp taát caû caùc thuoäc tính cuûa moät ñoái töôïng,

söï vaät hay söï vieäc– Löôïc ñoà quan heä Q vôùi taäp thuoäc tính

A1,A2,...An ñöôïc vieát laø Q(A1,A2,... An)– Moãi löôïc ñoà quan heä luoân keøm moät taân töø ñeå

dieãn taû yù nghóa cuûa noù. Chaúng haïn LÑQH Kh(MAKHOA,TENKHOA,SOCBGD) coù taân töø: Moãi khoa coù maõ khoa ñeå phaân bieätkhoa naøy vôùi khoa kia, teân khoa vaø soá giaûngvieân cuûa khoa

18

QUAN HEÄ (Relation, instances of relation)– Söï theå hieän cuûa löôïc ñoà quan heä Q ôû moät thôøi ñieåm

naøo ñoù ñöôïc goïi laø quan heä.– Löôïc ñoà quan heä Q coù quan heä r.– Ví duï quan heä khoa

10MOI TRUONGMAÙY TÍNH20HOA CHATHOA60ANH VANAV60CONG NGHE THONG TINCNTT

SOCBGDTENKHOAMAKHOArKh

QUAN HEÄ (relation) là một bảng dữ liệu hai chiều baogồm nhiều hàng (mẩu tin-record) và nhiều cột (thuộctính hoặc vùng tin(field)).

Mỗi hàng là duy nhất: không thể có hai hàng cócùng các giá trị ở tất cả vùng tin.

Ngầm định là khóa chính luôn tồn tại Giá trị trong một bộ:

Tất cả các giá trị được xem là atomic (không thểphân chia được nữa).

Thứ tự của các hàng là không quan trọng.Một bảng chỉ là một đại diện của một quan hệ

Tuy nhiên, lưu trữ vật lý của một quan hệ phải cóthứ tự.

Thứ tự của các cột là không quan trọng. Không phải mọi bảng đều là quan hệ. Quan hệ là

một bảng không chứa các hàng giống hệt nhau. Giá trị không biết cũng phải được thể hiện:

Chúng được thay thế bằng giá trị đặc biệt null.Null có nhiều ý nghĩa: “không biết”, “không quan

tâm”, “không thể áp dụng một bộ đó

Quan hệ: Supplier

SFNguyễn Văn AnS3LATrần Thị YếnS2SFNguyễn Trung TiếnS1CityNameSnum

BOÄ (Tuple)– Boä laø taäp moãi giaù trò lieân quan cuûa taát caû caùc

thuoäc tính cuûa moät löôïc ñoà quan heä. – Ví duï quan heä sau coù 2 boä

120000TPHCMTCTH29C25-04-1986TRUENGUYEN HA99002

120000T GIANGCÑTH2B15-03-1977TRUETRAN AN 99001

HOCBONGTINH

MALOP

NGAYSINHNUHOTEN

MASV

Ràng buộc khóa chính

• Super key (siêu khóa): SK của r là mộtthuộc tính hay tập hợp các thuộc tính đểxác định duy nhất một bộ trong một quanhệ (không có hai bộ nào trong bất kỳ thểhiện quan hệ r(R) có cùng giá trị SK).

• i.e., Với mọi bộ phân biệt t1 và t2 trongr(R), t1[SK] <> t2[SK].

• Mọi quan hệ đều có ít nhất một SK.

Candidate Key

• Candidate key K của r(R) thỏa mãn 2 điều kiện:– K là một SK, và– K là SK bé nhất (K’K, K’≠K, K’ không phải là SK).

• Quan hệ r có thể có nhiều hơn một khóa K• Ex:

– XE{TINH_TP, SOXE, SOHIEUXE, NOISX, KIEUDANG, NAM}

– Có hai SK là K1 = {TINH_TP, SOXE}, K2 = {SOHIEUXE}, nhưng K1 không là Khóa.

19

Ràng buộc khóa ngoại và toànvẹn tham chiếu

• Tập hợp các thuộc tính trong một quan hệ (quan hệcon) được dùng để tham chiếu tới một bộ của quanhệ khác (quan hệ cha). Khóa ngoại phải tham chiếutới khóa chính của quan hệ đựợc tham chiếu.

Dien tuDTVien thongVT

Cong nghe Thong tinCNTTTENKHOAMAKHOAKHO

A

DT16Minh

CNTT11Nhat

MAHKMASVTENSVSVIEN

Foreign Key – Khóa ngoại

• Cho FK r1, FK ≠, FK được gọi là khóa ngoạicủa r1 (tham chiếu đến r2) khi:

• Các thuộc tính trong FK phải có cùng miền giátrị với các thuộc tính khóa chính PK trong r2.

• Giá trị tại FK của một bộ t1r1 bằng giá trị tại PKcủa một bộ t2r2 hoặc bằng giá trị rỗng null. Trường hợp đầu, ta nói t1 tham chiếu tới bộ t2. (t1[FK]=t2[PK])

• Nếu tất cả các ràng buộc khóa ngoại được bảođảm cho một quan hệ, ta nói đã đạt được toànvẹn tham chiếu - referential intergrity.

Primary Key – Khóa chính

• Nếu có nhiều Khóa (candidate key) trong mộtquan hệ, người thiết kế hoặc người quản trị CSDL sẽ chọn ra một khóa là khóa chính để nhận biếtcác bộ trong một quan hệ.

• Các thuộc tính khóa chính được gạch dưới.• Các thuộc tính khóa chính PK của quan hệ r

không thể mang giá trị null ở bất kỳ bộ nào vì giátrị của khóa chính được dùng để xác định các bộ.– t[PK] <>null tr(R)

• Các thuộc tính khác của r cũng có thể có ràngbuộc quy định không được có giá trị null, cho dùchúng không tham gia vào khóa chính.

• Ex: Sinhvien(MaSv, TenSv, Khoa)

Alternate Key

• Là Candidate Key nhưng không đượcchọn là primary key.

• Được khai báo ràng buộc duy nhất(uniqueness constraint)

A primary key in a table a) can be the same value as other primary key values

in the same tableb) must be different from foreign keys in another table c) must not contain NULL.d) must be a number andmust be different from a

primary key in another table

Cơ sở dữ liệu quan hệ (relational database) bao gồm các bảng (quan hệ) biểu diễn cácthực thể và các khóa chính / khóa ngoại biểudiễn các mối liên kết.

Cơ sở dữ liệu quan hệ

20

Cơ sở dữ liệu quan hệ

Primary Key

Foreign Key (implements 1:N relationship between customer and order)

Combined, these are a composite primary key (uniquely identifies the order line)…individually they are foreign keys (implement M:N relationship between order and product)

Cơ sở dữ liệu quan hệ.

Cơ sở dữ liệu quan hệ

Mỗi quan hệ (bảng) tương ứng với một kiểuthực thể hoặc với một kiểu mối liên kết nhiều -nhiều.

Mỗi hàng tương ứng với một thể hiện thực thểhoặc với một thể hiện mối liên kết nhiều -nhiều.

Mỗi cột tương ứng với một thuộc tính. Từ quan hệ (relation) trong cơ sở dữ liệu

quan hệ không có cùng nghĩa với từ mối quanhệ (relationship) trong mô hình ER.

Sự tương ứng với mô hình ER Lược đồ cơ sở dữ liệu

database schema Lược đồ cơ sở dữ liệu là một tập hợp các lược đồ

quan hệ. Trong một lược đồ cơ sở dữ liệu, các tên lược

đồ quan hệ là duy nhất.

Lược đồ cơ sở dữ liệu

Lược đồ cơ sở dữ liệu:Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)Dept (Deptnum, Name, Area, Mgrnum)Supplier (Snum, Name, City)Supply (Snum, Pnum, Deptnum, Quan)

Ràng buộc toàn vẹn integrity constraint Ràng buộc toàn vẹn là một qui tắc mà tất cả các

dữ liệu trong CSDL phải thỏa mãn qui tắc này.

Ràng buộc miền giá trị domain constraint Các giá trị cho phép của một thuộc tính.

Toàn vẹn thực thể entity integrity Thuộc tính khóa chính không có giá trị rỗng (null

value)

Ràng buộc toàn vẹn Qui tắc hoạt động

action assertion Các qui tắc nghiệp vụ (business rule).

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

21

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

Định nghĩa miền trị cho các thuộc tính

Ràng buộc toàn vẹn tham chiếu referential integrity constraint Ràng buộc toàn vẹn tham chiếu là một qui tắc

mà tất cả các giá trị của khóa ngoại (nếu khácnull) trong quan hệ bên phía nhiều phải có trongcác giá trị của khóa chính trong quan hệ bênphía một.

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

Ràng buộc toàn vẹn tham chiếu Qui tắc xóa các hàng dữ liệu

Hạn chế (restrict): không cho phép xóa các hàngbên phía cha (parent) nếu tồn tại các hàng liên quanbên phía phụ thuộc (dependent).

Tầng (cascade): tự động xóa các hàng bên phía phụthuộc tương ứng với các hàng bên phía cha.

Gán null (set-to-null): gán null cho khóa ngoại củacác hàng bên phía phụ thuộc tương ứng với cáchàng bên phía cha. Không áp dụng cho các thực thểyếu.

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

Ví dụ về ràng buộc toàn vẹn tham chiếu

Referential integrity constraints are drawn via arrows from dependent to parent table

Đại số Quan hệ

Ngôn ngữ truy vấn

• Query Language (QL): ngôn ngữ cho phép user thực hiện và rút trích dữ liệu từ CSDL.

• QL ≠PL (ngôn ngữ lập trình)– QL không nhằm mục đích dùng cho các ứng dụng

phức tạp.– QL hỗ trợ truy xuất dễ dàng tới các tập tin dữ liệu lớn.

• Ngôn ngữ truy vấn (toán học) là cơ sở của ngônngữ thực sự (vd., SQL).

• Hiểu được đại số quan hệ là chìa khóa để hiểucách xử lý và tối ưu hóa câu truy vấn.

22

Đại số Quan hệ

• Ngôn ngữ thủ tục (???)• Bao gồm tập hợp các phép toán được áp

dụng trên các thể hiện quan hệ, kết quảcủa một câu truy vấn là một thể hiện quanhệ.

• Chuỗi các phép toán đại số quan hệ hìnhthành nên biểu thức đại số quan hệ màkết quả của nó cũng trả về một thể hiệnquan hệ.

Các phép toán quan hệ• Phép chọn• Phép chiếu• Phép gán• Phép đổi tên• Các phép toán được hình thành từ lý thuyết tập hợp

toán học:– Phép hội– Phép giao– Phép trừ– Phép tích Cartesian

• Phép kết• Phép chiếu tổng quát• Các phép toán quan hệ khác: Phép chia, OUTER JOIN,

AGGREGATE FUNCTIÓN và GROUPING.

Phép chọn (Selection Operator)• Dùng để trích chọn các bộ từ quan hệ r. Các bộ

được trích chọn phải thỏa mãn điều kiện P.• Ký hiệu: P(r) = {t | t r P(t)}• r: quan hệ được chọn• P: biểu thức mệnh đề điều kiện:• <attr> op <attr> hay <const>• op: =, ≠, , , …• Các điều kiện có thể liên kết với nhau thông qua , ,

• Kết quả trả về là một quan hệ, có cùng danhsách thuộc tính với quan hệ r.

• Phép chọn có tính giao hoán:• P1(P2(r)) = P2(P1(r)) = P1 P2(r)

Example

1023

312

75

71

DCBA

1023

71

DCBA

Quan hệ rA=B D5(r)

• Cho biết:– Những nhân viên thuộc phòng số 4.– Những nhân viên có lương > 3000– Những nhân viên thuộc phòng số 4 và lương > 3000,

hoặc những nhân viên thuộc phòng số 5.

Phép chiếu (Project Operation)• Dùng để trích chọn một vài cột của quan hệ r

được chỉ ra trong danh sách thuộc tính.• Ký hiệu: A1,A2, …,Ak(r)• r: quan hệ.• A1,A2, …,Ak: các thuộc tính được chiếu.• Kết quả trả về là một quan hệ có k thuôc tính

theo thứ tự được liệt kê.• Số lượng các bộ trong một quan hệ kết quả của

phép chiếu luôn luôn ít hơn hoặc bằng số lượngcác bộ trong r. Các dòng trùng nhau sẽ được loạibỏ khỏi quan hệ kết quả.

• A1,A2, …,Ak( A1,A2, …,Al(r)) = A1,A2, …,Ak(r), với kl• Phép chiếu không có tính giao hoán

Example

240

130

120

110

CBA

1

1

2

1

CA

Quan hệ r A,C(r)

• Cho biết:– Họ tên và lương của tất cả nhân viên.– Mã phòng và lương của tất cả nhân viên

1

2

1

CA

23

Phép gán (Assignment Operation)

• Cung cấp một cách thức để diễn tả câu truy vấnphức tạp.

• Ý tưởng: viết câu truy vấn như là một chương trìnhtuần tự gồm một chuỗi các phép gán, theo sau làmột biểu thức có giá trị được trình bày như là kếtquả của câu truy vấn.

• Ký hiệu: • Việc gán luôn luôn thực hiện cho một biến quan hệ

tạm.• Biến nằm bên trái của biểu thức gán có thể được sử

dụng trong các biểu thức theo sau.

Phép đổi tên (Rename Operation)

• Cho phép đặc tên, và do đó để tham chiếu tới kết quảcủa biểu thức đại số quan hệ.

• Cho phép tham chiếu tới một quan hệ bằng nhiều tên(vd., nếu cùng một quan hệ được dùng hai lần trong mộtbiểu thức đại số quan hệ).

• Đổi tên quan hệ và tên thuộc tính:• Cho một biểu thức đại số quan hệ E có n thuộc tính,

biểu thức(A1, A2, …, An)(E)

trả về kết quả biểu thức E dưới tên , và với các tênthuộc tính đã được thay đổi thành A1, A2, …, An.

Đổi tên quan hệ và tên thuộctính

• Đổi tên quan hệ:– Cho một biểu thức đại số quan hệ E, biểu

thức (E) trả về kết quả biểu thức E dưới tên.

• Đổi tên thuộc tính:– Cho một biểu thức đại số quan hệ E có n

thuộc tính, biểu thức (A1, A2, …, An)(E)trả về kết quả biểu thức E với các tên thuộctính đã được thay đổi thành A1, A2, …, An.

Chuỗi các phép toán

• Kết hợp các phép toán đại số quan hệ vớinhau bằng một trong hai cách:– Tạo một biểu thức đại số quan hệ bằng cách

lồng các phép toán với nhau.– Áp dụng từng phép toán một, ở mỗi lần áp

dụng phép toán cho ra quan hệ kết quả.

Examle• Tìm họ tên và lương nhân viên làm việc ở

phòng số 4.

HONV,TENLOT,TENNV,LUONG(PHG=4(NHANVIEN))

• hoặc:NV_P4 PHG=4(NHANVIEN)KQ HONV,TENLOT,TENNV,LUONG(NV_P4)

• hoặc có thể đổi tên bằng cách liệt kê các tênthuộc tính mới trong dấu ngoặc:

NV_P4 PHG=4(NHANVIEN)KQ(HO,LOT,TEN,LUONGCB) HONV,TENLOT,TENNV,LUONG(NV_P4)

Các phép toán tập hợp

• Các phép toán thực hiện trên 2 quan hệxuất phát từ lý thuyết tập hợp của toánhọc– Phép hội: r s– Phép giao: r s– Phép trừ: r – s– Phép tích Cartesian: rs

• Đối với các phép toán , , hay –, cácquan hệ r và s phải khả hợp.

24

Quan hệ Khả hợp

• Các quan hệ R(A1, A2, …, An) và S(B1,B2, …, Bn) gọi là khả hợp khi:

• Số lượng thuộc tính của r, s phải bằngnhau (cùng bậc n)

• Miền giá trị của thuộc tính phải tươngthích (dom(Ai)=dom(Bi)), với 1in.

• Quan hệ kết quả của , , hay – có cùngtên thuộc tính với quan hệ đầu tiên r (quyước).

Phép hội (Union Operation)

• Ký hiệu: r s• Định nghĩa:

r s = {t | t r t s}• r và s là hai quan hệ khả hợp.

• Ex1: • Ex2: Mã nhân viên có tham gia

đề án hoặc có thân nhân hoặccả hai.

2

1

1

BA

3

2

BA

3

2

1

1

BA

Quan hệ r Quan hệ s

r s

Phép Giao (Set-Intersection Operation)

• Ký hiệu: r s• Định nghĩa:

r s = {t | t r t s}

• r và s là hai quan hệ khảhợp.

• Ex1: • Ex2: Mã nhân viên có

người thân và đượcphân công vào đề án.

2

1

1

BA

3

2

BA

2

BA

Quan hệ r Quan hệ s

r s

Phép trừ (Set Difference Operation)

• Ký hiệu: r – s.• Định nghĩa:• r – s = {t | t r t s}• r và s là hai quan hệ khả

hợp.• Ex1: • Ex2: Mã nhân viên

không có thân nhânnào cả.

2

1

1

BA

3

2

BA

1

1

BA

Quan hệ r Quan hệ s

r – s

Phép tích (Cartesian Product Operation)

• Ký hiệu: r s• Định nghĩa:

r s = {t.q | t r q s}• Các thuộc tính của r(R) và s(S) khác nhau (i.e. r s = ).• Nếu các thuộc tính của r(R) và s(S) không khác nhau thì phải đổi

tên chúng.• Mỗi bộ t của tập kết quả là tổ hợp giữa 1 bộ t1 trong r và 1 bộ t2

trong s sao cho:t[A1, A2, …, Anr] = t1 và t[B1, B2, …, Bms] = t2

• KQ(A1, A2, …, Anr, B1, B2, …, Bms) r(A1, A2, …, Anr) s(B1, B2, …, Bms)

• Nếu r có nr bộ và s có ms bộ thì r s có nr ms bộ.

Example 1

• Nhận xét: Phép tích Cartersian làmột phép tính vô nghĩa nếu đứngriêng. Tuy nhiên, nó có thể kết hợpcác bộ liên quan từ hai quan hệ nếutiếp theo sau phép toán chọn phùhợp (xem ví dụ trang sau).

10

201010D

+

+

EC

2

1

BA

102

202

+102

+102

1111B

C

10201010D

+

+

EA

Quan hệ r

Quan hệ s

r s

25

Example 2

102

202

+102

+102

1111B

C

10201010D

+

+

EA

r s

202

+102

1B

C10D

+

EA

A=C(r s)

Example 3

• Kết hợp từng bộ PHONGBAN với bộ NHANVIEN của người quản lý (trưởng phòng). Với mỗi phòngban, cho biết thông tin về người trưởng phòng.

PB_NV PHONGBAN NHANVIENPB_TRPHG_INFO MANV=TRPHGPB_NV

• Hoặc:MANV=TRPHG(PHONGBAN NHANVIEN)

Example 4

• Cho biết lương cao nhất trong công ty.– Quan hệ chứa những lương không phải là lớn

nhấttemp=NHANVIEN.LUONG(NHANVIEN.LUONGNV.LUONG(NHA

NVIENNV(NHANVIEN)))– Thực hiện trừ giữa quan hệ và quan hệ tạmLUONG(NHANVIEN) - temp

Example 5

• Cho biết những phòng ban có cùng địa điểmvới phòng số 5.– Tìm địa điểm của phòng số 5.DIADIEM(MAPHG=5(DIADIEM_PHG).

– Đổi tên thành PHG_5 và đổi tên thuộc tínhDIADIEM thành DD.DIADIEM_PHG(DIADIEM_PHG.DIADIEM=PHG_5.DD(DIADIEM_PHGPHG_5(DD)(DIADIEM(MAPHG=5(DIADIEM_PHG))))).

Phép kết (Join Operation)

• Natural Join• Condition Join (Theta Join)• Equi-Join

Natural Join

• Ký hiệu: rs (hoặc r*s)• r, s là các quan hệ tương ứng trên các lược đồ

R và S. Kết quả trả về là quan hệ trên lược đồRS. các kết quả có được bằng cách xét đếntừng cặp bộ trr và tss.

• Nếu tr và ts có cùng giá trị tại các thuộc tínhtrong RS (cùng tên thuộc tính), thì một bộ t được thêm vào quan hệ kết quả sao cho:– t có cùng giá trị như tr trên R.– t có cùng giá trị như ts trên S.

26

Example• Cho các quan hệ R(A,B,C,D) và S(B,D,E)• Phép kết có thể áp dụng được vì RS .• Lược đồ kết quả là (A,B,C,D,E)• Và kết quả của rs được định nghĩa là:

R.A,R.B,R.C,R.D,S.E((R.B=S.BR.D=S.D(rs))

b2

1111B

C

aaaaD

EA

b2

1421B

C

ababD

A

baa1D

E

2

31

aB

r s r s

Condition Join

• Ký hiệu: rcs• C: điều kiện tồn tại trên các thuộc tính trong

RS, lược đồ kết quả cũng giống như trongphép tích Cartesian. Nếu RS và điều kiện c tham chiếu tới các thuộc tính này, thì một sốthuộc tính phải được đổi tên.

• Đôi khi còn gọi là Theta join rs• Nguồn gốc: rcs = c(rs)• Chú ý: không giống như điều kiện chọn P trong ,

c là một điều kiện trên các thuộc tính của cả r vàs.

Example

8

5

2

B

9

6

3

C

4

7

1

A

21E

63D

663D

522B

633C

221E

14

1A

r s

r B<D s

EQUI-JOIN

• Nếu là phép so sánh bằng “=” thì phép kết đượcgọi là phép kết bằng – Equi-Join.

• Ex:• Tên phòng ban và tên trưởng phòng của mỗi phòng

ban.

8

5

B

9

6

C

4

7

A

128D

106C

6SC

5B

6C

8D

4A

r sr C=SC((SC,D)(s)) s

Một số lưu ý• Giữa 2 quan hệ có thể có nhiều hơn một tập thuộc tính kết

mang ý nghĩa khác nhau. Vd:

• Ex: Tìm tên nhân viên và tên phòng ban mà nhân viên đó làmviệc. (?)

• Một quan hệ có thể có một tập thuộc tính kết để kết với chínhquan hệ đó. Trong trường hợp này, phải sử dụng phép đổitên. Vd:

• Ex: Tìm tên nhân viên và tên người giám sát nhân viên đó (?)

NHANVIEN làm việc ởPHONGBAN

NHANVIEN.PHG=PHONGBAN.MAPHG

NHANVIEN quản lý PHONGBANNHANVIEN.MANV=PHONGBAN.TRPHG

Mối kết hợpThuộc tính kết

NHANVIEN(2) giám sát NHANVIEN(1)NHANVIEN(1).MA_NQL=NHANVIEN(2).MANV

Mối kết hợpThuộc tính kết

Tập đầy đủ các phép toán ĐSQH

• Các phép tóan cơ sở: phép chọn, chiếu, hội, giao, trừ, tích.

• Tập hợp {,,,,,} được gọi là tập đầy đủ các phéptoán ĐSQH.

• Nếu E1 và E2 là các biểu thức ĐSQH, thì các biểu thứcsau đây cũng là các biểu thức ĐSQH:

• E1 E2• E1 E2• E1 E2• P(E1), với P là một vị từ (điều kiện) trên các thuộc tính

của E1• A(E1), với A là danh sách các thuộc tính của E1• (E1), với là tên mới cho quan hệ kết quả [và các

thuộc tính] được xác định bởi E1.

27

Phép chia (Division Operator)• Áp dụng cho câu truy vấn có từ “tất cả”.• Mục tiêu: Đưa ra các bộ trong một quan hệ, r, sao cho

khớp với tất cả các bộ trong quan hệ khác, s.• Ký hiệu: r s• Điều kiện: các thuộc tính trong S phải là một tập thuộc

tính con của R, i.e., S R. Cho r, s là các quan hệtương ứng trên lược đồ R, S

R = (A1, A2, …, Am,B1, …, Bn)S = (B1, …, Bn)

• Kết quả của phép chia r s là một quan hệ trên lược đồR-S = (A1, A2, …, Am).

• Kết quả của phép chia bao gồm tập hợp các bộ lấy từ r được định nghĩa trên các thuộc tính R-S sao cho khớpvới việc kết hợp mọi bộ trong s.

r s = {t | t R-S(r) u s : t.u r}• Nghĩa là, r s, với các thuộc tính A1, A2, …, Am, là tập

hợp chứa tất cả các bộ t sao cho với mọi bộ u trong s, thì có một bộ t.u trong r.

Nguồn gốc

• Cho 2 quan hệ r(Z), s(X), trong đó X Z.• Gọi Y = Z – X (và do đó Z = X Y). Y là

tập hợp các thuộc tính của r nhưng khônglà thuộc tính của s.

• Phép chia có thể được diễn đạt bằngphương pháp ĐSQH cơ sở:

• t1 (r)• t2 ((st1)-r)• t t1 – t2.

Examples

2

1

6

4

3

1

1

1

3

2

1

B

A

21B

r

s

1ba

1ba

1aa

3ba

1aa

C

b

a

a

D

a

a

a

B

1

1

1

E

A

1

1E

b

aD

r

s

A

r s

a

aB

C

A

r s• Ex3: Mã nhân viên tham gia tất cảđề án.

• Ex4: Mã nhân viên tham gia tất cảđề án do phòng số 4 phụ trách.

Phép chiếu tổng quát• Mở rộng phép chiếu bằng cách cho phép sử

dụng các hàm số học trong danh sách chiếu.• F1, F2, …, Fk(E)• E là biểu thức đại số quan hệ.• F1, F2, …, Fk là các biểu thức số học có liên

quan đến hằng và thuộc tính trong lược đồ E.• Ex: Cho quan hệ THETINDUNG(MSTHE,

TRIGIATHE, SOTIENSD). Tìm số tiền còn lạitrong thẻ:

• MSTHE, TRIGIATHE – SOTIENSD(THETINDUNG)

Các phép toán khác

• Hàm kết hợp – Aggregate Functions nhận vào tập hợpgiá trị và trả về một giá trị đơn.– Avg (average value): giá trị trung bình– Min (minimum value): giá trị nhỏ nhất.– Max (maximum value): giá trị lớn nhất.– Sum (sum of values): tính tổng các giá trị– Count (number of values): đếm số mẫu tin

• Phép toán gom nhóm – Grouping trong ĐSQH:G1, G2, …, GnF1(A1), F2(A2), …, Fn(An)(E)

• E là biểu thức đại số quan hệ• Gi là tên thuộc tính gom nhóm (có thể không có)• Fi là hàm gom nhóm• Ai là tên thuộc tính tính toán trong hàm gom nhóm Fi.

Examples

10

3

B

7

7

C

A

27SUM_C

r

SUM(C)(r)

• Tính số lượng nhân viên vàlương trung bình của nhânviên.– Quan hệ NHANVIEN sau khi

gom nhóm:

1null55000…888665555…498765432125000…987987987…488866555543000…987654321…498765432125000…999887777…

………

……

250003800040000

30000LUONG

333445555333445555888665555

333445555MA_NQL

5453453453…5666884444…

333445555

123456789MANV

5

5PHG

……

Ex1 Ex2

28

• Số lượng nhân viên vàlương trung bình của cảcông ty:

35125AVG_LUONG

8COUNT_MANV

COUNT(MANV),AVG(LUONG)(NHANVIEN)

• Số lượng nhân viên vàlương trung bình của mỗiphòng ban, không sử dụngphép đổi tên: 5500011

31000345PHG

33250AVG_LUONG

4COUNT_MANV

PHGCOUNT(MANV),AVG(LUONG)(NHANVIEN)

• Số lượng nhân viên vàlương trung bình của mỗiphòng ban, có sử dụngphép đổi tên: 5500011

31000345MAPHONG

33250LUONGTB

4SONV

MAPHONG,SONV,LUONGTB(PHGCOUNT(MANV),AVG(LUONG)(NHANVIEN))

Outer Join

• Mở rộng phép kết để tránh sự mất mát thông tin• Thực hiện phép kết và sau đó thêm vào kết quả

của phép kết các bộ của một quan hệ mà khôngphù hợp với các bộ trong quan hệ kia.

• 3 hình thức:– Left outer join: _– Right outer join: _– Full outer join: __

Outer Join Example:

Van

HongThanhTENLOT

Vinh

QuangTungTENNV

Quan lyPham

TranNguyenHONV

Dieu hanhNghien cuuTENPHG

Quan lyVinhVanPham

Dieu hanhQuangHongTran

NullTamThanhTran

NullHungManhNguyen

Quynh

Ngoc

Thanh

Ba

TENLOT

Nhu

Hang

Tung

Tien

TENNV

NullLe

NullBui

Nguyen

Dinh

HONV

Nghien cuu

Null

TENPHG

HONV,TENLOT,TENNV,TENPHG(NHANVIEN MANV=TRPHGPHONGBAN)

HONV,TENLOT,TENNV,TENPHG(NHANVIEN _MANV=TRPHGPHONGBAN)

Các thao tác cập nhật trên quanhệ

• Nội dung của CSDL có thể được cập nhậtbằng cách dùng các thao tác: Thêm, Xóa, Sửa.

• Tất cả các thao tác này được diễn đạtthông qua phép toán gán:

• rnew {Thêm, Xóa, Sửa}(rold)

Thêm (Insertion)• Hoặc nêu ra một bộ cần chèn, hoặc viết một câu

truy vấn mà kết quả là một tập hợp các bộ cầnchèn.

• Trong ĐSQH, thao tác chèn được diễn đạt như sau:r r E

– r là quan hệ và E là biểu thức ĐSQH.• Ex: Phân công cho nhân viên 123456789 làm thêm

đề án số 20 với số giờ là 10.• PHANCONG PHANCONG

{(‘123456789’,20,10)}

29

Xoá (Deletion)• Yêu cầu xóa được diễn đạt như câu truy vấn, chỉ khác ở chổ,

thay vì hiển thị các bộ kết quả với người dùng, thì bộ đượcchọn bị xóa khỏi CSDL.

• Chỉ có thể xóa toàn bộ bộ, không thể chỉ xóa một vài giá trịtrên các thuộc tính nào đó.

• Thao tác xóa được diễn đạt trong ngôn ngữ ĐSQH như sau:r r – E

– r là quan hệ và E là câu truy vấn ĐSQH.• Ex1: Xóa tất cả những phân công đề án cho nhân viên

123456789• PHANCONG PHANCONG –

(MA_NVIEN=‘123456789’(PHANCONG))• Ex2: Xóa tất cả những phân công đề án mà địa điểm đề án ở

“HA NOI”• r1 DDIEM_DA=‘HANOI’(PHANCONG SODA=MADADEAN)• r2 MA_NV,SODA,THOIGIAN(r1)• PHANCONG PHANCONG – r2.

Sửa (Updating)• Cơ chế làm thay đổi một giá trị trong một bộ mà không làm thay

đổi tất cả giá trị trong bộ đó.• Để cập nhật, sử dụng phép chiếu tổng quát hóa như sau:

r F1, F2, …, Fn(r)– Mỗi Fi có giá trị trả về là giá trị mới cho thuộc tính thứ i của r, thuộc tính thứ i

có thể giữ nguyên (nếu không muốn cập nhật) hoặc sẽ được cập nhật với giátrị mới đó.

– Fi là một biểu thức, bao gồm hằng và thuộc tính của r, để đưa ra giá trị mớicho thuộc tính đó.

• Có thể được biểu diễn bằng một chuỗi các thao tác xóa và thêm. Phép toán xóa sẽ xóa các bộ có giá trị cũ và phép toán thêm sẽchén thêm các bộ có giá trị mới.

• Ex1: Tăng thời gian làm việc của tất cả nhân viên lên 1.5 lần• PHANCONG MA_NV,SODA,THOIGIAN*1.5(PHANCONG)• Ex2: Trong quan hệ PHANCONG, các nhân viên làm việc trên 30

giờ sẽ tăng thời gian làm việc 1.5 lần, còn lại sẽ tăng thời gian làmviệc 2 lần.

• PHANCONG MA_NV,SODA,THOIGIAN*1.5(THOIGIAN>30(PHANCONG)) (THOIGIAN30(PHANCONG))

BAØI TAÄP ÑAÏI SOÁ QUAN HEÄCho löôïc ñoà cô sôû döõ lieäu duøng ñeå quaûn lyù hoà sô sinh vieân bao goàm caùc löôïc ñoàquan heä Sv(sinh vieân), Lop(Lôùp), kh(khoa), Mh(moân hoïc), Kq(keát quaû) ñöôïc moâtaû bôûi caùc löôïc ñoà quan heä nhö sau:

Sv(MASV, HOTEN,NU, NGAYSINH, MALOP, TINH, HOCBONG)Taân töø:Moãi sinh vieân coù moãi MASV duy nhaát. Moãi MASV xaùc ñònh taát caû caùcthuoäc tính coøn laïi cuûa sinh vieân ñoù.Lop(MALOP,TENLOP,SISO,MAKHOA)Taân töø:Moãi lôùp coù moät maõ lôùp duy nhaát, moãi lôùp chæ thuoäc veà moät khoa naøo ñoù.Kh(MAKHOA,TENKHOA, SOCBGD)Taân töø:Moãi khoa coù moãi MAKHOA duy nhaát. Moãi MAKHOA xaùc ñònh taát caû caùcthuoäc tính coøn laïi cuûa khoa ñoù.Mh(MAMH, TENMH, SOTIET)Taân töø:Moâi Moân hoïc coù moät MAMH duy nhaát. Moãi MAMH xaùc ñònh taát caû caùcthuoäc tính coøn laïi cuûa moân hoïc ñoù.Kq(MASV, MAMH, DIEMTHI)Taân töø:Moãi sinh vieân cuøng vôùi moät moân hoïc xaùc dònh duy nhaát moät ñieåm thi

BAØI TAÄP ÑAÏI SOÁ QUAN HEÄ

Xaùc ñònh khoùa quan heä:Sv(MASV, HOTEN,NU, NGAYSINH, MALOP, TINH, HOCBONG)Lop(MALOP,TENLOP,SISO,MAKHOA)Kh(MAKHOA,TENKHOA, SOCBGD)Mh(MAMH, TENMH, SOTIET)Kq(MASV, MAMH, DIEMTHI)

Xaùc ñònh caùc quan heäa) Ñaët rSv laø quan heä cuûa Sv:

rSv.{MASV,HOTEN,HOCBONG}b) Ñaët rLop laø quan heä cuûa Lop

((rSv rLop): NU vaø MAKHOA=’CNTT’).{MASV,HOTEN,HOCBONG}c) Ñaët rKq laø quan heä cuûa kQ, rMh laø quan heä cuûa Mh

((((rKq I><I rMh) I><I rSv) I><I rLop):MAKHOA=’CNTT’).{MASV,HOTEN,TENMH,DIEMTHI}

d) Ñaët rBangDiem laø quan heä cuûa caâu c)rPhieuDiem = rBangDiem:MASV=’99001’

MALOP

Chuyển từ mô hình thực thể kếthợp sang mô hình quan hệ

Chương 4 Qui tắc 1: Biến đổi một kiểu thực thể thành

một quan hệ. Đối với kiểu thực thể thông thường (regular

entity type): khóa của quan hệ là khóa của kiểuthực thể.

Thuộc tính của quan hệ là thuộc tính của kiểuthực thể.

Quan hệ chỉ chứa các thuộc tính thành phần củathuộc tính phức hợp.

Quan hệ không chứa các thuộc tính đa trị.

Biến đổi ERD thành các quan hệ

30

Biến đổi ERD thành các quan hệ

Biến đổi kiểu thực thể thông thường

CUSTOMER relation

CUSTOMER entity type with simple attributes

Biến đổi ERD thành các quan hệ

CUSTOMER entity type with composite attribute

CUSTOMER relation with address detail

Biến đổi thuộc tính phức hợp

Qui tắc 2: Biến đổi thuộc tính đa trị thành mộtquan hệ. Quan hệ chứa khóa của kiểu thực thể và thuộc

tính đa trị. Khóa của quan hệ gồm khóa của kiểu thực thể

và thuộc tính đa trị.

Biến đổi ERD thành các quan hệ Biến đổi ERD thành các quan hệ

Biến đổi thuộc tính đa trị

Multivalued attribute becomes a separate relation with foreign key

1–to–many relationship between original entity and new relation

Qui tắc 3: Biểu diễn mối liên kết 1-ngôi hoặc2-ngôi có lượng số một-một. Đặt khóa của kiểu thực thể bên phía bắt buộc và

các thuộc tính của mối liên kết vào quan hệ củakiểu thực thể bên phía tùy chọn.

Biến đổi ERD thành các quan hệ Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số một - một

EMPLOYEE relation with recursive foreign key

EMPLOYEE entity with Manages relationship

31

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số một - một

Qui tắc 4: Biểu diễn mối liên kết 1-ngôi hoặc2-ngôi có lượng số một-nhiều. Đặt khóa của kiểu thực thể bên phía một và các

thuộc tính của mối liên kết vào quan hệ của kiểuthực thể bên phía nhiều.

Biến đổi ERD thành các quan hệ

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số một - nhiều

EMPLOYEE relation with recursive foreign key

EMPLOYEE entity with Manages relationship

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số một - nhiều

Note the mandatory one

Again, no null value in the foreign key…this is because of the mandatory minimum cardinality

Qui tắc 5: Biến đổi mối liên kết 1-ngôi hoặc 2-ngôi có lượng số nhiều-nhiều thành một quanhệ. Quan hệ chứa các khóa của các kiểu thực thể

tham gia vào mối liên kết. Khóa của quan hệ gồm cả hai khóa của hai kiểu

thực thể. Thuộc tính của quan hệ là thuộc tính của mối

liên kết.

Biến đổi ERD thành các quan hệ Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết một ngôi có lượng số nhiều - nhiều

Bill-of-materials relationships (M:N)

ITEM and COMPONENT relations

32

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết hai ngôi có lượng số nhiều - nhiều

New intersection relationForeign key

Foreign key

Composite primary key

The Suppliesrelationship will need to become a separate relation

Qui tắc 6: Biến đổi mối liên kết 3-ngôi thànhmột quan hệ. Quan hệ chứa ba khóa của ba kiểu thực thể

tham gia vào mối liên kết. Mối liên kết có bao nhiêu kiểu thực thể bên phía

một thì quan hệ có bấy nhiêu khóa: đối với mộtkiểu thực thể bên phía một thì khóa của quan hệgồm cả hai khóa của hai kiểu thực thể còn lại. Nếu không có kiểu thực thể bên phía một thìkhóa của quan hệ bao gồm cả ba khóa của bakiểu thực thể.

Thuộc tính của quan hệ là thuộc tính của mốiliên kết.

Biến đổi ERD thành các quan hệ

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết ba ngôi

Biến đổi ERD thành các quan hệ

Biến đổi mối liên kết ba ngôi

Ngôn ngữ truy vấn SQL

Chương 5

Literal value “New York”, 1056.25, #12/2/2001#Constant laø moät teân ñaïi dieän cho moät giaù trò khoâng thay ñoåi nhö :True, False,NullToaùn töû soá hoïc +,-,*,/,\,^,Mod (ALGEBRA OPERATORS)Toaùn töû luaän lyù NOT,AND,OR (STANDART LOGICAL OPERATORS, BOOLEAN OPERATOR)Toaùn töû so saùnh <,<=,>,>=,=,<>Toaùn töû khaùc Between...And...,Like,&, IN

Wildcard character

A[!C] -> AA, AB, AD, ...Ñaïi dieän cho kyù töï khoâng phaûi kyù töï naèm sau !!

A[M-O] -> AM, AN, AOÑaïi dieän cho caùc kyù töï naèm trong khoaûng-

A[IN] -> AI, ANÑaïi dieän cho caùc kyù töï naèm trong[]

A## ->A13, A24, A35Ñaïi dieän cho moät kyù soá#

A? -> AI, ANH, Ñaïi dieän cho moät chuoãi kyù töï baát kyø.%

A_ -> AN, AM, ACÑaïi dieän cho moät kyù töï baát kyø_

Ví duïYÙ nghóaKyù töï

Haøm IIf(ñieàu kieän, trò 1, trò 2),Date(),Now(bieåu thöùc ngaøy), Time(bieåu thöùc ngaøy),Day(bieåu thöùc ngaøy), Month(bieåu thöùc ngaøy),Year(bieåu thöùc ngaøy),Len( bieåu thöùc chuoãi),Chr(maõ Ascii), InStr(Start, s1, s2),LCase(s), UCase(s),Left(s, n), Right(s, n),Mid(s, i, n),Nz(v1, v2)

For which task in SQL would you use an IN clausea) To query the database for unknown valuesb) To query the database for a range of valuesc) To query the database for a character patternd) To query the database for values in a specified list

33

•Ngoân ngöõ truy vaán ñöôïc chia thaønh ba loaïi:–Data definition query–Dynaset query (data retrieval query)–Action query (data modification query)

•Data definition query•Taïo löôïc ñoà quan heä rSV:•Create Table rSV (MASV Text (10) CONSTRAINT khoaChinh PRIMARY KEY,HOTEN Text (30), NU YesNo, NGAYSINH Date, MALOP Text (10), TINH Text (50), HOCBONG Double)

•Taïo löôïc ñoà quan heä rKQ:•Create Table rKQ (MASV text (10),MAMH Text (10), DIEMTHI Double,CONSTRAINTkhoaChinh PRIMARY KEY (MASV,MAMH) )

HOCBONGTINHMALOPNGAYSINHNUHOTENMASV

DIEMTHIMAMHMASV

•Theâm coät DTHOAI vaøo löôïc ñoà quan heä rSV:•Alter Table rSV Add Column DTHOAI Text (20)•Söûa kieåu kieåu döõ lieäu cuûa moät coät:•Alter Table rSV Alter Column DTHOAI double•Xoùa coät cuûa moät löôïc ñoà ñaõ coù:•Alter Table rSv Drop Column DTHOAI•Xoùa raøng buoäc khoùa chính:•Alter Table rSv Drop Constraint khoaChinh•Theâm raøng buoäc khoùa chính:•Alter Table rSv Add Constraint khoaChinh Primary Key (MASV)•Theâm raøng buoäc mieàn giaù trò:•ALTER TABLE rSV WITH NOCHECK ADD CONSTRAINT mgthb CHECK (hocBong<= 500000 )•Theâm khoùa ngoaïi:•ALTER TABLE rSV ADD FOREIGN KEY REFERENCES rLop (maLop)

•Which of the following will actually describe the layout of a table to the DBMS?a) SELECT TABLEb) DROP TABLEc) CREATE TABLEd) DELETE FROM TABLE

Dynaset query (data retrieval query)Use the following tables and data. The primary keys are underlined. All of the fields are strings, except STATUS, WEIGHT, and QUANTITY, which are Integers, and Shipment Date, which is Date. The table names are Shipper, Parts, Shipment, respectively.

PARTS

1

1

2

222

19RedCogP612BlueCamP514RedScrewP417BlueScrewP317GreenBoltP212RedNutP1

WEIGHTCOLORPNAMEPNUM

How many records does the following SQL example return?

SELECT colorFROM partsWHERE color = 'Blue' OR weight > 12;

1: color=‘Blue’2: weight > 12

RedBlueRedBlue

Green

COLOR

SELECT DISTINCT colorFROM parts WHERE color = 'Blue' OR weight > 12;

Red

Blue

Green

COLOR

PARTS

19RedCogP612BlueCamP514RedScrewP417BlueScrewP317GreenBoltP212RedNutP1

WEIGHTCOLORPNAMEPNUM

SHIPMENT

30010/1/2001P4S42009/21/2000P2S42007/8/2001P2S34005/23/2000P2S23004/12/1999P1S21008/30/1999P6S1

2003/4/2000P2S13009/23/2001P1S1

QuantityShipment DatePNUMSNUM

How many records does the following SQL example return?

SELECT parts.COLOR, Shipment.QuantityFROM parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUMWHERE (((parts.COLOR)='red') AND ((parts.WEIGHT)>10));

The result of the SQL

QUANTITYCOLOR

300RED300RED100RED300RED Select Distinct ..........

QUANTITYCOLOR

100RED300RED

222222

22

1

11

1

FROM parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM

ScrewBoltBoltBoltNutCog

BoltNut

PNAME

RedGreenGreenGreenRedRed

GreenRed

COLOR

300200200400300100

200300

Quantity

P4P2P2P2P1P6

P2P1

PNUM

1410/1/2001P4S4179/21/2000P2S4177/8/2001P2S3175/23/2000P2S2124/12/1999P1S2198/30/1999P6S1

173/4/2000P2S1129/23/2001P1S1

WEIGHTShipment DatePNUMSNUM

PARTS

19RedCogP612BlueCamP514RedScrewP417BlueScrewP317GreenBoltP212RedNutP1W..COLORPNAMEPNUM

SHIPMENT

30010/1/2001P4S42009/21/2000P2S42007/8/2001P2S34005/23/2000P2S23004/12/1999P1S21008/30/1999P6S12003/4/2000P2S13009/23/2001P1S1

QuantityShipment DatePNUMSNUM

WHERE (((parts.COLOR)='red') AND ((parts.WEIGHT)>10)) The following database contains weather measurements for a number of stations around the UK.. Each station is in a region, each station records a value for rainfall in cm and sunshine in hours. region(regionid, name) station(stationid, rainfall, sunshine, region)

Select the SQL statement which will list the station identity and rainfall for any station with more rainfall than station 6.

a) SELECT stationid, rainfall FROM station WHERE rainfall > (SELECT stationid, rainfall FROM station WHERE stationid=6)

REGION

LOTHIAN3

FIFE2

BORDERS1

NAMEREGIONID

STATION

23417

24116

26175

31234

30553

14112

12101

REGIONSUNSHINERAINFALLSTATIONID

34

FROM station a, station b

x

x

x

x

....................

1210112101

........................

..........712101

6

6

6

6

6

6

6

STATIONID

11

11

11

11

11

11

11

RAINFALL

4

4

4

4

4

4

4

SUNSHINE

2

2

2

3

3

1

1

REGION

23417

24116

26175

21234

20553

24112

22101

REGIONSUNSHINERAINFALLSTATIONID

b) SELECT a.stationid, a.rainfallFROM station a, station b WHERE a.rainfall > b.rainfall AND b.stationid = 6;

c) SELECT a.stationid, a.rainfallFROM station a, station b WHERE a.rainfall < b.rainfall AND b.stationid = 6

d) SELECT stationid, rainfall FROM station WHERE stationid=6

e) SELECT b.stationid, a.rainfallFROM station a, station b WHERE a.rainfall < b.rainfall

AND a.stationid = 6

SHIPPER

Athens30AdamsS5London20ClarkS4

Paris30BlakeS3Paris10JonesS2

London20SmithS1CITYSTATUSSNAMESNUM

PARTS

19RedCogP612BlueCamP514RedScrewP417BlueScrewP317GreenBoltP212RedNutP1

WEIGHTCOLORPNAMEPNUM

SHIPMENT

30010/1/2001P4S42009/21/2000P2S42007/8/2001P2S34005/23/2000P2S23004/12/1999P1S21008/30/1999P6S1

2003/4/2000P2S13009/23/2001P1S1

QuantityShipment DatePNUMSNUM

SELECT Sum(parts.WEIGHT) AS [SUM]FROM (parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM) INNER

JOIN Shipper ON Shipment.SNUM = Shipper.SNUMGROUP BY Shipper.CITY, parts.COLORHAVING (((Shipper.CITY)='London') AND ((parts.COLOR)='Red'));

Aggregate function, group functionSUM () MAX()MIN() AVG()COUNT()

FROM (parts INNER JOIN Shipment ON parts.PNUM = Shipment.PNUM) INNER JOIN Shipper ON Shipment.SNUM = Shipper.SNUM

ClarkClarkBlakeJonesJonesSmithSmithSmith

SNAME

S4S4S3S2S2S1S1S1

SNUM

1417171712191712

WEIGHT

2020301010202020

STATUS

ScrewBoltBoltBoltNutCogBoltNut

PNAME

RedGreenGreenGreenRedRed

GreenRed

COLOR

300200200400300100200300

Quantity

P4P2P2P2P1P6P2P1

PNUM

LondonP4S4LondonP2S4

ParisP2S3ParisP2S2ParisP1S2

LondonP6S1LondonP2S1LondonP1S1CITY....PNUMSNUM

Paris10JonesS217GreenBoltP2400P2S2Paris30BlakeS317GreenBoltP2200P2S3

London20SmithS117GreenBoltP2200P2S1London20ClarkS417GreenBoltP2200P2S4

London20ClarkS414RedScrewP4300P4S4

GROUP BY Shipper.CITY, parts.COLOR

Jones

SmithSmith

SNAME

S2

S1S1

SNUM

12

1912

WEIGHT

10

2020

STATUS

Nut

CogNut

PNAME

Red

RedRed

COLOR

300

100300

Quantity

P1

P6P1

PNUM

ParisP1S2

LondonP6S1LondonP1S1

CITY....PNUMSNUM

45WEIGHT

HAVING (((Shipper.CITY)='London') AND ((parts.COLOR)='Red'));

Paris34Green

London34Green

12

45

WEIGHT

Red

Red

COLOR

Paris

London

CITY Which of the following is not a Group function?a) AVGb) SQRTc) SUMd) MAXe) MIN

Truy vaán loàng nhau (nested query, sub query)Laø nhöõng caâu leänh truy vaán maø trong thaønh phaàn WHERE hay HAVING coù chöùa theâm moät caâu leänhSelect khaùc. Caâu leänh select khaùc naøy goïi laø subquery. Ta loàng caâu Select vaøo phaàn Where hay Having theo cuù phaùp sau:bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL) ANY, SOME laø baát kyø, ALL laø taát caûCaùc maãu tin cuûa query chính thoûa maõn toaùn töû so saùnh vôùi baát kyø/ taát caû maãu tin naøo cuûa subquerybieuThuc [NOT] IN (cauLenhSQL)Caùc maãu tin cuûa query chính coù giaù trò baèng vôùi moät giaù trò trong subquery[NOT] EXISTS (cauLenhSQL).Caùc maãu tin cuûa query chính thoûa maõn khi subquery khoâng/coù maãu tin

Which of the following statements will return the names of the products with Product ID 10, 11, or 42? a) SELECT ProductName FROM products WHERE ProductID IN (10,11,42) b) SELECT ProductName FROM products WHERE ProductID IN 10 OR 11 OR 42 c) SELECT ProductName FROM products WHERE ProductID = (10,11,42) d) SELECT ProductName FROM products WHERE ProductID IS (10,11,42) e) None of the above

Which line in the following SQL statement contains an error?1. SELECT title2. FROM books3. WHERE pubid EXISTS IN4. (SELECT pubid5. FROM books6. WHERE retail > 41.95);

a) Line 1b) Line 3c) Line 4d) Line 6

student(student_id, student_name, address, tutor_id)enrolment(student_id, subject_id, mark)subject(subject_id, subject_name, department)

SELECT subject_name, Count(*) FROM subject, enrolmentWHERE subject.subject_id = enrolment.subject_id AND mark > 40 AND subject_id IN(SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > 4 )GROUP BY subject_name

SELECT subject_name, Count(*) FROM subject INNER JOIN enrolment ON subject.subject_id = enrolment.subject_idWHERE mark > 40 AND subject_id IN(SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > 4 )GROUP BY subject_name

40CP1600990545CP1600990420CP1600990330CP1600990250CP1600990160CP1500990245CP15009901

marksubject_idstudent_idENROLMENT

STUDENT

T03T03T02T01T01

tutor_id

30 Hay street25 Hay street281 Pilbara Way 7 Blacktown Road 45 Hay street

address

HelgaSarahAlexanderMun chanJenny

student_name

99059904990399029901

student_id

SUBJECT

ITVisual BasicCP1600ITDatabaseCP1500departmentsubject_namesubject_id

FROM subject, enrolment

11111

11

2

2

22

3

3

ITVisual BasicCP160040CP16009905ITVisual BasicCP160045CP16009904ITVisual BasicCP160020CP16009903ITVisual BasicCP160030CP16009902ITVisual BasicCP160050CP16009901ITVisual BasicCP160060CP15009902ITVisual BasicCP160045CP15009901

40452030506045

mark

DatabaseDatabaseDatabaseDatabaseDatabaseDatabaseDatabase

subject_name

CP1500CP1500CP1500CP1500CP1500CP1500CP1500

subject_id

ITITITITITITIT

department

CP16009905CP16009904CP16009903CP16009902CP16009901CP15009902CP15009901

subject_idstudent_id

1: subject.subject_id = enrolment.subject_id2: mark > 403: subject_id IN(SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > 4 )

35

CP1600

CP1600

subject_id

45

50

mark

CP1600

CP1600

subject_id

Visual Basic

Visual Basic

subject_name

IT9904

IT9901

departmentstudent_id

The result

CP1600

subject_id

40CP1600990545CP1600990420CP1600990330CP1600990250CP1600990160CP1500990245CP15009901

marksubject_idstudent_idENROLMENT

5CP16002CP1500

Count(*)subject_id

SELECT subject_id FROM enrolment GROUP BY subject_id HAVING Count(*) > 4

SELECT subject_name, Count(*)....GROUP BY subject_name Visual Basic

subject_name

2

Count(*)

SELECT student_idFROM studentWHERE student_id NOT IN

(SELECT student_id FROM enrolmentWHERE subject_id = 'CP1500')

SELECT student_idFROM enrolmentWHERE NOT EXISTS

(SELECT student_id FROM enrolmentWHERE subject_id = 'CP1500')

ENROLMENT

xx

40CP1600990545CP1600990420CP1600990330CP1600990250CP1600990160CP1500990245CP15009901

marksubject_idstudent_idSTUDENT

xxx

T03T03T02T01T01

tutor_id

30 ...25..281 7 ... 45 Hay

address

HelgaSarahAlexanderMun chanJenny

student_name

99059904990399029901

student_id

990599049903

student_id

student_idIn a nested query, which query is evaluated first?a) The innerrmost queryb) the outermost queryc) both are evaluated simultaneouslyd) whichever query is selected to execute first by the user

Truy vaán caäp nhaät döõ lieäu (action query, data modification query) Update table Set field1 = bieåuThöùc1, field2 = bieåuThöùc2 [Where ñieàuKieän]Delete From table [Where ñieàuKieän]

Customer (cid, cname, city, discnt), Products (pid, pname, city, quantity, price), Agents (aid, aname, city, percent) and Oders (ordno, month, cid, aid, pid, qty, dollars).

Raise the price of each product in the PRODUCTS table by 10% for all PRODUCTS that were ordered from customer ‘c01’

a) Update products set price = price * 1.1 where orders.cid = ‘c01’;b) Update products p, Orders o set Products.price = Products.price * 1.1 where orders.cid = ‘c01’; c) Update products set price = .10 * price where pid in (select pid from orders where cid = ‘c01’);d) update products set price = 1.1 * price where pid in (select pid from orders where cid = ‘c01’) ;

Delete all customers that did not order product p01a) Delete ALL Customers where cid not in (selest cid from orders where pid = ‘p01’);b) Delete from Customers where products.pid <> ‘p01’;c) Delete from Customers where cid in (select cid from orders where pid <> ‘p01’);d) delete from Customers where cid not in (select cid from orders where pid = ‘p01’);

20020P02A01C036H00420015P01A01C025H000315020P02A02C016H0002

10010P01A01C015H0001dollarsqtypidaidcidmonthordno

Truy vaán choïnSelect [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][,...]]From table1 [Inner Join table2 On table1.field1 table2.field2] ...[Where dieuKien][Order By field1[Asc|Desc][,field2[Asc|Desc]][,...]]]; Ví duïSELECT MASV,HOTEN,HOCBONGFROM Sv;

SELECT MASV,HOTEN,HOCBONG FROM SvWHERE NU And MALOP='CÑTH2B' And HOCBONG>0;

SELECT MASV,HOTEN,HOCBONGFROM SvORDER BY HOCBONG DESC;

SELECT MASV,HOTEN,TENLOPFROM Sv Inner Join Lop On Sv.MALOP = Kh.LOP;

8.0NW990038.0NW990032.0DS990025.0DB990015.0DB99001

DIEMMAMHMAHVDIEMMAMHMAHVñieåm >= 5

MAÏNG MAÙY TÍNHNW8.0DS99002CAÁU TRUÙC DÖÕ LIEÄUDS2.0NW99002CÔ SÔÛ DÖÕ LIEÄUDB5.0DB99001TENMHMAMHDIEMMAMHMAHV

INNER JOIN

CAÁU TRUÙC DÖÕ LIEÄU8.0DS99002MAÏNG MAÙY TÍNH2.0NW99002CÔ SÔÛ DÖÕ LIEÄU5.0DB99001

TENMHDIEMMAMHMAHV

Truy vaán nhoùm döõ lieäuSelect [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][,...]]From table1 [Inner Join table2 On table1.field1 table2.field2] ...[Where dieuKienLocMauTinNguon][Group By fieldGroupBy[,fieldGroupBy[,...]][Having dieuKienLocMauTinTongHop][Order By field1 [Asc|Desc][,field2[Asc|Desc]][,...]]]

Group functions (aggregate functions) COUNT,MIN,MAX,SUM, AVGVí duïLaäp danh saùch sinh vieân coù ñaêng kyù ít nhaát laø ba moân hoïc

SELECT Kq.MASV,HOTEN,NU,NGAYSINH,COUNT(MAMH) As SLMHFROM Sv Inner Join Kq On Sv.MASV = Kq.MASVGROUP BY Kq.MASV,HOTEN,NU,NGAYSINHHAVING COUNT(MAMH)>=3;

Ñeám soá löôïng sinh vieân nöõ cuûa moãi khoaSELECT Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHOA) AS SOLUONGFROM (Sv Inner Join Lop On Sv.MALOP = LOP.MALOP)INNER JOIN Kh On Lop.MAKHOA=Kh.MAKHOAWHERE NU GROUP BY Kh.MAKHOA,TENKHOA;

36

Truy vaán loàng nhau (nested query, subquery)toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL) bieuThuc [NOT] IN (cauLenhSQL)[NOT] EXISTS (cauLenhSQL).Ví duï:Laäp danh saùch sinh vieân coù hoïc boång cao nhaátSELECT *FROM SvWHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV)

Laäp danh saùch sinh vieân coù ñieåm thi moân CSDL cao nhaátSELECT SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHIFROM sv Inner Join kq On Sv.MASV = Kq.MASVWHERE MAMH='CSDL' AND DIEMTHI >= ALL (SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL')Truy vaán caäp nhaät döõ lieäu (action query, data modification query)Update table Set field1 = bieåuThöùc1, field2 = bieåuThöùc2 Where ñieàuKieänDelete From table Where ñieàuKieänTruy vaán hôïpSelect .....Union Select ....Ví duï:Leänh sau ñaây gaáp ñoâi danh saùch sinh vieânSELECT MASV,HOTEN,NGAYSINH UNION SELECT MASV,HOTEN,NGAYSINH

Baøi taäp 2Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB)Phongban(MAPB,TENPB)Cong(MACT,MANV,SLNGAYCONG)Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKHOICONG,NGAYHT)Baøi taäp 3:Monhoc(MSMH ,TENMH,SOTINCHI ,TINHCHAT)Sinhvien(MSSV,HOTEN,NGAYSINH,LOP)Diem(MSSV,MSMH,DIEMTHI)Baøi taäp 4:Docgia(MADG,HOTEN,NGAYSINH,DIACHI,NGHENGHIEP)Phieumuon(SOPM,NGAYMUON,MADG)Chitietmuon(SOPM,MADAUSACH,NGAYTRA)Dausach(MADAUSACH,BAN,TAP,MASH)Sach(MASH,TENSACH,TACGIA,NHAXB,NAMXB) Baøi taäp 5:Khach(MAKH,HOTEN,DIACHI,DIENTHOAI)Hoadon(SOHD,NGAYLAPHD,NGAYBAN,MAKH)DongHoaDon(SOHD,MAHANG,SLBAN)Hang(MAHANG,TENHANG,DONGIA,DVT,MANHOM)Nhom(MANHOM,TENNHOM)

Baøi taäp 6:Giaovien(MAGV,HOTEN,DTGV,MAKHOA)Khoa(MAKHOA,TENKHOA,DTKHOA)Lop(MALOP,TENLOP,SISO,MAKHOA)Monhoc(MAMH,TENMH)Phonghoc(SOPHONG,CHUCNANG)Lichbaogiang(MALICH,NGAYDAY,MAGV)Dongbaogiang(MALICH,TUTIET,DENTIET,BAIDAY,GHICHU,LYTHUYET,

MAMH,MALOP,SOPHONG) Baøi taäp quaûn lyù thiQ1:HD(MAHDT,TENHDT, TENCT, DCHDT,DTHDT)Q2:PT(SOPT,DCPT,MAHDT)Q3:TS(SOBD, TENTS,NGSINH,PHAI,CCNGHE, MATR,SOPT)Q4:MT(MAMT,TENMT,BUOI,NGAY)Q5:GV(MAGV,TENGV,CHUYENMON,CHUCDANH,MAHDT,MATR)Q6:TR(MATR,TENTR,DCTR,LHDT)Q7:KQ(SOBD,MAMT,DIEMTHI)

120000TPHCMCÑDL111-11-1980TRUEVANLE THI THANH9902360000BAC LIEUCÑTH2B12-12-1979FALSEQUYENTRAN PHUOC99022

CA MAUCÑDL101-01-1980FALSEQUANGPHAM TAN99021120000CA MAUCÑTH2B11-11-1981TRUENGANNGUYEN THI 99020120000CAN THOCÑDL116-06-1982FALSEHUYENPHAM THI99019120000DONG THAPCÑDL119-05-1979FALSESANGPHAN VAN99018

TRA VINHCÑTH2B21-08-1977FALSELAMTRAN MINH9901780000TPHCMCÑÑT229-07-1982FALSEHOANGHUYNH THANH99016

CA MAUCÑÑT230-06-1976FALSEHAIPHAM VAN99015120000DONG THAPCÑÑT230-05-1981FALSECUONGTRAN QUANG99014

60000KIEN GIANGCÑTH2B29-03-1979FALSECONGVU THANH9901360000CAN THOCÑÑT228-08-1977FALSECHILE HUU99012

AN GIANGCÑAV122-12-1972FALSEANHBUI VAN99011BAC LIEUCÑAV114-04-1973FALSELONGHA VAN99010

60000VUNG TAUCÑTH2B26-06-1976FALSEQUYENTON THAT99009HA NOICÑTH2B15-05-1975FALSEQUANGTRUONG KIM99008CA MAUCÑAV115-03-1975TRUELOANVU THI99007SOC TRANGCÑAV119-09-1979FALSEVANNGUYEN HONG99006

120000CA MAUCÑAV120-11-1978FALSETRUNGLE THANH99005CA MAUCÑTH2B24-12-1980FALSETHUANNGUYEN NGOC99004BAC LIEUCÑTH2B16-08-1977FALSEHUYPHAM ANH99003

120000TPHCMCÑTH2B25-04-1986TRUETHAONGUYEN H DA99002120000TIEN GIANGCÑTH2B15-03-1977TRUETHUTRAN DAN99001

HOCBONGTINHMALOPNGAYSINHNUHOTENMASV

RAØNG BUOÄC TOAØN VEÏNRaøng buoäc toaøn veïn laø gì?

– laø caùc moái lieân heä giöõa caùc thuoäc tính, giöõa caùc boä– laø caùc ñieàu kieän maø caùc quan heä phaûi thoûa. – trong thöïc teá ta coù theå hieåu raøng buoäc toaøn veïn laø caùc qui taéc quaûn lyù.

Caùc yeáu toá cuûa raøng buoäc toaøn veïn:– ñieàu kieän

t1,t2 rt1.MASV t2.MASV

cuoái – boái caûnh laø caùc quan heä maø ñieàu kieän raøng buoäc coù hieäu löïc– taàm aûnh höôûng

rn

............

..........

r2

--+r1

Xoùa(X)Söûa(S)Theâm(T)(Teân RBTV)

The type of integrity constraint

– entity integrity constraint– derived integrity constraint– referential integrity constraint– domain integrity constraint– data type integrity constraint

MAÏNG MAÙY TÍNHNW8.0NW9900311.0SQL99002

CAÁU TRUÙC DÖÕ LIEÄUDShaiDS99002CÔ SÔÛ DÖÕ LIEÄUDB5.0DB99001TENMHMAMHDIEMMAMHMASV

Entityintegrity

Referential integrity

Domainintegrity

Data typeintegrity

250504

THANHTIENDONGIASOLUONG

derivedintegrity

37

Caùc loaïi raøng buoäc:– RBTV lieân boä

R1:t1,t2 rKhach

t1. MAKH t2. MAKHCuoái

– RBTV veà söï phuï thuoäc toàn taïiR2: rDatHang[MAKH]

rKhach[MAKH]

– RBTV veà mieàn giaù tròR3: t rHoaDon

t.TRIGIAHD > 0Cuoái

– RBTV lieân thuoäc tínhR4: t rHoaDon

t.NGAYLAP <= t.NGAYXUATCuoái

-++rKhachXoùaSöûaTheâmR1

++-rKhach-++rDatHang

XoùaSöûaTheâmR2

-++rHoaDon

XoùaSöûaTheâmR3

-++rHoaDon

XoùaSöûaTheâmR3

Caùc loaïi raøng buoäc:– RBTV lieân thuoäc tính lieân quan heä

R5: t1 rDatHang, t2 rHoaDonNeáu t1.SODH = t2.SODH thìt1.NGAYDH <= t2.NGAYXUAT

Cuoái – RBTV veà thuoäc tính toång hôïplaø giaù trò moät thuoäc tính ñöôïc tính toaùntöø caùc giaù trò khaùc nhöTHANHTIEN=SOLUONG*DONGIA

+++rHoaDon+++rDatHang

XoùaSöûaTheâmR5

Chương 6

Chuẩn hóa dữ liệu

• PHUÏ THUOÄC HAØM

1:25p15/8412Copely5:50a13/8281Copely5:50a9/8281Copely1:25p12/8116Chin

10:15a13/883Chin10:15a11/883Clark

6:35p12/8301Clark5:50a8/8281Clark1:25p10/8116Cushing

10:15a9/883Cushing

GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong

•Moãi maùy bay coù moät giôø khôûi haønh duy nhaát.•Neáu bieát phi coâng, bieát ngaøy giôø khôûi haønh thì bieát ñöôïc maùy bay do phi coâng aáy laùi.•Neáu bieát maùy bay, bieát ngaøy khôûi haønh thì bieát phi coâng laùi chuyeán bay aáy.

o MAYBAY xaùc ñònh GIOKHo {PHICONG,NGAYKH,GIOKH} xaùc ñònh MABAYo {MAYBAY,NGAYKH} xaùc ñònh PHICONG• hayo GIOKH phuï thuoäc haøm vaøo MAYBAYo MABAY phuï thuoäc haøm vaøo {PHICONG,NGAYKH,GIOKH}o PHICONG phuï thuoäc haøm vaøo {MAYBAY,NGAYKH}• vaø ñöôïc kyù hieäu nhö sau:o {MAYBAY} GIOKHo {PHICONG,NGAYKH,GIOKH} MABAY o {MAYBAY,NGAYKH} PHICONG ÑÒNH NGHÓA:Q(A1,A2,…,An) laø löôïc ñoà quan heä.X, Y laø hai taäp con cuûa Q+={A1,A2,…,An}.r laø quan heä treân Q. t1,t2 laø hai boä baát kyø cuûa r.

X Y (t1.X = t2.X t1.Y = t2.Y)

• Heä quaû: Neáu X Y thì X Y.• Chöùng minh:• Giaû söû t1.X = t2.X do X Y neân t1.Y = t2.Y theo ñònh nghóa suy ra X Y• Trong tröôøng hôïp naøy X Y ñöôïc goïi laø phuï thuoäc haøm hieån nhieân.• Ví duï phuï thuoäc haøm X X laø phuï thuoäc haøm hieån nhieân.• Vaäy vôùi r laø quan heä baát kyø, F laø taäp phuï thuoäc haøm thoûa treân r, ta luoân coù• F {caùc phuï thuoäc haøm hieån nhieân}

1:25p15/8412Copely6:35p12/8301Clark5:50a13/8281Copely5:50a9/8281Copely5:50a8/8281Clark1:25p12/8116Chin1:25p10/8116Cushing

10:15a13/883Chin10:15a11/883Clark10:15a9/883Cushing

GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong

MAYBAY->GIOKH ?

38

6:35p12/8301Clark1:25p15/8412Copely1:25p12/8116Chin1:25p10/8116Cushing

10:15a13/883Chin10:15a11/883Clark10:15a9/883Cushing

5:50a13/8281Copely5:50a9/8281Copely5:50a8/8281Clark

GIOKH)NGAYKH,MAYBAY,(PHICONG,phanCong

SATIFIES(phanCong,GIOKH,MAYBAY) GIOKHMAYBAY cho keát quaû false

ABCDBCDACDCD

ABDABCBDBCADACABDCBADCBA

Q+ = {A,B,C,D} coù bao nhieâu taäp con?

- coù 2n=24=16coù bao nhieâu phuï thuoäc haøm coù theå coù?

- coù 2nx2n=24x24=256

ABAB......

AAA,AB,.....ABCDABCDA.....ABCDABCD

In the instance of the relation R(A,B,C,D,E) shown below, which of the following functional dependencies (FD's) hold? Briefly justify your answer.

144215434154321EDCBA I. AB C

II. B D (T)III. DE A (T)

Phuï thuoäc haøm (functional dependency, FD)Q(A1,A2,…,An) laø löôïc ñoà quan heä.Q+={A1,A2,…,An}X, Y laø hai taäp con cuûa Q+

r laø quan heä treân Q. t1,t2 laø hai boä baát kyø cuûa r.

X Y (t1.X = t2.X t1.Y = t2.Y)

Kyù hieäu: X Y ñoïc laø- X xaùc ñònh Y (X functional determines Y)-Y phuï thuoäc vaøo X (Y functional dependent on X )

-Neáu X Y thì X Y laø PTH hieån nhieân (trivial dependence)

Phuï thuoäc haøm ñöôïc suy dieãn logic töø FNoùi raèng phuï thuoäc haøm X Y ñöôïc suy dieãn logic töø F neáu moät quan heä r baát kyø thoûamaõn taát caû caùc phuï thuoäc haøm cuûa F thì cuõng thoûa phuï thuoäc haøm X Y. Kyù hieäu F|= X Y.

Bao ñoùng cuûa FBao ñoùng cuûa F kyù hieäu F+ laø taäp taát caû caùc phuï thuoäc haøm ñöôïc suy dieãn logic töø F.

Caùc tính chaát cuûa taäp F+

1.Tính phaûn xaï: F F+

2.Tính ñôn ñieäu: Neáu F G thì F+ G+

3.Tính luõy ñaúng: (F+)+ = F+.Goïi G laø taäp taát caû caùc phuï thuoäc haøm coù theå coù cuûa r, phaàn phuï cuûa F kyù hieäu F- = G - F+

Chöùng minh1.X Y F r thoûa X Y X Y F+

2.Neáu X Y laø phuï thuoäc haøm thuoäc F+ ta phaûi chöùng minh X Y thuoäc G+

Giaû söû r thoûa taát caû caùc phuï thuoäc haøm cuûa G (1) r thoûa taát caû phuï thuoäc haøm cuûa F vì F G r thoûa phuï thuoäc haøm X Y (2) vì X YF+

(1) vaø (2) X Y G+ F+ G+

F F+ (tính phaûn xaï) F+ (F+)+ (1)Neáu X Y (F+)+ (2) X Y F+ thaät vaäy: (3)Giaû söû r thoûa taát caû caùc phuï thuoäc haøm cuûa F (4) r thoûa taát caû caùc phuï thuoäc haøm cuûa F+ (theo ñònh nghóa) r thoûa taát caû caùc phuï thuoäc haøm cuûa (F+)+ (theo ñònh nghóa) r thoûa X Y (vì (2)) X Y F+

(1) vaø (3) (F+)+ = F+

Chöùng minh:Luaät theâm vaøo: giaû söû coù t1.XZ = t2.XZ (1)

t1.X = t2.X t1.Y = t2.Y (do X Y) (2) XZ Y (do (1) (2))

Luaät hôïp: giaû söû coù t1.X = t2.X (1) t1.X = t2.X vaø t1.Z = t2.Z t1.XZ = t2.XZ (2) X YZ (do (1) (2))

Luaät phaân raõ: gæa söû coù t1.X = t2.X (1) t1.YZ = t2.YZ (do X YZ) t1.Y = t2.Y (2) X Y (do (1) (2))

Luaät baéc caàu: giaû söû coù t1.X = t2.X (1) t1.Y = t2.Y t1.Z = t2.Z (2) X Z (do (1) (2))

Luaät baéc caàu giaû: giaû söû coù: t1.XZ = t2.XZ (1) t1.X = t2.X vaø t1.Z = t2.Z (2) t1.Y = t2.Y (do X Y) (3) t1.YZ = t2.YZ (Keát hôïp (2) vaø (3)) t1.W = t2.W (do YZ W) (4) XZ W

Noùi raèng X Y laø phuï thuoäc haøm ñöôïc suy dieãn nhôø vaøo luaät daãn Armstrong neáu toàn taïi caùc taäp phuï thuoäc haøm F0 F1 ... Fn sao cho X Y Fn vôùiF0,F1,...,Fn laàn löôït ñöôïc hình thaønh thoûa phöông phaùp sau:Böôùc 1: F0 = FBöôc 2:choïn moät soá phuï thuoäc haøm trong Fi aùp duïng heä luaät daãn Armstrong ñeå thu ñöôïc moät soá phuï thuoäc haøm môùi. Ñaët Fi+1= Fi {caùc phuï thuoäc haømmôùi}

Ví duï: Cho F = {AB C,C B,BC A} thì coù F0 F1 F2 sao cho C A F2F0 = {AB C,C B, BC A} aùp duïng luaät hôïp cho C B vaø C CF1 = {AB C,C B, BC A, C BC} aùp duïng luaät baéc caàu.F2 = {AB C,C B, BC A, C BC, C A}Heä quaû: Heä luaät daãn Armstrong laø ñuùng nghóa laø neáu F laø taäp caùc phuï thuoäc

haøm ñuùng treân quan heä r vaø X Y laø moät phuï thuoäc haøm ñöôïc suy dieãn töø F nhôø heä luaät daãn Armstrong thì X Y ñuùng treân quan heä r. Vaäy X Y laø phuïthuoäc haøm ñöôïc suy dieãn logic töø F

Ta seõ chöùng minh heä luaät daãn Armstrong laø ñuû nghóa laø moïi phuï thuoäc haømX Y ñöôïc suy dieãn logic töø F seõ ñöôïc suy dieãn töø F nhôø heä luaät daãn Armstrong

39

Bao ñoùng cuûa taäp thuoäc tính X ñoái vôùi F kyù hieäu laø X+ ñöôïc ñònh nghóa nhö sau:X+ = Ai vôùi X Ai laø phuï thuoäc haøm ñöôïc suy dieãn töø F nhôø heä tieân ñeà

ArmstrongTính chaát:bao ñoùng cuûa Q laø Q+

Caùc tính chaát cuûa bao ñoùngNeáu X,Y laø caùc taäp con cuûa taäp thuoäc tính Q+ thì ta coù caùc tính chaát sau ñaây:1.Tính phaûn xaï: X X+

2.Tính ñôn ñieäu: Neáu X Y thì X+ Y+

3.Tính luõy ñaúng:X++ = X+

4. (XY)+ X+Y+5. (X+Y)+ = (XY+)+ = (X+Y+)+

6. X Y Y+ X+

7. X X+ vaø X+ X8. X+ = Y+ X Y vaø Y XChöùng minh:1. X X X+ X2. A X+ X A Y A A Y+

3. A X++ X+ A vaø X X+ (aùp duïng 8) X A AX+

X++ X+. AÙp duïng 1 X++ X+

7. X A1 vaø X A2 X A1A2 .... XAi = X+

X+ X X+ X (Phuï thuoäc haøm hieån nhieân)

Heä luaät daãn Armstrong (Armstrong inference rule)Heä luaät daãn laø moät phaùt bieåu cho bieát neáu moät quan heä r thoûa maõn moät vaøi phuï

thuoäc haøm thì noù phaûi thoûa maõn phuï thuoäc haøm khaùc.Vôùi X,Y,Z,W laø taäp con cuûa Q+. r laø quan heä baát kyø cuûa Q. Ta coù 6 luaät daãn sau:

** Reflexive rule: X X ** Augmentation rule : Cho X Y XZ Y** Transitive rule : Cho X Y, Y Z X Zba luaät daãn treân laø heä tieân ñeà Armstrong (Armstrong’s Axioms)

Union rule : Cho X Y, X Z X YZDecomposition rule : Cho X YZ X YPseudo transitive rule û: Cho X Y, YZ W XZ W

Bao ñoùng của taäp PTH F (closures of functional dependences sets)Bao ñoùng cuûa F kyù hieäu F+ laø taäp taát caû caùc phuï thuoäc haøm ñöôïc suy dieãn logic töø F.

Bao ñoùng cuûa taäp thuoäc tính (closures of attributes sets)Bao ñoùng cuûa taäp thuoäc tính X ñoái vôùi F kyù hieäu laø X+ laø taäp caùc thuoäc tính phuï thuoäcvaøo X

Given the function dependencies RHJ; JM for the relation schema E(RHJM). The dependency RM can be inferred by:

a) The transitive rule c) The reflexive ruleb) None of the above d) The augmentation rule

Tính lieân tieáp taäp caùc taäp thuoäc tính X0,X1,X2,... theo phöông phaùp sau:Böôùc 1: X0 = XBöôùc 2: laàn löôït xeùt caùc phuï thuoäc haøm cuûa F

Neáu YZ coù Y Xi thì Xi+1 = Xi ZLoaïi phuï thuoäc haøm Y Z khoûi F

Böôùc 3: Neáu ôû böôùc 2 khoâng tính ñöôïc Xi+1 thì Xi chính laø bao ñoùng cuûa XNgöôïc laïi laëp laïi böôùc 2

Ví duï 1: Cho löôïc ñoà quan heä Q(ABCDEGH) vaø taäp phuï thuoäc haøm FF={f1: BA; f2: DACE; f3: DH; f4: GH C; f5: ACD}Tìm bao ñoùng cuûa caùc taäp X = {AC} döïa treân F.Giaûi:Böôùc 1: X+ = ACBöôùc 2: Do f1, f2, f3, f4 khoâng thoûa. f5 thoûa vì X+ AC

X+ = AC D = ACDLaäp laïi böôùc 2: f1 khoâng thoûa, f2 thoûa vì X+ AD:

X+ = ACD CE = ACDE f3 thoûa vì X+ DX+ = ACDE H = ACDEHf4 khoâng thoûa, f5 khoâng xeùt vì ñaõ thoûa

Laäp laïi böôùc 2: f1,f2,f3 khoâng xeùt vì ñaõ thoûa, f4 khoâng thoûa,f5 khoâng xeùt vì ñaõthoûa.Trong böôùc naøy X+ khoâng thay ñoåi => X+ ={ACDEH} laø bao ñoùng cuûa X

Let Q be a relation with attributes (A,B,C,D,E,F) and let the following functional dependencies hold

F={f1: BA;f2: DACE; f3: DH; f4: GH C;f5: ACD}

Find the closure of X = {AC}.

Let R be a relation with attributes (A,B,C,D,E,F) and let the following functional dependencies hold.

A BA CCD ECD FB E

Given the above functional dependencies, which of the following functional dependencies does not hold: a) A -> E b) CD -> EF c) AD -> F d) B -> CD

Giaûi:X0 = ACX1 = AC D = ACD do veá traùi f5 thoûa X0 ACX2 = ACD CE = ACDE do veá traùi f2 thoûa X1 ADX3 = ACDE H = ACDEH do veá traùi f3 thoûa X2 D

X3 khoâng thay ñoåi => X+ ={ACDEH} laø bao ñoùng cuûa X

Ñònh lyù Thuaät toaùn tìm bao ñoùng cho keát quaû Xi = X+

Chöùng minh1. Ta chöùng minh Xi X+ baèng phöông phaùp qui naïp. Böôùc cô sôû chöùng minh X X0Theo tính phaûn xaï cuûa heä luaät daãn thì X X theo thuaät toaùn thì X0 = X X X0. Vaäy X0 X+

Böôùc qui naïp giaû söû coù X Xi-1 (1) ta phaûi chöùng minh X XiTheo thuaät toaùn tìm bao ñoùng thì coù fj = Xj Yj ñeå Xi-1 Xj vaø Xi = Xi-1 Yj Xi-1 Yj (2). (1) vaø (2) X Yj (3)(1) vaø (3) X Xi-1Yj = Xi X XiVaäy Xi X+

2. Ta chöùng minh A X+ A XiA X+ neân coù moät phuï thuoäc haøm X A ñöôïc suy dieãn nhôø vaøo luaät daãn

Armstrong, maø X Xi A Xi

Heä quaûQ laø löôïc ñoà quan heä. F laø taäp phuï thuoäc haøm, A laø thuoäc tính chæ xuaát hieän ôû veá phaûicuûa caùc phuï thuoäc haøm trong F thì X+ = (X – A)+ AQ laø löôïc ñoà quan heä. F laø taäp phuï thuoäc haøm, X laø taäp con cuûa Q+ vaø Y = {caùc thuoäctính xuaát hieän ôû veá phaûi cuûa caùc phuï thuoäc haøm trong F} thì X+ X Y.Chöùng minhTheo thuaät toaùn tìm bao ñoùng thì bao ñoùng X+ hay (X-A)+ ñöôïc hình thaønh qua moätsoá böôùc. Ta chöùng minh bieåu thöùc X+ = (X – A)+ A theo qui naïp.Böôùc cô sôû: X0 = X, (X-A)0 = X - A X0 =(X - A)0 A ñuùngBöôùc qui naïp: giaû söû ta coù Xi-1 =(X - A)i-1 A. Bao ñoùng Xi ñöôïc hình thaønh do coù fj = Xj Yj ñeå:Xi-1 Xj vaø Xi = Xi-1 Yj = (X - A)i-1 A Yj (1). Söï hình thaønh Xi luoân keùo theo söï hình thaønh (X-A)i vì:Xi-1 = (X-A)i-1 A Xj do Xj khoâng chöùa A neân:(X - A)i-1 Xj vaäy (X - A)i = (X - A)i-1 Yj (2)(1) vaø (2) cho:Xi = (X - A)i A laø ñieàu phaûi chöùng minhBöôùc cô sôû: X0 = X X0 X YBöôùc qui naïp: giaû söû coù Xi-1 X Y ta chöùng minh Xi X Y.Bao ñoùng Xi ñöôïc hình thaønh do coù fj = Xj Yj ñeå:Xi-1 Xj vaø Xi = Xi-1 Yj X Y Yj do Yj laø veá phaûi cuûa phuï thuoächaøm neân Y Yj = Y vaäy Xi X Y

40

Ñònh lyùHeä luaät daãn Armstrong laø ñaày ñuû nghóa laø moïi phuï thuoäc haøm X Y ñöôïc suydieãn logic töø F seõ ñöôïc suy dieãn töø F nhôø heä luaät daãn Armstrong.Chöùng minh:Ñeå chöùng minh XY ñöôïc suy dieãn töø F nhôø heä luaät daãn Armstrong ta chöùngminh baèng phöông phaùp phaûn chöùng nghóa laø neáu XY khoâng suy dieãn ñöôïc töøheä luaät daãn Armstrong thì coù quan heä r thoûa caùc phuï thuoäc haøm F nhöng khoângthoûa phuï thuoäc haøm XY (ñieàu naøy nghòch lyù vôùi giaû thuyeát laø moïi quan heä r thoûa caùc phuï thuoäc haøm trong F thì r cuõng thoûa phuï thuoäc haøm XY). Thaät vaäy giaû söû Q(A1,A2,...,An) laø löôïc ñoà quan heä, ai,bi laø caùc giaù trò khaùcnhau treân mieàn giaù trò Ai. r laø quan heä treân Q coù hai boä t vaø t’ñöôïc xaùc ñònh nhösau:

t=(a1,a2,...,an)t’.Ai= ai neáu Ai X+ t’.Ai= bi neáu Ai X+

Vaäy quan heä r coù t.X = t’.X nhöng t.Y t’.Y (t.Y goàm caùc giaù trò ai coøn t’.Y phaûicoù ít nhaát moät bi neáu khoâng Y X+ X Y ñöôïc suy daãn töø heä luaät daãnArmstrong ). Nhö vaäy r khoâng thoûa phuï thuoäc haøm X Y. Baây giôø ta chöùng minh quan heä r thoûa moïi phuï thuoäc haøm trong F. Goïi W Z laøphuï thuoäc haøm trong F.Neáu W X+ t.W t’.W meänh ñeà (t.W = t’.W t.Z = t’.Z)ñuùngNeáu W X+ t.Z = t’.Z = boä caùc ai meänh ñeà (t.W = t’.W t.Z = t’.Z)ñuùng

Heä quaû:Bao ñoùng cuûa taäp thuoäc tính X ñoái vôùi F laø:X+ = Ai vôùi X Ai laø phuï thuoäc haøm ñöôïc suy dieãn logic töø FTính chaát

X Y F+ Y X+

Chöùng minhX Y coù k sao cho Y = Ak Ai = X+

Y X+X+=Y (X+ - Y)X Y (X+ - Y) X Y

Thuaät toaùn xaùc ñònh f = XY coù laø thaønh vieân cuûa F hay khoângBöôùc 1: tính X+

Böôùc 2: so saùnh X+ vôùi Y neáu X+ Y thì ta khaúng ñònh X Y laø thaønh vieân cuûa F

Thuaät toaùn tìm F+

Böôùc 1: Tìm taát caû taäp con cuûa Q+

Böôùc 2: Tìm taát caû caùc phuï thuoäc haøm coù theå coù cuûa Q.Böôùc 3: Tìm bao ñoùng cuûa taát caû taäp con cuûa Q.Böôùc 4: Döïa vaøo bao ñoùng cuûa taát caû caùc taäp con ñaõ tìm ñeå xaùc ñònh phuï thuoäc haøm

naøo thuoäc F+

Q(A,B,C) F = {AB C,C B} F+ ?

Taát caû caùc taäp con cuûa taäp thuoäc tính

Taát caû caùc phuï thuoâc haøm coù theå coù:{A,B,C}

{B,C}

{A,C}{A,B}

{C}{B}{A}

CBA

BCABACABF+CACABABCF+BABCBABAACBCAACBF+CABABBCF+BBCBAAC

BCABCACABCF+CABCCBFABACF+BACAABCAABBCACACBCF+CBCF+CAABCFBCABCAB

Bao ñoùng cuûa taát caû taäp con

A+ = A C+ = BCB+ = B AC+ = ABC{AB}+ = ABC BC+ = BC

F+ = { ABC, ABAC,ABBC,ABABC,CB, CBC,ACB, ACAB,ACBC,ACABC}

PHUÛ CUÛA TAÄP PHUÏ THUOÄC HAØM (cover of dependencies)Phuï thuoäc haøm töông ñöông (equivalences among sets of dependencies)Noùi raèng hai taäp phuï thuoäc haøm F vaø G laø töông ñöông (equivalent) neáu F+=G+

kyù hieäu F G.Ta noùi F phuû G neáu F+ G+

Ví duï: Cho löôïc ñoà quan heä Q(ABCDE) hai taäp phuï thuoäc haøm:F={ABC,AD,CDE} vaø G={ABCE,AABD,CDE}

• a) F coù töông ñöông vôùi G khoâng?• b) F coù töông ñöông vôùi G’={ABCDE} khoâng? Phuï thuoäc haøm coù veá traùi dö thöøa

Noùi raèng phuï thuoäc haøm Z Y coù veá traùi dö thöøa neáu coù moät AZ sao cho F F-{Z Y}{(Z-A) Y}

Ví duï: cho taäp phuï thuoäc haøm F={ABC, BC, ABD} thì phuï thuoäc haømABD coù veá traùi dö thöøa B vì:F F – {AB D}{A D}

{A BC,B C,A D}

Taäp phuï thuoäc haøm coù veá traùi khoâng dö thöøa laø taäp phuï thuoäc haøm khoâng coù phuïthuoäc haøm coù veá traùi dö thöøa

PHUÛ CUÛA TAÄP PHUÏ THUOÄC HAØM (cover of dependencies)Phuï thuoäc haøm töông ñöông (equivalences among sets of dependencies)Noùi raèng hai taäp phuï thuoäc haøm F vaø G laø töông ñöông (equivalent) neáu F+=G+kyù hieäu F G.Ta noùi F phuû G neáu F+ G+

Ñeå chöùng minh F vaø G töông ñöông ta chöùng minh:F+ G Baèng caùch: XYG XY F+

G+ F Baèng caùch: XYF XY G+

Ví duï: Cho löôïc ñoà quan heä Q(ABCDE) hai taäp phuï thuoäc haøm:F={ABC,AD,CDE} vaø G={ABCE,AABD,CDE}F coù töông ñöông vôùi G khoâng?

Ta coù AF+ =ABCDE ABCE F+, AABD F+

CDF+= CDE CDE F+

F+ G

Ta coù AG+=ABCED ABCG+, ADG+,

CDG+=CDE CDEG+

G+ FVaäy F+=G+

Given the following schema R(Emp #,Dept #,City) functional dependencies, F={Emp#City, Emp#Dept#, Dept#City; Emp#,Dept#City}. Which set of functions dependencies is a minimal cover for F ?

a) {Emp#City; Dept#City} =Ab) {Emp#City; Emp#Dept#} =Bc) {Emp#Dept#; Dept#City} =Cd) {Empt#,Dept#City; Emp#Dept#} =D

Giải:a) Emp#+=Emp#,City Emp#Dept# A+

b) Emp#+=Emp#,City,Dept#; Dept#+=Dept# Dept#City B+

c) Emp#+=Emp#,Dept#,City; Dept#+=Dept#,City; Emp#,Dept#+= Emp#,Dept#,Cityd) Emp#+=Emp#,Dept#,City; Dept#+=Dept# Dept#City D+

Minimal cover F ñöôïc goïi laø moät phuû toái thieåu neáu F thoûa ñoàng thôøi ba ñieàu kieän sau:1) F laø taäp phuï thuoäc haøm coù veá traùi khoâng dö thöøa2) F laø taäp phuï thuoäc haøm coù veá phaûi moät thuoäc tính.3) F laø taäp phuï thuoäc haøm khoâng dö thöøa

41

•Taäp phuï thuoäc haøm coù veá phaûi laø moät thuoäc tính•Moãi taäp phuï thuoäc haøm F ñeàu töông ñöông vôùi moät taäp phuï thuoäc haømG maø veá phaûi cuûa caùc phuï thuoäc haøm trong G chæ goàm moät thuoäc tính. •Ví du: cho F = {ABC, BC, ABD} ta suy ra• F {AB, AC ,BC, ABD} = G

•Taäp phuï thuoäc haøm khoâng dö thöøaNoùi raèng F laø taäp phuï thuoäc haøm khoâng dö thöøa neáu khoâng toàn taïi F’F sao cho F’ F.Ngöôïc laïi F laø taäp phuï thuoäc haøm dö thöøa. Ví duï: cho F = {ABC, BD, ABD} thì F dö thöøa vìF F’= {ABC, BD}

•Taäp phuï thuoäc haøm toái thieåu•F ñöôïc goïi laø moät taäp phuï thuoäc haøm toái thieåu neáu F thoûa ñoàng thôøi bañieàu kieän sau:

– F laø taäp phuï thuoäc haøm coù veá traùi khoâng dö thöøa– F laø taäp phuï thuoäc haøm coù veá phaûi moät thuoäc tính.– F laø taäp phuï thuoäc haøm khoâng dö thöøa

Ví duï: Cho löôïc ñoà quan heä Q(A,B,C,D) vaø taäp phuï thuoäc F nhö sau:• F={ABCD, BC, CD}• Haõy tính phuû toái thieåu cuûa F. •Ví duï: Cho löôïc ñoà quan heä Q(MSCD,MSSV,CD,HG) vaø taäp phuï thuoäc:

F = { MSCD CD;CD MSCD;CD,MSSV HG;MSCD,HG MSSV;CD,HG MSSV;MSCD,MSSV HG}

• Haõy tìm phuû toái thieåu cuûa F•Khoùa cuûa Q:

Q(A1,A2,…,An)laø löôïc ñoà quan heä.Q+ laø taäp thuoäc tính cuûa Q.F laø taäp phuï thuoäc haøm treân Q.K laø taäp con cuûa Q+.

•Noùi raèng K laø moät khoùa cuûa Q neáu:– K+ = Q+ vaø– Khoâng toàn taïi K' K sao cho K’+= Q+

•Taäp thuoäc tính S ñöôïc goïi laø sieâu khoùa neáu S K•Thuoäc tính A ñöôïc goïi laø thuoäc tính khoùa neáu AK vôùi K laø khoùa baát kyø cuûa Q. Ngöôïc laïi A ñöôïc goïi laø thuoäc tính khoâng khoùa.

Ví duï: Cho Q(A,B,C,D,E,G,H,I)F={ACB; BIACD; ABCD; HI; ACEBCG; CGAE}Tìm moät khoùa cuûa Q.Thuaät toaùn tìm moät khoùa cuûa moät löôïc ñoà quan heä QBöôùc 1: gaùn K = Q+

Böôùc 2: A laø moät thuoäc tính cuûa K, ñaët K’=K A. Neáu K’+=Q+ thì gaùnK = K' thöïc hieän laïi böôùc 2

Ví duï: Tìm taát caû caùc khoùa cuûa löôïc ñoà quan heä vaø taäp phuï thuoäc haøm nhö sau: Q(C,S,Z); F={CSZ; ZC}

CSZCSZCSZ

SZSZSZCSZ

CZCZ

ZCZ

CSCSCSZCS

SS

CCkhoùaSieâu khoùaXi+Xi

•Heä quaû: Neáu K laø khoùa cuûa Q thì TN K vaø TD K = •Chöùng minh TN K•Theo heä quaû 2 cuûa thuaät toaùn tìm bao ñoùng ta coù:

K+ KTDTGTa chöùng minh A TN A K. Thaät vaäy:•Neáu AK K+KTDTG Q+-A K khoâng laø khoùa maâu thuaãn•Chöùng minh TD K = •Giaû söû coù thuoäc tính A TD K ta seõ daãn ñeán ñieàu maâuthuaãn. Thaät vaäy:•Theo heä quaû 1 cuûa thuaät toaùn tìm bao ñoùng thì K+=(K-A)+ AA TD coù X laø veá traùi cuûa moät phuï thuoäc haøm trong F saocho XA (1) vaø AX XK+=(K-A)+ A vì AX X(K-A)+ (K-A) X (2)•(1) vaø (2) cho (K-A)A A(K-A)+ (K-A)+ A = (K-A)+ K+ =(K-A)+ maâu thuaãn vôùi ñieàu K laø khoùa.

•Tìm taát caû caùc khoùa cuûa löôïc ñoà quan heä vaø taäp phuï thuoäc•haøm nhö sau: Q(C,S,Z); F={CSZ; ZC}

Giaûi:TN = {S}; TG = {C,Z}

•Goïi Xi laø caùc taäp con cuûa taäp TG:

SCZQ+SCZCZ

SZSZQ+SZZ

SCSCQ+SCC

SS

khoùaSieâu khoùa(TN Xi)+(TN Xi) Xi

Let a relation R have three candidate keys A, B, and (C,D). Which of the following must not be correct. a) AB b) BA c) AC d) CAB

Ghi chuù:Taäp thuoäc tính nguoàn (TN) chöùa taát caû caùc thuoäc tính coùxuaát hieän ôû veá traùi vaø khoângxuaát hieän ôû veá phaûi cuûa caùcphuï thuoäc haøm vaø caùc thuoäctính khoâng xuaát hieän ôû caû veátraùi laãn veá phaûi cuûa caùc phuïthuoäc haøm.

Taäp thuoäc tính trung gian(TG) chöùa taát caû caùc thuoäctính xuaát hieän ôû caû veá traùi laãnveá phaûi cuûa caùc phuï thuoächaøm.

Noùi raèng K laø moät khoùa cuûa Q neáu:K+ = Q+ vaøKhoâng toàn taïi K' K sao cho K’+= Q+

Consider a relation R(A,B,C,D,E) with the following functional dependencies: ABC DE and D AB. The number of superkeys of R is:

a) 2b) 7c) 10d) 12

4..0VI XULYDIEN TULE VAN THANH99030

6.08.04.0

KY THUAT LAP TRINHTOAN ROI RACCO SO DU LIEU

CNTTCNTTCNTT

NGUYEN THI THUNGUYEN THI THUNGUYEN THI THU

990239902399023

DIEMTHITENMONHOCKHOAHOVATENMASV

6.0KY THUAT LAP TRINHCNTTNGUYEN THI THU990238.0TOAN ROI RACCNTTNGUYEN THI THU99023

4..0VI XULYDIEN TULE VAN THANH990304.0CO SO DU LIEUCNTTNGUYEN THI THU99023

DIEMTHITENMONHOCKHOAHOVATENMASV

Quan heä khoâng ñaït chuaån 1:

Quan heä ñaït chuaån 1:

For a table to be in first normal form, it must a) have a composite primary key.b) have at least one foreign key.c) not have a composite primary key.d) not have any foreign keyse) not have any repeating groups.

MASV, HOVATEN:repeating group; TENMONHOC, DIEMTHI: multi values

42

•Ñònh nghóa:•Moät löôïc ñoà quan heä Q ôû daïng chuaån 2 neáu Q ñaït chuaån 1 vaø moïi thuoäc tínhkhoâng khoùa cuûa Q ñeàu phuï thuoäc ñaày ñuû vaøo khoùa.•Thuaät toaùn kieåm tra daïng chuaån 2•Vaøo: löôïc ñoà quan heä Q, taäp phuï thuoäc haøm F•Ra: khaúng ñònh Q ñaït chuaån 2 hay khoâng ñaït chuaån 2.•Böôùc 1: Tìm taát caû khoùa cuûa Q•Böôùc 2: Vôùi moãi khoùa K, tìm bao ñoùng cuûa taát caû taäp con thaät söï S cuûa K.•Böôùc 3:Neáu coù bao ñoùng S+ chöùa thuoäc tính khoâng khoùa thì Q khoâng ñaïtchuaån 2 . Ngöôïc laïi Q ñaït chuaån 2•Ví duï:•Cho löôïc ñoà quan heä Q(A,B,C,D) vaø taäp phuï thuoäc haøm•F={ABC; BD; BCA}. Hoûi Q coù ñaït chuaån 2 khoâng?•Ví duï 3: Quan heä sau ñaït chuaån 2. •Q(G,M,V,N,H,P) F={GM;GN;GH;GP;MV;NHPM}•Heä quaû:•Neáu Q ñaït chuaån 1 vaø taäp thuoäc tính khoâng khoùa cuûa Q baèng roãng thì Q ñaïtchuaån 2•Neáu taát caû khoùa cuûa quan heä chæ goàm moät thuoäc tính thì quan heä ñoù ít nhaát ñaïtchuaån 2.

Thuoäc tính phuï thuoäc baéc caàuQ laø löôïc ñoà quan heä, X,Y laø hai taäp con cuûa Q+, A laø moät thuoäc tính.Noùi raèng A phuï thuoäc baéc caàu vaøo X neáu caû ba ñieàu sau thoûa:•X Y,Y A•X khoâng phuï thuoäc haøm vaøo Y•A XY•Ñònh nghóa 1:•Löôïc ñoà quan heä Q ôû daïng chuaån 3 neáu moïi phuï thuoäc haøm X A F+ vôùi•A X ñeàu coù X laø sieâu khoùa hay A laø thuoäc tính khoùa•Ñònh nghóa 2:•Löôïc ñoà quan heä Q ôû daïng chuaån 3 neáu moïi thuoäc tính khoâng khoùa cuûa Q ñeàukhoâng phuï thuoäc baéc caàu vaøo moät khoùa baát kyø cuûa Q•Töø ñònh nghóa 1 khoâng coù phuï thuoäc baéc caàu vaøo moät khoùa baát kyø cuûa Q. •Giaû söû coù phuï thuoäc baéc caàu vaøo khoùa nghóa laø coù K Y,Y A,Y K vaø•A KY. Y A laø moät phuï thuoäc haøm neân theo ñònh nghóa 1 coù hai tröôønghôïp xaûy ra cho Y:•Y laø sieâu khoùa YK ñieàu naøy maâu thuaãn vôùi Y K.•Y khoâng laø sieâu khoùa A laø thuoäc tính khoùa maâu thuaãn vôùi giaû thieátAKY

•Heä quaû 1: Neáu Q ñaït chuaån 3 thì Q ñaït chuaån 2•Heä quaû 2: Neáu Q khoâng coù thuoäc tính khoâng khoùa thì Q ñaït chuaån 3.•Ñònh lyù:•Q laø löôïc ñoà quan heä•F laø taäp caùc phuï thuoäc haøm coù veá phaûi moät thuoäc tính.•Q ñaït chuaån 3 neáu vaø chæ neáu moïi pth XAF vôùi AX ñeàu coù

– X laø sieâu khoùa– hay A laø thuoäc tính khoùa

•Thuaät toaùn kieåm tra daïng chuaån 3 •Vaøo: löôïc ñoà quan heä Q, taäp phuï thuoäc haøm F•Ra: khaúng ñònh Q ñaït chuaån 3 hay khoâng ñaït chuaån 3.•Böôùc 1: Tìm taát caû khoùa cuûa Q•Böôùc 2:Töø F taïo taäp phuï thuoäc haøm töông ñöông F1tt coù veá phaûi moät thuoäc tính.•Böôùc 3:Neáu moïi phuï thuoäc haøm X A F1tt vôùi AX ñeàu coù X laø sieâu khoùahoaëc A laø thuoäc tính khoaù thì Q ñaït chuaån 3 ngöôïc laïi Q khoâng ñaït chuaån 3

•Ví duï 5: Cho löôïc ñoà quan heä Q(A,B,C,D) F={ABC; DB; CABD}. Hoûi Q coù ñaït chuaån 3 khoâng?

•Daïng Chuaån BC (Boyce-Codd Normal Form)•Moät quan heä Q ôû daïng chuaån BC neáu moïi phuï thuoäc haøm XA F+ vôùi AX ñeàu coù X laø sieâu khoùa.•Heä quaû 1: Neáu Q ñaït chuaån BC thì Q ñaït chuaån 3•Heä quaû 2: Moãi löôïc ñoà coù hai thuoäc tính ñeàu ôû chuaån BC•Ñònh lyù:•Q laø löôïc ñoà quan heä•F laø taäp caùc phuï thuoäc haøm coù veá phaûi moät thuoäc tính.•Q ñaït chuaån BC neáu vaø chæ neáu moïi phuï thuoäc haøm XAF vôùi AX ñeàu coùX laø sieâu khoùa•Chöùng minh:•Q ñaït daïng chuaån BC theo ñònh nghóa ta suy ra moïi phuï thuoäc haøm XAF vôùi AX coù X laø sieâu khoùa.•Ngöôïc laïi ta phaûi chöùng minh neáu moïi phuï thuoäc haøm XAF vôùi AX coù X laø sieâu khoùa thì moïi phuï thuoäc haøm XAF+ vôùi AX cuõng coù X laø sieâu khoùa. Thaät vaäy, do XA khoâng laø phuï thuoäc haøm hieån nhieân neân phaûi coù ZBF sao cho XZ (Z laø sieâu khoùa) X laø sieâu khoùa.

•Ví duï 7: Q(A,B,C,D,E,I) F={ACDEBI;CEAD}. Hoûi Q coù ñaït chuaånBC khoâng?

Thuaät toaùn kieåm tra daïng chuaån cuûa moät löôïc ñoà quan heä. Vaøo: löôïc ñoà quan heä Q, taäp phuï thuoäc haøm FRa: khaúng ñònh Q ñaït chuaån gì?Böôùc 1:Tìm taát caû khoùa cuûa QBöôùc 2:Kieåm tra chuaån BC neáu ñuùng thì Q ñaït chuaån BC, keát

thuùc thuaät toaùn ngöôïc laïi qua böôùc 3Böôùc 3:Kieåm tra chuaån 3 neáu ñuùng thì Q ñaït chuaån 3, keát thuùc

thuaät toaùn ngöôïc laïi qua böôùc 4Böôùc 4: Kieåm tra chuaån 2 neáu ñuùng thì Q ñaït chuaån 2, keát

thuùc thuaät toaùn ngöôïc laïi Q ñaït chuaån 1Ñònh nghóa: Daïng chuaån cuûa moät löôïc ñoà cô sôû döõ lieäu laø

daïng chuaån thaáp nhaát trong caùc daïng chuaån cuûa caùc löôïcñoà quan heä con.

•Chuaån 2:•Moät löôïc ñoà quan heä Q ôû daïng chuaån 2 neáu Q ñaït chuaån 1 vaø moïi thuoäc tínhkhoâng khoùa cuûa Q ñeàu phuï thuoäc ñaày ñuû vaøo khoùa.•Heä quaû:•Neáu Q ñaït chuaån 1 vaø taäp thuoäc tính khoâng khoùa cuûa Q baèng roãng thì Q ñaïtchuaån 2•Neáu taát caû khoùa cuûa quan heä chæ goàm moät thuoäc tính thì quan heä ñoù ít nhaát ñaïtchuaån 2. •Chuaån 3:•** Löôïc ñoà quan heä Q ôû daïng chuaån 3 neáu moïi thuoäc tính khoâng khoùa cuûa Q ñeàukhoâng phuï thuoäc baéc caàu vaøo moät khoùa baát kyø cuûa Q•** Q ñaït chuaån 3 neáu vaø chæ neáu moïi pth XAF vôùi AX ñeàu coù X laø sieâukhoùa hay A laø thuoäc tính khoùa•**Neáu Q khoâng coù thuoäc tính khoâng khoùa thì Q ñaït chuaån 3.•Chuaån BC:•** Q ñaït chuaån BC neáu vaø chæ neáu moïi phuï thuoäc haøm XAF vôùi AX ñeàu coùX laø sieâu khoùa•**Q ñaït chuaån 3 vaø khoùa cuûa Q chæ goàm moät thuoäc tính thì Q ñaït chuaån BC

43

Consider the relation student(sno, sname, cname, cno) where (sno, cno) or (sname, cname) are candidate keys. There are functional dependencies within the keys.

The highest normal form whose requirements this relation satisfies is: a) 1NF b) 2NF c) 3NF d) BCNF

The following table and functional dependencies exhibits what type of dependency?

Table(A, B, C)A CA BB C

a) Partial Dependenceb) Transitive Dependencec) Full Dependenced) A and Be) None of the above

Consider the following functional dependencies a,bc,da,c b,de,f,g h,if,g jg,h ie,g,h f,jp,q r,ss tq uWhich of the following relational schemas might be the result of normalising R(a,b,c,d)?

The schema R1(a,b) R2(a,c) R3(b,d) e.The schema R1(a,b,c) R2(a,b,d) d.The schema R1(a,b) R2(b,c) R3(c,d) c.The schema R1(a,b) R2(a,c) R3(a,d) b.The schema R(a,b,c,d) a.

Pheùp taùch keát noái baûo toaøn thoâng tin (decomposition with lossless join)Cho löôïc ñoà quan heä Q(TENNCC,DIACHI,SANPHAM,DONGIA) coù quan heä laø r

200Gaïch oáng40 Nguyeãn OanhHung250Gaïch theû12 Nguyeãn KieämHung200Gaïch oáng12 Nguyeãn KieämHung

DONGIASANPHAMDIACHITENNCC

r

250Gaïch theûHung40 Nguyeãn OanhHung200Gaïch oángHung12 Nguyeãn KieämHung

DONGIASANPHAMTENNCCDIACHITENNCCr1 = r.Q1

+r2 = r.Q2+

250Gaïch theû40 Nguyeãn OanhHung200Gaïch oáng40 Nguyeãn OanhHung250Gaïch theû12 Nguyeãn KieämHung200Gaïch oáng12 Nguyeãn KieämHung

DONGIASANPHAMDIACHITENNCCr’ = r1|><|r2

Neáu Q laø moät löôïc ñoà quan heä, Q1,Q2 laø hai löôïc ñoà quan heäcon coùQ1

+ Q2+ = X

Q1+ Q2

+ = Q+

X Q2+

Thì r = r.Q1|><|r.Q2

If the follwing functional dependencies AB;BC hold for database schema R(AB) and S(BC) then the join of R and S will be

a) non lossless c) lossyb) none of above d) lossless

•Ñònh nghóa pheùp taùch Q thaønh 2 löôïc ñoà con•Q laø löôïc ñoà quan heä, Q1, Q2 hai löôïc ñoà con coù:Q1+ Q2+ = X vaø Q1+ Q2+ = Q+

•Noùi raèng löôïc ñoà quan heä Q ñöôïc taùch thaønh hai löôïc ñoà con Q1, Q2 theo pheùptaùch (Q1,Q2) laø pheùp taùch keát noái khoâng maát (hay pheùp taùch baûo toaøn thoâng tin) neáu vôùi r laø quan heä baát kyø cuûa Q ta coù:r = r.Q1|><|r.Q2•Töùc laø r ñöôïc taïo neân töø pheùp keát noái töï nhieân cuûa caùc hình chieáu cuûa noù treân caùcQ1,Q2.•Tính chaát•Neáu Q laø moät löôïc ñoà quan heä, Q1,Q2 laø hai löôïc ñoà quan heä con coùQ1+ Q2+ = XQ1+ Q2+ = Q+

X Q2+

•Thì r = r.Q1|><|r.Q2Ví duï: cho Q(S,A,I,P), Q1=(S,A) , Q2=(S,I,P) F={SA,SIP}. Hoûivieäc taùch Q thaønh Q1 vaø Q2 coù gaây ra maát maùt thoâng tin khoâng?AÙp duïng tính chaát treân, ta coùQ1+ Q2+ = SQ1+ Q2+ = SAIP = Q+

S SA = Q1+

r = r.Q1|><|r.Q2. pheùp taùch keát noái baûo toaøn thoâng tin.

Q laø moät löôïc ñoà quan heä, F laø taäp phuï thuoächaøm. Q ñöôïc taùch thaønh caùc löôïc ñoà con Q1, Q2, Q3...,Qn theo töøng böôùc maø ôû moãi böôùc moät löôïcñoà ñöôïc taùch thaønh hai löôïc ñoà con vaø thoûa maõnñieàu kieän cuûa tính chaát baûo toaøn thoâng tin thì vôùir laø quan heä baát kyø cuûa Q ta luoân coù:

r = r.Q1|><|r.Q2... |><|r.Qn

a4a3b3a1SIP

b2b1a2a1SA

PIAS

a4a3a2a1SIP

b2b1a2a1SA

PIAS

Vôùi Q(S,A,I,P) Q1(SA) Q2(SIP) F = {S A,SI P}Hoûi Q ñöôïc taùch thaønh Q1 vaø Q2 coù baûo toaøn thoâng tin khoâng?Böôùc 1: laäp baûng 3 doøng 5 coät Böôùc 2:laøm baèng theo phuï thuoäc haøm

pheùp taùch baûo toaøn thoâng tin

Pheùp taùch baûo toaøn phuï thuoäc haømQ(TENNCC,DIACHI,QUAN)F={TENNCC->DIACHI; DIACHI->QUAN; QUAN->TENNCC}Q1(TENNCC,DIACHI) Q2(DIACHI,QUAN)

Phuù Nhuaän11 Nguyeãn Vaên TroãiHaïnhQuaän 112 Nguyeãn HueäHoàngGoø vaáp12 Nguyeãn KieämHuøng

QUANDIACHITENNCC

r

F2={DIACHI->QUAN,QUAN->DIACHI}

r2=r.Q2+

F1={TENNCC->DIACHI,DIACHI->TENNCC}

r1=r.Q1+

Phuù Nhuaän11 Nguyeãn Vaên Troãi11 Nguyeãn Vaên TroãiHaïnhQuaän 112 Nguyeãn Hueä12 Nguyeãn HueäHoàngGoø vaáp12 Nguyeãn Kieäm12 Nguyeãn KieämHuøngQUANDIACHIDIACHITENNCC

Ñònh nghóa pheùp phaân raõ baûo toaøn phuï thuoäc haøm:Qi(F)=Fi+={ XY|X Y F+ vaø XY Qi}Ta noùi phaân raõ baûo toaøn taäp phuï thuoäc haøm F neáuF Qi(F) F+ = ( Qi(F))+ vôùi i=1..k Ví duï:Q(A,B,C) F={A->B; B->C; C->A}=(Q1,Q2) Q1(A,B) Q2(B,C)

F+

BCABCACBCABCCABBACABC

BCACACABABABCCBBCAAC

BCABACBCABCCABABAC

BCAABABCCBCBABCBAAAB

ACABCABBCCACBBCAABCAB

Q1(F)= F1+ ={AB,AAB,BA,BAB}{AB,BA}=F1

Q2(F)= F2+ ={BC,BBC,CB,CBC}{BC,CB}=F2

Ñeå tính F1+,F1 ta khoâng caàn tính F+ maø chæ tính bao ñoùng cuûa taát caû taäp con cuûa Q1+ roài suy ra F1+,F1

Töông töï cho F2+,F2

44

z2s1c1z2c1z2s1

z1s1c1z1c1z1s1

Z)S(CQZ)(CQ2Z)(SQ1

F={CSZ,ZC}Q2(F)={ZC, ZZC}Q1(F)={PTHHN}

YÙ nghóa phaân raõ baûo toaøn phuï thuoäc haømQ(C,S,Z) F={CS->Z; Z->C}=(Q1,Q2) Q1(S,Z) Q2(C,Z)

Thuaät toaùn kieåm tra pheùp phaân raõ baûo toaøn phuï thuoäc haøm:Vaøo: Q(A,B,C),F={AB,BC,CA},Q1(A,B) vaø Q2(B,C)Hieån nhieân G = Q1(F)Q2(F) {AB,BC}Ta xaùc ñònh CA coù thuoäc (Q1(F) Q2(F))+.Baèng caùch tính bao ñoùng

cuûa CG+Böôùc 1: Z’=CBöôùc 2: gaùn Z’= Z’((Z’Q1+)+ Q1+): Z’=C(AB)=CBöôùc 1 vaø 2 coù Z’ khoâng thay ñoåi, ta sang löôïc ñoà Q2 vaø tính tieáp Z’Böôùc 3: gaùn Z’= Z’((Z’Q2+)+ Q2+): Z’=C(ABCBC)=BCZ’thay ñoåi tính tieáp Z’baét ñaàu töø löôïc ñoà Q1Böôùc 4: gaùn Z’= Z’((Z’Q1+)+ Q1+): Z’=BC(ABCAB)=ABCdo Z’=Q+ Z’ seõ khoâng bao giôø thay ñoåi. vaäy CG+=ABC CA(Q1(F)Q2(F))+ pheùp phaân raõ baûo toaøn pth.

Ví duï: cho Q(S,D,I,M) F={SID;SDM} haõy phaân raõ Q thaønh caùc löôïc ñoàcon ñaït chuaån BC baûo toaøn thoâng tin.

Giaûi:TN={SI} TG={D}

SIDSDIMSIDD

SISISDIMSIKhoùaSieâu khoùa(TNXi)

+TNXiXi

=SDIMSDI+=SDMSDM+=DIDI+=DMDM+=SDIMSI+=SDMSD+=SMSM+=SDMSD+=II+=DD+S+=S=MM+=DD+S+=S

F1+=Q1(F)={SDM,SDSM,SDDM,SDSDM}{SDM}= F1

F2+=Q2(F)={SID,SISD,SIDI,SISDI}{SID}= F2

Tính chaát: Theo thuaät toaùn treân, khi phaân raõ Q thaønh Q1 vaø Q2 thì taäp khoùa SQcuûa Q luoân luoân baèng vôùi taäp khoùa SQ2 cuûa Q2.

Chöùng minhThaät vaäy, K laø moät khoùa cuûa Q K laø moät sieâu khoùa cuûa Q2. Giaû söû coù K’ K

vaø K’ laø khoùa cuûa Q2 K’(Q+-Y) maø XY K’Q+. Ñieàu naøy maâuthuaãn vôùi K laø khoùa cuûa Q K laø khoùa cuûa Q2. Ngöôïc laïi cuõng ñuùng.

Consider the following functional dependencies: a,b c,de cb e,fGiven the same functional dependencies as shown above, which option shows the relations normalisedto third normal form of: R(a, b, c, d, e, f)

R(a,b,c,d,e,f) R(e,c) R(b,e,f)

a.

R(a,b,c,d) R(c,e) R(b,e,f)

c.

R(a,b,c,d) R(c,e) R(e,f,b)

b.

R(a,b,c,d,e,f)e.

R(a,b,d) R(e,c) R(b,e,f)

d.

Boå ñeà: Neáu Q khoâng ôû daïng chuaån BC thì coù thuoäc tính A,B thuoäc Q+ sao cho(Q+-AB)AChöùng minh:

Q khoâng ôû daïng chuaån BC coù XA sao cho X khoâng laø sieâu khoùa coù thuoäctính B XA (Q+-AB) X (Q+-AB)A

Nhaän xeùt: Moät löôïc ñoà Q ôû daïng chuaån BC vaãn coù theå coù AB sao cho (Q+-AB)AMoät löôïc ñoà Q khoâng coù AB sao cho (Q+-AB)A thì Q ôû daïng chuaån BC

Ví duï: Cho quan heä Q(B,O,S,Q,I,D) vaø taäp phuï thuoäc haøm FF = { S D,

I BIS QB O}

Haõy phaân raõ Q thaønh caùc löôïc ñoà con ñaït daïng chuaån BC vaø baûo toaøn thoâng tin.

Giaûi***Ñaët Z’=Q+=BOSQID

Thöïc hieän thuaät toaùn chi tieátY’= BOSQID

Choïn BO:(SQID)+ BGiaûm O ta ñöôïc Y’=BSQID

Choïn BS:(QID)+ BGiaûm S ta ñöôïc Y’=BQID

Choïn BQ:(ID)+ BGiaûm Q ta ñöôïc Y’=BID

Choïn BD: I+ BGiaûm D ta ñöôïc Y’= BI

Q1=(BI) vaø F1={IB}***Giaûm B ta ñöôïc Z’=OSQID

Ñaët Y’=OSQIDChoïn OQ: (SID)+ Q;

Giaûm O ta ñöôïc Y’= SQIDchoïn QD: (SI)+ D

giaûm Q ta ñöôïc Y’= SIDchoïn ID: S+ D;

giaûm I ta ñöôïc Y’= SD Q2=(SD) vaø F2={SD}

*** Giaûm D ta ñöôïc Z’= OSQIÑaët Y’=OSQIchoïn OQ: (SI)+ Qgiaûm O ta ñöôïc Y’= SQIQ3=(SQI) vaø F3={SIQ}*** Giaûm Q ta ñöôïc Z’= OSIÑaët Y’=OSIChoïn OS: I+=IBO Ogiaûm S ta ñöôïc Y’= OI Q4=(OI) vaø F4={IO}

*** Giaûm O ta ñöôïc Z’= SIQ5=(SI)vaø F5={PTHHN}

Loaïi Q5 vì Q5+ Q3+

Vaäy keát quaû phaân raõ laø: 1:Q1(BI) F1={IB}2:Q2(SD) F2={SD}3:Q3(SQI) F3={SIQ}4:Q4(OI) F4={IO}

45

Tính chaát–Khoâng coù thuaät toaùn phaân raõ löôïc ñoà Q thaønh caùc löôïc ñoà con ôû daïng chuaån BC

vöøa baûo toaøn thoâng tin vöøa baûo toaøn phuï thuoäc haøm.–Vaãn coù löôïc ñoà Q ñöôïc phaân raõ thaønh caùc löôïc ñoà con ôû daïng chuaån BC vöøa

baûo toaøn thoâng tin vöa baûo toaøn phuï thuoäc haøm. Ví duï: cho löôïc ñoà Q(CSZ) coù F={CSZ,ZC}. Q khoâng theå phaân raõ thaønh caùclöôïc ñoà con ôû daïng chuaån BC vöøa baûo toaøn thoâng tin vöøa baûo toaøn phuï thuoäc haøm. Thaät vaäy:

–Taát caû khoùa cuûa Q laø:

–Vaäy Q ñaït daïng chuaån 3 nhöng khoâng ôû daïng chuaån BC vì coù ZC coù veá traùikhoâng laø sieâu khoùa. Nhöng neáu ta phaân raõ Q thaønh caùc löôïc ñoà con coù ít hôn 3 thuoäc tính thì phuï thuoäc CSZ khoâng suy ra ñöôïc töø caùc phuï thuoäc hình chieáu.

SZCSZCSZCZC

SCSCSZCSCC

SZSZSZCSZZ

SSkhoùasieâu khoùa(TNXi)+TNXiXi

•Thuaät Toaùn phaân raõ Q, F thaønh daïng chuaån 3, baûo toaøn thoâng tin, baûo toaøn phuï thuoächaøm

– Tìm phuû toái thieåu Ftt cuûa F– Neáu coù nhöõng thuoäc tính cuûa Q khoâng naèm trong moät phuï thuoäc naøo cuûa Ftt - duø

ôû veá phaûi hay veá traùi cuûa F thì chuùng taïo thaønh moät löôïc ñoà.– Neáu coù moät phuï thuoäc haøm naøo cuûa Ftt maø lieân quan ñeán taát caû caùc thuoäc tính cuûa

Q thì keát quaû phaân raõ chính laø Q ( Q khoâng theå phaân raõ)– Cöù moãi phuï thuoäc haøm X A Ftt thì XA laø moät löôïc ñoà caàn tìm– Neáu coù moät löôïc ñoà con chöùa khoùa K cuûa Q thì keát thuùc thuaät toaùn .Ngöôïc laïi taïo

moät löôïc ñoà con K•Ví duï: cho löôïc ñoà Q(CTHRSG),F={CT,HRC,THR,CSG,HSR}.Haõy phaân raõQ thaønh caùc löôïc ñoà con ñaït daïng chuaån 3 vöøa baûo toaøn thoâng tin vöøa baûo toaøn phuï thuoächaøm.•Gæai: •F=Ftt={CT,HRC,THR,CSG,HSR} laø phuû toái thieåu.•AÙp duïng thuaät toaùn treân Q ñöôïc phaân raõ thaønh caùc löôïc ñoà con •Q1(CT) •Q2(HRC) •Q3(THR) •Q4(CSG)•Q5(HSR) •Khoùa cuûa Q laø HSQ1,Q2,Q3,Q4,Q5 chính laø keát quaû phaân raõ

•Ñònh lyù: Thuaät toaùn treân taïo ra moät phaân raõ ôû daïng chuaån 3 vöøa baûo toaøn thoângtin vöøa baûo toaøn phuï thuoäc haøm•Chöùng minh: •Ta chöùng minh moãi löôïc ñoà con ôû daïng chuaån 3. Thaät vaäy:•Theo thuaät toaùn thì moãi löôïc ñoà con Qi coù daïng YB vôùi YB Y laø sieâu khoùa. Giaû söû trong Qi coù phuï thuoäc haøm XA coù veá traùi khoâng laø sieâu khoùa vaø veá phaûikhoâng laø thuoäc tính khoùa. Ta phaân laøm hai tröôøng hôïp:•Tröôøng hôïp 1: A=B XB X Y YB laø phuï thuoäc coù veá traùi döthöøa, ñieàu naøy traùi vôùi YB laø phuï thuoäc haøm trong phuû toái thieåu.•Tröôøng hôïp 2: AB AY (1). Goïi K laø khoùa cuûa Qi K Y (2). A laøthuoäc tính khoâng khoùa neân A K (3).(1)(2)(3) K Y (4).K laø khoùa neânKB YB laø phuï thuoäc haøm coù veá traùi dö thöøa. Ñieàu naøy traùi vôùi ñieàu phuïthuoäc haøm YB laø phuï thuoäc haøm cuûa phuû toái thieåu Ftt•Ta chöùng minh pheùp phaân raõ baûo toaøn phuï thuoäc haøm. Thaät vaäy:•Hieån nhieân Ftt G = Qi(Ftt) Ftt+ G+ (1)•Hôn nöõa Ftt+ G = Qi(Ftt) Ftt++ G+ Ftt+ G+ (2)•(1)vaø (2) Ftt+ = G+

•Ta chöùng minh pheùp phaân raõ baûo toaøn thoâng tin. Thaät vaäy:•Laäp baûng kieåm tra baûo toaøn thoâng tin. Ta laàn löôït ñoàng nhaát caùc giaù trò theo caùcphuï thuoäc haøm ñöôïc phaùt hieän do thuaät toaùn tìm bao ñoùng (coù veá traùi laø taäp con cuûa Qi+ chöùa khoùa). Do Qi+ chöùa khoùa neân haøng cuûa löôïc ñoà Qi seõ chöùa toaøn a laøñieàu phaûi chöùng minh

a5a4a3Q5

a6a5a1Q4

a4a3a2Q3

a4a3a1Q2

a2a1Q1

GSRHTC

Tìm bao ñoùng cuûa X={HSR} K; F={CT,HRC,THR,CSG,HSR}X0=HSRX1=HSRC do HRC ñoàng nhaát caùc giaù trò theo phuï thuoäc haøm naøy.X2=HSRCT do CT ñoàng nhaát caùc giaù trò theo phuï thuoäc haøm naøy.X3=HSRCTG do CSG ñoàng nhaát caùc giaù trò theo phuï thuoäc haøm naøy.Do X+=Q+ neân seõ coù moät haøng chöùa toaøn giaù trò a

a6a5a4a3a2a1Q5

a6a5a2a1Q4

a4a3a2a1Q3

a4a3a2a1Q2

a2a1Q1

GSRHTC

Which charater function would you use a specified portion of a character string?a) Length c) substrb) Concat d) initcap

A modification anomaly occurs when:a) Relations are normalizedb) none of themc) functional dependencies must be modifiedd) Undesirable consequences result from changing data in a tablee) All of themThe consequence of the reflexivity rule is that:a) A set of attributes determines an attribute from that setb) A superkey determines all other attributec) Every attribute determines itselfd) A candidate key determines all other attributes

Indexing is a feature applied to a database:a) All of the othersb) To place permit restriction on accessc) To assist in good user respone timesd) To improve access times and to enforce some integrity conrols

Relation J is a projection of relation G. Which of the following statements must be true in all cases where relation J is different from relation G?a) The arity of J is less than the arity of Gb) The cardinality of J is less than the cardinality of Gc) None of the othersd) The arity of J is greater than the arlity of G e) The cardinality of J is greater than the cardinality of G

The resulting relation from an equijoin operation which is none emty, willa) Have the same number of attribute as a natural join between the same operand

relationsb) None of themc) Always have one or more pairs of attributes in each tuple that have identical valuesd) have fewer attributes than the sum of the attributes of the two eperand relations

The following is an example of a composide attributea) list of skills b) Product codec) Address d) Employeee) Total price

Which of the following best describes the source of the function dependencies.a) The mathematical formalization of constraints from the mini-worldb) The cardinalities of foreign key constraintsc) The intuition of the schema designerd) The value of a mathematical function on the keys of a relation

46

A third normal form is violation can occur for which the following tablesa) A table which a single field primary and two non – key attributes and A table with

a composite primary key and two non – key attributeb) A table with a composite primary key and two non – key attributesc) A table with a composite primary key and one non – key attributesd) A table with a single field primary key and two non – key attributese) All of the others

The following is an example of a multivalued attributea) Addressb) Product code

Database technologry offersa) Multi user access (in advanced DBMS’s)c) Imporved progrmmer and user productivityb) Data security facilities

c) List of skilld) Total pricee) Employee

d) All of the otherse) High integrity control over data

A functional dependency violates 3NF if it:a) Has a key on its left–hand–side, a prime attrite on its right–hand-sideb) Has a part of a candidate key on its left–hand sidec) Has a super key on its left-hand-side,but there is no prime attribute on the right-hand-sided) Has a prime attribute on its right–hand sidee) Does not have a candidate key on it’s left–hand sidef) Neither has a super key on its left–hand side, nor a prime attribute on the right–hand side

Going from first to second normal form removesa) Transitive dependencies b) Functional dependenciesc) Full functional dependencies d) Data redundancy

This operator can only operate on relations with the same schemaa) cartesian product b) All of themc) Intersection d) Equi-join Database-Processing programsa) Call the DBMS to access the stored datab) Require at least one dedicated workstationc) Can not be used by more than one persond) Present problems with storage space

Which of the following best describes why we study relational algebraa) It allows for more efficient operator than SQLb) It provides a form mathematical foundationc) It is more concise than drawing query treesd) It allows the expression of operations not possible in conventional programming

language

If we use the algorithm for producing a lossless decomposition into 3rd normal form with the relation schema of X(K, A, C) and the set of FDS as (KAC, CK) then the algorithm would produce as outputa) A relation schema with (K, A, C)b) A relation schema with (X, A, C)c) A relation schema with (K, A, X)d) A relation schema with (C, K) and a relation schema with (C)e) A relation schema with (C, K) and a relation schema with (K, A)f) A relation schema with (K) and a relation schema with (A) and a relation schema

with (C)Which of the following is not a relations ?a) Y (D, E, F) b) W (A) c) X (B, C) d) Z (J, K(L, M) )

If ML JQ is one of the functional dependencies, which hold for relation schema F (M,L,J,Q) thena) No two tuples in F can have the same values for M and Lb) ML is a key for Fc) All of aboved) ML is a primary key for F

The term ‘row’ (or record) used in relational databasea) Define the entity–relationship model used.b) Refers to the primary key nominationc) Refers to the method of matrix organisation of datad) Refers to the denormalised data

Normalization is a process associated witha) Avoiding update anomaliesb) Naming of primary and foreign keys in a databasec) Database concurrency proceduresd) Ensuring ease of access to the database

Given two relation R (A,B,C) and S (A, B, C) which of the following is always truea) R – S yields the same result as S – Rb) R INTERSECT S yields the same result as S INTERSECT Rc) PROJECT(R) yields the same result as PROJECT(S) d) none of the above

Which of the following is correcta) All FDs are are–to–are relationshipsb) All FDs are many– to–are relationshipsc) None of them are trued) All FDs are many–to–many relationships

The following table and the functional dependencies exhibits whay type of dependency table (Q,O,I)

Q IQ OO Ia) Transitive dependence b) Q and Oc) Full dependence d) partial dependencee) None of the others

A prime attribute is an attribute thata) a member of a foreign b) is single – valued c) is a member of the primary key d) is a member of all keyse) is minimal f) is a member of any candidate key

Which of the following is (are) a capability (capabilities) that should be provided by a database management system ?

a) all of the others b) restrict unauthorized accessc) represent relationships among data d) cantrol redundancy

Which of the follwing is not correct?a) SQL may be used for data definition as well as data retrievalb) SQL SELECT operation may be used for data retrieval as well as for data

modificationc) SQL may be used to defining base tables as well as view tablesd) SQL data definitions may be used for defining primary keys as well as foreign keyse) SQL may be invoked either interactively or from an application programA table is in 3NF if Each functional dependency has a superkey on its left hand side Each functional dependency either has a superkey on its left hand side, or has a

prime attribute on right hand side There are no partial functional dependencies There is more than one key There are no transitive functional dependenciesA table in third normal form:a) Cannot have any repeating groupsb) Has no non-keys fields depending on only a part of the composite primary keyc) Has no transitive dependenciesd) All of the others

47

If a relation schema has 5 attributes and 3 of those attributes make up the only key, the how many different superkeys does the relation have

a) 5 b) 4 c) 3 d) 2Table TT (YMBKGFD) and a set of functional dependenciesYM FDG YMBBF KDBKD FYMD GTable TT is• 2NF b) 3NF c) 1NFTable A Table BCol1 Col2 Col3 Col4I 1 I 1G 3 W 4W 4 S 5

C 3Consider the tables A and B shown above and select the result ofA LEFT OUTER JOIN col1=col3 B

Which of the attributes are extraneous in the functional dependency UIZE, considering the relational schema R(UIZEOD) and FDs {IO;ZD

If a relation R is decomposed into {R1,R2,...,Rn} and the decoposition is lossless then

a) none of themb) The relations R1,R2,...,Rn are each in 3rd normal

formc) The relations R1,R2,...,Rn can have more tuples than

the original relation d) The natural join of R1,R2,...,Rn will have the same

number of tuples as the original