You are on page 1of 10

Ni dung:

Tp trung:
- Tnh quan h v phi (thn qui tc) thut ton
- Tnh biu thc quan h
Gii phng trnh i s quan h
+ Datalog quy
+ Datalog khng quy
Chng I. Ngn ng logic bc nht:
a/. Herbrand
Gi s P l chng trnh Datalog. Lc :
V tr Herbrand ca P, k hiu UP, l tp tt c cc hng thc nn ca P (xy dng t cc
hng).
C s Herbrand ca P, k hiu BP, l tp tt c cc nguyn t nn ca P (xy dng t cc k
hiu v t).
Th hin Herbrand hoc n gin ta ch gi l th hin, l mt tp con I bt k ca c s
Herbrand BP ca P.
- Nu A I, ta ni rng s kin A ng trong I v vit I
A.
- Nu A BP nhng A I, ta ni rng A sai trong I v vit I

A.

Tm m hnh nh nht (im bt ng nh nht)


V d: Cho ngn ng bc nht L c a: hng, hm S, v t p, q
Chng trnh logic P:
r1: p(a)
r2: p(S(X) p(X)
r3: a(X,a,X) p(X)
r4: q(X, S(Y),S(Z)) q(X,Y,Z)
Tm tp v tr Herbrand v c s Herbrand
Gii
- V tr Herbrand
u = {a, S(a), S(S(a)), }
- C s Herbrand
BL = {p(a), p(S(a)), , q(a,a,a), q(a,a,S(a)), q(a, a, S(S(a))), , q(a,S(a),a), q(a, S(S(a)),a),
, q(S(a),a,a), q(S(S(a)),a,a),}
V d 1.9 Cho ngn ng L
- c a, b l cc hng
- f, g l cc k hiu hm mt bin
- p l k hiu v t mt bin
Tm tp v tr Herbrand v c s Herbrand
Gii
- V tr Herbrand: U = {a,b,f(a),f(b),f(f(a)),...}
- C s Herbrand: HB = { p(a), p(b), p(f(a)),...}
V d 1.10 Cho ngn ng bc nht L bao gm :
- Hng a
- K hiu hm s
- V t p, q
- Chng trnh logic P :
r1 : p(a)

r2 : p(s(X)) p(X)
r3 : q(X,a,X) p(X)
r4 : q(X,s(Y),s(Z)) q(X,Y,Z)
Gii
U= {a, s(a), s(s(a)),...}
HB={p(a), p(s(a)),..., q(a,a,a), q(a,a,s(a)), q(a,a,s(s(a)),..., q(a,s(a),a), q((a,s(s(a)),a),...}
Ta nh ngha mt php th hin Hebrand ca ngn ng L nh sau :
Hng a c gn bi chnh n.
K hiu hm s c gn bi nh x : sI : X s(X), XU
K hiu v t p c gn bi nh x : pI : x true xU
K hiu v t q c gn bi nh x : qI : (x,y,z) true nu : n(x) + n(y) = n(z) trong
n(t) l s k hiu s c mt trong hng thc t.
Nhn xt: i vi mi php th hin Herbrand th php gn cc hng, cc k hiu hm l khng
thay i, ch khc l php gn cc k hiu v t. Nh vy cc php th hin Herbrand ch khc
nhau bi gi tr chn l ca cc nguyn t nn.
Gi I l tp tt c cc nguyn t nn c gi tr chn l l true trong c s Herbrand. Tp hp I
c gi l php th hin Herbrand.
V d 1.11 Cho ngn ng bc nht L bao gm :
- Hng a,b,c
- K hiu v t p,q,r
- V t p, q
- Chng trnh logic P:
r(a,b)
r(b,c)
p(X,Y) r(X,Y)
q(X,Y) r(X,Z)p(Z,Y)
Gii
U={a,b,c}
HB={r(a,b),r(b,c),r(a,c),r(b,a),r(c,b),r(c,a),r(a,a),r(b,b),r(c,c),
p(a,b),p(b,c),p(a,c),p(b,a),p(c,b),p(c,a),p(a,a),p(b,b),p(c,c),
q(a,b),q(b,c),q(a,c),q(b,a),q(c,b),q(c,a),q(a,a),q(b,b),q(c,c)}
Tp I = {r(a,b), p(a,b), q(b,c)} l php th hin Herbrand:
rI : (a,b) true
(x,y) false (x,y) (a,b)
pI : (a,b) true
(x,y) false (x,y) (a,b)
qI : (a,b) true
(x,y) false (x,y) (b,c)
(Xem li kt qu)
V d 1.13 Xt chng trnh Datalog P gm cc quy tc nh sau:
q(a,b)
q(b,c)
p(X,Y) q(X,Y)
p(X,Y) p(X,Z) p(Z,Y)
V tr Herbrand ca P l UP = { a, b, c }

v c s Herbrand ca P l: BP = { p(a,a), p(a,b), p(a,c), p(b,a), p(b,b), p(b,c), p(c,a), p(c,b),


p(c,c), q(a,a), q(a,b), q(a,c), q(b,a), q(b,b), q(b,c), q(c,a), q(c,b), q(c,c) }
Xem thm V d 1.10 v 1.11 trang 19 Sch gio trnh
V d 1.15 Xt chng trnh Datalog sau y:
r1: p(X) q(X,Y)
r2: q(X,Y) r(X) s(X,Y)
trong p, q l cc v t IDB, r v s l cc v t EDB. Gi s CSDL EDB l {r(1), s(1,2)}.
Xt th hin M1 = {r(1), s(1,2), q(1,2), p(1)}. Khi thay X = 1, Y = 2 vo quy tc r1 v r2
u lm cho r1 v r2 u ng nn M1 l mt m hnh.
Cng vy, vi th hin M2 = {r(1), s(1,2), q(1,2), p(1), p(2)} th M2 cng l m hnh. Tuy
nhin, vi th hin M3 = {r(1), s(1,2), q(1,2)} th M3 khng phi l mt m hnh. L do l khi
thay X = 1, Y = 2 vo r1 ta c mt gi thit ng v mt kt lun sai.
Trong v d ny, c th thy rng c mt s lng v hn cc m hnh ph hp vi CSDL
{r(1), s(1,2)}. Th hin M1 l mt m hnh c bit, bi v n l m hnh cc tiu, theo ngha l
chng ta khng th lm cho mt s kin ng trong m hnh tr thnh thnh sai m vn nhn
c m hnh. rng m hnh M2 khng c c tnh ny, chng hn c th loi b s kin
p(2), ngha l xem p(2) l sai, kt qu nhn c cng l mt m hnh. Hn na, m hnh cc
tiu M1 l duy nht ph hp vi CSDL {r(1), s(1,2)}.
VD: Cho
r1(a, b)
r1(a, d)
fact
r2(a, c)
r2(b, c)

rule

p1(X, Y) r1(X, Y)
p1(X, Y) r1(x, Z) ^ p1(Z, Y)
p2(X, Y) r2(X, Y)
p2(X, Y) r2(X, Z) ^ p2(Z, Y)
p3(X, Y) p1(X, Z) ^ p2(Z, Y)

u = {a, b, c, d}
I1 = {r1(a, b), r2(a, c), p1(a, a), p2(a, b), p2(b, b), p3(a, a)}
I2 = {r1(a, b), r1(a, d), r2(a, c), r2(b,c), p1(a, b), p1(a, d), p2(a, c), p2(b, c), p3(a,c)}
I1, I2 c phi l m hnh?
Gii
Xt cc lut trn I1, ta c r(a, d) false nn I1 khng phi m hnh.
Xt cc lut trn I2:
- phn fact tha mn
- phn rule: p1(X, Y) = true; p2(X, Y) = true; p3(X, Y) = ?, cn chng minh p3 = true
Ta c:
p1(a, b) = true
p1(X, Z) = true
nn
p2(b, c) = true
p2(Z, Y) = true
p3(X, Y) = true
I2 l m hnh
V d 1.12 Cho chng trnh logic P :
r(a)
p(X) q(X)
q(X) p(X)

C s HB = { r(a), p(a), q(a)}


I1, I2 c phi l m hnh?
HB I1 = { r(a), p(a) }
r(a) = true
p(a) = true
q(a) = false (do q(a) khng c trong I1)
HB I2 = { r(a), q(a) }
r(a) = true
p(a) = false (do q(a) khng c trong I1)
q(a) = true
Xt cc lut th I1, I2 khng phi l m hnh
Cho chng trnh logic P :
r(a)
p(X)

q(X)

q(X)
p(X)
C s HB = { r(a), p(a), q(a)}
I1 = { r(a), p(a) } v I2 = { r(a), q(a) } l cc m hnh cc tiu.
P khng c m hnh nh nht.
Bi tp:
BT1: r(a)
s(b)
p(X) r(X)
q(X) r(X)
Trong cc tp d liu sau, tm tp m khi thay vo cc rule u cho gi tr true?
I0 = {r(a), s(b), p(a), q(a)} (ng)
I1 = {r(a), s(b), p(a), q(a), p(b)} (sai do p(b) sai)
I2 = {r(a), s(b), p(a), q(a), q(b)} (sai do q(b) sai)
I3 = I1 {q(b)} (sai nh I2)
Gii: Tp tha mn l tp: I1
Chng 2: Chng trnh Datalog
1/. Khi nim:
Chng trnh Datalog = chng trnh logic dng khng cha k hiu hm => TP n iu
tng
=> LFP(TP) m hnh nh nht ca chng trnh Datalog
2/. Tm m hnh nh nht chng trnh Datalog
(Da vo Mnh 2.1 Sch gio trnh trang 45)
Cho P l chng trnh Datalog: M hnh nh nht ca P l gii hn ca dy TPn, nN, trong
TP0 = ; TP(i+1)= TP(TPi)
T mnh ny ta c thut ton:
Thut ton 2.1
Vo: Chng trnh Datalog P v DB l CSDL EDB cho.
Ra: M hnh nh nht ca P.
Phng php: Thut ton c vit theo ngn ng ta Pascal nh sau:
I := ;
J :=Tp(DB);

while J < > I do


begin
I := J;
J := Tp(DB I);
end;
output I;
V d 2.7 Xt chng trnh Datalog P gm cc quy tc:
r1 : path(X,Y) arc(X,Y)
r2 : path(X,Z) arc(X,Y) path(Y,Z)
Gi s th hin Herbrand I ca chng trnh c cho bi:
I = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)}
Cc bc lp tnh m hnh nh nht ca P:
Tm m hnh nh nht
Gii
I0 = TP0 =
I1 = TP1 = TP(I0) = {arc(1,2), arc(2,3), arc(3,4), arc(4,5)}
I2 = TP2 = TP(I1) = I1{path(1,2), path(2,3), path(3,4), path(4,5)}
I3 = TP3 = TP(I2) = I2{path(1,3), path(2,4), path(3,5)}
I4 = TP4 = TP(I3) = I3{path(1,4), path(2,5)}
I5 = TP5 = TP(I4) = I4{path(1,5)}
I6 = TP6 = TP(I5) = I5
Nh vy im bt ng nh nht ca TP chnh l TP(I5), cng chnh l m hnh nh nht
ca P.
Ch : Trong thut ton 2.1, cu lnh J := Tp(DB I) c th thc hin bng cch s dng cc
php ton trong i s quan h. Ullman a ra thut ton chuyn i cc quy tc ca chng
trnh Datalog P thnh cc phng trnh i s quan h v t cc phng trnh i s quan h ny
s xc nh c m hnh nh nht ca P. Phn tip theo s trnh by chi tit v vn ny.
(Xem thm sch trang 28, 29)
Thut ton 2.5
Vo: Chng trnh Datalog P, DB l CSDL EDB cho.
Ra: M hnh nh nht ca P
Phng php: Thc hin theo cc bc sau:
1. Xy dng cc thnh phn lin thng mnh ca chng trnh Datalog P v sp xp chng theo
mt th t tuyn tnh.
2. Gi S1,..., Sk l cc nh ca th ph thuc thu gn ca P, thc hin vic nh s hiu mc
cho cc nh Si, i = 1,..., k.
3. Gi Pi l tp cc quy tc trong P nh ngha cc v t thuc mc i. Qu trnh tnh ton c
thc hin theo mi mc. D liu vo ca mi mc l li gii ca chng trnh mc trc .
Gi EVAL P (DB) l li gii vic nh gi chng trnh P i theo thut ton bn s ng vi CSDL
EDB l DB cho. Bc 3 c vit theo ngn ng ta Pascal nh sau:
I := ;
for i := 1 to h do /* h l s mc ca chng trnh */
I := EVAL P ( DB I ) ;
output I;
I := ;
J := TP(DB);
While J <> I do
Begin
i

I := J;
J := TP(DBI);
End;
output I;
Ch :
- V t xut hin c u v thn qui tc c gi l IDB
- V t xut hin trong thn qui tc nhng khng xut hin u qui tc gi l EDB
N 1.9 (ti liu) Ch : Cc v t EDB ch xut hin trong thn ca quy tc cn cc v t IDB c
th xut hin c thn v u ca quy tc. V t c ci sn ch c xut hin trong thn quy
tc.
3/. Quan h v phi qui tc (quan h trong thn qui tc)
VD: 1) p(x,y) r(x,y)
2) p(x,y) p(x,z) p(z,y)
ng vi qui tc (1) quan h v phi l R(x,y)
(2) quan h v phi l xy ( p ( x, z ) >< p( z , y )

Quan h tng ng vi v t p: R x, y xy
4/. V t xy dng trong
Trong chng trnh Datalog, ngi ta thm v t so snh s hc v phi qui tc gl v t xy
dng trong.
- t1 t2 =, , <, <=, >, >=
- Tp n iu tng tn ti im bt ng nh nht
5/. nh gi chng trnh Datalog
a/. Khng qui (sch trang 52) thut ton 3.1
VD 3.6 Sch (trang 54) (V d 2.7 ti liu trang 30)
Cho quy tc r :
p(X,Y) q(a,X) r(X,Z,X) s(Y,Z)
Tm quan h i vi thn qui tc r?
Gi s Q, R v S l cc quan h tng ng vi cc ch con q, r, s. Bi v ch con u tin i
hi cc b ca Q c thnh phn u tin l a nn ta cn xy dng mt quan h vi thuc tnh l X
v ch cha cc thnh phn th hai ca nhng b ny, nh vy ta nh ngha quan h :
T(X) = 2 ( $1 a (Q ))
T(X) = 2 ( $1 a (Q )) c xy dng t bc 1 ca thut ton t ch con u tin q(a,X) ca
quy tc cho, T(X) chnh l Q1 trong thut ton.
Quan h R c thnh phn th nht v thnh phn th ba l cc bin ging nhau nn ta nh ngha
quan h i vi ch con ny :
U(X,Z) = 1, 2 ( $1$3 ( R ))
U(X,Z) = 1, 2 ( $1$3 ( R )) l Q2 c xy dng t ch con th hai r(X,Z,X).
Q3 c xy dng t ch con th ba S(Y,Z) chnh l S(Y,Z).
Do quy tc ny khng c cc ch con xy dng trong nn bc 2 v bc 4 c b qua. Vy
:
EVAL-RULE(r,Q,R,S) = T(X) U(X,Z) S(Y,Z) l biu thc cui cng ca thn quy tc
ny.
Quan h ny bao gm cc b (x,y,z) tha mn :
1. (a,x) thuc Q
2. (x,z,y) thuc R v y=x
3. (y,z) thuc S
V d 3.7 Xt quy tc:

cousin(X,Y) parent(X,Xp) parent(Y,Yp) sibling(Xp,Yp)


Gi s quan h P,S c tnh i vi cc v t parent v sibling tng ng. Quan h i vi thn
quy tc ny l:
R(X,Xp,Y,Yp) = P(X,Xp) P(Y,Yp) S(Xp,Xp)
(1)
Quan h R(X,Xp,Y,Yp) bao gm cc b (a,b,c,d) tha mn :
1. (a,b) thuc P
2. (c,d) thuc P v
3. (b,d) thuc S.
V d 3.8 Xt quy tc:
sibling(X,Y) parent(X,Z) parent(Y,Z) XY
Quan h i vi thn quy tc ny l :
Q(X,Y,Z) = X Y ( P ( X , Z ) P (Y , Z )) (2)
Quan h Q(X,Y,Z) bao gm cc b (x,y,z) tha mn :
1. (x,z) thuc P
2. (y,z) thuc P v
3. xy
VD: cui bui sng 31/3/2012
Cho p ( X , Y ) r ( X , Y , a ) ><q (Y , a, Z ) Z X

XY ( $3a ( R )

YZ ( $2a (Q))

$1 ( R )

Ni t nhin ta c biu thc E


Quan h v phi ca qui tc R l: EVAL _ RULE r F ( E )
VD:

P ( X , Y , Z ) r1 ( X , Y , a ) r2 ( X , Z , Z ) r3 (Y , b) Y Z X b
Y Z X b ( XY ( $3a ( R1)) >< XZ ( $2$3 ( R 2)) ><Y ( $2b ( R3)) ><$2 ( R 2) ><{b}( X )

Cc qui tc chnh tc: Sch trang 50


VD: 3.9 trang 57 Sch gio trnh
Cho chng trnh Datalog nh sau :
(r1) p(a,Y) r(X,Y)
(r2) p(X,Y) s(X,Z) r(Z,Y)
(r3) q(X,X) p(X,b)
(r4) q(X,Y) p(X,Z) s(Z,Y)
Trong r, s l cc v t EDB c cc quan h cho trc R, S
V t p, q l cc v t IDB, i vi mi v t ny ta cn tnh cc quan h P v Q.
Gii
Do chng trnh P cha qui tc r3 khng chnh tc nn trc ht ta bin i cc quy tc ny
ca P (ch cn sa i quy tc (r1) v (r3)), ta c cc quy tc mi nh sau :
Lm nhp: Xem sch trang 51
r1: p(a,Y) r(X,Y)
r1: p(X,Y) r(X,Y) X=a Y= Y
(r1)

p(X,Y) r(Z,Y) X=a

(r2) p(X,Y) s(X,Z) r(Z,Y)


(r3) q(X,Y) p(X,b) X=Y
(r4) q(X,Y) p(X,Z) s(Z,Y)
Th t thch hp lm vic l p trc ri n q v q ph thuc vo p nhng khng o li.
Theo thut ton 3.1 th quan h i vi thn quy tc (r1) l : R(Z,Y) DX(X) trong DX(X) =
{a}, quan h i vi thn quy tc (r2) l : S(X,Z) R(Z,Y). C hai biu thc ny phi chiu
ln danh sch cc thuc tnh X,Y trc khi ly php hp. Nh vy biu thc i vi P l :
P(X,Y) = X ,Y ( R( Z , Y ) {a}( X )) X ,Y ( S ( X , Z ) R( Z , Y ))
Quan h i vi quy tc r3 c tnh nh sau : Dng thut ton 3.1, biu thc i vi ch con
p(X,b) l
:
X ( Z b ( P ( X , Z ))

y Z l bin c chn ty khng xut hin trong php chiu


Biu thc ny sinh ra mt quan h trn thuc tnh X v ta cn mt biu thc m c th to ra tt
c cc gi tr c th c ca Y. Do Y=X nn cc gi tr ca X c th l gi tr ca Y, v vy ta c
th ly mt i s X xut hin, chnh l i s u tin ca P, lm thnh mt min ca Y.
Nh vy min ny c th c th biu th bi Y ( P (Y , W )) , w l bin ty . Sau ta ly tch
ca cc biu thc i vi p(X,b) vi min ca Y, ta chn X=Y do ch con X=Y trong quy tc
(r3). Vy biu thc ca thn quy tc (r3) l :
X Y X ( Z b ( P( X , Z ))) Y ( P(Y , W ))
Cui cng, biu thc i vi thn quy tc (r4) l : p(X,Z) S(Z,Y)
vy biu thc i vi quan h Q l :
Q(X,Y)= X Y X ( Z b ( P( X , Z ))) Y ( P(Y , W )) X ,Y ( P ( X , Z ) S ( Z , Y ))
V d 3.10 Xt chng trnh Datalog:
(1)
sibling(X,Y) parent(X,Z) parent(Y,Z) XY
(2)
cousin(X,Y) parent(X,Xp) parent(Y,Yp) sibling(Xp,Yp)
(3)
cousin(X,Y) parent(X,Xp) parent(Y,Yp) cousin(Xp,Yp)
(4)
related(X,Y) sibling(X,Y)
(5)
related(X,Y) related(X,Z) parent(Y,Z)
(6)
related(X,Y) related(Z,Y) parent(X,Z)
Gi S ,C v R ln lt l quan h tng ng vi cc v t IDB sibling, cousin, ralated, P l quan
h tng ng vi cc v t EDB parent.
T chng trnh Datalog trn ta c h phng trnh i s quan h sau y:
S ( X , Y ) X ,Y ( X Y ( P ( X , Z )

C ( X , Y ) X ,Y ( P ( X , X p )

P (Y , Z )))

P (Y , Y p ) S ( X P , Y p ))

X ,Y ( P ( X , X p ) P (Y , Y p ) C ( X P , Y p ))
R ( X , Y ) S ( X , Y ) X ,Y ( R ( X , Z )

P (Y , Z )) X ,Y ( R ( Z , Y )

P ( X , Z ))

Chng trnh Datalog khng qui


Chng trnh datalog khng qui th G(p) khng c chu trnh, nn ta c th sp xp li
th t ca cc v t pi (i = 1 .. n) sao cho nu i < j th khng cha qui tc no vi pi l u v pj
trong thn.

VD: r1, r2 l cc v t EDB vi quan h R1, R2 tng ng cho, cc v t IDB p1, p2, p3, p4 c
quan h cn tm t chng trnh datalog nh sau:
p2(X, Y) r1(X, Z) ^ r2(Z, Y)
p1(X, Y) r1(X, Z) ^ p2(Z, Y)
p1(X, Y) r2(X, Z) ^ p3(Z, Y)
p3(X, Y) p4(X, Z) ^ r2(Z, Y)
p4(X, Y) r1(X, Y)
Tm chng trnh datalog?
Gii
V ra th, ta thy

Sau khi sp xp li ta c:
p1(X, Y) r1(X, Z) ^ r2(Z, Y)
p4(X, Y) r1(X, Z) ^ p1(Z, Y)
p4(X, Y) r2(X, Z) ^ p3(Z, Y)
p3(X, Y) p2(X, Z) ^ r2(Z, Y)
p2(X, Y) r1(X, Y)
Phng trnh i s quan h biu din nh sau:

p1 XY ( R1 ><R2 )
p2 XY R1

p2 R1

p3 XY ( p2 ><R2 )
p4 XY ( R1 >< p1 ) U XY ( R2 >< p3 )
* Chng trnh Datalog an ton
Cc qui tc an ton: Sch trang 49
- Bin b chn
VD: p(x,y) q(x,z);
x, z b chn
p(x,y) q(x)Y=X
* Vit chng trnh Datalog qui
th G(p) c chu trnh khng thc hin c sp xp tp ca cc v t trong chng trnh
Trong trng hp ny, h phng trnh i s quan h c gii bng phng php lp (da
trn nguyn l im bt ng)

VD: p1(X, Y) r1(X, Y)


p2(X, Y) r2(X, Y)
p1(X, Y) r1(X, Z) ^ p1(Z, Y)
p2(X, Y) r2(X, Z) ^ p2(Z, Y)
p3(X, Y) p1(X, Z) ^ p2(Z, Y)
R1 = {(a, b), (a, c), (b, d), (d, e)}
R2 = {(b, a), (a, d), (d, f)}
Gii

p1 R1 U XY ( R1 >< p1 )
p2 R2 U XY ( R2 >< p2 )
p3 XY ( p1 >< p2 )
R1
ab ac bd de
ab ac bd de
ab ac bd de

R2
ba ad df
ba ad df
ba ad df

p1
p2
1

2
ab ac bd de
ba ad df
3
ab ac bd de
ba ad df
ad be
bd af
4 ab ac bd de
ba ad df
ab ac bd de
ba ad df
ad be
bd af
ae
bf
5 ab ac bd de
ba ad df
ab ac bd de
ba ad df
ad be
bd af
ae
bf
Bc 5 khng c pht sinh g mi so vi bc4 nn dng.

p3

aa bf
aa bf
ad af
aa bf
ad af

You might also like