podatkovni modeli in jeziki
TRANSCRIPT
1PMJ, 2015/16
Podatkovni modeli in jeziki
2015/16
Iztok Savnik, FAMNIT
PMJ, 2015/16
Osnovni podatki
Naslov: Podatkovni modeli in jezikiPredavatelj: dr. Iztok SavnikVaje: domače naloge Točke: 6 KTKomunikacija: e-učilnica, forumi, e-posta, govorilne ureGovorilne ure: po predavanjuURL: osebje.famnit.upr.si/~savnik/predmeti/PMJE-učilnica: e.famnit.upr.si
3PMJ, 2015/16
Ocenjevanje
• Sestava ocene:– Ocena domačih nalog – 40%– Ocena pisnega izpita – 40%– Ocena ustnega izpita – 20%
• Vsaka od delnih ocen mora biti pozitivna!
4PMJ, 2015/16
Vsebina
1) Tekstovne podatkovne baze2) Objektno-relacijski podatkovni model3) Semantične mreže4) Konceptualni podatkovni modeli5) Logični podatkovni model
5PMJ, 2015/16
Smoter (1)
Poglabljanje znanja
– Razširiti pogled – Podati izvore – Predstaviti formalne osnove– Predstaviti moderne implementacije– Predstaviti sisteme– Globalen pogled na jezike in modele
PMJ, 2015/16
Smoter (2)
• Prikaz izvorov in formalnega ozadja– Logika, izjavni račun, predikatni račun– Relacijski račun, relacijska algebra– Regularni jeziki– Grafi, konceptualne mreže– Predikatni račun– Opisna logika– Hornovi stavki
7PMJ, 2015/16
Smoter (3)
Pregled modernih jezikov in modelov – SQL3– XML, Xquery– RDF, SparQL, Linked Data– OWL– CycL– SQL, QBE– UML– Prolog, Datalog– F-Logic, Flora
8PMJ, 2015/16
Smoter (4)
Reference na moderne sisteme– Virtuoso
• “innovative enterprise grade multi-model data server for agile enterprises & individuals“
• Open source: VOS
– Triple-stores• 3store, 4store, jena, sesame, rdf3x, algerograph, ...
– Cyc– Deduktivne podatkovne baze
• Datalog, F-Logic, Flora
– Načrtovalska orodja• Oracle, Informix, ...
9PMJ, 2015/16
Smoter (5)
Praktično znanje
– Razvoj aplikacij, ki slonijo na uporabi podatkovnih modelov.
– Uporabo modernih orodij in tehnik za implementacijo podatkovnih okolij.
– Razvijanje zmožnosti obvladovanja kompleksnih podatkovnih okolij.
– Razvijanje zmožnosti za razvoj aplikacij v praksi.
10PMJ, 2015/16
Tekst (1)
• Regularni jeziki– Primerni za opis teksta– Bližje jezikom– BNF, Kontekstno neodvisni jeziki– Delno-strukturirani podatki
• Strukturiran tekst– XML, SSL– XPath, XQL– XML-Schema– XQuery
11PMJ, 2015/16
Tekst (2)
• Podatkovni model– XML, SSL
• Povpraševalni jeziki– XQL, Xquery, XML-QL
• Konceptualni modeli– XML-Shema
• XML podatkovne baze– Virtuoso– RDBMS vsebujejo vmesnike do XML
12PMJ, 2015/16
Objektno-relacijski model (1)
• Relacijski model– Codd, 1970– Matematične osnove: n-terice in relacije– Izjavni račun => relacijski račun– Algebra relacij – Deklarativni povpraševalni jezik SQL2
• De-facto standard • Relacijska kompletnost jezika
13PMJ, 2015/16
Objektno-relacijski model (2)
• Relacijski model– Proceduralni programski jezik SQL2– Shranjene procedure – Računanje s tabelami– Računsko kompleten jezik– Vsebuje pravila
• Prožilci• Realizacija AI ekspertnih sistemov• Še precej problemov ...
14PMJ, 2015/16
Objektno-relacijski model (3)
• SQL3– Objektno-relacijski model– Abstraktni Podatkovni Tipi = Razredi
• Uporabniško definirani tipi• Metode, dedovanje, polimorfizem,
– Kompleksni atributi• n-terice, množice, polja, tabele, itd.• Bogat nabor operacij
15PMJ, 2015/16
Objektno-relacijski model (4)
• SQL3– Uporabljeni programski modeli
• Proceduralni gradniki• Objektni gradniki• Pravila in prožilci• Rekurzija, fiksne točke
– Novi tipi• Multimedia: blob, clob• Intervali• Drevesa, grafi
16PMJ, 2015/16
Logika
• Formalna osnova modelov in jezikov • Izjavni račun
– Osnovne metode• Predikatni račun
– Relacijski račun– Opisna logika = strukturiran del PR– Prolog = del PR (hornovi stavki)– Semantični modeli
• Metode– Sklepanje, Dedukcija – Resolucija
17PMJ, 2015/16
Semantične mreže (1)
• Logika !– Konceptualni grafi (Sowa, 1981)– Terminologije -> Ontologije
• Jeziki za predstavitev znanja – KL-ONE, Classics, Back– Sklepanje
• Grafovski podatkovni modeli– Grafi kot logika + Grafi kot podatki
• Novejši jeziki– RDF, RDFS, OWL, Rules
18PMJ, 2015/16
Semantične mreže (2)
• RDF– Podatkovne baze na osnovi trojic– 3store, Virtuoso, AlegroGraph, – LinkedData, Web of Data– BIGDATA
• SparQL– Povpraševalni jezik nad trojicami– Temelji na grafovskih vzorcih– Game changer !
19PMJ, 2015/16
VizualizacijaRDF baz
20PMJ, 2015/16
Semantične mreže (3)
• Opisna logika – Strukturiran del PR– Lahko predstavimo s trojicami: v osnovi imamo RDF– XML zapis
• OWL– W3 standard– Opisna logika razširjena s praktičnimi jezikovnimi
gradniki• Sklepanje
– Povpraševalni jezik– Sklepanje s koncepti– Sklepanje na osnovi konceptov in podatkov
21PMJ, 2015/16
Semantične mreže (4)
• Cyc– Največji sistem za delo z znanjem– Temelji na PR– Sklepanje s pravili
• Predstavitev znanja– Konceptualne mreže (ontologije)– Višja ontologija, osnovne teorije, specifične
teorije– Predefinirane semantične relacije
22PMJ, 2015/16
Semantične mreže (5)
• Cyc
23PMJ, 2015/16
Konceptualni modeli (1)
• Grafovski podatkovni model– Vozlišča predstavljajo koncepte– Povezave so lahko različnih vrst + imajo lastnosti– ER, SDM, IFO, OM, UML
• Abstrakcije– Entiteta / Razmerje– Kompozicija/Dekompozicija– Generalizacija/Specializacija– Asociacija– Enkapsulacija– Dedovanje
24PMJ, 2015/16
Konceptualni modeli (2)
• Entiteta-razmerje– Najbolj razširjen model
• Semantični modeli– Precej „akademski“ modeli– FDM, SDM, IFO, 3DIS
• Objektni model– Običajni objektni gradniki
• UML– Združuje vse zgoraj našteto
25PMJ, 2015/16
Logični model (1)
• Logika uporabljena za – predstavitev sheme in podatkov– povpraševalni jezik
• Največ modelov sloni na predikatnem računu
• Podmnožica predikatnega računa– Hornovi stavki– Prolog
26PMJ, 2015/16
Logični model (2)
• LDM (Kuper,Vardi)– Semantični model
• Datalog (Ullman)– Prolog nad podatkovnimi bazami
• F-Logic (Kifer)– Objektni model– Prolog
PMJ, 2015/16
Praksa (1)
• Praktično vsi podatki so predstavljeni z nekim podatkovnim modelom– Celo običajen tekst ali datoteko urejevalnika moramo
velikokrat obravnavat kot podatkovni model– Tekst, HTML, XML, Internet, elektronske knjižnice,
podatkovne baze, …– Dataspace - Podatki organizacije v različnih oblikah
PMJ, 2015/16
Praksa (2)
• Večina aplikacij v praksi so informacijski sistemi– Večjo aplikacijo enostavno implementiramo v SUPB– Obstaja množica visokonivojskih jezikov za pisanje
aplikacij, ki temeljijo na podatkovnih modelih– Novejša orodja združujejo več modelov in jezikov:
Virtuoso, Oracle, ...
–
PMJ, 2015/16
Domače naloge
1) Domača naloga po večjem sklopu snovi– 4-5 domačih nalog– Manjši primeri uporabe podatkovnih
modelov in jezikov– Primer: definiraj podatkovno bazo knjižnice
z XML, DTD, SSL, XQL, ...– Osnova za pisni izpit !
2) Domače naloge = 1 seminar
30PMJ, 2015/16
Literatura
• I. Savnik, Prosojnice za predmet “Podatkovni modeli in jeziki”, Spletna učilnica, 2013/14.
• Literatura za posamezno poglavje bo na voljo v spletni učilnici.