datalog seminarski rad

Upload: matej-vukovic

Post on 05-Feb-2018

220 views

Category:

Documents


0 download

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