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 vi mhình 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
ũ ếệ ố
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 tructured 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
ũ ếệ ố
Ví dụ
{ Tìm tên của các sinh
viên nào sống ở
Bundoora
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 Đưộ ủả
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
ũ ếệ ố
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
quan h
ũ ếệ ố
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
{ ếả ựệộểứđạố ộ
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
ế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
ũ ếệ ố
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
ũ ếệ ố
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
ếả
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á
><Id=SID
ọ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
ũ ếệ ố
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
ũ ếệ ố
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
ũ ếệ ố
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
ụ:
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
ụ:
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
ũ ếệ ố
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
ụ:
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
ũ ếệ ố
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
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
3936
8507
8452
1108
3936
8507
8452
Glen
05
05
05
09
09
09
09
Swimming
Swimming
Swimming
Dancing
Bundoora
Bundoora
Balwyn
Norman
Mary
Robert
Glen
Kew
Bundoora
Bundoora
Balwyn
Dancing
Norman
Mary
Dancing
Dancing
ũ ếệ ố
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
tính toán vt
ũ ếệ ố
Tổng quan
{ Ứng dụng logic toán vào CSDL
{ ắạ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 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ủộ t ại thuộ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
ũ ếệ ố
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
zt 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
ũ ếệ ố
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
ũ ếệ ố
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
ũ ếệ ố
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
ũ ếệ ố
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
ũ ếệ ố
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
ũ ếệ ố
Tải về để xem bản đầy đủ
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:
bai_giang_nhap_mon_co_so_du_lieu_bai_3_cac_ngon_ngu_du_lieu.pdf

