Вы находитесь на странице: 1из 23

Nội!dung!chi!2ết!

!  Giới"thiệu"
!  Đại"số"quan"hệ"
!
CHƯƠNG'4'
!  Phép"toán"tập"hợp"
!  Phép"chọn"
Đại!số!quan!hệ! !  Phép"chiếu"
!  Phép"tích"Cartesian"
!  Phép"kết"
!  Phép"chia"
!  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"

Bài$giảng$môn$Cơ$sở$dữ$liệu$$
©"Bộ"môn"Hệ"Thống"Thông"Tin"/"Khoa"Công"Nghệ"Thông"Tin"/"Trường"Đại"học"Khoa"học"Tự"nhiên""" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 2

Giới!thiệu! Giới!thiệu!(8)!
!  Xét"một"số"xử"lý"trên"quan"hệ"KHOA" !  Có"2"loại"xử"lý:"
-  Thêm"Khoa"‘Hóa"học’"vào"quan"hệ" -  Làm"thay"đổi"dữ"liệu"(cập"nhật):"thêm"mới,"xóa"và"sửa"
-  Chuyển"Khoa"CNTT"sang"phòng"B12" -  Không"làm"thay"đổi"dữ"liệu"(rút"trích):"truy"vấn"

MÃKHOA TÊNKHOA NĂMTL PHÒNG ĐIỆNTHOAI TRƯỞNGKHOA NGÀYNHẬNCHỨC


!  Ngôn"ngữ"truy"vấn"(Query&Language&–&QL):""
-  Cho"phép"người"dùng"rút"trích"hay"cập"nhật"dữ"liệu"được"lưu"trong"
B12
CNTT Công nghệ thông tin 1995 B11 0838123456 002 20/02/2005 một"mô"hình"dữ"liệu"
VL Vật lý 1976 B21 0838223223 005 18/09/2003
!  Ngôn"ngữ"truy"vấn"quan"hệ:"
SH Sinh học 1980 B31 0838454545 004 11/10/2000
-  Đại"số"quan"hệ"(Relational&Algebra)"
HH Hóa học 1980 B41 NULL 007 15/10/2001 "  Biểu"diễn"câu"truy"vấn"dưới"dạng"biểu"thức,"cho"phép"người"dùng"biểu"diễn"các"
bước"thực"hiện"câu"truy"vấn"
-  Cho"biết"tên"các"khoa"được"thành"lập"từ"năm"1980"
-  Phép"tính"quan"hệ"(Relational&Calculus)"
" TÊNKHOA$ "  Biểu"diễn"kết"quả"phi"thủ"tục"dựa"trên"ngôn"ngữ"logic,"cho"phép"người"dùng"diễn"
đạt"cái"họ"cần"hơn"là"thao"tác"xử"lý"nó"
Sinh"học"
Hóa"học"
-  SQL"(Structured&Query&Language)"

3 4
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN"
Đại!số! Đại!số!quan!hệ!
!  Đại"số" !  Biến"là"các"quan"hệ""
-  Toán"tử"(operator)" -  Tập$hợp"(set)"
-  Toán"hạng"(operand)" !  Toán"tử"là"các"phép"toán"(operations)"
-  Trên"tập"hợp"
"  Hội"""∪"(union)"
!  Trong"số"học"
"  Giao"∩"(intersec)"
-  Toán"tử:"+,"/,"*,"/"
"  Trừ""">""(difference)"
-  Toán"hạng"/"biến"(variables):"x,"y,"z" -  Rút"trích"1"phần"của"quan"hệ"
-  Hằng"(constant)" "  Chọn""σ""(selection)"
-  Biểu"thức" "  Chiếu""π""(projection)"
"  (x+7)"/"(y/3)" -  Kết"hợp"các"quan"hệ"
"  (x+y)*z""and/or"(x+7)"/"(y/3)" "  Tích"Cartesian""×""(Cartesian"product)"
"  Kết""""""""(join)"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 5 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 6

Đại!số!quan!hệ!(8)! Đại!số!quan!hệ!(8)!
Phép"toán"đại"số" Phép"toán"đại"số"quan"hệ"
!  Khi"dùng"đại"số"quan"hệ,"một"nhu"cầu"truy"vấn"được"thể" "
hiện"qua"một"biểu"thức"đại"số"quan"hệ:" Toán"hạng" / "Biến":"x,"y,"z,"…" / "Quan"hệ":"NhanVien,"…"
-  Kết"quả"trả"về"là"một$thể$hiện$của"quan"hệ" / "Hằng"số":"150,"…" / "Thể"hiện"của"quan"hệ":"t,"v,"…""
-  Có"thể"là"một"chuỗi"các"phép"toán"đại"số"quan"hệ"
Toán"tử" /"Thao"tác"xử"lý"giữa"các"toán" /"Thao"tác"xử"lý"giữa"các"quan"hệ"
-  Theo"thứ"tự"thực"hiện"của"các"toán"tử,"kết"quả"của"toán"tử" hạng"để"tạo"thành"giá"trị"mới":"+,"/," để"tạo"thành"quan"hệ"mới":"phép&
thực"hiện"trước"là"đầu"vào"cho"toán"tử"thực"hiện"kế"tiếp.""" *,"/,"…" chọn&σ,&hội&∪&,&…"
"
Biểu"thức" / "Chuỗi"các"phép"toán"đại"số" / "Chuỗi"các"phép"toán"đại"số"quan"
/ "Kết"quả"cho"ra"một"giá"trị"mới" hệ"(câu"truy"vấn)"
&&& / "Kết"quả"cho"ra"một"quan"hệ"mới"
&&(x+7)&/&(yE3)&
&&(x+y)*z&&and/or&(x+7)&/&(yE3)& π &
MANV (NHANVIEN)"
" "

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 7 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 8
Nội!dung!chi!2ết! Phép!toán!tập!hợp!
!  Giới"thiệu" !  Quan"hệ"là"tập"hợp"các"bộ"
!  Đại"số"quan"hệ" -  Phép"hội""r"∪"s"
-  Phép"giao""r"∩"s"
!  Phép$toán$tập$hợp"
-  Phép"trừ""r">"s"
!  Phép"chọn"
!  Phép"chiếu" !  Tính"khả"hợp"(Union"Compatibility)"
!  Phép"tích"Cartesian" -  Cho"hai"lược"đồ"quan"hệ"R(A1,"A2,"…,"An)"và"S(B1,"B2,"…,"Bn),"
!  Phép"kết" r(R),"s(S)."Hai"quan"hệ"r"và"s"là"khả"hợp"nếu"
"  R"và"S"có"cùng"bậc"n"
!  Phép"chia"
"  Và"có"DOM(Ai)=DOM(Bi)","1≤"i"≤"n"
!  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ" !  Kết"quả"phép"toán"∪,"∩,"hoặc">"của"r"và"s"là"một"quan$hệ$có"
các"thuộc"tính"cùng"tên"với"các"thuộc"tính"của"quan"hệ"r."

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 9 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 10

Phép!toán!tập!hợp!(8)! Phép!hội!
!  Ví"dụ"hai"quan"hệ"khả"hợp" !  Cho"2"quan"hệ"r"và"s"khả"hợp"
!  Phép"hội"của"r"và"s"
SINHVIEN TENSV NGSINH PHAI GIAOVIEN TENGV NG_SINH GIOITINH -  Ký"hiệu"r"∪"s"
Tung 12/08/1955 Nam Trinh 04/05/1986 Nu -  Là"một"quan"hệ"gồm"các"bộ"thuộc"r"hoặc"thuộc"s,"hoặc"cả"hai"
Hang 07/19/1968 Nu Khang 10/25/1983 Nam
(các"bộ"trùng"lắp"sẽ"bị"loại"bỏ)"
Nhu 06/20/1951 Nu Phuong 05/03/1958 Nu
Hung 09/15/1962 Nam Minh 02/28/1942 Nam
r ∪ s = { t / t∈r ∨ t∈s }
Chau 12/30/1988 Nu !  Ví"dụ"
r A B s A B r∪s A B
Bậc n=3
DOM(TENSV) = DOM(TENGV) α 1 α 2 α 1

DOM(NGSINH) = DOM(NG_SINH) α 2 β 3 α 2
DOM(PHAI) = DOM(GIOITINH) β 1 β 1
α 2
β 3

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 11 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 12
Phép!hội!(8)! Phép!giao!
SinhVien' GiaoVien' !  Cho"2"quan"hệ"r"và"s"khả"hợp"
HOTEN' DIACHI' HOTEN' DIACHI'
Đinh Bá Tiến
Nguyễn Thanh Tùng
119 Cống Quỳnh, Tp HCM
222 Nguyễn Văn Cừ, Tp HCM
Đinh Bá Tiến
Trần Thanh Tâm
119 Cống Quỳnh, Tp HCM
553 Mai Thị Lựu, Tp HCM
!  Phép"giao"của"r"và"s"
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM -  Ký"hiệu"r"∩"s"
-  Là"một"quan"hệ"gồm"các"bộ"thuộc"r"đồng"thời"thuộc"s"
SinhVien'∪!GiaoVien''
HOTEN' DIACHI' r ∩ s = { t / t∈r ∧ t∈s }
Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM !  Ví"dụ"
Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM
Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM
r A B s A B r∩s A B

α 1 α 2 α 2
α 2 β 3
β 1

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 13 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 14

Phép!giao!(8)! Phép!trừ!
SinhVien' GiaoVien' !  Cho"2"quan"hệ"r"và"s"khả"hợp"
HOTEN' DIACHI' HOTEN' DIACHI'
Đinh Bá Tiến
Nguyễn Thanh Tùng
119 Cống Quỳnh, Tp HCM
222 Nguyễn Văn Cừ, Tp HCM
Đinh Bá Tiến
Trần Thanh Tâm
119 Cống Quỳnh, Tp HCM
553 Mai Thị Lựu, Tp HCM
!  Phép"giao"của"r"và"s"
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM -  Ký"hiệu"r"/"s"
-  Là"một"quan"hệ"gồm"các"bộ"thuộc"R"và"không"thuộc"S"
SinhVien'∩$GiaoVien''
HOTEN' DIACHI' r - s = { t / t∈r ∧ t∉s }
Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM !  Ví"dụ"

r A B s A B r-s A B

α 1 α 2 α 1
α 2 β 3 β 1
β 1

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 15 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 16
Phép!trừ!(8)! Các!Enh!chất!
SinhVien' GiaoVien' !  Giao"hoán"
HOTEN' DIACHI' HOTEN' DIACHI'
Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM Đinh Bá Tiến 119 Cống Quỳnh, Tp HCM
Nguyễn Thanh Tùng
Lê Quỳnh Như
222 Nguyễn Văn Cừ, Tp HCM
291 Hồ Văn Huê, Tp HCM
Trần Thanh Tâm 553 Mai Thị Lựu, Tp HCM
r∪s=s∪r
r∩s=s∩r
SinhVien'–!GiaoVien''
HOTEN' DIACHI'
Nguyễn Thanh Tùng 222 Nguyễn Văn Cừ, Tp HCM
Lê Quỳnh Như 291 Hồ Văn Huê, Tp HCM
!  Kết"hợp"

r ∪ (s ∪ t) = (r ∪ s) ∪ t
r ∩ (s ∩ t) = (r ∩ s) ∩ t

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 17 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 18

Các!Enh!chất! Nội!dung!chi!2ết!
!  Giao"hoán" !  Giới"thiệu"
!  Đại"số"quan"hệ"
r∪s=s∪r
!  Phép"toán"tập"hợp"
r∩s=s∩r
!  Phép$chọn$
!  Phép"chiếu"
!  Kết"hợp" !  Phép"tích"Cartesian"
!  Phép"kết"
r ∪ (s ∪ t) = (r ∪ s) ∪ t !  Phép"chia"
r ∩ (s ∩ t) = (r ∩ s) ∩ t !  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 19 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 20
Phép!chọn! Phép!chọn!(8)!
!  Được"dùng"để"lấy"ra"các"bộ"của"quan"hệ"r"thỏa"mãn"điều" !  Kết"quả"trả"về"là"một"quan"hệ""
kiện"chọn"P" -  Có"cùng"danh"sách"thuộc"tính"với"r"
!  Ký"hiệu" -  Có"số"bộ"luôn"ít"hơn"hoặc"bằng"số"bộ"của"r"

σ P (r) !  Ví"dụ"
!  P"là"biểu"thức"gồm"các"mệnh"đề"có"dạng" σ (A=B)∧(D>5) (r)
-  <tên"thuộc"tính>"<phép"so"sánh>"<hằng"số>"
-  <tên"thuộc"tính>"<phép"so"sánh>"<tên"thuộc"tính>" r A B C D A B C D

α α 1 7 α α 1 7
α β 5 7 β β 23 10
"  <phép"so"sánh>"gồm"<",">","≤","≥","≠","=$ β β 12 3
"  Các"mệnh"đề"được"nối"lại"nhờ"các"phép"∧","∨","¬$ β β 23 10

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 21 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 22

Phép!chọn!(8)! Nội!dung!chi!2ết!
!  Phép"chọn"có"tính"giao"hoán" !  Giới"thiệu"
!  Đại"số"quan"hệ"
σ (σp1 p2 (r)) = σ (σp2 p1 (r)) = σ p1 ∧ p2 (r) !  Phép"toán"tập"hợp"
!  Phép"chọn"
!  Phép$chiếu$
!  Phép"tích"Cartesian"
!  Phép"kết"
!  Phép"chia"
!  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 23 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 24
Phép!chiếu! Phép!chiếu!(8)!
!  Được"dùng"để"lấy"ra"một"vài"cột"của"quan"hệ"r" !  Phép"chiếu"không"có"tính"giao"hoán"
!  Ký"hiệu"
π A1, A2, …, Ak(r)

!  Kết"quả"trả"về"là"một"quan"hệ"" π X,Y (r) = π (π


X Y (r))
-  Có"k"thuộc"tính"
-  Có"số"bộ"luôn"ít$hơn"hoặc"bằng"số"bộ"của"r"
!  Ví"dụ" π A1, A2, …, An( π
A1, A2, …, Am(r)) = π A1, A2, …, An (r) , với n ≤ m
π
A,C (r)
r A B C πA,C (r) A C

α 10 1 α 1

α 20 1 β 1

β 30 1 β 2

β 40 2

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 25 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 26

Phép!chọn!vs.!Phép!chiếu! Ví!dụ!1!
A1,"A2,"A3"…,"An"
A1,"A2,"A3"…,"An"
!  Cho"biết"họ"tên"và"mức"lương"của"các"giáo"viên"nữ"
Phép chọn
σ
i j, i>=j
...."
...."

π HOTEN, LUONG ( σ PHAI=‘Nữ’ (GIAOVIEN))


A1,"A2,"A3"…,"An"

A1,"A2,"A3"…,"Am"

π
...."

...."

Phép chiếu

n m, n>=m

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 27 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 28
Ví!dụ!2! Ví!dụ!3!
!  Cho"biết"mã"số"các"giáo"viên"thuộc"bộ"môn"HTTT"hoặc"có" !  Cho"biết"mã"số"các"trưởng"khoa"có"chủ"nhiệm"đề"tài"
tham"gia"đề"tài"mã"001"

π TRUONGKHOA(KHOA) ∩ π GVCNĐT (ĐETAI)


π
MAGV ( σ MABM=‘HTTT’ (GIAOVIEN)) ∪ π
MAGV ( σ MAĐT=‘001’ (TG_ĐETAI))

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 29 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 30

Ví!dụ!4! Phép!chiếu!tổng!quát!
!  Cho"biết"tên"các"công"việc"bắt"đầu"trong"khoảng"từ" !  Mở"rộng"phép"chiếu"bằng"cách"cho"phép"sử"dụng"các"phép"
01/01/2007"đến"01/08/2007" toán"số"học"trong"danh"sách"thuộc"tính"

!  Ký"hiệu""πF1,"F2,"…,"Fn"(E)"
σ (NGAYBĐ>=‘1/1/2007’ ∧ NGAYBĐ<=‘1/8/2007’) (CONGVIEC) -  E"là"biểu"thức"ĐSQH"
-  F1,"F2,"…,"Fn"là"các"biểu"thức"số"học"liên"quan"đến"
"  Hằng"số"
"  Thuộc"tính"trong"E"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 31 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 32
Phép!chiếu!tổng!quát! Chuỗi!các!phép!toán!
!  Ví"dụ" !  Kết"hợp"các"phép"toán"đại"số"quan"hệ"
-  Cho"biết"họ"tên"của"các"giáo"viên"và"lương"của"họ"sau"khi"tăng"10%" -  Lồng"các"biểu"thức"lại"với"nhau"

π A1, A2, …, Ak ( σ P (r)) σ (π


P A1, A2, …, Ak (r))

π HOTEN, LUONG*1.1 (GIAOVIEN) -  Thực"hiện"từng"phép"toán"một"


"  B1"
σ(r) P

"  B2" π A1, A2, …, Ak (Quan hệ kết quả ở B1)

Cần đặt tên cho quan hệ

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 33 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 34

Phép!gán! Phép!đổi!tên!
!  Được"sử"dụng"để"nhận"lấy"kết"quả"trả"về"của"một"phép"toán" !  Được"dùng"để"đổi"tên""
-  Thường"là"kết"quả"trung"gian"trong"chuỗi"các"phép"toán"" -  Quan"hệ"
!  Ký"hiệu""←" Xét quan hệ r(B, C, D)
ρs(r) : Đổi tên quan hệ r thành s
!  Ví"dụ"
-  B1" -  Thuộc"tính"

-  B2"
s← σ P (r)
ρX, C, D (r) : Đổi tên thuộc tính B thành X

-  Quan"hệ"lẫn"thuộc"tính"
KQ ← π A1, A2, …, Ak (s)

ρs(X,C,D)(r) : đổi tên quan hệ r thành s và thuộc tính B thành X

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 35 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 36
Ví!dụ!5! Nội!dung!chi!2ết!
!  Cho"biết"mã"số"và"họ"tên"giáo"viên"thuộc"bộ"môn"HTTT" !  Giới"thiệu"
!  Đại"số"quan"hệ"
!  Phép"toán"tập"hợp"
!  C1:" π MAGV, HOTEN ( σ MABM=‘HTTT’ (GIAOVIEN))
!  Phép"chọn"
!  Phép"chiếu"
!  C2:" GV_HTTT ← σMABM=‘HTTT’ (GIAOVIEN) !  Phép"tích"Cartesian"
KQ ← πMAGV, HOTEN (GV_HTTT) !  Phép"kết"
!  Phép"chia"
KQ(MA, TEN) ← π MAGV, HOTEN (GV_HTTT) !  Các"phép"toán"khác"
ρKQ(MA, TEN) (πMAGV, HOTEN (GV_HTTT)) !  Các"thao"tác"cập"nhật"trên"quan"hệ"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 37 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 38

Phép!Ech!Cartesian! Phép!Ech!Cartesian!(8)!
!  Được"dùng"để"kết"hợp"các"bộ"của"các"quan"hệ"lại"với"nhau" !  Ví"dụ" unambiguous
!  Ký"hiệu"
r A B
r×s r×s A R.B X
S.B C D
α 1
!  Kết"quả"trả"về"là"một"quan"hệ"q" β 2 α 1 α 10 +
α 1 β 10 +
-  Mỗi"bộ"của"q"là"tổ"hợp"giữa"1"bộ"trong"r"và"1"bộ"trong"s" α 1 β 20 -
-  Nếu"r"có"u"bộ"và"s"có"v"bộ"thì"q"sẽ"có"u"×"v"bộ" S B
X C D α 1 γ 10 -

-  Nếu"r"có"n"thuộc"tính"và"s"có"m"thuộc"tính"thì"q"sẽ"có"n"+"m" α 10 +
β 2 α 10 +

thuộc"tính"(R+"∩"S+""=$∅")" β 10 +
β 2 β 10 +
β 2 β 20 -
β 20 -
β 2 γ 10 -
γ 10 -

ρ(X,C,D) (s)

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 39 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 40
Phép!Ech!Cartesian!(8)! Ví!dụ!6!
!  Cho"biết"thông"tin"của"bộ"môn"cùng"thông"tin"giảng"viên"
!  Thông"thường"theo"sau"phép"tích"Cartesian"là"phép"chọn" làm"trưởng"bộ"môn"đó"

TENBM MABM TRUONGBM NGAYNHANCHUC …


r×s σ A=S.B (r × s) Hệ thống thông tin HTTT 002 20/09/2004
Công nghệ tri thức CNTT
A R.B S.B C D A R.B S.B C D Mạng máy tính MMT 001 15/05/2005
α 1 α 10 + α 1 α 10 +
α 1 β 10 + β 2 β 10 +
α 1 β 20 - β 2 β 20 -
MAGV HOTEN NGSINH MABM PHAI LUONG ….
α 1 γ 10 -
β 2 α 10 + 001 Nguyễn Hoài An 15/02/1973 MMT Nam 2000

β 2 β 10 + 002 Trần Trà Dương 20/06/1960 HTTT Nu 2500

β 2 β 20 - 003 Nguyễn Ngọc Anh 11/05/1975 HTTT Nu 2200

β 2 γ 10 - 004 Trương Nam Sơn 20/06/1959 VS Nam 2300

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 41 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 42

Ví!dụ!6!(8)! Ví!dụ!6!(8)!
!  B1:"Tích"Cartesian"BOMON"và"GIAOVIEN"
TENBM MABM TRUONGBM NGAYNHANCHUC GV HOTEN … BM_GV ← (GIÁOVIÊN × BỘMÔN)
Hệ thống thông tin HTTT 002 20/09/2004 002 Trần Trà Dương

Mạng máy tính MMT 001 15/05/2005 001 Trương Nam Sơn !  B2:"Chọn"ra"những"bộ"thỏa"TRUONGBM"="MAGV"

KQ ← σ TRUONGBM=MAGV(BM_GV)

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 43 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 44
Ví!dụ!7!
GIÁOVIÊN MÃGV HỌTÊN …. NGÀYSINH SỐNHÀ ….
001 Nguyễn Hoài An …. 15/02/1973 25/3 …. !  Cho"biết"mức"lương"cao"nhất"của"các"giảng"viên"
002 Trần Trà Hương …. 20/06/1960 125 ….
003 Nguyễn Ngọc Ánh …. 11/05/1975 12/21 ….
…. …. …. …. …. ….

BỘMÔN MÃBM TÊNBM PHÒNG …. TRƯỞNGBM ….


HTTT Hệ thống thông tin B13 …. 002 …. HOTEN … LUONG … … LUONG …

CNTT Công nghệ tri thức B15 …. …. Nguyễn Hoài An … 2000 … … 2000 …
MMT Mạng máy tính B16 …. 001 …. Trần Trà Hương … 2500 … … 2500 …
…. …. …. …. …. …. Nguyễn Ngọc Anh … 2200 … … 2200 …
… … … …
(BM_GV)
GIÁOVIÊN x BỘMÔN
σTRUONGBM=MAGV
MÃGV HỌTÊN …. NGÀYSINH …. MÃBM TÊNBM PHÒNG …. TRƯỞNGBM ….

001 Nguyễn Hoài An …. 15/02/1973 …. HTTT Hệ thống thông tin B13 …. 002 ….
001 Nguyễn Hoài An …. 15/02/1973 …. CNTT Công nghệ tri thức B15 …. ….
001 Nguyễn Hoài An …. 15/02/1973 …. MMT Mạng máy tính B16 …. 001 ….
45
…. …. …. …. …. …. …. …. …. …. ….
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 46

Ví!dụ!7!(8)! Ví!dụ!8!
!  B1:"Chọn"ra"những"lương"không"phải"là"lớn"nhất" !  Cho"biết"họ"tên"các"giáo"viên"cùng"bộ"môn"với"giáo"viên"
‘Trần"Trà"Hương’"
π
r1 ← ( LUONG (GIAOVIEN)) -  Quan"hệ:"GIAOVIEN"
-  Thuộc"tính:"HOTEN,"MABM"
r2 ← σ GIAOVIEN.LUONG < R1.LUONG(GIAOVIEN × r1)
-  Điều"kiện:"HOTEN"="‘Trần"Trà"Hương’"
r3 ← π R2.LUONG (r2)
Giáo viên “Trần Trà Hương” ở bộ môn nào? Những giáo viên nào thuộc về bộ môn đó?

!  B2:"Lấy"tập"hợp"lương"trừ"đi"lương"trong"r3" MABM HOTEN MABM HOTEN

MMT Nguyễn Hoài An MMT Nguyễn Hoài An

KQ ← π LUONG (GIAOVIEN) - r3
HTTT
HTTT
Trần Trà Hương
Nguyễn Ngọc Anh
HTTT
HTTT
Trần Trà Hương
Nguyễn Ngọc Anh
VS Trương Nam Sơn VS Trương Nam Sơn
… … … …

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 47 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 48
Ví!dụ!8!(8)! Ví!dụ!9!
!  Tìm"các"đề"tài"thuộc"chủ"đề"‘Quản"lý"giáo"dục’"
!  B1:"Tìm"bộ"môn"mà"giáo"viên"‘Trần"Trà"Hương’"thuộc"về"
-  Quan"hệ:"CHUĐE,"ĐETAI"
-  Thuộc"tính:"TENCĐ,"MACĐ"
r1 ← π MABM,MAGV ( σ HOTEN=‘Trần Trà Hương’ (GIAOVIEN))
-  Điều"kiện:"TENCĐ"="‘Quản"lý"giáo"dục’"
MACĐ TENCĐ
!  B2:"Lấy"ra"họ"tên"các"giáo"viên"cùng"bộ"môn" QLGD Quản lý giáo dục
NCPT Nghiên cứu phát triển
ƯDCN Ứng dụng công nghệ
… …

r2 ← σ HOTEN <>’Trần Trà Hương’ (GIAOVIEN) MAĐT TENĐT MACĐ …

r3 ← σ R1.MABM=R2.MABM (r1 × r2) 001 HTTT quản lý các trường ĐH QLGD …


002 HTTT quản lý giáo vụ cho một Khoa GLGD …

KQ ← π HOTEN (r3)
003 Nghiên cứu chế tạo sợi Nanô Platin NCPT …
… … … …

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 49 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 50

Nội!dung!chi!2ết! Phép!kết!
!  Giới"thiệu"
!  Đại"số"quan"hệ" !  Được"dùng"để"truy"xuất"dữ"liệu"từ"hai"quan"hệ"
!  Phép"toán"tập"hợp" !  Ký"hiệu"r""""""s"
!  Phép"chọn" -  R(A1,"A2,"…,"An)"và"S(B1,"B2,"…,"Bm)"
!  Phép"chiếu" !  Kết"quả"của"phép"kết"là"một"quan"hệ"q"
-  Có"n"+"m"thuộc"tính"Q(A1,"A2,"…,"An,"B1,"B2,"…,"Bm)"
!  Phép"tích"Cartesian"
-  Mỗi"bộ"của"q"là"tổ"hợp"của"1"bộ"trong"r"và"1"bộ"trong"s,"thỏa"mãn"
!  Phép$kết$ một"số"điều"kiện"kết"nào"đó"
-  Kết"tự"nhiên"(Natural"join)" "  Có"dạng"Ai"θ"Bj"
-  Kết"có"điều"kiện"tổng"quát"(Theta"join)" "  Ai"là"thuộc"tính"của"R,"Bj"là"thuộc"tính"của"S""
-  Kết"bằng"(Equi"join)" "  Ai"và"Bj"có"cùng"miền"giá"trị"
!  Phép"chia" "  θ"là"phép"so"sánh"≠,"=,"<,">,"≤,"≥$
!  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 51 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 52
Phép!kết!(8)! Phép!kết!(8)!
!  Phân"loại" !  Ví"dụ"phép"kết"theta"
-  Kết"theta"(theta"join)"là"phép"kết"có"điều"kiện""
"  Ký"hiệu"r""""""C"s" r s
B<D
"  C"gọi"là"điều"kiện"kết"trên"thuộc"tính"
r A B C s D E A B C D E

1 2 3 3 1 1 2 3 3 1
-  Kết"bằng"(equi"join)"khi"C"là"điều"kiện"so"sánh"bằng" 4 5 6 6 2 1 2 3 6 2
7 8 9 4 5 6 6 2

-  Kết"tự"nhiên"(natural"join):"khi"hai"thuộc"tính"trong"điều"kiện"
kết"bằng"C"có"tên"giống"nhau."
"  Ký"hiệu""r"""""""s"""hay"""r"*"s"
"  R+"∩"S+"≠$∅$
r C s = σC(r × s)
"  Quan"hệ"kết"quả"của"phép"kết"bằng"có"tập"thuộc"tính"là"hội"
tập"thuộc"tính"của"r"và"s"bỏ"bớt"đi"1"thuộc"tính"giống"nhau"
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 53 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 54

Phép!kết!(8)! Phép!kết!(8)!
!  Ví"dụ"phép"kết"bằng" !  Ví"dụ"phép"kết"tự"nhiên"
r C=D s
r A B C s D E A B C D E
r s
1 2 3 3 1 1 2 3 3 1 r A B C s C D AA BB C C S.D D
C
4 5 6 6 2 4 5 6 6 2 1 2 3 3 1 11 22 33 31 1
7 8 9 4 5 6 6 2 44 55 66 62 2
7 8 9

r C=s.C s
r A B C S S.C
C D A B C s.C D

1 2 3 3 1 1 2 3 3 1
4 5 6 6 2 4 5 6 6 2
7 8 9
ρ(S.C,D) s
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 55 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 56
Ví!dụ!10! Ví!dụ!11!
!  Cho"biết"giáo"viên"có"lương"lớn"hơn"lương"của"giáo"viên" !  Với"mỗi"giáo"viên,"hãy"cho"biết"thông"tin"của"bộ"môn"mà"họ"
‘Nguyễn"Hoài"An’" đang"làm"việc"
-  Quan"hệ:"GIAOVIEN$ -  Quan"hệ:"GIAOVIEN,"BOMON$
-  Thuộc"tính:"LUONG$
GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, …, MABM, …)
GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, NGAYSINH, BOMON(MABM, TENBM, PHONG, DIENTHOAI, …)
…)
R1(LG) ← π LUONG ( σ HOTEN=‘Nguyễn Hoài An’ (GIAOVIEN))
KQ ← GIAOVIEN BOMON
KQ ← GIAOVIEN LUONG>LG R1
KQ(MAGV, HOTEN, …, MABM, TENBM, PHONG, …))
KQ(MAGV, HOTEN, LUONG, PHAI, NGAYSINH,…, LG))

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 57 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 58

Ví!dụ!12! Ví!dụ!13!
!  Với"mỗi"đề"tài,"cho"biết"thông"tin"giáo"viên"chủ"nhiệm"đề"tài" !  Với"mỗi"khoa"cho"biết"thông"tin"trưởng"khoa"
đó"
-  Quan"hệ:"ĐETAI,"GIAOVIEN$

ĐETAI(MAĐT, TENĐT, KINHPHI, …, GVCNĐT)


GIAOVIEN(MAGV, HOTEN, LUONG, PHAI, …)

KQ ← ĐETAI GVCNĐT = MAGV GIAOVIEN

KQ(MAĐT, TENĐT, KINHPHI, …, GVCNĐT, MAGV, HOTEN, …)

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 59 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 60
Ví!dụ!14! Ví!dụ!15!
!  Cho"biết"lương"cao"nhất"trong"bộ"môn"‘HTTT’" !  Cho"biết"giáo"viên"làm"việc"cùng"bộ"môn"với"giáo"viên"002"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 61 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 62

Ví!dụ!16! Tập!đầy!đủ!các!phép!toán!ĐSQH!
!  Cho"biết"các"giáo"viên"của"bộ"môn"‘Vi"sinh’"có"tham"gia"đề" !  Tập"các"phép"toán"σ,"π,"×,">,"∪"được"gọi"là"tập"đầy"đủ"các"
tài"006" phép"toán"ĐSQH"
-  Nghĩa"là"các"phép"toán"có"thể"được"biểu"diễn"qua"chúng"
-  Ví"dụ"
"  r"∩$s"="r"∪$s">"((r>s)"∪$(s>r))"

σC(r×s)"
"  r""""""C"s"="

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 63 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 64
Nội!dung!chi!2ết! Phép!chia!
!  Giới"thiệu" !  Được"dùng"để"lấy"ra"một"số"bộ"trong"quan"hệ"r"sao"cho"
!  Đại"số"quan"hệ" thỏa"với"tất"cả"các"bộ"trong"quan"hệ"s"
!  Phép"toán"tập"hợp" !  Ký"hiệu"r"÷"s"
!  Phép"chọn" -  r(Z)"và"x(X)"
"  Z"là"tập"thuộc"tính"của"r,"X"là"tập"thuộc"tính"của"s"
!  Phép"chiếu"
"  X"⊆"Z"
!  Phép"tích"Cartesian"
!  Phép"kết"
!  Kết"quả"của"phép"chia"là"một"quan"hệ"t(Y)""
-  Với"Y=Z/X"
!  Phép$chia$
-  Có"t0"là"một"bộ"của"t"nếu"với"mọi"bộ"tS∈S,"tồn"tại"bộ"tR∈R"
!  Các"phép"toán"khác" thỏa"2"điều"kiện"
!  Các"thao"tác"cập"nhật"trên"quan"hệ" "  tR(Y)"="t0" R(Z) S(X) T(Y)
"  tR(X)"="tS(X)" X Y

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 65 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 66

Phép!chia!(8)! Ví!dụ!17!
!  Ví"dụ" !  Cho"biết"mã"giáo"viên"tham"gia"tất"cả"công"việc"thuộc"đề"tài"
r÷s 001"
r A B C D E s D E A B C

α a α a 1 a 1 α a γ
α a γ a 1 b 1 γ a γ
α a γ b 1
β a γ a 1
β a γ b 3
γ a γ a 1
γ a γ b 1
γ a β b 1

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 67 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 68
Ví!dụ!18! Phép!chia!(8)!
!  Cho"biết"tên"đề"tài"có"tất"cả"giảng"viên"bộ"môn"‘Hệ"thống" !  Biểu"diễn"phép"chia"thông"qua"tập"đầy"đủ"các"phép"toán"
thông"tin’"tham"gia" ĐSQH"

Q1 ← π Y (r)

Q2 ← Q1 × s
Q3 ← π (Q2 - r)
Y

KQ ← Q1 - Q3

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 69 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 70

Nội!dung!chi!2ết! Hàm!kết!hợp!
!  Giới"thiệu"
!  Đại"số"quan"hệ" !  Nhận"vào"tập"hợp"các"giá"trị"
!  Phép"toán"tập"hợp" !  Trả"về"một"giá"trị"đơn"
!  Phép"chọn" !  Gồm"
!  Phép"chiếu" -  AVG"
!  Phép"tích"Cartesian" -  MIN"
!  Phép"kết" -  MAX"
!  Phép$chia" -  SUM"
!  Các$phép$toán$khác$ -  COUNT"
-  Hàm"kết"hợp"(Aggregation"function)"
-  Phép"gom"nhóm"(Grouping)"
-  Phép"kết"ngoài"(Outer"join)"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"
©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 71 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 72
Hàm!kết!hợp!(8)! Phép!gom!nhóm!
!  Ví"dụ" !  Được"dùng"để"phân"chia"quan"hệ"thành"nhiều"nhóm"dựa"trên"
điều"kiện"gom"nhóm"nào"đó"
SUM(B) = 10 !  Ký"hiệu"
r A B
AVG(A) = 1.5 G1, G2, …, Gn ℑF1(A1), F2(A2), …, Fn(An)(E)
1 2 MIN(A) = 1 -  E"là"biểu"thức"ĐSQH"
3 4
MAX(B) = 4
1 2 -  G1,"G2,"…,"Gn"là"các"thuộc"tính"gom"nhóm"
COUNT(A) = 4
1 2 -  F1,"F2,"…,"Fn"là"các"hàm"
-  A1,"A2,"…,"An"là"các"thuộc"tính"tính"toán"trong"hàm"F"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 73 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 74

Phép!gom!nhóm!(8)! Ví!dụ!19!
!  Ví"dụ !  Cho"biết"số"lượng"giáo"viên"viên"và"tổng"lương"của"họ"

ℑSUM(C)(r)
SUM_C
r A B C
27
α 2 7
α 4 7
β 2 3
γ 2 10 A ℑSUM(C)(r)
A SUM_C

α 14
β 3
γ 10

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 75 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 76
Ví!dụ!20! Ví!dụ!21!
!  Cho"biết"số"lượng"giáo"viên"và"lương"trung"bình"của"từng"bộ" !  Cho"biết"tên"khoa"có"đông"giáo"viên"nhất"
môn"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 77 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 78

Ví!dụ!22! Ví!dụ!23!
!  Cho"biết"họ"tên"giáo"viên"chủ"nhiệm"nhiều"đề"tài"nhất" !  Cho"biết"tên"chủ"đề"và"số"lượng"đề"tài"thuộc"về"chủ"đề"đó"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 79 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 80
Phép!kết!ngoài! Ví!dụ!24!g!a!
!  Mở"rộng"phép"kết"để"tránh"mất"mát"thông"tin" !  Cho"biết"họ"tên"giáo"viên"và"tên"bộ"môn"họ"làm"trưởng"bộ"
-  Thực"hiện"phép"kết" môn"nếu"có"
-  Lấy"thêm"các"bộ"không"thỏa"điều"kiện"kết"

R1 ← GIAOVIEN BOMON
!  Có"3"hình"thức" MAGV=TRUONGBM

-  Mở"rộng"bên"trái"" KQ ← π HOTEN, TENBM (R1)


-  Mở"rộng"bên"phải""
HOTEN TENBM
-  Mở"rộng"2"bên""
Nguyễn Hoài An Mạng máy tính
Trần Trà Hương Hệ thống thông tin
Nguyễn Ngọc Ánh null
… …

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 81 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 82

Ví!dụ!24!g!b! Ví!dụ!24!g!c!
!  Cho"danh"sách"tên"bộ"môn"và"họ"tên"trưởng"bộ"môn"đó"nếu" !  Cho"danh"sách"tên"giáo"viên"và"các"đề"tài"giáo"viên"đó"chủ"
có." nhiệm"nếu"có"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 83 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 84
Nội!dung!chi!2ết! Các!thao!tác!cập!nhật!
!  Giới"thiệu" !  Nội"dung"của"CSDL"có"thể"được"cập"nhật"bằng"các"thao"tác"
!  Đại"số"quan"hệ" -  Thêm"(insertion)"
!  Phép"toán"tập"hợp" -  Xóa"(deletion)"
!  Phép"chọn" -  Sửa"(updating)"
!  Phép"chiếu" !  Các"thao"tác"cập"nhật"được"diễn"đạt"thông"qua"phép"toán"
gán"
!  Phép"tích"Cartesian"
!  Phép"kết"
!  Phép$chia"
rnew ← các phép toán trên rold
!  Các"phép"toán"khác"
!  Các"thao"tác"cập"nhật"trên"quan"hệ"

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 85 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 86

Thao!tác!thêm! Thao!tác!xóa!
!  Được"diễn"đạt"" !  Được"diễn"đạt""
rnew ← rold ∪ E rnew ← rold - E

-  r"là"quan"hệ" -  r"là"quan"hệ"
-  E"là"một"biểu"thức"ĐSQH" -  E"là"một"biểu"thức"ĐSQH"

!  Ví"dụ" !  Ví"dụ"
-  Phân"công"giáo"viên"có"mã"001"tham"gia"công"việc"4"của"đề" -  Xóa"phân"công"tham"gia"đề"tài"cho"giáo"viên"001"
tài"số"001"với"mức"phụ"cấp"2"

THAMGIAĐT ← THAMGIAĐT ∪ (‘001’, ‘001’, 4, 2)


THAMGIAĐT ← THAMGIAĐT - σ MAGV=‘001’(THAMGIAĐT)

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 87 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 88
Ví!dụ!25! Thao!tác!sửa!
!  Xóa"các"đề"tài"thuộc"chủ"đề"‘NCPT’" !  Được"diễn"đạt""

rnew ← πF1, F2, …, Fn (rold)


-  r"là"quan"hệ"
-  Fi"là"biểu"thức"tính"toán"cho"ra"giá"trị"mới"của"thuộc"tính"

!  Ví"dụ"
-  Tăng"mức"phụ"cấp"cho"các"đề"tài"của"tất"cả"giáo"viên"lên"1.5"
lần"

THAMGIAĐT ← π MAGV, MAĐT, STT, PHUCAP*1.5(THAMGIAĐT)

©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 89 ©"Bộ môn HTTT - Khoa CNTT - Trường ĐH KHTN" 90

Вам также может понравиться