datalog seminarski rad
TRANSCRIPT
-
7/21/2019 Datalog seminarski rad
1/14
SVEUILITE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A D I N
Matej Vuko!"
DATALOG
SEMINARSKI RAD
Va#a$%!&' ()*+,
-
7/21/2019 Datalog seminarski rad
2/14
SVEUILITE U ZAGREBU
FAKULTET ORGANIZACIJE I INFORMATIKE
V A R A D I N
Matej Vuko!"
Mat!-&! .#oj/ 0)0102**3R
Stu%!j/ I&4o#5a6!j7k! 7u7ta!
Datalog
SEMINARSKI RAD
Me&to#/
Doc.dr.sc. Markus Schatten
Varadin, travanj 2013.
-
7/21/2019 Datalog seminarski rad
3/14
Sa%#$aj
1.Uvod.........................................................................................................................................42.Openito o Data!o"u................................................................................................................#
2.1.$ovijest Data!o"a..............................................................................................................%
2.2.Sustavi &a'irani na Data!o"u (i!i "a u se&i sadre)...........................................................%
3.Sintaksa Data!o"a.....................................................................................................................*
3.1 +rojevi...............................................................................................................................*
3.2 onstante, varija&!e i nepo'nanice...................................................................................*
3.3 -er, ato, uvijeti, !itera!i................................................................................................/
3.4 $ravi!a i pro"rai............................................................................................................../4. Uspored&a sa $ro!o"o i So.......................................................................................11
#. $rijeri..................................................................................................................................12
%. ak!juak...............................................................................................................................13
5. iteratura..............................................................................................................................14
3
-
7/21/2019 Datalog seminarski rad
4/14
*, Uo%
ada se "ovori o upitni je'icia 'a &a'e podataka, &itno je i'dvojiti tri najvanija.
S kao najra6ireniji i vjerojatno najjednostavniji je'ik 'a uprav!janje podacia unutar
re!acijskih &a'a podataka, -utoria! D kao predstavnik Da, odnosno i!ustracija koju su 7.8.
Date i 9. Dar:en napravi!i da &i poka'a!i 6to &i D tre&ao &iti, te Data!o".
U ovo seinaru &aviti u se Data!o"o i nje"ovo prijerno. a poetak u
pojasniti 6to je to 'apravo Data!o", kako je nastao i koji su se pro&!ei oko nje"a ve'a!i u
povijesti. asnije u se a!o po'a&aviti sintakso Data!o"a kro' prijer pojasniti kako se
rade pravi!a unutar nje"a te na kraju dati uspored&u sa So i $ro!o"o. ;a sao kraju
u poka'ati neko!iko prijera upita i re'u!tata. 7i!j ovo" seinara je de
-
7/21/2019 Datalog seminarski rad
5/14
(, O8"e&!to o Data9o:u
a poetak oda se naj&o!je pitati 6to je to Data!o". On je neproceura!ni upitni je'ik'a re!acijske &a'e podataka. +a'iran je na $ro!o"u, pro"rasko je'iku 'a !o"iko
pro"rairanje. U Data!o"u korisnik opisuje traenu inpresjek> !o"ike, &a'a podataka i ujetne inte!i"encije, odnosno sustave 'a
uprav!janje &a'aa podataka koji su i'"ra=eni od !o"iko" ode!a podataka i njihovih
upitnih je'ika, te oo"uuju !o"ike upite.
;astao je pove'ivanje re!acijske a!"e&re (
-
7/21/2019 Datalog seminarski rad
6/14
(,*, ;o!je7t Data9o:a
orjeni Data!o"a veu se u' sa poetak !o"iko" pro"rairanja odnosno kasne
1/#0te i rane 1/%0te "odine. $ro"raski je'ik postaje tek 1/55. "odine u kru"ovia !judi
okup!jenih oko 9. a!!airea i 8. Minkera, koji iste "odine or"ani'iraju radionicu na teu
!o"ike i &a'a podataka. ?deja je &i!a jednostavna, dodati o"unost rekur'ije po'itivni
upitia prvo" reda (en". positive
(Stone&raker i 9e!!erstein, 1//*.). U e=uvreenu David Maier osi6!ja na'iv Data!o". Vee
aktivnosti ve'ane u' da!jnji ra'voj Data!o"a (osi napora pojedinaca kao [email protected]!o&) nisu
postoja!e svo do 200#. "odine. 200#. "odine ra'vija se ve prije spoenuti +dd&dd&, te
dek!arativne ree (en". Dec!arative net:orkin"). ;ada!je dvije "odine kasnije poinje se
ra'vijati >i'v!aenje> podataka (en". ?nauriranja po!a'nika sa novi dosti"nuia i isticanje
p!anova 'a &udunost.>(citat sa slubene stranice).
S!ika 1. S!u&eni !o"o kon
%
-
7/21/2019 Datalog seminarski rad
7/14
&a'e poadataka i neke $Cthonove o&jekte, te koristiti k!au'u!e da &i odredi!i pona6anje k!asa
unutar nje"a.
Dru"i a!at koje" je vano 'a napoenuti je DHS (en". Data Hducationa! SCste I
DHS). On je &esp!atan u!tip!at).
Do sada svi predstav!jeni sustavi su sustavi otvoreno" koda, sada u napoenuti jedan
koercija!ni sustav. . je o&jektno orijentiran upitni je'ik koji se koristi 'a do&ivanje
podataka i' sustava 'a uprav!janje &a'aa podataka (en". Data&ase ana"eent sCste I
DMS). $redstav!ja upitni je'ik koji podsjea na S i o&jektno orijentiranu 8avu. Stvoren jeod strane Se!ea.
5
http://iris-reasoner.org/http://iris-reasoner.org/ -
7/21/2019 Datalog seminarski rad
8/14
+, S!&tak7a Data9o:a
U prethodno dije!u rekao sa da je sintaksa Data!o"a ista kao i sintaksa $ro!o"a. U
nastavku opisati u neko!iko e!eenata koji su vani 'a ra'uijevanje sintakse Data!o"a.
+,* B#oje! Data!o" ra'uije dvije vrste &rojeva, cije!e(en". inte"er) i decia!ne(en". L!oat).
Jaspon, odnosno ve!iina tih &rojeva ovisi o sustavu u koje se koristi. Svaki &roj koji u se&i
sadri toku se tretira kao decia!ni &roj, a ako se hoe i'ra'iti ne"ativna vrijednost ispred
&roja se oe staviti inus(). @ko je potre&no, oe se koristiti i 'nanstveni 'apis, a prito
je sintaksa GHC, pri eu je G ora &iti decia!ni &roj a C cije!i &roj koji prea potre&i oe,
a i ne ora poeti sa p!us i!i inus. $rijer pravi!o 'apisanih &rojevaF #, *.%, 2.%H11...
+,( Ko&7ta&te' a#!ja.9e ! &e8odont care> varija&!e, one se
prika'uju kao jedna podv!aka. Svaka pojava jedne takve varija&!e se tretira pose&no tj.
ra'!ikuje se od dru"e anonine varija&!e. $rijer varija&!iF @, N+, Noso&a, i!i u s!uaju
anonine varija&!eF N.
$ostoje i nepo'nanice, one pre'entiraju nu!! vrijednosti pa se tako i 'apisujuF nu!!.
*
-
7/21/2019 Datalog seminarski rad
9/14
+,+ Te#5' ato5' u!jet!' 9!te#a9!-eri o"u &iti konstante i!i varija&!e. $rea korisniki uputaa 'a DHS V3.0
s!oeni teri se o"u pojav!jivati sao u aritetiki operacijaa, a si&o!i
-
7/21/2019 Datalog seminarski rad
10/14
$rovjerio koje su o"unostiF
Oso&a G vidi s!iku &r #, jer Marko posjeduje s!iku &r #. i oso&a G je Markov prijate!j.
Oso&a G ;H vidi s!iku &r #., jer Marko posjeduje s!iku, a!i oso&a G ;?8H Markov prijate!j
Oso&a G ;H vidi s!iku &r #, jer Marko ;H posjeduje s!iku &r #. i oso&a G je Markov prijate!j.
Oso&a G ;H vidi s!iku &r #, jer Marko ;H posjeduje s!iku &r #. i oso&a G ;?8H Markov
prijate!j.
?' ovo"a oeo vidjeti da e oso&a sjeti vidjeti s!iku sao ako su o&a uvjeta ispunjena
odnosno Marko posjeduje s!iku i oni su prijate!ji.
-o koristei !o"iku prvo" reda oeo 'apisati kaoF @T+7. ?' to"a oeo vidjeti
da @ vrijedi( @ -rue) sao kada + i 7 vrijede(+ i 7 -rue), a to je sao u s!uaju kada su
o&a istinita(+ -rue i 7 -rue). -a pravi!a o"u &iti napisana u pro"rau, pa se kasnije
po'ivaju i!i se pos!ije kopaj!iranja pro"raa o"u postaviti u koandno sue!ju kao upit.
@ko &i so htije!i postaviti ovaka upit nad neko &a'o napisa!i &i so sao tije!o pravi!a
&e' "!ave.
Sada kada so vidje!i kako nastaju i kako rade pravi!a u Data!o"u oeo pojasniti
6to je to Data!o" pro"ra. $ro"ra u Data!o"u predstav!ja skup pravi!a. -a pravi!a se
rekur'ivno ispituju nad odre=eni skupo i tako do&ijeo traene re'u!tate. Unutar
pro"raa o"u e je ostav!jati koentare koji se, u s!uaju jedno" reda, o'naavaju sa
'nako >>, odnosno u s!uaju koentiranja vi6e redova sa KW i WK.
10
-
7/21/2019 Datalog seminarski rad
11/14
0, U78o#e%.a 7a ;#o9o:o5 ! S?L3o5
Vi6e puta kro' ovaj seinar spoenuo sa kako su sintaksno $ro!o" i Data!o" isti.
;o ipak postoje odre=ene ra'!ike. a ra'!iku od $ro!o"a, u pro"rau napisano u Data!o"u
e!eenti ne oraju &iti poredani ni u kakvo redu. ;ada!je vano je 'a napoenuti kako e
se upit nad konani skupo si"urno i'vr6iti tako da nije potre&an operator 'avr6etka >X> i!i
-
7/21/2019 Datalog seminarski rad
12/14
@, ;#!5je#!
a prijer e o u'eti jedan a!i Data!o" pro"ra, koji se sastoji od neko!iko predikata i
neko!iko pravi!a.
12
upit koji na kae ko je o!iver otacF
Y otac(o!iver,A).
A !uka.
upit koji na kae ko je atej otacF
Y otac(atej,A).
dont care> varija&!u
WK
Y otac(josip,N).
true .
KWtko je atejov otac, prijetite ra'!iku i'e=u >Otac> i
>otac>.WK
Y otac(Otac,atej).
Otac josip.
KW upit koji traio djeda, 1. nainF po'vanje pravi!a. WK
Y djed(A,atej).
A s!avo .
KWprijetite da ako nas ne 'ania tko je djed, ne"o sao
da!i on postoji, oeo koristiti anon. Varija&!uFWK
Y djed(N,atej).
true .
KWne po'ivajui pravi!o djeda oeo nai konjukcijo
dvaju !itera!aFWK
Y otac(s!avo,Djete),otac(Djete,Unuk).
Djete josip,
Unuk atej .
predikati
ajka(&ernarda, atej).
ajka(&ernarda, o!iver).
otac(josip, atej).
otac(josip, o!iver).
otac(s!avo, arica).
otac(s!avo, josip).
otac(o!iver, !uka).
pravi!a
rodite!j(A,R)Fotac(A,R).
rodite!j(A,R)Fajka(A,R).djed(A,R)Fotac(A,),otac(,R).
&rat(+1,+2)F otac(Otac,+1),otac(Otac,+2), not
+1 +2.
jos jedan upit koji oeo postaviti je &rat
njie po'ivao pravi!o &rat
Y &rat(o!iver,atej).
true.
Y &rat(!uka,atej).
-
7/21/2019 Datalog seminarski rad
13/14
, Zak9ju-ak
Data!o" predstav!ja dek!arativni upitni je'ik 'a re!acijske &a'e podataka. ;astao jeotpri!ike 1/55. "odine sa jednostavni ci!je, a to je dodavanje o"unosti rekur'ije upitia
prvo" reda. ;aa!ost '&o" ne postojanja snanih ap!ikacija te '&o" neo"unosti nje"ove
prijene nje"ov ra'voj sta"nirao je do 200#. "odine kada pojavo novih ap!ikacija snanih
sustava 'a ra'voj i !judi koji su prona6!i nje"ovu prijenu u praksi do!a'i do na"!o" ra'voja
sustava tee!jenih na Data!o"u.
Svoju prijenu Data!o" je prona6ao u no"i sustavia 'a i'v!aenje 'nanja,
autoatsko dono6enje od!uka, provjeru ra'!iitih pro"raa itd. U odnosu na S od!ikuju "a
tri "!avne prednosti. ;ajvanija od njih je o"unost rekur'ije, a osta!e dvije ve'ane su u'
seantiku tj. o"unosti koje se njoe postiu. Sintaksno Data!o" je jednak pro!o"u u'
i'niku par sitnica u kojia se ra'!ikju. Data!o" pro"rai sastoje se od ni'a pravi!a koja se
"rade !itera!ia, koji u se&i sadre atoe, koji su sastav!jeni od konstanti i varija&!i. Data!o"
&i se naj!ak6e o"!o opisatiF Data!o" re!acijske &a'e podataka P !o"iko pro"rairanje.
13
-
7/21/2019 Datalog seminarski rad
14/14
1, L!te#atu#a
S.S.9uan", -.8.reen +.-. oo, Data!o" and Her"in" @pp!icationsF an ?nteractive-utoria!, httpFKK:::.cs.ucdavis.eduK["reenKpapersKsi"od/0%thuan"s!ides.pd