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

Distributed Databases

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 (629.58 KB, 30 trang )

Ch
C

S

D

ng VI

LI U PHÂN TÁN

Ch ng này đ c p đ n các khái ni m c b n v h c s d li u phân tán, h
qu n tr c s d li u phân tán và bài toán thi t k c s d li u phân tán. Bài toán
thi t k c s d li u phân tán r t ph c t p và do tr ng tâm c a giáo trình này trình
bày ki n th c v h c s d li u quan h nên các ph ng pháp thi t k phân tán
không đ c trình bày chi ti t cho đ n các gi i thu t mà ch y u là nêu v n đ . M t
khác đây là h c s d li u phân tán d a trên mô hình quan h nên tr c khi thi t k
phân tán các c s d li u ph i đ c thi t k theo chu n c a h c s d li u quan h
t p trung.
I. CÁC KHÁI NI M V H C S D

LI U PHÂN TÁN.

H c s d li u phân tán (Distributed DataBase System) đ c xây d ng d a
trên hai công ngh c b n là c s d li u và m ng máy tính. H c s d li u phân
tán đ c mô t nh là t p h p nhi u c s d li u có liên quan logic đ n nhau và đ c
phân b trên m ng máy tính.
Trong khái ni m đ c mô t v c s d li u phân tán trên có hai đ c tr ng
c b n là “liên quan logic” và “phân b trên m ng”. Trong c s d li u phân tán các
t p tin d li u đ c l u tr đ c l p trên các nút c a m ng máy tính và ph i có liên
quan đ n nhau v m t logic và còn h n th n a còn đòi h i chúng ph i đ c truy xu t


đ n qua m t giao di n chung, th ng nh t.
Hi n nay khái ni m x lý phân tán (Distributed procesing), tính toán phân tán
(Distributed computing) ho c các thu t ng có t “phân tán” hay đ c dùng đ ch
các h th ng r i rác nh các h th ng máy tính có đa b x lý (multiprocessor system)
hay là các x lý trên m ng máy tính. C s d li u phân tán là m t khái ni m không
bao g m các tr ng h p x lý d li u trong các h th ng s d ng b nh chung, k c
b nh trong hay b nh th c p (đ a t ), nh t thi t ph i là m t h có s d ng giao ti p
m ng v i các tr m làm vi c đ c l p.
H Qu n tr c s d li u phân tán (Distributed DBMS) là h th ng ph n m m
cho phép qu n lý các h c s d li u phân tán và làm cho s phân tán tr nên “trong
su t” đ i v i ng i s d ng.
Khái ni m “trong su t” – “transparent” đ ch s tách bi t c p đ cao c a h
th ng v i các v n đ cài đ t c p đ th p c a h th ng. Có các d ng “trong su t” nh
sau:

99




CPU

CPU

CPU
Memory



CPU

Memory

Memory
DISK
Tr m
Tr m

Tr m

Môi tr

ng m ng

Tr m

Tr m

Hình 6.1. Các mô hình không ph i H CSDL phân tán
Tr m
Tr m

Tr m

Môi tr

Tr m

ng m ng

Tr m


Hình 6.2. Mô hình h CSDL phân tán
đ

+ “Trong su t” v phân tán. Do tính ch t phân tán c a h th ng nên các d li u
c l u tr t i các nút có v trí đ a lý khác nhau, ph n m m s đáp ng các yêu c u
100


c a ng

i s d ng sao cho ng

i s d ng không c n ph i bi t v trí đ a lý c a d li u.

+ “Trong su t” v phân ho ch (Partition). Do d li u phân tán và do nhu c u
c a công vi c d li u c n đ c phân ho ch và m i phân ho ch đ c l u tr t i m t
nút khác nhau (đây g i là quá trình phân m nh – fragmentation). Quá trình phân m nh
hoàn toàn t đ ng b i h th ng và ng i s d ng không c n ph i can thi p.
+ “Trong su t” v nhân b n (Replication). Vì lí do “hi u n ng”, “tin c y” nên
d li u còn đ c sao chép m t ph n nh ng v trí khác nhau.
+ “Trong su t” v đ c l p d li u.
+ “Trong su t” v k t n i m ng. Ng
c a giao ti p m ng.

i s d ng không c n bi t v s có m t

Phân tán
Phân m nh
Nhân b n

K t n i m ng
c l p d li u
D li u

Hình 6.3. Các t ng trong su t c a h th ng.
Ví d 6.1: M t công ty có các v n phòng
Công ty này có các c s d li u sau đây:

Paris, London, NewYork, Toronto.

C s d li u v nhân viên:

EMP (ENo, EName, Title)

C s d li u v các d án:

PROJ (PNo, PName, Budget, Loc)

C s d li u v l

PAY (Title, Sal)

ng:

C s d li u v phân công:

ASG (ENo, PNo, Dur, Resp)

Gi i thích v các thu c tính: Sal: L ng; Title: Ch c v ; Budget: Ngân sách
c a d án; Loc: a đi m; Dur: Duration – Th i h n; Resp: Responsibility – Trách

nhi m

101


Do tính phân tán c a các v n phòng nên t i m i v n phòng có l u tr d li u
tác nghi p c a chính các v n phòng đó, có th là các nhân viên t i đó và các d án mà
v n phòng đó đang qu n lý. Ta có s đ l u tr đã phân tán và phân m nh gi đ nh
nh sau:
London

Paris

Emp London
Emp Paris
Proj London

Emp London
Emp Paris
Proj London
Proj Paris

NewYork
Paris
Emp London
Emp Paris
Proj London

Emp Toronto
Proj Toronto


Hình 6.4. S đ l u tr phân tán

II. MÔ HÌNH KI N TRÚC C A H QU N TR C S D

LI U PHÂN TÁN.

Trong các mô hình ki n trúc c a h QTCSDL phân tán đ
tài li u kinh đi n ta xét 3 mô hình ph bi n.

c trình bày trong các

1.1. Mô hình ki n trúc c a h phân tán khách/đ i lý – client/server.
c tr ng c a h này là ch c n ng c a h th ng đ

c chia làm hai l p:

+ Ch c n ng đ i lý – server function
+ Ch c n ng khách hàng – client function.
Trong h th ng khách/đ i lý các thao tác x lý d li u đáp ng yêu c u c a
khách hàng đ u đ c th c hi n b i các ch c n ng đ i lý, ch có k t qu đ c g i tr
cho khách hàng. Ta có mô hình ch c n ng nh s đ
hình 7.5.
H khách có các t ng:
+ Giao di n t ng tác v i ng
trình ng d ng (Application Program), ...

i s d ng (User Interface), các ch

ng


+ H qu n tr c s d li u khách hàng (Client DBMS).
+ Các ph n m m m ng có ch c n ng truy n tin (Communication
Software).
H đ i lý có các t ng:
+ Các ph n m m m ng có ch c n ng truy n tin.
+ T ng ki m soát ng ngh a c a d li u (Semantic Data Controler).
102


+ T ng t i u hóa câu h i (Query Optimizer).
+ T ng qu n lý các giao tác (Transaction Manager).
+ T ng qu n lý khôi ph c (Recovery Manager).
+ T ng h tr th c thi (Run – time Support Processor) .

Client

Operating
H đi u hành
system

+ H đi u hành qu n lý chung và giao ti p v i c s d li u v t lý.
User Interface

Application Program

...

Client DBMS
Communication Software


K t qu

Yêu c u SQL

Communication Software

Server

Operating system

Semantic Data Controler
Query Optimizer
Transaction Manager
Recovery Manager
Run – time Support Processor

DataBase

Hình 6.5. S đ h phân tán client/server
H client/server có u đi m là x lý d li u t p trung, trên đ ng truy n ch có
các gói tin yêu c u (câu h i) và các k t qu đáp ng câu h i, gi m t i đ c kh i l ng
103


truy n tin trên m ng k t h p v i thi t b t i đ i lý r t m nh s t ng t c đ x lý d li u
c a c h th ng.
1.2. Mô hình h phân tán ngang hàng.
User
User

Requets

User
Processor

System
responses

User Interface Handler

External Schema

Semantic Data
Controler
Global Conceptual
Schema
Global Query
Optimizer

Global Execution
Monitor

Data
Processor

Local Query Processor

Local Conceptual
Schema


Local Recovery
Manager

System Logic

Run-Time Support
Processor

Local Internal Schema

DataBase

Hình 6.6. S đ ki n trúc c a h phân tán ngang hàng
104


c đi m n i b t c a h th ng này là d li u đ c t ch c các nút có ch c
n ng nh nhau, đ ng th i s t ch c d li u các nút này l i có th r t khác nhau, t
đó c n ph i có:
+ nh ngh a d li u t i m i v trí: t i m i nút ph i xây d ng l
c c b LIS (Local Internal Schema)
+ Mô t c u trúc logic toàn c c: L
Conceptual Schema).

c đ d li u

c đ khái ni m toàn c c GCS (Global

+ Mô t c u trúc logic t i m i v trí, đi u n y x y ra do nhân b n và phân m nh,
g i là l c đ khái ni m c c b LCS (Local Conceptual Schema).

+ Mô t c u trúc d u li u c a các ng d ng g i là l
(External Schema).

c đ ngo i gi i ES

C u trúc c a h th ng bao g m hai thành ph n chính: B ph n ti p nh n ng i
dùng (User Processor) và b ph n x lý d li u (Data Processor). Hai modun này
đ c đ t chung trên m i máy ch không tách bi t nh h th ng khách/đ i lý.
Các ch c n ng c b n c a t ng modun nh sau:
+ User Interface Handler - Giao ti p ng
d ng k t qu .

i s d ng: Di n d ch yêu c u, đ nh

+ Semantic Data Controler - Ki m soát d li u ng ngh a: D a vào l
khái ni m toàn c c đ ki m tra câu v n tin có th c hi n đ c hay không.
+ Global Query Optimizer - T i u hóa câu h i toàn c c:
th c thi t t nh t trên các nút.



nh ra chi n l

c

+ Global Execution Monitor – i u khi n th c thi câu v n tin toàn c c.
+ Local Query Processor – X lý câu h i c c b
+ Local Recovery Manager – Qu n lý khôi ph c c c b : Qu n lý s nh t quán
khi có s c .
+ Run-Time Support Processor - B ph n h tr th c thi: Qu n lý truy xu t c

s d li u.
1.2. Mô hình h phân tán ph c h p.
S khác bi t c b n so v i h phân tán ngang hàng là
(ho c có không đ y đ ) m t l c đ khái ni m toàn c c.

ch ph c h không có

105


User
System responses

User Requets
Multi DBMS Layer

Query Processor

...

Transaction Manager

Query Processor

Transaction Manager

Scheduler

Scheduler


Recovery Manager

Recovery Manager

Run-Time Support
Processor

Run-Time Support
Processor

DataBase

DataBase

Hình 6.7. S đ ki n trúc c a h phân tán ph c h p
Trong 3 mô hình nêu trên thì mô hình khách/đ i lý đang đ
ch ng t các u đi m c a nó v tính đ n gi n và h u hi u trên m ng.
II. THI T K C S D

c phát tri n và

LI U PHÂN TÁN.

M t c s d li u phân tán d a trên mô hình quan h tr c h t ph i tuân th
các quy t c v chu n hóa cho c s d li u quan h .
phân tán c s d li u có hai
ho t đ ng chính đó là: Phân m nh các quan h và Phân tán các quan h (c p phát các
m nh).
2.1. Các ki u phân m nh.
Trong ph n này ta đang xét h cc s d li u phân tán d a trên các l c đ

quan h , t c là các b ng, nh v y s phân m nh chính là là ho t đ ng chia m t b ng
thành các b ng nh h n.
phân tích s phân m nh ta l y các quan h EMP, PROJ,
PAY, ASG đã mô t ph n trên.
106


EMP
ENo

ASG
EName

Title

ENo

PNo

Resp

Dur

E1

John

Ks. i n

E1


P1

Qu n lý

E2

Mary

Ks. H th ng

E2

P1

Phân tích HT

24

E3

Bill

Ks. C khí

E2

P2

Phân tích HT


6

E4

Bush

Ks. L p trình

E3

P3

T v n

10

E5

Blair

Ks. H th ng

E3

P4

K thu t

48


E6

Tom

Ks. i n

E4

P2

L p trình

18

E7

Algor

Ks. C khí

E5

P2

Qu n lý

24

E8


David

Ks. i n

E6

P4

Qu n lý

48

E7

P3

K thu t

36

E8

P3

Qu n lý

40

PROJ

PNo

12 (tháng)

PAY
PName

Budget

Loc

Title

Sal

P1

Thi t b

150000 Toronto

Ks. i n

4000

P2

CSDL

125000 NewYork


Ks. H th ng

7000

P3

Games

75000 NewYork

Ks. C khí

3500

P4

CAD

Ks. L p trình

2000

100000 Paris

2.1.1. Phân m nh ngang.
Gi s ta có m t yêu c u phân m nh quan h PROJ thành hai b ng PROJ1 và
PROJ2 sao cho m t b ng ch a các d án có ngân sách l n h n 100000 và cái kia ch a
các d án có ngân sách nh h n 100000.
PROJ1

PNo

PName

Budget

Loc

P1

Thi t b

150000 Toronto

P2

CSDL

125000 NewYork

PROJ2
PNo

PName

P3

Games

P4


CAD

Budget

Loc

75000 NewYork
100000 Paris

107


2.1.2. Phân m nh d c
C ng quan h PROJ ta phân m nh thành hai b ng PROJ3 và PROJ4, khóa c a
quan h PNo có m t c hai b ng con.
PROJ3
PNo

PROJ4
PName

Loc

PNo

Budget

P1


Thi t b

Toronto

P1

150000

P2

CSDL

NewYork

P2

125000

P3

Games

NewYork

P3

75000

P4


CAD

Paris

P4

100000

Trong th c t s phân m nh s x y ra vi c k t h p c hai lo i phân m nh và ta
g i là s phân m nh h n h p. M c đ phân m nh tùy theo yêu c u c a ng d ng, phân
m nh quá l n hay quá nh đ u gây ra các hi u ng ph khó ki m soát.
2.1.3. Các quy t c phân m nh.
Các quy t c này nh m đ m b o tính nh t quán c a c s d li u, đ c bi t v
ng ngh a c a d li u.
q1. Tính đ y đ .
N u m t quan h R đ c phân m nh thành các m nh con R1, R2, ..., Rn thì m i
m c d li u ph i n m trong m t ho c nhi u các m nh con.
đây trong phân ngang
thì m c d li u đ c hi u là các b còn trong phân m nh d c là các thu c tính. Quy
t c này đ m b o không b m t d li u khi phân m nh.
q2. Tính tái thi t đ

c.

N u m t quan h R đ c phân m nh thành cácn m nh con R1, R2, ..., Rn thì ph i
đ nh ngh a đ c m t toán t quan h ∇ sao cho R = ∇ Ri
i =1

q3. Tính tách bi t.
Gi s m t quan h R đ


c phân m nh thành các m nh con R1, R2, ..., Rn.

i v i phân m nh ngang m c di đã n m trong m nh Rj thì nó s không n m
trong m nh Rk v i k≠j.
i v i phân m nh d c thì khóa chính ph i đ
còn các thu c tính khác ph i tách r i.
2.2. Ph

c l p l i trong các m nh con,

ng pháp phân m nh ngang.

2.2.1. Các yêu c u v thông tin.
108


ph c v cho các ho t đ ng phân m nh ta c n có các lo i thông tin sau đây:
a1) Thông tin v c s d li u.
ây là thông tin v l c đ d li u toàn c c, ch ra các m i liên k t gi a các
quan h . Ta mô hình hóa s liên k t này b ng m t đ th có h ng, các cung ch m t
liên h k t n i b ng, m i nút là m t l c đ quan h . Quan h
đ u đ ng n i g i là
quan h ch nhân (Owner) còn quan h
cu i đ ng n i g i là quan h thành viên
(Member). ta đ nh ngh a hai hàm Owner và Member t t p các đ ng n i đ n t p các
quan h .
Ví d 6.2:
PAY
Title


Sal

L1
EMP
ENo

EName

PROJ
PNo

Title

PName

Budget

Loc

Dur

L3

L2
ASG
ENo

PNo


Resp

Dur

Ta có các hàm Owner và Member xác đ nh nh sau:
Owner (L1) = PAY, Member (L1) = EMP
Owner (L2) = EMP, Member (L2) = ASG
Owner (L3) = PROJ, Member (L3) = ASG
a2) Thông tin v

ng d ng.

Thông tin v ng d ng có hai lo i: Thông tin đ nh tính dùng đ phân m nh và
thông tin đ nh l ng dùng đ c p phát.
đ

Thông tin đ nh tính v c b n là các v t dùng trong câu v n tin, các v t này
c xây d ng d a trên s phân tích các ng d ng.

nh ngh a v t đ n gi n: Cho l
mi n xác đ nh Di ta có v t đ n gi n
p: Ai θ Value

c đ R = (A1, A2, ..., An) v i thu c tính Ai có

θ ∈ {<, ≤, =, ≥, >, ≠} và Value ∈ Di
109


T p PRi ch a các v t đ n gi n trên quan h Ri. Ví d v i quan h PROJ

ta có t p v t đ n gi n sau: PPROJ = { PName = ‘Xây d ng’, Budget ≤ 100000 }

trên

nh ngh a v t h i s c p: Cho t p PRi = {pi1, pi2, ..., pim} ch a các v t đ n
gi n trên Ri. Ta đ nh ngh a t p các v t h i s c p Mi = {mi1, mi2, ..., mit} nh sau:

∧∈ pik
*

mij =

p P
ik

trong đó

p*ik

Ri

là pik ho c ⎤pik.

đây vì lí do ph c t p nên ta ch xét đ n các ph đ nh c a v t đ ng th c đ n
gi n.
Ví d 6.3: Ta xét quan h PAY có các v t đ n gi n.
p1:

Title = ‘Ks. i n’


p2:

Title = ‘Ks. H th ng’

p3:

Title = ‘Ks. C khí’

p4:

Title = ‘Ks. L p trình’

p5:

Sal ≤ 3500

p6:

Sal > 3500

t đó ta xây d ng đ

c các v t h i s c p nh sau:

m1:

Title = ‘Ks. i n’ ∧ Sal ≤ 3500

m2:


Title = ‘Ks. i n’ ∧ Sal > 3500

m3:

⎤(Title = ‘Ks. i n’) ∧ Sal ≤ 3500

m4:

⎤(Title = ‘Ks. i n’) ∧ Sal > 3500

...
T t nhiên các v t đ n gi n c ng đ c coi là m t b ph n c a các v t h i s
c p và th c ra m3 và m4 có th vi t b ng cách s d ng m t v t t ng đ ng, ch ng
h n: Title ≠ ‘Ks. i n’ ∧ Sal ≤ 3500. N u ta c xây d ng v t h i m t cách máy móc
thì có m t s tr ng h p có th vô ngh a đ i v i quan h .
Các thông tin có liên quan đ n v t h i s c p là đ tuy n h i s c p và t n s
truy xu t.
tuy n h i s c p đo s l ng các b c a quan h đ c truy xu t b i câu
v n tin s d ng v t h i s c p đó. T n s truy xu t đ ch t n s các ng d ng truy
xu t d li u có s d ng câu v n tin s d ng v t h i s c p.
2.2.2. Phân m nh ngang nguyên th y.
110


Phân m nh ngang nguyên th y là m t phép ch n trên quan h ch c a m t l

c

đ R.
Ri = δFi(R)


i = 1, ..., t

đây Fi là m t công th c ch n s d ng m t v t h i s c p mi.
Ví d 6.4: Ta có th phân rã quan h PROJ thành PROJ1 và PROJ2 s d ng các
v t c b n Budget ≤ 100000 và Budget > 100000
PROJ1 = δBudget ≤ 100000 (PROJ)
PROJ2 = δBudget > 100000 (PROJ)
M t v n đ ph c t p là t p các v t h i s c p dùng đ phân m nh có th thay
đ i khi các ng d ng ho t đ ng, s g p r t nhi u khó kh n khi mi n xác đ nh c a
thu c tính là vô h n và liên t c. Ch ng h n khi thêm m t b m i vào PROJ có budget
là 500000 lúc đó ta ph i xem xét là đ t nó vào PROJ2 hay ph i xây d ng thêm PROJ3
và h n ch PROJ2.
PROJ2 = δ100000PROJ3 = δBudget > 400000 (PROJ)
Ví d 6.5: Ta phân m nh PROJ d a vào v trí c a d án.
PROJ1 = δ Loc = ‘Toronto’ (PROJ)
PROJ2 = δ Loc = ‘NewYork’ (PROJ)
PROJ3 = δ Loc = ‘Paris’ (PROJ)
Nh v y t t p Mi các v t h i s c p ta có t p m nh ngang t ng ng Ri i=1..t
đ c xây d ng trên phép ch n s d ng mi, ta g i t p {Ri} là t p các m nh h i s c p.
S các m nh ngang ph thu c vào t p v t h i s c p, nh v y đ phân m nh c n xác
đ nh t p các v t đ n gi n s t o ra các v t h i s c p. M t t p v t đ n gi n s ph i
là m t t p v t có tính đ y đ và c c ti u. Tính đ y đ đ c hi u là xác su t m i ng
d ng truy xu t đ n m t b nào đó trong m t m nh h i s c p nào đó đ c sinh ra nh
t p v t đ n gi n đó đ u b ng nhau. Tính c c ti u đ c hi u là m t v t là th a n u
không có ng d ng nào truy xu t đ n m nh do nó sinh ra.
Ví d 6.6: V i ví d 6.5 ta xác đ nh t p các PPROJ = {Loc = ‘Toronto’, Loc =
‘NewYork’, Loc = ‘Paris’}.
• N u truy xu t theo v trí thì PPROJ là đ y đ

• N u có thêm ng d ng truy các b theo Budget ≤100000 thì PPROJ không
đ y đ . Trong tr ng h p đó ta ph i b xung đ cho PPROJ tr thành đ y
111


đ và lúc này thì ta có PPROJ = {Loc = ‘Toronto’, Loc = ‘NewYork’, Loc
= ‘Paris’, Budget ≤100000, Budget >100000}
Ví d 6.7: Xét PROJ có các ng d ng truy xu t theo v trí và ngân sách nh
trong ví d 6.6
• T p PPROJ nh ví d 6.6 là đ n gi n và c c ti u.
• N u b xung thêm v t đ n gi n PName = ‘Xây d ng’ vào PPROJ thì làm
cho t p v t này không c c ti u vì không có ng d ng nào truy xu t đ n
m nh do nó sinh ra.
đ

Khi m t t p v t là c c ti u thì t t c các v t trong đó đ u sinh ra phân m nh
c truy xu t b i ít nh t m t ng d ng, ta g i nh ng v t đó là có liên đ i.

B

c 1: Thu t toán tìm t p v t đ y đ và c c ti u.

Quy t c c b n v DD&CT: M t quan h ho c m t m nh đ c phân ho ch
thành ít nh t hai ph n và chúng đ c truy xu t khác nhau b i ít nh t m t ng d ng.
Ta g i fi c a PR là m nh fi đ

c sinh ra t m t v t h i s c p trong PR.

Thu t toán COM_MIN
u vào


R là quan h ; PR là t p v t đ n gi n.

u ra

PR’ là t p v t đ n gi n và c c ti u.

Begin
Tìm m t v t pi ∈PR sao cho pi phân ho ch R theo quy t c c b n
DD&CT;
PR’ = {pi};
PR = PR –{pi};
F = {fi} /* fi là m nh h i s c p sinh ra b i pi*/
Do
Begin
Tìm m t pj∈PR sao cho pj phân ho ch m t m nh fk c a PR’
theo quy t c c b n DD&CT ;
PR’ = PR’ ∪{pj} ;
PR = PR –{pj} ;
F = F∪{fj} ; /* fj sinh ra b i pj */
112


If ∃ pk∈PR’ là m t v t không có liên đ i then
Begin
PR’ = PR’ -{pk} ;
F = F-{fk}
End ;
End ;
Until PR’ là đ y đ

End.
B

c 2 : Tính t p v t h i s c p t t p đ y đ và c c ti u.

Vi c tính toán này r t d nh ng hay d n đ n nh ng t p v t h i s c p r t l n
do vi c tính máy móc. Vi c gi n c t p v t h i s c p đ c th c hi n b c th 3.
B

c 3 : Lo i b nh ng v t h i s c p vô ngh a.

Vi c này đ u tiên ph i xác đ nh nh ng v t mâu thu n v i t p các phép kéo
theo. Ví d , PR’ = {p1, p2} v i Att là thu c tính và {V1, V2} là mi n thu c tính c a Att
ta có th gi thi t :
p1 : Att = V1 và p2 : Att = V2
V y ta có các phép kéo theo
(Att = V1) ⇒ ⎡(Att = V2)
⎡(Att = V1 ) ⇒ (Att = V2)
Ta có các v t h i s c p đ

c tính theo quy t c:

m1: (Att = V1) ∧ (Att = V2 )
m2: (Att = V1) ∧ ⎡(Att = V2 )
m3: ⎡(Att = V1) ∧ (Att = V2 )
m4: ⎡(Att = V1) ∧ ⎡(Att = V2 )
Các v t m1 và m4 mâu thu n v i các phép kéo theo chúng ta đã xác đ nh
và vì th chúng ta s lo i nó ra kh i PR’.
B


trên

c 4: Thu t toán tìm t p v t h i s c p có ngh a.

Thu t toán PHORIZONTAL
u vào

R là môt quan h

u ra

M là t p các v t h i s c p có ngh a.
113


Begin
PR’ = COM_MIN (R, PR) ;
Tính t p M các v t h i s c p t PR’ ;
Tính t p các I các phép kéo theo gi a các pi ∈ PR’ ;
For m i mi ∈ M Do
If mi mâu thu n v i I then M = M – {mi}
End.
Ví d 6.8 : Gi s có quan h PAY và PROJ ph i phân m nh ngang nguyên
th y
Gi s ch có m t ng d ng truy xu t PAY, m u tin nhân viên đ c l u tr t i
hai n i. M t n i qu n lý thông tin c a các nhân viên có l ng cao h n 3500 và n i kia
là các nhân viên có l ng t 3500 tr xu ng. Vì v y câu v n tin c a ng d ng s đ c
truy xu t c hai n i. T p v t đ n gi n dùng đ phân ho ch PAY :
p1 : Sal ≤ 3500
p2 : Sal > 3500

T đó ta có t p v t đ n gi n kh i đ u là PR = {p1, p2}. Áp d ng thu t toán
COM_MIN v i kh i đ u i=1 ta có PR’ = {p1}. ây chính là t p đ y đ và c c ti u vì p2
không phân ho ch f1 là m nh h i s c p đ c sinh ra t p1. V y chúng ta có các v t
h i s c p sau :
m1 : Sal ≤ 3500
m2 : ⎡(Sal ≤ 3500) t

ng đ

ng v i (Sal > 3500)

Cu i cùng chúng ta có các m nh ngang nguyên th y c a PAY đ
theo m1 và m2:
PAY2

c phân ho ch

PAY1
Title

Sal

Title

Sal

Ks. i n

4000


Ks. C khí

3500

Ks. H th ng

7000

Ks. L p trình

2000

Gi s có hai ng d ng truy xu t đ n PROJ. M t ng d ng truy xu t theo v trí,
ch ng h n ta có câu truy v n:
Select
From
Where

PName, Budget
PROJ
Loc = Value
114


T đó ta có:
PPROJ = { p1: Loc = ‘Toronto’; p2: Loc = ‘New York’; p3: Loc = ‘Paris’}
M t ng d ng khác truy xu t theo ngân sách, ta thêm vào các v t :
p4: Budget ≤ 100000 và p5: Budget > 100000
Cu i cùng ta có t p các v t đ n gi n là:
PPROJ = { p1: Loc = ‘Toronto’; p2: Loc = ‘New York’; p3: Loc = ‘Paris’; p4:

Budget ≤ 100000; p5: Budget > 100000}
Th c hi n thu t toán COM_MIN v i PPROJ ta th y t p PPROJ là đ y đ và c c
ti u.
Xây d ng t p v t h i s c p M:
m1: Loc = ‘Toronto’ ∧ Budget ≤ 100000
m2: Loc = ‘Toronto’ ∧ Budget > 100000
m3: Loc = ‘New York’ ∧ Budget ≤ 100000
m4: Loc = ‘New York’ ∧ Budget > 100000
m5: Loc = ‘Paris’ ∧ Budget ≤ 100000
m6: Loc = ‘Paris’ ∧ Budget > 100000
m7: p1 ∧ p2 ∧ p3 ∧ p4 ∧ p5
...
Các phép kéo theo hi n nhiên:
i1: p1 ⇒ ⎡p2 ∧ ⎡p3

i5: p5 ⇒ ⎡p4

i2: p2 ⇒ ⎡p1 ∧ ⎡p3

i6: ⎡p4 ⇒ p5

i3: p3 ⇒ ⎡p1 ∧ ⎡p2

i7: ⎡p5 ⇒ p4

i4: p4 ⇒ ⎡p5
Xét trong t p M ch có các v t h i ch a hai v t đ n gi n là không x y ra
mâu thu n v i các phép kéo theo, vì v y chúng ta lo i b h t các v t h i ch gi l i
các v t đó. Nh v y chúng ta có t p v t h i s c p cu i cùng là:
M = {m1, m2, m3, m4, m5, m6}


115


Phân m nh ngang nguyên th y quan h PROJ theo M (l u ý là PROJ1 và
PROJ6 là r ng) chúng ta có:
PROJ2

PROJ3

PNo

PName

P1

Thi t b

Budget

Loc

PNo

150000 Toronto

P2

PROJ4


PName
CSDL

Budget

Loc

125000 NewYork

PROJ5

PNo

PName

P3

Games

Budget

Loc

PNo

75000 NewYork

P4

PName

CAD

Budget

Loc

100000 Paris

2.2.3. Phân m nh ngang d n xu t.
Phân m nh ngang d n xu t đ c đ nh ngh a d a trên m t s phân m nh ngang
m t quan h thành viên c a m t đ ng n i d a theo phép toán ch n trên quan h ch
nhân c a đ ng n i đó, hay ta còn g i đó là s phân m nh quan h thành viên d a trên
c s phân m nh quan h ch nhân.
Cho tr c m t đ ng n i L, ta có: Owner (L) = S và Member (L) = R.
ngh a các m nh ngang d n xu t c a R nh sau:

nh

Ri = R θ Si v i i=1..s
trong đó s là s l ng các m nh ngang trên R, Si = δFi(S) là m nh ngang nguyên th y
đ c xây d ng t v t h i s c p Fi, θ là phép liên k t b ng trên khóa k t n i c a ch
nhân và thành viên.
Ví d 6.9: xét s đ quan h PAY v i EMP có đ
phép liên k t b ng θ: PAY.Title = EMP.Title.
đ

ng k t n i L1, ta đ nh ngh a

Trên quan h PAY ta có MPAY = { m1: Sal ≤ 3500; m2: Sal >3500} t đó PAY
c chia thành các m nh h i s c p PAY1 và PAY2.

PAY1 = δSal ≤ 3500 (PAY)
PAY2 = δSal > 3500 (PAY)
Ta có các m nh ngang d n xu t: EMP1 = EMP θ PAY1
EMP2 = EMP θ PAY2

EMP1
ENo
E1

EMP2
EName
John

Title
Ks. i n

ENo
E4

EName
Bush

Title
Ks. L p trình

116


E2


Mary

Ks. H th ng

E3

Bill

Ks. C khí

E5

Blair

Ks. H th ng

E6

Tom

Ks. i n

E7

Algor

Ks. C khí

E8


David

Ks. i n

S đ liên k t c a c s d li u sau khi phân m nh:
PAY1
Title

PAY2
Title

Sal

L11

Sal

L12

EMP1
ENo EName Title

EMP2
ENo EName Title

L2

PROJ
PNo PName Budget


L3
ASG
ENo

PNo

Resp

Dur

Ta có m t s nh n xét quan tr ng sau đây:
+ Thu t toán phân m nh d n xu t c n có t p các phân ho ch quan h ch nhân thành viên, t p v t liên k t quan h gi a ch nhân và thành viên.
+ N u m t quan h là thành viên c a nhi u h n m t ch nhân thì v n đ s tr
nên ph c t p h n.
+ Phân m nh d n xu t s gây nên phân m nh lan truy n.
2.3. Ph

ng pháp phân m nh d c.

Ý ngh a c a phân m nh d c là t o ra các quan h nh h n đ sao cho gi m t i
đa th i gian th c hi n c a các ng d ng ch y trên m nh đó. Vi c phân m nh d c là
ho t đ ng chia m t quan h R thành các m nh con R1, R2, ..., Rn sao cho m i m nh
con ch a t p con thu c tính và ch a c khóa c a R. V i cách đ t v n đ nh v y thì

117


vi c phân m nh d c không ch là bài toán c a h c s d li u phân tán mà còn là bài
toán c a ngay c h c s d li u t p trung.
Phân m nh d c là m t bài toán h t s c ph c t p, ng i ta đã ch ng minh đ c

r ng n u quan h có m thu c tính không ph i là thu c tính khóa thì s l ng các m nh
d c đ c phân ra là s Bell th m (kí hi u B(m)), s này t ng r t nhanh v i s m l n
và đ t đ n mm. Ch ng h n m=10 thì B(m)≈115.000, v i m=15 thì B(m)≈109, v i m=30
thì B(m)≈1023. Vì v y bài toán phân m nh d c ph i s d ng đ n các thu t gi i
heuristic. Có hai ph ng pháp chính đã đ c nghiên c u đó là ph ng pháp nhóm và
ph ng pháp tách, trong hai ph ng pháp thì ph ng pháp tách t ra có s t i u h n.
Ph ng pháp nhóm: Kh i đ u b ng t p các m nh, m i m nh có m t thu c tính,
t i m i b c ghép m t s m nh l i cho đ n khi th a mãn m t tiêu chu n nào đó.
Ph ng pháp tách: T i m i b c tìm m t phân ho ch có l i cho vi c truy xu t
c a ng d ng trên các thu c tính c a nó.
Thông tin dùng đ phân m nh d c có liên quan đ n các ng d ng, m t m nh
d c th ng ch a các thu c tính th ng xuyên đ c truy xu t chung b i m t ng d ng,
ng i ta tìm cách l ng hóa khái ni m này b ng m t s đo g i là “ái l c” (affinity – ái
l c ho c s lôi cu n). S đo này có th tính đ c khi ta tính đ c t n s truy xu t t i
các thu c tính đó c a ng d ng. Trên c s khái ni m “ái l c” và tính đ c đ s d ng
thu c tính c a các câu v n tin c a ng d ng ng i ta đã xây d ng đ c gi i thu t tách
r t h u hi u.
G i Q = {q1, q2, . . ., qt} là t p các câu v n tin mà ng d ng s truy xu t trên
quan h R(A1, A2, . . ., An). V i m i câu v n tin qi và thu c tính Aj chúng ta s đ a ra
m t giá tr s d ng thu c tính, kí hi u là use (qi, Aj) đ c đ nh ngh a nh sau:
1 n u Aj đ

c v n tin qi s d ng

use (qi, Aj) =
0 trong tr

ng h p ng

c l i.


các giá tr use (qi, *) r t d xác đ nh n u chúng ta bi t đ
CSDL.

c các ng d ng ch y trên

Ví d 6.10: Xét quan h PROJ, gi s các ng d ng s d ng câu v n tin SQL
truy xu t đ n nó:
q1: Tìm ngân sách c a d án theo mã s .
SELECT
FROM
WHERE

Budget
PROJ
PNo = V
118


q2: Tìm tên và ngân sách c a t t c các d án.
SELECT
FROM

PName, Budget
PROJ

q3: Tìm tên c a d án theo v trí.
SELECT
FROM
WHERE


PName
PROJ
Loc = V

q4: Tìm t ng ngân sách d án t i m i v trí.
SELECT
FROM
WHERE

Sum (Budget)
PROJ
Loc = V

thu n ti n ta kí hi u A1 = PNo, A2 = PName; A3 = Budget; A4 = Loc. Chúng
ta có ma tr n sau đây
A1

A2

A3

A4

q1

1

0


1

0

q2

0

1

1

0

q3

0

1

0

1

q4

0

0


1

1

Ta nh n xét r ng giá tr s d ng không ch a thông tin v đ l n c a t n s
d ng, s đo này n m trong đ nh ngh a v s đo ái l c thu c tính aff (Ai, Aj)



aff (Ai, Aj) =
k : use ( q

k

, A i ) = 1 ∧ use ( q

k

,A



j

)=1 ∀ S

ref ( q k ). acc

l


ng

(qk )

l

trong đó ref(qk) là s truy xu t đ n các thu c tính (Ai, Aj) cho m i ng d ng c a qk t i
v trí Sl và acc(qk) là kí hi u s đo t n s truy xu t ng d ng. K t qu tính toán đ c
m t ma tr n vuông nxn và ta g i nó là ma tr n ái l c thu c tính AA.
Ví d 6.11: Ti p t c v i ví d trên và đ cho đ n gi n chúng ta gi s ref(qk) =
1 cho t t c qk và Sl. S đo t n s truy xu t ng d ng gi thi t nh sau:
acc1(q1) = 15
acc1(q2) = 5
acc1(q3) = 25
acc1(q4) = 3

acc2(q1) = 20
acc2(q2) = 0
acc2(q3) = 25
acc2(q4) = 0

acc3(q1) = 10
acc3(q2) = 0
acc3(q3) = 25
acc3(q4) = 0

119


Nh v y chúng ta tính s đo ái l c gi a các thu c tính A1 và A3 và b i vì ng

d ng duy nh t truy xu t đ n c hai thu c tính này là q1 nên ta có:

∑ ∑

aff(A1, A3) =

1

3

k =1

l =1

accl(qk) = acc1 (q1) +acc2 (q1) + acc3 (q1) = 45

Ma tr n ái l c thu c tính đ y đ nh sau:

AA =

A1

A2

A3

A4

A1


45

0

45

0

A2

0

80

5

75

A3

45

5

53

3

A4


0

75

3

78

Thu t toán t nhóm.
M c tiêu c a thu t toán này là tìm m t ph ng pháp nào đó đ nhóm các thu c
tính c a m t quan h l i d a trên các giá tr ái l c thu c tính trong AA. Ý t ng chính
c a thu t toán là t m t ma tr n ái l c thu c tính AA sinh ra m t ma tr n ái l c t CA
d a trên các hoán v hàng và c t, hoán v đ c th c hi n sao cho s đo ái l c chung
AM là l n nh t.
AM =

n

n

i=1

j=1

∑ ∑

aff(Ai,Aj).[aff(Ai,Aj-1) + aff(Ai,Aj+1) + aff(Ai-1,Aj) +aff(Ai+1,Aj)]

trong đó aff(A0,Aj) = aff(Ai,A0) = aff(An+1,Aj) = aff(Ai,An+1) = 0 là các đi u ki n biên
khi m t thu c tính đ c đ t vào CA vào bên trái c a thu c tính c n trái ho c v bên

ph i c a thu c tính c n ph i trong các hóan v c t, t ng t c n trên d i đ i v i hoán
v hàng. Vì ma trân ái l c AA có tính đ i x ng nên công th c trên có th thu g n:
AM =

n

n

i=1

j=1

∑ ∑

aff(Ai,Aj).[aff(Ai,Aj-1) + aff(Ai,Aj+1)]

Chúng ta đ nh ngh a c u n i (bond) gi a hai thu c tính Ax và Ay là:
n

bond(Ax,Ay) = ∑ aff(Az,Ax).aff(Az,Ay)
z =1

120


d a vào đ nh ngh a đó chúng ta có th vi t l i AM nh sau:
n

AM =




[bond(Aj,Aj-1) + bond(Aj,Aj+1)]

j =1

Bây gi chúng ta xét dãy thu c tính nh sau:
A1 ... Ai-1

Ai Aj Aj+1 ... An

AM’

AM’’

s đo ái l c chung cho các thu c tính này là:
AMold = AM’+AM ’’+ bond(Ai-1,Ai)+bond(Ai,Aj)+bond(Aj,Ai)+bond(Aj,Aj+1)
= AM’+AM ’’+ bond(Ai-1,Ai)+bond(Aj,Aj+1)+ 2bond(Ai,Aj)
Khi đ t m t thu c tính m i Ak gi a các thu c tính Ai và Aj thì s đo ái l c
chung m i là:
AMnew = AM’+AM ’’+ bond(Ai-1,Ai)+
bond(Ai,Ak)+bond(Ak,Ai)+bond(Ak,Aj)+bond(Aj,Ak)+bond(Aj,Aj+1)
= AM’+AM ’’+ bond(Ai-1,Ai)+bond(Aj,Aj+1)+
2bond(Ai,Ak) + 2bond(Ak,Aj)
óng góp th c cho s đo ái l c chung khi đ t Ak gi a Ai và Aj là:
cont(Ai,Ak,Aj) = AMnew – AMold = 2bond(Ai,Ak) + 2bond(Ak,Aj) - 2bond(Ai,Aj)
Ví d 6.12: V i ma tr n AA đ c tính
thu c tính A4 vào gi a các thu c tính A1 và A2:

trên, tính đóng góp th c khi chuy n


cont(A1,A4,A2) = 2bond(A1,A4) + 2bond(A4,A2) - 2bond(A1,A2)
Ta có:
bond(A1,A4) = 45*0 + 0*75 + 45*3 + 0*78 = 135
bond(A4,A2) = 11865
bond(A1,A2) = 225
vì v y: cont(A1,A4,A2) = 2*135 + 2*11865 – 2*225 = 23550
Thu t toán n ng l

ng n i BEA (Bond Energy Algorithm)

Thu t toán n ng l
đ

ng n i đ

c th c hi n qua ba b

c.

B1. Kh i gán. t và c đ nh m t trong các c t c a AA vào trong CA. C t 1
c ch n trong thu t toán này.

121


B2. Th c hi n l p. L y l n l t m t trong n-i c t còn l i (i là s c t đã đ t vào
trong CA) và th đ t chúng vào i+1 v trí còn l i trong ma tr n CA. N i đ t đ c ch n
sao cho nó đóng góp nhi u nh t cho s ái l c chung đ c mô t
trên. Vi c l p đ c

k t thúc khi không còn c t nào đ đ t
đ

B3. S p th t hàng. M t khi th t c t đã đ c xác đ nh, các hàng c ng c n
c đ t l i đ các v trí t ng đ i c a chúng phù h p v i các v trí t ng đ i c a c t

Thu t toán BEA
u vào:

AA ma tr n ái l c thu c tính

u ra:

CA ma tr n ái l c t .

Begin
/* Kh i gán */
CA(*,1) := AA(*,1) ;
CA(*,2) := AA(*,2) ;
index := 3 ;
While index <= n Do /*Ch n v trí t t nh t cho thu c tính AAindex */
Begin
For i :=1 To index -1 Do tính cont (Ai-1,Aindex,Ai);
tính cont (Aindex-1, Aindex, Aindex+1);
loc := n i đ t đ

c ch n b i giá tr cont l n nh t

For j := index DownTo loc Do CA(*,j) := AA(*,j-1);
CA(*,loc) := AA(*,index);

index := index + 1
End
S p th t các hàng theo th t t

ng đ i c a c t.

End.
Ví d 6.13. Ti p t c v i nh ng k t qu tính toán nh ng ví d trên, chúng ta
xem xét quá trình gom t các thu c tính c a quan h PROJ.
Kh i đ u chúng ta đ t c t 1 và 2 c a AA vào ma tr n CA. Ti p theo chúng ta
xét c t 3 (thu c tính A3), có ba cách đ t mô t theo v trí là 3-1-2, 1-3-2 ho c 1-2-3.
Chúng ta tính đóng góp cho s đo ái l c chung c a m i kh n ng này :
122


Th t 0-3-1 :
cont(A0,A3,A1) = 2bond(A0,A3) + 2bond(A3,A1) - 2bond(A0,A1)
chúng ta bi t r ng bond(A0,A1) = bond(A0,A3) = 0, vì v y:
cont(A0,A3,A1) = 2bond(A3,A1) = 2(45*48+5*0+53+45+3*0) = 8820
Th t 1-3-2 :
bond(A1,A3) = bond(A3,A1) = 4410
bond(A3,A2) = 890
bond(A1,A2) = 225
cont(A1,A3,A2) = 2bond(A1,A3) + 2bond(A3,A2) - 2bond(A1,A2) = 10150
Th t 2-3-4 :
bond(A1,A4) = 890
bond(A3,A4) = bond(A2,A4) = 0
cont(A2,A3,A4) = 2bond(A2,A3) + 2bond(A3,A4) - 2bond(A2,A4) = 1780
Trong nh ng cách tính toán trên l u ý r ng c t A0 và c t A4 là các v trí r ng
c a ma tr n CA trong ng c nh hi n t i, không đ c nh m l n v i thu c tính A4.Ta

th y th t 1-3-2 có s đóng góp l n nh t nên v trí này đ c ch n.
A1

A2

A1

A3

A2

A1

45

0

A1

45

45

0

A2

0

80


A2

0

5

80

A3

45

5

A3

45

53

5

A4

0

75

A4


0

3

75

(a)

(b)

A1

A3

A2

A4

A1

45

45

0

0

A2


0

5

80

A3

45

53

A4

0

3
(c)

A1

A3

A2

A4

A1


45

45

0

0

75

A3

45

53

5

3

5

3

A2

0

5


80

75

75

78

A4

0

3

75

78

(d)
123


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×