lOMoARcPSD|45315597
Database Overview
1. Định nghĩa
Mt sở d liu là mt h thng quản lý d liệu, trong ó “quản lý” có nghĩa
- Lưu trữ d liu
- H tr các thao tác trên d liu
Ví d một cơ sở d liu
Microsoft Excel
Id
Name
Age
City
State
Salary
1
Adam
38
New York
NY
4500
2
Bob
55
Pittsburg
PA
3000
3
Charlie
25
New York
NY
2800
4
Dorothy
42
San
Fransisco
CA
5300
5
Emily
32
Pittsburg
PA
2100
6
Frank
37
Los
Angeles
CA
4800
Các thao tác ược h tr:
- Tìm bn ghi ca Dorothy
- Tìm mức lương trung bình của Pittsburg
- Vi mi state (tiu bang), báo cáo mức lương trung bình
Các hn chế ca Excel:
- Có gii hn thp v khối lượng d liu
- Cung cp kh năng phát hiện li yếu
- Truy xut d liu chm
- Ch h tr các thao tác tương ối ơn giản
- S dư thừa d liu
- Không có kim soát truy cập a cấp
lOMoARcPSD|45315597
- Không th chạy như một máy ch (phn ng vi truy vấn ến bt c
lúc nào)
-
Mt database chuyên nghip nên có:
- Có kh năng xử lý các tp d liu khng l (colossal)
- Thc thi các ràng buc toàn vn mnh m
- Có cơ chế x lý truy vn rt hiu qu
- H tr rt nhiu (huge variety) truy vn
- Gim thiu s dư thừa (redundancy) d liu
- Cung cp kim soát truy cập a cấp chi tiết (fine-grained) - Tr thành
mt máy ch mnh m thm chí th chạy ng thi
(simultaneously) các chương trình chạy dài.
-
Relational Model 1: Tables and Keys
Mô hình quan h là tiêu chun thc tế ược trin khai trong tt c các h thống cơ s
d liệu chính. Nó ịnh nghĩa:
- Định dng mà d liu s ược lưu
- Các thao tác ể truy vn d liu
Chúng ta s tp trung vào khía cạnh (aspect) ầu tiên, li khía cnh th hai cho bài
ging tiếp theo.
Một cơ sở d liu tuân theo mô hình quan h ược gi là mt cơ sở d liu quan h
1. Table, a.k.a Relation
Trong một cơ sở d liu quan h, d liệu ược lưu trong tables
PROFILE
Pid
Dept
Rank
Sal
P1
CS
Asst
6000
P2
EE
Asso
8000
P3
CS
Full
10000
P4
EE
Asst
5000
lOMoARcPSD|45315597
P5
EE
Asso
8500
P6
CS
Full
9000
- Mỗi hàng cũng ược gi là mt tuple
- Mi cột cũng ược gi là mt attribute
- Lược quan h (relation schema) ca mt bng tp hp các tên
thuc tính ca nó
Ví dụ: lược ồ ca bng trên là {pid, name, dept, rank, sal}
2. Candidate key
Định nghĩa: Trong mt bng, mt candidate keymt tp ti thiu 𝐾 thuc
tính sao cho không có hai b giá tr nào ược phép tương ương trên tt c các
thuc tính trong 𝐾.
d: trong bng PROFILE, nếu chúng ta t {pid} mt candidate key, t
không có hai b d liu nào có th có cùng mt pid.
- Một candidate key ược thiết kế khi bảng ược to
- Có th có nhiu khóa ng viên
d: Nếu bn mun, bn th ch ịnh {name} như khóa ng viên
khác, nhưng bạn nghĩ nó có hợp lý không?
How about {dept, rank}?
Discussion
CLASS
cid
Title
Dept
Year
C1
Database
CS
2021
C2
Signal processing
EE
2022
Bn s t khóa ứng viên như thế nào?
Theo mt thông l tt, mi bng nên ít nht mt khóa ng viên, mt quy
ước (convention) s ược thc thi trong phn còn li ca khóa hc. Điều này
ng ý rng không hai b d liu nào trong bng th hoàn toàn tương
ương với nhau (hãy nghĩ xem: tại sao?)
3. Super Key
lOMoARcPSD|45315597
Định nghĩa: Trong mt bng, nếu 𝐾 mt khóa ng viên, bt k super set
cha 𝐾 ược gi là super key.
d: Trong bng PROFILE (pid, name, dept, rank, sal), {pid} là mt khóa
ứng viên. Do ó, tất c nhng tập sau ây là super keys:
- {pid}
- {pid, name}
- {pid, dept} - {pid, rank, sal}
-
Bổ (Lemma): Trong mt bng, không hai b d liu th tương ương
trên tất c các thuc tính ca super key.
4. Foreign Key
Định nghĩa: Cho 𝑇 𝑇′ là hai bng, 𝐾 là mt khóa ng viên trong 𝑇. Nếu 𝑇′
cũng chứa 𝐾, thì 𝐾 là mt foreign key ca 𝑇′ referencing (tham chiếu) 𝑇.
Ví dụ:
PROFILE
Pid
Dept
Rank
Sal
P1
CS
Asst
6000
P2
EE
Asso
8000
P3
CS
Full
10000
P4
EE
Asst
5000
P5
EE
Asso
8500
P6
CS
Full
9000
CLASS
cid
Title
Dept
Year
C1
Database
CS
2021
C2
Signal processing
EE
2022
C1
Database
CS
2022
TEACH
lOMoARcPSD|45315597
Pid
cid
Year
P1
C1
2021
P2
C2
2022
P1
C1
2022
Gi s rng PROFILE mt khóa ng viên {pid}, CLASS mt khóa
ng viên {cid, year}. Thì:
- {pid} là mt foreign key ca TECH referencing PROFILE.
- {cid, year} là mt foreign key ca TECH referencing CLASS.
Bn s thiết kế mt khóa ng viên cho TEACH như thế nào?
Relational Model 2: Relational Algebra
Chúng ta s tp trung vào khía cnh các toán t truy vn d liu trong bài
ging này.
Relation algebra ( ại s quan h) là ngôn ng ưa ra các truy vn trên d liệu
ược lưu trong cơ sở d liu quan h.
Ct lõi ca nó bao gm 6 toán t bản:
- Rename 𝜌
- Selection 𝜎
- Projection
- Set union
- Set different
- Cartesian product ×
Rename: Đưc ký hiu là 𝜌
𝑠
(𝑇)
- Trong ó 𝑇 là mt bng, và 𝑠 là mt string.
- Đầu ra ca toán t này là mt bng 𝑇′ ging ht bng 𝑇, nhưng với
tên là 𝑠.
Ví d:
lOMoARcPSD|45315597
𝜌
𝐿𝐸𝐶𝑇
(𝑃𝑅𝑂𝐹)
returns:
Selection: Đưc ký hiu là 𝜎
𝑃
(𝑇)
- Trong ó 𝑇 là mt bng, 𝑃 mt iu kin (predicate) v b d liu
trong bng 𝑇.
- Đầu ra là mt bng 𝑇′ sao cho:
o 𝑇′ có cùng lược (schema) vi 𝑇. o 𝑇 bao gm tt cch
các b trong bng 𝑇 tha mãn 𝑃.
Mỗi iều kin có th là:
- Mt s so sánh s dng các toán t sau: = , ≠, <, ≤,>, ≥.
- Nhiều so sánh ưc kết ni bi: (and), (or) và ¬ (not)
Ví d:
lOMoARcPSD|45315597
𝜎
𝑛𝑎𝑚𝑒="𝐵𝑜𝑏"
(𝑃𝑅𝑂𝐹)
returns:
𝜎𝑑𝑒𝑝𝑡="EE" 𝑠𝑎𝑙 > 7000(𝑃𝑅𝑂𝐹) returns:
Projection: Đưc ký hiu bi
𝐴
(𝑇)
- Trong ó 𝑇 là mt bng, và 𝐴mt tp các thuc tính trong 𝑇. - Đầu
ra ca toán t này là mt bng 𝑇′ sao cho:
o 𝑇′ có tt c và ch các thuc tính trong 𝐴
o 𝑇′ cha tt c các b d liu ca 𝑇 sau khi ct các thuc tính
không có trong 𝐴.
o Tt c các b trùng lp u b xóa.
Ví d:
𝑑𝑒𝑝𝑡
(𝑃𝑅𝑂𝐹) returns:
lOMoARcPSD|45315597
Hoc
𝑑𝑒𝑝𝑡, 𝑟𝑎𝑛𝑘
(𝑃𝑅𝑂𝐹) returns:
Union: Đưc ký hiu là 𝑇
1
𝑇
2
- Trong ó 𝑇
1
𝑇
2
là các bảng có cùng lược (schema)
- Đầu ra ca toán ty là mt bng 𝑇′ sao cho:
o 𝑇′ có cùng lược vi 𝑇
1
(và do ó có cùng lược vi 𝑇
2
) o 𝑇′
cha tt c các b d liu ca 𝑇
1
𝑇
2
, sau khi loi b các b
trùng lp.
Ví d:
𝜎𝑠𝑎𝑙
≤ 5000(𝑃𝑅𝑂𝐹) ∪ 𝜎𝑠𝑎𝑙 ≥ 10000(𝑃𝑅𝑂𝐹) returns:
lOMoARcPSD|45315597
Set different: Đưc ký hiu là 𝑇
1
𝑇
2
- Trong ó 𝑇
1
𝑇
2
là các bảng có cùng lược (schema)
- Đầu ra ca toán t này mt bng 𝑇′ sao cho o 𝑇′ cùng lược
vi 𝑇
1
(và do ó cùng lược vi 𝑇
2
) o 𝑇
cha tt c các b d liu
mà xut hin trong 𝑇
1
nhưng không có trong 𝑇
2
.
Ví d:
𝑟𝑎𝑛𝑘(𝜎𝑠𝑎𝑙 ≥ 8000 (𝑃𝑅𝑂𝐹)) − ⨅𝑟𝑎𝑛𝑘(𝜎𝑠𝑎𝑙 ≥ 9000(𝑃𝑅𝑂𝐹)) returns:
Cartesian product: Đưc ký hiu là 𝑇
1
× 𝑇
2
- Trong ó 𝑇
1
𝑇
2
là các bng.
- Đầu ra ca toán t này mt bng 𝑇 sao cho o c ca 𝑇 bao
gm tt c các thuc tính trong 𝑇
1
𝑇
2
(nếu mt thuc tính trong
𝑇
1
cùng tên vi mt thuc tính trong 𝑇
2
, chúng s ược coi là các
thuc tính khác nhau trong 𝑇)
o Vi mi b d liu 𝑡
1
𝑇
1
𝑡
2
𝑇
2
, 𝑇 cha mt b d liu
𝑡 có cùng giá tr vi 𝑡
1
(𝑡
2
) trên các thuc tính t 𝑇
1
(𝑇
2
).
Ví d:
lOMoARcPSD|45315597
𝑃𝑅𝑂𝐹 × 𝑇𝐸𝐴𝐶𝐻 returns:
Relational Model 3: Relational Algebra (Part II)
Relational Algebra (Review)
lOMoARcPSD|45315597
Chúng ta ã ược hc 6 toán t cơ bản của ại s quan h:
- Rename 𝜌
- Selection 𝜎
- Projection
- Set union
- Set different
- Cartesian product ×
Các toán t trên th biu din tt c các truy vn trong i s quan h. Tuy
nhiên, nếu chúng ta ch ph thuc vào các toán t ó, mt vài truy vn ph biến
trong thc tế yêu cu các biu thức dài. Đ rút gn các biu thc ó, người ta ã
xác nh 4 toán t sau, mi toán t trong s ó chỉ th ược trin khai bng 6
toán t cơ bản, và có th ược s dụng ể ơn giản hóa nhiu truy vn.
- Assignment
- Set intersection
- Natural join
- Division ÷
Assignment: Đưc ký hiu là 𝑇 ← [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛]
- Trong ó [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛] là mt toán t i s quan h, 𝑇 là mt biến
bng
- Assignment lưu trữ trong 𝑇 kết qu ca bng theo [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛].
Các assignment thường ược s dụng tăng tính ràng bng cách ct mt truy
vn dài thành nhiều bước, mỗi bước có th ược mô t bi mt dòng ngn.
lOMoARcPSD|45315597
𝑇1 ←⊓𝑟𝑎𝑛𝑘 (𝜎𝑠𝑎𝑙 ≥ 8000(𝑃𝑅𝑂𝐹))
𝑇2 ←⊓𝑟𝑎𝑛𝑘 (𝜎𝑠𝑎𝑙 ≥ 9000(𝑃𝑅𝑂𝐹))
𝑇
1
𝑇
2
Returns:
Set intersection: Đưc ký hiu là 𝑇
1
𝑇
2
- Trong ó 𝑇
1
𝑇
2
là các bng cùng lược
- Đầu ra ca toán t này mt bng 𝑇′ sao cho o 𝑇′ cùng lược
vi 𝑇
1
(Và do ó cùng lược vi 𝑇
2
). o 𝑇′ cha tt cch các b
d liu mà xut hin trong c 𝑇
1
𝑇
2
lOMoARcPSD|45315597
𝜎𝑠𝑎𝑙
≥ 8500(𝑃𝑅𝑂𝐹) ∩ 𝜎𝑑𝑒𝑝𝑡 = 𝐶𝑆(𝑃𝑅𝑂𝐹) returns:
In general:
𝑇
1
𝑇
2
= 𝑇
1
(𝑇
1
𝑇
2
)
Natural join: Đưc ký hiu 𝑇
1
𝑇
2
- Trong ó 𝑇
1
𝑇
2
là các bng
- Đầu ra ca toán t này là mt bng 𝑇′ sao cho o c ca 𝑇′ bao
gm tt c các ct riêng bit (distinct) ca 𝑇
1
𝑇
2
.
o 𝑇′ cha tt c và ch các b d liu 𝑡 thỏa mãn các iều kin
sau:
𝑡[𝑇
1
] thuc v 𝑇
1
, trong ó 𝑡[𝑇
1
] mt phn ca 𝑡 sau
khi ct bt các thuc tính mà không tn ti trong
𝑇
1
;
lOMoARcPSD|45315597
𝑡[𝑇
2
] thuc v 𝑇
2
, trong ó 𝑡[𝑇
2
] ược ịnh nghĩa tương t
i vi (respect to) 𝑇
2
.
Ví d:
𝑃𝑅𝑂𝐹 𝑇𝐸𝐴𝐶𝐻 returns:
In general:
𝑇1 𝑇2 =⊓𝑆 (𝜎𝑇
1
.𝐴
1
=𝑇
2
.𝐴
1
∧ … ∧ 𝑇
1
.𝐴
𝑑
=𝑇
2
.𝐴
𝑑
(𝑇1 × 𝑇2))
Trong ó, 𝑆 = (𝑆
1
𝑆
2
) ∪ {𝑇
1
. 𝐴
1
, … , 𝑇
1
. 𝐴
𝑑
} ∪ (𝑆
2
𝑆
1
)
Trong ó 𝑆
1
𝑆
2
các lược ca 𝑇
1
và 𝑇
2
tương ng, 𝐴
1
, , 𝐴
𝑑
là các
thuc tính chung ca 𝑇
1
𝑇
2
.
Division: Đưc ký hiu là 𝑇
1
÷ 𝑇
2
- Trong ó 𝑇
1
𝑇
2
các bảng sao cho lược ca 𝑇
2
mt tp hp
con của lược 𝑇
1
.
lOMoARcPSD|45315597
- Đầu ra ca toán t này là mt bng 𝑇′ sao cho o c ca 𝑇′ bao
gm tt c các ct có trong 𝑇
1
, nhưng không có trong 𝑇
2
.
o 𝑇′ cha tt c và ch các b d liu 𝑡 sao cho:
Vi mi b 𝑡
2
𝑇
2
, 𝑡
1
= (𝑡, 𝑡
2
) mt b trong 𝑇
1
, trong
ó (𝑡, 𝑡
2
) biu th mt b ni các thuc tính ca 𝑡 vi các
thuc tính ca 𝑡
2
.
Ví d:
𝑇
1
÷ 𝑇
2
returns:
In general:
𝑇1 ÷ 𝑇2 =⊓𝑆1−𝑆2 (𝑇1) −⊓𝑆1−𝑆2 (⊓𝑆1−𝑆2 (𝑇1) × 𝑇2 𝑇2) Trong
ó 𝑆
1
𝑆
2
là các lược ca 𝑇
1
𝑇
2
tươngng.
lOMoARcPSD|45315597
SQL 1: Basic Statements
Overview: Structured query language (SQL) mt ngôn ng người dùng
thân thin cho các truy vấni s quan h c biệt. Nó ược h tr bi tt c các
h thống sở d liu chính. Trong bài ging này, chúng ta s hc làm thế
nào ể viết li các toán t i s trong SQL.
Syntax of an SQL Statement:
Select distinct 𝐴
1
, 𝐴
2
, … , 𝐴
𝑛
from 𝑇
1
, … , 𝑇
𝑚
where 𝑃.
Trong ó 𝑇
1
, … , 𝑇
𝑚
là các bng, 𝐴
1
, 𝐴
2
, … , 𝐴
𝑛
là các thuc tính và 𝑃 là mt iu
kin. Câu lnh tr v mt bảng tương ng vi truy vn i s quan h sau:
𝐴1
,…,𝐴
𝑛
(𝜎
𝑃
(𝑇
1
× × 𝑇
𝑚
))
Selection 𝝈 Select
From 𝑇
Where 𝑃
Tương ứng vi: 𝜎
𝑃
(𝑇)
lOMoARcPSD|45315597
Selection Predicate:
Select
From 𝑇
lOMoARcPSD|45315597
Where 𝑃
Trong 𝑃 bn có th ch nh các toán t logic và so sánh chun.
- =, <>, <,<=, >, >=
- Kết ni nhiu so sánh vi: AND, OR, NOT.
Projection
Select distinct 𝐴
1
, … , 𝐴
𝑛
From 𝑇
Tương ứng vi:
𝐴1
,…,𝐴
𝑛
(𝑇)
Note:
T khóa riêng bit (distinct) xóa tt c các hàng trùng lặp trong ầu ra.
lOMoARcPSD|45315597
Tính năng gi li s trùng lp này rt hu ích cho các truy vn tng hp
chúng ta s tho lun sau khóa hc này.
Cartesian Product ×
Select
From 𝑇
1
, 𝑇
2
Tương ứng vi 𝑇
1
× 𝑇
2
Select
From 𝑇
1
, … , 𝑇
𝑚
Tương ứng vi 𝑇
1
× × 𝑇
𝑚
lOMoARcPSD|45315597
Putting Multiple Operators Together
Kết hp nhiu toán t li vi nhau

Preview text:

lOMoARcPSD| 45315597 Database Overview 1. Định nghĩa
Một cơ sở dữ liệu là một hệ thống quản lý dữ liệu, trong ó “quản lý” có nghĩa là - Lưu trữ dữ liệu
- Hỗ trợ các thao tác trên dữ liệu
Ví dụ một cơ sở dữ liệu Microsoft Excel Id Name Age City State Salary 1 Adam 38 New York NY 4500 2 Bob 55 Pittsburg PA 3000 3 Charlie 25 New York NY 2800 4 Dorothy 42 San CA 5300 Fransisco 5 Emily 32 Pittsburg PA 2100 6 Frank 37 Los CA 4800 Angeles
Các thao tác ược hỗ trợ:
- Tìm bản ghi của Dorothy
- Tìm mức lương trung bình của Pittsburg
- Với mỗi state (tiểu bang), báo cáo mức lương trung bình Các hạn chế của Excel:
- Có giới hạn thấp về khối lượng dữ liệu
- Cung cấp khả năng phát hiện lỗi yếu
- Truy xuất dữ liệu chậm
- Chỉ hỗ trợ các thao tác tương ối ơn giản - Sự dư thừa dữ liệu
- Không có kiểm soát truy cập a cấp lOMoARcPSD| 45315597
- Không thể chạy như một máy chủ (phản ứng với truy vấn ến bất cứ lúc nào) - …
Một database chuyên nghiệp nên có:
- Có khả năng xử lý các tập dữ liệu khổng lồ (colossal)
- Thực thi các ràng buộc toàn vẹn mạnh mẽ
- Có cơ chế xử lý truy vấn rất hiệu quả
- Hỗ trợ rất nhiều (huge variety) truy vấn
- Giảm thiểu sự dư thừa (redundancy) dữ liệu
- Cung cấp kiểm soát truy cập a cấp chi tiết (fine-grained) - Trở thành
một máy chủ mạnh mẽ thậm chí có thể chạy ồng thời
(simultaneously) các chương trình chạy dài. - …
Relational Model 1: Tables and Keys
Mô hình quan hệ là tiêu chuẩn thực tế ược triển khai trong tất cả các hệ thống cơ sở
dữ liệu chính. Nó ịnh nghĩa:
- Định dạng mà dữ liệu sẽ ược lưu
- Các thao tác ể truy vấn dữ liệu
Chúng ta sẽ tập trung vào khía cạnh (aspect) ầu tiên, ể lại khía cạnh thứ hai cho bài giảng tiếp theo.
Một cơ sở dữ liệu tuân theo mô hình quan hệ ược gọi là một cơ sở dữ liệu quan hệ
1. Table, a.k.a Relation
Trong một cơ sở dữ liệu quan hệ, dữ liệu ược lưu trong tables PROFILE Pid Name Dept Rank Sal P1 Adam CS Asst 6000 P2 Bob EE Asso 8000 P3 Calvin CS Full 10000 P4 Dorothy EE Asst 5000 lOMoARcPSD| 45315597 P5 Emily EE Asso 8500 P6 Frank CS Full 9000
- Mỗi hàng cũng ược gọi là một tuple
- Mỗi cột cũng ược gọi là một attribute
- Lược ồ quan hệ (relation schema) của một bảng là tập hợp các tên thuộc tính của nó
Ví dụ: lược ồ của bảng trên là {pid, name, dept, rank, sal} 2. Candidate key
Định nghĩa: Trong một bảng, một candidate key là một tập tối thiểu 𝐾 thuộc
tính sao cho không có hai bộ giá trị nào ược phép tương ương trên tất cả các thuộc tính trong 𝐾.
Ví dụ: trong bảng PROFILE, nếu chúng ta ặt {pid} là một candidate key, thì
không có hai bộ dữ liệu nào có thể có cùng một pid.
- Một candidate key ược thiết kế khi bảng ược tạo
- Có thể có nhiều khóa ứng viên
Ví dụ: Nếu bạn muốn, bạn có thể chỉ ịnh {name} như khóa ứng viên
khác, nhưng bạn nghĩ nó có hợp lý không? How about {dept, rank}? Discussion CLASS cid Title Dept Year C1 Database CS 2021 C2 Signal processing EE 2022
Bạn sẽ ặt khóa ứng viên như thế nào?
Theo một thông lệ tốt, mọi bảng nên có ít nhất một khóa ứng viên, một quy
ước (convention) sẽ ược thực thi trong phần còn lại của khóa học. Điều này
ngụ ý rằng không có hai bộ dữ liệu nào trong bảng có thể hoàn toàn tương
ương với nhau (hãy nghĩ xem: tại sao?) 3. Super Key lOMoARcPSD| 45315597
Định nghĩa: Trong một bảng, nếu 𝐾 là một khóa ứng viên, bất kỳ super set
chứa 𝐾 ược gọi là super key.
Ví dụ: Trong bảng PROFILE (pid, name, dept, rank, sal), {pid} là một khóa
ứng viên. Do ó, tất cả những tập sau ây là super keys: - {pid} - {pid, name}
- {pid, dept} - {pid, rank, sal} - …
Bổ ề (Lemma): Trong một bảng, không có hai bộ dữ liệu có thể tương ương
trên tất cả các thuộc tính của super key. 4. Foreign Key
Định nghĩa: Cho 𝑇 và 𝑇′ là hai bảng, 𝐾 là một khóa ứng viên trong 𝑇. Nếu 𝑇′
cũng chứa 𝐾, thì 𝐾 là một foreign key của 𝑇′ referencing (tham chiếu) 𝑇. Ví dụ: PROFILE Pid Name Dept Rank Sal P1 Adam CS Asst 6000 P2 Bob EE Asso 8000 P3 Calvin CS Full 10000 P4 Dorothy EE Asst 5000 P5 Emily EE Asso 8500 P6 Frank CS Full 9000 CLASS cid Title Dept Year C1 Database CS 2021 C2 Signal processing EE 2022 C1 Database CS 2022 TEACH lOMoARcPSD| 45315597 Pid cid Year P1 C1 2021 P2 C2 2022 P1 C1 2022
Giả sử rằng PROFILE có một khóa ứng viên {pid}, và CLASS có một khóa
ứng viên {cid, year}. Thì:
- {pid} là một foreign key của TECH referencing PROFILE.
- {cid, year} là một foreign key của TECH referencing CLASS.
Bạn sẽ thiết kế một khóa ứng viên cho TEACH như thế nào?
Relational Model 2: Relational Algebra
Chúng ta sẽ tập trung vào khía cạnh các toán tử ể truy vấn dữ liệu trong bài giảng này.
Relation algebra ( ại số quan hệ) là ngôn ngữ ể ưa ra các truy vấn trên dữ liệu
ược lưu trong cơ sở dữ liệu quan hệ.
Cốt lõi của nó bao gồm 6 toán tử cơ bản: - Rename 𝜌 - Selection 𝜎 - Projection ⨅ - Set union ∪ - Set different – - Cartesian product ×
Rename: Được ký hiệu là 𝜌𝑠(𝑇)
- Trong ó 𝑇 là một bảng, và 𝑠 là một string.
- Đầu ra của toán tử này là một bảng 𝑇′ giống hệt bảng 𝑇, nhưng với tên là 𝑠. Ví dụ: lOMoARcPSD| 45315597
𝜌𝐿𝐸𝐶𝑇(𝑃𝑅𝑂𝐹) returns:
Selection: Được ký hiệu là 𝜎𝑃(𝑇)
- Trong ó 𝑇 là một bảng, và 𝑃 là một iều kiện (predicate) về bộ dữ liệu trong bảng 𝑇.
- Đầu ra là một bảng 𝑇′ sao cho:
o 𝑇′ có cùng lược ồ (schema) với 𝑇. o 𝑇′ bao gồm tất cả và chỉ
các bộ trong bảng 𝑇 thỏa mãn 𝑃.
Mỗi iều kiện có thể là:
- Một sự so sánh sử dụng các toán tử sau: = , ≠, <, ≤,>, ≥.
- Nhiều so sánh ược kết nối bởi: ⋀ (and), ⋁ (or) và ¬ (not) Ví dụ: lOMoARcPSD| 45315597
𝜎𝑛𝑎𝑚𝑒="𝐵𝑜𝑏"(𝑃𝑅𝑂𝐹) returns:
𝜎𝑑𝑒𝑝𝑡="EE" ⋀ 𝑠𝑎𝑙 > 7000(𝑃𝑅𝑂𝐹) returns:
Projection: Được ký hiệu bởi ⨅𝐴(𝑇)
- Trong ó 𝑇 là một bảng, và 𝐴 là một tập các thuộc tính trong 𝑇. - Đầu
ra của toán tử này là một bảng 𝑇′ sao cho:
o 𝑇′ có tất cả và chỉ các thuộc tính trong 𝐴
o 𝑇′ chứa tất cả các bộ dữ liệu của 𝑇 sau khi cắt các thuộc tính không có trong 𝐴.
o Tất cả các bộ trùng lặp ều bị xóa.
Ví dụ: ⨅𝑑𝑒𝑝𝑡(𝑃𝑅𝑂𝐹) returns: lOMoARcPSD| 45315597
Hoặc ⨅𝑑𝑒𝑝𝑡, 𝑟𝑎𝑛𝑘(𝑃𝑅𝑂𝐹) returns:
Union: Được ký hiệu là 𝑇1 ∪ 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng có cùng lược ồ (schema)
- Đầu ra của toán tử này là một bảng 𝑇′ sao cho:
o 𝑇′ có cùng lược ồ với 𝑇1 (và do ó có cùng lược ồ với 𝑇2) o 𝑇′
chứa tất cả các bộ dữ liệu của 𝑇1 và 𝑇2, sau khi loại bỏ các bộ trùng lặp. Ví dụ: 𝜎𝑠𝑎𝑙
≤ 5000(𝑃𝑅𝑂𝐹) ∪ 𝜎𝑠𝑎𝑙 ≥ 10000(𝑃𝑅𝑂𝐹) returns: lOMoARcPSD| 45315597
Set different: Được ký hiệu là 𝑇1 − 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng có cùng lược ồ (schema)
- Đầu ra của toán tử này là một bảng 𝑇′ sao cho o 𝑇′ có cùng lược ồ
với 𝑇1 (và do ó cùng lược ồ với 𝑇2) o 𝑇′ chứa tất cả các bộ dữ liệu
mà xuất hiện trong 𝑇1 nhưng không có trong 𝑇2. Ví dụ:
⨅𝑟𝑎𝑛𝑘(𝜎𝑠𝑎𝑙 ≥ 8000 (𝑃𝑅𝑂𝐹)) − ⨅𝑟𝑎𝑛𝑘(𝜎𝑠𝑎𝑙 ≥ 9000(𝑃𝑅𝑂𝐹)) returns:
Cartesian product: Được ký hiệu là 𝑇1 × 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng.
- Đầu ra của toán tử này là một bảng 𝑇 sao cho o Lược ồ của 𝑇 bao
gồm tất cả các thuộc tính trong 𝑇1 và 𝑇2 (nếu một thuộc tính trong
𝑇1 có cùng tên với một thuộc tính trong 𝑇2, chúng sẽ ược coi là các
thuộc tính khác nhau trong 𝑇)
o Với mọi bộ dữ liệu 𝑡1 ∈ 𝑇1 và 𝑡2 ∈ 𝑇2, 𝑇 chứa một bộ dữ liệu
𝑡 có cùng giá trị với 𝑡1 (𝑡2) trên các thuộc tính từ 𝑇1 (𝑇2). Ví dụ: lOMoARcPSD| 45315597
𝑃𝑅𝑂𝐹 × 𝑇𝐸𝐴𝐶𝐻 returns:
Relational Model 3: Relational Algebra (Part II)
Relational Algebra (Review) lOMoARcPSD| 45315597
Chúng ta ã ược học 6 toán tử cơ bản của ại số quan hệ: - Rename 𝜌 - Selection 𝜎 - Projection ⊓ - Set union ∪ - Set different – - Cartesian product ×
Các toán tử trên có thể biểu diễn tất cả các truy vấn trong ại số quan hệ. Tuy
nhiên, nếu chúng ta chỉ phụ thuộc vào các toán tử ó, một vài truy vấn phổ biến
trong thực tế yêu cầu các biểu thức dài. Để rút gọn các biểu thức ó, người ta ã
xác ịnh 4 toán tử sau, mỗi toán tử trong số ó chỉ có thể ược triển khai bằng 6
toán tử cơ bản, và có thể ược sử dụng ể ơn giản hóa nhiều truy vấn. - Assignment ← - Set intersection ∩ - Natural join ⋈ - Division ÷
Assignment: Được ký hiệu là 𝑇 ← [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛]
- Trong ó [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛] là một toán tử ại số quan hệ, và 𝑇 là một biến bảng
- Assignment lưu trữ trong 𝑇 kết quả của bảng theo [𝑒𝑥𝑝𝑟𝑒𝑠𝑠𝑖𝑜𝑛].
Các assignment thường ược sử dụng ể tăng tính rõ ràng bằng cách cắt một truy
vấn dài thành nhiều bước, mỗi bước có thể ược mô tả bởi một dòng ngắn. lOMoARcPSD| 45315597
𝑇1 ←⊓𝑟𝑎𝑛𝑘 (𝜎𝑠𝑎𝑙 ≥ 8000(𝑃𝑅𝑂𝐹))
𝑇2 ←⊓𝑟𝑎𝑛𝑘 (𝜎𝑠𝑎𝑙 ≥ 9000(𝑃𝑅𝑂𝐹)) 𝑇1 − 𝑇2 Returns:
Set intersection: Được ký hiệu là 𝑇1 ∩ 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng có cùng lược ồ
- Đầu ra của toán tử này là một bảng 𝑇′ sao cho o 𝑇′ có cùng lược ồ
với 𝑇1 (Và do ó cùng lược ồ với 𝑇2). o 𝑇′ chứa tất cả và chỉ các bộ
dữ liệu mà xuất hiện trong cả 𝑇1 và 𝑇2 lOMoARcPSD| 45315597 𝜎𝑠𝑎𝑙
≥ 8500(𝑃𝑅𝑂𝐹) ∩ 𝜎𝑑𝑒𝑝𝑡 = 𝐶𝑆(𝑃𝑅𝑂𝐹) returns: In general:
𝑇1 ∩ 𝑇2 = 𝑇1 − (𝑇1 − 𝑇2)
Natural join: Được ký hiệu là 𝑇1 ⋈ 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng
- Đầu ra của toán tử này là một bảng 𝑇′ sao cho o Lược ồ của 𝑇′ bao
gồm tất cả các cột riêng biệt (distinct) của 𝑇1 và 𝑇2.
o 𝑇′ chứa tất cả và chỉ các bộ dữ liệu 𝑡 thỏa mãn các iều kiện sau:
 𝑡[𝑇1] thuộc về 𝑇1, trong ó 𝑡[𝑇1] là một phần của 𝑡 sau
khi cắt bớt các thuộc tính mà không tồn tại trong 𝑇1; lOMoARcPSD| 45315597
 𝑡[𝑇2] thuộc về 𝑇2, trong ó 𝑡[𝑇2] ược ịnh nghĩa tương tự
ối với (respect to) 𝑇2. Ví dụ:
𝑃𝑅𝑂𝐹 ⋈ 𝑇𝐸𝐴𝐶𝐻 returns: In general:
𝑇1 ⋈ 𝑇2 =⊓𝑆 (𝜎𝑇1.𝐴1=𝑇2.𝐴1∧ … ∧ 𝑇1.𝐴𝑑=𝑇2.𝐴𝑑(𝑇1 × 𝑇2))
Trong ó, 𝑆 = (𝑆1 − 𝑆2) ∪ {𝑇1. 𝐴1, … , 𝑇1. 𝐴𝑑} ∪ (𝑆2 − 𝑆1)
Trong ó 𝑆1 và 𝑆2 là các lược ồ của 𝑇1 và 𝑇2 tương ứng, và 𝐴1, … , 𝐴𝑑 là các
thuộc tính chung của 𝑇1 và 𝑇2.
Division: Được ký hiệu là 𝑇1 ÷ 𝑇2
- Trong ó 𝑇1 và 𝑇2 là các bảng sao cho lược ồ của 𝑇2 là một tập hợp con của lược ồ 𝑇1. lOMoARcPSD| 45315597
- Đầu ra của toán tử này là một bảng 𝑇′ sao cho o Lược ồ của 𝑇′ bao
gồm tất cả các cột có trong 𝑇1, nhưng không có trong 𝑇2.
o 𝑇′ chứa tất cả và chỉ các bộ dữ liệu 𝑡 sao cho:
 Với mỗi bộ 𝑡2 ∈ 𝑇2, 𝑡1 = (𝑡, 𝑡2) là một bộ trong 𝑇1, trong
ó (𝑡, 𝑡2) biểu thị một bộ nối các thuộc tính của 𝑡 với các thuộc tính của 𝑡2. Ví dụ: 𝑇1 ÷ 𝑇2 returns: In general:
𝑇1 ÷ 𝑇2 =⊓𝑆1−𝑆2 (𝑇1) −⊓𝑆1−𝑆2 (⊓𝑆1−𝑆2 (𝑇1) × 𝑇2 − 𝑇2) Trong
ó 𝑆1 và 𝑆2 là các lược ồ của 𝑇1 và 𝑇2 tương ứng. lOMoARcPSD| 45315597
SQL 1: Basic Statements
Overview: Structured query language (SQL) là một ngôn ngữ người dùng
thân thiện cho các truy vấn ại số quan hệ ặc biệt. Nó ược hỗ trợ bởi tất cả các
hệ thống cơ sở dữ liệu chính. Trong bài giảng này, chúng ta sẽ học làm thế
nào ể viết lại các toán tử ại số trong SQL.
Syntax of an SQL Statement:
Select distinct 𝐴1, 𝐴2, … , 𝐴𝑛
from 𝑇1, … , 𝑇𝑚 where 𝑃.
Trong ó 𝑇1, … , 𝑇𝑚 là các bảng, 𝐴1, 𝐴2, … , 𝐴𝑛 là các thuộc tính và 𝑃 là một iều
kiện. Câu lệnh trả về một bảng và tương ứng với truy vấn ại số quan hệ sau:
⊓𝐴1,…,𝐴𝑛 (𝜎𝑃(𝑇1 × … × 𝑇𝑚))
Selection 𝝈 Select ∗ From 𝑇 Where 𝑃
Tương ứng với: 𝜎𝑃(𝑇) lOMoARcPSD| 45315597 Selection Predicate: Select ∗ From 𝑇 lOMoARcPSD| 45315597 Where 𝑃
Trong 𝑃 bạn có thể chỉ ịnh các toán tử logic và so sánh chuẩn.
- =, <>, <,<=, >, >=
- Kết nối nhiều so sánh với: AND, OR, NOT. Projection
Select distinct 𝐴1, … , 𝐴𝑛 From 𝑇
Tương ứng với: ⊓𝐴1,…,𝐴𝑛 (𝑇) Note:
Từ khóa riêng biệt (distinct) xóa tất cả các hàng trùng lặp trong ầu ra. lOMoARcPSD| 45315597
Tính năng giữ lại sự trùng lặp này rất hữu ích cho các truy vấn tổng hợp vì
chúng ta sẽ thảo luận sau khóa học này.
Cartesian Product × Select ∗ From 𝑇1, 𝑇2
Tương ứng với 𝑇1 × 𝑇2 Select ∗ From 𝑇1, … , 𝑇𝑚
Tương ứng với 𝑇1 × … × 𝑇𝑚 lOMoARcPSD| 45315597
Putting Multiple Operators Together
Kết hợp nhiều toán tử lại với nhau