Bài 6: Ngôn ngữ tân từ
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ị (19721973) đượ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ị
2
1. Ngôn ngữ tân từ có biến là n bộ
),
), tồn tại ($ )
Câu hỏi có biến là n bộ được biểu diễn như sau: {s | F s} hoặc {s | F(s)} Trong đó s là biến n bộ, F là một công thức chỉ có một biến tự do là s. Các phép toán logic: phủ định ((cid:216) ), kéo theo ((cid:222) và ((cid:217) ), hoặc ((cid:218) ). Các lượng từ: với mọi ("
3
Ví dụ: SANPHAM(masp,gia,nuocsx). In ra mã sản phẩm do ‘TQ’ sản xuất có giá hơn 10.000
ĐSQH: SANPHAM:(nuocsx=‘TQ’(cid:217) gia>10000)[masp]
NNTT_BNB:
{s.masp | SANPHAM(s) (cid:217) s.nuocsx=‘TQ’ (cid:217) s.gia>10000} {s[masp] | SANPHAM s (cid:217) s[nuocsx]=‘TQ’ (cid:217) s[gia]>10000}
4
Công thức an toàn
Một công thức được gọi là an toàn nếu tất cả các giá trị trong kết quả đều lấy từ miền giá trị của công thức Ví dụ: {s | ¬(SANPHAM s)}
5
Cho CSDL
NhaCC (Mancc, Tenncc, Khuvuc)
CungCap (Mancc, Masp, Gia)
SanPham (Masp, Tensp, Mau)
6
1. Tìm mã nhà cung cấp cung cấp sản phẩm màu đỏ hoặc xanh
ĐSQH
:
SanPham
CungCap
R
1
‹
R
(:1
mau
Xanh
'
mau
= '
Do
)'
masp = '
R
2
(cid:218) ‹
R
3
R
[2
mancc
]
NNTT
_
BNB
:
‹
c )(
SanPham
s )(
(cid:217)
(cid:217)
c mancc .{ c . masp .( s mau
s . mau
)}'
CungCap | = masp s . = ' Xanh '
= Do ' 7
(cid:218) (cid:217)
2. Tìm TenNCC cung cấp sản phẩm cho khu vực “TpHCM” hoặc cung cấp sản phẩm màu đỏ
ĐSQH
:
R
1
(
NhaCC
CungCap
)
SanPham
‹
R
2
R
(:1
mau
Do
'
khuvuc
TpHCM
)'
mancc = '
masp = '
(cid:218) ‹
R
3
R
[2
tenncc
]
‹
NNTT .{ c
_ tenncc
BNB |
n
c
SanPham
s
: NhaCC =
(cid:217) (cid:217)
(cid:217) (cid:217)
mancc n . = .( s mau
'
CungCap = masp c . mancc c . = ' Do n . khuvuc
'
)}'
s . masp TpHCM 8
(cid:218) (cid:217)
3. Tìm TenNCC cung cấp ít nhất 2 sản phẩm (màu xanh và màu đỏ) ĐSQH
:
masp
R 1
((
SanPham
CungCap
(:)
mau
Do
'
))[
tenncc
]
= '
‹
masp
= '
CungCap
(:)
mau
Xanh
'
))[
tenncc
]
‹
R 2 R 3 NNTT
SanPham (( 1 R R 2 BNB _ :
˙ ‹
(cid:217) c .{ tenncc | c )1( s )1(
CungCap = (cid:217) (cid:217) c .1 masp masp s .1 SanPham = ' mau Do ' s .1
(cid:217) (cid:217) SanPham
CungCap c )2( = (cid:217) (cid:217) masp .2 .2 c s masp s )2( = ' s Xanh '
mau .2 = = (cid:217) (cid:217) (cid:217) CungCap c )( c .1 mancc ) c .2 mancc }
c . mancc c . mancc 9
4. Tìm MaNCC cung cấp tất cả các sản phẩm
ĐSQH
:
masp
]
R
1
‹
CungCap mancc [ , SanPham [ masp ]
‹
R R
2 3
R
1
R
2
NNTT
_
BNB
:
‚ ‹
NhaCC
n )(
(
s
SanPham
)
˛ " (cid:217)
n .{ mancc c (
| CungCap
:
=
=
˛ $
c . masp
s . masp
c . mancc
n mancc .
)}
10
(cid:217)
5. Tìm MaNCC cung cấp tất cả các sản phẩm màu đỏ
ĐSQH
:
CungCap [
mancc
,
]
R 1
masp =
‹
Do
'
(
SanPham
(:
mau
'
))[
masp
]
‹
R R
2 3
R 1
R
2
NNTT
_
BNB
:
‚ ‹
SanPham
( =
˛ " (cid:217)
n .{ mancc c (
| CungCap
NhaCC n )( c masp .
:
s . s masp
s .: mancc c .
= mau Do ' )' = n mancc .
)}
11
(cid:217) ˛ $
2. Ngôn ngữ tân từ có biến là miền giá trị
{(x1,x2,…,xn) | F(x1,x2,…,xn)}
Trong đó: • xi là các biến tự do của F • Q= {(x1,x2,…,xn) | F(x1,x2,…,xn)}
Nếu (x1,x2,…,xn)˛ Q thì
F(x1,x2,…,xn):Đúng
12