Tài liệu Bài giảng Cơ sở dữ liệu 1: sds 1
1
KHOA HTTT KINH TẾ & TMĐT
BÀI GIẢNG HỌC PHẦN
Bô ̣ môn: Tin học
2
Mục đích của học phần:
Trang bị các kiến thức cơ bản về CSDL quan hệ, ngôn ngữ thao
tác trên CSDL.
Cung cấp các kỹ năng cơ bản về tổ chức CSDL: thiết kế CSDL,
ngôn ngữ truy vấn.
Yêu cầu đạt được:
Nắm vững các kiến thức cơ bản về CSDL
Hiểu các phương pháp thiết kế một CSDL
Nhận thức được vai trò và sự cần thiết của hệ thống quản lý dữ liệu
với một tổ chức kinh tế xã hội
Biết thiết kế và tạo lập những CSDL dựa trên một HQT CSDL
thông dụng kết hợp với NNLT để lập trình quản lý CSDL
3
Cấu trúc học phần: 24,6 – Số TC: 02 (30 tiết)
Nghe giảng: 24 tiết
Thảo luận (bài tập): 6 tiết
4
Chương 1: Tổng quan về CSDL
Chương 2: CSDL quan hệ
Chương 3: Ngôn ngữ khai thác CSDL quan hệ
DHTM_TMU
sds 2
5
1. TS Nguyễn Thị Thu Thủy. Giáo trình CSDL1. NXB Thố...
69 trang |
Chia sẻ: putihuynh11 | Lượt xem: 746 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Cơ sở dữ liệu 1, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
sds 1
1
KHOA HTTT KINH TẾ & TMĐT
BÀI GIẢNG HỌC PHẦN
Bô ̣ môn: Tin học
2
Mục đích của học phần:
Trang bị các kiến thức cơ bản về CSDL quan hệ, ngôn ngữ thao
tác trên CSDL.
Cung cấp các kỹ năng cơ bản về tổ chức CSDL: thiết kế CSDL,
ngôn ngữ truy vấn.
Yêu cầu đạt được:
Nắm vững các kiến thức cơ bản về CSDL
Hiểu các phương pháp thiết kế một CSDL
Nhận thức được vai trò và sự cần thiết của hệ thống quản lý dữ liệu
với một tổ chức kinh tế xã hội
Biết thiết kế và tạo lập những CSDL dựa trên một HQT CSDL
thông dụng kết hợp với NNLT để lập trình quản lý CSDL
3
Cấu trúc học phần: 24,6 – Số TC: 02 (30 tiết)
Nghe giảng: 24 tiết
Thảo luận (bài tập): 6 tiết
4
Chương 1: Tổng quan về CSDL
Chương 2: CSDL quan hệ
Chương 3: Ngôn ngữ khai thác CSDL quan hệ
DHTM_TMU
sds 2
5
1. TS Nguyễn Thị Thu Thủy. Giáo trình CSDL1. NXB Thống kê,
2015
2. Hồ Thuần, Hồ Cẩm Hà, Các hệ cơ sở dữ liệu lý thuyết và thực
hành, Nhà xuất bản giáo dục, 2009.
3. Nguyễn Kim Anh, Nguyên lý của các hệ cơ sở dữ liệu, Nhà
xuất bản Đại học Quốc gia Hà Nội, 2008
4. Phương Lan, Giáo trình Cơ sở dữ liệu, nhà xuất bản lao động xã
hội, 2007
5. Sumathi, Esakkirajan, S. Fundamentals of Relational Database
Management Systems, Springer-Verlag, 2007
6. Elmasri, Navathe, Fundamentals of Database Systems, 6th
Edition, 2010
7. Avi Silberchatz, Henry F. Korth, S. Sudarshan. Database
concepts.
6
1.1. Các khái niệm cơ bản về CSDL
1.2. Mô hình dữ liệu
1.3. Kiến trúc cơ sở dữ liệu
1.4. Ngôn ngữ quản trị cơ sở dữ liệu
7
CSDL (Database):
◦ Là một tập hợp các dữ liệu có liên quan với nhau chứa thông tin về
một tổ chức nào đó (trường đại học, công ty,) được lưu trữ trên
các thiết bị nhớ để đáp ứng nhu cầu khai thác thông tin của nhiều
người sử dụng với nhiều mục đích khác nhau.
Một số đặc tính của CSDL
◦ Tính tự mô tả
◦ Tính độc lập giữa chương trình và dữ liệu
◦ Tính trừu tượng dữ liệu
◦ Tính nhất quán
◦ Các cách nhìn dữ liệu
8
Hệ QT CSDL (Database Management System - DBMS): là
một tập hợp các chương trình cho phép người dùng định
nghĩa, tạo lập, bảo trì các CSDL và cung cấp các truy cập
có điều khiển đến các CSDL này.
Hệ QT CSDL cung cấp các phương tiện sau:
◦ Ngôn ngữ định nghĩa dữ liệu (Data Denifition Language - DDL)
◦ Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML)
◦ Các kiểm soát, các điều khiển đối với việc truy cập vào CSDL
DHTM_TMU
sds 3
9
Thuật ngữ hệ CSDL để chỉ một CSDL và một hệ QT
CSDL để truy cập vào CSDL đó
Hệ CSDL cung cấp cho người dùng một cách nhìn
trừu tượng của DL, che giấu những chi tiết phức tạp
về cách thức DL được lưu trữ và bảo trì.
Hệ CSDL là một hệ thống gồm 4 thành phần sau:
◦ Cơ sở dữ liệu
◦ Người sử dụng
◦ Phần mềm hệ QT CSDL
◦ Phần cứng
10
Xử lý truy vấn
HQT CSDL
Truy xuất dữ liệu
CSDL
Định nghĩa
CSDL
Người sử dụng/Lập trình viên
Chương trình ứng dụng/Truy vấn
Hệ CSDL
11 12
Một lược đồ được viết trong ngôn ngữ định nghĩa dữ liệu
của một hệ QT CSDL cụ thể. Để mô tả các yêu cầu dữ
liệu của một tổ chức sao cho mô tả đó dễ hiểu đối với
nhiều NSD khác nhau thì ngôn ngữ này lại ở mức quá
thấp cần có một mô hình dữ liệu
Khái niệm: Mô hình dữ liệu là một tập các khái niệm và
các ký pháp dùng để mô tả dữ liệu, các mối quan hệ của
dữ liệu, các ràng buộc trên dữ liệu của một tổ chức.
DHTM_TMU
sds 4
13
Phần mô tả cấu trúc của CSDL
Phần mô tả các thao tác, định nghĩa các phép toán được
phép trên dữ liệu.
Phần mô tả các ràng buộc toàn vẹn để đảm bảo sự
chính xác của dữ liệu.
14
Mô hình dữ liệu logic trên cơ sở đối tượng
◦ Mô hình thực thể - liên kết
◦ Mô hình hướng đối tượng
◦ Mô hình dữ liệu ngữ nghĩa
◦ Mô hình dữ liệu chức năng
Mô hình dữ liệu logic trên cơ sở bản ghi
◦ Mô hình quan hệ
◦ Mô hình mạng
◦ Mô hình phân cấp
Mô hình dữ liệu logic vật lý
◦ Mô hình hợp nhất
◦ Mô hình bộ nhớ khung
15
Người dùng 1
Khung nhìn 1 Khung nhìn n
CSDL mức khái niệm
CSDL Mức vật lý
Người dùng n Mức ngoài (mức khung nhìn)
Mức khái niệm (mức logic)
Mức trong (mức vật lý)
16
Mức trong
◦ Mô tả dữ liệu được thực sự lưu trữ như thế nào trong CSDL.
◦ Là mức thể hiện các cài đặt có tính chất vật lý của CSDL để đạt
được tối ưu trong các thao tác tìm kiếm, lưu trữ (tận dụng các
vùng nhớ còn trống)
◦ Là mức phản ánh các CTDL, các tổ chức tệp được dùng cho lưu
trữ dữ liệu trên các thiết bị nhớ thứ cấp.
Mức khái niệm
◦ Mô tả những dữ liệu nào được lưu trữ trong CSDL và có những
mối quan hệ nào giữa các dữ liệu này (biểu diễn các thực thể, các
thuộc tính và các mối quan hệ đó)
Mức ngoài
◦ Mô tả chỉ một phần của toàn bộ CSDL, phần thích hợp với một
NSD nhất định.
◦ Hệ thống có thể cung cấp nhiều khung nhìn đối với cùng một
CSDL.
DHTM_TMU
sds 5
17
Lược đồ CSDL (Database Schema)
◦ Là các mô tả về cấu trúc và ràng buộc trên CSDL
SVien Ten MaSV Nam Khoa
TenHP MaHP TinChi Khoa Hphan
MaHP MaHP_Truoc DKien
MaKH MaHP KHoc HocKy Nam GV
MaKH MaSV KQua Diem
18
Thể hiện
Thể hiện CSDL (Database Instance)
◦ Là dữ liệu hiện thời được lưu trữ trong CSDL ở một thời điểm
nào đó
◦ Tình trạng của CSDL
Ten MaSV Nam Khoa
Son 17 1 HTTTKT
Bao 8 2 TMĐT
SVien
TenHP
Tin học đại cương
CSDL1
Hphan MaHP
INFO0111
INFO6111
TinChi Khoa
3
2
HTTTKT
HTTTKT
MaHP MaHP_Truoc DKien
INFO0111 MAT1234
INFO6111 INFO0111
MaSV Diem
17 8
17 6
KQua MaKH
8
8
8
8
112
119
85
92
102
135
10
9
8
10
19
Ứng với 3 mức của một hệ CSDL có 3 loại lược đồ
◦ Lược đồ ngoài (lược đồ con)
◦ Lược đồ logic
◦ Lược đồ vật lý
Phân biệt được lược đồ CSDL với bản thân CSDL
20
Người dùng
Lược đồ ngoài 1 Lược đồ ngoài n
Lược đồ khái niệm
Lược đồ trong
Người dùng
Ánh xạ ngoài/
Ánh xạ khái niệm
Mức ngoài
Mức khái niệm
Mức trong
Ánh xạ khái niệm/
Ánh xạ trong
Độc lập dữ liệu mức vật lý
Độc lập dữ liệu mức logic
DHTM_T
U
sds 6
21
TenHP Khoa MaHP TenHP TinChi
TenHP MaHP TinChi Khoa
Mức ngoài
Mức logic
Mức vật lý
Struct Hphan{
Char MaHP;
Char Ten[15];
Int TinChi;
Char Khoa[10];
Struct Hphan next;
};
Index MaHP;
Khung nhìn 1 Khung nhìn 2
22
Ngôn ngữ định nghĩa dữ liệu (Data Denifition
Language - DDL): cho phép người dùng định nghĩa
CSDL (đặc tả các kiểu và các CTDL, đặc tả các ràng
buộc trên các DL được lưu trữ trong CSDL)
◦ VD: Create table Co(Sohieu C(2), Ten C(10), Von N(4,0))
Ngôn ngữ thao tác dữ liệu (Data Manipulation
Language - DML): cho phép người dùng thêm, xóa,
cập nhật dữ liệu và truy xuất DL trong CSDL
◦ VD: Update
Insert
Delete
SelectFromWhere
23
2.1. Các khái niệm cơ bản
2.2. Ràng buộc toàn vẹn
2.3. Phụ thuộc hàm
2.4. Chuẩn hóa các lược đồ quan hệ
2.5. Tách các lược đồ quan hệ
2.6. Thiết kế CSDL quan hệ
24
2.1.1 Thuộc tính
2.1.2 Miền
2.1.3 Quan hệ
2.1.4 Lược đồ quan hệ
2.1.5 Các tính chất của quan hệ
2.1.6 Khóa
DHTM_TMU
sds 7
25
Quan hệ gồm
◦ Tên
◦ Tập hợp các cột
Cố định
Được đặt tên
Có kiểu dữ liệu
◦ Tập hợp các dòng
Thay đổi theo thời gian
Một dòng ~ Một thực thể
Quan hệ ~ Tập thưc thể
26
Tên các cột của quan hệ
Mô tả ý nghĩa cho các giá trị tại cột đó
Tất cả các dữ liệu trong cùng 1 một cột đều có dùng
kiểu dữ liệu
TENNV HONV NS DIACHI GT LUONG PHG
Tung Nguyen 12/08/1955 Hà Nội Nam 40000 5
Hang Bui 07/19/1968 Bắc Ninh Nu 25000 4
Nhu Le 06/20/1951 Bắc Giang Nu 43000 4
Hung Nguyen 09/15/1962 Hà Nội Nam 38000 5
Thuộc tính
27
Lược đồ quan hệ
Lược đồ quan hệ
◦ Tên của quan hệ
◦ Tên của tập thuộc tính
NHANVIEN(MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG)
Là tập hợp
28
Lược đồ CSDL
◦ Gồm nhiều lược đồ quan hệ
Lược đồ CSDL
NHANVIEN(MANV, TENNV, HONV, NS, DIACHI, GT, LUONG, PHG)
PHONGBAN(MAPHG, TENPHG, TRPHG, NG_NHANCHUC)
DIADIEM_PHG(MAPHG, DIADIEM)
THANNHAN(MA_NVIEN, TENTN, GT, NS, QUANHE)
DEAN(TENDA, MADA, DDIEM_DA, PHONG)
DHTM_TMU
sds 8
29
Dữ liệu cụ
thể của thuộc
tính
Là các dòng của quan hệ (trừ dòng tiêu đề - tên của các
thuộc tính)
Thể hiện dữ liệu cụ thể của các thuộc tính trong quan
hệ
30
Là tập các giá trị nguyên tố gắn liền với một thuộc tính
◦ Kiểu dữ liệu cơ sở
Chuỗi ký tự (string)
Số (integer)
◦ Các kiểu dữ liệu phức tạp
Tập hợp (set)
Danh sách (list)
Mảng (array)
Bản ghi (record)
Ví dụ
◦ TENNV: string
◦ LUONG: integer
Không được chấp nhận
31
Lược đồ quan hệ
◦ Cho A1, A2, , An là các thuộc tính
◦ Có các miền giá trị D1, D2, , Dn tương ứng
◦ Ký hiệu R(A1:D1, A2:D2, , An:Dn) là một lược đồ quan hệ
◦ Bậc của lược đồ quan hệ là số lượng thuộc tính trong lược đồ
◦ NHANVIEN(MANV:integer, TENNV:string, HONV:string,
NGSINH:date, DCHI:string, GT:string, LUONG:integer,
DONVI:integer)
NHANVIEN là một lược đồ bậc 8 mô tả đối tượng nhân viên
MANV là một thuộc tính có miền giá trị là số nguyên
TENNV là một thuộc tính có miền giá trị là chuỗi ký tự
32
Quan hệ (hay thể hiện quan hệ)
◦ Một quan hệ r của lược đồ quan hệ R(A1, A2, , An), ký hiệu
r(R), là một tập các bộ r = {t1, t2, , tk}
◦ Trong đó mỗi ti là 1 danh sách có thứ tự của n giá trị ti=<v1, v2,
, vn>
Mỗi vj là một phần tử của miền giá trị DOM(Aj) hoặc giá trị rỗng
t1
t2
t3
t4
vi
TENNV HONV NS DIACHI GT LUONG PHG
Tung Nguyen 12/08/1955 Hà Nội Nam 40000 5
Hang Bui 07/19/1968 Bắc Ninh Nu 25000 4
Nhu Le 06/20/1951 Bắc Giang Nu 43000 4
Hung Nguyen 09/15/1962 Null Nam 38000 5
DHTM_TMU
sds 9
33
Khái niệm: Ràng buộc toàn vẹn là tập các qui tắc, qui
định yêu cầu DL trong CSDL phải thỏa mãn.
Mục đích: nhằm đảm bảo tính độc lập và tính toàn vẹn
dữ liệu.
Các loại ràng buộc:
◦ Ràng buộc về miền (kiểu)
◦ Ràng buộc giải tích
◦ Ràng buộc khóa (logic)
◦ .
34
Ràng buộc về miền (là loại ràng buộc thấp nhất): mô tả
tính chất của các thuộc tính khi tạo lập CSDL (thuộc
kiểu gì, độ dài là bao nhiêu,)
◦ VD: Thuộc tính “số điện thoại” là kiểu chuỗi ký tự đúng bằng
7 ký tự trong xâu
Ràng buộc giải tích: là những ràng buộc giữa các thuộc
tính được biểu diễn bằng các biểu thức toán học
◦ VD: Khi nhập “số lượng” và “đơn giá” của 1 mặt hàng, hệ
thống sẽ tự động tính giá trị của thuộc tính “thành tiền” theo
công thức “số lượng” x “đơn giá” = “thành tiền”
Ràng buộc về khóa (logic):
◦ Mối quan hệ giữa các thuộc tính với nhau không phải là các
ràng buộc giải tích, được gọi là phụ thuộc hàm.
◦ Thuộc tính Y phụ thuộc hàm vào thuộc tính X mỗi 1 giá trị
của X xác định giá trị của Y
35
Khái niệm:
Cho R(U) là 1 lược đồ quan hệ, U ={A1,A2,,An} là tập các thuộc
tính và X,Y U
Ta nói X xác định hàm Y (hay Y phụ thuộc hàm vào X) nếu với mọi
quan hệ r xác định trên R(U) và với 2 bộ t1 và t2 bất kỳ mà
t1[X]=t2[X] thì t1[Y] = t2[Y]
Nói cách khác thì thuộc tính Y của quan hệ R được gọi là phụ thuộc
hàm vào thuộc tính X của quan hệ R nếu với mỗi giá trị của X xác
định duy nhất một giá trị của Y. X được gọi là xác định hàm của Y
Ký hiệu: XY
Ví dụ: Phụ thuộc hàm của thuộc tính HoTenSV và MaSV được biểu
diễn như sau: MaSV HoTenSV
36
Xét lược đồ quan hệ
Và thể hiện
Phim(Tênphim, Nămsx, Thờilượng, Loạiphim, Xưởngsx, Diễnviên)
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
DHTM_TMU
sds 10
37
Tìm được nhiều PTH
Tênphim Nămsx Thờilượng Loạiphim Xưởngsx Diễnviên
Star Wars 1977 124 color Fox Carrie Fisher
Star Wars 1977 124 color Fox Mark Hamill
Star Wars 1977 124 color Fox Harrison Ford
Mighty Ducks 1991 104 color Disney Emilio Esteves
Wayne’s World 1992 95 color Paramount Dana Carvey
Wayne’s World 1992 95 color Paramount Mike Meyers
Tênphim, Nămsx Diễnviên
Tênphim, Nămsx Thờilượng
Tênphim, Nămsx Loại
Tênphim, Nămsx Xưởngsx
Không phải PTH
38
Hệ tiên đề cho phụ thuộc hàm:
Hệ tiên đề Armstrong:
1. Luật phản xạ (reflexivity) X Y XY
2. Luật tăng trưởng(augmentation) XY, UZ XZ YZ
2. Luật bắc cầu(transitivity) X Y, Y Z X Z
Hệ quả của hệ tiên đề Armstrong:
4. Luật hợp (the union rule)
Cho X Y, X Z X YZ
5. Luật tựa bắc cầu (the pseudotransitivity rule)
Cho X Y,WY Z XW Z
6. Luật tách (the decomposition rule):
Cho X Y, Z Y X Z
39
Cho R=ABC và tập phụ thuộc hàm
F={ABC,CA}
CRM: BC ABC
Thật vậy:
1. Từ CA (gt)
2. BCAB (Luật tăng trưởng của (1) thêm B)
3. ABC (gt)
4. ABABC (Luật tăng trưởng của (3) thêm AB)
5. BCABC (Luật bắc cầu từ (2) và (4))
40
2.3.1. Bao đóng của tập phụ thuộc hàm
2.3.2. Bao đóng của tập thuộc tính
DHTM_TMU
sds 11
41
Suy diễn logic
◦ Gọi F là tập các PTH trên sơ đồ quan hệ R(U) và XY là 1
PTH, X,YU. Khi đó ta nói XY được suy diễn logic từ F
nếu với mỗi quan hệ r xác định trên R(U) thoả các phụ thuộc
hàm trong F thì cũng thoả X Y
◦ VD: F={AB, BC} thì AC được suy diễn logic từ F
Bao đóng của tập phụ thuộc hàm
◦ Gọi F+ là bao đóng của F, tức là tập tất cả các phụ thuộc hàm
có thể được suy diễn logic từ F
◦ Ký hiệu là F+
◦ F là họ đầy đủ (full family) nếu F = F+
42
Định nghĩa:
◦ Gọi F là tập các PTH trên tập thuộc tính U, XU.
◦ X+ là bao đóng của X đối với F là tập tất cả các thuộc tính A mà
PTH XA có thể được suy diễn logic từ F nhờ hệ tiên đề
Armstrong.
◦ Ký hiệu là X+
◦ X+ = { A U | X A F+}
43
Thuật toán:
◦ Input: tập hữu hạn các thuộc tính U, tập các PTH F trên U và
X U
◦ Output: X+, bao đóng của X đối với F
Phương pháp: lần lượt tính các tập X0, X1, X2,theo các bước sau:
◦ Bước 0: Đặt X0 = X.
◦ Bước i: Tính Xi từ Xi-1
Nếu Y Z F và Y Xi-1 và A Z và A không thuộc Xi-1 thì Xi=Xi-
1 A
ngược lại, Xi = Xi-1 .
Nếu Xi ≠ Xi-1 thì lặp Bước i
ngược lại, chuyển Bước n
o Bước n X+ = Xi
44
R(A, B, C, D, E, G)
F = { ABC, CA, BCD, ACDB, DEG, BEC,
CGBD, CE AG}
Tìm (BD)+F
Giải:
X0 = BD
Tìm các PTH có VT là B, D hoặc BD:
◦ Có DEG X1=X0 {EG}= BDEG
Tương tự, ta có:
◦ BEC X2=X1 {C}= BCDEG
◦ CA X3=X2 {A}= ABCDEG
◦ X4=X3
Ngừng Vậy BD+F = ABCDEG
DHTM_TMU
sds 12
45
R(A, B, C, D, E, F)
F = { ABC, BCAD, DE, CFB }
Tìm AB+F
Giải:
AB+F = AB
ABC: ABC
BCAD: ABCD
DE: ABCDE
Ngừng
AB+F = {A, B, C, D, E}
46
Nhận xét về PTH:
◦ Từ một tập các phụ thuộc hàm có thể suy diễn ra các phụ thuộc
hàm khác
◦ Trong một tập phụ thuộc hàm cho sẵn có thể có các phụ thuộc
hàm dư thừa
Làm thế nào để có được một phụ thuộc hàm tốt ???
47
Tương đương
◦ Hai tập PTH F1 và F2 gọi là tương đương
Bổ đề
Mọi thể hiện của quan
hệ thỏa F1
Mọi thể hiện của quan
hệ thỏa F2
F1 F2 F1+ F2+
F1 F2 F1 là hệ quả của F2 và
F2 là hệ quả của
F1
48
R(A, B, C, D, E)
F1 = { ABC, AD, CDE }
F2 = { ABCE, AABD, CDE }
F1 F2 ?
Chứng minh
◦ F1 là hệ quả của F2 F1 được suy dẫn từ F2
◦ F2 là hệ quả của F1 F2 được suy dẫn từ F1
DHTM_TMU
sds 13
49
{ABCE, AABD, CDE } {ABC, AD,
CDE }
◦ Ta thấy F1 F2, hiển nhiên F1 là hệ quả của F2
{ABC, AD, CDE } {ABCE, AABD,
CDE }
◦ Xét F2 có AE, tìm xem F1 có AE ?
ABC AC (luật tách)
AD (gt) ACD (luật hợp)
CDE AE (luật bắc cầu)
50
R(A, B, C, D, E)
F1 = { ABC, AD, CDE }
F2 = { ABCDE }
F1 F2 ?
Chứng minh
◦ F1 là hệ quả của F2 F1 được suy dẫn từ F2
◦ F2 là hệ quả của F1 F2 được suy dẫn từ F1
51
{ABCDE} {ABC, AD, CDE}
◦ Xét CDE không thuộc trong F2
◦ F1 không được suy dẫn từ F2
◦ F1 không là hệ quả của F2
{ABC, AD, CDE} {ABCDE}
◦ Xét F2 có AE?
52
Tập phụ thuộc hàm tương đương (equivalent functional dependancy)
Cho F và G là hai tập phụ thuộc hàm trên tập thuộc tính U, ta nói F và
G tương đương (hay F phủ G hoặc G phủ F) và ký hiệu là F+ = G+
nếu và chỉ nếu mỗi phụ thuộc hàm thuộc F đều thuộc G + và mỗi phụ
thuộc hàm thuộc G đều thuộc F + .
Ký hiệu: F ≈ G
Ví dụ
Cho R(A,B,C)
F={AB;AC;BA;CA;BC}
G={AB; CA; BC}
Chứng minh F và G tương đương
DHTM_TMU
sds 14
53
Tập phụ thuộc hàm không dư thừa
Định nghĩa: Tập phụ thuộc hàm F là không dư thừa nếu trong F không
tồn tại một phụ thuộc hàm nào mà khi loại bỏ đi phụ thuộc hàm đó,
cho ta một tập phụ thuộc hàm tương đương với F.
Thuật toán tìm phủ không dư thừa của một tập phụ thuộc hàm
Lần lượt tính các tập F0, F1,, Fm theo các bước sau:
Bước 0: F0 = F.
Bước i: Tính Fi từ Fi-1, cụ thể: Nếu (Fi-1\{LiRi})≈F
i thì Fi=Fi-1\{LiRi}
ngược lại , Fi = Fi-1 .
Nếu Fi ≠ Fi-1 thì lặp Bước i
ngược lại, chuyển Bước n
Bước n: F‟= Fi
54
Định nghĩa phủ tối thiểu
F được gọi là một tập phụ thuộc hàm tối thiểu nếu F thoả đồng thời ba
điều kiện sau:
a) Vế phải của F chỉ có một thuộc tính.
b) Không f: XAF và Z X mà F+=(F(XA)(ZA))+
c) Không XAF mà F + = (F (X A))+
Trong đó
- vế phải của mỗi phụ thuộc hàm ở điều kiện a) chỉ có một thuộc tính,
nên bảo đảm không có thuộc tính nào ở vế phải là dư thừa.
- điều kiện b) bảo đảm không có một thuộc tính nào tham gia vế trái
của phụ thuộc hàm là dư thừa.
- điều kiện c)bảo đảm cho tập F không có một phụ thuộc hàm nào là
dư thừa.
55
VD1:
◦ Cho R(A,B,C) và F={ABC,BC}
◦ Ta có: F ≡ F - {AB C} {(AB-A) C}={BC}
ABC là PTH không đầy đủ (có VT dư thừa)
BC là PTH đầy đủ
VD2:
◦ Cho R(A,B,C,D) và F = {A → BC,B → C,AB → D}
◦ Ta có: F ≡ F - {AB D}{(AB-B) D}
≡{A → BC,B → C,A → D}
ABD là PTH không đầy đủ (có VT dư thừa)
56
VD: Ở VD2, PTH ABD có A+=ABCD AD A+
◦ Trong F ta thay ABD bằng AD
Vậy F ≡ {A → BC,B → C,A → D}
DHTM_TMU
sds 15
57
Cho R(A,B,C,D) và F={AB, BA, BC, AC, CA}
Xét AB
◦ A+F – {AB} = AC
◦ AB không là phụ thuộc hàm thừa
Xét BA
◦ B+F-{BA} = BCA
◦ BA là phụ thuộc hàm thừa
không chứa
VP
có chứa VP
58
Thuật toán tìm phủ tối thiểu
Vào: Tập thuộc tính U, F = {Li Ri : i = 1..n}
Ra: Phủ tối thiểu F của tập phụ thuộc hàm F
Thuật toán
B.1. Tách các PTH có VP lớn hơn một thuộc tính thành các
PTH có VP một thuộc tính
B.2. Loại bỏ khỏi F các thuộc tính thừa trong vế trái của các
phụ thuộc hàm
B.3. Loại bỏ khỏi F các phụ thuộc hàm dư thừa
59
VD 1: Cho F= {AC, BC, C D, DEC, CAB}
◦ Tìm phủ tối thiểu của F?
VD 2: Cho F= {AB→C, D→EG, C→A, BE→C, BC→D,
CG→ BD, ACD→B, CE→AG }
◦ Tìm phủ tối thiểu của F?
60
Nhắc lại
◦ Khóa
• Là một tập các thuộc tính dùng để xác định tính duy
nhất của mỗi bộ trong quan hệ
Các bộ trong quan hệ khác nhau từng đôi một
◦ Gồm
• Siêu khóa
• Khóa
• Khóa chính
DHTM_TMU
sds 16
61
B1: Xác định tất cả các tập con khác rỗng của U. Kết quả tìm
được giả sử là các tập thuộc tính Xi, i= 1..n
B2: Tìm bao đóng của các Xi
B3: Xác định tập siêu khóa Si (i=1..m) là các Xi có bao đóng
đúng bằng U
B4: Xây dựng tập chứa tất cả các khóa của U từ tập S bằng cách
xét mọi Si, Sj là con của S (i ≠j), nếu Si Sj thì loại Sj
(i,j=1..n). Tập S còn lại là các khóa của lược đồ
62
Tìm tất cả các khóa của lược đồ quan hệ và tập PTH sau:
R(U)=CSZ; F = {f1:CS → Z; f2:Z → C}
Xi Xi+ Siêu khóa Khóa
C C
S S
Z ZC
CS CSZ CS CS
CZ CZ
SZ SCZ SZ SZ
CSZ CSZ CSZ
Vậy lược đồ quan hệ R có 2 khóa là CS và SZ
63
Một số khái niệm:
◦ Tập nguồn (TN) chứa tất cả các thuộc tính có xuất hiện ở vế
trái và không xuất hiện ở vế phải của tập phụ thuộc hàm.
Những thuộc tính không tham gia vào bất kỳ một phụ thuộc
hàm nào thì cũng đưa vào tập nguồn.
◦ Tập đích (TD) chứa tất cả các thuộc tính có xuất hiện ở vế
phải và không xuất hiện ở vế trái của tập phụ thuộc hàm.
◦ Tập trung gian (TG) chứa tất cả các thuộc tính vừa tham gia
vào vế trái vừa tham gia vào vế phải.
Hệ quả: nếu K là khóa của R thì TN K và TD ∩ K = ∅
64
DHTM_TMU
sds 17
65
Giải lại VD trên
Ta có: TN={S}, TG={C,Z}
Gọi Xi là các tập con của TG
Xi (TN Xi) (TN Xi)+ Siêu khóa Khóa
Ø S S
C CS CSZ CS CS
Z SZ CSZ SZ SZ
CZ CSZ CSZ CSZ
Vậy lược đồ quan hệ R có 2 khóa là CS và SZ
66
2.4.1. Dạng chuẩn 1 (1NF - First Normal Form)
2.4.2. Dạng chuẩn 2 (2NF - Second Normal Form)
2.4.2. Dạng chuẩn 3 (3NF - Third Normal Form)
2.4.4. Dạng chuẩn Boye-Codd (BCNF-Boye-Codd Normal
Form)
2.4.5. Phương pháp xác định dạng chuẩn cao nhất.
67
Định nghĩa 1:
• Cho R(U) là một lược đồ quan hệ với U là tập các thuộc tính, F là
tập các phụ thuộc hàm trên R và AU
• Chúng ta nói: A là thuộc tính khóa (prime) nếu A thuộc một khóa
tối thiểu nào đó của R. Ngược lại A được gọi là thuộc tính không
khóa (nonprime).
Ví dụ:
R(ABCD)
F= {AB C , BC A,B D}
Lược đồ trên có 2 khóa tối thiểu AB, BC
A, B, C : thuộc tính khóa; D : thuộc tính không khóa
68
Định nghĩa 2:
• Cho R(U) là một lược đồ quan hệ với U là tập các thuộc tính, F là tập
các phụ thuộc hàm trên R và X U, AU
• Chúng ta nói: A là phụ thuộc bắc cầu vào X nếu tồn tại một tập
thuộc tính Y, Y U sao cho X Y, Y A thuộc F+ nhưng Y X
không thuộc F+ . Ngược lại A không phụ thuộc bắc cầu vào X hay A
phụ thuộc trực tiếp vào X
DHTM_TMU
sds 18
69
Định nghĩa : Dạng chuẩn là tập các tiêu chuẩn để đánh giá độ
tốt & xấu (của một lược đồ Quan hệ).
Phân loại : Có 4 mức dạng chuẩn :
1. Dạng chuẩn 1
2. Dạng chuẩn 2
3. Dạng chuẩn 3
4. Dạng chuẩn Boyce-Codd (BC)
5. Dạng chuẩn 4, Dạng chuẩn 5 : không được đề cập trong bài
giảng này
70
2.4.1 Dạng chuẩn 1 (1NF)
Định nghĩa :
• Một sơ đồ quan hệ R được gọi là ở dạng chuẩn 1 nếu tất cả các
miền giá trị của các thuộc tính trong R đều chỉ chứa giá trị
nguyên tố
• Giá trị nguyên tố là giá trị mà không thể chia nhỏ ra được nữa
Ví dụ: Quan hệ không ở 1NF và quan hệ sau khi chuẩn hóa về
1NF
71
Không là 1NF
72
Thuộc tính PRODUCT là đa thuộc tính
Bộ 1 có ITEM, PRICE không nguyên tố
DHTM_TMU
sds 19
73
Quan hệ đạt 1NF nếu toàn bộ các thuộc tính của mọi
bộ đều mang giá trị đơn (giá trị nguyên tố).
Biến đổi thành các giá trị nguyên tố
74
Vẫn còn trùng lặp thông tin
75
2.4.2 Dạng chuẩn 2 (2NF)
Định nghĩa :
• Một sơ đồ quan hệ R được coi là ở dạng chuẩn 2 nếu sơ đồ
quan hệ này ở 1NF
• Tất cả các thuộc tính không khóa đều phụ thuộc hàm đầy đủ
vào khóa chính.
Phụ thuộc hàm đầy đủ
• Cho lược đồ quan hệ R(U), F là tập phụ thuộc hàm trên R.
X, Y ⊆ U. Y được gọi là phụ thuộc đầy đủ vào X nếu:
- X Y thuộc F+
- ! ∃ X’⊂ X : X’ ⟶ Y F+
• Các phụ thuộc hàm không đầy đủ còn gọi là phụ thuộc bộ
phận.
76
SUPPLIERS(S#,SNAME,ADD,ITEM,PRICE)
kí hiệu ngắn gọn SUPPLIERS(S,N,A,I,P)
Tập PTH: F = {SNA,SIP}
Khóa tối thiểu duy nhất là: SI
Ta thấy:
o Thuộc tính khóa: S,I
o Thuộc tính không khóa: N,A,P
Xét thuộc tính không khóa A
1. A chỉ phụ thuộc vào S
2. S ⊂ SI
A không phụ thuộc đầy đủ vào khóa chính SI
SUPPLIERS không thuộc 2NF
DHTM_TMU
sds 20
77
Lược bỏ những PTH không đầy đủ
Quan hệ đạt 2NF
- Đạt 1NF
- Các thuộc tính không khóa phụ thuộc đầy đủ vào
thuộc tính khóa
78
Tách SUPPLIERS thành S1 và S2
◦ S1 (S, N, A) và F1={SNA}
◦ S2 (S, I, P) và F2={SIP}
Kiểm tra S1, S2 có thuộc 2NF?
◦ Khóa của S1 là S
◦ Khóa của S2 là SI
S1, S2 đạt chuẩn 2
79
Vào: lược đồ quan hệ R, tập phụ thuộc hàm F
Ra: khẳng định R đạt 2NF hay không đạt 2NF.
Bước 1: Tìm tất cả khóa của R
Bước 2: Với mỗi khóa K, tìm bao đóng của tất cả tập con
thật sự S của K.
Bước 3: Nếu có bao đóng S+ chứa thuộc tính không khóa
thì R không đạt 2NF, ngược lại thì R đạt 2NF
80
Cho lược đồ quan hệ Q(A,B,C,D)
Tập PTH F={ABC; BD; BCA}.
Hỏi Q có đạt 2NF không?
Giải:
TN={B}, TG={AC}
Khóa là K1=AB và K2=BC. Ta thấy B K1, BD, D là
thuộc tính không khóa thuộc tính không khóa không
phụ thuộc đầy đủ vào khóa Q không đạt chuẩn 2.
Xi (TN Xi) (TN Xi)
+ Siêu khóa Khóa
B BD
A AB ABCD AB AB
C BC ABCD BC BC
AC ABC ABCD ABC
DHTM_TMU
sds 21
81
Vẫn còn trùng lặp thông tin
phòngID
PG04
PG16
PG36
phòngĐChỉ
6 NVC Q5
5 NT Q10
2 NTMK Q3
Giá
350
450
375
chủID
CO40
CO93
CO93
chủTên
X
Y
Y
Phòng
82
2.4.3 Dạng chuẩn 3 (3NF)
Định nghĩa: Một sơ đồ quan hệ R được coi là ở dạng chuẩn 3 nếu
Sơ đồ quan hệ này đã ở dạng 2NF
Mọi thuộc tính không khóa đều không phụ thuộc bắc cầu vào
khóa chính
Ví dụ:
ItemInfo(item, price, discount).
F = {item ⟶ price, price ⟶ discount}
thuộc tính không khóa discount phụ thuộc bắc cầu vào khóa chính
item.
Vậy quan hệ này không ở dạng 3NF.
Chuẩn hoá
ItemInfo(item, price)
Discount(price, discount)
Các dạng chuẩn đối với lược đồ quan hệ
83
S1(S, N, A) và F1={SNA}
◦ Khóa chính S
◦ Thuộc tính không khóa: N,A
◦ SNA N,A không phụ
thuộc bắc cầu vào S
S2 (S, I, P) và F2={SIP}
◦ Khóa chính: SI
◦ Thuộc tính không khóa: P
◦ SI P P không phụ thuộc
bắc cầu vào SI
S1, S2 đạt chuẩn 3
84
Xét R (SIDM) trong đó:
◦ S: kí hiệu cho cửa hàng (Store)
◦ I: kí hiệu cho mặt hàng (Item)
◦ D: kí hiệu cho gian hàng (Department)
◦ M: kí hiệu cho người quản lý (Manager)
◦ Có PTH: SI D và SD M
R (SIDM) và F={SID, SDM}
◦ Khóa tối thiểu: SI
◦ Thuộc tính không khóa: D, M
◦ R đạt chuẩn 2
◦ Do: SID nên SI SD và SDM Vậy ta có: SIM
R không đạt chuẩn 3
DHTM_TMU
sds 22
85
Lược bỏ những PTH bắc cầu
Quan hệ đạt 3NF
- Đạt 2NF
- Các thuộc tính không khóa không phụ thuộc bắc cầu
vào thuộc tính khóa
86
Tách R thành R1 và R2 với
◦ R1(SID) và F1={SID}
◦ R2(SDM) và F2={SDM}
87
R là lược đồ quan hệ
F là tập các PTH có vế phải một thuộc tính.
R đạt 3NF nếu và chỉ nếu mọi PTH XA F với
AX đều có:
◦ Hoặc X là siêu khóa.
◦ Hoặc A là thuộc tính khóa.
88
Vào: lược đồ quan hệ R, tập PTH F
Ra: khẳng định R đạt 3NF hay không đạt 3NF.
Bước 1: Tìm tất cả khóa của R
Bước 2: Từ F tạo tập PTH tương đương F1tt có vế phải một
thuộc tính.
Bước 3: Nếu mọi PTH X A F1tt với AX đều có X là
siêu khóa hoặc A là thuộc tính khoá thì R đạt 3NF ngược lại
R không đạt 3NF
DHTM_TMU
sds 23
89
Cho lược đồ quan hệ Q(A,B,C,D)
F={ABC; DB; CABD}
Hỏi R có đạt chuẩn 3 không?
Giải:
TN =
TG = {ABCD}
90
91
Xét các khóa
K1 = {AB}
K2 = {AD}
K3={C}
Ta thấy mọi phụ thuộc hàm X A F đều có A là
thuộc tính khóa. Vậy Q đạt 3NF
F={ABC; DB; CABD}
92
Vẫn còn trùng lặp thông tin
kháchID phòngID
PG04
PG16
CR56 PG04
CR56 PG36
ngàyThuê
1/6/03
1/9/04
1/9/02
10/10/03
ngàyTrả
31/8/04
1/9/05
10/6/03
1/12/04
CR76
CR76
Thuê
nhânviênID
SG37
SG24
SG37
SG05
nhânviênID phòngID
DHTM_TMU
sds 24
93
2.4.4 Dạng chuẩn Boye – Codd (BCNF)
Định nghĩa: Một sơ đồ quan hệ R được coi là ở dạng
chuẩn BCNF nếu:
Sơ đồ quan hệ này đã ở dạng 3NF
Các PTH không hiển nhiên có VT chứa khóa
Hay nói cách khác: Một sơ đồ quan hệ R được coi là ở
dạng chuẩn BCNF nếu với mọi XA thuộc F+ và AX
thì X chứa một khóa của R
Các dạng chuẩn đối với lược đồ quan hệ
94
Lược đồ R (CSZ)
Tập PTH F={CSZ,ZC}
Khóa tối thiểu: CS, CZ
Xét ZC do Z không là
khóa R không đạt chuẩn
BCNF
Xét lược đồ R (CSZ)
95
Lược bỏ những PTH có VT không chứa khóa
Quan hệ đạt BCNF
◦ Đạt 3NF
◦ Các PTH không hiển nhiên có VT chứa khóa (hay VT là siêu
khóa)
96
Phân tách R thành 2 lược đồ con
R1 (CZ)
◦ Khóa: CZ
◦ R1 đạt chuẩn BCNF
R2 (SZ)
◦ Khóa là SZ
◦ R2 đạt chuẩn BCNF
DHTM_TMU
sds 25
97
Vào: lược đồ quan hệ R, tập phụ thuộc hàm F
Ra: khẳng định R đạt BCNF hay không đạt BCNF.
Bước 1: Tìm tất cả khóa của R
Bước 2: Từ F tạo tập PTH tương đương F1tt có vế phải một
thuộc tính
Bước 3: Nếu mọi phụ thuộc hàm X A F1tt với AX đều
có X là siêu khóa thì R đạt BCNF ngược lại R không đạt
BCNF
98
S1(S, N, A) và F1={SNA}
◦ Khóa chính S
◦ SNA
◦ S1 đạt chuẩn BCNF
S2 (S, I, P) và F2={SIP}
◦ Khóa chính: SI
◦ SI P
◦ S2 đạt chuẩn BCNF
Vậy S1, S2 đạt chuẩn BCNF
99
Cho lược đồ quan hệ Q(A,B,C,D,E,I)
Tập PTH F={ACDEBI;CEAD}.
Hỏi Q có đạt chuẩn BC không?
Giải:
TN={C} TG={ADE}
F = F1tt = {ACDE, ACDB, ACDI, CEA, CED}
Mọi PTH của F1tt đều có vế trái là siêu khóa Q đạt dạng
BCNF
100
Vào: lược đồ quan hệ R, tập PTH hàm F
Ra: khẳng định R đạt chuẩn gì?
Bước 1: Tìm tất cả khóa của R
Bước 2: Kiểm tra BCNF nếu đúng thì R đạt BCNF, kết thúc
thuật toán. Ngược lại qua bước 2.
Bước 3: Kiểm tra 3NF nếu đúng thì R đạt 3NF, kết thúc thuật
toán. Ngược lại qua bước 4.
Bước 4: Kiểm tra 2NF nếu đúng thì R đạt 2NF, kết thúc thuật
toán. Ngược lại R đạt 1NF.
DHTM_TMU
sds 26
101
Chuẩn 2NF
◦ Giản ước sự dư thừa dữ liệu
◦ Tránh dị thường khi cập nhật dữ liệu do sự dư thừa dữ liệu gây
ra
Chuẩn 3NF
◦ Tránh sự dị thường khi thêm và xóa các bộ trong quan hệ
Chuẩn BCNF
◦ Tránh sự dị thường khi thêm và xóa các bộ trong quan hệ
◦ Chặt chẽ và mạnh hơn chuẩn 3
102
103
2.5.1. Phép tách lược đồ quan hệ
2.5.2. Thuật toán kiểm tra phép tách - kết nối bảo toàn
thông tin
2.5.2. Phép tách - kết nối bảo toàn thông tin
◦ Tách không mất mát về chuẩn BCNF
◦ Tách bảo toàn PTH về chuẩn 3
104
Khái niệm
◦ Phép tách các lược đồ quan hệ là quá trình phân tách các
lược đồ quan hệ R thành các lược đồ con nhỏ hơn dựa trên
một quy tắc cho trước
◦ Hay nói cách khác:Thay thế một lược đồ quan hệ
R(A1,A2,,An) bằng một tập các lược đồ con {R1,R2,,Rk }
trong đó Ri ⊆ R và R= R1 ∪ R2 ∪ . ∪ Rk .
Mục đích
◦ Sử dụng phép tách để đưa các lược đồ về các dạng chuẩn
◦ Loại bỏ dư thừa và hạn chế dị thường
◦ Tăng hiệu quả lưu trữ, tìm kiếm, truy vấn
Yêu cầu phép tách
◦ Bảo toàn thuộc tính, ràng buộc
◦ Bảo toàn dữ liệu
DHTM_TMU
sds 27
105
* : là phép kết nối tự nhiên trên giao của 2 tập thuộc tính
ρ=(R1,R2,,Rk) hay ρ=(U1,U2,,Uk) là phép tách lược
đồ trên U thành các lược đồ con trên U1,U2,,Uk
ri=Ui(r) là hình chiếu của quan hệ r lên tập thuộc tính Ui
mρ(r)=r1*r2**rk là phép kết nối tự nhiên của các hình
chiếu của r lên các tập con trong phép tách ρ
106
Ví dụ phép kết
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R B<D S
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
A B C D E
107
Ví dụ phép kết tự nhiên
R S
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
A B
1 2
C
3
4 5 6
D
1
2
108
Được dùng để lấy ra một vài cột của quan hệ R
Ký hiệu
Kết quả trả về là một quan hệ
◦ Có k thuộc tính
◦ Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ
A1, A2, , Ak(R)
A B
R
10
20
30
C
1
1
1
40 2
A,C (R) A
C
1
1
2
A,C (R)
DHTM_TMU
sds 28
109
NHANVIEN
HONV TENLOT TENNV
MAN
V
NGSINH DCHI
PHA
I
LUON
G
MA_N
QL
PHG
Đinh Bá Tiến 009
119 Cống Quỳnh,
Tp HCM
Na
m
30000 005 5
Nguyễn Thanh Tùng 005
222 Nguyễn Văn
Cừ, Tp HCM
Na
m
40000 006 5
Bùi Ngọc Hằng 007
332 Nguyễn Thái
Học, Tp HCM
Na
m
25000 001 4
Lê Quỳnh Như 001
291 Hồ Văn Huê,
Tp HCM
Nữ 43000 006 4
Nguyễn Mạnh Hùng 004
95 Bà Rịa, Vũng
Tàu
Na
m
38000 005 5
Trần Thanh Tâm 003
34 Mai Thị Lự, Tp
HCM
Na
m
25000 005 5
Trần Hồng Quang 008
80 Lê Hồng Phong,
Tp HCM
Na
m
25000 001 4
Phạm Văn Vinh 006
45 Trưng Vương, Hà
Nội
Nữ 55000 1
HONV, TENLOT, TENNV, LUONG(NHANVIEN)
HONV TENLOT TENNV
LUON
G
Đinh Bá Tiến
Nguyễn Thanh Tùng
Bùi Ngọc Hằng
Lê Quỳnh Như
Nguyễn Mạnh Hùng
Trần Thanh Tâm
Trần Hồng Quang
Phạm Văn Vinh
30000
40000
25000
43000
38000
25000
25000
55000
110
Tách không mất mát (Lossless join)
Tách bảo toàn tập PTH
111
Định nghĩa:
Cho lược đồ quan hệ R(U), phép tách R thành các lược đồ con
{R1, R2 , , Rk} được gọi là phép tách không mất mát thông tin
đối với một tập phụ thuộc hàm F nếu với mọi quan hệ r xác định
trên R thỏa mãn F thì:
r= ∏R1 (r) ⋈ ∏R2 (r) ⋈ . ⋈ ∏Rk (r)
Phép tách một lược đồ quan hệ thành các lược đồ con mà sau khi
kết nối tự nhiên các lược đồ con này thì ta thu được lược đồ ban
đầu
Ví dụ: Tách SUPPLIERS thành S1 và S2
◦ S1 (S, N, A) và F1={SNA}
◦ S2 (S, I, P) và F2={SIP}
Phép tách - kết nối bảo toàn thông tin
112
Xác định bài toán
Vào: R(A1, A2, , An), F, phép tách {R1, R2, , Rk}
Ra: phép tách là mất mát thông tin hay không?
Thuật toán
B.1. Xây dựng một bảng k hàng, n cột (k đại diện cho Ri, n đại diện cho Ai)
o Nếu Aj là thuộc tính của Ri thì điền aj vào ô (i,j).
o Nếu không thì điền bij.
B.i. Xét lần lượt các PTH f = X⟶Y F, áp dụng cho bảng theo cách sau:
o Nếu 2 hàng t1, t2 thuộc bảng: t1[X] = t2[X] thì làm bằng nhau trên các giá trị
Y: t1[Y] = t2[Y] như sau:
o Nếu có giá trị một hàng thuộc Y là aj thì các giá trị khác thuộc Y cũng gán bằng aj
o Nếu không gán bằng một trong các giá trị bị
o Lặp cho tới khi không thể thay đổi được giá trị nào trong bảng.
B.n. Nếu bảng có 1 hàng gồm các kí hiệu a1, a2, , an thì phép tách là
không mất mát thông tin. Ngược lại, phép tách không bảo toàn thông tin.
D
TM_TMU
sds 29
113
R (SNAIP) => R1(SNA) và R2(SIP)
Tập F={SNA,SIP}
Thực hiện thuật toán:
◦ Bước 1
Ta có: k=2 và n=5
114
Bước 2
Xét SNA và cột S
Tại S có 2 hàng b22=a2, b23=a3
115
Bước 3
Kết luận:
◦ Phép tách R thành R1 và R2 là không mất mát thông tin
116
Khái niệm
◦ Là phép tách mà các PTH ban đầu có thể suy
diễn được từ các PTH của các lược đồ con
◦ Các PTH ở lược đồ con không cần thuộc F
Mục đích
◦ Bảo đảm các ràng buộc toàn vẹn đối với lược
đồ quan hệ
DHTM_TMU
sds 30
117
Hình chiếu của tập phụ thuộc hàm
Cho sơ đồ quan hệ R, tập phụ thuộc hàm F, phép tách
{R1, R2, , Rk} của R trên F.
Hình chiếu Fi của F trên Ri là tập tất cả X ⟶ Y F+ : XY ⊆ Ri .
Phép tách sơ đồ quan hệ R thành {R1, R2, , Rk} là một phép
tách bảo toàn tập phụ thuộc hàm F nếu (F1 ∪ F2 ∪ ∪ Fk)
+ = F+
Hay hợp của tất cả các phụ thuộc hàm trong các hình chiếu của F
lên các sơ đồ con sẽ suy diễn ra các phụ thuộc hàm trong F.
Tách bảo toàn PTH (tt)
118
Xét phép tách lược đồ R(CSZ) thành R1(SZ) và R2(ZC)
Tập F={CSZ, ZC}
Ta thấy:
◦ Với R1 chỉ có các PTH tầm thường
◦ Với R2 có ZC
◦ Cả R1 và R2 không có PTH nào có thể suy ra CSZ
Phép tách này không bảo toàn tập PTH
119
Xét phép tách lược đồ R(SNAIP) thành R1(SNA) và R2(SIP)
Tập F={SNA, SIP}
Ta thấy:
◦ Với R1 ngoài các PTH tầm thường còn có S NA
◦ Với R2 ngoài các PTH tầm thường còn có SI P
Phép tách trên là bảo toàn tập PTH
120
Một phép tách có thể
◦ Không mất mát thông tin và có bảo toàn tập phụ thuộc hàm
((S, N,A,I,P)(S,N,A) và (S, I, P))
◦ Không mất mát thông tin và không bảo toàn tập phụ
((C,S,Z) (S,Z) và (Z,C))
◦ Mất mát thông tin và có bảo toàn tập phụ thuộc hàm
◦ Mất mát thông tin và không bảo toàn tập phụ thuộc hàm
DHTM_TMU
sds 31
121
Tách không mất mát thông tin về chuẩn BCNF
Tách bảo toàn tập PTH về 3NF
122
Thuật toán
◦ Vào
Lược đồ R
Tập F trên R
◦ Ra
P phép tách không mất mát R thành (R1, R2, .., Rk)
Các Ri đều thỏa chuẩn BCNF
Các Fi là hình chiếu của F lên Ri
123
Lặp
◦ Đặt p=(R)
◦ Nếu S là một lược đồ trong p không thỏa BCNF
Xét XA của S. Trong đó:
X không chứa khóa của S
A không phải là con của X
Thay S=S1 và S2 với
S1= A ∪{X}
S2={S}\A
◦ Lặp cho đến khi mọi Si đều thỏa chuẩn BC
124
Vào: Cho R(CSZ) và F={CSZ, ZC}
Thực hiện:
◦ p=R, khóa của R là CS
◦ Xét ZC. Z không là khóa của R và C không là con của Z
S1=Z∪C =ZC
S2={R}\C=CSZ\C=SZ
Xét S1 và S2
S1: Có khóa là Z, phụ thuộc hàm ZZC (thỏa BCNF)
S2: Có khóa là SZ, phụ thuộc hàm SZ SZ (thỏa BCNF)
◦ Kết thúc: p=(S1,S2)
DHTM_TMU
sds 32
125
Vào: Cho R(SNAIP) và F={SNA, SIP}
Thực hiện:
◦ p=R, khóa của R là SI
◦ Xét SNA. S không là khóa của R và N, A không là con của S
S1=S ∪ {N,A} =SNA
S2={R}\NA=SNAIP\NA=SIP
Xét S1 và S2
S1: Có khóa là S, phụ thuộc hàm SNA (thỏa BCNF)
S2: Có khóa là SI, phụ thuộc hàm SI P (thỏa BCNF)
◦ Kết thúc: p=(S1,S2)
126
Thuật toán
◦ Vào
Lược đồ R
Tập F trên R (F là phủ tối thiểu)
◦ Ra
Phép tách R thành (R1, R2, .., Rk)
Bảo toàn F
127
B1: Xét các thuộc tính trên R
◦ Nếu có các Ai không xuất hiện trong F
◦ Tách R=R1 và R2
R1={Ai} và R2=R\R1
B2: Xét các phụ thuộc hàm
◦ Nếu có Fi chứa tất cả các thuộc tính của R
Kết luận: p=R, kết thúc
◦ Ngược lại:
Mỗi XA =>Ri={X}∪{A}
Nếu có XA1, ,XAi =>Ri={X}∪{A1,..,Ai}
128
Vào: Cho R(SNAIP) và F={SNA, SIP}
Thực hiện:
◦ F là phủ tối thiểu
◦ Xét các thuộc tính S, N, A, I, P
Không có thuộc tính nào không xuất hiện trong F
◦ Xét các F
Không có F nào chứa toàn bộ S, N,A,I,P
Xét SNA=> R1={A,N,A} (Thỏa chuẩn 3)
Xét SIP => R2={S,I,P} (Thỏa chuẩn 3)
◦ Kết thúc
DHTM_TMU
sds 33
129
Vào:
◦ Cho R(ABCDEG)
◦ F = { ABC, CA,BCD, ACDB, DEG, BEC, CGBD,
CE AG}
Thực hiện:
◦ F chưa phải là phủ tối thiểu nên không áp dụng trực tiếp thuật toán
◦ F‟={AB→C, D→E, CE → G, C→A, D→ G, BC→ D, BE→C, CG→D}
◦ Xét các F
Không có F nào chứa toàn bộ R(ABCDEG)
Áp dụng thuật toán ta thu được
p={ABC,DEG,CEG,CA,BCD,BEC,CGD}
Do CA là con của ABC nên loại CA khỏi p
◦ Kết thúc p= {ABC,DEG,CEG,BCD,BEC,CGD}
130
1. Cho phép tách R(CSZ) thành R1(SZ) và R2(CZ) và tập PTH
F={CSZ, ZC}
Kiểm tra các phép tách sau đây xem có mất mát thông tin
hay không?
2. Cho R(ABCDE), R1(AD), R2(AB), R3(BE), R4(CDE), R5(AE)
và F={AC, BC, CD, DEC, CEA}
Tách các lược đồ quan hệ
Cho lược đồ R(CTHRSG) và F={CT, HRC, THR,
CSG, HSR}
Tách lược đồ trên để đạt dạng chuẩn BCNF?
131
Mô hình hoá thế giới thực
Sơ đồ thực thể - liên kết (sơ đồ ER)
Biến đổi sơ đồ thực thể - liên kết sang mô hình quan hệ
132
Ý tưởng thiết kế
E/R
Lược đồ
quan hệ
HQT CSDL
quan hệ
DHTM_TMU
sds 34
133
Phụ thuộc
HQT cụ thể
Độc lập HQT
Thế
giới
thực
Phân tích yêu
cầu
TK quan niệm
Thiết kế mức logic
Thiết kế mức vật
lý
Các yêu cầu về dữ
liệu
Lược đồ quan niệm
Lược đồ logic
Lược đồ trong Chương trình ứng
dụng
Thiết kế
chương trình ứng
dụng
Phân tích chức năng
Các yêu cầu về chức
năng
Các đặc tả chức năng
134
Quá trình thiết kế CSDL
Mô hình thực thể - liên kết
◦ Thực thể
◦ Thuộc tính
◦ Ràng buộc trên kiểu liên kết
◦ Lược đồ thực thể - liên kết
◦ Thực thể yếu
Thiết kế
Ví dụ
135
Quá trình thiết kế CSDL
Mô hình thực thể - liên kết
Thiết kế
◦ Các bước thiết kế
◦ Nguyên lý thiết kế
Ví dụ
136
DHTM_TMU
sds 35
137
138
139
Xác định tập thực thể
Xác định mối quan hệ
Xác định thuộc tính và gắn thuộc tính cho tập thực thể
và mối quan hệ
Quyết định miền giá trị cho thuộc tính
Quyết định thuộc tính khóa
Quyết định (min, max) cho mối quan hệ
140
Chính xác
Tránh trùng lặp
Dễ hiểu
Chọn đúng mối quan hệ
Chọn đúng kiểu thuộc tính
DHTM_TMU
sds 36
141
Quá trình thiết kế CSDL
Mô hình thực thể - liên kết
Thiết kế
Ví dụ
◦ Quản lý đề án công ty
142
CSDL đề án công ty theo dõi các thông tin liên quan
đến nhân viên, phòng ban và đề án
◦ Cty có nhiều đơn vị, mỗi đơn vị có tên duy nhất, mã đơn vị
duy nhất, một trưởng phòng và ngày nhận chức. Mỗi đơn vị có
thể ở nhiều địa điểm khác nhau.
◦ Dự án có tên duy nhất, mã duy nhất, do 1 một phòng ban chủ
trì và được triển khai ở 1 địa điểm.
◦ Nhân viên có mã số, tên, địa chỉ, ngày sinh, giới tính và lương.
Mỗi nhân viên làm việc ở 1 phòng ban, tham gia vào các đề án
với số giờ làm việc khác nhau. Mỗi nhân viên đều có một
người quản lý trực tiếp.
◦ Một nhân viên có thể có những người con được hưởng bảo
hiểm theo nhân viên. Mỗi người con của nhân viên có tên, giới
tính, ngày sinh.
143
1
1
N 1
1
N 1
N
M
N
1
N
Số nhân viên
144
Chuyển lược đồ E/R sang thiết kế quan hệ
DHTM_TMU
sds 37
145
(1) Tập thực thể
◦ Các tập thực thể (trừ tập thực thể yếu) chuyển thành các quan
hệ có cùng tên và tập thuộc tính
NHANVIEN TENNV
NS DCHI
GT
LUON
G
HONV
MANV
Lam_viec
La_truong_phon
g
PHONGBAN
MAPHG TENPH
G
n 1
1 1
NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG)
PHONGBAN(TENPHG,
MAPHG)
146
(2) Mối quan hệ
◦ (2a) Một-Một
Hoặc thêm vào quan hệ này thuộc tính khóa của quan hệ kia
Hoặc thêm thuộc tính khóa vào cả 2 quan hệ
NHANVIEN TENNV
NS DCHI
GT
LUON
G
HONV
MANV
La_truong_pho
ng
PHONGBAN
MAPHG TENPH
G
1 1
NG_NHANCH
UC
PHONGBAN(MAPHG, TENPHG, MANV,
NG_NHANCHUC)
147
(2) Mối quan hệ
◦ (2b) Một-Nhiều
Thêm vào quan-hệ-một thuộc tính khóa của quan-hệ-nhiều
NHANVIEN TENNV
NS DCHI
GT
LUON
G
HONV
MANV
Lam_viec PHONGBAN
MAPHG TENPH
G
n 1
NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG,
MAPHG)
148
(2) Mối quan hệ
◦ (2c) Nhiều-Nhiều
Tạo một quan hệ mới có
Tên quan hệ là tên của mối quan hệ
Thuộc tính là những thuộc tính khóa của các tập thực thể liên quan
DEAN
TENDA
DDIEM_D
A
MADA
NHANVIEN TENNV
NGSIN
H
DCHI
PHAI
LUON
G
HONV
MANV
Phan_cong
n n
THOIGIA
N
PHANCONG(MANV, MADA,
THOIGIAN)
DHTM_TMU
sds 38
149
(3) Thực thể yếu
◦ Chuyển thành một quan hệ
Có cùng tên với thực thể yếu
Thêm vào thuộc tính khóa của quan hệ liên quan
NHANVIEN TENNV
NS DCHI
GT
LUON
G
HONV
MANV
THANNHAN(MANV, TENTN, GT, NS, QUANHE)
THANNHAN
TENTN
GT
NS
QUANH
E
Co_than_nha
n
n
1
150
(4) Thuộc tính đa trị
◦ Chuyển thành một quan hệ
Có cùng tên với thuộc tính đa trị
Thuộc tính khóa của quan hệ này là khóa ngoài của quan hệ chứa
thuộc tính đa trị
NHANVIEN TENNV
NS BANGCA
P
GT
LUON
G
HONV
MANV
BANGCAP(MANV, BANGCAP)
NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, DCHI)
151
(5) Liên kết đa ngôi (n>2)
◦ Chuyển thành một quan hệ
Có cùng tên với tên mối liên kết đa ngôi
Khóa chính là tổ hợp các khóa của tập các thực thể tham gia liên
kết
NHACUNGCAP(MANCC
,)
DEAN(MADA,
)
THIETBI(MATB,
)
NHACUNGCA
P
MANC
C
Cung_cap DEAN
MADA TENDA
THIETBI MATB
SOLUON
G
CUNGCAP(MANCC, MATB, MADA,
SOLUONG)
152
3.1. Đại số quan hệ
3.2. Ngôn ngữ truy vấn có cấu trúc SQL
DHTM_TMU
sds 39
153
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
Nội dung chi tiết
154
Là loại 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 của quan hệ. Kết quả trả về của một câu truy vấn
là một thể hiện của quan hệ
Chuỗi các phép toán đạisố quan hệ hình thành nên biểu
thức đại số quan hệ (câu truy vấn) mà kết quả của nó
cũng trả về một thể hiện của quan hệ
Có 3 nhóm phép toán
◦ Phép toán tập hợp (∪, ∩, −, x, ÷)
◦ Phép toán quan hệ (π, σ, )
◦ Phép toán khác (←, ρ)
155
Biến là các quan hệ
◦ Tập hợp (set)
Toán tử là các phép toán (operations)
◦ Trên tập hợp
• Hội (union)
• Giao (intersec)
• Trừ (difference)
◦ Rút trích 1 phần của quan hệ
• Chọn (selection)
• Chiếu (projection)
◦ Kết hợp các quan hệ
• Tích Cartesian (Cartesian product)
• Kết (join)
156
Hằng số là thể hiện của quan hệ
Biểu thức
◦ Được gọi là câu truy vấn
◦ Là chuỗi các phép toán đại số quan hệ
◦ Kết quả trả về là một thể hiện của quan hệ
DHTM_TMU
sds 40
157
PHONGBAN(MAPHG, TENPHG, MANV, NG_NHANCHUC)
NHANVIEN(MANV, TENNV, HONV, NS, DCHI, GT, LUONG, PHG)
PHANCONG(MANV, MADA, THOIGIAN)
THANNHAN(MANV, TENTN, GT, NS, QUANHE)
158
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
159
Quan hệ là tập hợp các bộ
◦ Phép hội R S
◦ Phép giao R S
◦ Phép trừ R S
Tính khả hợp (Union Compatibility)
◦ ĐN1: Hai lược đồ quan hệ R(A1, A2, , An) và S(B1, B2, , Bn) là khả
hợp nếu
• Cùng bậc n
• Và có DOM(Ai)=DOM(Bi) , 1 i n
◦ ĐN 2: Cho 2 quan hệ r và s, r và s được gọi là khả hợp nếu chúng được
xác định trên cùng tập thuộc tính và các thuộc tính cùng tên có cùng
miền giá trị
Kết quả của , , và là một quan hệ có cùng tên thuộc tính với
quan hệ đầu tiên (R)
160
Ví dụ
TENNV NGSINH GT
Tung 12/08/1955 Nam
Hang 07/19/1968 Nu
Nhu 06/20/1951 Nu
Hung 09/15/1962 Nam
NHAN_VIEN TENTN NG_SINH GTTN
Trinh 04/05/1986 Nu
Khang 10/25/1983 Nam
Phuong 05/03/1958 Nu
Minh 02/28/1942 Nam
THAN_NHAN
Chau 12/30/1988 Nu
Bậc n=3
DOM(TENNV) = DOM(TENTN)
DOM(NGSINH) = DOM(NG_SINH)
DOM(GT) = DOM(GTTN)
Hai quan hệ NHANVIEN và
THANNHAN là khả hợp
DHTM_TMU
sds 41
161
Cho 2 quan hệ R và S khả hợp
Phép hội của R và S
◦ Ký hiệu R S
◦ Là một quan hệ gồm tập tất cả các bộ thuộc R hoặc thuộc S,
hoặc cả hai (các bộ trùng lặp sẽ bị bỏ)
Ví dụ
R S = { t tR tS }
A B
R
1
2
1
A B
S
2
3
A B
R S
1
2
1
3
2
162
Cho 2 quan hệ R và S khả hợp
Phép giao của R và S
◦ Ký hiệu R S
◦ Là một quan hệ gồm tập tất cả các bộ thuộc cả 2 quan hệ R và S
Ví dụ
R S = { t tR tS }
A B
R
1
2
1
A B
S
2
3
R S A B
2
163
Cho 2 quan hệ R và S khả hợp
Phép giao của R và S
◦ Ký hiệu R S
◦ Là một quan hệ gồm tập tất cả các bộ thuộc R nhưng không thuộc S
Ví dụ
R S = { t tR tS }
A B
R
1
2
1
A B
S
2
3
R - S A B
1
1
164
Giao hoán
Kết hợp
R S = S R
R S = S R
R (S T) = (R S) T
R (S T) = (R S) T
DHTM_TMU
sds 42
165
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
166
Được dùng để lọc ra một tập con các bộ của quan hệ R
Các bộ được chọn phải thỏa mãn điều kiện chọn F
Ký hiệu
F là biểu thức logic gồm các mệnh đề có dạng
◦
◦
• gồm , , , , ,
• Các mệnh đề được nối lại nhờ các phép , ,
F (R)
167
Cho R là một quan hệ và F là một biểu thức logic trên các thuộc
tính của R
Phép chọn trên quan hệ R với biểu thức chọn F
◦ Ký hiệu: F(R)
◦ Là một quan hệ gồm tập tất cả các bộ thuộc R và thỏa F
Kết quả trả về là một quan hệ
◦ Có cùng danh sách thuộc tính với R
◦ Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ (A=B)(D>5) (R) A B
R
C
1
5
12
23
D
7
7
3
10
A B
C
1
23
D
7
10
F(R) = { t tR F(t) đúng }
168
Phép chọn có tính giao hoán
F1 ( F2 (R)) = F2 ( F1 (R)) = F1 F2 (R)
DHTM_TMU
sds 43
169
Cho biết các nhân viên ở phòng số 4
◦ Quan hệ: NHANVIEN
◦ Thuộc tính: PHG
◦ Điều kiện: PHG=4
F (R)
PHG=4 (NHANVIEN)
170
Tìm các nhân viên có lương trên 25000 ở phòng 4 hoặc
các nhân viên có lương trên 30000 ở phòng 5
◦ Quan hệ: NHANVIEN
◦ Thuộc tính: LUONG, PHG
◦ Điều kiện:
• LUONG>25000 và PHG=4 hoặc
• LUONG>30000 và PHG=5
(LUONG>25000 PHONG=4) (LUONG>30000 PHONG=5)
(NHAN_VIEN)
171
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
172
Được dùng để lấy ra một vài cột của quan hệ R
Cho R là một quan hệ n ngôi xác định tren tập thuộc tính
U={A1,A2, , An} và một tập con thuộc tính XU.
Phép chiếu của quan hệ R trên tập thuộc tính X
◦ Ký hiệu: X(R)
◦ Là một quan hệ gồm tập tất cả các bộ của R xác định trên tập thuộc
tính X
Kết quả trả về là một quan hệ
◦ Có k thuộc tính
◦ Có số bộ luôn ít hơn hoặc bằng số bộ của R
Ví dụ
X(R)={t[X]
tR}
A C
1 A B
R
10
20
30
C
1
1
1
40 2
A,C (R)
1
2
1
DHTM_TMU
sds 44
173
Phép chiếu không có tính giao hoán
A1, A2, , An(A1, A2, , Am(R))
=
A1, A2, , An (R) , với n
m
X,Y (R) = X (Y (R))
174
Cho biết họ tên và lương của các nhân viên
◦ Quan hệ: NHANVIEN
◦ Thuộc tính: HONV, TENNV, LUONG
HONV, TENNV, LUONG(NHANVIEN)
175
Cho biết mã nhân viên có tham gia đề án hoặc có thân
nhân
◦ Quan hệ: THANNHAN, DEAN
◦ Thuộc tính: MANV
MANV(DEAN)
MANV(THANNHAN)
MANV(DEAN) MANV(THANNHAN)
176
Cho biết mã nhân viên có người thân và có tham gia đề
án
◦ Quan hệ: THANNHAN, DEAN
◦ Thuộc tính: MANV
MANV(DEAN)
MANV(THANNHAN)
MANV(DEAN) MANV(THANNHAN)
DHTM_TMU
sds 45
177
Cho biết mã nhân viên không có thân nhân nào
◦ Quan hệ: NHANVIEN, THANNHAN
◦ Thuộc tính: MANV
MANV(NHANVIEN)
MANV(THANNHAN)
MANV(NHANVIEN) - MANV(THANNHAN)
178
Mở rộng phép chiếu bằng cách cho phép sử dụng các
phép toán số học trong danh sách thuộc tính
Ký hiệu F1, F2, , Fn (E)
◦ E là biểu thức ĐSQH
◦ F1, F2, , Fn là các biểu thức số học liên quan đến
• Hằng số
• Thuộc tính trong E
179
Cho biết họ tên của các nhân viên và lương của họ sau
khi tăng 10%
HONV, TENNV, LUONG*1.1 (NHANVIEN)
Ví dụ
◦ THETINDUNG(MATHE, TRIGIATHE, SOTIENSD)
◦ Cho biết số tiền còn lại trong mỗi thẻ
MATHE, TRIGIATHE SOTIENSD (THETINDUNG)
180
Được sử dụng để nhận lấy kết quả trả về của một phép
toán
◦ Thường là kết quả trung gian trong chuỗi các phép toán
Ký hiệu
Ví dụ
◦ B1
◦ B2
S P (R)
KQ A1, A2, , Ak (S)
DHTM_TMU
sds 46
181
Được dùng để đổi tên
◦ Quan hệ
◦ Thuộc tính
S(R) : Đổi tên quan hệ R thành
S
Xét quan hệ R(B, C, D)
X, C, D (R) : Đổi tên thuộc tính B thành X
Đổi tên quan hệ R thành S và thuộc tính B thành
X
S(X,C,D)(R)
182
Cho biết họ và tên nhân viên làm việc ở phòng số 4
C1:
C2:
HONV, TENNV (PHG=4 (NHANVIEN))
NV_P4 PHG=4 (NHANVIEN)
KQ HONV, TENNV (NV_P4)
KQ(HO, TEN) HONV, TENNV (NV_P4)
KQ(HO, TEN) (HONV, TENNV (NV_P4))
183
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
184
Được dùng để kết hợp các bộ của các quan hệ lại với nhau
Cho quan hệ R, S tương ứng xác định trên tập thuộc tính {A1,A2,,An}
và {B1,B2, , Bm} .
Phép tích Đề - các của 2 quan hệ R và S
◦ Ký hiệu: R x S
◦ Là một quan hệ gồm tập tất cả các (m+n) - bộ có n thành phần đầu tiên là
một bộ thuộc R và m thành phần sau là một bộ thuộc S
Kết quả trả về là một quan hệ Q
◦ Mỗi bộ của Q là tổ hợp giữa 1 bộ trong R và 1 bộ trong S
◦ Nếu R có u bộ và S có v bộ thì Q sẽ có u v bộ
◦ Nếu R có n thuộc tính và S có m thuộc tính thì Q sẽ có n + m thuộc tính
(R+ S+ )
R S={t t=(a1,..an,b1,..bm) (a1,..an) R (b1,..bm)
S }
DHTM_TMU
sds 47
185
Ví dụ
A B
R
1
2
C D
S
10
10
E
+
+
20 -
10 -
R S
A B
1
2
2
1
1
1
2
2
C D
10
10
10
10
20
10
20
10
E
+
+
+
+
-
-
-
-
186
Ví dụ
A B
R
1
2
B C
S
10
10
D
+
+
20 -
10 -
X
(X,C,D) (S)
R S
A B
1
2
2
1
1
1
2
2
X C
10
10
10
10
20
10
20
10
D
+
+
+
+
-
-
-
-
187
Ví dụ
A B
R
1
2
B C
S
10
10
D
+
+
20 -
10 -
Kí hiệu rõ
ràng
A R.
B
1
2
2
1
1
1
2
2
S.
B
C
10
10
10
10
20
10
20
10
D
+
+
+
+
-
-
-
-
R S
188
Thông thường theo sau phép tích Cartesian là phép
chọn
R S
A R.B
1
2
2
1
1
1
2
2
S.B C
10
10
10
10
20
10
20
10
D
+
+
+
+
-
-
-
-
A=S.B (R S)
A R.B
1
2
2
S.B C
10
10
20
D
+
+
-
DHTM_TMU
sds 48
189
TRPHG=MANV (PB_NV)
PB_NV PHONGBAN x NHANVIEN
Với mỗi phòng ban, cho biết thông tin của người trưởng phòng
◦ Quan hệ: PHONG_BAN, NHAN_VIEN
◦ Thuộc tính: TRPHG, MAPHG, TENNV, HONV,
TENPHG MAPHG TRPHG NG_NHANCH
UC
Nghien
cuu
5 33344555
5
05/22/1988
Dieu hanh 4 98798798
7
01/01/1995
Quan ly 1 88866555
5
06/19/1981
TENNV HONV
Tung Nguyen
Hung Nguyen
33344555
5
98798798
7
88866555
5
MANV
Vinh Pham
190
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
◦ Kết tự nhiên (Natural join)
◦ Kết có điều kiện tổng quát (Theta join)
◦ Kết bằng (Equi join)
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
191
Được dùng để tổ hợp 2 bộ có liên quan từ 2 quan hệ
thành 1 bộ
Ký hiệu R S
◦ R(A1, A2, , An) và S(B1, B2, , Bm)
Kết quả của phép kết là một quan hệ Q
◦ Có n + m thuộc tính Q(A1, A2, , An, B1, B2, , Bm)
◦ Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S, thỏa mãn một số
điều kiện kết nào đó
• Có dạng Ai Bj
• Ai là thuộc tính của R, Bj là thuộc tính của S
• Ai và Bj có cùng miền giá trị
• là phép so sánh , , , , ,
192
Phân loại
◦ Kết theta (theta join) là phép kết có điều kiện
• Ký hiệu R C S
• C gọi là điều kiện kết trên thuộc tính
◦ Kết bằng (equi join) khi C là điều kiện so sánh bằng
◦ Kết tự nhiên (natural join)
• Ký hiệu R S hay R S
• R+ S+
• Kết quả của phép kết bằng bỏ bớt đi 1 cột giống nhau
DHTM_TMU
sds 49
193
Ví dụ phép kết theta
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R B<D S
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
A B C D E
R C S = C(R S)
194
Ví dụ phép kết bằng
D E
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=D S
A B
1 2
C
3
4 5 6
D
3
E
1
6 2
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
R C=S.C S
A B
1 2
C
3
4 5 6
S.
C
3
D
1
6 2
S.
C
(S.C,D) S
195
Ví dụ phép kết tự nhiên
R S
C D
3
S
6
1
2
A B
1
R
4
2
5
C
3
6
7 8 9
A B
1 2
C
3
4 5 6
S.
C
3
D
1
6 2
D
1
2
196
Với mỗi nhân viên, hãy cho biết thông tin của phòng ban mà họ
đang làm việc
◦ Quan hệ: NHANVIEN, PHONGBAN
◦ Thuộc tính: MANV,TENNV,,PHG, TENPHG,
DHTM_TMU
sds 50
197
Tập các phép toán , , , , được gọi là tập đầy đủ
các phép toán ĐSQH
◦ Nghĩa là các phép toán có thể được biểu diễn qua chúng
◦ Ví dụ
• RS = RS ((RS) (SR))
• R CS = C(RS)
198
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
199
Được dùng để lấy ra một số bộ trong quan hệ R sao cho
thỏa với tất cả các bộ trong quan hệ S
Ký hiệu R S
◦ R(Z) và S(X)
• Z là tập thuộc tính của R, X là tập thuộc tính của S
• X Z
Kết quả của phép chia là một quan hệ T(Y)
◦ Với Y=Z-X
◦ Có t là một bộ của T nếu với mọi bộ tSS, tồn tại bộ tRR thỏa
2 điều kiện
• tR(Y) = t
• tR(X) = tS(X) X Y
T(Y
)
S(X) R(Z)
200
Ví dụ
A B
a
a
a
a
a
a
a
a
C D
a
b
a
a
b
a
b
b
E
1
3
1
1
1
1
1
1
R D E
a
S
b
1
1
R S
A B C
a
a
DHTM_TMU
sds 51
201
Cho biết mã nhân viên tham gia tất cả các đề án
◦ Quan hệ: PHANCONG, DEAN
◦ Thuộc tính: MANV
202
Cho biết mã nhân viên tham gia tất cả các đề án do
phòng số 4 phụ trách
◦ Quan hệ: PHANCONG, DEAN
◦ Thuộc tính: MANV
◦ Điều kiện: PHG=4
203
Biểu diễn phép chia thông qua tập đầy đủ các phép toán
ĐSQH
Q1 Y (R)
Q2 Q1 S
Q3 Y(Q2 R)
T Q1 Q3
204
Cho một CSDL gồm 3 quan hệ:
◦ NhaCC(MaNCC,TenNCC,Tinhtrang,Diachi)
◦ Hanghoa(MaHH,TenHH,Mausac,Trongluong,Diachi)
◦ Cungcap(MaNCC,MaHH,Soluong)
Biểu diễn các câu hỏi sau bằng ĐSQH
1. Đưa ra danh sách các hàng hóa có màu đỏ?
2. Đưa ra MaNCC của các hãng cung ứng mặt hàng P1 hoặc P2?
3. Đưa ra MaNCC của các hãng cung ứng cả 2 mặt hàng P1 và P2?
4. Đưa ra MaNCC của các hãng cung ứng ít nhất một mặt hàng
màu đỏ?
5. Đưa ra MaNCC của các hãng cung ứng tất cả các mặt hàng?
DHTM_TMU
sds 52
205
Biểu diễn các câu hỏi sau bằng ĐSQH
1. Đưa ra danh sách các hàng hóa có màu đỏ?
Mausac=“Đỏ”(Hanghoa)
2. Đưa ra MaNCC của các hãng cung ứng mặt hàng P1 hoặc P2?
MaNCC(MaHH=“P1” v MaHH=“p2” (Cungcap))
3. Đưa ra MaNCC của các hãng cung ứng cả 2 mặt hàng P1 và P2?
MaNCC(MaHH=“P1”(Cungcap))MaNCC(MaHH=“p2” (Cungcap))
4. Đưa ra MaNCC của các hãng cung ứng ít nhất một mặt hàng màu đỏ?
MaNCC(Cungcap * (Mausac=“Đỏ” (Hanghoa))
5. Đưa ra MaNCC của các hãng cung ứng tất cả các mặt hàng?
MaNCC, MaHH(Cungcap) MaHH(Hanghoa)
206
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
◦ Hàm kết hợp (Aggregation function)
◦ Phép gom nhóm (Grouping)
◦ Phép kết ngoài (Outer join)
Các thao tác cập nhật trên quan hệ
207
Nhận vào tập hợp các giá trị
Trả về một giá trị đơn
Gồm
◦ AVG
◦ MIN
◦ MAX
◦ SUM
◦ COUNT
208
Ví dụ
A B
1
R
3
2
4
1
1
2
2
SUM(B) = 10
AVG(A) = 1.5
MIN(A) = 1
MAX(B) = 4
COUNT(A) = 4
DHTM_TMU
sds 53
209
Được dùng để phân chia quan hệ thành nhiều nhóm dựa
trên điều kiện gom nhóm nào đó
Ký hiệu
◦ E là biểu thức ĐSQH
◦ G1, G2, , Gn là các thuộc tính gom nhóm
◦ F1, F2, , Fn là các hàm
◦ A1, A2, , An là các thuộc tính tính toán trong hàm F
G1, G2, , GnF1(A1), F2(A2), , Fn(An)(E)
210
Ví dụ
SUM(C)(R)
SUM_C
27
A B
R
2
4
2
2
C
7
7
3
10 ASUM(C)(R)
SUM_C
14
3
10
A
211
Mở rộng phép kết để tránh mất mát thông tin
◦ Thực hiện phép kết
◦ Lấy thêm các bộ không thỏa điều kiện kết
Có 3 hình thức
◦ Mở rộng bên trái
◦ Mở rộng bên phải
◦ Mở rộng 2 bên
212
DHTM_TMU
sds 54
213
Cho biết họ tên nhân viên và tên phòng ban mà họ là
trưởng phòng nếu có
R1 NHANVIEN MANV=TRPHG PHONGBAN
KQ HONV,TENNV, TENPHG (R1)
TENNV HONV TENPHG
Tung Nguyen Nghien
cuu
Hang Bui null
Nhu Le null
Vinh Pham Quan ly
214
Giới thiệu
Đại số quan hệ
Phép toán tập hợp
Phép chọn
Phép chiếu
Phép tích Cartesian
Phép kết
Phép chia
Các phép toán khác
Các thao tác cập nhật trên quan hệ
215
Nội dung của CSDL có thể được cập nhật bằng các
thao tác
◦ Thêm (insertion)
◦ Xóa (deletion)
◦ Sửa (updating)
Các thao tác cập nhật được diễn đạt thông qua phép
toán gán
Rnew các phép toán trên
Rold
216
Được diễn đạt
◦ R là quan hệ
◦ E là một biểu thức ĐSQH
Ví dụ
◦ Phân công nhân viên có mã 123456789 làm thêm đề án mã số
20 với số giờ là 10
Rnew Rold E
PHANCONG PHANCONG (‘123456789’, 20,
10)
DHTM_TMU
sds 55
217
Được diễn đạt
◦ R là quan hệ
◦ E là một biểu thức ĐSQH
Ví dụ
◦ Xóa các phân công đề án của nhân viên 123456789
Rnew Rold E
PHANCONG PHANCONG MANV=‘123456789’(PHANCONG)
218
Được diễn đạt
◦ R là quan hệ
◦ Fi là biểu thức tính toán cho ra giá trị mới của thuộc tính
Ví dụ
◦ Tăng thời gian làm việc cho tất cả nhân viên lên 1.5 lần
Rnew F1, F2, , Fn (Rold)
PHANCONG MANV, SODA, THOIGIAN*1.5(PHANCONG)
219
3.1. Đại số quan hệ
3.2. Ngôn ngữ truy vấn có cấu trúc SQL
220
Giới thiệu
Định nghĩa dữ liệu (DDL)
Truy vấn dữ liệu (DML)
Cập nhật dữ liệu (DML)
Khung nhìn (View)
Chỉ mục (Index)
DHTM_TMU
sds 56
221
Một DBMS phải có ngôn ngữ giao tiếp giữa NSD với CSDL,
bao gồm:
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL):
cho phép khai báo cấu trúc bảng, các mối quan hệ và các ràng buộc.
Ngôn ngữ thao tác dữ liệu (Data Manipulation Language - DML):
cho phép thêm, xóa, sửa dữ liệu.
Ngôn ngữ truy vấn dữ liệu (Structured Query Language – SQL):
cho phép truy vấn dữ liệu.
Ngôn ngữ điều khiển dữ liệu (Data Control Language – DCL):
khai báo bảo mật thông tin, cấp quyền và thu hồi quyền khai thác
trên cơ sở dữ liệu.
222
Ngôn ngữ ĐSQH
◦ Cách thức truy vấn dữ liệu
◦ Khó khăn cho người sử dụng
SQL (Structured Query Language)
◦ Ngôn ngữ cấp cao
◦ Người sử dụng chỉ cần đưa ra nội dung cần truy vấn
◦ Được phát triển bởi IBM (1970s)
◦ Được gọi là SEQUEL (Structured English Query Language)
◦ Được ANSI (American National Standard Institute) công nhận
và phát triển thành chuẩn
• SQL-86
• SQL-92
• SQL-99
223
SQL gồm
◦ Định nghĩa dữ liệu (DDL)
◦ Thao tác dữ liệu (DML)
◦ Định nghĩa khung nhìn
◦ Ràng buộc toàn vẹn
◦ Phân quyền và bảo mật
◦ Điều khiển giao tác
SQL sử dụng thuật ngữ
◦ Bảng ~ quan hệ
◦ Cột ~ thuộc tính
◦ Dòng ~ bộ
224
Giới thiệu
Định nghĩa dữ liệu (DDL)
◦ Kiểu dữ liệu
◦ Các lệnh định nghĩa dữ liệu
Truy vấn dữ liệu (DML)
Cập nhật dữ liệu (DML)
Khung nhìn (View)
Chỉ mục (Index)
HTM_TMU
sds 57
225
Là ngôn ngữ mô tả
◦ Lược đồ cho mỗi quan hệ
◦ Miền giá trị tương ứng của từng thuộc tính
◦ Ràng buộc toàn vẹn
◦ Chỉ mục trên mỗi quan hệ
Gồm
◦ CREATE TABLE (tạo bảng)
◦ DROP TABLE (xóa bảng)
◦ ALTER TABLE (sửa bảng)
◦ CREATE DOMAIN (tạo miền giá trị)
◦ CREATE DATABASE (tạo cơ sở dữ liệu)
◦
226
Số (numeric)
◦ INTEGER
◦ SMALLINT
◦ NUMERIC, NUMERIC(p), NUMERIC(p,s)
◦ DECIMAL, DECIMAL(p), DECIMAL(p,s)
◦ REAL
◦ DOUBLE PRECISION
◦ FLOAT, FLOAT(p)
227
Chuỗi ký tự (character string)
◦ CHARACTER, CHARACTER(n)
◦ CHARACTER VARYING(x)
Chuỗi bit (bit string)
◦ BIT, BIT(x)
◦ BIT VARYING(x)
Ngày giờ (datetime)
◦ DATE gồm ngày, tháng và năm
◦ TIME gồm giờ, phút và giây
◦ TIMESTAMP gồm ngày và giờ
228
Giới thiệu
Định nghĩa dữ liệu (DDL)
Truy vấn dữ liệu (DML)
◦ Truy vấn cơ bản
◦ Tập hợp, so sánh tập hợp và truy vấn lồng
◦ Hàm kết hợp và gom nhóm
◦ Một số kiểu truy vấn khác
Cập nhật dữ liệu (DML)
Khung nhìn (View)
Chỉ mục (Index)
DHTM_TMU
sds 58
229
Là ngôn ngữ rút trích dữ liệu
◦ Thường đi kèm với một số điều kiện nào đó
Dựa trên
◦ Cho phép kết quả trả về của bảng có nhiều dòng trùng nhau
Phép toán ĐSQH Một số bổ sung
230
Gồm 3 mệnh đề
◦
• Tên các cột cần được hiển thị trong kết quả truy vấn
◦
• Tên các bảng liên quan đến câu truy vấn
◦
• Biểu thức boolean xác định dòng nào sẽ được rút trích
• Nối các biểu thức: AND, OR, và NOT
• Phép toán: , , , , , , LIKE và BETWEEN
SELECT
FROM
[WHERE]
231
SELECT
FROM
[WHERE ]
[GROUP BY ]
[HAVING ]
[ORDER BY ]
232
SELECT
FROM
WHERE
DHTM_TMU
sds 59
233
SELECT *
FROM NHANVIEN
WHERE PHG=5
Lấy tất cả các cột
của quan hệ kết
quả
TENNV HONV NGSINH DCHI GT LUONG PHG
Tung Nguyen 12/08/19
55
638 NVC
Q5
Nam 40000 5
Hung Nguyen 09/15/19
62
Ba Ria VT Nam 38000 5
3334455
55
9879879
87
MANV MA_NQL
8886655
55
3334455
55
TENLO
T
Thanh
Manh
234
SELECT MANV, HONV, TENLOT,
TENNV
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nam’
TENNV HONV
Tung Nguye
n
Hung Nguye
n
TENLO
T
Thanh
Manh
3334455
55
9879879
87
MANV
235
SELECT MANV, HONV AS HO, TENLOT AS ‘TEN LOT’, TENNV AS
TEN
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nam’
TEN HO
Tung Nguye
n
Hung Nguye
n
TEN LOT
Thanh
Manh
3334455
55
9879879
87
MANV
Tên bí danh
236
SELECT MANV, HONV + ‘ ’ + TENLOT + ‘ ’ + TENNV AS ‘HO TEN’
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nam’
HO TEN
Nguyen Thanh
Tung
Nguyen Manh
Hung
3334455
55
9879879
87
MANV
Mở rộng
DHTM_TMU
sds 60
237
SELECT MANV, LUONG*1.1 AS
‘LUONG10%’
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nam’
LUONG10%
33000
27500
3334455
55
9879879
87
MANV
Mở rộng
238
SELECT LUONG
FROM NHANVIEN
WHERE PHG=5 AND GT=‘Nam’
Loại bỏ các dòng trùng nhau
- Tốn chi phí
- Người dùng muốn
thấy
LUONG
30000
25000
25000
38000
38
DISTINCT LUONG
239
SELECT
FROM
WHERE
Cho biết MANV và TENNV làm việc ở phòng „Nghien
cuu‟
MANV, TENNV
NHANVIEN, PHONGBAN
TENPHG=‘Nghien
cuu’
PHG=MAPH
G
AND
240
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND
PHG=MAPHG
Biểu thức luận
lý
TRUE TRUE
DHTM_TMU
sds 61
241
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG>=20000 AND
LUONG<=30000
BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG BETWEEN 20000 AND
30000
242
NOT BETWEEN
SELECT MANV, TENNV
FROM NHANVIEN
WHERE LUONG NOT BETWEEN 20000 AND
30000
243
SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen _ _ _ _’
LIKE
SELECT MANV, TENNV
FROM NHANVIEN
WHERE DCHI LIKE ‘Nguyen %’
Chuỗi bất kỳ
Ký tự bất kỳ
244
SELECT MANV, TENNV
FROM NHANVIEN
WHERE HONV LIKE ‘Nguyen’
NOT LIKE
SELECT MANV, TENNV
FROM NHANVIEN
WHERE HONV NOT LIKE ‘Nguyen’
DHTM_TMU
sds 62
245
Ngày giờ
SELECT MANV, TENNV
FROM NHANVIEN
WHERE NGSINH BETWEEN ‘1955-12-08’ AND ‘1966-07-19’
YYYY-MM-DD
MM/DD/YYY
Y
‘1955-12-08’
’12/08/1955’
‘December 8, 1955’
HH:MI:SS ’17:30:00’
’05:30 PM’
‘1955-12-08 17:30:00’
246
WHERE TRUE
SELECT MANV, MAPHG
FROM NHANVIEN, PHONGBAN
Không sử dụng mệnh đề WHERE
MAPHG
1
4
3334455
55
3334455
55
MANV
5
1 9879879
87
9879879
87
3334455
55
4
5 9879879
87
247
SELECT TENPHG, DIADIEM
FROM PHONGBAN,
DDIEM_PHG
WHERE MAPHG=MAPHG
Tên bí danh
AS PB, DDIEM_PHG AS
PB.MAPHG=DD.MAPHG
SELECT TENNV, NGSINH, TENTN,
NGSINH
FROM NHANVIEN, THANNHAN
WHERE MANV=MA_NVIEN
V.NGSINH, TENTN,
TN.NGSINH
NV, THANNHAN TN
248
Dùng để hiển thị kết quả câu truy vấn theo một thứ tự
nào đó
Cú pháp
◦ ASC: tăng (mặc định)
◦ DESC: giảm
SELECT
FROM
WHERE
ORDER BY <danh sách các
cột>
DHTM_TMU
sds 63
249
Ví dụ
SELECT MA_NVIEN, SODA
FROM PHANCONG
ORDER BY MA_NVIEN DESC,
SODA
SODA
10
30
999887777
999887777
MA_NVIEN
10
30 987987987
987654321
987987987
10
20 987654321
30 987654321
250
Giới thiệu
Định nghĩa dữ liệu (DDL)
Truy vấn dữ liệu (DML)
◦ Truy vấn cơ bản
◦ Tập hợp, so sánh tập hợp và truy vấn lồng
◦ Hàm kết hợp và gom nhóm
◦ Một số dạng truy vấn khác
Cập nhật dữ liệu (DML)
Khung nhìn (View)
Chỉ mục (Index)
251
SQL có cài đặt các phép toán
◦ Hội (UNION)
◦ Giao (INTERSECT)
◦ Trừ (EXCEPT hoặc MINUS)
Kết quả trả về là tập hợp
◦ Loại bỏ các bộ trùng nhau
◦ Để giữ lại các bộ trùng nhau
• UNION ALL
• INTERSECT ALL
• EXCEPT ALL
252
Cú pháp
SELECT FROM WHERE
UNION [ALL]
SELECT FROM WHERE
SELECT FROM WHERE
INTERSECT [ALL]
SELECT FROM WHERE
SELECT FROM WHERE
EXCEPT [ALL]
SELECT FROM WHERE
HTM_TMU
sds 64
253
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND
PHG=MAPHG
SELECT
FROM
WHERE (
SELECT
FROM
WHERE )
Câu truy vấn
cha (Outer
query)
Câu truy vấn con
(Subquery)
254
Các câu lệnh SELECT có thể lồng nhau ở nhiều mức
Các câu truy vấn con trong cùng một mệnh đề WHERE
được kết hợp bằng phép nối logic
Câu truy vấn con thường trả về một tập các giá trị
Mệnh đề WHERE của câu truy vấn cha
◦
◦ So sánh tập hợp thường đi cùng với một số toán tử
• IN, NOT IN
• ALL
• ANY hoặc SOME
◦ Kiểm tra sự tồn tại
• EXISTS
• NOT EXISTS
255
Có 2 loại truy vấn lồng
◦ Lồng phân cấp
• Mệnh đề WHERE của truy vấn con không tham chiếu đến thuộc
tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
• Khi thực hiện, câu truy vấn con sẽ được thực hiện trước, 1 lần
◦ Lồng tương quan
• Mệnh đề WHERE của truy vấn con tham chiếu ít nhất một thuộc
tính của các quan hệ trong mệnh đề FROM ở truy vấn cha
• Khi thực hiện, câu truy vấn con sẽ được thực hiện nhiều lần, mỗi
lần tương ứng với một bộ của truy vấn cha
256
SELECT MANV, TENNV , PHG
FROM NHANVIEN, PHONGBAN
WHERE DIADIEM=‘TP HCM’ AND
PHG=MAPHG
SELECT MANV, TENNV, PHG
FROM NHANVIEN
WHERE PHG IN
(
SELECT MAPHG
FROM PHONGBAN
WHERE DIADIEM=‘TP HCM’ )
DHTM_TMU
sds 65
257
SELECT MANV, TENNV
FROM NHANVIEN, PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND
PHG=MAPHG
SELECT MANV, TENNV
FROM NHANVIEN
WHERE EXISTS (
SELECT *
FROM PHONGBAN
WHERE TENPHG=‘Nghien cuu’ AND PHG=MAPHG )
258
Giới thiệu
Định nghĩa dữ liệu
Truy vấn dữ liệu
◦ Truy vấn cơ bản
◦ Tập hợp, so sánh tập hợp và truy vấn lồng
◦ Hàm kết hợp và gom nhóm
◦ Một số dạng truy vấn khác
Cập nhật dữ liệu
Khung nhìn (view)
Chỉ mục (index)
259
COUNT
◦ COUNT(*) đếm số dòng
◦ COUNT() đếm số giá trị khác NULL của
thuộc tính
◦ COUNT(DISTINCT ) đếm số giá trị khác
nhau và khác NULL của thuộc tính
MIN
MAX
SUM
AVG
Các hàm kết hợp được đặt ở mệnh đề SELECT
260
Tìm tổng lương, lương cao nhất, lương thấp nhất và lương
trung bình của các nhân viên
SELECT SUM(Luong), MAX(LUONG), MIN(LUONG), avg(LUONG)
FROM NHANVIEN
DHTM_TMU
sds 66
261
Cho biết số lượng nhân viên của phòng „Nghien cuu‟
SELECT COUNT(MANV)
FROM NHANVIEN nv, PHONGBAN pb
WHERE nv.PHG = pb.MAPHG AND pb.TENPHONG
= 'Nghien Cuu'
262
Cú pháp
Sau khi gom nhóm
◦ Mỗi nhóm các bộ sẽ có cùng giá trị tại các thuộc tính gom
nhóm
SELECT
FROM
WHERE
GROUP BY <danh sách các cột gom
nhóm>
263
Cho biết số lượng nhân viên của từng phòng ban
SELECT PHG, COUNT(MANV) AS SL_NV
FROM NHANVIEN
GROUP BY PHG
264
Cú pháp
SELECT
FROM
WHERE
GROUP BY <danh sách các cột gom
nhóm>
HAVING
DHTM_TMU
sds 67
265
Cho biết những nhân viên tham gia từ 2 đề án trở lên
SELECT MA_NVIEN, COUNT(*) AS SL_DA,
FROM PHANCONG
GROUP BY MA_NVIEN
HAVING COUNT(SODA)>2
266
Cho biết những phòng ban (TENPHG) có lương trung
bình của các nhân viên lớn lơn 20000
SELECT TENPHG, AVG(LUONG) AS LUONGTB_PB
FROM PHONGBAN pb, NHANVIEN nv
WHERE pb.MAPHG=nv.PHG
GROUP BY PHG
HAVING AVG(LUONG)>20000
267
Mệnh đề GROUP BY
◦ Các thuộc tính trong mệnh đề SELECT (trừ những thuộc tính
trong các hàm kết hợp) phải xuất hiện trong mệnh đề GROUP
BY
Mệnh đề HAVING
◦ Sử dụng các hàm kết hợp trong mệnh đề SELECT để kiểm tra
một số điều kiện nào đó
◦ Chỉ kiểm tra điều kiện trên nhóm, không là điều kiện lọc trên
từng bộ
◦ Sau khi gom nhóm điều kiện trên nhóm mới được thực hiện
268
Với mỗi phòng cho biêt tên phòng và số lượng nhân
viên của phòng
SELECT pb.TENPHONG, count(*)
FROM NHANVIEN nv, PHONGBAN pb
WHERE nv.phg = pb.MAPHG
GROUP BY pb.MAPHG, pb.TENPHONG
DHTM_TMU
sds 68
269
Thứ tự thực hiện câu truy vấn có mệnh đề GROUP BY
và HAVING
◦ (1) Chọn ra những dòng thỏa điều kiện trong mệnh đề
WHERE
◦ (2) Những dòng này sẽ được gom thành nhiều nhóm tương
ứng với mệnh đề GROUP BY
◦ (3) Áp dụng các hàm kết hợp cho mỗi nhóm
◦ (4) Bỏ qua những nhóm không thỏa điều kiện trong mệnh đề
HAVING
◦ (5) Rút trích các giá trị của các cột và hàm kết hợp trong mệnh
đề SELECT
270
Tìm những phòng ban có lương trung bình cao nhất.
Tìm những nhân viên có lương cao nhất.
SELECT *
FROM NHANVIEN
WHERE LUONG >= ALL (
SELECT LUONG FROM NHANVIEN)
271
Tìm những phòng ban có lương trung bình cao nhất.
◦ B1: Tìm lương trung bình của từng phòng ban
SELECT PHG, AVG(LUONG)
FROM NHANVIEN
GROUP BY PHG
HAVING AVG(LUONG) >= ALL(
SELECT AVG(LUONG)
FROM NHANVIEN
GROUP BY PHG
)
272
Tìm 3 nhân viên có lương cao nhất
SELECT TOP 3 *
FROM NHANVIEN
ORDER BY LUONG DESC
DHTM_TMU
sds 69
273
Giới thiệu
Định nghĩa dữ liệu (DDL)
Truy vấn dữ liệu (DML)
◦ Truy vấn cơ bản
◦ Tập hợp, so sánh tập hợp và truy vấn lồng
◦ Hàm kết hợp và gom nhóm
◦ Một số dạng truy vấn khác
Cập nhật dữ liệu (DML)
Khung nhìn (View)
Chỉ mục (Index)
274
Truy vấn con ở mệnh đề FROM
Điều kiện kết ở mệnh đề FROM
◦ Phép kết tự nhiên
◦ Phép kết ngoàI
Cấu trúc CASE
275
SELECT
FROM
[WHERE ]
[GROUP BY ]
[HAVING ]
[ORDER BY ]
276
Giới thiệu
Định nghĩa dữ liệu (DDL)
Truy vấn dữ liệu (DML)
Cập nhật dữ liệu (DML)
◦ Thêm (insert)
◦ Xóa (delete)
◦ Sửa (update)
Khung nhìn (View)
Chỉ mục (Index)
DHTM_TMU
Các file đính kèm theo tài liệu này:
- bg_csdl_encrypt_5711_1982317.pdf