SlideShare ist ein Scribd-Unternehmen logo
1 von 145
1
BÀI GIẢNG MÔN HỌC
CƠ SỞ DỮ LIỆU
Biên soạn:
ThS. Văn Như Bích B,
ThS. Võ Hoàng Khang,
Khoa CNTT, trường Đại học KTCN TP.HCM.
(TP.HCM, tháng 1/2011. Lưu hành nội bộ)
2
NỘI DUNG:
Chương I. MỘT SỐ KHÁI NIỆM CƠ BẢN
Chương II. MÔ HÌNH DỮ LIỆU QUAN HỆ
Chương III. NGÔN NGỮ ĐẠI SỐ QUAN HỆ
Chương IV. NGÔN NGỮ TRUY VẤN CSDL
Chương V. RÀNG BUỘC TOÀN VẸN
Chương VI. CHUẨN HÓA DỮ LIỆU
Chương VII. NGÔN NGỮ TÂN TỪ (tự đọc)
3
Chương 1. MỘT SỐ KHÁI NIỆM CƠ BẢN
NỘI DUNG:
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL
1.2. CÁC MÔ HÌNH DỮ LIỆU
4
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (1)
1. CƠ SỞ DỮ LIỆU (Database):
Là một hệ thống thông tin (HTTT) có cấu trúc kết hợp
với các phép toán phù hợp với cấu trúc đó, nhằm mục
đích tổ chức, lưu trữ, khai thác và kiểm tra qui tắc quản
lý một cách "Tốt nhất”, đảm bảo tính nhất quán và
không trùng lắp cho nhiều người sử dụng một cách
đồng thời với nhiều mục đích khác nhau.
Lưu ý:
Các tính chất: Hệ thống, có cấu trúc, nhiều người sử
dụng, khai thác đồng thời, nhiều mục đích khác nhau.
Nội dung của môn CSDL sẽ làm rõ tính "Tốt nhất“.
5
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (2)
Tính "Tốt nhất" cần làm rõ bởi các nội dung sau:
 Tổ chức và lưu trữ "Tốt nhất”: HTTT dữ liệu dạng
bảng -> gần gủi với người sử dụng (MH Quan Hệ -
Chương II).
 Khai thác "Tốt nhất": Tường minh và chặt chẻ bởi
các phép toán Đại số Quan hệ (Ngôn ngữ Đại số
Quan hệ, chương III). Trong sáng dễ diễn đạt và
gần gũi với ngôn ngữ tự nhiên được xử lý khai thác
bởi bởi ngôn ngữ SQL (Ngôn ngữ truy vấn DL,
chương IV), đã được tối ưu hóa (Chương VII - TỐI
ƯU HÓA CÂU HỎI)
6
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (3)
• Kiểm tra các qui tắc quản lý "Tốt nhất”: Dễ dàng
kiểm tra các qui tắc dựa vào 3 yếu tố của RBTV
(Bối cảnh, nội dung, tầm ảnh hưởng) (Chương V –
Ràng buộc toàn vẹn).
• Biểu diễn HTTT theo tiêu chuẩn đảm bảo tính nhất
quán, không trùng lắp thông tin dựa vào việc chuẩn
hóa dữ liệu (Chuẩn hóa dữ liệu, Chương VI).
7
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (4)
Để đảm bảo HTTT cho nhiều người sử dụng
với nhiều mục đích khác nhau khi chọn hệ
quản trị CSDL cần quan tâm đến các vấn
đề:
• Tính chủ quyền bị vi phạm
• Tính nhất quán của dữ liệu
• Vấn đề bảo mật
• Tính an toàn dữ liệu
• Vấn đề tranh chấp dữ liệu
8
1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (5)
2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU (DataBase Management System -
DBMS): Là hệ thống các chương trình quản trị CSDL, đồng thời
là công cụ giao tiếp giữa người sử dụng hoặc các ứng dụng
với CSDL.
• Hệ quản trị CSDL cần có:
– Từ điển dữ liệu (Data Dictionary)
– Cơ chế giải quyết tranh chấp.
– Cơ chế bảo mật dữ liệu.
– Cơ chế tự động sao lưu (Backup) và phục hồi (Restore) dữ liệu
khi có sự cố.
– Ngôn ngữ giao tiếp người sử dụng (NSD) với CSDL.
– Đảm bảo tính độc lập giữa dữ liệu và chương trình.
– Có thể, cần có giao diện tốt với người dùng không chuyên.
9
1.2. CÁC MÔ HÌNH DỮ LIỆU
1. MÔ HÌNH MẠNG (Network Data Model)
2. MÔ HÌNH PHÂN CẤP (Hierachical Data
Model)
3. MÔ HÌNH QUAN HỆ (Relational Data
Model)
4. MÔ HÌNH THỰC THỂ KẾT HỢP (Entity-
RelationShip)
5. MÔ HÌNH HƯỚNG ĐỐI TƯỢNG (Object
Oriented Model)
10
Chương 2. MÔ HÌNH DỮ LIỆU QUAN HỆ
NỘI DUNG:
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
11
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (1)
1. Quan Hệ: Là một đối tượng tồn tại trong thế giới thực được làm
rõ bởi các giá trị có liên quan nhau:
 Ví dụ: 1 quan hệ sinh viên:
005, Trần Văn A, 06/10/1990, Nam, 10DTH01
-> Quan hệ sinh viên có mãsố sinh viên là 005, có tên là Trần
Văn A, ngày sinh là 06/10/1990, phái Nam, thuộc lớp
10DTH01.
 Những giá trị có quan hệ (liên quan ) Là:
(i) Lớp 10DTH01 có SV là Trần Văn A.
(ii) SV Trần Văn A có ngày sinh là 06/10/1990 và mã số để
phân biệt với các SV khác là 005.
(iii) SV Trần Văn A là SV Nam.v.v…
12
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (2)
 Tên gọi của các giá trị liên quan gọi là thuộc tính (mã số, tên, ngày
sinh, phái, lớp)
 Ví dụ 2: 1 quan hệ địa chỉ -> gồm các giá trị liên quan nào? thuộc tính
nào?
2. Loại Quan Hệ: Tất cả các quan hệ có cùng tính chất mô tả
(cùng tên gọi các thuộc tính liên quan). Tính chất mô tả gọi là
thuộc tính của loại quan hệ.
=> Loại quan hệ là:
 Danh sách các quan hệ.
 Dữ liệu dạng bảng có dòng đầu là danh sách các thuộc
tính, dòng thứ 2 là các quan hệ với các giá trị tương ứng
với tên gọi các thuộc tính.
13
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (3)
• Các thuộc tính (hay các tên gọi của các giá trị mô tả của quan
hệ)
» Dữ liệu dạng bảng:
• Danh sách các quan hệ cùng loại, được gọi là loại quan hệ
Sinh Viên
MãSố Tên Ngàysinh Phái Lớp
01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8
01212148901 Nguyễn Trung Tín 02-011992 Nam 10CDH8
01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
14
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (4)
Loại quan hệ thường được biểu diễn dưới dạng lược đồ
quan hệ (lđ qh). Ví dụ: lđ qh SinhVien(MãSố, Tên,
Ngàysinh, Phái, Lớp) đây là dạng viết tắt của loại quan hệ
sinh viên (hay dữ liệu dạng bảng là danh sách các sinh
viên).
=> dữ liệu dạng bảng là loại quan hệ (hay danh sách các
quan hệ) là dạng viết dầy đủ của lđ qh ký hiệu T(quanhệ).
Ví dụ TSinhVien:
MãSố Tên Ngàysinh Phái Lớp
01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8
01212148901 Nguyễn Trung Tín 02-011992 Nam 10CDH8
01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
15
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (5)
3. Thuộc tính: Tính chất để mô tả loại quan hệ hay tên gọi các
giá trị mô tả các quan hệ cùng loại.
 Ví dụ: MãSố, Tên, Ngàysinh, Phái, Lớp.
 Mỗi một quan hệ được mô tả bởi các giá trị có liên quan
tương ứng với tên gọi của các giá trị (Thuộc tính) đó,
được gọi là một bộ (hay một thể hiện của một loại quan
hệ tức một quan hệ).
Ví dụ:
1 bộ q1->(005, Trần Văn A, 06/10/1990, Nam, 10DTH01)
1 bộ q2->(006, Trần Văn B, 06/10/1990, Nam, 10DTH01)
16
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (6)
• Thuộc tính được đặc trưng bởi 3 yếu tố:
a. Tên gọi.
b. Kiểu giá trị.
c. Miền giá trị.
17
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (7)
4. Siêu khóa & Khóa (của một loại quan hệ):
• Siêu Khóa: Tập thuộc tính mà giá trị của nó dùng để phân
biệt quan hệ này với quan hệ khác trong cùng một loại
quan hệ.
=> *Hai quan hệ (2 bộ) có cùng giá trị của khóa thì hai quan
hệ đó là một (trùng nhau) nghĩa là các giá trị trên các
thuộc tính khác cũng giống nhau.
*Mỗi một quan hệ trên một loại quan hệ chỉ được thể hiện
một lần nghĩa là bộ giá trị của siêu khóa không được trùng
nhau trong T quan hệ.
• Khóa: Siêu khóa bé nhất hay Tập thuộc tính bé nhất mà
giá trị của nó dùng để phân biệt quan hệ này với quan hệ
khác trong cùng một loại quan hệ.
18
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (8)
• Các ví dụ về khóa:
Ví dụ1: TKB(Thứ, Ca, Phòng, Sốtiết, Lớp, Mãmôn, MãGV).
Xác định khóa?
Ví dụ 2: BànThắng(MãcầuThủ, MãTrận, Phút).
Xác định khóa?
Ví dụ 3: HônThú(SốHT, CMND_Ch, LầnCh, CMND_Vo,
LầnVo, NgayKetHon).
Tìm các khóa khác với khóa: SốHT.
Ví dụ 4: SV tự đưa các lđ quan hệ và xác định khóa?
Ví dụ 5: Quản lý siêu thị cần các lđ quan hệ?
19
2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (9)
• Những điều lưu ý về khóa:
* Khóa không do chủ quan của người cài đặt mà do qui tắc quản
lý quyết định.
* Không phải tất cả các thuộc tính có tên Mã số là tham gia vào
khóa mà chỉ có thể là khóa ngoại (hay khóa của một loại quan
hệ khác).
* Bất cứ loại quan hệ nào cũng có ít nhất là 1 khóa.
* Khóa của loại quan hệ là tập thuộc tính còn khóa của 1 quan
hệ là tập các giá trị thể hiện của quan hệ đó trên tập thuộc
tính khóa.
* Cách tìm khóa dựa vào: Qui tắc quản lý (tân từ), dựa vào 2 bộ
với các giá trị không thể trùng nhau (vì trùng nhau buộc các
giá trị khác phải trùng nhau tức 2 bộ là một )
20
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (1)
1. Lệnh tạo lđ quan hệ R(A1, A2,... An):
CREATE TABLE <R> (
<A1> <Kiểu_dữ_liệu> [<RBTV>],
<A2> <Kiểu_dữ_liệu> [<RBTV>],
…
[<RBTV>] )
Ví dụ: CREATE TABLE NHANVIEN (
HOTENNV NVARCHAR(50) NOT NULL,
MANV CHAR(9) PRIMARY KEY,
NS SMALLDATETIME,
DCHI NVARCHAR(50),
GT CHAR(3) CHECK (GT IN (‘Nam’, ‘Nu’)),
PHG INT )
21
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (2)
2. Lệnh sửa bảng:
– Thay đổi cấu trúc bảng.
– Thay đổi RBTV.
Thêm cột:
ALTER TABLE <Tên_bảng> ADD COLUMN
<Tên_cột> <Kiểu_dữ_liệu> [<RBTV>]
Xóa cột:
ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột>
Mở rộng cột:
ALTER TABLE <Tên_bảng> ALTER COLUMN
<Tên_cột> <Kiểu_dữ_liệu_mới>
22
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (3)
• Thêm RBTV:
ALTER TABLE <Tên_bảng> ADD
CONSTRAINT <Ten_RBTV> <RBTV>,
CONSTRAINT <Ten_RBTV> <RBTV>,
….
• Xóa RBTV:
ALTER TABLE <Tên_bảng> DROP <Tên_RBTV>
• Lệnh xóa bảng:
DROP TABLE <Tên_bảng>
23
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (4)
• Ví dụ - Thay đổi cấu trúc bảng:
ALTER TABLE NHANVIEN ADD
NGHENGHIEP CHAR(20)
ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP
ALTER TABLE NHANVIEN ALTER COLUMN
NGHENGHIEP CHAR(50)
Ví dụ - Xóa bảng:
DROP TABLE NHANVIEN
Ví dụ - Thay đổi RBTV:
24
CREATE TABLE PHONGBAN (
TENPB NVARCHAR(20),
MAPHG INT NOT NULL,
TRPHG CHAR(9),
NG_NHANCHUC DATETIME)
ALTER TABLE PHONGBAN ADD
CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG),
CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG)
REFERENCES NHANVIEN(MANV),
CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE())
FOR (NG_NHANCHUC),
CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)
25
2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (5)
3. Thêm bộ giá trị mới vào quan hệ R (A1, A2,... An):
INSERT (R; v1,v2,..., vn)
Ví dụ: ?
4. Sửa giá trị các bộ của quan hệ R:
UPDATE (R; A1=e1, A2=e2,..., An=en; điều kiện sửa)
Ví dụ: ?
5. Xóa các bộ của quan hệ R:
DELETE (R; điều kiện xóa)
Ví dụ: ?
26
Chương 3. NGÔN NGỮ ĐẠI SỐ QUAN HỆ
NỘI DUNG:
3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ
3.2 CÁC PHÉP TOÁN QUAN HỆ
3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT
3.4 CÁC VÍ DỤ MINH HỌA
27
3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (1)
1. Phép hợp nhất 2 quan hệ (UNION):
• Cho R(U) và S(U) là 2 lđ quan hệ. Phép hợp của 2 lđ
quan hệ R và S, ký hiệu: R ∪ S, là một lđ quan hệ Q
được định nghĩa:
Q = R ∪ S đn (i) Q+
= U;
 (ii) TQ = { t: t ∈ TR ∨ t ∈ TS }
2. Phép trừ 2 quan hệ (MINUS):
• Cho R(U) và S(U) là 2 lđ quan hệ. Phép hiệu của 2 lđ
quan hệ R và S, ký hiệu: R  S, là một lđ quan hệ Q được
định nghĩa:
Q = R  S đn (i) Q+
= U;
 (ii) TQ = { t: t ∈ TR ∨ t ∉ TS }
28
3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (2)
3. Phép lấy phần chung của 2 quan hệ (INTERSECTION):
Cho R(U) và S(U) là 2 lđ quan hệ. Phần chung (Phép giao) của 2
lđ quan hệ R và S, ký hiệu: R ∩ S, là một lđ quan hệ Q được
định nghĩa:
Q = R ∩ S đn (i) Q+
= U;
 (ii) TQ = { t: t ∈ TR ∧ t ∈ TS }
4. Phép tích Đề các (Des CARTESIAN):
Cho R(A1, A2,..., An) và S(B1, B2,..., Bn) là 2 lđ quan hệ.
Tích Đề các của 2 lđ quan hệ R và S, ký hiệu: R x S, là một quan
hệ Q được định nghĩa:
Q = R x S đn (i) Q+
= {A1, A2,..., An, B1, B2,..., Bn};
 (ii) TQ = { t =(u,v): u ∈ TR ∧ v ∈ TS }
29
3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (3)
5. Phép lấy phần bù của 1 quan hệ (COMPLEMENT):
Cho R (A1, A2,..., An) là một lđ quan hệ. Ai có miền giá trị là Dom(Ai)
với i = 1, 2,..., n. Phần bù của R, ký hiệu:R hoặc , là một lđ
quan hệ Q được định nghĩa:
Q = R đn (i) Q+
= {A1, A2,..., An};
 (ii) TQ = { t =(v1, v2,..., vn): vi ∈ Dom(Ai) ∧ t ∉ TR }
6. Phép chia 2 quan hệ (DIVISION):
Không làm mất tính tổng quát, giả sử R (A,B) và S(B) là 2 lđ quan
hệ. Thuơng của 2 lđ quan hệ R và S, ký hiệu: R÷ S, là một lđ
quan hệ Q được định nghĩa:
Q = R ÷ S đn (i) Q+
={A};
 (ii) TQ = { t = r.A: r ∈ TR ∧ ∀u ∈ TS ∧ (t,u) ∈ TR}
Tức là: Q x S ⊆ R
R
30
3.2 CÁC PHÉP TOÁN QUAN HỆ (1)
1. Phép chiếu (PROJECTION):
Cho R(U) là một lđ quan hệ và K ⊆ U.
Phép chiếu quan hệ R trên tập thuộc tính K, ký hiệu: R[K]
hoặc ΠK(R) là một lđ quan hệ Q được định nghĩa:
Q = ΠK(R) đn (i) Q+
= K;
 (ii) TQ = { t = r.K, r ∈ TR }
Nói đơn giản, là một quan hệ mới lấy từ R sau khi đã loại bỏ
đi các cột không cần giữ lại, và loại bỏ các dòng giống
nhau.
31
3.2 CÁC PHÉP TOÁN QUAN HỆ (2)
2. Phép chọn (SELECTION):
Phép chọn các bộ của quan hệ R thỏa điều kiện e
đã cho, ký hiệu là R: (e), hoặc σ(e)(R) được định
nghĩa:
Q = σ (e) (R) đn (i) Q+
= R;
 (ii) TQ = { r ∈ TR: e(r) = true }
32
3.2 CÁC PHÉP TOÁN QUAN HỆ (3)
3. Phép thêta kết (θ - JOIN):
Ở đây θ là một trong các phép so sánh: >, >=, <, <=, =
Cho R (U) và S (V) là các lđ quan hệ được định nghĩa trên tập thuộc tính
U ={A1, A2,..., An} và V = {B1, B2,..., Bn}.
A ∈ U, B ∈ V là 2 thuộc tính của 2 lđ quan hệ.
Phép θ - kết giữa quan hệ R và S, ký hiệu là R S, được định nghĩa:
Q= R S đn (i) Q+
= U ∪ V;
 (ii) TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A θ v.B}.
Hay R S = (R x S): (R.A θ S.B)
A θ B
A θ B
A θ B
33
3.2 CÁC PHÉP TOÁN QUAN HỆ (4)
Các trường hợp đặc biệt:
• Nếu θ là phép so sánh bằng nhau (=) thì phép kết được
gọi là phép kết bằng nhau, hay phép kết tương đương
(EQUI-JOIN).
• Nếu θ là phép so sánh bằng nhau (=) và 2 thuộc tính A, B
có tên giống nhau thì gọi đó là phép kết tự nhiên
(NATURAL JOIN), và ký hiệu là R S.
Ví dụ: "Cho tên phòng ban cùng danh sách tên các nhân
viên”:
PhongBan(MAPB, TenPB),
NhanVien(MNV,TenNV, DC, ĐT,MAPB)
PhongBan NhanVien [TenPB, TenNV]
34
3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (1)
• Phép kết đặc biệt xảy ra khi θ là phép so sánh bằng nhau (=), A
là khóa chính của R và B là khóa ngoại của S khi tham chiếu
tới quan hệ R. Giả sử thể hiện của 2 quan hệ như sau:
1. Phép kết trong (INNER JOIN). Thực chất là phép kết bằng
nhau, hay phép kết tương đương EQUI-JOIN. ký hiệu phép
toán này bằng dấu sao (*).
Kết quả của phép kết trong giữa R và S: (R*S): Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
R(A, X)
(1, x1)
(2, x2)
(3, x3)
S (B, Y)
(1, y1)
(2, y2)
(4, y4)
35
3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (2)
2. Phép kết vế trái (LEFT JOIN):
Phép kết vế trái giữa R và S, ký hiệu R S, là 1 quan hệ Q
định nghĩa trên tập thuộc tính U ∪ V, mà
TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc
t = (u, Null): u ∈ TR ∧ ∃v ∈ TS s/c u.A = v.B}
Kết quả phép kết vế trái giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(3, x3, Null, Null) (1)
Suy ra, có thể dễ dàng tìm được các bộ của R mà không có
bộ giá trị tương ứng trong quan hệ S.
36
3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (4)
3. Phép kết vế phải (RIGHT JOIN):
Phép kết vế phải giữa R và S, ký hiệu R S, là 1 quan hệ
Q định nghĩa trên tập thuộc tính U ∪ V, mà
TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc
t = (Null, v): v ∈ TS ∧ ∃u ∈ TR s/c u.A = v.B}
Kết quả phép kết vế phải giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(Null, Null, 4, y4) (2)
Suy ra, có thể dễ dàng tìm được các bộ của S mà không có
bộ giá trị tương ứng trong quan hệ R.
37
3. 3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (5)
4. Phép kết ngoài (OUTER JOIN):
Phép kết ngoài giữa R và S là 1 quan hệ Q định nghĩa trên
tập thuộc tính U ∪ V, mà
TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc
t = (u, Null): u ∈ TR ∧ ∃v ∈ TS s/c u.A = v.B, hoặc
t = (Null, v): v ∈ TS ∧ ∃u ∈ TR s/c u.A = v.B }
Kết quả phép kết ngoài giữa R và S là:
Q(A, X, B, Y)
(1, x1, 1, y1)
(2, x2, 2, y2)
(3, x3, Null, Null) (1)
(Null, Null, 4, y4) (2)
38
3.4 CÁC VÍ DỤ MINH HỌA (1)
Viết các biểu thức quan hệ để trả lời cho các câu hỏi sau:
1) "Cho danh sách nhân viên làm cùng phòng với Watson”.
(Employee: (Name = ‘Watson’))[Deptno] Employee
2) "Cho tên của người lãnh đạo Smith”.
((((Employee: (Name=‘Smith’))[Deptno] Department)
[Mgr]) Employee) [Name]
3) "Cho danh sách nhân viên có lương trên 4000”.
EMPLOYEE: (SALARY > 4000)
39
Chương IV. NGÔN NGỮ TRUY VẤN CSDL
NỘI DUNG:
4.1 Câu truy vấn tổng quát
4.2 Truy vấn đơn giản
4.3 Phép kết
4.4 Đặt bí danh, sử dụng *, distinct
4.5 Các toán tử
4.6 Câu truy vấn con (subquery)
4.7 Phép chia
4.8 Hàm tính toán, gom nhóm
40
4.1 Câu truy vấn tổng quát (1)
SELECT [DISTINCT] *|tên_cột | hàm
FROM bảng
[WHERE điều_kiện]
[GROUP BY tên_cột]
[HAVING điều_kiện]
[ORDER BY tên_cột ASC | DESC]
41
4.2 Truy vấn đơn giản (1)
• SELECT
– Tương đương phép chiếu của ĐSQH
– Liệt kê các thuộc tính cần hiển thị trong kết quả
• WHERE
– Tương ứng với điều kiện chọn trong ĐSQH
– Điều kiện liên quan tới thuộc tính, sử dụng các
phép nối luận lý AND, OR, NOT, các phép toán
so sánh, BETWEEN
• FROM
– Liệt kê các quan hệ cần thiết, các phép kết
42
4.2 Truy vấn đơn giản (2)
• Tìm masp, tensp do "Trung Quoc” sản xuất
có giá từ 20000 đến 30000.
Select masp,tensp
From SANPHAM
Where nuocsx = ‘Trung Quoc’
and gia between 20000 and 30000
43
4.3 Phép kết (1)
• Inner Join, Left Join, Right Join, Full Join
• Ví dụ:
– In ra danh sách các khách hàng (MAKH,
HOTEN) đã mua hàng trong ngày 1/1/2007.
select KHACHHANG.makh, hoten
from KHACHHANG inner join HOADON on
KHACHHANG.makh=HOADON.makh
where nghd='1/1/2007'
44
4.3 Phép kết (2)
• Ví dụ: In ra danh sách tất cả các hóa đơn và họ tên
của khách hàng mua hóa đơn đó (nếu có).
Select sohd, hoten
From HOADON left join KHACHHANG on
HOADON.makh=KHACHHANG.makh
Select sohd, hoten
From HOADON, KHACHHANG
Where HOADON.makh = KHACHHANG.makh
45
4.4 Đặt bí danh, sử dụng *, distinct
• Đặt bí danh (Alias) cho thuộc tính và quan hệ:
Tên_cũ AS Tên_mới
Select manv, hoten as [ho va ten] From NHANVIEN
• Liệt kê tất cả các thuộc tính của quan hệ:
Select * from Nhanvien
Select NHANVIEN.* from NHANVIEN
• Distinct: trùng chỉ lấy một lần
Select distinct nuocsx from SANPHAM
• Sắp xếp kết quả hiển thị: Order by
Select * from SANPHAM order by nuocsx, gia DESC
46
4.5 Toán tử truy vấn (1)
• Toán tử so sánh: =, >,<,>=,<=,<>
• Toán tử logic: AND, OR, NOT
• Phép toán: +, -,*, /
• BETWEEN …. AND
• IS NULL, IS NOT NULL
• LIKE (_ %)
• IN, NOT IN
• EXISTS, NOT EXISTS
• SOME, ALL
47
4.5 Toán tử truy vấn (2)
• IS NULL, IS NOT NULL
Select sohd from HOADON where makh is Null
Select * from HOADON where makh is Not Null
• Toán tử so sánh, phép toán
Select gia*1.1 as [gia ban] from SANPHAM where
nuocsx <> ’Viet Nam’
Select * from SANPHAM where (gia between 20000 and
30000) OR (nuocsx=‘Viet Nam’)
• Toán tử IN, NOT IN
Select * from SANPHAM where masp NOT IN
(‘BB01’,’BB02’,’BB03’)
48
4.5 Toán tử so sánh (3)
Toán tử LIKE
– So sánh chuỗi tương đối
– Cú pháp: s LIKE p, p có thể chứa % hoặc _
– %: thay thế một chuỗi ký tự bất kỳ
– _: thay thế một ký tự bất kỳ
– Ví dụ: Select masp,tensp from SANPHAM
where masp like 'B%01‘
49
4.6 Câu truy vấn con (1)
In hoặc Exists
• Ví dụ: Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có
mã số "BB01” và "BB02”.
Select distinct sohd
From CTHD where masp = 'BB01' and sohd IN
(select distinct sohd from CTHD
Where masp = 'BB02')
Select distinct A.sohd
From CTHD A
Where A.masp = 'BB01' and
EXISTS (select * from CTHD B
where B.masp = 'BB02‘ and
A.sohd = B.sohd)
50
4.6 Câu truy vấn con (2)
Not In hoặc Not Exists
Ví dụ: Tìm các số hóa đơn có mua sản phẩm mã số ‘BB01’
nhưng không mua sản phẩm mã số ‘BB02’.
Select distinct sohd
From CTHD
Where masp = 'BB01' and sohd NOT IN (select distinct sohd
from CTHD where masp = 'BB02')
Select distinct A.sohd
From CTHD A
Where A.masp = 'BB01' and
NOT EXITST (select * from CTHD B
where B.masp = 'BB02‘ and
A.sohd=B.sohd)
51
4.7 Phép chia
Sử dụng NOT EXISTS
• Ví dụ: Tìm số hóa đơn đã mua tất cả những sản
phẩm do "Trung Quoc” sản xuất.
• Select sohd from HOADON where not exists
(select * from SANPHAM
where nuocsx = ‘Trung Quoc’ and not exists
(select * from CTHD where
HOADON.sohd = CTHD.sohd and
CTHD.masp = SANPHAM.masp))
52
4.8 Các hàm tính toán và gom nhóm (1)
4.8.1 Các hàm tính toán cơ bản:
– COUNT: Đếm số bộ dữ liệu của thuộc tính
– MIN: Tính giá trị nhỏ nhất
– MAX: Tính giá trị lớn nhất
– AVG: Tính giá trị trung bình
– SUM: Tính tổng giá trị các bộ dữ liệu
53
NHANVIEN
MANV HOTEN PHAI MANQL PHONG LUONG
NV001 Nguyễn Ngọc Linh Nữ Null NC 2.800.000
NV002 Đinh Bá Tiến Nam NV002 DH 2.000.000
NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000
NV004 Trần Thanh Long Nam NV002 DH 1.800.000
NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000
NV006 Nguyễn Minh Nam NV002 DH 2.000.000
NV007 Hà Duy Lập Nam NV003 NC 1.800.000
NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000
NV009 Nguyễn Kim Anh Nữ NV003 NC 2.000.000
54
Ví dụ
1. Tính lương thấp nhất, cao nhất, trung bình và tổng
lương của tất cả các nhân viên.
2. Có tất cả bao nhiêu nhân viên?
3. Bao nhiêu nhân viên có người quản lý?
4. Bao nhiêu phòng ban có nhân viên trực thuộc?
5. Tính lương trung bình của các nhân viên.
6. Tính lương trung bình của các nhân viên theo từng
phòng ban.
55
Ví dụ
1. Tính lương thấp nhất, cao nhất, trung
bình và tổng lương của tất cả các nhân
viên.
SELECT min(luong) as thapnhat,
max(luong) as caonhat,
avg(luong) as trungbinh,
sum(luong) as tongluong
FROM NhanVien
56
Ví dụ
2. Có tất cả bao nhiêu nhân viên?
SELECT count(*) FROM NhanVien
3. Bao nhiêu nhân viên có người quản lý?
SELECT count(*) FROM NhanVien WHERE
manql is not null
SELECT count(Manql) FROM NhanVien
4. Bao nhiêu phòng ban có nhân viên trực thuộc
SELECT count(distinct phong) FROM NhanVien
57
4.8 Các hàm tính toán và gom nhóm (2)
4.8.2 Gom nhóm: mệnh đề GROUP BY
• Sử dụng hàm gom nhóm trên các bộ trong quan hệ.
• Mỗi nhóm bộ bao gồm tập hợp các bộ có cùng giá trị
trên các thuộc tính gom nhóm.
• Hàm gom nhóm áp dụng trên mỗi bộ độc lập nhau.
• SQL có mệnh đề GROUP BY để chỉ ra các thuộc tính
gom nhóm, các thuộc tính này phải xuất hiện trong
mệnh đề SELECT.
58
Ví dụ
5. Tính lương trung bình của các nhân viên
SELECT avg(LUONG) as LUONGTB
FROM NhanVien
6. Tính lương trung bình của các nhân viên theo từng phòng
ban.
SELECT phong, avg(LUONG) as LUONGTB
FROM NhanVien
GROUP BY phong
59
4.8 Các hàm tính toán và gom nhóm (3)
4.8.3 Điều kiện sau gom nhóm: mệnh đề HAVING
– Lọc kết quả theo điều kiện, sau khi đã gom nhóm
– Điều kiện ở HAVING được thực hiện sau khi gom
nhóm, các điều kiện có liên quan đến thuộc tính Group
By.
• Ví dụ: Tìm phòng có số lượng nhân viên "Nữ” trên 5
người.
SELECT Phong
FROM NhanVien
WHERE Phai = ‘Nữ’
GROUP BY Phong
HAVING count(manv) > 5
60
Chương V. RÀNG BUỘC TOÀN VẸN
5.1 Giới thiệu ràng buộc toàn vẹn (RBTV)
5.2 Các đặc trưng của một RBTV
5.3 Phân loại RBTV
5.3 Bảng tầm ảnh hưởng tổng hợp
61
5.1 Giới thiệu ràng buộc toàn vẹn (RBTV)
• Ràng buộc toàn vẹn là các quy định, điều
kiện từ ứng dụng thực tế, các điều kiện này
là bất biến.
⇒Vì thế phải luôn đảm bảo cơ sở dữ liệu
thỏa ràng buộc toàn vẹn sau mỗi thao tác
làm thay đổi tình trạng của cơ sở dữ liệu.
62
5.2 Các đặc trưng của một RBTV
5.2.1 Nội dung
5.2.2 Bối cảnh
5.2.3 Bảng tầm ảnh hưởng
63
5.2.1 Nội dung
• Mô tả chặt chẽ ý nghĩa của ràng buộc toàn
vẹn.
• Nội dung được phát biểu bằng ngôn ngữ tự
nhiên hoặc bằng ngôn ngữ hình thức (ngôn
ngữ tân từ, đại số quan hệ, mã giả,…)
– Ngôn ngữ tự nhiên: dễ hiểu nhưng không chặt
chẽ, logic.
– Ngôn ngữ hình thức: chặt chẽ, cô đọng.
64
5.2.2 Bối cảnh
• Là tập các loại quan hệ khi thao tác trên
những loại quan hệ đó có khả năng làm
cho ràng buộc bị vi phạm.
• Đó là những loại quan hệ có thể vi phạm
ràng buộc toàn vẹn khi thực hiện các thao
tác thêm, xóa, sửa.
65
5.2.3 Bảng tầm ảnh hưởng (1)
• Nhằm xác định khi nào tiến hành kiểm tra
ràng buộc toàn vẹn. Thao tác nào thực
hiện có thể làm vi phạm ràng buộc toàn
vẹn.
• Phạm vi ảnh hưởng của một ràng buộc
toàn vẹn được biểu diễn bằng một bảng 2
chiều gọi là Bảng tầm ảnh hưởng.
66
5.2.3 Bảng tầm ảnh hưởng (2)
Một số quy định
• Những thuộc tính khóa (những thuộc tính nằm
trong khóa chính của quan hệ) không được phép
sửa giá trị.
• Thao tác thêm và xóa xét trên một bộ của quan
hệ. Thao tác sửa xét sửa từng thuộc tính trên bộ
của quan hệ.
• Trước khi xét thao tác thực hiện có thể làm vi
phạm ràng buộc hay không thì CSDL phải thỏa
ràng buộc toàn vẹn trước.
67
5.2.3 Bảng tầm ảnh hưởng (3)
• Bảng tầm ảnh hưởng của một ràng buộc
+ : thực hiện thao tác có thể làm vi phạm RBTV
- : thực hiện thao tác không thể làm vi phạm RBTV
+(A): có thể làm vi phạm RBTV khi sửa trên thuộc tính A
-(*)
: không vi phạm RBTV do thao tác không thực hiện được
RÀNG BUỘC RI THÊM XÓA SỬA
LOẠI QUAN HỆ 1
LOẠI QUAN HỆ 2
LOẠI QUAN HỆ 3
68
5.3 Phân loại RBTV
5.3.1 RBTV có bối cảnh trên 1 loại quan hệ
5.3.2 RBTV có bối cảnh trên nhiều loại quan hệ
69
5.3.1 RBTV có bối cảnh trên 1 loại quan hệ
5.3.1.1 RBTV miền giá trị
5.3.1.2 RBTV liên thuộc tính
5.3.1.3 RBTV liên bộ
70
Lược đồ CSDL quản lý giáo vụ
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
DIEUKIEN (MAMH, MAMH_TRUOC)
GIAOVIEN(MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL,
HESO, MUCLUONG, MAKHOA)
GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY)
KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
71
5.3.1.1 Ràng buộc miền giá trị
• Là tập giá trị mà một thuộc tính có thể nhận.
• R1: Giới tính của học viên chỉ là Nam hoặc Nữ
– Nội dung:
∀hv ∈ HOCVIEN: hv.Gioitinh ∈ {‘Nam’,’Nữ’}
– Bối cảnh: loại quan hệ HOCVIEN
– Bảng tầm ảnh hưởng:
R1 THÊM XÓA SỬA
HỌC VIÊN + - +(gioitinh)
72
5.3.1.2 Ràng buộc liên thuộc tính
• Là ràng buộc giữa các thuộc tính với nhau trên 1 bộ của
quan hệ
• R2: Ngày bắt đầu (TUNGAY) giảng dạy một môn học cho
một lớp luôn nhỏ hơn ngày kết thúc (DENNGAY)
– Nội dung:
∀gd ∈ GIANGDAY: gd.TUNGAY < gd.DENNGAY
– Bối cảnh: GIANGDAY
– Bảng tầm ảnh hưởng:
73
5.3.1.3 Ràng buộc liên bộ (1)
• Là ràng buộc giữa các bộ trên cùng một quan hệ (có thể
liên quan đến nhiều thuộc tính).
• R3: Tất cả các học viên phải có mã số phân biệt với nhau
– Nội dung:
∀h1,h2∈ HOCVIEN: Nếu h1≠h2 thì h1.Mahv≠h2.Mahv
– Bối cảnh: quan hệ HOCVIEN
– Bảng tầm ảnh hưởng:
R3 Thêm Xóa Sửa
HOCVIEN + - + (MAHV)
74
5.3.1.3 Ràng buộc liên bộ (2)
• R4: Các giáo viên có cùng học vị, cùng hệ số lương thì
mức lương sẽ bằng nhau
– Nội dung:
∀gv1,gv2∈ GIAOVIEN:
Nếu (gv1.Hocvi=gv2.Hocvi)∧(gv1.Heso=gv2.Heso)
thì gv1.Mucluong=gv2.Mucluong
– Bối cảnh: quan hệ GIAOVIEN
– Bảng tầm ảnh hưởng:
75
5.3.2 RBTV có bối cảnh nhiều loại quan hệ
5.3.2.1 RBTV tham chiếu (khóa ngoại, phụ thuộc tồn tại)
5.3.2.2 RBTV liên thuộc tính
5.3.2.3 RBTV do thuộc tính tổng hợp
5.3.2.4 RBTV do chu trình trong lược đồ biểu diễn quan hệ
76
5.3.2.1 Ràng buộc tham chiếu (1)
• Là ràng buộc quy định giá trị thuộc tính
trong một bộ của loại quan hệ R (tập thuộc
tính này gọi là khóa ngoại), phải phụ thuộc
vào sự tồn tại của một bộ trong quan hệ S
(tập thuộc tính này là khóa chính trong
quan hệ S).
• RBTV tham chiếu còn gọi là ràng buộc phụ
thuộc tồn tại hay ràng buộc khóa ngoại.
77
3.2.1 Ràng buộc tham chiếu (2)
• R5: Học viên thi một môn học nào đó thì môn học đó phải có
trong danh sách các môn học
– Nội dung:
∀∀k ∈ KETQUATHI, ∃m ∈ MONHOC: k.Mamh = m.Mamh
• Hoặc: KETQUATHI[Mamh] ⊆ MONHOC[Mamh]
– Bối cảnh: loại quan hệ KETQUATHI, MONHOC
– Bảng tầm ảnh hưởng:
R5 Thêm Xóa Sửa
KETQUATHI + - + (MAMH)
MONHOC - + + (MAMH)
78
5.3.2.2 Ràng buộc liên thuộc tính (1)
• Là ràng buộc giữa các thuộc tính trên những loại quan hệ khác
nhau
• R6: Ngày giáo viên giảng dạy một môn học phải lớn hơn hoặc
bằng ngày giáo viên đó vào làm.
– Nội dung: ∀gd ∈ GIANGDAY
Nếu ∃gv ∈ GIAOVIEN: gd.Magv = gv.Magv
thì gv.NGVL ≤ gd.TUNGAY
– Bối cảnh: GIANGDAY, GIAOVIEN
– Bảng tầm ảnh hưởng:
79
5.3.2.2 Ràng buộc liên thuộc tính (2)
• R7: Ngày thi một môn học phải lớn hơn ngày kết thúc học
môn học đó.
– Nội dung:
∀kq ∈ KETQUATHI
Nếu ∃gd ∈GIANGDAY, ∃hv ∈HOCVIEN:
(gd.Malop=hv.Malop)∧(kq.Mamh=gd.Mamh)
thì
gd.Denngay < kq.Ngthi
– Bối cảnh: GIANGDAY, HOCVIEN, KETQUATHI
80
5.3.2.2 Ràng buộc liên thuộc tính (3)
• Bảng tầm ảnh hưởng:
81
5.3.2.3 RBTV do thuộc tính tổng hợp (1)
• Là ràng buộc giữa các thuộc tính, các bộ trên
những loại quan hệ khác nhau.
• Thuộc tính tổng hợp là thuộc tính được tính toán
từ giá trị của các thuộc tính khác, các bộ khác.
• Ví dụ: SANPHAM(Masp, Tensp, Nuocsx, Gia)
KHACHHANG(Makh, Hoten, Doanhso)
HOADON(Sohd, Nghd, Makh, Trigia)
CTHD(Sohd, Masp, Soluong, Gia)
– Trị giá của một hóa đơn bằng tổng thành tiền của các
chi tiết thuộc hóa đơn đó.
82
5.3.2.3 RBTV do thuộc tính tổng hợp (2)
• Doanh số của một khách hàng bằng tổng trị giá các
hóa đơn mà khách hàng đó đã mua:
– Nội dung:
∀kh ∈ KHACHHANG,
kh.Doanhso = ∑(hd ∈ HOADON: hd.Makh=kh.Makh)(hd.Trigia)
– Bối cảnh: KHACHHANG, HOADON
– Bảng tầm ảnh hưởng:
83
5.3.2.3 RBTV do thuộc tính tổng hợp (3)
• R8: Sĩ số của một lớp là số lượng học viên thuộc lớp đó
– Nội dung:
∀l ∈ LOP,
l.Siso = Count(hv ∈ HOCVIEN: hv.Malop = l.Malop)(*)
– Bối cảnh: quan hệ LOP, HOCVIEN
– Bảng tầm ảnh hưởng:
84
5.3.2.4 Do hiện diện của chu trình (1)
Biểu diễn lược đồ quan hệ dưới dạng đồ thị:
– Loại quan hệ được biểu diễn bằng nút tròn rỗng to.
– Thuộc tính được biểu diễn bằng nút tròn đặc nhỏ.
– Tất cả các nút đều được chỉ rõ bằng tên của quan
hệ hoặc thuộc tính. Thuộc tính thuộc một loại quan
hệ được biểu diễn bởi một cung nối giữa nút tròn
to và nút tròn nhỏ.
– Nếu đồ thị biểu diễn xuất hiện một đường khép
kín.
=> Lược đồ CSDL có sự hiện diện của chu trình.
85
5.3.2.4 Do hiện diện của chu trình (2)
86
5.3.2.4 Do hiện diện của chu trình (3)
• X = GIANGDAY[Magv, Mamh]
• Y = (GIAOVIEN ⋈ MONHOC) [Magv,Mamh]
• Ý nghĩa:
– X: giáo viên và những môn học đã được phân công cho
giáo viên đó giảng dạy
– Y: giáo viên và những môn học thuộc khoa giáo viên đó
phụ trách
• Mối quan hệ giữa X và Y trong các ràng buộc sau:
87
5.3.2.4 Do hiện diện của chu trình (4)
Xảy ra một trong ba ràng buộc sau:
• Ràng buộc 1: giáo viên chỉ được phân công
giảng dạy những môn thuộc khoa giáo viên
đó phụ trách X ⊆ Y
• Ràng buộc 2: giáo viên phải được phân công
giảng dạy tất cả những môn thuộc khoa giáo
viên đó phụ trách X = Y
• Ràng buộc 3: có thể phân công giáo viên
giảng dạy bất kỳ môn học nào X ≠ Y
88
5.3.2.4 Do hiện diện của chu trình (4)
• R9: giáo viên chỉ được phân công giảng
dạy những môn thuộc khoa giáo viên đó
phụ trách X ⊆ Y
89
5.3.3 Phụ thuộc hàm (functional dependency)
5.3.4 Thuật toán tìm khóa
90
5.3.3 Phụ thuộc hàm (1)
• Cho lđ quan hệ Q(A, B, C). Phụ thuộc hàm A xác
định B. Ký hiệu A → B nếu:
∀q1,q2∈Q: Nếu q1.A=q2.A thì q1.B=q2.B
• A → B được gọi là phụ thuộc hàm hiển nhiên nếu
B ⊆ A
• A → B được gọi là phụ thuộc hàm nguyên tố nếu
¬∃A’ ⊂ A, A’ ≠ A sao cho A’→ B
91
• Ràng buộc khóa cũng là một phụ thuộc hàm
Mamh → Tenmh, Tclt, Tcth, Makhoa
• R4: Các giáo viên có cùng học vị, cùng hệ số
lương thì mức lương sẽ bằng nhau. Ràng buộc
này có thể biểu diễn bằng phụ thuộc hàm như
sau:
Hocvi, Heso → Mucluong
5.3.3 Phụ thuộc hàm (2)
92
5.3.4 Thuật toán tìm khóa (1)
5.3.4.1 Thuật toán tìm bao đóng (Closure) của tập thuộc
tính:
1. X0 = X
2. Xi+1 = Xi ∪ A sao cho ∃ (Y  Z ) ∈ F,
mà A ∈ Z và Y ∈ Xi
3. Cho đến khi Xi+1 = Xi
(Vì X= X0 ⊆ X1 ⊆ X2 ⊆ … ⊆ U, mà U hữu hạn cho nên
sẽ tồn tại 1 chỉ số i nào đó mà Xi+1 = Xi)
 Khi đó X+
F = Xi
93
Ví dụ:
• Cho R(U) với U = ABCDEGH
F = {B  A, DA  CE, D  H,
GH  C, AC  D}
• Tính X+
F, với:
X = BD
X = AC
5.3.4 Thuật toán tìm khóa (2)
94
5.3.4.2 Định nghĩa khóa:
 R là lược đồ quan hệ định nghĩa trên tập các
thuộc tính U = { A1, A2,..., An }, với tập các phụ
thuộc hàm F = { f1, f2,..., fm } xác định trên R.
 K ⊆ U là khóa của R nếu thỏa mãn hai điều kiện
sau đây:
1) K → U. (K là siêu khóa)
2) ! K’ ⊂ K mà K’ → U. (siêu khóa nhỏ nhất)
5.3.4 Thuật toán tìm khóa (3)
95
5.3.4.3: Bài toán tìm khóa:
 A gọi là thuộc tính nguồn nếu A không xuất
hiện ở vế phải của bất kỳ Pth không hiển
nhiên nào của F. Tập các thuộc tính nguồn
ký hiệu là N.
 A gọi là thuộc tính đích nếu A không phải
thuộc tính nguồn và A không xuất hiện ở vế
trái của bất kỳ PTH không hiển nhiên nào
của F. Ký hiệu là D.
5.3.4 Thuật toán tìm khóa (4)
96
 Tập hợp các thuộc tính không phải nguồn
và không phải đích gọi là tập trung gian.
Ký hiệu là L
 Các tập hợp N, D, L rời nhau từng đôi
một và N ∪ D ∪ L = R+
Nhận xét
 Nếu K là khóa của R thì K chứa tất cả các
thuộc tính nguồn và không chứa bất kỳ
thuộc tính đích nào.
5.3.4 Thuật toán tìm khóa (5)
97
 B1: Xây dựng 2v
tập con của L: L1, L2, … bằng
phương pháp đường chạy nhị phân.
 B2: Xây dựng tập K chứa các siêu khóa
 K = ∅
 ∀ Li, Xi = N ∪ Li
 Tính Xi
+
F. Nếu Xi
+
F = R+
thì K = K ∪ Xi
 B3: Loại bỏ dần các siêu khóa lớn.
5.3.4 Thuật toán tìm khóa (6)
98
• Ví dụ:
Cho R(ABCDEG) với tập Pth
F = { AE  C, CG  A, BD  G, GA  E }
Xác định tất cả các khóa của R.
 Ta có:
– N = { B, D }
– D = ∅
– L = { A, C, E, G }
 Xây dựng tập thuộc tính Li bằng phương pháp
đường chạy nhị phân.
5.3.4 Thuật toán tìm khóa (7)
100
5.4. Bảng tầm ảnh hưởng tổng hợp (1)
• Bảng tầm ảnh hưởng tổng hợp của m
ràng buộc trên n quan hệ bối cảnh:
101
5.4. Bảng tầm ảnh hưởng tổng hợp (1)
102
Chương VI. CHUẨN HÓA DỮ LIỆU
6.1. Đặt vấn đề
6.2. Dạng chuẩn 1
6.3. Dạng chuẩn 2
6.4. Dạng chuẩn 3
6.5. Dạng chuẩn Boyce-Codd
6.6. Chuẩn hóa lược đồ CSDL bằng
phương pháp phân rã
6.7. Ví dụ
103
6.1. Đặt vấn đề (1)
• Xét lđ quan hệ
ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH, MãHH,
SốLượng )
Với tập Pth F = {SốĐH  NgàyĐH, MãKH;
SốĐH, MãHH  SốLượng}
=>=> Có Trùng lắp thông tin.Có Trùng lắp thông tin.
104
Sự trùng lắp thông tin dẫn đến:
Tăng chí phí lưu trữ
Tăng chi phí kiểm tra RBTV
Thiếu nhất quán
Vi phạm tính toàn vẹn của dữ liệu
6.1. Đặt vấn đề (2)
105
Tổ chức lại thành 2 loại quan hệ như sau:
ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH)
Với F1 = {SốĐH  NgàyĐH, MãKH}
CHITIẾT_ĐH (SốĐH, MãHH, SốLượng)
Với F2 = {SốĐH, MãHH  SốLượng}
=> Không còn xảy ra tình trạng trùng lắp
thông tin.
6.1. Đặt vấn đề (3)
106
• Để có thể đánh giá một cách cụ thể chất
lượng thiết kế của một lược đồ CSDL, lúc đầu
E.F.Codd (tác giả của mô hình dữ liệu quan
hệ) đưa ra 3 dạng chuẩn và sau đó
R.F.Boyce và E.F.Codd cải tiến dạng chuẩn 3
gọi là dạng chuẩn Boyce-Codd (BC).
• Các dạng chuẩn được định nghĩa dựa trên
khái niệm phụ thuộc hàm.
6.1. Đặt vấn đề (4)
107
• Mục đích của quá trình chuẩn hóa:
– Để biểu diễn được mọi quan hệ trong CSDL
– Tránh sai sót khi thêm, xóa, sửa dữ liệu
– Tránh phải xây dựng lại cấu trúc của các
loại quan hệ khi cần đến các kiểu dữ liệu
mới
6.1. Đặt vấn đề (5)
108
6.2. DẠNG CHUẨN 1 (1)
Thuộc tính đơn: Giả sử có lược đồ quan hệ Q. Một
thuộc tính A của Q gọi là thuộc tính đơn nếu mỗi
một thể hiện (dòng) thuộc tính A chỉ có một giá trị.
• Ví dụ 1: Môn không là thuộc tính đơn
CHUYÊN_MÔN (MÃGV, MÔN )
109
Định nghĩa:
• Một lược đồ quan hệ Q được gọi là ở dạng
chuẩn 1 nếu mọi thuộc tính của Q đều là thuộc
tính đơn.
Ví dụ:
Quan hệ CHUYÊN_MÔN (MÃGV, MÔN )
không đạt dạng chuẩn 1
Khắc phục: CHUYÊN_MÔN (MÃGV, MÔN)
6.2. DẠNG CHUẨN 1 (2)
110
• CHUYÊN_MÔN (MÃGV, MÔN) đạt dạng
chuẩn 1:
6.2. DẠNG CHUẨN 1 (3)
111
6.3. DẠNG CHUẨN 2 (1)
• Phụ thuộc đầy đủ:
Giả sử có 1 lược đồ quan hệ Q và tập phụ
thuộc hàm F. Thuộc tính A được gọi là phụ
thuộc đầy đủ vào 1 tập thuộc tính X nếu:
– A ∈ X+
F
– X  A là phụ thuộc hàm nguyên tố
(không tồn tại X’ ⊆ X, mà X’  A)
112
Định nghĩa:
• Một lược đồ quan hệ Q được gọi là ở dạng
chuẩn 2 nếu:
– Q ở dạng chuẩn 1.
– Mọi thuộc tính không khóa của Q đều phụ
thuộc đầy đủ vào các khóa của Q.
6.3. DẠNG CHUẨN 2 (2)
113
Ví dụ: Loại quan hệ ĐẶT_HÀNG (SốĐH, MãHH,
NgàyĐH, MãKH, SốLượng)
Với tập Pth F = {SốĐH  NgàyĐH, MãKH;
SốĐH, MãHH  SốLượng}
 Không đạt dạng chuẩn 2
Khắc phục: Tách thành 2 quan hệ:
ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH)
Với F1 = {SốĐH  NgàyĐH, MãKH}
CHITIẾT_ĐH (SốĐH, MãHH, SốLượng)
Với F2 = {SốĐH, MãHH  SốLượng}
6.3. DẠNG CHUẨN 2 (3)
114
• Nhận xét:
– Nếu lược đồ quan hệ Q chỉ có 1 khóa K
và K chỉ có 1 thuộc tính thì Q ở dạng
chuẩn 2.
– Một lược đồ quan hệ Q ở dạng chuẩn 2
vẫn có thể chứa đựng sự trùng lắp thông
tin.
6.3. DẠNG CHUẨN 2 (4)
115
6.4. DẠNG CHUẨN 3 (1)
Phụ thuộc bắc cầu:
• Thuộc tính A ∈ Q+
được gọi là phụ thuộc bắc
cầu vào tập thuộc tính X nếu ∃Y ∈ Q+
:
– X  Y ∈ F+
và Y  A ∈ F+
– Y  X ∉ F+
– A ∉ (X ∪ Y)
• Khi đó X  A được gọi là phụ thuộc hàm bắc
cầu.
116
 Định nghĩa:
Một lược đồ quan hệ Q được gọi là ở dạng
chuẩn 3 nếu:
– Q ở dạng chuẩn 2.
– Mọi thuộc tính không khóa của Q đều
không phụ thuộc bắc cầu vào một khóa
nào của Q.
6.4. DẠNG CHUẨN 3 (2)
117
Ví dụ: Loại quan hệ GIẢNG_DẠY(MãLớp, MãsốGV,
TênGV, Địachỉ)
Với tập Pth F = {Mãlớp  MãsốGV;
MãSốGV  TênGV, Địachỉ}
 Không đạt dạng chuẩn 3
Khắc phục: Tách thành 2 quan hệ:
GIẢNG_DẠY(MãLớp, MãsốGV)
Với tập Pth F1 = {Mãlớp  MãsốGV}
GIÁO_VIÊN(MãsốGV, TênGV, Địachỉ )
Với tập Pth F2 = {MãSốGV  TênGV, Địachỉ}
6.4. DẠNG CHUẨN 3 (3)
118
• Nhận xét:
– Chính phụ thuộc hàm bắc cầu là nguyên
nhân dẫn đến tình trạng trùng lắp thông tin.
– Dạng chuẩn 3 là tiêu chuẩn tối thiểu trong
thiết kế cơ sở dữ liệu.
6.4. DẠNG CHUẨN 3 (4)
119
6.5. DẠNG CHUẨN BOYCE-CODD (1)
• Định nghĩa:
– Một lược đồ quan hệ Q được gọi là ở dạng
chuẩn Boyce-Codd (BC) nếu mọi phụ thuộc
hàm không hiển nhiên của F đều có vế trái
chứa khóa.
– Dạng chuẩn lược đồ CSDL là Min (dạng
chuẩn Qi), Qi là các lược đồ quan hệ của
CSDL.
120
• Nhận xét:
– Nếu 1 lược đồ quan hệ Q ở dạng chuẩn BC
thì cũng ở dạng chuẩn 3.
– Trong 1 lược đồ quan hệ Q ở dạng chuẩn
BC, việc kiểm tra phụ thuộc hàm chủ yếu là
kiểm tra khóa nội.
6.5. DẠNG CHUẨN BOYCE-CODD (2)
121
Ví dụ:
ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH)
Với F1 = {SốĐH  NgàyĐH, MãKH}
CHITIẾT_ĐH (SốĐH, MãHH, SốLượng)
Với F2 = {SốĐH, MãHH  SốLượng}
=> 2 lđ quan hệ đều đạt dạng chuẩn Boyce-
Codd.
6.5. DẠNG CHUẨN BOYCE-CODD (3)
122
Chương VII. NGÔN NGỮ TÂN TỪ (tự đọc)
7.1 Giới thiệu
7.2 Cú pháp
7.3 Các định nghĩa
7.4 Diễn giải của một công thức
7.5 Quy tắc lượng giá công thức
7.6 Ngôn ngữ tân từ có biến là n bộ
7.7 Ngôn ngữ tân từ có biến là miền giá trị
123
7.1. Giới thiệu
• Ngôn ngữ tân từ là ngôn ngữ truy vấn hình thức do
Codd đề nghị (1972-1973) được Lacroit, Proix và
Ullman phát triển, cài đặt trong một số ngôn ngữ như
QBE, ALPHA..
• Đặc điểm:
– Ngôn ngữ phi thủ tục.
– Rút trích cái gì chứ không phải rút trích như thế nào.
– Khả năng diễn đạt tương đương với đại số quan hệ.
• Có hai loại:
– Có biến là n bộ.
– Có biến là miền giá trị.
124
7.2. Cú pháp
• ( ): biểu thức trong ngoặc
• Biến: dùng chữ thường ở cuối bộ ký tự: x, y, z, t, s…
• Hằng: dùng chữ thường ở đầu bộ ký tự: a, b, c,…
• Hàm: là một ánh xạ từ một miền giá trị vào tập hợp
gồm 2 giá trị: đúng hoặc sai. Thường dùng chữ
thường ở giữa bộ ký tự: h, g, f,…
• Tân từ: là một biểu thức được xây dựng dựa trên
biểu thức logic. Dùng chữ in hoa ở giữa bộ ký tự P,
Q, R…
• Các phép toán logic: phủ định (¬), kéo theo (⇒), và
(∧), hoặc (∨).
• Các lượng từ: với mọi (∀), tồn tại (∃)
125
7.3. Các định nghĩa (1)
• Định nghĩa 1: Tân từ 1 ngôi
– Tân từ 1 ngôi được định nghĩa trên tập X và biến x có
giá trị chạy trên các phần tử của X.
– Với mỗi giá trị của x, tân từ P(x) là một mệnh đề logic,
tức là nó có giá trị đúng (Đ) hoặc sai (S).
– Ví dụ:
• P(x), x là biến chạy trên X, là một tân từ
• P(gt), gt∈X là một mệnh đề, X = {Nguyen Van A, Tran
Thi B}
• Với tân từ NỮ(x) được xác định:"x là người nữ”. Khi đó
• Mệnh đề NỮ(Nguyen Van A): cho kết quả Sai
• NỮ(Tran Thi B): cho kết quả Đúng
126
• Định nghĩa 2: Tân từ n ngôi
– Tân từ n ngôi được định nghĩa trên các tập X1, X2, …, Xn
và n biến x1, x2, …, xn lấy giá trị trên các tập Xi tương
ứng.
– Với mỗi giá trị ai∈Xi, xi=ai.Tân từ n ngôi là một mệnh đề.
– Ký hiệu: P(x1, x2, …, xn)
– Ví dụ: CHA(x1,x2): "x1 là CHA của x2”
– Chú ý:
• Các Xi không nhất thiết phải là rời nhau
• Với xi=ai, P(x1, x2, …, ai, …, xn) là tân từ n-1 ngôi
7.3. Các định nghĩa (2)
127
• Định nghĩa 3: Từ
– Từ là một hằng hay là một biến
– Nếu f(t1, t2, …, tn) là hàm n ngôi thì f là một từ
• Định nghĩa 4: Công thức
– Công thức nguyên tố: P(t1, t2, …, tn), ti là các từ
– Nếu F1, F2 là các công thức thì các biểu thức sau cũng
là các công thức: F1∨F2, F1∧F2, F1 => F2, ¬F1
– Nếu F1 là một công thức thì ∀:F1, ∃x:F1 cũng là các công
thức
– Nếu F1 là công thức thì (F1) cũng là một công thức
7.3. Các định nghĩa (3)
128
• Định nghĩa 4:
– Công thức đóng là công thức nếu mọi biến đều có kèm
với lượng từ. (khẳng định Đ, S)
– Công thức mở là công thức tồn tại 1 biến không kèm
lượng từ. (tìm kiếm thông tin)
• Ví dụ:
– C1: ∀x∃t∀y(P(x,y,a) ⇒ ∃z(Q(y,z,t)∧R(x,t)) là công thức
đóng vì các biến x,y,z,t đều có kèm lượng từ ∀,∃
– C2: ∀x ∃t (P(x,y,a) ⇒ ∃z(Q(y,z,t)∧R(x,t)) là công thức
mở vì biến y không có lượng từ ∀,∃
7.3. Các định nghĩa (4)
129
7.4. Diễn giải của một công thức
Gồm 4 phần:
• Miền giá trị của các biến của công thức (ký
hiệu là tập M)
• Sử dụng các hằng, các tân từ (ý nghĩa tân
từ, xác định được quan hệ n ngôi)
• Ý nghĩa của công thức
• Xác định 1 quan hệ n ngôi trên tập Mn
130
7.5. Quy tắc lượng giá công thức
• Lượng giá tân từ: xét tân từ bậc n: P(x1,x2,…xn) và
liên kết với quan hệ R, n ngôi.
P(a1,a2,…,an): Đ ⇔ (a1,a2,…,an) ∈R
P(a1,a2,…,an): S ⇔ (a1,a2,…,an) ∉R
• Các phép toán ∧,∨,¬,⇒ dùng bảng chân trị
• Lượng từ ∃: gọi x là biến. Công thức ∃x F(x) là đúng
khi có ít nhất một ai∈M/F(ai):Đ
M={a1,a2,…,an} ≡∨F(ai), ai∈M
• Lượng từ ∀: x là biến, ∀x F(x): Đ với ∀ ai∈M/F(ai):Đ
M={a1,a2,…,an} ≡∧F(ai), ai∈M
131
7.6. Ngôn ngữ tân từ có biến là n bộ
7.6.1 Qui tắc
7.6.2 Định nghĩa
7.6.3 Công thức an toàn
7.6.4 Biểu diễn các phép toán
132
7.6.1 Quy tắc (1)
1. Biến là 1 bộ của quan hệ
2. Từ: hằng, biến hoặc biểu thức có dạng s[C], s:
biến, C: tập các thuộc tính của quan hệ được
gọi là từ chiếu.
3. Công thức:
– Rs (R là quan hệ, s là biến) được gọi là từ. Miền
giá trị sẽ định nghĩa miền biến thiên của s.
– t1θ a, t1θ t2 ở đây t1,t2 là các từ chiếu, còn a là một
hằng, θ là toán tử so sánh dược gọi là công thức
nguyên tố.
133
4. Một công thức nguyên tố là một công
thức
5. F1 và F2 là công thức: F1∨F2, F1∧F2, F1⇒F2,
¬F1 là công thức
6. F là công thức, s là biến ∃sF, ∀sF là công
thức
7. F là công thức, (F) là công thức
7.6.1 Quy tắc (2)
134
7.6.2 Định nghĩa
• Một câu hỏi trong ngôn ngữ tân từ có biến
là n bộ được biểu diễn như sau:
{s | F}. Trong đó s là biến n bộ, F là một
công thức, chỉ có một biến tự do là s.
• Ví dụ: BIENGIOI(Nuoc,Tinhtp). Phép toán
quan hệ BIENGIOI[Nuoc] được chuyển
thành câu hỏi trong ngôn ngữ tân từ có
biến là bộ:
{s[Nuoc] BIENGIOI s}
135
7.6.3 Công thức an toàn
F là công thức an toàn: nếu nó thỏa mãn 3 điều kiện
sau:
i) Nếu s là bộ n thỏa: F(s) là đúng thì mọi thành phần
của s là phần tử của DOM(F):
(FS: Đúng) → s ∈ DOM(F)
ii) F’ là công thức con của F:
∃sF’S,F’S: Đúng → s ∈ DOM(F’)
iii)
∀sF’S,F’S: Đúng → s ∉ DOM(F’)
136
7.6.4 Biểu diễn các phép toán (1)
1. Phép hội
– Q1, Q2 là các quan hệ n chiều
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 ∪ Q2
– Fs = F1s∨ F2s
2. Phép trừ
– Q1, Q2 là các quan hệ n chiều
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 - Q2
– Fs = F1∧¬F2s
137
• 3. Phép tích
Q1(x1,…,xm), Q2(y1,…,yn)
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 x Q2
Fs: s(x1,…,xm,y1,…,yn)
Fs = (∃v) (∃ p) (F1v ∧ F2p ∧
s1=v1 ∧ …sm=vm ∧ sm+1=p1 ∧ … sm+n=pn)
7.6.4 Biểu diễn các phép toán (2)
138
• 4. Phép chiếu
– Q1(x1,…,xn), F1 là các công thức ứng với Q1
– Công thức của Q= Q1 [xi1, xi2,…,xik]
Fs=(∃v) (F1v ∧ s1=vi1 ∧s2=vi2 ∧… sk=vik)
• 5. Phép chọn
– Q1 là quan hệ n chiều, F1 là công thức ứng với Q1
– Công thức Q=Q1:điều kiện ĐK (ĐK:xiθxj hoặc xiθa)
Fs=F1s ∧ si θsj hoặc F1s ∧ si θa (1≤i, j ≤ n, i≠j)
7.6.4 Biểu diễn các phép toán (3)
139
7.7. Ngôn ngữ tân từ có biến là miền giá trị
7.7.1 Quy tắc
7.7.2 Biểu diễn câu hỏi
7.7.3 Công thức an toàn
7.7.4 Biểu diễn các phép toán
140
7.7.1 Quy tắc
1. Từ: là hằng hoặc biến
2. Công thức nguyên tố
– Q(t1,t2,…,tn): ti là các từ, Q là quan hệ
– tiθ tj,tiθ a với ti là từ, a là một hằng, θ là phép toán
3. Một công thức nguyên tố là một công thức
4. F1 và F2 là công thức: F1∨F2, F1∧F2, F1⇒F2, ¬F1 là
công thức
5. F là công thức, t: biến tự do, ∃sF,∀sF cũng
công thức
6. F là công thức, (F) là công thức
141
7.7.2 Biểu diễn câu hỏi
{(x1,x2,…,xn) | F(x1,x2,…,xn)}
• xi là các biến tự do của F
• Q= {(x1,x2,…,xn) | F(x1,x2,…,xn)} nên (x1,x2,
…,xn)∈Q ⇒ F(x1,x2,…,xn): Đúng
142
7.7.3 Công thức an toàn
F là công thức an toàn: nếu nó thỏa mãn 3 điều
kiện sau:
i. Nếu s là bộ n thỏa: F(s) là đúng thì mọi thành
phần của s là phần tử của DOM(F):
(F(x1,…,xn): Đúng) → xi ∈ DOM(F), i=1,…,n
ii. F’ là công thức con của F:
∃xF’: Đúng → x ∈ DOM(F’)
∀xF’: Đúng → ∃x ∉ DOM(F’)
iii. (F(x1,…,xn): Đúng) → ∃x ∉ DOM(F), i=1,…,n
143
7.7.4 Biểu diễn các phép toán (1)
1. Phép hội
– Q1,Q2 là các quan hệ n chiều
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 ∪ Q2
– F = F1∨ F2
2. Phép trừ
– Q1,Q2 là các quan hệ n chiều
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 - Q2
– F = F1∧¬F2
144
3. Phép tích
– Q1(x1,…,xm), Q2(y1,…,yn)
– F1, F2 là các công thức ứng với Q1, Q2
– Công thức của Q = Q1 x Q2
F(x1,…,xm,y1,…,yn) =
F1(x1,…,xm) ∧ F2(y1,…,yn)
7.7.4 Biểu diễn các phép toán (2)
145
4. Phép chiếu
– Q1(x1,…,xn), F1(x1,…,xn) là các công thức ứng với Q1
– Công thức của Q= Q1 [xi1, xi2,…,xik]
Fs(xi1, xi2,…,xik) = (∃xji)(∃xjz)…(∃xjn-k)(F1(x1,…,xn)) trong đó (xi1,
xi2,…,xik)∪(xj1, xj2,…,xjn-k)=(x1, x2,…,xn)
5. Phép chọn
– Q1(x1,…,xn), F1(x1,…,xn) là các công thức ứng với Q1
– Công thức Q = Q1: điều kiện ĐK (ĐK:xiθxj hoặc xiθa)
F1(x1,…,xn)= F1(x1,…,xn) ∧ xi θxj hoặc
= F1(x1,…,xn)∧ xi θa
7.7.4 Biểu diễn các phép toán (3)

Weitere ähnliche Inhalte

Was ist angesagt?

Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTMasterCode.vn
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2tranquanthien
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánduysu
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngHuyen Pham
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTMasterCode.vn
 
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)iwanttoit
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệHưởng Nguyễn
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên nataliej4
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tínhHoài Phạm
 
Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)lieu_lamlam
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...Long Kingnam
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTonhaco Bestco
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhJojo Kim
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Designyht4ever
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngNguyễn Danh Thanh
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngleemindinh
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttanhhuycan83
 

Was ist angesagt? (20)

C2 1
C2 1C2 1
C2 1
 
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPTBài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
Bài 2: Các khái niệm trong CSDL quan hệ - Giáo trình FPT
 
91684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-291684060 356-cau-trắc-nghiệm-csdl-2
91684060 356-cau-trắc-nghiệm-csdl-2
 
Chuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tánChuong 2 - CSDL phân tán
Chuong 2 - CSDL phân tán
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thôngBáo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
Báo cáo bài tập lớn môn Cơ sở dữ liệu - Học viện công nghệ bưu chính viễn thông
 
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPTBài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
Bài 6: Thiết kế cơ sở dữ liệu - Giáo trình FPT
 
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
Bai13-Cau truc du lieu va giai thuat - Cay (Tree)
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
Đề Tài Thiết Kế Phần Mềm Quản Lý Sinh Viên
 
Giáo trình mạng máy tính
Giáo trình mạng máy tínhGiáo trình mạng máy tính
Giáo trình mạng máy tính
 
Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)Bo de toan roi rac (on thi cao hoc khmt)
Bo de toan roi rac (on thi cao hoc khmt)
 
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
C# Báo cáo môn lập trình hướng đối tượng - Xây dựng chương trinh quản lí sinh...
 
Tổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệuTổng quan về cơ sở dữ liệu
Tổng quan về cơ sở dữ liệu
 
Tài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tínhTài liệu tổng kểt môn mạng máy tính
Tài liệu tổng kểt môn mạng máy tính
 
ERD - Database Design
ERD - Database DesignERD - Database Design
ERD - Database Design
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
Phân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàngPhân tích và thiết kế hệ thống quản lý bán hàng
Phân tích và thiết kế hệ thống quản lý bán hàng
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Phụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcnttPhụ thuộc hàm và các dạng chuẩn - dhcntt
Phụ thuộc hàm và các dạng chuẩn - dhcntt
 

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

Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5 Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5 NguynMinh294
 
13929219602082.ppt
13929219602082.ppt13929219602082.ppt
13929219602082.pptminh dang
 
W03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxW03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxHnginh10297
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcChu TheKop
 
TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfPHNGUYNNGC9
 
csdl - buoi2-3-4
csdl - buoi2-3-4csdl - buoi2-3-4
csdl - buoi2-3-4kikihoho
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3NguynMinh294
 
Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02nguyen minh
 
Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Vo Oanh
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Hoa Le
 
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...BangNgoVanCong
 
Chap03.ppsx
Chap03.ppsxChap03.ppsx
Chap03.ppsxTonMnh13
 
[123doc] mo-hinh-thuc-the-moi-ket-hop
[123doc]   mo-hinh-thuc-the-moi-ket-hop[123doc]   mo-hinh-thuc-the-moi-ket-hop
[123doc] mo-hinh-thuc-the-moi-ket-hopMay Trang
 
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...MasterCode.vn
 

Ähnlich wie Bài giảng cơ sở dữ liệu (20)

GIÁO TRÌNH ACCESS 2003
GIÁO TRÌNH ACCESS 2003GIÁO TRÌNH ACCESS 2003
GIÁO TRÌNH ACCESS 2003
 
Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5 Cơ sở dữ liệu PTIT slide 5
Cơ sở dữ liệu PTIT slide 5
 
Các mô hình dữ liệu
Các mô hình dữ liệuCác mô hình dữ liệu
Các mô hình dữ liệu
 
13929219602082.ppt
13929219602082.ppt13929219602082.ppt
13929219602082.ppt
 
W03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptxW03_Thietkecosodulieulogic.pptx
W03_Thietkecosodulieulogic.pptx
 
Giaoandientu bai10lop12
Giaoandientu bai10lop12Giaoandientu bai10lop12
Giaoandientu bai10lop12
 
Cơ sở dữ liệu đại học
Cơ sở dữ liệu đại họcCơ sở dữ liệu đại học
Cơ sở dữ liệu đại học
 
TRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdfTRNG_DI_HC_NHA_TRANG.pdf
TRNG_DI_HC_NHA_TRANG.pdf
 
Final
FinalFinal
Final
 
csdl - buoi2-3-4
csdl - buoi2-3-4csdl - buoi2-3-4
csdl - buoi2-3-4
 
Giaoandientu bai10lop12
Giaoandientu bai10lop12Giaoandientu bai10lop12
Giaoandientu bai10lop12
 
Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3Cơ sở dữ liệu PTIT slide 3
Cơ sở dữ liệu PTIT slide 3
 
Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02Csdliuihc 111212222339-phpapp02
Csdliuihc 111212222339-phpapp02
 
Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1Thiet Ke Co So Du Lieu1
Thiet Ke Co So Du Lieu1
 
Bai giang he qtdl
Bai giang he qtdlBai giang he qtdl
Bai giang he qtdl
 
Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL Chương 2. Các khái niệm trong CSDL
Chương 2. Các khái niệm trong CSDL
 
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...
Mô hình dữ liệu quan hệ Các khái niệm của mô hình quan hệ Ràng buộc toàn vẹn ...
 
Chap03.ppsx
Chap03.ppsxChap03.ppsx
Chap03.ppsx
 
[123doc] mo-hinh-thuc-the-moi-ket-hop
[123doc]   mo-hinh-thuc-the-moi-ket-hop[123doc]   mo-hinh-thuc-the-moi-ket-hop
[123doc] mo-hinh-thuc-the-moi-ket-hop
 
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
Bài 2 : Các khái niệm và nguyên tắc cơ bản của NET Framework - NỀN TẢNG LẬP T...
 

Kürzlich hochgeladen

Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTrangL188166
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...Nguyen Thanh Tu Collection
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx7E26NguynThThyLinh
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...Nguyen Thanh Tu Collection
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptxlephuongvu2019
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfHngNguyn271079
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Xem Số Mệnh
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem Số Mệnh
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......thoa051989
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxxaxanhuxaxoi
 
Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayLcTh15
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"LaiHoang6
 
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ haoBookoTime
 
chủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìchủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìanlqd1402
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...Nguyen Thanh Tu Collection
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Xem Số Mệnh
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21nguyenthao2003bd
 
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...Nguyen Thanh Tu Collection
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...Nguyen Thanh Tu Collection
 

Kürzlich hochgeladen (20)

Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docxTổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
Tổng hợp Ngữ pháp Tiếng Anh 11 cho học sinh.docx
 
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
ĐỀ THAM KHẢO THEO HƯỚNG MINH HỌA 2025 KIỂM TRA CUỐI HỌC KÌ 2 NĂM HỌC 2023-202...
 
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docxNỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
NỘI DUNG HỌC THI ôn thi môn LỊCH SỬ ĐẢNG.docx
 
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
ĐỀ CƯƠNG + TEST ÔN TẬP CUỐI KÌ 2 TIẾNG ANH 11 - GLOBAL SUCCESS (THEO CHUẨN MI...
 
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptxvat li 10  Chuyen de bai 4 Xac dinh phuong huong.pptx
vat li 10 Chuyen de bai 4 Xac dinh phuong huong.pptx
 
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdfGIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
GIẢI-ĐỀ-CƯƠNG-NHẬP-MÔN-KHOA-HỌC-XÃ-HỘI-VÀ-NHÂN-VĂN-KHIÊM-BK69.pdf
 
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
Lập lá số tử vi trọn đời có luận giải chi tiết, chính xác n...
 
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdfXem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
Xem sim phong thủy luận Hung - Cát số điện thoại chính xác nhất.pdf
 
.................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam........................KHTN 9....................................Viet Nam.......
.................KHTN 9....................................Viet Nam.......
 
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptxGame-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
Game-Plants-vs-Zombies để ôn tập môn kinh tế chính trị.pptx
 
Giáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hayGiáo trình xã hội học Thể dục Thể thao hay
Giáo trình xã hội học Thể dục Thể thao hay
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
syllabus for the book "Tiếng Anh 6 i-Learn Smart World"
 
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
1第一课:你好.pptx. Chinese lesson 1: Hello.Nỉ hao
 
chủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kìchủ nghĩa xã hội khoa học về đề tài cuối kì
chủ nghĩa xã hội khoa học về đề tài cuối kì
 
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
VẬN DỤNG KIẾN THỨC LIÊN MÔN TRONG GIẢI BÀI TẬP ÔN THI THPTQG MÔN SINH HỌC - H...
 
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
Luận giải tử vi của 12 con giáp năm 2024 chi tiết và chính xác -...
 
đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21đồ án thương mại quốc tế- hutech - KDQTK21
đồ án thương mại quốc tế- hutech - KDQTK21
 
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
GIÁO TRÌNH BỒI DƯỠNG HỌC SINH GIỎI THCS VÀ THI VÀO 10 THPT CHUYÊN MÔN TIẾNG A...
 
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
TỔNG HỢP 30 ĐỀ THI CHỌN HSG CÁC TRƯỜNG THPT CHUYÊN VÙNG DUYÊN HẢI & ĐỒNG BẰNG...
 

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

  • 1. 1 BÀI GIẢNG MÔN HỌC CƠ SỞ DỮ LIỆU Biên soạn: ThS. Văn Như Bích B, ThS. Võ Hoàng Khang, Khoa CNTT, trường Đại học KTCN TP.HCM. (TP.HCM, tháng 1/2011. Lưu hành nội bộ)
  • 2. 2 NỘI DUNG: Chương I. MỘT SỐ KHÁI NIỆM CƠ BẢN Chương II. MÔ HÌNH DỮ LIỆU QUAN HỆ Chương III. NGÔN NGỮ ĐẠI SỐ QUAN HỆ Chương IV. NGÔN NGỮ TRUY VẤN CSDL Chương V. RÀNG BUỘC TOÀN VẸN Chương VI. CHUẨN HÓA DỮ LIỆU Chương VII. NGÔN NGỮ TÂN TỪ (tự đọc)
  • 3. 3 Chương 1. MỘT SỐ KHÁI NIỆM CƠ BẢN NỘI DUNG: 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL 1.2. CÁC MÔ HÌNH DỮ LIỆU
  • 4. 4 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (1) 1. CƠ SỞ DỮ LIỆU (Database): Là một hệ thống thông tin (HTTT) có cấu trúc kết hợp với các phép toán phù hợp với cấu trúc đó, nhằm mục đích tổ chức, lưu trữ, khai thác và kiểm tra qui tắc quản lý một cách "Tốt nhất”, đảm bảo tính nhất quán và không trùng lắp cho nhiều người sử dụng một cách đồng thời với nhiều mục đích khác nhau. Lưu ý: Các tính chất: Hệ thống, có cấu trúc, nhiều người sử dụng, khai thác đồng thời, nhiều mục đích khác nhau. Nội dung của môn CSDL sẽ làm rõ tính "Tốt nhất“.
  • 5. 5 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (2) Tính "Tốt nhất" cần làm rõ bởi các nội dung sau:  Tổ chức và lưu trữ "Tốt nhất”: HTTT dữ liệu dạng bảng -> gần gủi với người sử dụng (MH Quan Hệ - Chương II).  Khai thác "Tốt nhất": Tường minh và chặt chẻ bởi các phép toán Đại số Quan hệ (Ngôn ngữ Đại số Quan hệ, chương III). Trong sáng dễ diễn đạt và gần gũi với ngôn ngữ tự nhiên được xử lý khai thác bởi bởi ngôn ngữ SQL (Ngôn ngữ truy vấn DL, chương IV), đã được tối ưu hóa (Chương VII - TỐI ƯU HÓA CÂU HỎI)
  • 6. 6 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (3) • Kiểm tra các qui tắc quản lý "Tốt nhất”: Dễ dàng kiểm tra các qui tắc dựa vào 3 yếu tố của RBTV (Bối cảnh, nội dung, tầm ảnh hưởng) (Chương V – Ràng buộc toàn vẹn). • Biểu diễn HTTT theo tiêu chuẩn đảm bảo tính nhất quán, không trùng lắp thông tin dựa vào việc chuẩn hóa dữ liệu (Chuẩn hóa dữ liệu, Chương VI).
  • 7. 7 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (4) Để đảm bảo HTTT cho nhiều người sử dụng với nhiều mục đích khác nhau khi chọn hệ quản trị CSDL cần quan tâm đến các vấn đề: • Tính chủ quyền bị vi phạm • Tính nhất quán của dữ liệu • Vấn đề bảo mật • Tính an toàn dữ liệu • Vấn đề tranh chấp dữ liệu
  • 8. 8 1.1. CƠ SỞ DỮ LIỆU – HỆ QUẢN TRỊ CSDL (5) 2. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU (DataBase Management System - DBMS): Là hệ thống các chương trình quản trị CSDL, đồng thời là công cụ giao tiếp giữa người sử dụng hoặc các ứng dụng với CSDL. • Hệ quản trị CSDL cần có: – Từ điển dữ liệu (Data Dictionary) – Cơ chế giải quyết tranh chấp. – Cơ chế bảo mật dữ liệu. – Cơ chế tự động sao lưu (Backup) và phục hồi (Restore) dữ liệu khi có sự cố. – Ngôn ngữ giao tiếp người sử dụng (NSD) với CSDL. – Đảm bảo tính độc lập giữa dữ liệu và chương trình. – Có thể, cần có giao diện tốt với người dùng không chuyên.
  • 9. 9 1.2. CÁC MÔ HÌNH DỮ LIỆU 1. MÔ HÌNH MẠNG (Network Data Model) 2. MÔ HÌNH PHÂN CẤP (Hierachical Data Model) 3. MÔ HÌNH QUAN HỆ (Relational Data Model) 4. MÔ HÌNH THỰC THỂ KẾT HỢP (Entity- RelationShip) 5. MÔ HÌNH HƯỚNG ĐỐI TƯỢNG (Object Oriented Model)
  • 10. 10 Chương 2. MÔ HÌNH DỮ LIỆU QUAN HỆ NỘI DUNG: 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT QUAN HỆ
  • 11. 11 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (1) 1. Quan Hệ: Là một đối tượng tồn tại trong thế giới thực được làm rõ bởi các giá trị có liên quan nhau:  Ví dụ: 1 quan hệ sinh viên: 005, Trần Văn A, 06/10/1990, Nam, 10DTH01 -> Quan hệ sinh viên có mãsố sinh viên là 005, có tên là Trần Văn A, ngày sinh là 06/10/1990, phái Nam, thuộc lớp 10DTH01.  Những giá trị có quan hệ (liên quan ) Là: (i) Lớp 10DTH01 có SV là Trần Văn A. (ii) SV Trần Văn A có ngày sinh là 06/10/1990 và mã số để phân biệt với các SV khác là 005. (iii) SV Trần Văn A là SV Nam.v.v…
  • 12. 12 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (2)  Tên gọi của các giá trị liên quan gọi là thuộc tính (mã số, tên, ngày sinh, phái, lớp)  Ví dụ 2: 1 quan hệ địa chỉ -> gồm các giá trị liên quan nào? thuộc tính nào? 2. Loại Quan Hệ: Tất cả các quan hệ có cùng tính chất mô tả (cùng tên gọi các thuộc tính liên quan). Tính chất mô tả gọi là thuộc tính của loại quan hệ. => Loại quan hệ là:  Danh sách các quan hệ.  Dữ liệu dạng bảng có dòng đầu là danh sách các thuộc tính, dòng thứ 2 là các quan hệ với các giá trị tương ứng với tên gọi các thuộc tính.
  • 13. 13 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (3) • Các thuộc tính (hay các tên gọi của các giá trị mô tả của quan hệ) » Dữ liệu dạng bảng: • Danh sách các quan hệ cùng loại, được gọi là loại quan hệ Sinh Viên MãSố Tên Ngàysinh Phái Lớp 01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8 01212148901 Nguyễn Trung Tín 02-011992 Nam 10CDH8 01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
  • 14. 14 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (4) Loại quan hệ thường được biểu diễn dưới dạng lược đồ quan hệ (lđ qh). Ví dụ: lđ qh SinhVien(MãSố, Tên, Ngàysinh, Phái, Lớp) đây là dạng viết tắt của loại quan hệ sinh viên (hay dữ liệu dạng bảng là danh sách các sinh viên). => dữ liệu dạng bảng là loại quan hệ (hay danh sách các quan hệ) là dạng viết dầy đủ của lđ qh ký hiệu T(quanhệ). Ví dụ TSinhVien: MãSố Tên Ngàysinh Phái Lớp 01289420429 Nguyễn Việt Ấn 15-12-1992 Nam 10CDH8 01212148901 Nguyễn Trung Tín 02-011992 Nam 10CDH8 01298586716 Nguyễn Hoàng Nam 01-11-1992 Nam 10CDH8
  • 15. 15 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (5) 3. Thuộc tính: Tính chất để mô tả loại quan hệ hay tên gọi các giá trị mô tả các quan hệ cùng loại.  Ví dụ: MãSố, Tên, Ngàysinh, Phái, Lớp.  Mỗi một quan hệ được mô tả bởi các giá trị có liên quan tương ứng với tên gọi của các giá trị (Thuộc tính) đó, được gọi là một bộ (hay một thể hiện của một loại quan hệ tức một quan hệ). Ví dụ: 1 bộ q1->(005, Trần Văn A, 06/10/1990, Nam, 10DTH01) 1 bộ q2->(006, Trần Văn B, 06/10/1990, Nam, 10DTH01)
  • 16. 16 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (6) • Thuộc tính được đặc trưng bởi 3 yếu tố: a. Tên gọi. b. Kiểu giá trị. c. Miền giá trị.
  • 17. 17 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (7) 4. Siêu khóa & Khóa (của một loại quan hệ): • Siêu Khóa: Tập thuộc tính mà giá trị của nó dùng để phân biệt quan hệ này với quan hệ khác trong cùng một loại quan hệ. => *Hai quan hệ (2 bộ) có cùng giá trị của khóa thì hai quan hệ đó là một (trùng nhau) nghĩa là các giá trị trên các thuộc tính khác cũng giống nhau. *Mỗi một quan hệ trên một loại quan hệ chỉ được thể hiện một lần nghĩa là bộ giá trị của siêu khóa không được trùng nhau trong T quan hệ. • Khóa: Siêu khóa bé nhất hay Tập thuộc tính bé nhất mà giá trị của nó dùng để phân biệt quan hệ này với quan hệ khác trong cùng một loại quan hệ.
  • 18. 18 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (8) • Các ví dụ về khóa: Ví dụ1: TKB(Thứ, Ca, Phòng, Sốtiết, Lớp, Mãmôn, MãGV). Xác định khóa? Ví dụ 2: BànThắng(MãcầuThủ, MãTrận, Phút). Xác định khóa? Ví dụ 3: HônThú(SốHT, CMND_Ch, LầnCh, CMND_Vo, LầnVo, NgayKetHon). Tìm các khóa khác với khóa: SốHT. Ví dụ 4: SV tự đưa các lđ quan hệ và xác định khóa? Ví dụ 5: Quản lý siêu thị cần các lđ quan hệ?
  • 19. 19 2.1. MỘT SỐ KHÁI NIỆM VÀ ĐỊNH NGHĨA (9) • Những điều lưu ý về khóa: * Khóa không do chủ quan của người cài đặt mà do qui tắc quản lý quyết định. * Không phải tất cả các thuộc tính có tên Mã số là tham gia vào khóa mà chỉ có thể là khóa ngoại (hay khóa của một loại quan hệ khác). * Bất cứ loại quan hệ nào cũng có ít nhất là 1 khóa. * Khóa của loại quan hệ là tập thuộc tính còn khóa của 1 quan hệ là tập các giá trị thể hiện của quan hệ đó trên tập thuộc tính khóa. * Cách tìm khóa dựa vào: Qui tắc quản lý (tân từ), dựa vào 2 bộ với các giá trị không thể trùng nhau (vì trùng nhau buộc các giá trị khác phải trùng nhau tức 2 bộ là một )
  • 20. 20 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (1) 1. Lệnh tạo lđ quan hệ R(A1, A2,... An): CREATE TABLE <R> ( <A1> <Kiểu_dữ_liệu> [<RBTV>], <A2> <Kiểu_dữ_liệu> [<RBTV>], … [<RBTV>] ) Ví dụ: CREATE TABLE NHANVIEN ( HOTENNV NVARCHAR(50) NOT NULL, MANV CHAR(9) PRIMARY KEY, NS SMALLDATETIME, DCHI NVARCHAR(50), GT CHAR(3) CHECK (GT IN (‘Nam’, ‘Nu’)), PHG INT )
  • 21. 21 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (2) 2. Lệnh sửa bảng: – Thay đổi cấu trúc bảng. – Thay đổi RBTV. Thêm cột: ALTER TABLE <Tên_bảng> ADD COLUMN <Tên_cột> <Kiểu_dữ_liệu> [<RBTV>] Xóa cột: ALTER TABLE <Tên_bảng> DROP COLUMN <Tên_cột> Mở rộng cột: ALTER TABLE <Tên_bảng> ALTER COLUMN <Tên_cột> <Kiểu_dữ_liệu_mới>
  • 22. 22 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (3) • Thêm RBTV: ALTER TABLE <Tên_bảng> ADD CONSTRAINT <Ten_RBTV> <RBTV>, CONSTRAINT <Ten_RBTV> <RBTV>, …. • Xóa RBTV: ALTER TABLE <Tên_bảng> DROP <Tên_RBTV> • Lệnh xóa bảng: DROP TABLE <Tên_bảng>
  • 23. 23 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (4) • Ví dụ - Thay đổi cấu trúc bảng: ALTER TABLE NHANVIEN ADD NGHENGHIEP CHAR(20) ALTER TABLE NHANVIEN DROP COLUMN NGHENGHIEP ALTER TABLE NHANVIEN ALTER COLUMN NGHENGHIEP CHAR(50) Ví dụ - Xóa bảng: DROP TABLE NHANVIEN Ví dụ - Thay đổi RBTV:
  • 24. 24 CREATE TABLE PHONGBAN ( TENPB NVARCHAR(20), MAPHG INT NOT NULL, TRPHG CHAR(9), NG_NHANCHUC DATETIME) ALTER TABLE PHONGBAN ADD CONSTRAINT PB_MAPHG_PK PRIMARY KEY (MAPHG), CONSTRAINT PB_TRPHG FOREIGN KEY (TRPHG) REFERENCES NHANVIEN(MANV), CONSTRAINT PB_NGNHANCHUC_DF DEFAULT (GETDATE()) FOR (NG_NHANCHUC), CONSTRAINT PB_TENPB_UNI UNIQUE (TENPB)
  • 25. 25 2.2. CÁC THAO TÁC CƠ BẢN TRÊN MỘT LĐ QUAN HỆ (5) 3. Thêm bộ giá trị mới vào quan hệ R (A1, A2,... An): INSERT (R; v1,v2,..., vn) Ví dụ: ? 4. Sửa giá trị các bộ của quan hệ R: UPDATE (R; A1=e1, A2=e2,..., An=en; điều kiện sửa) Ví dụ: ? 5. Xóa các bộ của quan hệ R: DELETE (R; điều kiện xóa) Ví dụ: ?
  • 26. 26 Chương 3. NGÔN NGỮ ĐẠI SỐ QUAN HỆ NỘI DUNG: 3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ 3.2 CÁC PHÉP TOÁN QUAN HỆ 3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT 3.4 CÁC VÍ DỤ MINH HỌA
  • 27. 27 3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (1) 1. Phép hợp nhất 2 quan hệ (UNION): • Cho R(U) và S(U) là 2 lđ quan hệ. Phép hợp của 2 lđ quan hệ R và S, ký hiệu: R ∪ S, là một lđ quan hệ Q được định nghĩa: Q = R ∪ S đn (i) Q+ = U;  (ii) TQ = { t: t ∈ TR ∨ t ∈ TS } 2. Phép trừ 2 quan hệ (MINUS): • Cho R(U) và S(U) là 2 lđ quan hệ. Phép hiệu của 2 lđ quan hệ R và S, ký hiệu: R S, là một lđ quan hệ Q được định nghĩa: Q = R S đn (i) Q+ = U;  (ii) TQ = { t: t ∈ TR ∨ t ∉ TS }
  • 28. 28 3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (2) 3. Phép lấy phần chung của 2 quan hệ (INTERSECTION): Cho R(U) và S(U) là 2 lđ quan hệ. Phần chung (Phép giao) của 2 lđ quan hệ R và S, ký hiệu: R ∩ S, là một lđ quan hệ Q được định nghĩa: Q = R ∩ S đn (i) Q+ = U;  (ii) TQ = { t: t ∈ TR ∧ t ∈ TS } 4. Phép tích Đề các (Des CARTESIAN): Cho R(A1, A2,..., An) và S(B1, B2,..., Bn) là 2 lđ quan hệ. Tích Đề các của 2 lđ quan hệ R và S, ký hiệu: R x S, là một quan hệ Q được định nghĩa: Q = R x S đn (i) Q+ = {A1, A2,..., An, B1, B2,..., Bn};  (ii) TQ = { t =(u,v): u ∈ TR ∧ v ∈ TS }
  • 29. 29 3.1 CÁC PHÉP TOÁN TẬP HỢP TRÊN CÁC QUAN HỆ (3) 5. Phép lấy phần bù của 1 quan hệ (COMPLEMENT): Cho R (A1, A2,..., An) là một lđ quan hệ. Ai có miền giá trị là Dom(Ai) với i = 1, 2,..., n. Phần bù của R, ký hiệu:R hoặc , là một lđ quan hệ Q được định nghĩa: Q = R đn (i) Q+ = {A1, A2,..., An};  (ii) TQ = { t =(v1, v2,..., vn): vi ∈ Dom(Ai) ∧ t ∉ TR } 6. Phép chia 2 quan hệ (DIVISION): Không làm mất tính tổng quát, giả sử R (A,B) và S(B) là 2 lđ quan hệ. Thuơng của 2 lđ quan hệ R và S, ký hiệu: R÷ S, là một lđ quan hệ Q được định nghĩa: Q = R ÷ S đn (i) Q+ ={A};  (ii) TQ = { t = r.A: r ∈ TR ∧ ∀u ∈ TS ∧ (t,u) ∈ TR} Tức là: Q x S ⊆ R R
  • 30. 30 3.2 CÁC PHÉP TOÁN QUAN HỆ (1) 1. Phép chiếu (PROJECTION): Cho R(U) là một lđ quan hệ và K ⊆ U. Phép chiếu quan hệ R trên tập thuộc tính K, ký hiệu: R[K] hoặc ΠK(R) là một lđ quan hệ Q được định nghĩa: Q = ΠK(R) đn (i) Q+ = K;  (ii) TQ = { t = r.K, r ∈ TR } Nói đơn giản, là một quan hệ mới lấy từ R sau khi đã loại bỏ đi các cột không cần giữ lại, và loại bỏ các dòng giống nhau.
  • 31. 31 3.2 CÁC PHÉP TOÁN QUAN HỆ (2) 2. Phép chọn (SELECTION): Phép chọn các bộ của quan hệ R thỏa điều kiện e đã cho, ký hiệu là R: (e), hoặc σ(e)(R) được định nghĩa: Q = σ (e) (R) đn (i) Q+ = R;  (ii) TQ = { r ∈ TR: e(r) = true }
  • 32. 32 3.2 CÁC PHÉP TOÁN QUAN HỆ (3) 3. Phép thêta kết (θ - JOIN): Ở đây θ là một trong các phép so sánh: >, >=, <, <=, = Cho R (U) và S (V) là các lđ quan hệ được định nghĩa trên tập thuộc tính U ={A1, A2,..., An} và V = {B1, B2,..., Bn}. A ∈ U, B ∈ V là 2 thuộc tính của 2 lđ quan hệ. Phép θ - kết giữa quan hệ R và S, ký hiệu là R S, được định nghĩa: Q= R S đn (i) Q+ = U ∪ V;  (ii) TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A θ v.B}. Hay R S = (R x S): (R.A θ S.B) A θ B A θ B A θ B
  • 33. 33 3.2 CÁC PHÉP TOÁN QUAN HỆ (4) Các trường hợp đặc biệt: • Nếu θ là phép so sánh bằng nhau (=) thì phép kết được gọi là phép kết bằng nhau, hay phép kết tương đương (EQUI-JOIN). • Nếu θ là phép so sánh bằng nhau (=) và 2 thuộc tính A, B có tên giống nhau thì gọi đó là phép kết tự nhiên (NATURAL JOIN), và ký hiệu là R S. Ví dụ: "Cho tên phòng ban cùng danh sách tên các nhân viên”: PhongBan(MAPB, TenPB), NhanVien(MNV,TenNV, DC, ĐT,MAPB) PhongBan NhanVien [TenPB, TenNV]
  • 34. 34 3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (1) • Phép kết đặc biệt xảy ra khi θ là phép so sánh bằng nhau (=), A là khóa chính của R và B là khóa ngoại của S khi tham chiếu tới quan hệ R. Giả sử thể hiện của 2 quan hệ như sau: 1. Phép kết trong (INNER JOIN). Thực chất là phép kết bằng nhau, hay phép kết tương đương EQUI-JOIN. ký hiệu phép toán này bằng dấu sao (*). Kết quả của phép kết trong giữa R và S: (R*S): Q(A, X, B, Y) (1, x1, 1, y1) (2, x2, 2, y2) R(A, X) (1, x1) (2, x2) (3, x3) S (B, Y) (1, y1) (2, y2) (4, y4)
  • 35. 35 3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (2) 2. Phép kết vế trái (LEFT JOIN): Phép kết vế trái giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc t = (u, Null): u ∈ TR ∧ ∃v ∈ TS s/c u.A = v.B} Kết quả phép kết vế trái giữa R và S là: Q(A, X, B, Y) (1, x1, 1, y1) (2, x2, 2, y2) (3, x3, Null, Null) (1) Suy ra, có thể dễ dàng tìm được các bộ của R mà không có bộ giá trị tương ứng trong quan hệ S.
  • 36. 36 3.3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (4) 3. Phép kết vế phải (RIGHT JOIN): Phép kết vế phải giữa R và S, ký hiệu R S, là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc t = (Null, v): v ∈ TS ∧ ∃u ∈ TR s/c u.A = v.B} Kết quả phép kết vế phải giữa R và S là: Q(A, X, B, Y) (1, x1, 1, y1) (2, x2, 2, y2) (Null, Null, 4, y4) (2) Suy ra, có thể dễ dàng tìm được các bộ của S mà không có bộ giá trị tương ứng trong quan hệ R.
  • 37. 37 3. 3 CÁC PHÉP TOÁN KẾT ĐẶC BIỆT (5) 4. Phép kết ngoài (OUTER JOIN): Phép kết ngoài giữa R và S là 1 quan hệ Q định nghĩa trên tập thuộc tính U ∪ V, mà TQ = { t = (u, v): u ∈ TR ∧ v ∈ TS ∧ u.A = v.B, hoặc t = (u, Null): u ∈ TR ∧ ∃v ∈ TS s/c u.A = v.B, hoặc t = (Null, v): v ∈ TS ∧ ∃u ∈ TR s/c u.A = v.B } Kết quả phép kết ngoài giữa R và S là: Q(A, X, B, Y) (1, x1, 1, y1) (2, x2, 2, y2) (3, x3, Null, Null) (1) (Null, Null, 4, y4) (2)
  • 38. 38 3.4 CÁC VÍ DỤ MINH HỌA (1) Viết các biểu thức quan hệ để trả lời cho các câu hỏi sau: 1) "Cho danh sách nhân viên làm cùng phòng với Watson”. (Employee: (Name = ‘Watson’))[Deptno] Employee 2) "Cho tên của người lãnh đạo Smith”. ((((Employee: (Name=‘Smith’))[Deptno] Department) [Mgr]) Employee) [Name] 3) "Cho danh sách nhân viên có lương trên 4000”. EMPLOYEE: (SALARY > 4000)
  • 39. 39 Chương IV. NGÔN NGỮ TRUY VẤN CSDL NỘI DUNG: 4.1 Câu truy vấn tổng quát 4.2 Truy vấn đơn giản 4.3 Phép kết 4.4 Đặt bí danh, sử dụng *, distinct 4.5 Các toán tử 4.6 Câu truy vấn con (subquery) 4.7 Phép chia 4.8 Hàm tính toán, gom nhóm
  • 40. 40 4.1 Câu truy vấn tổng quát (1) SELECT [DISTINCT] *|tên_cột | hàm FROM bảng [WHERE điều_kiện] [GROUP BY tên_cột] [HAVING điều_kiện] [ORDER BY tên_cột ASC | DESC]
  • 41. 41 4.2 Truy vấn đơn giản (1) • SELECT – Tương đương phép chiếu của ĐSQH – Liệt kê các thuộc tính cần hiển thị trong kết quả • WHERE – Tương ứng với điều kiện chọn trong ĐSQH – Điều kiện liên quan tới thuộc tính, sử dụng các phép nối luận lý AND, OR, NOT, các phép toán so sánh, BETWEEN • FROM – Liệt kê các quan hệ cần thiết, các phép kết
  • 42. 42 4.2 Truy vấn đơn giản (2) • Tìm masp, tensp do "Trung Quoc” sản xuất có giá từ 20000 đến 30000. Select masp,tensp From SANPHAM Where nuocsx = ‘Trung Quoc’ and gia between 20000 and 30000
  • 43. 43 4.3 Phép kết (1) • Inner Join, Left Join, Right Join, Full Join • Ví dụ: – In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng trong ngày 1/1/2007. select KHACHHANG.makh, hoten from KHACHHANG inner join HOADON on KHACHHANG.makh=HOADON.makh where nghd='1/1/2007'
  • 44. 44 4.3 Phép kết (2) • Ví dụ: In ra danh sách tất cả các hóa đơn và họ tên của khách hàng mua hóa đơn đó (nếu có). Select sohd, hoten From HOADON left join KHACHHANG on HOADON.makh=KHACHHANG.makh Select sohd, hoten From HOADON, KHACHHANG Where HOADON.makh = KHACHHANG.makh
  • 45. 45 4.4 Đặt bí danh, sử dụng *, distinct • Đặt bí danh (Alias) cho thuộc tính và quan hệ: Tên_cũ AS Tên_mới Select manv, hoten as [ho va ten] From NHANVIEN • Liệt kê tất cả các thuộc tính của quan hệ: Select * from Nhanvien Select NHANVIEN.* from NHANVIEN • Distinct: trùng chỉ lấy một lần Select distinct nuocsx from SANPHAM • Sắp xếp kết quả hiển thị: Order by Select * from SANPHAM order by nuocsx, gia DESC
  • 46. 46 4.5 Toán tử truy vấn (1) • Toán tử so sánh: =, >,<,>=,<=,<> • Toán tử logic: AND, OR, NOT • Phép toán: +, -,*, / • BETWEEN …. AND • IS NULL, IS NOT NULL • LIKE (_ %) • IN, NOT IN • EXISTS, NOT EXISTS • SOME, ALL
  • 47. 47 4.5 Toán tử truy vấn (2) • IS NULL, IS NOT NULL Select sohd from HOADON where makh is Null Select * from HOADON where makh is Not Null • Toán tử so sánh, phép toán Select gia*1.1 as [gia ban] from SANPHAM where nuocsx <> ’Viet Nam’ Select * from SANPHAM where (gia between 20000 and 30000) OR (nuocsx=‘Viet Nam’) • Toán tử IN, NOT IN Select * from SANPHAM where masp NOT IN (‘BB01’,’BB02’,’BB03’)
  • 48. 48 4.5 Toán tử so sánh (3) Toán tử LIKE – So sánh chuỗi tương đối – Cú pháp: s LIKE p, p có thể chứa % hoặc _ – %: thay thế một chuỗi ký tự bất kỳ – _: thay thế một ký tự bất kỳ – Ví dụ: Select masp,tensp from SANPHAM where masp like 'B%01‘
  • 49. 49 4.6 Câu truy vấn con (1) In hoặc Exists • Ví dụ: Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số "BB01” và "BB02”. Select distinct sohd From CTHD where masp = 'BB01' and sohd IN (select distinct sohd from CTHD Where masp = 'BB02') Select distinct A.sohd From CTHD A Where A.masp = 'BB01' and EXISTS (select * from CTHD B where B.masp = 'BB02‘ and A.sohd = B.sohd)
  • 50. 50 4.6 Câu truy vấn con (2) Not In hoặc Not Exists Ví dụ: Tìm các số hóa đơn có mua sản phẩm mã số ‘BB01’ nhưng không mua sản phẩm mã số ‘BB02’. Select distinct sohd From CTHD Where masp = 'BB01' and sohd NOT IN (select distinct sohd from CTHD where masp = 'BB02') Select distinct A.sohd From CTHD A Where A.masp = 'BB01' and NOT EXITST (select * from CTHD B where B.masp = 'BB02‘ and A.sohd=B.sohd)
  • 51. 51 4.7 Phép chia Sử dụng NOT EXISTS • Ví dụ: Tìm số hóa đơn đã mua tất cả những sản phẩm do "Trung Quoc” sản xuất. • Select sohd from HOADON where not exists (select * from SANPHAM where nuocsx = ‘Trung Quoc’ and not exists (select * from CTHD where HOADON.sohd = CTHD.sohd and CTHD.masp = SANPHAM.masp))
  • 52. 52 4.8 Các hàm tính toán và gom nhóm (1) 4.8.1 Các hàm tính toán cơ bản: – COUNT: Đếm số bộ dữ liệu của thuộc tính – MIN: Tính giá trị nhỏ nhất – MAX: Tính giá trị lớn nhất – AVG: Tính giá trị trung bình – SUM: Tính tổng giá trị các bộ dữ liệu
  • 53. 53 NHANVIEN MANV HOTEN PHAI MANQL PHONG LUONG NV001 Nguyễn Ngọc Linh Nữ Null NC 2.800.000 NV002 Đinh Bá Tiến Nam NV002 DH 2.000.000 NV003 Nguyễn Văn Mạnh Nam NV001 NC 2.300.000 NV004 Trần Thanh Long Nam NV002 DH 1.800.000 NV005 Nguyễn Thị Hồng Vân Nữ NV001 NC 2.500.000 NV006 Nguyễn Minh Nam NV002 DH 2.000.000 NV007 Hà Duy Lập Nam NV003 NC 1.800.000 NV008 Trần Kim Duyên Nữ NV003 NC 1.800.000 NV009 Nguyễn Kim Anh Nữ NV003 NC 2.000.000
  • 54. 54 Ví dụ 1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của tất cả các nhân viên. 2. Có tất cả bao nhiêu nhân viên? 3. Bao nhiêu nhân viên có người quản lý? 4. Bao nhiêu phòng ban có nhân viên trực thuộc? 5. Tính lương trung bình của các nhân viên. 6. Tính lương trung bình của các nhân viên theo từng phòng ban.
  • 55. 55 Ví dụ 1. Tính lương thấp nhất, cao nhất, trung bình và tổng lương của tất cả các nhân viên. SELECT min(luong) as thapnhat, max(luong) as caonhat, avg(luong) as trungbinh, sum(luong) as tongluong FROM NhanVien
  • 56. 56 Ví dụ 2. Có tất cả bao nhiêu nhân viên? SELECT count(*) FROM NhanVien 3. Bao nhiêu nhân viên có người quản lý? SELECT count(*) FROM NhanVien WHERE manql is not null SELECT count(Manql) FROM NhanVien 4. Bao nhiêu phòng ban có nhân viên trực thuộc SELECT count(distinct phong) FROM NhanVien
  • 57. 57 4.8 Các hàm tính toán và gom nhóm (2) 4.8.2 Gom nhóm: mệnh đề GROUP BY • Sử dụng hàm gom nhóm trên các bộ trong quan hệ. • Mỗi nhóm bộ bao gồm tập hợp các bộ có cùng giá trị trên các thuộc tính gom nhóm. • Hàm gom nhóm áp dụng trên mỗi bộ độc lập nhau. • SQL có mệnh đề GROUP BY để chỉ ra các thuộc tính gom nhóm, các thuộc tính này phải xuất hiện trong mệnh đề SELECT.
  • 58. 58 Ví dụ 5. Tính lương trung bình của các nhân viên SELECT avg(LUONG) as LUONGTB FROM NhanVien 6. Tính lương trung bình của các nhân viên theo từng phòng ban. SELECT phong, avg(LUONG) as LUONGTB FROM NhanVien GROUP BY phong
  • 59. 59 4.8 Các hàm tính toán và gom nhóm (3) 4.8.3 Điều kiện sau gom nhóm: mệnh đề HAVING – Lọc kết quả theo điều kiện, sau khi đã gom nhóm – Điều kiện ở HAVING được thực hiện sau khi gom nhóm, các điều kiện có liên quan đến thuộc tính Group By. • Ví dụ: Tìm phòng có số lượng nhân viên "Nữ” trên 5 người. SELECT Phong FROM NhanVien WHERE Phai = ‘Nữ’ GROUP BY Phong HAVING count(manv) > 5
  • 60. 60 Chương V. RÀNG BUỘC TOÀN VẸN 5.1 Giới thiệu ràng buộc toàn vẹn (RBTV) 5.2 Các đặc trưng của một RBTV 5.3 Phân loại RBTV 5.3 Bảng tầm ảnh hưởng tổng hợp
  • 61. 61 5.1 Giới thiệu ràng buộc toàn vẹn (RBTV) • Ràng buộc toàn vẹn là các quy định, điều kiện từ ứng dụng thực tế, các điều kiện này là bất biến. ⇒Vì thế phải luôn đảm bảo cơ sở dữ liệu thỏa ràng buộc toàn vẹn sau mỗi thao tác làm thay đổi tình trạng của cơ sở dữ liệu.
  • 62. 62 5.2 Các đặc trưng của một RBTV 5.2.1 Nội dung 5.2.2 Bối cảnh 5.2.3 Bảng tầm ảnh hưởng
  • 63. 63 5.2.1 Nội dung • Mô tả chặt chẽ ý nghĩa của ràng buộc toàn vẹn. • Nội dung được phát biểu bằng ngôn ngữ tự nhiên hoặc bằng ngôn ngữ hình thức (ngôn ngữ tân từ, đại số quan hệ, mã giả,…) – Ngôn ngữ tự nhiên: dễ hiểu nhưng không chặt chẽ, logic. – Ngôn ngữ hình thức: chặt chẽ, cô đọng.
  • 64. 64 5.2.2 Bối cảnh • Là tập các loại quan hệ khi thao tác trên những loại quan hệ đó có khả năng làm cho ràng buộc bị vi phạm. • Đó là những loại quan hệ có thể vi phạm ràng buộc toàn vẹn khi thực hiện các thao tác thêm, xóa, sửa.
  • 65. 65 5.2.3 Bảng tầm ảnh hưởng (1) • Nhằm xác định khi nào tiến hành kiểm tra ràng buộc toàn vẹn. Thao tác nào thực hiện có thể làm vi phạm ràng buộc toàn vẹn. • Phạm vi ảnh hưởng của một ràng buộc toàn vẹn được biểu diễn bằng một bảng 2 chiều gọi là Bảng tầm ảnh hưởng.
  • 66. 66 5.2.3 Bảng tầm ảnh hưởng (2) Một số quy định • Những thuộc tính khóa (những thuộc tính nằm trong khóa chính của quan hệ) không được phép sửa giá trị. • Thao tác thêm và xóa xét trên một bộ của quan hệ. Thao tác sửa xét sửa từng thuộc tính trên bộ của quan hệ. • Trước khi xét thao tác thực hiện có thể làm vi phạm ràng buộc hay không thì CSDL phải thỏa ràng buộc toàn vẹn trước.
  • 67. 67 5.2.3 Bảng tầm ảnh hưởng (3) • Bảng tầm ảnh hưởng của một ràng buộc + : thực hiện thao tác có thể làm vi phạm RBTV - : thực hiện thao tác không thể làm vi phạm RBTV +(A): có thể làm vi phạm RBTV khi sửa trên thuộc tính A -(*) : không vi phạm RBTV do thao tác không thực hiện được RÀNG BUỘC RI THÊM XÓA SỬA LOẠI QUAN HỆ 1 LOẠI QUAN HỆ 2 LOẠI QUAN HỆ 3
  • 68. 68 5.3 Phân loại RBTV 5.3.1 RBTV có bối cảnh trên 1 loại quan hệ 5.3.2 RBTV có bối cảnh trên nhiều loại quan hệ
  • 69. 69 5.3.1 RBTV có bối cảnh trên 1 loại quan hệ 5.3.1.1 RBTV miền giá trị 5.3.1.2 RBTV liên thuộc tính 5.3.1.3 RBTV liên bộ
  • 70. 70 Lược đồ CSDL quản lý giáo vụ HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP) LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN) KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA) MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA) DIEUKIEN (MAMH, MAMH_TRUOC) GIAOVIEN(MAGV, HOTEN, HOCVI, HOCHAM, GIOITINH, NGSINH, NGVL, HESO, MUCLUONG, MAKHOA) GIANGDAY(MALOP, MAMH, MAGV, HOCKY, NAM, TUNGAY, DENNGAY) KETQUATHI (MAHV, MAMH, LANTHI, NGTHI, DIEM, KQUA)
  • 71. 71 5.3.1.1 Ràng buộc miền giá trị • Là tập giá trị mà một thuộc tính có thể nhận. • R1: Giới tính của học viên chỉ là Nam hoặc Nữ – Nội dung: ∀hv ∈ HOCVIEN: hv.Gioitinh ∈ {‘Nam’,’Nữ’} – Bối cảnh: loại quan hệ HOCVIEN – Bảng tầm ảnh hưởng: R1 THÊM XÓA SỬA HỌC VIÊN + - +(gioitinh)
  • 72. 72 5.3.1.2 Ràng buộc liên thuộc tính • Là ràng buộc giữa các thuộc tính với nhau trên 1 bộ của quan hệ • R2: Ngày bắt đầu (TUNGAY) giảng dạy một môn học cho một lớp luôn nhỏ hơn ngày kết thúc (DENNGAY) – Nội dung: ∀gd ∈ GIANGDAY: gd.TUNGAY < gd.DENNGAY – Bối cảnh: GIANGDAY – Bảng tầm ảnh hưởng:
  • 73. 73 5.3.1.3 Ràng buộc liên bộ (1) • Là ràng buộc giữa các bộ trên cùng một quan hệ (có thể liên quan đến nhiều thuộc tính). • R3: Tất cả các học viên phải có mã số phân biệt với nhau – Nội dung: ∀h1,h2∈ HOCVIEN: Nếu h1≠h2 thì h1.Mahv≠h2.Mahv – Bối cảnh: quan hệ HOCVIEN – Bảng tầm ảnh hưởng: R3 Thêm Xóa Sửa HOCVIEN + - + (MAHV)
  • 74. 74 5.3.1.3 Ràng buộc liên bộ (2) • R4: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương sẽ bằng nhau – Nội dung: ∀gv1,gv2∈ GIAOVIEN: Nếu (gv1.Hocvi=gv2.Hocvi)∧(gv1.Heso=gv2.Heso) thì gv1.Mucluong=gv2.Mucluong – Bối cảnh: quan hệ GIAOVIEN – Bảng tầm ảnh hưởng:
  • 75. 75 5.3.2 RBTV có bối cảnh nhiều loại quan hệ 5.3.2.1 RBTV tham chiếu (khóa ngoại, phụ thuộc tồn tại) 5.3.2.2 RBTV liên thuộc tính 5.3.2.3 RBTV do thuộc tính tổng hợp 5.3.2.4 RBTV do chu trình trong lược đồ biểu diễn quan hệ
  • 76. 76 5.3.2.1 Ràng buộc tham chiếu (1) • Là ràng buộc quy định giá trị thuộc tính trong một bộ của loại quan hệ R (tập thuộc tính này gọi là khóa ngoại), phải phụ thuộc vào sự tồn tại của một bộ trong quan hệ S (tập thuộc tính này là khóa chính trong quan hệ S). • RBTV tham chiếu còn gọi là ràng buộc phụ thuộc tồn tại hay ràng buộc khóa ngoại.
  • 77. 77 3.2.1 Ràng buộc tham chiếu (2) • R5: Học viên thi một môn học nào đó thì môn học đó phải có trong danh sách các môn học – Nội dung: ∀∀k ∈ KETQUATHI, ∃m ∈ MONHOC: k.Mamh = m.Mamh • Hoặc: KETQUATHI[Mamh] ⊆ MONHOC[Mamh] – Bối cảnh: loại quan hệ KETQUATHI, MONHOC – Bảng tầm ảnh hưởng: R5 Thêm Xóa Sửa KETQUATHI + - + (MAMH) MONHOC - + + (MAMH)
  • 78. 78 5.3.2.2 Ràng buộc liên thuộc tính (1) • Là ràng buộc giữa các thuộc tính trên những loại quan hệ khác nhau • R6: Ngày giáo viên giảng dạy một môn học phải lớn hơn hoặc bằng ngày giáo viên đó vào làm. – Nội dung: ∀gd ∈ GIANGDAY Nếu ∃gv ∈ GIAOVIEN: gd.Magv = gv.Magv thì gv.NGVL ≤ gd.TUNGAY – Bối cảnh: GIANGDAY, GIAOVIEN – Bảng tầm ảnh hưởng:
  • 79. 79 5.3.2.2 Ràng buộc liên thuộc tính (2) • R7: Ngày thi một môn học phải lớn hơn ngày kết thúc học môn học đó. – Nội dung: ∀kq ∈ KETQUATHI Nếu ∃gd ∈GIANGDAY, ∃hv ∈HOCVIEN: (gd.Malop=hv.Malop)∧(kq.Mamh=gd.Mamh) thì gd.Denngay < kq.Ngthi – Bối cảnh: GIANGDAY, HOCVIEN, KETQUATHI
  • 80. 80 5.3.2.2 Ràng buộc liên thuộc tính (3) • Bảng tầm ảnh hưởng:
  • 81. 81 5.3.2.3 RBTV do thuộc tính tổng hợp (1) • Là ràng buộc giữa các thuộc tính, các bộ trên những loại quan hệ khác nhau. • Thuộc tính tổng hợp là thuộc tính được tính toán từ giá trị của các thuộc tính khác, các bộ khác. • Ví dụ: SANPHAM(Masp, Tensp, Nuocsx, Gia) KHACHHANG(Makh, Hoten, Doanhso) HOADON(Sohd, Nghd, Makh, Trigia) CTHD(Sohd, Masp, Soluong, Gia) – Trị giá của một hóa đơn bằng tổng thành tiền của các chi tiết thuộc hóa đơn đó.
  • 82. 82 5.3.2.3 RBTV do thuộc tính tổng hợp (2) • Doanh số của một khách hàng bằng tổng trị giá các hóa đơn mà khách hàng đó đã mua: – Nội dung: ∀kh ∈ KHACHHANG, kh.Doanhso = ∑(hd ∈ HOADON: hd.Makh=kh.Makh)(hd.Trigia) – Bối cảnh: KHACHHANG, HOADON – Bảng tầm ảnh hưởng:
  • 83. 83 5.3.2.3 RBTV do thuộc tính tổng hợp (3) • R8: Sĩ số của một lớp là số lượng học viên thuộc lớp đó – Nội dung: ∀l ∈ LOP, l.Siso = Count(hv ∈ HOCVIEN: hv.Malop = l.Malop)(*) – Bối cảnh: quan hệ LOP, HOCVIEN – Bảng tầm ảnh hưởng:
  • 84. 84 5.3.2.4 Do hiện diện của chu trình (1) Biểu diễn lược đồ quan hệ dưới dạng đồ thị: – Loại quan hệ được biểu diễn bằng nút tròn rỗng to. – Thuộc tính được biểu diễn bằng nút tròn đặc nhỏ. – Tất cả các nút đều được chỉ rõ bằng tên của quan hệ hoặc thuộc tính. Thuộc tính thuộc một loại quan hệ được biểu diễn bởi một cung nối giữa nút tròn to và nút tròn nhỏ. – Nếu đồ thị biểu diễn xuất hiện một đường khép kín. => Lược đồ CSDL có sự hiện diện của chu trình.
  • 85. 85 5.3.2.4 Do hiện diện của chu trình (2)
  • 86. 86 5.3.2.4 Do hiện diện của chu trình (3) • X = GIANGDAY[Magv, Mamh] • Y = (GIAOVIEN ⋈ MONHOC) [Magv,Mamh] • Ý nghĩa: – X: giáo viên và những môn học đã được phân công cho giáo viên đó giảng dạy – Y: giáo viên và những môn học thuộc khoa giáo viên đó phụ trách • Mối quan hệ giữa X và Y trong các ràng buộc sau:
  • 87. 87 5.3.2.4 Do hiện diện của chu trình (4) Xảy ra một trong ba ràng buộc sau: • Ràng buộc 1: giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó phụ trách X ⊆ Y • Ràng buộc 2: giáo viên phải được phân công giảng dạy tất cả những môn thuộc khoa giáo viên đó phụ trách X = Y • Ràng buộc 3: có thể phân công giáo viên giảng dạy bất kỳ môn học nào X ≠ Y
  • 88. 88 5.3.2.4 Do hiện diện của chu trình (4) • R9: giáo viên chỉ được phân công giảng dạy những môn thuộc khoa giáo viên đó phụ trách X ⊆ Y
  • 89. 89 5.3.3 Phụ thuộc hàm (functional dependency) 5.3.4 Thuật toán tìm khóa
  • 90. 90 5.3.3 Phụ thuộc hàm (1) • Cho lđ quan hệ Q(A, B, C). Phụ thuộc hàm A xác định B. Ký hiệu A → B nếu: ∀q1,q2∈Q: Nếu q1.A=q2.A thì q1.B=q2.B • A → B được gọi là phụ thuộc hàm hiển nhiên nếu B ⊆ A • A → B được gọi là phụ thuộc hàm nguyên tố nếu ¬∃A’ ⊂ A, A’ ≠ A sao cho A’→ B
  • 91. 91 • Ràng buộc khóa cũng là một phụ thuộc hàm Mamh → Tenmh, Tclt, Tcth, Makhoa • R4: Các giáo viên có cùng học vị, cùng hệ số lương thì mức lương sẽ bằng nhau. Ràng buộc này có thể biểu diễn bằng phụ thuộc hàm như sau: Hocvi, Heso → Mucluong 5.3.3 Phụ thuộc hàm (2)
  • 92. 92 5.3.4 Thuật toán tìm khóa (1) 5.3.4.1 Thuật toán tìm bao đóng (Closure) của tập thuộc tính: 1. X0 = X 2. Xi+1 = Xi ∪ A sao cho ∃ (Y  Z ) ∈ F, mà A ∈ Z và Y ∈ Xi 3. Cho đến khi Xi+1 = Xi (Vì X= X0 ⊆ X1 ⊆ X2 ⊆ … ⊆ U, mà U hữu hạn cho nên sẽ tồn tại 1 chỉ số i nào đó mà Xi+1 = Xi)  Khi đó X+ F = Xi
  • 93. 93 Ví dụ: • Cho R(U) với U = ABCDEGH F = {B  A, DA  CE, D  H, GH  C, AC  D} • Tính X+ F, với: X = BD X = AC 5.3.4 Thuật toán tìm khóa (2)
  • 94. 94 5.3.4.2 Định nghĩa khóa:  R là lược đồ quan hệ định nghĩa trên tập các thuộc tính U = { A1, A2,..., An }, với tập các phụ thuộc hàm F = { f1, f2,..., fm } xác định trên R.  K ⊆ U là khóa của R nếu thỏa mãn hai điều kiện sau đây: 1) K → U. (K là siêu khóa) 2) ! K’ ⊂ K mà K’ → U. (siêu khóa nhỏ nhất) 5.3.4 Thuật toán tìm khóa (3)
  • 95. 95 5.3.4.3: Bài toán tìm khóa:  A gọi là thuộc tính nguồn nếu A không xuất hiện ở vế phải của bất kỳ Pth không hiển nhiên nào của F. Tập các thuộc tính nguồn ký hiệu là N.  A gọi là thuộc tính đích nếu A không phải thuộc tính nguồn và A không xuất hiện ở vế trái của bất kỳ PTH không hiển nhiên nào của F. Ký hiệu là D. 5.3.4 Thuật toán tìm khóa (4)
  • 96. 96  Tập hợp các thuộc tính không phải nguồn và không phải đích gọi là tập trung gian. Ký hiệu là L  Các tập hợp N, D, L rời nhau từng đôi một và N ∪ D ∪ L = R+ Nhận xét  Nếu K là khóa của R thì K chứa tất cả các thuộc tính nguồn và không chứa bất kỳ thuộc tính đích nào. 5.3.4 Thuật toán tìm khóa (5)
  • 97. 97  B1: Xây dựng 2v tập con của L: L1, L2, … bằng phương pháp đường chạy nhị phân.  B2: Xây dựng tập K chứa các siêu khóa  K = ∅  ∀ Li, Xi = N ∪ Li  Tính Xi + F. Nếu Xi + F = R+ thì K = K ∪ Xi  B3: Loại bỏ dần các siêu khóa lớn. 5.3.4 Thuật toán tìm khóa (6)
  • 98. 98 • Ví dụ: Cho R(ABCDEG) với tập Pth F = { AE  C, CG  A, BD  G, GA  E } Xác định tất cả các khóa của R.  Ta có: – N = { B, D } – D = ∅ – L = { A, C, E, G }  Xây dựng tập thuộc tính Li bằng phương pháp đường chạy nhị phân. 5.3.4 Thuật toán tìm khóa (7)
  • 99.
  • 100. 100 5.4. Bảng tầm ảnh hưởng tổng hợp (1) • Bảng tầm ảnh hưởng tổng hợp của m ràng buộc trên n quan hệ bối cảnh:
  • 101. 101 5.4. Bảng tầm ảnh hưởng tổng hợp (1)
  • 102. 102 Chương VI. CHUẨN HÓA DỮ LIỆU 6.1. Đặt vấn đề 6.2. Dạng chuẩn 1 6.3. Dạng chuẩn 2 6.4. Dạng chuẩn 3 6.5. Dạng chuẩn Boyce-Codd 6.6. Chuẩn hóa lược đồ CSDL bằng phương pháp phân rã 6.7. Ví dụ
  • 103. 103 6.1. Đặt vấn đề (1) • Xét lđ quan hệ ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH, MãHH, SốLượng ) Với tập Pth F = {SốĐH  NgàyĐH, MãKH; SốĐH, MãHH  SốLượng} =>=> Có Trùng lắp thông tin.Có Trùng lắp thông tin.
  • 104. 104 Sự trùng lắp thông tin dẫn đến: Tăng chí phí lưu trữ Tăng chi phí kiểm tra RBTV Thiếu nhất quán Vi phạm tính toàn vẹn của dữ liệu 6.1. Đặt vấn đề (2)
  • 105. 105 Tổ chức lại thành 2 loại quan hệ như sau: ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH) Với F1 = {SốĐH  NgàyĐH, MãKH} CHITIẾT_ĐH (SốĐH, MãHH, SốLượng) Với F2 = {SốĐH, MãHH  SốLượng} => Không còn xảy ra tình trạng trùng lắp thông tin. 6.1. Đặt vấn đề (3)
  • 106. 106 • Để có thể đánh giá một cách cụ thể chất lượng thiết kế của một lược đồ CSDL, lúc đầu E.F.Codd (tác giả của mô hình dữ liệu quan hệ) đưa ra 3 dạng chuẩn và sau đó R.F.Boyce và E.F.Codd cải tiến dạng chuẩn 3 gọi là dạng chuẩn Boyce-Codd (BC). • Các dạng chuẩn được định nghĩa dựa trên khái niệm phụ thuộc hàm. 6.1. Đặt vấn đề (4)
  • 107. 107 • Mục đích của quá trình chuẩn hóa: – Để biểu diễn được mọi quan hệ trong CSDL – Tránh sai sót khi thêm, xóa, sửa dữ liệu – Tránh phải xây dựng lại cấu trúc của các loại quan hệ khi cần đến các kiểu dữ liệu mới 6.1. Đặt vấn đề (5)
  • 108. 108 6.2. DẠNG CHUẨN 1 (1) Thuộc tính đơn: Giả sử có lược đồ quan hệ Q. Một thuộc tính A của Q gọi là thuộc tính đơn nếu mỗi một thể hiện (dòng) thuộc tính A chỉ có một giá trị. • Ví dụ 1: Môn không là thuộc tính đơn CHUYÊN_MÔN (MÃGV, MÔN )
  • 109. 109 Định nghĩa: • Một lược đồ quan hệ Q được gọi là ở dạng chuẩn 1 nếu mọi thuộc tính của Q đều là thuộc tính đơn. Ví dụ: Quan hệ CHUYÊN_MÔN (MÃGV, MÔN ) không đạt dạng chuẩn 1 Khắc phục: CHUYÊN_MÔN (MÃGV, MÔN) 6.2. DẠNG CHUẨN 1 (2)
  • 110. 110 • CHUYÊN_MÔN (MÃGV, MÔN) đạt dạng chuẩn 1: 6.2. DẠNG CHUẨN 1 (3)
  • 111. 111 6.3. DẠNG CHUẨN 2 (1) • Phụ thuộc đầy đủ: Giả sử có 1 lược đồ quan hệ Q và tập phụ thuộc hàm F. Thuộc tính A được gọi là phụ thuộc đầy đủ vào 1 tập thuộc tính X nếu: – A ∈ X+ F – X  A là phụ thuộc hàm nguyên tố (không tồn tại X’ ⊆ X, mà X’  A)
  • 112. 112 Định nghĩa: • Một lược đồ quan hệ Q được gọi là ở dạng chuẩn 2 nếu: – Q ở dạng chuẩn 1. – Mọi thuộc tính không khóa của Q đều phụ thuộc đầy đủ vào các khóa của Q. 6.3. DẠNG CHUẨN 2 (2)
  • 113. 113 Ví dụ: Loại quan hệ ĐẶT_HÀNG (SốĐH, MãHH, NgàyĐH, MãKH, SốLượng) Với tập Pth F = {SốĐH  NgàyĐH, MãKH; SốĐH, MãHH  SốLượng}  Không đạt dạng chuẩn 2 Khắc phục: Tách thành 2 quan hệ: ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH) Với F1 = {SốĐH  NgàyĐH, MãKH} CHITIẾT_ĐH (SốĐH, MãHH, SốLượng) Với F2 = {SốĐH, MãHH  SốLượng} 6.3. DẠNG CHUẨN 2 (3)
  • 114. 114 • Nhận xét: – Nếu lược đồ quan hệ Q chỉ có 1 khóa K và K chỉ có 1 thuộc tính thì Q ở dạng chuẩn 2. – Một lược đồ quan hệ Q ở dạng chuẩn 2 vẫn có thể chứa đựng sự trùng lắp thông tin. 6.3. DẠNG CHUẨN 2 (4)
  • 115. 115 6.4. DẠNG CHUẨN 3 (1) Phụ thuộc bắc cầu: • Thuộc tính A ∈ Q+ được gọi là phụ thuộc bắc cầu vào tập thuộc tính X nếu ∃Y ∈ Q+ : – X  Y ∈ F+ và Y  A ∈ F+ – Y  X ∉ F+ – A ∉ (X ∪ Y) • Khi đó X  A được gọi là phụ thuộc hàm bắc cầu.
  • 116. 116  Định nghĩa: Một lược đồ quan hệ Q được gọi là ở dạng chuẩn 3 nếu: – Q ở dạng chuẩn 2. – Mọi thuộc tính không khóa của Q đều không phụ thuộc bắc cầu vào một khóa nào của Q. 6.4. DẠNG CHUẨN 3 (2)
  • 117. 117 Ví dụ: Loại quan hệ GIẢNG_DẠY(MãLớp, MãsốGV, TênGV, Địachỉ) Với tập Pth F = {Mãlớp  MãsốGV; MãSốGV  TênGV, Địachỉ}  Không đạt dạng chuẩn 3 Khắc phục: Tách thành 2 quan hệ: GIẢNG_DẠY(MãLớp, MãsốGV) Với tập Pth F1 = {Mãlớp  MãsốGV} GIÁO_VIÊN(MãsốGV, TênGV, Địachỉ ) Với tập Pth F2 = {MãSốGV  TênGV, Địachỉ} 6.4. DẠNG CHUẨN 3 (3)
  • 118. 118 • Nhận xét: – Chính phụ thuộc hàm bắc cầu là nguyên nhân dẫn đến tình trạng trùng lắp thông tin. – Dạng chuẩn 3 là tiêu chuẩn tối thiểu trong thiết kế cơ sở dữ liệu. 6.4. DẠNG CHUẨN 3 (4)
  • 119. 119 6.5. DẠNG CHUẨN BOYCE-CODD (1) • Định nghĩa: – Một lược đồ quan hệ Q được gọi là ở dạng chuẩn Boyce-Codd (BC) nếu mọi phụ thuộc hàm không hiển nhiên của F đều có vế trái chứa khóa. – Dạng chuẩn lược đồ CSDL là Min (dạng chuẩn Qi), Qi là các lược đồ quan hệ của CSDL.
  • 120. 120 • Nhận xét: – Nếu 1 lược đồ quan hệ Q ở dạng chuẩn BC thì cũng ở dạng chuẩn 3. – Trong 1 lược đồ quan hệ Q ở dạng chuẩn BC, việc kiểm tra phụ thuộc hàm chủ yếu là kiểm tra khóa nội. 6.5. DẠNG CHUẨN BOYCE-CODD (2)
  • 121. 121 Ví dụ: ĐẶT_HÀNG (SốĐH, NgàyĐH, MãKH) Với F1 = {SốĐH  NgàyĐH, MãKH} CHITIẾT_ĐH (SốĐH, MãHH, SốLượng) Với F2 = {SốĐH, MãHH  SốLượng} => 2 lđ quan hệ đều đạt dạng chuẩn Boyce- Codd. 6.5. DẠNG CHUẨN BOYCE-CODD (3)
  • 122. 122 Chương VII. NGÔN NGỮ TÂN TỪ (tự đọc) 7.1 Giới thiệu 7.2 Cú pháp 7.3 Các định nghĩa 7.4 Diễn giải của một công thức 7.5 Quy tắc lượng giá công thức 7.6 Ngôn ngữ tân từ có biến là n bộ 7.7 Ngôn ngữ tân từ có biến là miền giá trị
  • 123. 123 7.1. Giới thiệu • Ngôn ngữ tân từ là ngôn ngữ truy vấn hình thức do Codd đề nghị (1972-1973) được Lacroit, Proix và Ullman phát triển, cài đặt trong một số ngôn ngữ như QBE, ALPHA.. • Đặc điểm: – Ngôn ngữ phi thủ tục. – Rút trích cái gì chứ không phải rút trích như thế nào. – Khả năng diễn đạt tương đương với đại số quan hệ. • Có hai loại: – Có biến là n bộ. – Có biến là miền giá trị.
  • 124. 124 7.2. Cú pháp • ( ): biểu thức trong ngoặc • Biến: dùng chữ thường ở cuối bộ ký tự: x, y, z, t, s… • Hằng: dùng chữ thường ở đầu bộ ký tự: a, b, c,… • Hàm: là một ánh xạ từ một miền giá trị vào tập hợp gồm 2 giá trị: đúng hoặc sai. Thường dùng chữ thường ở giữa bộ ký tự: h, g, f,… • Tân từ: là một biểu thức được xây dựng dựa trên biểu thức logic. Dùng chữ in hoa ở giữa bộ ký tự P, Q, R… • Các phép toán logic: phủ định (¬), kéo theo (⇒), và (∧), hoặc (∨). • Các lượng từ: với mọi (∀), tồn tại (∃)
  • 125. 125 7.3. Các định nghĩa (1) • Định nghĩa 1: Tân từ 1 ngôi – Tân từ 1 ngôi được định nghĩa trên tập X và biến x có giá trị chạy trên các phần tử của X. – Với mỗi giá trị của x, tân từ P(x) là một mệnh đề logic, tức là nó có giá trị đúng (Đ) hoặc sai (S). – Ví dụ: • P(x), x là biến chạy trên X, là một tân từ • P(gt), gt∈X là một mệnh đề, X = {Nguyen Van A, Tran Thi B} • Với tân từ NỮ(x) được xác định:"x là người nữ”. Khi đó • Mệnh đề NỮ(Nguyen Van A): cho kết quả Sai • NỮ(Tran Thi B): cho kết quả Đúng
  • 126. 126 • Định nghĩa 2: Tân từ n ngôi – Tân từ n ngôi được định nghĩa trên các tập X1, X2, …, Xn và n biến x1, x2, …, xn lấy giá trị trên các tập Xi tương ứng. – Với mỗi giá trị ai∈Xi, xi=ai.Tân từ n ngôi là một mệnh đề. – Ký hiệu: P(x1, x2, …, xn) – Ví dụ: CHA(x1,x2): "x1 là CHA của x2” – Chú ý: • Các Xi không nhất thiết phải là rời nhau • Với xi=ai, P(x1, x2, …, ai, …, xn) là tân từ n-1 ngôi 7.3. Các định nghĩa (2)
  • 127. 127 • Định nghĩa 3: Từ – Từ là một hằng hay là một biến – Nếu f(t1, t2, …, tn) là hàm n ngôi thì f là một từ • Định nghĩa 4: Công thức – Công thức nguyên tố: P(t1, t2, …, tn), ti là các từ – Nếu F1, F2 là các công thức thì các biểu thức sau cũng là các công thức: F1∨F2, F1∧F2, F1 => F2, ¬F1 – Nếu F1 là một công thức thì ∀:F1, ∃x:F1 cũng là các công thức – Nếu F1 là công thức thì (F1) cũng là một công thức 7.3. Các định nghĩa (3)
  • 128. 128 • Định nghĩa 4: – Công thức đóng là công thức nếu mọi biến đều có kèm với lượng từ. (khẳng định Đ, S) – Công thức mở là công thức tồn tại 1 biến không kèm lượng từ. (tìm kiếm thông tin) • Ví dụ: – C1: ∀x∃t∀y(P(x,y,a) ⇒ ∃z(Q(y,z,t)∧R(x,t)) là công thức đóng vì các biến x,y,z,t đều có kèm lượng từ ∀,∃ – C2: ∀x ∃t (P(x,y,a) ⇒ ∃z(Q(y,z,t)∧R(x,t)) là công thức mở vì biến y không có lượng từ ∀,∃ 7.3. Các định nghĩa (4)
  • 129. 129 7.4. Diễn giải của một công thức Gồm 4 phần: • Miền giá trị của các biến của công thức (ký hiệu là tập M) • Sử dụng các hằng, các tân từ (ý nghĩa tân từ, xác định được quan hệ n ngôi) • Ý nghĩa của công thức • Xác định 1 quan hệ n ngôi trên tập Mn
  • 130. 130 7.5. Quy tắc lượng giá công thức • Lượng giá tân từ: xét tân từ bậc n: P(x1,x2,…xn) và liên kết với quan hệ R, n ngôi. P(a1,a2,…,an): Đ ⇔ (a1,a2,…,an) ∈R P(a1,a2,…,an): S ⇔ (a1,a2,…,an) ∉R • Các phép toán ∧,∨,¬,⇒ dùng bảng chân trị • Lượng từ ∃: gọi x là biến. Công thức ∃x F(x) là đúng khi có ít nhất một ai∈M/F(ai):Đ M={a1,a2,…,an} ≡∨F(ai), ai∈M • Lượng từ ∀: x là biến, ∀x F(x): Đ với ∀ ai∈M/F(ai):Đ M={a1,a2,…,an} ≡∧F(ai), ai∈M
  • 131. 131 7.6. Ngôn ngữ tân từ có biến là n bộ 7.6.1 Qui tắc 7.6.2 Định nghĩa 7.6.3 Công thức an toàn 7.6.4 Biểu diễn các phép toán
  • 132. 132 7.6.1 Quy tắc (1) 1. Biến là 1 bộ của quan hệ 2. Từ: hằng, biến hoặc biểu thức có dạng s[C], s: biến, C: tập các thuộc tính của quan hệ được gọi là từ chiếu. 3. Công thức: – Rs (R là quan hệ, s là biến) được gọi là từ. Miền giá trị sẽ định nghĩa miền biến thiên của s. – t1θ a, t1θ t2 ở đây t1,t2 là các từ chiếu, còn a là một hằng, θ là toán tử so sánh dược gọi là công thức nguyên tố.
  • 133. 133 4. Một công thức nguyên tố là một công thức 5. F1 và F2 là công thức: F1∨F2, F1∧F2, F1⇒F2, ¬F1 là công thức 6. F là công thức, s là biến ∃sF, ∀sF là công thức 7. F là công thức, (F) là công thức 7.6.1 Quy tắc (2)
  • 134. 134 7.6.2 Định nghĩa • Một câu hỏi trong ngôn ngữ tân từ có biến là n bộ được biểu diễn như sau: {s | F}. Trong đó s là biến n bộ, F là một công thức, chỉ có một biến tự do là s. • Ví dụ: BIENGIOI(Nuoc,Tinhtp). Phép toán quan hệ BIENGIOI[Nuoc] được chuyển thành câu hỏi trong ngôn ngữ tân từ có biến là bộ: {s[Nuoc] BIENGIOI s}
  • 135. 135 7.6.3 Công thức an toàn F là công thức an toàn: nếu nó thỏa mãn 3 điều kiện sau: i) Nếu s là bộ n thỏa: F(s) là đúng thì mọi thành phần của s là phần tử của DOM(F): (FS: Đúng) → s ∈ DOM(F) ii) F’ là công thức con của F: ∃sF’S,F’S: Đúng → s ∈ DOM(F’) iii) ∀sF’S,F’S: Đúng → s ∉ DOM(F’)
  • 136. 136 7.6.4 Biểu diễn các phép toán (1) 1. Phép hội – Q1, Q2 là các quan hệ n chiều – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 ∪ Q2 – Fs = F1s∨ F2s 2. Phép trừ – Q1, Q2 là các quan hệ n chiều – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 - Q2 – Fs = F1∧¬F2s
  • 137. 137 • 3. Phép tích Q1(x1,…,xm), Q2(y1,…,yn) – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 x Q2 Fs: s(x1,…,xm,y1,…,yn) Fs = (∃v) (∃ p) (F1v ∧ F2p ∧ s1=v1 ∧ …sm=vm ∧ sm+1=p1 ∧ … sm+n=pn) 7.6.4 Biểu diễn các phép toán (2)
  • 138. 138 • 4. Phép chiếu – Q1(x1,…,xn), F1 là các công thức ứng với Q1 – Công thức của Q= Q1 [xi1, xi2,…,xik] Fs=(∃v) (F1v ∧ s1=vi1 ∧s2=vi2 ∧… sk=vik) • 5. Phép chọn – Q1 là quan hệ n chiều, F1 là công thức ứng với Q1 – Công thức Q=Q1:điều kiện ĐK (ĐK:xiθxj hoặc xiθa) Fs=F1s ∧ si θsj hoặc F1s ∧ si θa (1≤i, j ≤ n, i≠j) 7.6.4 Biểu diễn các phép toán (3)
  • 139. 139 7.7. Ngôn ngữ tân từ có biến là miền giá trị 7.7.1 Quy tắc 7.7.2 Biểu diễn câu hỏi 7.7.3 Công thức an toàn 7.7.4 Biểu diễn các phép toán
  • 140. 140 7.7.1 Quy tắc 1. Từ: là hằng hoặc biến 2. Công thức nguyên tố – Q(t1,t2,…,tn): ti là các từ, Q là quan hệ – tiθ tj,tiθ a với ti là từ, a là một hằng, θ là phép toán 3. Một công thức nguyên tố là một công thức 4. F1 và F2 là công thức: F1∨F2, F1∧F2, F1⇒F2, ¬F1 là công thức 5. F là công thức, t: biến tự do, ∃sF,∀sF cũng công thức 6. F là công thức, (F) là công thức
  • 141. 141 7.7.2 Biểu diễn câu hỏi {(x1,x2,…,xn) | F(x1,x2,…,xn)} • xi là các biến tự do của F • Q= {(x1,x2,…,xn) | F(x1,x2,…,xn)} nên (x1,x2, …,xn)∈Q ⇒ F(x1,x2,…,xn): Đúng
  • 142. 142 7.7.3 Công thức an toàn F là công thức an toàn: nếu nó thỏa mãn 3 điều kiện sau: i. Nếu s là bộ n thỏa: F(s) là đúng thì mọi thành phần của s là phần tử của DOM(F): (F(x1,…,xn): Đúng) → xi ∈ DOM(F), i=1,…,n ii. F’ là công thức con của F: ∃xF’: Đúng → x ∈ DOM(F’) ∀xF’: Đúng → ∃x ∉ DOM(F’) iii. (F(x1,…,xn): Đúng) → ∃x ∉ DOM(F), i=1,…,n
  • 143. 143 7.7.4 Biểu diễn các phép toán (1) 1. Phép hội – Q1,Q2 là các quan hệ n chiều – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 ∪ Q2 – F = F1∨ F2 2. Phép trừ – Q1,Q2 là các quan hệ n chiều – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 - Q2 – F = F1∧¬F2
  • 144. 144 3. Phép tích – Q1(x1,…,xm), Q2(y1,…,yn) – F1, F2 là các công thức ứng với Q1, Q2 – Công thức của Q = Q1 x Q2 F(x1,…,xm,y1,…,yn) = F1(x1,…,xm) ∧ F2(y1,…,yn) 7.7.4 Biểu diễn các phép toán (2)
  • 145. 145 4. Phép chiếu – Q1(x1,…,xn), F1(x1,…,xn) là các công thức ứng với Q1 – Công thức của Q= Q1 [xi1, xi2,…,xik] Fs(xi1, xi2,…,xik) = (∃xji)(∃xjz)…(∃xjn-k)(F1(x1,…,xn)) trong đó (xi1, xi2,…,xik)∪(xj1, xj2,…,xjn-k)=(x1, x2,…,xn) 5. Phép chọn – Q1(x1,…,xn), F1(x1,…,xn) là các công thức ứng với Q1 – Công thức Q = Q1: điều kiện ĐK (ĐK:xiθxj hoặc xiθa) F1(x1,…,xn)= F1(x1,…,xn) ∧ xi θxj hoặc = F1(x1,…,xn)∧ xi θa 7.7.4 Biểu diễn các phép toán (3)