………… o0o…………
Cơ sở dữ liệu nâng cao
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
3
CHƯƠNG 1
TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ
1.2. Hệ quản trị cơ sở dữ liệu
Phần mềm cho phép một hoặc nhiều người tạo lập, lưu trữ, cập nhật và khai
thác cơ sở dữ liệu gọi là hệ quản trị cơ sở dữ liệu (DataBase Management
Systems - DBMS).
Vai trò chính của hệ quản trị cơ sở dữ liệu là cho phép người dùng thao tác
với dữ liệu thông qua các thuật ngữ trìu tượng, khác với việc máy tính lưu trữ dữ
liệu. Theo nghĩa này hệ quản trị cơ sở dữ liệu có nhiệm vụ như là một bộ thông
dịch (interpreter) với ngôn ngữ bậc cao nhằm giúp người dùng sử dụng hệ thống
mà không cần quan tâm ñến cách biểu diễn dữ liệu trong máy hoặc các thuật toán
chi tiết. Ví dụ người dùng không cần biết hệ quản trị cơ sở dữ liệu Access tổ
chức dữ liệu theo kiểu hàm băm, kiểu file chỉ mục hay kiểu cây cân bằng, và
cũng không cần biết thuật toán thực hiện lệnh sắp xếp là Quick Sort, thuật toán
nổi bọt hay sắp xếp nhị phân
Một cơ sở dữ liệu gồm một hoặc nhiều tập tin ñược thiết kế theo một cấu trúc
nhất ñịnh và có quan hệ chặt chẽ với nhau. Cơ sở dữ liệu ñược dùng chung cho
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
4
nhiều người và nhiều mục ñích khác nhau, vì vậy sẽ tiết kiệm ñược tài nguyên,
giảm thiểu sự trùng lặp thông tin, bảo ñảm tính nhất quán thông tin.
1.3. Các ñặc trưng của phương pháp cơ sở dữ liệu
+ Chia sẻ dữ liệu. Mục ñích chính của cách tiếp cận cơ sở dữ liệu là dữ liệu
ñược chia sẻ bởi nhiều người dùng hợp pháp.
+ Giảm thiểu dư thừa dữ liệu. Dữ liệu dùng chung cho nhiều bộ phận, thay vì
ñược lưu trữ phân tán trùng lặp nay ñược lưu trữ tập trung một chỗ theo một cấu
trúc thống nhất.
dữ liệu. Ví dụ lược ñồ dữ liệu hồ sơ nhân sự gồm các thành phần sau:
Họ tên, ngày sinh, hệ số lương
Các thành phần của lược ñồ dữ liệu gọi là thuộc tính hoặc trường.
Khi sử dụng cơ sở dữ liệu thì ta làm việc với dữ liệu thật sự, ñó là sự thể hiện
dữ liệu. Ví dụ ñối với lược ñồ trên ta có thể có các thể hiện dữ liệu sau:
Nguyễn Văn A, 20/08/1970, 3.40
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
5
Trần Thị B, 15/05/1962, 4.12
Mỗi thể hiện dữ liệu gọi là bộ hay bản ghi.
1.5. Các mức trìu tượng dữ liệu
Giữa máy tính thao tác với các bit, người thiết kế cơ sở dữ liệu và người dùng
có cách nhìn khác nhau ñối với dữ liệu, ñó chính là các mức trìu tượng dữ liệu.
Sơ ñồ chuẩn về các mức trìu tượng như sau:
Nhóm người dùng 1 khung nhìn 1
hơn theo nghĩa dữ liệu của nó ñược suy ra từ cơ sở dữ liệu khái niệm.
d. ðộc lập dữ liệu
ðộc lập dữ liệu dữ liệu giữa các mức trìu tượng có ý nghĩa rất quan trọng ñối
với cơ sở dữ liệu.
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
6
- ðộc lập dữ liệu mức vật lý: Sự thay ñổi lược ñồ dữ liệu vật lý không làm
thay ñổi lược ñồ dữ liệu mức khái niệm và mức khung nhìn.
Ta cần hiểu rằng sự thay ñổi tổ chức vật lý dữ liệu có thể làm ảnh hưởng ñến
hiệu quả chương trình ứng dụng. Sự ñộc lập dữ liệu mức vật lý ñảm bảo không
phải viết lại chương trình chỉ vì lý do thay ñổi cách tổ chức dữ liệu. ý nghĩa của
tính ñộc lập dữ liệu mức vật lý là nó cho phép ta tinh chỉnh cơ sở dữ liệu mức
vật lý ñể tăng hiệu quả sử dụng trong khi các chương trình ứng dụng vẫn chạy
bình thường như không có vấn ñề gì xảy ra.
- ðộc lập dữ liệu lôgic: Sự thay ñổi lược ñồ dữ liệu khái niệm không làm thay
ñổi khung nhìn.
Trong quá trình sử dụng cơ sở dữ liệu có thể ta phải sửa ñổi hiệu chỉnh lược
ñồ khái niệm, chẳng hạn thêm thông tin về thực thể mà cơ sở dữ liệu mô tả.
1.6. Ngôn ngữ dữ liệu
Mỗi hệ quản trị cơ sở dữ liệu cần phải có ngôn ngữ riêng của mình. Có hai loại
ngôn ngữ cơ sở dữ liệu.
a. Ngôn ngữ mô tả dữ liệu (Data Definition Language - DDL). Gồm các lệnh
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
7
2.2. Tích ðề-các
Tích ðề-các của các miền D
1
, D
2
, , D
n
, ký hiệu là
D
1
×
D
2
×
×
D
n
,là tập hợp tất cả
n-b
.D
1
×
D
2
×
×
D
n
= {(
v
1
, v
2
, , v
n
) |
v
1
∈D
1
,
v
2
∈D
2
{(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}
2.3. Quan hệ
Quan h
ệ
là t
ậ
p con c
ủ
a tích
ñề
-các c
ủ
a 1 ho
ặ
c nhi
ề
u mi
ề
n. Quan h
ệ
có th
ể
có
h
ữ
u h
ạ
Ví d
ụ
Cho D
1
= {0,1}, D
2
= {a,b,c}. T
ậ
p
r
= {(0,a),(1,b),(1,c)}
⊂
D
1
×
D
2
, v
ậ
y
r
là
quan h
ệ
trên D
1
và D
2
i ph
ầ
n t
ử
c
ủ
a quan h
ệ
g
ọ
i là
b
ộ
. M
ỗ
i b
ộ
c
ủ
a quan h
ệ
b
ậ
c
n
, còn g
ọ
i là
n-b
ộ
ðể
tr
ự
c quan ta có th
ể
coi quan h
ệ
nh
ư
m
ộ
t
b
ả
ng
trong
ñ
ó m
ỗ
i
hàng
là m
ộ
t b
ộ
và m
ỗ
i
c
i là
c
ơ
s
ở
d
ữ
li
ệ
u quan h
ệ
.
M
ỗ
i c
ộ
t c
ủ
a quan h
ệ
ñượ
c gán m
ộ
t tên g
ọ
i là
thu
ộ
p các l
ượ
c
ñồ
quan h
ệ
c
ủ
a m
ộ
t c
ơ
s
ở
d
ữ
li
ệ
u g
ọ
i là
l
ượ
c
ñồ
c
ơ
s
ở
d
ị
trên giao c
ủ
a c
ộ
t và hàng
ñơ
n tr
ị
, không ch
ấ
p nh
ậ
n nhi
ề
u giá tr
ị
.
-
M
ỗ
i hàng là duy nh
ấ
t
.
Không cho phép hai hàng hoàn toàn gi
ố
ng nhau.
◊
Quan h
ệ
r
v
ớ
i l
ượ
c
ñồ
R = (A
1
, A
2
, , A
n
) có th
ể
vi
ế
t
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
8
r(R) hoặc r(A
1
ủ
a
r
, A
⊂
{A
1
,
A
2
, , A
n
}. Khi
ñ
ó
t
(A) ký hi
ệ
u b
ộ
các thành ph
ầ
n c
ủ
a
t ứ
ng v
ớ
i các thu
ộ
dùng làm c
ơ
s
ở
d
ữ
li
ệ
u m
ẫ
u
ñể
mô hình hoá m
ộ
t công ty. Các
th
ự
c th
ể
ñượ
c mô hình hoá là:
- Các
nhân viên
, ký hi
ệ
u EMP, vi
ế
t t
ắ
ệ
u
ENO
, vi
ế
t t
ắ
t t
ừ
employee number
.
-
Tên nhân viên
, ký hi
ệ
u
ENAME
, vi
ế
t t
ắ
t t
ừ
employee name
.
-
Chức vụ
, ký hi
ừ
project number
.
-
Nhiệm vụ dự án
, ký hi
ệ
u
RESP
, vi
ế
t t
ắ
t t
ừ
responsibility
.
-
Thời gian làm việc trong dự án
, ký hi
ệ
u
DUR
, vi
ế
t t
ắ
t t
Tên dự án
, ký hi
ệ
u
PNAME
, vi
ế
t t
ắ
t t
ừ
project name
.
-
Kinh phí dự án
, ký hi
ệ
u
BUDGET
.
Các l
ượ
c
ñồ
quan h
ệ
(relation scheme) cho c
ơ
ENO, ENAME, TITLE, SAL, PNO,
RESP, DUR
.
Giá tr
ị
c
ủ
a
ENO
l
ấ
y t
ự
mi
ề
n ch
ứ
a các mã s
ố
nhân viên, gi
ả
s
ử
là D
1
, Giá tr
ị
c
ủ
s
ở
d
ữ
li
ệ
u m
ẫ
u c
ủ
a chúng ta g
ồ
m hai b
ả
ng nh
ư
sau:
EMP
ENO
ENAME
TITLE
SAL
E6 L.Chu Elect.Eng. 40000
P4 Manager
48
E7 R.David Mech.Eng. 27000
P3 Engineer 36
E8 J.Jones Syst.Anal. 34000
P3 Manager 40
PROJ
PNO
PNAME
BUDGET
P1 Instrumentation 150000
P2 Database Development 135000
P3 CAD/CAM 250000
ớ
i các b
ộ
hay b
ả
n ghi. Dòng trên cùng bi
ể
u di
ễ
n l
ượ
c
ñồ
quan h
ệ
c
ủ
a b
ả
ng.
M
ộ
t giá tr
ị
c
ủ
a thu
ộ
c tính, ch
nh. Khi
ñ
ó có nhi
ề
u cách
di
ễ
n gi
ả
i khác nhau nh
ư
“ch
ư
a
ñượ
c bi
ế
t” hay “ch
ư
a áp d
ụ
ng
ñượ
c”. “Giá tr
ị
ñặ
c
bi
ệ
ị
zero
(v
ớ
i thu
ộ
c tính ki
ể
u s
ố
) hay giá tr
ị
rỗng
(v
ớ
i thu
ộ
c tính ki
ể
u ký t
ự
).
2.4. Khoá
a) Siêu khoá
Cho l
ủ
a l
ượ
c
ñồ
R n
ế
u các thu
ộ
c tính c
ủ
a S xác
ñị
nh
duy nh
ấ
t các b
ộ
c
ủ
a m
ỗ
i quan h
ệ
c
ủ
a l
ượ
c
ñồ
t
1
≠
t
2
⇒
∃
A
∈
S:
t
1
(A)
≠
t
2
(A)
L
ư
u ý r
ằ
ng theo
ñị
nh ngh
ĩ
a, m
ỗ
i b
ộ
ở
ñể
phân bi
ệ
t 2 b
ộ
khác nhau trong 1 quan h
ệ
. M
ộ
t l
ượ
c
ñồ
có th
ể
có nhi
ề
u siêu khoá. Tính ch
ấ
t c
ủ
a
siêu khoá là quy lu
ậ
t
ñượ
c xác
ườ
ng).
(2) S
⊂
T
⊂
R & S là siêu khoá
⇒
T là siêu khoá.b) Khoá
T
ậ
p K các thu
ộ
c tính c
ủ
a l
ượ
c
ñồ
R là
khoá (key)
n
ế
u K là siêu khoá
c
ự
ñồ
quan h
ệ
luôn có khóa.
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
10
Chứng minh. Mệnh ñề suy ra từ sự tồn tại phần tử cực tiểu trong tập có quan hệ
thứ tự.
◊
Ví dụ
Lược ñồ PROJ có khoá là PNO.
Lược ñồ EMP có khoá là (ENO, PNO).
tố.
Các thuộc tính thuộc khoá nào ñó gọi là thuộc tính khoá hay thuộc tính nguyên
Thuộc tính không phải thuộc tính khoá gọi là thuộc tính không khoá.
Mỗi quan hệ có ít nhất một khoá. Trường hợp có nhiều khoá thì gọi các khoá
ñó là khoá dự tuyển (candidate key), trong ñó có một khoá là khoá chính
(primary key).
i
PNO
tham chi
ế
u
ñế
n khoá
PNO
c
ủ
a l
ượ
c
ñồ
PROJ.
Ở
d
ạ
ng b
ả
ng c
ơ
s
ở
d
ữ
li
ệ
u m
3. Quy tắc toàn vẹnQui tắc toàn vẹn
(
integrity rule
) là các ràng bu
ộ
c
ñả
m b
ả
o tr
ạ
ng thái nh
ấ
t quán
c
ủ
a c
ơ
s
ở
d
ữ
li
ệ
u. Chúng th
(Triggering operations).
3.1. Qui tắc toàn vẹn thực thể
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
11
Qui tắc toàn vẹn thực thể yêu cầu thực thể phải có khoá chính, các thuộc tính
khoá phải có giá trị duy nhất và khác null. Qui tắc này không cho phép hai bản
ghi trùng khoá.
◊
Ví dụ. Xét cơ sở dữ liệu
EMP(ENO, ENAME, TITLE, SAL, PNO, RESP, DUR)
PROJ(PNO, PNAME, BUDGET)
Qui tắc toàn vẹn thực thể ràng buộc:
- Trong lược ñồ PROJ thuộc tính khoá PNO không thể nhận giá trị null và
có giá trị không trùng nhau.
- Trong lược ñồ EMP cặp thuộc tính khoá (EMP, PNO) không thể nhận giá
trị null và có giá trị không trùng nhau.
3.2. Qui tắc miền giá trị
ðây là loại ràng buộc lên các giá trị hợp lệ của thuộc tính. Miền giá trị là tập
ự
án Kinh phí d
ự
án
Ki
ể
u d
ữ
li
ệ
u :
Ký t
ự
(Character) S
ố
(numeric)
ðộ
dài :
20
10
Format :9,999,999
Ph
ạ
m vi :
ả
o tính h
ợ
p l
ệ
c
ủ
a s
ự
tham chi
ế
u c
ủ
a
m
ộ
t
ñố
i t
ượ
ng trong c
ơ
s
ở
d
ữ
li
ệ
u (g
ọ
ệ
u
ñ
ó. Các thu
ộ
c tính
t
ươ
ng
ứ
ng g
ọ
i
thuộc tính cặp ghép
c
ủ
a ràng bu
ộ
c tham chi
ế
u.
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
12
◊
Ví dụ. Xét các quan hệ
ệ
PROJ: EMP.PNO
→
PROJ.PNO
Quan h
ệ
EMP là quan h
ệ
tham chi
ế
u và quan h
ệ
PROJ là quan h
ệ
ñượ
c tham
chi
ế
u, v
ớ
i thu
ộ
c tính c
ặ
p ghép là (
EMP.PNO
,
PROJ.PNO
ắ
c con sau.
•
Qui tắc chèn
: Không th
ể
chèn hàng m
ớ
i vào quan h
ệ
tham chi
ế
u n
ế
u quan h
ệ
ñượ
c tham chi
ế
u ch
ư
a có d
ữ
li
ệ
u thu
ộ
c tính c
ươ
ng m
ạ
i
ñ
i
ệ
n t
ử
) v
ớ
i kinh phí 500000
USD.
Khi
ñ
ó, n
ế
u quan h
ệ
PROJ ch
ư
a có b
ả
n ghi
p
= (P5, Elect.Commerce, 500000)
thì qui t
ắ
ả
n ghi
p
vào
quan h
ệ
PROJ.
•
Qui tắc xoá
: Không th
ể
xoá hàng c
ủ
a quan h
ệ
ñượ
c tham chi
ế
u n
ế
u hàng
ñ
ó có
d
ữ
li
ệ
u thu
RESP
DUR
E1 J.Doe Elect.Eng. 40000
P1 Manager 12
E2 M.Smith Syst.Anal. 34000
P1 Analyst 24
E2 M.Smith Syst.Anal. 34000
P2 Analyst 6
PROJ
PNO PNAME BUDGET
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
13
P1 Instrumentation 150000
5) Hành ñộng: là công việc thực thi khi thao tác bẫy ñược kích hoạt.
◊
Ví dụ. Cho quan hệ
NHANVIEN(Manv, HoTen, NgaySinh, NgayBC, ).
Hiển nhiên là NgayBC (ngày vào biên chế) không ñược sớm hơn NgaySinh.
Ta có thể ñảm bảo ñiều kiện này bằng thao tác bẫy sau:
Qui tắc người dùng: NgayBC không sớm hơn NgaySinh.
Sự kiện: Chèn, Sửa.
Tên quan hệ: NHANVIEN
ðiều kiện: NgayBC < NgaySinh.
Hành ñộng: Phủ nhận thao tác cập nhật.
◊
Ví dụ. Xét hai quan hệ
KHACH(Makhach, TenKhach, TaiKhoan, SoDu)
THANHTOAN(MaKhach, SoTien)
Ta thấy rằng SoTien của THANHTOAN không thể vượt quá SoDu của
KHACH. Ta có thể ñảm bảo ñiều kiện này bằng thao tác bẫy sau:
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
14
Qui tắc người dùng: SoTien không lớn hơn SoDu.
hai ngôi.
Các phép toán bổ sung có thể ñịnh nghĩa bởi các phép toán cơ bản là: phép
giao, phép nối, phép nối tự nhiên, phép bán nối, và phép thương.
Trong thực hành ñại số quan hệ ñược mở rộng ñể có thể nhóm hoặc sắp xếp
kết quả và có thể thực hiện các phép gộp phần (aggregation) hoặc các phép tính
số học. Một số phép toán khác như nối ngoài (outer join) cũng ñược hỗ trợ.
Các toán hạng của một số phép toán hai ngôi phải ứng hợp (union
compartible), tức là chúng cùng bậc (cùng số thuộc tính) và các thuộc tính tương
ứng có cùng miền giá trị.
a. Phép chiếu
Cho quan hệ r với lược ñồ quan hệ R=(A
1
, , A
n
). Cho S là lược ñồ con của
R, S⊂R, S có m thuộc tính (m < n). Chiếu của r lên lược ñồ S, ký hiệu
π
S
(r)
,
ñượ
c
ñị
nh ngh
ĩ
a là quan h
ệ
v
ớ
=
{
m-b
ộ
u :
∃
v
∈r
, v(S) = u
}
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
15
PNO BUDGET
P1 150000
P2 135000
P3 250000
P4 310000
◊
Ví dụ
Cho quan hệ r với các thuộc tính A,B,C. Sau ñây là ví dụ cụ thể về chiếu của
r lên hai thuộc tính A và C.
PNO
PNAME
BUDGET
P1 Instrumentation 150000
P2 Database Development 135000
P3 CAD/CAM 250000
P4 Maintenance 310000
Chi
ế
u c
ủ
a PROJ lên các thu
ộ
c tính PNO và BUDGET có k
ế
t qu
ả
nh
ư
sau
n
) và F là bi
ể
u th
ứ
c lôgic
bao g
ồ
m
(i) Các toán h
ạ
ng là h
ằ
ng ho
ặ
c (s
ố
hi
ệ
u) thành ph
ầ
n,
(ii) Các phép toán so sánh : <, =, >,
≠
,
≤
,
≥
(iii) Các phép toán logic : &,
, là quan h
ệ
v
ớ
i l
ượ
c
ñồ
R
g
ồ
m t
ấ
t c
ả
các b
ộ
t trong
r
sao cho khi thay các thành ph
ầ
n c
ủ
a t vào bi
ể
u
th
ứ
c F thì ta có giá tr
ị
c
ụ
th
ể
v
ề
ch
ọ
n c
ủ
a
r
theo bi
ể
u th
ứ
c B=b
r
σ
B=b
(r)
A B C
⇒
A B C
c b d
c f d ◊
Ví dụ
: Xét quan h
ệ
EMP
EMP
ENO
ENAME
TITLE
SAL
PNO
RESP
DUR
E1 J.Doe Elect.Eng. 40000
P1 Manager 12
ộ
c
ủ
a các k
ỹ
s
ư
ñ
i
ệ
n (electrical engineer)
ñượ
c bi
ể
u di
ễ
n b
ằ
ng phép
ch
ọ
n nh
ư
sau
σ
TITLE = 'Elect. Eng.'
(EMP)
p c
ủ
a
r
và
s
, ký hi
ệ
u
r ∪ s
, là quan h
ệ
v
ớ
i l
ượ
c
ñồ
R g
ồ
m t
ấ
t c
ả
các b
ộ
thu
ộ
c
v
ề
h
ợ
p c
ủ
a
r
và
s
.
r
∪
s
A B Ca b c b g a a b c
d a f d a f d a f
c b d
c b db g a
, ký hi
ệ
u
r
−
s
, là quan h
ệ
v
ớ
i l
ượ
c
ñồ
R g
ồ
m t
ấ
t c
ả
các b
ộ
thu
ộ
c
r
nh
ư
ng không thu
⇒
r
s
A B C
A B C
⇒
◊
Ví dụ
Cho quan hệ r và s với các thuộc tính A,B,C . Sau ñây là ví dụ cụ thể về
hiệu của r và s.
r
−
s
A B C
a
b c b g a a b c
d a f d a f c b d
c b d
quan h
ệ
S=(B
1
, , B
m
).
Tích
ðề
các c
ủ
a
r
và
s
, ký hi
ệ
u
r
×
s
, là quan h
ệ
v
ớ
i l
ượ
c
ñồ
=(A
n sau là b
ộ
thu
ộ
c
s
.
◊
Ví dụ
Cho quan h
ệ
r
v
ớ
i các thu
ộ
c tính A,B,C và
s
v
ớ
i các thu
ộ
c tính D,E,F. Sau
ñ
ây là ví d
ụ
c
c b d b g ac b d d a f
f. Phép giao
Cho quan h
ệ
r
,
s
v
ớ
i l
ượ
c
ñồ
quan h
ệ
R=(A
1
, , A
n
).
Giao c
ủ
a
c
s
.
♦ Công thức
. Phép giao suy ra t
ừ
phép hi
ệ
ur ∩ s
=
r
−
(
r
−
s
) =
s
−
(s
−
r)◊
Ví dụ
A B C
a b c b g a d a f
d a f d a f
c b d g. Phép nối
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
18
TITLE
SAL
Elect.Eng. 40000
Syst.Anal. 34000
Mech.Eng. 27000
Programmer 24000
Operator 15000
r
s
) và quan hệ s với lược
ñồ quan hệ S=(B
1
, , B
m
).
Cho biểu thức lôgic F. Phép nối của quan hệ r và quan hệ s theo ñiều kiện
nối F, ký hiệu
r ><
s
F
là quan hệ với lược ñồ =(A
1
, , A
n
, B
1
, , B
m
) gồm tất cả các (n+m)-bộ (t,u)
thoả t ∈ r, u ∈ s và khi thế các giá trị của t và u vào F thì ta ñược giá trị ñúng.
Ở ñây F là biểu thức lôgic gồm các toán hạng dạng
A
θ
B,
trong ñó A là
thuộc
F
Nếu các toán tử so sánh trong biểu thức F ñều là phép bằng (=), thì phép nối
theo F ñược gọi là phép
ñẳng nối
(
equijoin
).
◊
Ví dụ
Cho quan hệ
r
với các thuộc tính A,B,C và
s
với các thuộc tính D,E. Sau
ñây là ví dụ cụ thể về phép nối và ñẳng nối của
r
và
s
.
r
><
s
B<DA B C D E
Xét các quan hệ EMP(ENO, ENAME, TITLE)
PAY(TITLE, SAL)
ENO
ENAME
TITLE
E1
J.Doe
Elect.Eng.
E2
M.Smith
Syst.Anal.
E3
A.Lee
Mech.Eng.
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
19
với ràng buộc toàn vẹn tham chiếu EMP.TITLE→PAY.TITLE.
Phép nối EMP với PAY theo EMP.TITLE=PAY.TITLE có kết quả sau
EMP ><
PAY
E
MP.
TITL
E
=
PAY.
TITL
EENO
ENAME
EMP.TITLE
PAY.TITLE
27000
E4
J.Miller
Programmer
Programmer
24000
E5
B.Casey
Syst.Anal.
Syst.Anal.
34000
E6
L.Chu
Elect.Eng.
Elect.Eng.
a 2 quan h
ệ
r
và
s
, ký hi
ệ
u là
r
><
s
, là phép
ñẳ
ng n
ố
i trên
các thu
ộ
c tính c
ụ
th
ể
có cùng mi
ề
n giá tr
ị
. Tuy nhiên khác v
ớ
i
.
Cho các quan h
ệ
r
và
s
v
ớ
i các c
ộ
t
ñượ
c
ñặ
t tên theo thu
ộ
c tính.
Nối tự nhiên
r
><
s ñượ
c tính nh
ư
sau:
(i) Tính tích
ðề
-các
ộ
t c
ủ
a R
×
S t
ươ
ng
ứ
ng v
ớ
i c
ộ
t A c
ủ
a R
(S).
(iii) V
ớ
i m
ỗ
i thu
ộ
c tính A nh
ư
trên ta lo
ạ
i b
ỏ
, , i
m
là danh sách các thành ph
ầ
n c
ủ
a R
×
S , tr
ừ
các
thu
ộ
c tính S.A
1
, S.A
2
, , S.A
k
. Khi
ñ
ó ta có th
ể
bi
ể
u di
ễ
n n
ố
i t
1
∧
∧
R.A
k
=S.A
k◊
Ví dụ
Cho quan h
ệ
r
v
ớ
i các thu
ộ
c tính A,B,C và
s
v
ớ
i các thu
ộ
c tính B,C,D.
Sau
ñ
B C D
⇒
A B C Da b c b c d a b c d
d b c b c e a b c e
b b f a d b d b c d
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
20
r
s
A B C
D E
TITLE
.
N
ố
i t
ự
nhiên c
ủ
a hai quan h
ệ
cho
ở
b
ả
ng sau
EMP
>< PAY
ENO
ENAME
TITLE
SAL
E1
J.Doe
B.Casey
Syst.Anal.
34000
E6
L.Chu
Elect.Eng.
40000
E7
R.David
Mech.Eng.
27000
E8
J.Jones
Syst.Anal.
34000
ñồ
quan h
ệ
S =(B
1
, , B
m
).
Ký hi
ệ
u
θ
là toán t
ử
so sánh (<, =, >,
≠
,
≤
,
≥
). Cho F là bi
ể
u th
ứ
c lôgic g
ồ
m
các toán h
ạ
theo
ñ
i
ề
u ki
ệ
n n
ố
i F, ký hiệu
r
><
s
F
là quan hệ với lược ñồ R gồm các bộ của
r
có tham gia vào nối của
r
và
s
theo
F
.
♦ Công thức
. Ta có thể biểu diễn
R
(
r
><
s
)◊
Ví dụ.
Cho quan hệ
r
với các thuộc tính A,B,C và
s
với các thuộc tính D,E.
Sau ñây là ví dụ cụ thể về phép bán nối của
r
và
s
.
r
><
s
B<D
A B C
1 2 3 3 1 1 2 3
Ví dụ
. Xét các quan h
ệ
EMP(
ENO, ENAME, TITLE
)
PAY(
TITLE, SAL
)
ở
ví d
ụ
tr
ướ
c. Phép bán n
ố
i c
ủ
a hai quan h
ệ
theo EMP.
TITLE
=PAY.
TITLE
có
k
ế
t qu
ả
E4
J.Miller
Programmer
E5
B.Casey
Syst.Anal.
E6
L.Chu
Elect.Eng.
E7
R.David
Mech.Eng.
E8
J.Jones
Syst.Anal.
r
v
ớ
i l
ượ
c
ñồ
quan h
ệ
R=(A
1
, , A
n
) và quan h
ệ
s
v
ớ
i l
ượ
c
ñồ
quan h
ệ
S=(A
1
, , A
m
), trong
ộ
v
sao cho v
ớ
i m
ọ
i m-b
ộ
u
thu
ộ
c
s
, b
ộ
(
u,v
) thu
ộ
c
r
.
ðể
l
ậ
p công th
ứ
c cho phép chia ta ký hi
)
−
rlà t
ậ
p h
ợ
p các n-b
ộ
không thu
ộ
c
r
, t
ạ
o ra b
ằ
ng cách l
ấ
y các ph
ầ
n t
ử
c
ủ
a
s
k
A
m
+
1
, , A
n
((
s
×
t
)
−
r
)
Như vậy q là tập tất cả các
(n
−
m)-bộ
v
gồm n
−
m thành phần cuối của
các phần tử của
r
và tồn tại phần tử
u ∈ s
sao cho bộ (
◊
Ví dụ
Cho quan hệ
r
với các thuộc tính A,B,C,D và
s
với các thuộc tính C,D.
Sau ñây là ví dụ cụ thể về phép chia của
r
cho
s
.r
sr
÷
s
A B C D
C D
ENO PNO PNAME BUDGET
E1 P1 Instrumentation 150000
E2 P1 Instrumentation 150000
E2 P2 Database Deve. 135000
E3 P3 CAD/CAM 250000
E3 P4 Maintenance 310000
E4 P2 Database Deve. 135000
E5 P2 Database Deve. 135000
E6 P4 Maintenance 310000
E7 P3 CAD/CAM 250000
E8 P3 CAD/CAM 250000 PROJ'
PNO PNAME BUDGET
P3 CAD/CAM 250000
P4 Maintenance 310000 ðể tìm mã số nhân viên của những nhân viên ñược phân vào tất cả dự án trong
PROJ’, ta phải thực hiện phép chia ASG’ cho PROJ’ và ñược kết quả là
ASG'
÷
PROJ'
ENO
E3
ứ
t
ự
th
ự
c hi
ệ
n nh
ư
sau: th
ự
c hi
ệ
n phép ch
ọ
n trên PROJ, sau
ñ
ó n
ố
i t
ự
nhiên
v
ớ
i ASG, theo sau là n
ố
i t
ự
nhiên v
ớ
ENO
(ASG >< (
σ
PNAME=’CAD/CAM’
(PROJ))))
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
24
◊
Ví dụ. Sau ñây là chương trình tăng lương tất cả các lập trình viên
(programmer) lên 25000 USD.
(PAY
−
(σ
TITLE=’Programmer’
(PAY)) ∪
(<’Programmer’,25000>)
4.2. ðại số quan hệ
Trong các ngôn ng
ữ
d
ự
a trên phép tính quan h
i liên h
ệ
ñượ
c gi
ả
s
ử
là
ñ
úng
ñố
i v
ớ
i k
ế
t qu
ả
.
Ngôn ng
ữ
phép tính quan h
ệ
ñượ
c phân làm 2 nhóm:
phép tính quan hệ bộ
(tuple relational calculus)
và
lý thuy
ế
t v
ữ
ng ch
ắ
c b
ở
i vì chúng xây
d
ự
ng trên logic v
ị
t
ừ
b
ậ
c nh
ấ
t. Ng
ữ
ngh
ĩ
a
ñượ
c gán cho các công th
ứ
c b
ằ
ng cách
ể
xem nh
ư
t
ậ
p các b
ộ
ho
ặ
c t
ậ
p các mi
ề
n. Phép tính quan h
ệ
b
ộ
di
ễ
n gi
ả
i các
bi
ế
n trong công th
ứ
c nh
ư
m
ộ
ế
n nguyên thu
ỷ
dùng trong phép tính quan h
ệ
b
ộ
là
biến bộ
(tuple variable),
bi
ể
u th
ị
m
ộ
t b
ộ
c
ủ
a quan h
ệ
. Nói cách khác bi
ế
n này bi
ế
n thiên trên các b
ộ
c
ủ
n b
ộ
và F là công th
ứ
c ch
ỉ
nh d
ạ
ng. Công th
ứ
c nguyên t
ử
có hai
d
ạ
ng:
(1)
Biểu thức kiểu phần tử biến bộ
.
N
ế
u
t
là m
ộ
t bi
ế
n b
ộ
t
).
(2)
ðiều kiện
.
Lo
ạ
i công th
ứ
c nguyên t
ử
này có th
ể
ñị
nh ngh
ĩ
a nh
ư
sau:
(i) s[A]
θ
t[B] , trong
ñ
ó s và t là các bi
ế
n b
ộ
và A và B là các thành ph
a gi
ố
ng nh
ư
trên và c là h
ằ
ng.
Hi
ệ
n có nhi
ề
u ngôn ng
ữ
d
ự
a trên phép tính quan h
ệ
b
ộ
, và ngôn ng
ữ
thông
d
ụ
ng nh
ấ
t là SQL và QUEL. SQL hi
ệ
n là chu
25
•
Ngôn ngữ truy vấn SQL
SQL thuộc loại ngôn ngữ thế hệ thứ tư (4GL) ñược nghiên cứu nhiều năm và
trở thành tiêu chuẩn quốc tế về kiểm soát dữ liệu. SQL kế thừa tính phi thủ tục
của 4GL: Xử lý ñồng thời hàng loạt câu lệnh. Người dùng chỉ cần nêu ra yêu cầu
về dữ liệu mà không cần biết máy tính xử lý bên trong như thế nào. Người dùng
có thể truy xuất nhanh chóng với những CSDL lớn, yêu cầu những xử lý phức
tạp tinh vi mà không cần lập trình.
SQL là ngôn ngữ có cấu trúc. Trong câu lệnh của SQL có một số mệnh ñề
tuân theo những cú pháp riêng của nó. Có 4 loại lệnh trong SQL :
- Các lệnh truy vấn dữ liệu.
- Các lệnh ñịnh nghĩa dữ liệu (DDL).
- Các lệnh xử lý cập nhật dữ liệu (DML).
- Các lệnh kiểm soát dữ liệu.
♦ Các lệnh truy vấn dữ liệu, gọi là câu vấn tin có cú pháp tổng quát như sau
SELECT [DISTINCT] <biểu thức 1> AS <tên 1>] [, ] | *
FROM <bảng 1> [<bí danh 1>] [, ]
[INTO <dbf ñích>]
[WHERE <ñiều kiện nối > [AND | OR <ñiều kiện lọc>]]
[GROUP BY <cột nhóm 1> [, ]
[HAVING <ñiều kiện
nhóm>]]
ệ
EMP(
ENO, ENAME, TITLE
)
PAY(
TITLE, SAL
)
PROJ(
PNO, PNAME, BUDGET
)
ASG(
ENO, PNO, RESP, DUR
)
◊
Ví dụ
. Tìm tên t
ấ
t c
ả
nhân viên
ñ
ang làm vi
ệ
c cho d
ự
án CAD/CAM
Select EMP.
ENAME
ENAME
FROM EMP, ASG
WHERE (EMP.
ENO
= ASG.
ENO
)
AND (
RESP
= “Manager”)
◊
Ví dụ
. Tìm tên t
ấ
t c
ả
nhân viên
ñ
ang làm vi
ệ
c trong d
ự
án P3 và P4. (bài t
ậ
p)
Chương 1. Tổng quan về hệ quản trị cơ sở dữ liệu quan hệ
26
b) Phép tính quan hệ miền
(Lacroix, Pirotte 1977)
Bi
ế
n nguyên thu
ỷ
dùng trong phép tính quan h
ệ
mi
ề
n là
biến miền
(
domain
variable
), xác
ñị
nh m
ộ
t thành ph
ầ
n c
ủ
a b
ộ
bi
ế
n thiên trong t
ậ
ĩ
a. Câu v
ấ
n tin có d
ạ
ng sau:
x
1
, , x
n
|
F(x
1
, , x
n
)
trong
ñ
ó F là công th
ứ
c ch
ỉ
nh d
ạ
ng còn x
1
, , x
n
ể
u tr
ự
c quan c
ủ
a phép tính mi
ề
n. QBE (Query
by example)
ñượ
c thi
ế
t k
ế
dành cho ki
ể
u làm vi
ệ
c t
ươ
ng tác t
ừ
thi
ế
t b
ị
ñầ
u cu
ố
p m
ộ
t example có th
ể
có c
ủ
a câu tr
ả
l
ờ
i. Hành
ñộ
ng gõ tên quan h
ệ
s
ẽ
kích ho
ạ
t vi
ệ
c hi
ể
n th
ị
các l
ượ
c
ñồ
c
ủ
a quan h
ệ
chi
ế
u
ñượ
c cho b
ằ
ng t
ừ
P (Project).
Theo m
ặ
c
ñị
nh t
ấ
t c
ả
các câu v
ấ
n tin
ñề
u là ki
ể
u truy xu
ấ
t. Câu v
ấ
ấ
t c
ả
nhân viên
ñ
ang làm vi
ệ
c cho d
ự
án CAD/CAM
EMP
ENO
ENAME
TITLEE2 P ASG
ENO
PNO
RESP
DUR