Professional Documents
Culture Documents
Môn: Cơ Sở Dữ Liệu
Thời lượng: 45LT+30TH
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
1
Nội dung
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
2
Bài 1: Các khái niệm của một hệ
CSDL
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
3
Bài 1: Các khái niệm của một
hệ CSDL
1. Giới thiệu
2. Hệ thống tập tin (File System)
3. Định nghĩa một CSDL
4. Các đối tượng sử dụng CSDL
5. Hệ quản trị CSDL
6. Các mức của một CSDL
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
4
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
5
2. Hệ thống tập tin
Là tập hợp các tập tin riêng lẻ phục vụ cho một mục
đích của đơn vị sử dụng.
Ưu điểm:
Triển khai ứng dụng nhanh
Khả năng đáp ứng nhanh chóng, kịp thời (vì chỉ phục vụ
cho mục đích hạn hẹp)
Khuyết điểm:
Trùng lắp dữ liệu lãng phí, dữ liệu không nhất quán
Chi phí cao
Chia sẽ dữ liệu kém
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
6
3. Cơ sở dữ liệu (1)
Định nghĩa:
Cơ sở dữ liệu là một hệ thống các thông tin có
cấu trúc, được lưu trữ trên các thiết bị lưu trữ
nhằm thỏa mãn yêu cầu khai thác thông tin đồng
thời của nhiều người sử dụng hay nhiều chương
trình ứng dụng với những mục đích khác nhau
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
7
3. Cơ sở dữ liệu (2)
Ưu điểm:
Giảm trùng lắp thông tin xuống mức thấp nhất,
đảm bảo tính nhất quán và toàn vẹn dữ liệu.
Đảm bảo dữ liệu được truy xuất theo nhiều cách
khác nhau.
Khả năng chia sẽ thông tin cho nhiều người,
nhiều ứng dụng khác nhau.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
8
3. Cơ sở dữ liệu (3)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
9
4. Các đối tượng sử dụng
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
10
5. Hệ quản trị cơ sở dữ liệu (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
11
5. Hệ quản trị cơ sở dữ liệu (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
12
5. Hệ quản trị cơ sở dữ liệu (3)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
14
6. Các mức biểu diễn 1 CSDL
NSD2 Mức
Cấu trúc quan
ngoài 2 Mức vật lý –
niệm Cấu trúc vật lý
hoặc
Cấu trúc mức
ngoài n logic
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
16
Nội dung
1. Giới thiệu
2. Mô hình dữ liệu mạng
3. Mô hình thực thể mối kết hợp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
17
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
18
2. Mô hình dữ liệu mạng (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
19
2. Mô hình dữ liệu mạng (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
20
2. Mô hình dữ liệu mạng (3)
Bản số: chỉ ra số lượng các mẫu tin tham gia trong
mối liên hệ
(1:1) (one-to-one): mỗi mẫu tin của loại mẫu tin chủ kết
hợp với đúng 1 mẫu tin của loại mẫu tin thành viên.
(1:n) (one-to-many): mỗi mẫu tin của loại mẫu tin chủ
kết hợp với 1 hay nhiều mẫu tin thành viên.
(n:1) (many-to-one): nhiều mẫu tin của loại mẫu tin chủ
kết hợp với đúng 1 mẫu tin của loại mẫu tin thành viên.
(Recursive): một loại mẫu tin chủ cũng có thể đồng thời
là loại mẫu tin thành viên với chính nó. Loại liên hệ này
là Đệ quy
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
21
2. Mô hình dữ liệu mạng (4)
PHONG LYLICH
1:n
gồm có 1:1
NHANVIEN
1:n
quản lý
CONGVIEC cùng làm trực tiếp
n:1
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
22
2. Mô hình dữ liệu mạng (5)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
23
2. Mô hình dữ liệu mạng (6)
Bài tập:
Xây dựng mô hình dữ liệu mạng cho cơ sở
dữ liệu quản lý bán hàng trong một siêu thị
(giáo viên mô tả hiện trạng, xác định các yêu
cầu)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
24
3. Mô hình thực thể mối kết hợp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
25
3.1 Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
26
3.2 Loại thực thể
HOCVIEN LOP
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
27
3.2 Thực thể (Entity)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
28
3.3 Thuộc tính của loại thực thể
(Entity Attribute)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
29
3.3 Các loại thuộc tính (1)
Đơn trị (Simple): mỗi thực thể chỉ có một giá trị ứng với các
thuộc tính.
Ví dụ: Mahv,Hoten
Đa hợp (Composite): thuộc tính có thể được tạo thành từ
nhiều thành phần.
Ví dụ: DCHI(SONHA,DUONG,PHUONG,QUAN)
hay thuộc tính HOTEN(HO,TENLOT,TEN).
Đa trị (Multi-valued): thuộc tính có thể có nhiều giá trị đối
với một thực thể.
Ví dụ: BANGCAP ký hiệu {BANGCAP}
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
30
3.3 Các loại thuộc tính (2)
{BANGCAP(TRUONGCAP,NAM,KETQUA,
CHUYENNGANH)}
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
31
3.4. Khoá của loại thực thể
(entity type key)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
32
3.5 Loại mối kết hợp (1)
(relationship type)
HOCVIEN LOP
Thuoc
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
33
3.5 Loại mối kết hợp (2)
HOCVIEN LOP
Là trưởng lớp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
34
3.5 Số ngôi của loại mối kết hợp
(relationship degree)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
35
3.5 Số ngôi của loại mối kết hợp
HOCVIEN
LOP MONHOC
LOP
Giang
Thuoc
day
GIAOVIEN
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
36
3.6 Thuộc tính của loại mối kết hợp
(relationship type attribute)
Thuộc tính của loại mối kết hợp bao gồm các
thuộc tính khoá của các loại thực thể tham gia vào
loại mối kết hợp đó. Ngoài ra còn có thể có thêm
những thuộc tính bổ sung khác.
Ví dụ: Loại mối kết hợp Giảng dạy giữa ba loại
thực thể GIAOVIEN, MONHOC và LOP có các
thuộc tính là Magv,Mamh,Malop, ngoài ra còn có
thuộc tính riêng là Hocky, Nam
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
37
LOP MONHOC
Giang day
Hocky
Nam
GIAOVIEN
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
38
3.7 Bản số
(relationship cardinality)
Loại mối kết hợp thể hiện liên kết giữa các
thực thể, mỗi liên kết được gọi là một nhánh.
Định nghĩa: bản số của nhánh là số lượng tối
thiểu và số lượng tối đa các thực thể thuộc
nhánh đó tham gia vào loại mối kết hợp.
Ký hiệu: (bản số tối thiểu, bản số tối đa)
Ví dụ: Loại thực thể NhanVien và DeAn có
loại mối kết hợp ThamGia.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
39
Thuộc
(1,1) (1,n)
HOCVIEN LOP
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
40
Thuộc
(1,1) (1,n)
HOCVIEN LOP
(0,1) (1,1)
Là trưởng lớp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
41
3.7 Mô hình ER mở rộng
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
42
3.7.1 Chuyên biệt hóa (tổng
quát hóa)
ConNguoi SoCMND
HoTen
...
GiaoVien HocVien
HocVi NgayNH
NgayVL Khóa
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
43
3.7.2 Mối kết hợp đệ quy
NHANVIEN QuanLy
(1,n)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
44
3.7.3 Loại thực thể yếu
Định nghĩa:
Là loại thực thể không có thuộc tính khóa
Phải tham gia trong một loại mối kết hợp xác định trong
đó có một loại thực thể chủ.
Ký hiệu:
Thực thể
MONHOC
(1,n)
Thi
(1,n) (1,n)
HOCVIEN LANTHI
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
46
Bài tập
Xây dựng mô hình ER
Xây dựng mô hình ER cho CSDL quản lý
giáo vụ gồm có các chức năng sau:
Lưu trữ thông tin: Học viên , giáo viên, môn học
Xếp lớp cho học viên, chọn lớp trưởng cho lớp
Phân công giảng dạy: giáo viên dạy lớp nào với
môn học gì, ở học kỳ, năm học nào.
Lưu trữ kết quả thi: học viên thi môn học nào,
lần thi thứ mấy, điểm thi bao nhiêu.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
47
liệu quan hệ
(Relational Data Model)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
48
Nội dung
1. Giới thiệu
2. Các khái niệm
2.1 Thuộc tính
2.2 Quan hệ
2.3 Bộ giá trị
2.4 Thể hiện của quan hệ
2.5 Tân từ
2.6 Phép chiếu
2.7 Khóa
2.8 Lược đồ quan hệ và lược đồ CSDL
2.9 Hiện thực mô hình ER bằng mô hình dữ liệu quan hệ.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
49
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
50
2.1 Thuộc tính (attribute)
Thuộc tính:
Tên gọi: dãy ký tự (gợi nhớ)
Kiểu dữ liệu: Số, Chuỗi, Thời gian, Luận lý, OLE.
Miền giá trị: tập giá trị mà thuộc tính có thể nhận. Ký
hiệu miền giá trị của thuộc tính A là Dom(A).
Ví dụ:GIOITINH kiểu dữ liệu là Chuỗi,miền giá trị
Dom(GIOITINH)=(„Nam‟,‟Nu‟)
Tại một thời điểm, một thuộc tính không có giá trị
hoặc chưa xác định được giá trị => giá trị Null
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
51
2.2 Quan hệ (relation)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
52
2.3 Bộ (tuple)
Định nghĩa: Bộ là các thông tin của một đối tượng
thuộc quan hệ, được gọi là mẫu tin (record), dòng.
Quan hệ là một bảng (table) với các cột là các
thuộc tính và mỗi dòng được gọi là bộ.
Một bộ của quan hệ Q ( A , A ,..., A ) là Q ( A , A ,..., A )
1 2 n 1 2 n
với a Dom ( A )
i i
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
53
2.4 Thể hiện của quan hệ
(instance)
Định nghĩa: thể hiện của một quan hệ là tập hợp các
bộ giá trị của quan hệ tại một thời điểm nhất định.
Ký hiệu: thể hiện của quan hệ Q là TQ
Ví dụ: THOCVIEN là thể hiện của quan hệ HOCVIEN tại
thời điểm hiện tại gồm có các bộ như sau:
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
55
2.6 Phép chiếu (1)
Phép chiếu : Dùng để trích giá trị của một số thuộc tính
trong danh sách các thuộc tính của quan hệ.
Ký hiệu: phép chiếu của quan hệ R lên tập thuộc tính A
là R[A] hoặc R.A.
Ví dụ:
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
hv1= K1103 Ha Duy Lap Nam Nghe An K11
hv2 = K1102 Tran Ngoc Han Nu Kien Giang K11
hv3 =
K1104 Tran Ngoc Linh Nu Tay Ninh K11
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
56
2.6 Phép chiếu (2)
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
hv1= K1103 Ha Duy Lap Nam Nghe An K11
hv2=
K1102 Tran Ngoc Han Nu Kien K11
hv3= Giang
K1104 Tran Ngoc Linh Nu Tay Ninh K11
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
60
2.6 Phép chiếu (6)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
61
2.7 Khóa
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
62
2.7.1 Siêu khóa (super key) (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
63
2.7.1 Siêu khóa (super key) (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
65
2.7.2 Khóa (key) (2)
Ví dụ: các siêu khóa của quan hệ HOCVIEN là:
{Mahv};{Mahv,Hoten};{Hoten};{Hoten,Gioitinh};
{Noisinh,Hoten};{Mahv,Hoten,Gioitinh,Noisinh}…
=> thì khóa của quan hệ HOCVIEN có thể là
{Mahv}; {Hoten}
Ví dụ: khóa của quan hệ GIANGDAY là
K={Magv,Mamh,Malop}. Như vậy thuộc tính khóa
sẽ là: Magv,Mamh,Malop.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
66
2.7.3 Khóa chính (primary key)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
67
2.7.4 Khóa ngoại (1)
HOCVIEN (Mahv,Hoten,Gioitinh,Noisinh,Malop)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
69
2.7.4 Khóa ngoại (3)
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
70
2.8 Lược đồ quan hệ (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
72
2.8 Lược đồ quan hệ (3)
HOCVIEN(Mahv,Hoten,Gioitinh,Noisinh,Malop
Tân từ: mỗi học viên có một mã học viên để phân biệt
với các học viên khác. Cần lưu trữ họ tên, giới tính, nơi
sinh và thuộc lớp nào.
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
K1106 Le NhatKhoa
CuuDuongThanCong.com
MinhHTTT-Đại
Nam học CNTT
TpHCM K11
https://fb.com/tailieudientucntt
73
2.8 Lược đồ CSDL (1)
Hệ Quản Trị
CSDL
Các quan hệ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
74
Lược đồ CSDL quản lý bán
hàng
HOCVIEN (MAHV, HO, TEN, NGSINH, GIOITINH, NOISINH, MALOP)
Tân từ: mỗi học viên phân biệt với nhau bằng mã học viên, lưu trữ họ tên, ngày sinh,
giới tính, nơi sinh, thuộc lớp nào.
LOP (MALOP, TENLOP, TRGLOP, SISO, MAGVCN)
Tân từ: mỗi lớp gồm có mã lớp, tên lớp, học viên làm lớp trưởng của lớp, sỉ số lớp và
giáo viên chủ nhiệm.
KHOA (MAKHOA, TENKHOA, NGTLAP, TRGKHOA)
Tân từ: mỗi khoa cần lưu trữ mã khoa, tên khoa, ngày thành lập khoa và trưởng khoa
(cũng là một giáo viên thuộc khoa).
MONHOC (MAMH, TENMH, TCLT, TCTH, MAKHOA)
Tân từ: mỗi môn học cần lưu trữ tên môn học, số tín chỉ lý thuyết, số tín chỉ thực hành
và khoa nào phụ trách.
DIEUKIEN (MAMH, MAMH_TRUOC)
Tân từ: có những môn học học viên phải có kiến thức từ một số môn học trước.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
75
GIAOVIEN(MAGV,HOTEN,HOCVI,HOCHAM,GIOITINH,NGSINH,NGVL,
HESO, MUCLUONG, MAKHOA)
Tân từ: mã giáo viên để phân biệt giữa các giáo viên, cần lưu trữ họ tên, học vị, học
hàm, giới tính, ngày sinh, ngày vào làm, hệ số, mức lương và thuộc một khoa.
GIANGDAY(MALOP,MAMH,MAGV,HOCKY, NAM,TUNGAY,DENNGAY)
Tân từ: mỗi học kỳ của năm học sẽ phân công giảng dạy: lớp nào học môn gì do
giáo viên nào phụ trách.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
76
Bài 4: Ngôn ngữ đại số quan hệ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
77
Nội dung
1. Giới thiệu
2. Biểu thức đại số quan hệ
3. Các phép toán
4. Biểu thức đại số quan hệ
5. Ví dụ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
78
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
79
2. Biểu thức ĐSQH
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
80
3. Các phép toán
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
81
3.1 Giới thiệu (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
82
3.1 Giới thiệu (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
83
3.2 Phép chọn (Selection)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
84
Lược đồ CSDL quản lý giáo vụ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
85
3.2 Ví dụ phép chọn
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
Sử dụng để trích chọn giá trị một vài thuộc tính của
quan hệ
Ký hiệu: A , A ,..., A
(R )
1 2 k
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
87
3.3 Ví dụ
HOCVIEN
Mahv HoTen Gioitinh Noisinh Malop
Kết quả bên phải của phép gán được gán cho
biến quan hệ nằm bên trái.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
89
3.5 Các phép toán tập hợp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
90
3.5.1 Giới thiệu
Ký hiệu: R S
Định nghĩa: R S {t | t R t S } trong đó R,S là
hai quan hệ khả hợp.
Ví dụ: Học viên được khen thưởng đợt 1 hoặc đợt 2
DOT1 DOT2 Mahv Hoten
Mahv Hoten Mahv Hoten K1101 Le Kieu My
K1103 Le Van Tam K1101 Le Kieu My K1103 Le Van Tam
K1114 Tran Ngoc Han K1114 Tran Ngoc Han K1114 Tran Ngoc Han
K1203 Le Thanh Hau K1203 Le Thanh Hau
K1308 Nguyen Gia DOT1
K1308 DOT2
Nguyen Gia
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
92
3.5.3 Phép trừ (Set Difference)
Ký hiệu: R-S
Định nghĩa: R S {t | t R t S } trong đó R,S là
hai quan hệ khả hợp.
Ví dụ: Học viên được khen thưởng đợt 1 nhưng
không được khen thường đợt 2
DOT1 DOT2 Mahv Hoten
Mahv Hoten Mahv Hoten
K1103 Le Van Tam
K1103 Le Van Tam K1101 Le Kieu My
K1203 Le Thanh Hau
K1114 Tran Ngoc Han K1114 Tran Ngoc Han DOT1- DOT2
K1203 Le Thanh Hau
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
93
3.5.4 Phép giao (Set-Intersection)
Ký hiệu: R S
Định nghĩa: R S {t | t R t S } trong đó R,S là
hai quan hệ khả hợp. Hoặc R S = R – (R – S)
Ví dụ: Học viên được khen thưởng cả hai đợt 1 và 2
Ký hiệu: R S
Định nghĩa: R S {t r t s / t r R t s S }
Nếu R có n bộ và S có m bộ thì kết quả là n*m bộ
KQ(A1,A2,…Am,B1,B2,…Bn) R(A1,A2,…Am) S(B1,B2,…Bn)
Phép tích thường dùng kết hợp với các phép chọn
để kết hợp các bộ có liên quan từ hai quan hệ.
Ví dụ: từ hai quan hệ HOCVIEN và MONHOC, có
tất cả những trường hợp nào “học viên đăng ký học
môn học”, giả sử không có bất kỳ điều kiện nào
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
95
3.5.5 Phép tích (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
96
3.6 Phép kết
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
97
3.6.1 Phép kết (Theta-Join) (1)
Ký hiệu: R S
trong đó R,S là các quan hệ, p là điều kiện kết
Các bộ có giá trị NULL tại thuộc tính kết nối không
xuất hiện trong kết quả của phép kết.
Phép kết với điều kiện tổng quát gọi là -kết với là
một trong những phép so sánh ( , , , , , )
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
98
3.6.1 Phép kết (2)
A1 B2
R S
R S A1 A2 B1 B2 B3
A1 A2 B1 B2 B3 1 2 8 0 4
1 2 0 2 8 1 2 1 0 7
1 8 7 8 7 1 8 8 0 4
0 0 8 0 4 1 8 1 0 7
8 4 1 0 7 8 4 0 2 8
0 3 2 1 5 8 4 8 0 4
8 4 1 0 7
8 4 2 1 5
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
99
3.6.2 Phép kết bằng, kết tự nhiên
HOCVIEN * KETQUATHI
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
100
3.6.3 Phép kết ngoài (outer join)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT HV03
https://fb.com/tailieudientucntt CTRR 9.0 102
3.7 Phép chia (Division)
Định nghĩa: Q R S { t / s S , ( t , s ) R }
R và S là hai quan hệ, R+ và S+ lần lượt là tập
thuộc tính của R và S. Điều kiện S+ là tập con
không bằng của R+. Q là kết quả phép chia giữa R
và S, Q+ = R+ - S+
Có thể diễn đạt bằng phép toán đại số như sau:
T1 (R )
R S
T2 (( S T1 ) R)
R S
T T1 T2
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
103
3.7 Phép chia (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
104
3.8 Hàm tính toán và gom nhóm
(1)
Hàm tính toán gồm các hàm: avg(giatri),
min(giatri), max(giatri), sum(giatri), count(giatri).
Phép toán gom nhóm:
G 1 , G 2 ,..., G n F 1 ( A 1 ), F 2 ( A 2 ),..., F n ( A n )
(E )
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
105
3.8 Hàm tính toán và gom nhóm
(2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
106
Bài tập
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
107
Mô tả các câu truy vấn sau
bằng ĐSQH
1. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quốc”
sản xuất có giá từ 30.000 đến 40.000
2. In ra danh sách các khách hàng (MAKH, HOTEN) đã mua hàng
trong ngày 1/1/2007.
3. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất hoặc các sản phẩm được bán ra trong ngày 1/1/2007.
4. Tìm các số hóa đơn mua cùng lúc 2 sản phẩm có mã số “BB01” và
“BB02”.
5. In ra danh sách các sản phẩm (MASP,TENSP) do “Trung Quoc”
sản xuất không bán được trong năm 2006.
6. Tìm số hóa đơn đã mua tất cả các sản phẩm do Singapore sản xuất
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
108
Câu 1
SANPHAM : (( nuocsx ' TrungQuoc ') ( 30 . 000 gia 40 . 000 ))[ masp , tensp ]
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
109
Câu 2
MAKH
MAKH
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
110
Câu 3
C A B
A ( SANPHAM )
Hoặc
masp , tensp nuocsx 'TrungQuoc '
SOHD MASP
B masp , tensp
(( nghd # 1 / 1 / 2007 #
( HOADON ) CTHD ) SANPHAM )
C A B
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
111
Câu 4
C A B
C A B
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
112
Câu 5
D (A C)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
113
Câu 6
C B A
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
114
Bài 5: Ngôn ngữ SQL
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
115
Nội dung
1. Giới thiệu
2. Các ngôn ngữ giao tiếp
3. Ngôn ngữ định nghĩa dữ liệu
4. Ngôn ngữ thao tác dữ liệu
5. Ngôn ngữ truy vấn dữ liệu có cấu trúc
6. Ngôn ngữ điều khiển dữ liệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
116
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
117
2. Các ngôn ngữ giao tiếp
Số tinyint,smallint, int,
numeric(m,n), decimal(m,n),float, real,
smallmoney, money
Ngày tháng smalldatetime, datetime
Luận lý bit
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
121
3.1 Lệnh tạo bảng (3)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
122
3.1 Lệnh tạo bảng (4)
Create table KHACHHANG
(
MAKH char(4) primary key,
HOTEN varchar(40),
DCHI varchar(50),
SODT varchar(20),
NGSINH smalldatetime,
DOANHSO money,
NGDK smalldatetime,
CMND varchar(10)
)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
123
3.1 Lệnh tạo bảng (5)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
125
3.2 Sửa cấu trúc bảng(2)
Ví dụ: Sửa Cột Ghi_chu thành kiểu dữ liệu varchar(50)
ALTER TABLE KHACHHANG ALTER COLUMN GHI_CHU varchar(50)
Nếu sửa kiểu dữ liệu của cột Ghi_chu thành varchar(5), mà
trước đó đã nhập giá trị cho cột Ghi_chu có độ dài hơn 5ký
tự thì không được phép.
Hoặc sửa từ kiểu chuỗi ký tự sang kiểu số, …
3.2.3 Xóa thuộc tính
ALTER TABLE tên_bảng DROP COLUMN tên_cột
Ví dụ: xóa cột Ghi_chu trong bảng KHACHHANG
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
126
3.2 Sửa cấu trúc bảng(3)
Cú pháp
DROP TABLE tên_bảng
Ví dụ: xóa bảng KHACHHANG.
DROP TABLE KHACHHANG
Lưu ý: khi muốn xóa một bảng phải xóa tất
cả những khóa ngoại tham chiếu tới bảng đó
trước.
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
130
4. Ngôn ngữ thao tác dữ liệu
G m các lệnh:
4.1 Lệnh thêm dữ u (INSERT)
4.2 Lệnh sửa dữ u (UPDATE)
4.3 Lệnh xóa dữ u (DELETE)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
131
4.1 Thêm dữ liệu
Cú pháp
INSERT INTO tên_bảng (cột1,…,cộtn) VALUES
(giá_trị_1,…., giá_trị_n)
INSERT INTO tên_bảng VALUES (giá_trị_1,
giá_trị_2,…, giá_trị_n)
Ví dụ:
insert into SANPHAM values('BC01','But chi', 'cay',
'Singapore', 3000)
insert into SANPHAM(masp,tensp,dvt,nuocsx,gia)
values ('BC01','But chi','cay','Singapore',3000)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
132
4.2 Sửa dữ liệu
Cú pháp
UPDATE tên_bảng
SET cột_1 = giá_trị_1, cột_2 = giá_trị_2 ….
[WHERE điều_kiện]
Lưu ý: cẩn thận với các lệnh xóa và sửa, nếu không
có điều kiện ở WHERE nghĩa là xóa hoặc sửa tất cả.
Ví dụ: Tăng giá 10% đối với những sản phẩm do
“Trung Quoc” sản xuất
UPDATE SANPHAM
SET Gia = Gia*1.1
WHERE Nuocsx=„Trung Quoc‟
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
133
4.3 Xóa dữ liệu
Cú pháp
DELETE FROM tên_bảng [WHERE điều_kiện]
Ví dụ:
Xóa toàn bộ nhân viên
DELETE FROM NHANVIEN
Xóa những sản phẩm do Trung Quốc sản xuất có giá thấp
hơn 10000
DELETE FROM SANPHAM
WHERE (Gia <10000) and (Nuocsx=„Trung Quoc‟)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
134
5. Ngôn ngữ truy vấn dữ liệu có
cấu trúc
5.1 Câu truy vấn tổng quát
5.2 Truy vấn đơn giản
5.3 Phép kết
5.4 Đặt bí danh, sử dụng *, distinct
5.5 Các toán tử
5.6 Câu truy vấn con (subquery)
5.7 Phép chia
5.8 Hàm tính toán, gom nhóm
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
135
5.1Câu truy vấn tổng quát
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
136
5.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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
137
5.2 Truy vấn đơn giản(2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
138
5.3 Phép kết(1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
139
5.3 Phép kết (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
140
5.4 Đặt bí danh, sử dụng *, distinct
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
142
5.5 Toán tử truy vấn(2)
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)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
145
5.6 Câu truy vấn con (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
146
5.7 Phép chia
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
148
NHANVIEN
MANV HOTEN PHAI MANQL PHONG LUONG
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
151
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
152
5.8 Các hàm tính toán và gom
nhóm (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
153
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
154
5.8 Các hàm tính toán và gom
nhóm (3)
5.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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
155
Bài 6: Ngôn ngữ tân từ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
156
Nội dung
1. Giới thiệu
2. Cú pháp
3. Các định nghĩa
4. Diễn giải của một công thức
5. Quy tắc lượng giá công thức
6. Ngôn ngữ tân từ có biến là n bộ
7. Ngôn ngữ tân từ có biến là miền giá trị
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
157
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ị
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
158
2. Cú pháp
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
160
3. Các định nghĩa (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
161
3. Các định nghĩa (3)
Đị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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
162
3. Các định nghĩa (4)
Đị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ừ ,
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
163
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
164
5. Quy tắc lượng giá công thức
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
166
6.1 Quy tắc (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
167
6.1 Quy tắc (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
168
6.2 Định nghĩa
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
169
6.3 Công thức an toàn
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
170
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
171
6.4 Biểu diễn các phép toán (2)
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)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
172
6.4 Biểu diễn các phép toán (3)
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)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
173
7. Ngôn ngữ tân từ có biến là miền giá
trị
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
174
7.1 Quy tắc
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
175
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
176
7.3 Công thức an toàn
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
177
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
178
7.4 Biểu diễn các phép toán (2)
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)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
179
7.4 Biểu diễn các phép toán (3)
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
180
Bài 7: Ràng buộc toàn vẹn
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
181
Nội dung chính
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
182
1. Giới thiệu
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
183
2. Các đặc trưng của một
RBTV
2.1 Nội dung
2.2 Bối cảnh
2.3 Bảng tầm ảnh hưởng
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
184
2.1 Nội dung
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
185
2.2 Bối cảnh
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
186
2.3 Bảng tầm ảnh hưởng (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
187
2.3 Bảng tầm ảnh hưởng (2)
………
Quan hệ n
+ : 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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
189
3. Phân loại
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
190
3.1 RBTV có bối cảnh 1 quan hệ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
191
Lược đồ CSDL quản lý giáo vụ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
192
3.1.1 Ràng buộc miền giá trị
HOCVIEN + - +(Gioitinh)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
193
3.1.2 Ràng buộc liên thuộc tính
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:
HOCVIEN + - -(*)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
195
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ì
gv.Mucluong=gv.Mucluong
Bối cảnh: quan hệ GIAOVIEN
Bảng tầm ảnh hưởng:
R4 Thêm Xóa Sửa
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
196
3.2 RBTV có bối cảnh nhiều quan
hệ
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
197
3.2.1 Ràng buộc tham chiếu (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
198
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: quan hệ KETQUATHI, MONHOC
Bảng tầm ảnh hưởng:
R5 Thêm Xóa Sửa
KETQUATHI + - -(*)
MONHOC - + -(*)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
199
3.2.2 Ràng buộc liên thuộc tính (1)
GIANGDAY + - +(Tungay)
GIAOVIEN - - +(Ngvl)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
200
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
201
3.2.2 Ràng buộc liên thuộc tính (3)
HOCVIEN - - +(Malop)
GIANGDAY - - +(Denngay)
KETQUATHI + - +(Ngthi)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
202
3.2.3 RBTV do thuộc tính tổng hợp (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
203
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
hoá đơn mà khách hàng đó đã mua
Nội dung:
kh KHACHHANG,
kh.Doanhso = (hd HOADON: hd.Makh=kh.Makh)(hd.Trigia)
KHACHHANG + - +(Doanhso)
HOADON + +
Khoa HTTT-Đại học CNTT
+(Makh) 204
CuuDuongThanCong.com https://fb.com/tailieudientucntt
3.2.3 RBTV do thuộc tính tổng hợp (3)
l LOP,
l.Siso = Count(hv HOCVIEN: hv.Malop = lp.Malop)(*)
Bối cảnh: quan hệ LOP, HOCVIEN
Bảng tầm ảnh hưởng:
LOP + - +(Siso)
HOCVIEN + + +(Malop)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
205
3.2.4 Do hiện diện của chu trình (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
206
3.2.4 Do hiện diện của chu trình (2)
Magv
Malop
GIANGDAY
X
GIAOVIEN
Mamh
Hoten Y
Hocvi Tenmh
MONHOC
…
Makhoa
TCLT
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
207
3.2.4 Do hiện diện của chu trình (3)
X = GIANGDAY[Magv, Mamh]
Y = (GIAOVIEN ⋈ MONHOC) [Magv,Mamh]
Makhoa
Ý 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:
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
208
3.2.4 Do hiện diện của chu trình (4)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
209
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
MONHOC - - +(Makhoa)
GIAOVIEN - - +(Makhoa)
GIANGDAY + - +(Magv)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
210
3.3 Phụ thuộc hàm (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
211
3.3 Phụ thuộc hàm (2)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
212
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
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
213
4. Bảng tầm ảnh hưởng tổng hợp (2)
HOCVIEN GIAOVIEN LOP MONHOC GIANGDAY KETQUA
THI
T X S T X S T X S T X S T X S T X S
R1 + - +
R2 + - +
R3 + - -*
R4 + - +
R5 - + -* + - -*
R6 - - + + - +
R7 - - + - - + + - +
R8 + + + + - +
R9 - - + - - + + - +
CuuDuongThanCong.com https://fb.com/tailieudientucntt
214
Bài 8: Tối ưu hóa câu hỏi
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
215
Nội dung
1. Giới thiệu
2. Các nguyên tắc tổng quát để tối ưu hóa câu hỏi
2.1 Biểu thức tương đương
2.1.1 Định nghĩa
2.1.2 Tính chất của phép kết và phép tích
2.2 Nguyên tắc tổng quát
2.3 Các phép biến đổi tương đương
3. Một số kỹ thuật tối ưu hóa câu hỏi bằng ĐSQH
3.1 Kỹ thuật (dãy phép chọn, phép chiếu, hoán vị …)
3.2 Thuật giải tối ưu hoá câu hỏi trong .
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
216
1. Giới thiệu (1)
Mục đích:
Giảm thời gian xử lý câu hỏi, giảm khối lượng
dữ liệu trung gian.
Kết hợp giữa các phép tích, phép kết với phép
chọn với phép chiếu.
Ví dụ:
(( Q 1 Q 2 ) : A a 0 )[ C ]
(( Q 1 : A a 0 ) Q 2 )[ C ]
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
217
1. Giới thiệu (2)
Ký hiệu:
Q Q Q
X A B
D
R
Q=R[X] R
R S
Q=R:D A B
Q=R S
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
218
1. Giới thiệu (3)
Ví dụ
C
C
A A=a0
A=a0 Q2
A
Q1
Q1 Q2
(( Q 1 Q 2 ) : A a 0 )[ C ] (( Q 1 : A a 0 ) Q 2 )[ C ]
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
219
2.1 Tính tương đương (1)
Phép tích dk dk
Giao hoán: Q 1 Q 2 Q 2 Q 1
dk 1 dk 2 dk 1 dk 2
Kết hợp: Q 1 ( Q 2 Q 3 ) ( Q 1 Q 2 ) Q 3
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
220
2.1 Tính tương đương (2)
1 . Q 1 ( A , B ) Q 2 ( B , C ) (Q 1 Q 2 : Q 1[ B ] Q 2 [ B ])
B D
2 . Q 1 ( A , B ) Q 2 ( C , D ) (Q 1 Q2 : B D)
3. Q1 Q2 (( Q1) ( Q 2 ))
5. Q1( A, B ) Q 2 ( A, B ) Q 1[ B ] (( Q 1 [ B ] Q 2[ A] Q 1 ( A , B ))[ B ]
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
221
2.2 Nguyên tắc tổng quát
1. Thực hiện phép chiếu, phép chọn càng sớm càng tốt
2. Gom các phép chọn và chiếu cùng quan hệ để thực
hiện cùng lúc
3. Biến phép tích thành phép kết tự nhiên hay theta kết
4. Tìm các biểu thức con chung trong một biểu thức
5. Tiền xử lý các quan hệ: lập chỉ mục
6. Đánh giá trước khi thực hiên tính toán
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
222
3.1 Các kỹ thuật tối ưu (1)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
223
3.1 Các kỹ thuật tối ưu (2)
Ví dụ: Cho Q ( A, B ,C , D )
( Q [ A , C , D ])[ AD ] Q [ AD ]
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
224
3.1 Các kỹ thuật tối ưu (3)
( Q : dk ( X ))[ Y ] ( Q [ Y ]) : dk ( X )
Nếu X Y
( Q : dk ( X ))[ Y ] (Q [ X Y ]) : dk ( X )
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
225
3.1 Các kỹ thuật tối ưu (4)
(( Q 1 ( X ) : dk 1 ) ( Q 2 ( Y )) : dk 2 ( X Y ))
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
226
3.1 Các kỹ thuật tối ưu (5)
CuuDuongThanCong.com
Khoa HTTT-Đại học CNTT https://fb.com/tailieudientucntt
228