Bài giảng Nhập môn cơ sở dữ liệu - Bài 3: Các ngôn ngữ dữ liệu đối với mô hình quan hệ - Vũ Tuyết Trinh

Các ngôn ngữ dữ liệu  
đố
i v
ớ
i m
ô
hình
qua
n h
ệ  
Vũ Tuyết Trinh  
Bộ môn Các hệ thống thông tin, Khoa Công nghệ thông tin  
Đại học Bách Khoa Hà Nội  
Hệ  
Ứng dụng  
- Định nghĩa DL  
- Thao tác DL  
Hệ QTCSDL  
CSDL  
CSDL  
2
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Nội dung  
{ Các cách tiếp cận đối với thiết kế ngôn ngữ của  
CSDL quan hệ  
z Giới thiệu một số ngôn ngữ và phân loại  
¾ So sánh và đánh giá  
{ Một số ngôn ngữ dữ liệu mức cao  
z QBE (Query By Example)  
z
SQL (
S
tructured
Q
uery
Language
)  
{ Kết luận  
3
Đặt vấn đề  
{ Mục đích của ngôn ngữ dữ liệu  
{ Tại sao có nhiều ngôn ngôn ngữ dữ liệu?  
{ Ngôn ngữ cấp thấp vs. Ngôn ngữ cấp cao?  
4
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Ví dụ  
{ Tìm tên của các sinh  
viên nào sống ở  
Bundoora  
Student  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
1108  
3936  
8507  
8452  
Bundoora  
Bundoora  
Balwyn  
z Tìm các bộ của bảng  
Student có Suburb =  
Bundoora  
Norman  
Mary  
z Đưa ra các giá trị của  
thuộc tính Name của  
các bộ này  
5
Ví dụ (2)  
Student  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
1108  
3936  
8507  
8452  
{ Tìm các sinh viên  
đăng ký khoá học có  
mã số 113  
Bundoora  
Bundoora  
Balwyn  
Norman  
Mary  
z Tìm các giá trị SID  
trong bảng Enrol có  
Course tương ứng là  
113  
z Đư
a các b
ộ
c
ủ
a b
ả
ng  
Student có SID trong  
các giá trị tìm thấy ở  
trên  
Enrol  
SID  
Course  
101  
3936  
1108  
8507  
113  
101  
Course  
No  
113  
101  
Name  
BCS  
Dept  
CSCE  
CSCE  
6
MCS  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phân loại các ngôn ngữ truy vấn  
{ Ngôn ngữ đại số  
z 1 câu hỏi = 1 tập các phép toán trên các quan hệ  
z Được biểu diễn bởi một biểu thức đại số (quan hệ)  
{ Ngôn ngữ tính toán vị từ  
z 1 câu hỏi = 1 mô tả của các bộ mong muốn  
z Được đặc tả bởi một vị từ mà các bộ phải thoả mãn  
z Phân biệt 2 lớp:  
{ ngôn ngữ tính toán vị từ biến bộ  
{ ngôn ngữ tính toán vị từ biến miền  
7
Ngôn ng
ữ đạ
i s
ố
quan h
ệ  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tổng quan  
{ Gồm các phép toán tương ứng với các thao tác  
trên các quan hệ  
{ Mỗi phép toán  
z Đầu vào: một hay nhiều quan hệ  
z Đầu ra: một quan hệ  
{ Biểu thức đại số quan hệ = chuỗi các phép toán  
{
K
ế
t qu
ả
th
ự
c hi
ệ
n m
ộ
t bi
ể
u th
ứ
c
đạ
i s
ố
là m
ộ
t  
quan hệ  
{ Được cài đặt trong phần lớn các hệ CSDL hiện  
nay  
9
Phân loại các phép toán  
{ Phép toán quan hệ  
z
z
z
z
Phép chi
ế
u (
projection
)  
Phép chọn (selection)  
Phép kết nối (join)  
Phép chia (division)  
{ Phép toán tập hợp  
z
z
z
z
Phép hợp (union)  
Phép giao (intersection)  
Phép trừ (difference)  
Phép tích đề-các (cartesian product)  
10  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép chiếu  
{ Đ/n: Lựa chọn một số thuộc tính từ một quan hệ.  
A1,A2,... (R)  
{ Cú pháp:  
∏
C1 C2 C3 C4 C5  
C2 C5  
™ Ví dụ: đưa ra danh sách tên của tất cả các sinh  
viên  
name (Student)  
∏
Kết quả  
Name  
Robert  
Glen  
Student  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
1108  
3936  
Bundoora  
Bundoora  
Balwyn  
8507  
Norman  
Mary  
Norman  
Mary  
11  
8452  
Phép chọn  
{ Đ/n: Lựa chọn các bộ trong một quan hệ thoả mãn  
điều kiện cho trước.  
σ<condition> (R)  
{ Cú pháp:  
R1  
R2  
R3  
R4  
R2  
R3  
™ Ví dụ: đưa ra danh sách những sinh viên sống ở  
Bundoora  
σsuburb="Bundoora (Student)  
Student  
Id  
1108  
Kết quả  
Name  
Robert  
Glen  
Suburb  
Kew  
Id  
Name  
Glen  
Suburb  
Bundoora  
Bundoora  
3936  
3936  
Bundoora  
Bundoora  
Balwyn  
8507  
Norman  
8507  
Norman  
Mary  
8452  
12  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Vi dụ - chọn và chiếu  
{ đưa ra tên của các sinh viên sống ở Bundoora  
name (σsuburb="BundooraStudent)  
∏
Student  
K
ế
t qu
ả  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
1108  
3936  
8507  
8452  
Name  
Glen  
Bundoora  
Bundoora  
Balwyn  
Norman  
Mary  
Norman  
13  
Phép kết nối  
{ Đ/n: ghép các bộ từ 2 quan hệ thoả mãn điều  
kiện kết nối  
{ Cú pháp:  
R1 ><< join_condition> R2  
a r r x  
b r r x  
a r  
b r  
c v  
r x  
s y  
t z  
™ Ví dụ: đưa ra danh sách các sinh viên và khoá  
Student
><Id=SID
Enrol  
h
ọc  
Kết quả  
Student  
Id  
Enrol  
SID  
Id  
1108  
Name  
Robert  
Glen  
Suburb  
Kew  
Course  
Name  
Robert  
Glen  
Suburb  
Kew  
SID  
3936  
1108  
8507  
Course  
101  
1108  
1108  
113  
101  
101  
3936  
Bundoora  
Bundoora  
Balwyn  
3936 3936  
Bundoora  
Id=SID  
113  
8507  
Norman  
Mary  
8507 8507 Norman Bundoora  
101  
8452  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Ví dụ - chọn, chiếu và kết nối  
{ đưa ra tên của các sinh viên sống ở Bundoora  
và mã khoá học mà sinh viên đó đăng ký  
name,Course (σsuburb="Bundoo (Student ><Id =SID Enrol ))  
∏
Student  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
Kết quả  
Name  
1108  
3936  
8507  
8452  
Bundoora  
Bundoora  
Balwyn  
Course  
101  
Norman  
Mary  
Glen  
Norman  
101  
Enrol  
SID  
Course  
3936  
1108  
8507  
101  
113  
101  
15  
Phép kết nối tự nhiên  
{ Đ/n: là phép kết nối với điều kiện bằng trên các  
thuộc tính trùng tên  
™ Ví dụ:  
Takes  
Enrol  
SID  
SNO  
21  
SID  
Course  
101  
1108  
1108  
8507  
8507  
3936  
1108  
8507  
23  
113  
23  
101  
*
29  
SID  
SNO  
21  
Course  
113  
1108  
1108  
8507  
8507  
23  
113  
23  
101  
29  
101  
16  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép kết nối ngoài  
{ Phép kết nối ngoài trái  
a r  
b r  
c v  
r x  
s y  
t z  
a r x  
b r x  
null  
c v  
{ Phép kết nối ngoài phải  
a r  
b r  
c v  
r x  
s y  
t z  
a r x  
b r x  
null  
s y  
null  
t z  
17  
Ví dụ về phép kết nối ngoài  
{ Đưa ra danh sách mã số các sinh viên và mã  
khoá học mà sinh viên đó đăng ký nếu có  
Student  
Enrol  
ID  
Name  
Robert  
Glen  
Suburb  
Kew  
SID  
Course  
101  
1108  
3936  
8507  
8452  
3936  
1108  
8507  
Bundoora  
Bundoora  
Balwyn  
113  
Norman  
Mary  
101  
Kết quả  
ID  
Name  
Robert  
Glen  
Suburb  
Kew  
Course  
113  
1108  
3936  
8507  
8452  
Bundoora  
Bundoora  
Balwyn  
101  
Norman  
Mary  
101  
null  
18  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép chia  
{ Đ/n: cho R1 và R2 lần lượt là các quan hệ n và m  
ngôi. Kết quả của phép chia R1 cho R2 là một  
quan hệ (n-m) ngôi  
{ Cú pháp: R1:R2  
a
a
a
b
c
x
y
x
a
z
x
y
:
z
™
Ví d
ụ:  
Subject  
Course  
Name  
Systems  
Course  
Kết quả  
Course  
BCS  
BCS  
BCS  
Name  
Database  
Database  
Algebra  
:
Database  
MCS  
MCS  
MCS  
19  
Phép hợp  
{ Đ/n: gồm các bộ thuộc ít nhất một trong hai quan  
hệ đầu vào  
z 2 quan hệ khả hợp được xác định trên cùng miền giá trị  
{ Cú pháp: R1∪ R2  
R1  
R2  
R1  
R2  
∪
Kết quả  
Name  
Course  
BCS  
™
Ví d
ụ:  
Systems  
Subject  
Database  
Database  
Algebra  
BCS  
Name  
Systems  
Course  
BCS  
Subject2  
MCS  
MCS  
MCS  
Name  
DataMining  
Writing  
Course  
MCS  
Database  
Database  
Algebra  
BCS  
DataMinin  
g
∪
MCS  
MCS  
BCS  
Writing  
BCS  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép giao  
{ Đ/n: gồm các bộ thuộc cả hai quan hệ đầu vào  
{ Cú pháp: R1∩ R2  
∩
R1  
R2  
R1  
R2  
™ Ví dụ:  
Subject  
Subject2  
Kết quả  
Name  
Systems  
Course  
BCS  
Name  
DataMining  
Database  
Systems  
Course  
MCS  
MCS  
BCS  
Name  
Systems  
Course  
BCS  
Database  
Database  
Algebra  
BCS  
∩
MCS  
MCS  
Database  
MCS  
Writing  
BCS  
21  
Phép trừ  
{ Đ/n: gồm các bộ thuộc quan hệ thứ nhất nhưng  
không thuộc quan hệ thứ hai  
z 2 quan hệ phải là khả hợp  
{ Cú pháp: R1 \ R2  
R1  
R2  
\
R1  
R2  
™
Ví d
ụ:  
Subject  
Subject2  
Kết quả  
Name  
Systems  
Course  
BCS  
Name  
DataMining  
Database  
Systems  
Course  
MCS  
MCS  
BCS  
Name  
Database  
Algebra  
Course  
BCS  
Database  
Database  
Algebra  
BCS  
\
MCS  
MCS  
MCS  
22  
Writing  
BCS  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Phép tích đề-các  
{ Đ/n: là kết nối giữa từng bộ của quan hệ thứ  
nhất và mỗi bộ của quan hệ thứ hai  
{ Cú pháp: R1 x R2  
a
a
b
b
c
c
x
y
x
y
x
y
x
y
a
b
c
d
x
y
X
d
d
23  
Ví dụ phép tích đề-các  
Student  
Id  
Name  
Robert  
Glen  
Suburb  
Kew  
Sport  
SportID  
Sport  
1108  
3936  
8507  
8452  
05  
09  
Swimming  
Dancing  
Bundoora  
Bundoora  
Balwyn  
X
Norman  
Mary  
Student_Sport  
Id  
Name  
Suburb  
SportID  
Sport  
1108  
3936  
8507  
8452  
1108  
3936  
8507  
8452  
Robert  
Glen  
Kew  
05  
05  
05  
05  
09  
09  
09  
09  
Swimming  
Swimming  
Swimming  
Swimming  
Dancing  
Bundoora  
Bundoora  
Balwyn  
Norman  
Mary  
Robert  
Glen  
Kew  
Bundoora  
Bundoora  
Balwyn  
Dancing  
Norman  
Mary  
Dancing  
Dancing  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Bài tập  
{ Biểu diễn câu hỏi truy vấn bằng ngôn ngữ đại  
số quan hệ  
{ Tính kết quả của biểu thức  
25  
Ngôn ng
ữ
tính toán v
ị
t
ừ  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tổng quan  
{ Ứng dụng logic toán vào CSDL  
{
Nh
ắ
c l
ại về logic toán  
z Biểu thức logic: nhận 1 trong 2 giá trị ĐÚNG hoặc  
SAI  
z Biến: 1 đại lượng biến thiên trong 1 miền giá trị  
z Hằng: 1 đại lượng không đổi  
z Hàm: 1 ánh xạ từ 1 miền giá trị vào tập hợp gồm 2  
giá trị hoặc đúng, hoặc sai  
z
V
ị
t
ừ
: là 1 bi
ể
u th
ứ
c
đượ
c xây d
ự
ng d
ự
a trên b/t logic  
z Phép toán logic: phủ định (¬) kéo theo (⇒), và (∧)  
hoặc(∨)  
z Lượng từ: với mọi (∀), tồn tại(∃)  
{ Phân loại:  
z Phép tính vị từ biến bộ  
z Phép tính vị từ biến miền  
27  
Phép tính vị từ biến bộ  
{ Đ/n: là ngôn ngữ vị từ có biến là các bộ  
{ Định nghĩa hình thức  
{ t | P(t) }  
z t : tập các bộ kết quả sao cho vị từ P là đúng đối với t  
z P: là một biểu thức có duy nhất 1 biến tự do t  
{ Một số quy ước:  
z t[A]: giá trị củ
a b
ộ t
t
ại thuộ
c tính
A  
z t[X]: giá trị của bộ t trên tập các thuộc tính X  
z t∈ R: bộ t là một bộ trong quan hệ R  
28  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Biểu thức nguyên tố  
{ t ∈ R  
zt là một biến bộ  
zR là một quan hệ (không sử dụng phép toán ∉)  
{ t[x] θ u[y]  
zt và u là các biến bộ  
zx và y lần lượt là 1 thuộc tính mà trên đó t và u được  
xác định  
z
θ
là m
ộ
t phép toán so sánh (< , = , > ,
≤
,
≠
,
≥
)  
™ Ví dụ:  
s ∈ Student  
e ∈ Enrol  
s[Id] = e[SID]  
29  
Biểu thức nguyên tố (2)  
{ t[x] θ c  
zt là một biến bộ  
zx là một thuộc tính mà trên đó u xác định  
zθ là một phép so sánh  
zc là một hằng trong miền của thuộc tính x.  
™ Ví dụ  
s[Suburb] = ‘‘Bundoora’’  
30  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Biểu thức tổng quát  
{ Một biểu thức nguyên tố là một biểu thức.  
{ P1 là biểu thức  
⇒ ¬P1, (P1) là các biểu thức  
{ P1 và P2 là biểu thức  
⇒ P1 ∧ P2 , P1 ∨ P2 , P1 ⇒ P2 là các biểu thức  
{ P1 là biểu thức chứa 1 biến bộ tự do u, và R là  
1 quan hệ  
⇒ ∃ u ∈ r (P1(u)), ∀ u ∈ r (P1(u)) cũng là các  
biểu thức  
31  
Các phép biến đổi tương đương  
{ P1 ∧ P2  
⇔
⇔
⇔
¬(¬P1 ∨ ¬P2)  
¬∃ t∈r (¬P1(t))  
¬P1 ∨ P2  
{ t ∈ r (P1(t))  
{ P1 ⇒ P2  
32  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Bài tập  
{ Biểu diễn câu hỏi bằng ngôn ngữ tính toán vị từ  
biến bộ  
33  
Tính an toàn của các biểu thức  
{ Đặt vấn đề:  
{t| ¬(t∈r )}  
{ K/n miền giá trị của biểu thức: DOM(P)  
z
Các hằng xuất hiện trong P  
z
Các giá trị của các thuộc tính của các bộ của các quan  
hệ xuất hiện trong P  
™ Ví dụ:  
P(t) = t∈Sport ^ t[Sport] != ‘‘Football’’  
Sport  
SportID  
05  
DOM(P)={‘‘05’’, ‘‘09’’,  
Sport  
‘‘Swimming’’, ‘‘Dancing’’,  
Swimming  
‘‘Football’’}  
09  
Dancing  
34  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Biểu thức an toàn  
{ Đ/n : {t | P(t)} là an toàn nếu tất cả các giá trị  
xuất hiện trong kết quả là các giá trị từ DOM(P)  
™ Ví dụ  
9
P(t) = t∈Sport ^ t[Sport] != ‘‘Football’’ (an toàn)  
P(t) = ¬(t∈Sport) (không an toàn)  
8
35  
Phép tính vị từ biến miền  
{ Đ/n: là ngôn ngữ vị từ có biến là các miền giá trị  
{ Định nghĩa hình thức  
{<x1, …, xn> | P(x1, …, xn)}  
z x1, …, xn là các biến miền hay các hằng miền  
z P: là một biểu thức chỉ có các biến tự do xi  
36  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Các biểu thức nguyên tố  
{ <x1, …, xn> ∈ r  
z r là 1 quan hệ trên n thuộc tính  
z x1, …, xn là các biến miền hay các hằng miền.  
{ x θ y  
z x và y là các biến miền  
z θ là một phép so sánh đơn giản (< , = , > , ≤ , ≠ , ≥).  
™ Ví dụ  
<x,y,z> ∈ Student  
<u,v> ∈ Enrol  
x = u  
37  
Các biểu thức nguyên tố (2)  
{ x θ c  
z x là một biến miền  
z θ là một phép so sánh  
z c là một hằng trong miền của thuộc tính củax  
™ Ví dụ  
Z = ‘‘Bundoora’’  
38  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Biểu thức tổng quát  
{ Một biểu thức nguyên tố là một biểu thức.  
{ P1 là 1  
⇒ ¬P1, (P1) là biểu thức  
{ P1 và P2 là biểu thức  
⇒ P1 ∧ P2 , P1 ∨ P2 , P1 ⇒ P2 là biểu thức  
{ P1(x) là một biểu thức  
⇒ ∃ x (P1(x)), ∀ x (P1(x)) là biểu thức  
39  
Tính an toàn của các biểu thức  
{ Đ/n: một biểu thức {<x1, …, xn> | P(x1, …, xn)} là  
an toàn nếu tất cả các giá trị xuất hiện  
trong kết quả là các giá trị từ DOM(P)  
40  
ũ
Tuy
ế
t Trinh, b/m Các h
ệ
th
ố
ng thông tin,  
Tải về để xem bản đầy đủ
pdf 45 trang baolam 20580 Free
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn cơ sở dữ liệu - Bài 3: Các ngôn ngữ dữ liệu đối với mô hình quan hệ - Vũ Tuyết Trinh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_nhap_mon_co_so_du_lieu_bai_3_cac_ngon_ngu_du_lieu.pdf