Cơ sở dữ liệu - Chương 6: Ngôn ngữ phép tính quan hệ

zLà ngôn ngữ truy vấn hình thức do Codd

đề nghị (1972,1973), được Lacroit &

Piroix (1977), Ullman (1982) phát

triển, cài đặt trong một số ngôn ngữ

như QBE, ALPHA, .

zĐặc điểm:

–Phi thủ tục

–Dựa trên logic

–Khả năng diễn đạt tương đương với

ĐSQH

pdf17 trang | Chuyên mục: SQL Server | Chia sẻ: dkS00TYs | Lượt xem: 3362 | Lượt tải: 4download
Tóm tắt nội dung Cơ sở dữ liệu - Chương 6: Ngôn ngữ phép tính quan hệ, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
1NGÔN NGỮ PHÉP TÍNH QUAN HỆ
Chương 6
2
Giới thiệu
z Là ngôn ngữ truy vấn hình thức do Codd 
đề nghị (1972,1973), được Lacroit & 
Piroix (1977), Ullman (1982) phát 
triển, cài đặt trong một số ngôn ngữ 
như QBE, ALPHA,…...
zĐặïc điểm:
– Phi thủ tục
– Dựa trên logic
– Khả năng diễn đạt tương đương với 
ĐSQH
3Giới thiệu
z 2 loại: 
– Ngôn ngữ phép tính quan hệ có biến 
là bộ (gọi tắt là phép tính bộ)
– Ngôn ngữ phép tính quan hệ có biến 
là miền (gọi tắt là phép tính miền)
4
Nội dung
I. Giới thiệu
II. Phép tính quan hệ có biến là bộ
Tuple Relational Calculus – TRC
III. Phép tính quan hệ có biến là miền
Domain Relational Calculus - DRC
5Phép tính quan hệ có biến là bộ
(Tuple Relational Calculus)
6
Biến bộ và quan hệ vùng của biến bộ
z Biến bộ: biến nhận giá trị là một bộ
của quan hệ trong CSDL
z Với mỗi biến bộ t, quan hệ R mà t biến 
thiên trên đó được gọi là quan hệ vùng 
của biến bộ và được chỉ ra bởi kí pháp 
R(t).
7Biểu thức truy vấn phép tính bộ
zMột biểu thức truy vấn phép tính bộ
đơn giản có dạng
{t⏐P(t)}
trong đó: 
t là một biến bộ
P(t) là 1 công thức theo t.
P(t) định trị ĐÚNG hay SAI tùy thuộc 
vào giá trị của t 
8
Ví dụ
z Tìm ngày sinh và địa chỉ của nhân viên 
có tên là "Dinh Ba Tien“
{t.NGSINH, t.DCHI⏐ NHANVIEN(t) 
and t.HONV='Dinh' and 
t.TENLOT='Ba' and t.TENNV='Tien'}
9Ví dụ
z Tìm tất cả các nhân viên có lương trên 
30,000
{t⏐ NHANVIEN(t) and t.LUONG>30000}
Công thức này chỉ định rằng:
t là một biến bộ
quan hệ vùng của biến bộ t là NHANVIEN
Trị của biểu thức truy vấn này là các bộ t 
∈NHANVIEN thỏa t.LUONG>30000
10
Định nghĩa hình thức của phép tính bộ
z Một công thức truy vấn tổng quát có dạng
{t1.A1,t2.A2,…,tn.An⏐P(t1, t2,…,tn,tn+1,…,tn+m)}
trong đó: 
– t1,t2,…tm+n là các biến bộ và không nhất 
thiết phải giống nhau,
– Ai là một thuộc tính của quan hệ vùng của 
biến bộ ti. 
– P là 1 công thức. 
z Một công thức P(t1, t2, ...…, tn, tn+1, ...…, tn+m) 
được hình thành từ các công thức nguyên tố.
11
Công thức nguyên tố
Công thức nguyên tố được định nghĩa:
1. R(t) là công thức nguyên tố
R là một quan hệ và t là một biến bộ
2. ti.A θ tj.B là công thức nguyên tố
θ là phép so sánh (=, ≠,>, ≥, <,≤)
A là thuộc tính cuả quan hệ vùng của biến bộ ti
B là thuộc tính cuả quan hệ vùng của biến bộ tj
3. ti.A θ c hoặc c θ tj.B là các công thức nguên tố
c là trị hằng, θ là 1 phép so sánh (=, ≠,>, ≥, <,≤)
A là thuộc tính cuả quan hệ vùng của biến bộ ti
B là thuộc tính cuả quan hệ vùng của biến bộ tj
12
Công thức nguyên tố
z Ví dụ: dưới đây là các công thức nguyên 
tố:
– NHANVIEN (t) [theo (1)]
– r.MANV = s.MANV [theo (2)]
– t.LUONG > 3000 [theo (3)]
13
Công thức nguyên tố
zMỗi công thức nguyên tố định trị ĐÚNG 
hoặc SAI đối với 1 bộ cụ thể, được gọi là
giá trị chân lý của một công thức nguyên 
tố.
z Với công thức nguyên tố R(t), R là 1 
quan hệ và t là biến bộ trên R
– R(t) định trị ĐÚNG nếu t là một bộ
thuộc R
– R(t) định trị SAI nếu ngược lại 
14
Ví dụ
R A B C
a1 b1 c1
a2 b2 c2
Giả sử có 2 bộ
t1= 
t2=
⇒ R(t1) định trị ĐÚNG, 
R(t2) định trị SAI
Với các công thức nguyên tố dạng (2), 
(3), định trị tùy thuộc vào ý nghĩa của 
phép thay thế giá trị thật sự của bộ vào 
vị trí biến bộ.
15
Công thức
Công thức được ĐN:
1. Mọi công thức nguyên tố là công thức.
2. Nếu F1 và F2 là các công thức thì (F1 and 
F2), (F1 or F2), not(F1), not (F2) là công thức 
Giá trị chân lý của các công thức trên được 
ĐN:
– (F1 and F2) chỉ ĐÚNG nếu cả F1 lẫn F2 
đều ĐÚNG.
– (F1 or F2) chỉ SAI nếu cả F1 lẫn F2 đều 
SAI
– not(F1) là ĐÚNG nếu F1 là SAI, 
not(F1) là SAI nếu F1 là ĐÚNG.
– not(F2) là ĐÚNG nếu F2 là SAI, 
not(F2) là SAI nếu F2 là ĐÚNG.
16
Công thức
3. Nếu F là 1 công thức thì (∀t)(F) là một 
công thức. 
(∀t)(F) định trị ĐÚNG nếu F ĐÚNG với 
mọi bộ t, SAI nếu ít nhất một bộ SAI.
4. Nếu F là 1 công thức thì (∃t)(F) là một 
công thức. 
(∃t)(F) định trị SAI nếu F SAI với mọi 
bộ t, ĐÚNG nếu ít nhất một bộ ĐÚNG.
5. Nếu F là công thức thì (F) là công 
thức.
17
Biến tự do & Biến kết buộc
zNếu F là một công thức nguyên tố thì
mọi biến bộ t trong F đều là biến tự do.
z Tất cả các biến bộ tự do t trong F được 
xem là biến kết buộc trong công thức 
F'=(∃t)(F) hoặc F'=(∀t)(F).
zĐối với công thức F= F1 and F2 , F=F1 
or F2, F=not(F1) hoặc F=not(F2). Xuất 
hiện của biến t trong F là tự do hay kết 
buộc là hoàn toàn phụ thuộc vào việc 
nó là tự do hay kết buộc trong F1, F2.
18
Biến tự do & Biến kết buộc
z Biến tự do trong một công thức ⇔
biến toàn cục trong một chương trình 
(biểu diễn kết quả công thức - What).
z Biến kết buộc trong một công thức ⇔
biến cục bộ trong một chương trình 
(biểu diễn kiểm tra công thức –
Yes/No).
19
Ví dụ
z Tìm tên và địa chỉ của các nhân viên 
phòng "Nghien cuu“
z { t.HONV, t.TENNV, t.DCHI⏐
NHANVIEN(t) and (∃d)(PHONGBAN(d) 
and d.TENPHG='Nghien cuu' and 
d.MAPHG=t.SOPHG)}
20
Ví dụ
z Với mọi đề án ở "Ha Noi", liệt kê các mã số đề
án (MADA), mã số phòng ban chủ trì đề án 
(MAPHG), họ tên trưởng phòng (TENNV, 
HONV) cũng như địa chỉ (DCHI) và ngày sinh 
(NGSINH) của người ấy.
{p.MADA, p.PHONG. m.TENNV,m.HONV, 
m.NGSINH, m.DCHI ⏐ DEAN(p) and NHANVIEN(m) and p.DDIEM_DA='Ha Noi' and 
((∀d) (PHONGBAN(d) and p.PHONG=d.MAPHG and d.TPHG=m.MANV))}
p,m : biến tự do, d:biến kết buộc
21
Ví dụ
z Tìm họ tên của từng nhân viên và
người phụ trách trực tiếp nhân viên đó.
{e.HONV, e.TENNV, s.HONV, s.TENNV ⏐
NHANVIEN(e) and NHANVIEN(s) and 
e.MA_NQL = s.MANV}
22
Ví dụ
z Tìm họ tên các nhân viên làm việc cho 
các đề án mà phòng mã số 5 chủ trì.
{e.HONV, e.TENNV ⏐ NHANVIEN(e) and 
((∃ x)(∃ w) (DEAN(x) and 
PHANCONG(w) and x. PHONG=5 and 
w.MA_NVIEN=e.MANV and 
x.MADA=w.SODA))}
23
Một số biến đổi lượng từ
1. (∀ x)(P(x))≡ not (∃x)(not(P(x)))
2. (x)(P(x)) ≡ not(∀ x)(not (P(x)).
3. (∀ x)(P(x) and Q(x))≡ not (∃ x)(not(P(x)) or not (Q(x))).
4. (∀ x)(P(x) or Q(x))≡ not (∃ x)(not(P(x)) and not (Q(x))).
5. (∃ x)(P(x) or Q(x)) ≡ not(∀ x)(not(P(x)) and not (Q(x))).
6. (∃ x)(P(x) and Q(x)) ≡ not(∀ x)(not(P(x)) or not (Q(x))).
7. (∀ x)(P(x)) ⇒(∃ x)(P(x))
8. not(∃ x)(P(x)) ⇒ not(∀ x)(P(x))
Tuy nhiên, khẳng định sau SAI:
not(∀ x)(P(x)) ⇒ not(∃ x)(P(x))
24
Công thức an toàn
Xem câu truy vấn:
{t ⏐ not(NHANVIEN(t) )}
⇒ ý nghĩa: cho biết những nhân viên 
không có trong bảng NHANVIEN
⇒ câu truy vấn không xác định 
⇒ not(NHANVIEN(t)) là công thức 
không an toàn.
25
Ví dụ
zDanh sách những nhân viên (TENNV, 
HONV) không có thân nhân nào.
{ e.HONV, e.TENNV ⏐ NHANVIEN(e) 
and (not(∃d)( THANNHAN(d) and 
e.MANV=d.MA_NVIEN))}
{e.TENNV, e.HONV⏐ NHANVIEN(e) and 
(∀d)(not(THANNHAN(d) 
or ((∃d)(THANNHAN(d) and 
not(e.MANV=d.MA_NVIEN)))))}
26
Phép tính quan hệ có biến là miền
(Domain Relational Calculus- DRC)
27
Khái niệm
z Biến miền là biến nhận giá trị từ một miền 
giá trị của một thuộc tính.
z Một biểu thức truy vấn phép tính miền có
dạng
{x1,x2,…,xn⏐P(x1,x2,…,xn,xn+1,…, xn+m)}
hoặc
{x1x2… xn⏐P(x1,x2,…,xn,xn+1,…,xn+m)}
Trong đó x1,x2, …, xn, xn+1, …, xn+m là các 
biến miền và không nhất thiết phải khác 
nhau, nhận giá trị từ các MGT của các thuộc 
tính và P là công thức theo x1, ...…, xn.
28
Công thức
Một công thức được hình thành từ các công 
thức nguyên tố.
Công thức nguyên tố được ĐN
(i) R(x1,x2, ...…, xj) là một công thức nguyên tố.
Trong đó R là một quan hệ bậc j. 
Mỗi xi, 1≤ i ≤ n, là một biến miền. Công 
thức này ngụ ý rằng (x1,x2,…,xj) là một bộ
của quan hệ R
(ii) xi θ xj là công thức nguyên tố, xi và xj là các 
biến miền, c là một hằng trị, θ là 1 phép so 
sánh (=,≠,>,≥,<,≤).
29
Công thức
(iii) xi θ c hoặc c θ xj công thức nguyên tố, xi 
và xj là các biến miền, c là một hằng trị, θ là 1 
phép so sánh (=,≠,>,≥,<,≤).
Một công thức nguyên tố định trị ĐÚNG, hoặc 
SAI với một tập giá trị cụ thể tương ứng với 
các biến miền, được gọi là giá trị chân lý của 
một công thức nguyên tố.
Các ĐN về công thức dựa trên công thức 
nguyên tố, các ĐN về biến kết buộc và biến tự
do, các lượng từ trong trường hợp phép tính 
miền cũng tương tự như phép tính bộ.
30
Ví dụ
{uv⏐ (∃ q) (∃ r) (∃ s) 
(NHANVIEN(qrstuvwxyz) and q='Dinh' 
and r='Ba' and s='Tien')}
{uv⏐ (NHANVIEN('Dinh', 'Ba', 
'Tien',t,u,v,w,x,y,z)} 
31
Ví dụ
{qsv ⏐(∃z) (NHANVIEN(qrstuvwxyz) 
and (∃ l)(∃ m)(PHONGBAN(lmno) and 
l='Nghien cuu' and m=z)) }
{iksuv ⏐(∃ j)(DEAN(hijk) and (∃ t) 
(NHANVIEN(qrstuvwxyz) and 
(∃m)(∃n) (PHONGBAN(lmno) and k=m 
and n=t and j='Ha Noi')))}
32
Tài liệu tham khảo
1. Mai Văn Cường, Phạm Nguyễn Cương, Bài 
giảng Ngôn ngữ phép tính quan hệ.
2. Ramez Elmasri and Shamkant B. Navathe, 
Fundamentals of Database Systems, 
Chapter 6. Fourth Edition, Addison-Wesley, 
2004. ISBN 0-321-12226-7.
3. R. Ramakrishnan and J. Gehrke, Database 
Management Systems, Chapter4 -
Relational Algebra and Calculus, 
McGrawHill, 2nd Edition.
33
HẾT.

File đính kèm:

  • pdfChuong_6_Ngon_ngu_bien_bo_va_bien_mien.pdf
Tài liệu liên quan