Tải bản đầy đủ (.pdf) (39 trang)

Bài tập thực hành môn HQTCSDL Mô hình dữ liệu quan hệ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (449.46 KB, 39 trang )

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

n
h
,
khó
a c

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


tậ
p c

a c
á
c
bộ
g


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


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ệ




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


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 đó




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)

n c

a c
á
c
th
u

c

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


tậ
p
tất
c

c
á
c
th
u

c

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???



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 ể



th
u

c

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

)
:


1

th
u

c

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):



1

khóa

dự


tuyển

có chứa khóa ngoại
NNNN
HCSDL 19
19
Ví dụVí dụ

Xét

clược đồ quan hệ sau:

Xét


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
)
,



hiệu

r(R)
,


một

tập

các

bộ

r

=

{t
1
, t
2
, …, t
k
}

Trong đómỗit
i

1

danh sách có thứ tự củangiá

Trong

đó

mỗi

t
i


1

danh

sách



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)

nhiều
mốiquanhệ giữacácbảng



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


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]

×