CHƯƠNG 3CHƯƠNG 3
CHƯƠNG 3CHƯƠNG 3
Mô hình dữ liệu quan hệ
(
Relational Data Model)
(
Relational
Data
Model)
NNNN
HCSDL
1
Mô hình dữ liệu quan hệMô hình dữ liệu quan hệ
Là mô hình quan hệ do EF.Codd đề xuất năm 1970
Gồm một hệ thống khái niệm như quan hệ, bộ,
th ộ tí h khó hí h kh á iôtả dữ
th
u
ộ
c
tí
n
h
,
khó
a c
hí
n
h
,
kh
o
á
ngoạ
i
, m
ô
tả
dữ
liệu dưới dạng dòng và cột (bảng).
Một tập hợp các phép toán thao tác trên dữ liệu
như phép toán tậphợp phép toán quan hệ
như
phép
toán
tập
hợp
,
phép
toán
quan
hệ
.
Ràng buộc toàn vẹn quan hệ.
Nền tảng lý thuyết của nó là khái niệm lý thuyết tập hợp
tê á hệ tứ là tậ ủ ábộ iá t ị
t
r
ê
n c
á
c quan
hệ
,
tứ
c
là
tậ
p c
ủ
a c
á
c
bộ
g
iá
t
r
ị
Mô hình dữ liệu quan hệ là mô hình được nghiên cứu nhiều
nhất, và thực tiễn đã cho thấy rằng nó có cơ sở lý thuyết
ữ hắ hất
v
ữ
ng c
hắ
c n
hất
Mô hình dữ liệu này cùng với mô hình thực thể kết hợp
đang được sử dụng rộng rãi trong việc phân tích và thiết kế
CSDL hiệnnay
NNNN
HCSDL 2
CSDL
hiện
nay
.
…Mô hình dữ liệu quan hệ…Mô hình dữ liệu quan hệ
Cung cấp một cấu trúc dữ liệu đơn giản và
đồ bộ
đồ
n
g
bộ
Khái niệm quan hệ
Có nền tản
g
lý thuyết vữn
g
chắc
Lý thuyết tập hợp
Là cơ sở của các HQT CSDL thương mại
Oracle, DB2, SQL Server…
Oracle,
DB2,
SQL
Server…
NNNN
HCSDL 3
Các khái niệm của mô hình quan hệ
Quan hệ (Relation)
T
huộc tính (Attribute)
Lư
ợ
c đồ
(
Schema
)
ợ ()
Bộ (Tuple)
Miềngiátrị (Domain)
Miền
giá
trị
(Domain)
Lượng số (Cardinality)
Bậc (De
g
ree)
NNNN
HCSDL 4
Quan hệ
Các thông tin lưu trữ trong CSDL được tổ
hứ thà h bả (t bl ) 2 hiề ilà
c
hứ
c
thà
n
h
bả
n
g
(t
a
bl
e
)
2
c
hiề
u
g
ọ
i
là
quan
hệ
NNNN
HCSDL 5
……Quan hệ
Quan hệ gồm
Tên
Tập hợp các cột
Cố định
Được đặt tên
Có kiể dữ liệ
Có
kiể
u
dữ
liệ
u
Tập hợp các dòng Thay đổi theo thời gian
Mộtdò Mộtthự thể
Một
dò
n
g
~
Một
thự
c
thể
Quan hệ ~ Tập thực thể
NNNN
HCSDL 6
Thuộc tínhThuộc tính
Tên các cột của quan hệ
Mô tả ýhĩ háiátị t i ột đó
Mô
tả
ý
n
ghĩ
a c
h
o c
á
c
giá
t
r
ị
t
ạ
i
c
ột
đó
Tất cả các dữ liệu trong cùng 1 một cột đều có
cùng kiểudữ liệu
cùng
kiểu
dữ
liệu
NNNN
HCSDL 7
Lược đồ quan hệ
Tên của quan hệ
T
ên của tập thuộc tính
NNNN
HCSDL 8
Lược đồ CSDL
Gồm nhiều lược đồ quan hệ
NNNN
HCSDL 9
Bộ (tuple)
Là các dòng của quan hệ (trừ dòng tiêu đề-
tê ủ áthộ tí h)
tê
n c
ủ
a c
á
c
th
u
ộ
c
tí
n
h)
Thể hiện dữ liệu cụ thể của các thuộc tính
tron
g
quan hệ
NNNN
HCSDL 10
Miền giá trị (domain)
Là tập các giá trị nguyên tố gắn liền với một thuộc
tính
Kiểu dữ liệu cơ sở
Chuỗi ký tự (string)
Số (integer)
Số
(integer)
Các kiểu dữ liệu phức tạp (Không được chấp nhận)
T
ập
h
ợp
(
set
)
ập ợp( )
Danh sách (list)
Mảng (array)
Bảnghi(record)
Bản
ghi
(record)
Ví dụ
TENNV: string
NNNN
HCSDL 11
LUONG: intege
r
Lượng số (cardinality)Lượng số (cardinality)
Số lượng các tuple (bộ - hàng) của quan hệ.
ố ổ êááộ
Lượn
g
s
ố
sẽ thay đ
ổ
i khi th
ê
m hay xo
á
c
á
c b
ộ
.
NNNN
HCSDL 12
12
Bậc (degree)Bậc (degree)
Là số lượng các thuộc tính của quan hệ.
ố ộ íố ộ í
ậ ủ ệậ ủ ệ
S
ố
thu
ộ
c t
í
nhS
ố
thu
ộ
c t
í
nh B
ậ
c c
ủ
a quan h
ệ
B
ậ
c c
ủ
a quan h
ệ
11 quan hệquan hệ nhất phân (unary relation)nhất phân (unary relation)
22
quan hệquan hệ nhnh
ịị phân (binary relation)phân (binary relation)
33
quan hệquan hệ
tam phân (ternary relation)tam phân (ternary relation)
33
quan
hệquan
hệ
tam
phân
(ternary
relation)tam
phân
(ternary
relation)
nn quan hệquan hệ n phânn phân
NNNN
HCSDL 13
13
Siêu khoá (superkey)Siêu khoá (superkey)
Siêu khoá (superkey) là một thuộc tính hoặc
ộ ậ á ộ íùể á
m
ộ
t t
ậ
p c
á
c thu
ộ
c t
í
nh d
ù
n
g
đ
ể
x
á
c định duy
nhất một bộ của quan hệ
Siê kh á hiể hiê
là tậ tất ả áthộ tí h
Siê
u
kh
o
á
hiể
n n
hiê
n
là
tậ
p
tất
c
ả
c
á
c
th
u
ộ
c
tí
n
h
của quan hệ
NNNN
HCSDL 14
14
Ví dụ Ví dụ siêu siêu khókhóaa
Xét 1 lược đồ quan hệ
STUDENT (StudentID, FirstName, LastName,
BirthDate, Major, SSN, ClassID)
Xác định các siêu khóa có thể có của R???
NNNN
HCSDL 15
15
Khoá dự tuyển (candidate key)Khoá dự tuyển (candidate key)
Khoá dự tuyển (candidate key): là một siêu
kh áK àkhô ó ộttậ thự ự bấtkỳ
kh
o
á
K
m
à
khô
n
g
c
ó
m
ột
tậ
p con
thự
c s
ự
bất
kỳ
K’ ⊂ K lại là một siêu khoá
Tính duy nhất (uniqueness):
các giá trị củaK
Tính
duy
nhất
(uniqueness):
các
giá
trị
của
K
trong các bộ của r là duy nhất
Tính tối giản (irreducibility hay minimality)
không có tập con thực sự K’ ⊂ K lại có tính duy
nhất.
Ví dụ
:
khó
ad
ự
tuy
ể
n
củ
aquanh
ệ
STUDENT???
Ví
dụ
:
khó
a
d
ự
tuy
ể
n
củ
a
quan
h
ệ
STUDENT???
NNNN
HCSDL 16
16
Khóa chính (primary key)Khóa chính (primary key)
Khóa chính (primary key): là một khóa dự
t ể đượ h để á đị hd hất ộtbộ
t
uy
ể
n
đượ
c c
h
ọn
để
x
á
c
đị
n
h
d
uy n
hất
m
ột
bộ
của quan hệ. Khóa chính có thể chỉ có 1 thuộc
tính hay khóa phứchợp
tính
hay
khóa
phức
hợp
.
Ví dụ: khóa chính của quan hệ STUDENT???
NNNN
HCSDL 17
17
Các định nghĩa khác về khoá…Các định nghĩa khác về khoá…
Thuộc tính khoá (key attribute, prime attribute):
là th ộ tí h th i à kh á dự t ể
là
th
u
ộ
c
tí
n
h
th
am
gi
a v
à
o
kh
o
á
dự
t
uy
ể
n
Thuộc tính không khóa (non-key attribute): là
thuộc tính không tham gia vào khóa dự tuyển
thuộc
tính
không
tham
gia
vào
khóa
dự
tuyển
Khóa phức hợp (composite key): là khóa có
nhiềuhơnmộtthuộctính
nhiều
hơn
một
thuộc
tính
NNNN
HCSDL 18
18
…Các định nghĩa khác về khoá…Các định nghĩa khác về khoá
Các khóa dự tuyển (candidate key) còn lại sau
óí àó á
khi chọn kh
ó
a ch
í
nh được
g
ọi l
à
kh
ó
a kh
á
c
(alternate key)
Khó i(f i k ) là1th ộ tí h h 1
Khó
a n
g
oạ
i
(f
ore
ig
n
k
ey
)
:
là
1
th
u
ộ
c
tí
n
h
h
ay
1
tập thuộc tính của 1 quan hệ tham chiếu đến
khóa dự tuyểncủa 1 quan hệ khác hay của
khóa
dự
tuyển
của
1
quan
hệ
khác
hay
của
cùng 1 quan hệ.
Khóa mượn (borrowed key): là 1 khóa dự tuyển
Khóa
mượn
(borrowed
key):
là
1
khóa
dự
tuyển
có chứa khóa ngoại
NNNN
HCSDL 19
19
Ví dụVí dụ
Xét
cá
clược đồ quan hệ sau:
Xét
cá
c
lược
đồ
quan
hệ
sau:
Employee(Emp_ID, Name, Dept_Name, Salary)
Training(
Emp ID
Course
Date Completed)
Training(
Emp
_
ID
,
Course
,
Date
_
Completed)
Department(Dept_Name, Location,Fax)
Xác định khóa chính, khóa ngoại ??
NNNN
HCSDL 20
20
Định nghĩa hình thức về quan hệĐịnh nghĩa hình thức về quan hệ
Cho A
1
, A
2
, …, A
n
là các thuộc tính
Có các miền
g
iá trị D
1
, D
2
, …, D
n
tươn
g
ứn
g
K
ý
hi
ệ
u R
(
A
1
:D
1
,
A
2
:D
2
,
…
,
A
n
:D
n
)
là m
ộ
t
ý ệ (
1
1
,
2
2
,,
n
n
) ộ
lược đồ quan hệ
NNNN
HCSDL 21
Quan hệ (hay thể hiện quan hệ)
Một quan hệ r của lược đồ quan hệ R(A
1
, A
2
,
A
)kýhiệur(R) làmộttậpcácbộ r={t
…,
A
n
)
,
ký
hiệu
r(R)
,
là
một
tập
các
bộ
r
=
{t
1
, t
2
, …, t
k
}
Trong đómỗit
i
là
1
danh sách có thứ tự củangiá
Trong
đó
mỗi
t
i
là
1
danh
sách
có
thứ
tự
của
n
giá
trị t
i
=<v
1
, v
2
, …, v
n
>
Mỗi v
j
là một phần tử thuộc miền giá trị DOM(A
j
)
ặ á ỗ
ho
ặ
c gi
á
trị r
ỗ
ng
NNNN
HCSDL 22
Cơ sở dữ liệu quan hệ Cơ sở dữ liệu quan hệ
(Relational database)(Relational database)
Là 1 t
ập
h
ợp
hữu h
ạ
n các
q
uan h
ệ
ập ợp ạ
q
ệ
(relation)
Dữ
liệu được
lưutrữ trong các quan hệ
Dữ
liệu
được
lưu
trữ
trong
các
quan
hệ
(table)
Có
nhiều
mốiquanhệ giữacácbảng
Có
nhiều
mối
quan
hệ
giữa
các
bảng
NNNN
HCSDL 23
23
Định nghĩa hình thức Khoá quan hệ Định nghĩa hình thức Khoá quan hệ
(Relational Keys)(Relational Keys)
Định nghĩa khóa theo quan hệ toán học:
Khóa (key) của R(U) với tập thuộc tính U={A1,
A2,. . ,Am} là một tập con K= {Aj
1
, Aj
2
,…, Aj
n
}
vớij
j
j
là các số nguyên phân biệtnằm
với
j
1
,
j
2
,
j
n
là
các
số
nguyên
phân
biệt
nằm
trong khoảng từ 1 đến n (n<=m), phải thỏa
mãn đồng thời2điềukiệnsau:
mãn
đồng
thời
2
điều
kiện
sau:
1. ∀ t1, t2∈ r, nếu t1≠ t2 thì t[K1] ≠ t[K2] (1)
2. Khôn
g
tồn t
ạ
i K’ ⊂ K sao cho K’ thỏa mãn
g ạ
điều kiện (1)
NNNN
HCSDL 24
24
Các ký hiệu
Lược đồ quan hệ R bậc n
R(A
1
,A
2
,…,An)
R
(A
1
,
A
2
,
…,
An
)
Tập thuộc tính của R
R
+
Qhệ (thể hiệ
hệ
th đổi)
Q
uan
hệ
(thể
hiệ
n quan
hệ
-
th
ay
đổi)
r, s, p, q
Bộ
Bộ
t, u, v
Miền giá trị của thuộc tính A
DOM(A) hay MGT(A)
Giá trị tại thuộc tính A của bộ thứ t
t.A hay t[A]
NNNN
HCSDL 25
t.A
hay
t[A]