Master Informatique 20 10. 01. 07. 1 dr. Kiss AttilaFélig-strukturált adatmodell Félig-strukturált adatmodell (Semi-structured data model) dr. Kiss Attila.

Slides:



Advertisements
Hasonló előadás
GRIN: Gráf alapú RDF index
Advertisements

Tamás Kincső, OSZK, Analitikus Feldolgozó Osztály, osztályvezető A részdokumentumok szolgáltatása az ELDORADO-ban ELDORADO konferencia a partnerkönyvtárakkal.

Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
Weblap szerkesztés HTML oldal felépítése Nyitó tag Záró tag Nyitó tag Záró tag oldalfej tözs.
A társadalmi tényezők hatása a tanulásra
1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására.
Felhasználói felületek és üzleti logika Bollobás Dávid ASP.NET
MATEMATIKA Év eleji felmérés 3. évfolyam
Extensible Markup Language
2010/2011.Huszár István1. dia Weboldalak tervezése II. (X)HTML.
6) 7) 8) 9) 10) Mennyi az x, y és z értéke? 11) 12) 13) 14) 15)
Az új történelem érettségiről és eredményeiről augusztus Kaposi József.
Utófeszített vasbeton lemez statikai számítása Részletes számítás
Euklidészi gyűrűk Definíció.
A tételek eljuttatása az iskolákba
Adatbázis-kezelés.
Előadás vázlat Az XML története és alkalmazási területe
Halmazok, relációk, függvények
Fodrostollú magyar lúd
VÁLOGATÁS ISKOLÁNK ÉLETÉBŐL KÉPEKBEN.
Aszociációs kolloidok, micellaképződés
Hernyák Zoltán XML validálás.
1. IS2PRI2 02/96 B.Könyv SIKER A KÖNYVELÉSHEZ. 2. IS2PRI2 02/96 Mi a B.Könyv KönyvelésMérlegEredményAdóAnalitikaForintDevizaKönyvelésMérlegEredményAdóAnalitikaForintDeviza.
ADATBÁZISOK
RDF és SPARQL. Felhasznált anyagok Marcelo Arenas, Claudio Gutierrez, Jorge Peréz: RDF and SPARQL: Database Foundations (bemutató) Claudio Gutierrez,
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Sárgarépa piaca hasonlóságelemzéssel Gazdaság- és Társadalomtudományi kar Gazdasági és vidékfejlesztési agrármérnök I. évfolyam Fekete AlexanderKozma Richárd.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
DRAGON BALL GT dbzgtlink féle változat! Illesztett, ráégetett, sárga felirattal! Japan és Angol Navigáláshoz használd a bal oldali léptető elemeket ! Verzio.
XML támogatás adatbázis-kezelő rendszerekben
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
SQL, Relációs adatmodell
SQL.
Webes Információs Rendszerek fejlesztése
szakmérnök hallgatók számára
A évi demográfiai adatok értékelése
Logikai szita Izsó Tímea 9.B.
LENDÜLETBEN AZ ORSZÁG A Magyar Köztársaság kormánya.
XHTML 1. óra. Miért térjünk át HTML-ről XHTML- re? HTML-szabványban tartalom és forma összemosódott HTML 4.0 szabványban stíluslapok használatát javasolták.
2007. május 22. Debrecen Digitalizálás és elektronikus hozzáférés 1 DEA: a Debreceni Egyetem elektronikus Archívuma Karácsony Gyöngyi DE Egyetemi és Nemzeti.
7. Házi feladat megoldása
Weboldalak tervezése (X)HTML.
Adatbázis-kezelés JAG,
Hernyák Zoltán XSLT transzformációk.
A klinikai transzfúziós tevékenység Ápolás szakmai ellenőrzése
Tanulói utánkövetés 2009/2010. A 2009/2010-es tanévben iskolánkban 210 tanuló végzett. 77 fő a szakközépiskola valamelyik tagozatán 133 fő szakmát szerzett.
Nyitott Kapuk 2010 Beiskolázási kérdőívek értékelése.
QualcoDuna interkalibráció Talaj- és levegövizsgálati körmérések évi értékelése (2007.) Dr. Biliczkiné Gaál Piroska VITUKI Kht. Minőségbiztosítási és Ellenőrzési.
Adatbázis-kezelés.
XML adatkezelés 1. témakör Az XML szabvány.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
– SELECT - 2. – Tarcsi Ádám március Adatbázis gyakorlat.
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
1. Melyik jármű haladhat tovább elsőként az ábrán látható forgalmi helyzetben? a) A "V" jelű villamos. b) Az "M" jelű munkagép. c) Az "R" jelű rendőrségi.
Adatbázisok gyakorlat
Adatbázis alapfogalmak
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
Kvantitatív módszerek
Adatbázis-kezelés 3-4. Adatok lekérdezése utasítás általános formája SELECT [ALL/DISTINCT] {*/, …, } FROM [ ], …, [ ] [WHERE GROUP BY, …, HAVING ORDER.
Illés Zoltán ELTE Informatikai Kar
> aspnet_regiis -i 8 9 TIPP: Az „Alap” telepítés gyors, nem kérdez, de később korlátozhat.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
A KÖVETKEZŐKBEN SZÁMOZOTT KÉRDÉSEKET VAGY KÉPEKET LÁT SZÁMOZOTT KÉPLETEKKEL. ÍRJA A SZÁMOZOTT KÉRDÉSRE ADOTT VÁLASZT, VAGY A SZÁMOZOTT KÉPLET NEVÉT A VÁLASZÍV.
Az XML nyelv (Extensible Markup Language). XML  XML: leíró nyelv (metanyelv)  XML alkalmazás: egy megalkotott nyelv  XML dokumentum: egy új nyelv egy.
1 Az igazság ideát van? Montskó Éva, mtv. 2 Célcsoport Az alábbi célcsoportokra vonatkozóan mutatjuk be az adatokat: 4-12 évesek,1.
Master Informatique 1 dr. Kiss AttilaFélig-strukturált adatmodell Félig-strukturált adatmodell (Semi-structured data model) dr. Kiss Attila
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
XML lekérdezőnyelvek XPath XQuery.
Előadás másolata:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Félig-strukturált adatmodell (Semi-structured data model) dr. Kiss Attila

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az előadás vázlata 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Tematika Előadás: –XML alapok: XML, DTD, XPath, XQuery Gyakorlat: –XML-kezelő eszközök: XML Spy –Az Oracle XML kezelése

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Szükséges előismeretek Relációs adatbázisok Lekérdező nyelvek Irányított, címkézett gráfok, fák Reguláris nyelvek

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Előadáshoz kapcsolódó anyagok Az előadás diái a kurzus oldaláról letölthetők: Adatbázisrendszerek alapvetés könyv: 11.2 fejezet: XML ( oldal), 11.3 fejezet: DTD ( oldal), 12.1 fejezet: XPath ( oldal), 12.2 fejezet: XQuery ( oldal) Oracle XML DB: XML típusú tábla, XML típusú attribútum, XMLType(), XMLElement(), getCLOBVal(), XMLQuery(), XMLTable() függvények használata: xml.ppt (37,39, 43-45, 50-51, oldal) xml.ppt Az érdeklődőknek további, a részleteket jobban megvilágító, de nem kötelező segédanyagok: xml.pdf, xml07-oracle.pptxml.pdfxml07-oracle.ppt

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Relációs adatbázisok Strukturált adatok Rögzített adatbázisséma (táblák rendszere) Megbízható, gyors SQL lekérdező nyelv

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A relációs adatmodell korlátai Hogyan tárolnánk ezt relációs adatbázisban?

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A relációs adatmodell korlátai Miből áll ez az oldal? 1. SZÖVEG2. KÉP 3. TÁBLÁZAT 4. FORMÁZÁS 5. GRAFIKON 6. HIPERLINK

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A relációs adatmodell korlátai A relációs adatbázisban tároláshoz ismernünk kellene előre a weboldalak belső szerkezetét, DE a szereplő tartalmak változnak, nem egységesek. ÖTLET: a táblákba kényszerítés helyett az adatok maguk írják le a tartalmukat és a formázásukat! Az XHTML forráskód részlete

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A weboldalak HTML nyelve A HTML egy jelölő nyelv (markup language). Egy HTML oldal jelölőkből (tag), attribútumokból és adatokból áll. A HTML az oldal megjelenítését (betűtípus, szín, stb.) (style) definiálja.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Tom Sawyer weboldala Hello! Tudtad, hogy Huckleberry Finn a legjobb barátom? Azért néha Becky Thatcher -t is kedvelem... Ezeket szeretem a legjobban: Hajókázni a Mississippin Kincset keresni Kerítést festeni Ha hasonló dolgok érdekelnek, írjál a címemre! Egy egyszerű HTML kód

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A HTML megjelenítése böngészővel

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Hogyan nyerhető ki az információ a HTML oldalakból? Melyek Tom Sawyer hobbijai? –Meg kell találni az adott személy oldalát –Ki kell nyerni szükséges információt az oldalról Problémák: –Honnan tudjuk, hogy egy oldal személyhez tartozik? –Hogyan nyerjük ki az információt, ha mindenki más stílusú oldalon tárolja az adatait? –Honnan tudjuk, hogy a hobbi szó jelentése annak felel meg, hogy mit szeret csinálni?

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Két megközelítés Ha a weben található információs egy előre ismert sémájú adatbázisban lenne tárolva, akkor a problémákat könnyen meg lehetne oldani. De nem így van tárolva – akkor most mit kell tenni? 1.Adatbányászat, mesterséges intelligencia alkalmazása: Intelligens technikákkal próbáljuk felismerni a HTML oldalon tárolt információt a környezetből, a formázásból, a hivatkozásokból. 2.Adatbázisos megközelítés: Használjunk XML-t a tartalom leírására. Ezáltal a web egy félig-strukturált XML adatbázissá válik, amelyből az információ az XML lekérdező nyelveivel (Xpath, XQuery) egyszerűen kinyerhető.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Tom Sawyer adatai XML fájlban Thomas Sawyer Hello! Tudtad, hogy Huckleberry Finn a legjobb barátom? Azért néha Becky Thatcher-t is kedvelem... Huckleberry Finn Becky Thatcher

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML használata rohamosan terjed A Microsoft Office 2007 dokumentumok alapformátuma az XML. (.docx,.xlsx,.pptx) APEH Tájékoztató a járulékbevallások (0608, 06081K, 06083) kezeléséről ( ): –„Az olyan típusú nyomtatványokat - ilyen a 0608, 06083, 06081K - amelyek egy foglalkoztató (pl. 0608A), és ismeretlen számú foglalkoztatott (pl. 0608M) adatait tartalmazzák, kizárólag XML formában, elektronikus úton lehet eljuttatni az APEH-hez.” Szakmaspecifikus XML nyelvek: –Matematikai formulák: MathML –Ábrák: SVG –Webes űrlapok: XForms –Multimédia prezentációk: SMIL –Hangvezérlés: VoiceXML –Dokumentumok: OpenDocument, DocBook –Földrajzi megjelenítés: KML –Génchipek: MINiML, MAGE-ML

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML története Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására. Előzménye: – GML (1969) Generalized Markup Language – SGML (1986) Standard Generalized Markup Language – HTML (1989) HyperText Markup Language Jelenleg két XML verzió létezik: – Az XML 1.0-t 1998-ban definiálták. Jelenleg az 5. kiadás az aktuális. – szeptember: XML 1.1. Jelenleg a 2. kiadás az aktuális. Magyar XML összefoglaló és Oracle XML összefoglaló található az alábbi címen: HTML4.0 ∈ XML  SGML

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Mi az XML röviden? Az XML dokumentum HTML dokumentumra hasonlít. De XML-ben tetszőleges jelölőnév (tag) használható. Például: Kiss Attila Nagy ügy! Ennyi az egész?

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML alapfogalmai Elemek (Elements) Attribútumok (Attributes) Entitások (Entities) Névterek (Namespaces) XML deklaráció (XML declaration) Feldolgozási instrukciók (Processing Instruction) Megjegyzések (Comments) CDATA szekciók (CDATA sections)

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Elemek (Elements) Egy XML dokumentumban egy nyitó és megfelelő záró jelölő (tag) közötti részt elemnek hívjuk. Kiss Attila 02 – – elem nem elem

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Attribútumok (Attributes) Egy nyitó jelölő (tag) tartalmazhat attribútumokat. Az attribútum értékét idézőjelek közé kell tenni. cheese fromage sajt A sajt egy tejtermék.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Entitások (Entities) Az entitás egy rövidítés, egy bonyolult vagy hosszú szöveges adat megnevezésére. Entitások szabadon definiálhatók és beépített entitások is léteznek. Az entitások bárhol használhatók a dokumentumban. Hivatkozás az entitásra: &entitásnév; Elemzéskor az entitás helyére behelyettesítődik az a szöveg, amit rövidít.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példa Igaz-e, hogy 2+3 < 6? Előre definiált entitások: << >> && &apos;‘ "“

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Névterek (Namespaces) Mi a névtér? –Jelőlőnevek (tag-ek) egyedivé tétele, hogy dokumentumok összefésülésekor elkerülhessük a névütközést. A névterekkel egyedivé tett jelölőket, attribútumneveket minősített neveknek (qualified names) (QNames) hívjuk: –Például isbn:name, xlink:href

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Névterek (Namespaces) Névteret egy elem nyitó jelölőjének attribútumaként definiálhatjuk: –xmlns:névtér_elnevezés="valamilyen URI" Az alapértelmezett névteret a következő módon definiáljuk –xmlns="URL" URI (Uniform Resource Identifier) URL (Uniform Resource Locator)

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példa <cikk xmlns=“ xmlns:játék=“ zsákbamacska plüssmacska Szintaktika: a névütközés elkerülésére Szemantika: milyen URL-en található a séma

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell További XML fogalmak XML deklaráció – Feldolgozási instrukció –Az alkalmazásokhoz, nem az elemző számára kell –

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell További XML fogalmak Megjegyzések – CDATA szekció –Olyan blokk, amelynek tartalmát az elemző figyelmen kívül hagyja – ez hibás elem lenne az elemző számára ]]>

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Egy teljes XML dokumentum Kiss Attila Kötelező Opcionális

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XML szabályok (1.) Az XML sorrend-érzékeny, vagyis a következők különböznek: Az XML kisbetű-nagybetű érzékeny, vagyis a következők különböznek:,, cheese fromage fromage cheese

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XML szabályok (2.) A jelölők párokat képeznek... A jelölő párokat helyesen kell egymásba ágyazni –Jó: –Rossz: –Rossz:... A szöveget nem tartalmazó elem rövidíthető: –

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XML szabályok (3.) Az XML dokumentum legfelső szintjén csak egyetlen elem lehet, amit gyökér elemnek hívunk. Ez így szabályos. Ez is szabályos ? N em.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Jólformált dokumentumok (Well-Formed Documents) Egy XML dokumentum jólformált (well- formed, ha –kielégíti az előző 3 szabályt, továbbá –jelölőn belül egy attribútum nem ismétlődhet.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML feldolgozási modellje Fizikai szinten az XML dokumentum nem más mint egy sima szöveges állomány, vagyis valamilyen (UTF-8/16) karakterkészletből választott jólformált karaktersorozat. A strukturálatlan karaktersorozatokat a feldolgozó alkalmazások általában nem tudják hatékonyan kezelni. Az XML elemek, attribútumok beágyazása egy természetes logikai fa-struktúrát definiál.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML dokumentumfa Az XML dokumentumok absztrakt modelljei az egymásba ágyazásnak megfelelő, gyökeres, irányított, címkézett fa. Azonosítók és hivatkozások (ID és IDREFS) használata esetén fa helyett tetszőleges gráf keletkezhet. személy név tel Kiss Attila

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XML dokumentum feldolgozása Az XML feldolgozó (Processor) (XML parser) előállítja a jólformált XML dokumentumhoz tartozó gráfot. Az XML alkalmazások ezen a gráfon végzik el a műveleteket. XML feldolgozó például az Apache Xerces:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML és a relációs adatbázisok Tetszőleges relációs adatbázis reprezentálható XML dokumentumként.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A DTD sémaleíró A DTD (Document Type Description) sémaleíró meghatározza az XML dokumentumok szerkezetét. DTD használatával specifikáljuk, hogy mikor érvényes egy XML dokumentum. A DTD azt mondja meg, hogy mikor legális egy elem, illetve milyen beágyazások megengedettek. A DTD kifejező ereje nem elég típusok definiálására.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Mire jó a DTD? A DTD segítségével lehet az XML speciális nyelveit megadni. Például: –FOAF (közösségi háló - friend of a friend) –SVG (skálázható vektorgrafika) –WML (HTML mobil eszközökre) –SOAP (üzenetküldés webszolgáltatásokhoz) –XHTML (jólformált HTML)

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Telefonkönyv DTD sémája Kiss Attila Attila 1117 Budapest Pázmány Péter 1/C Telefonok, faxok keverve Legalább 1 Annyi címsor, amennyi csak szükséges Legfeljebb 1 becenévPontosan 1 név

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A struktúra specifikálása Mit tartalmazhat egy személy elem? DTD-ben a megengedett tartalmakat definiáljuk (content model). A specifikálás reguláris kifejezésekkel történik.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Miből állhat egy személy elem? A kifejezés a következő lesz: –név, bece?, cím*, (tel | fax)*, + Ezek jelentése a következő: –név = 1 név elem szükséges –bece? = a bece elem opcionális, 0 vagy 1 bece elem lehet. –név, bece? = A név elem után következik egy opcionális bece elem.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Miből állhat egy személy elem? –cím* = 0 vagy több cím elem –tel | fax= egy tel vagy egy fax elem –(tel | fax)* = 0 vagy több ismétlődése a tel vagy fax elemeknek – + = 1 vagy több elem név, bece?, cím*, (tel | fax)*, +

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell aa elem e1?0 vagy 1 előfordulása az e1 kifejezésnek e1*0 vagy több előfordulása az e1-nek e1+1 vagy több előfordulása az e1-nek e1,e2Az e2 az e1 után következik e1|e2e1 vagy e2 (e)Zárójelezés #PCDATANem elemzendő szöveg EMPTYNincs tartalom ANYTetszőleges tartalom (#PCDATA|a 1 |..|a n )*Vegyes tartalom A model reguláris kifejezéseiben a következők használhatók

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A telefonkönyv DTD sémája <!DOCTYPE telefonkönyv [ <!ELEMENT személy (név, bece?, cím*, (fax | tel)*, +)> ]>

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Attribútumok megadása a DTD sémában Az általános szintaxis a következő: <!ATTLIST elemnév attribútumnév1 típus1 alapérték1 attribútumnév2 típus2 alapérték2 …. attribútumnévn típusn alapértékn > Például: <!ATTLIST magasság mértékegység CDATA “cm”>

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell <!ATTLIST elemnév attribútumnév1 típus1 alapérték1 attribútumnév2 típus2 alapérték2 …. attribútumnévn típusn alapértékn > típus a következők valamelyike CDATAKaraktersorozat (en1|en2|..)A lista egyik tagja IDEgyedi azonosító IDREFEgy másik elem azonosítója IDREFSMás elemek azonosítóinak listája

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell <!ATTLIST elemnév attribútumnév1 típus1 alapérték1 attribútumnév2 típus2 alapérték2 …. attribútumnévn típusn alapértékn > alapérték a következők egyike értékAz attribútum alapértéke #REQUIRED Az attribútumértéknek szerepelnie kell az elemben #IMPLIED Az attribútum megadása nem kötelező #FIXED érték Az attribútum értéke nem változtatható

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példa <!ATTLIST magasság mértékegység (cm | in) #REQUIRED pontosság CDATA #IMPLIED mérhető CDATA #FIXED “igen” >

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Azonosító (ID) és hivatkozás (IDREF) attribútumok <!DOCTYPE család [ <!ATTLIST személy azon ID #REQUIRED anya IDREF #IMPLIED apa IDREF #IMPLIED gyerekei IDREFS #IMPLIED> ]>

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A DTD-nek megfelelő dokumentum Henry William Diana Charles

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Entitások megadása a DTD sémában Az entitások rövidítések Az entitás belül és kívül is deklarálható. –belül: –kivül:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példa DTD: XML: &ka;&copyright;

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A DTD séma hozzárendelése a dokumentumhoz A dokumentumon belül: … ]>... A DTD egy külön fájlban szerepel: – vagy –

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Érvényes dokumentumok Egy XML dokumentum érvényes egy adott DTD szerint, ha –a dokumentum illeszkedik a reguláris kifejezésekre, –az attribútumok típusai megfelelőek, és –az azonosítók és hivatkozások használata szabályos.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XML Schema (XSD) Egy másik sémamegadási mód Többféle alaptípus használható Új típusok származtathatók –Típus-kiterjesztéssel –Típus-megszorítással Adatbázisszerű kulcsok fogalma Névterek használata Részletek:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Egy DTD-nek megfelelő XML schema DTD:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A DTD vagy XML schema diagramja A sémát diagrammal ábrázolhatjuk. A diagramon az elemek egymásba ágyazását, attribútumait adjuk meg a reguláris kifejezéseknek megfelelően. A járulékbevallás sémájának diagramja:

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Általános lekérdezési feladatok Az XML értékeinek szűrése, kiválasztása: –navigálás, kiválasztás, információ kinyerése XML dokumentumok összefésülése, aggregálás: –Összekapcsolás, aggregálás Adott sémájú XML dokumentum átalakítása másik sémájú dokumentummá: –XML konstrukció A programozási felülettel a hogyant specifikáljuk. A lekérdező nyelven nem a hogyant, hanem a mit specifikáljuk.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML lekérdező nyelvei XPath 2.0: –Általános nyelv a navigálásra, kiválasztásra, információs kinyerésre –Az XSLT, XQuery, XML Schema, …alapját képezi. XSLT 2.0: XML ⇒ XML, HTML, Text –Átalakító script nyelv. –Az XML-t például HTML formájúvá alakítja, hogy böngészővel meg lehessen jeleníteni. XQuery 1.0: XML ⇒ XML –Az XPath-nál bővebb lekérdező nyelv.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XPath adatmodell Az XML lekérdezései az XML fa bejárását határozzák meg. XPath kifejezéseit az XML fa alapján kell kiértékelni. Az XML fa csúcsai a következő csúcstípusúak lehetnek: –Dokumentum –Elem –Attribútum –Szöveg –Instrukció –Megjegyzés –Névtér

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Csúcsok Egy csúcsnak lehet neve, vagy értéke, vagy mindkettő –egy Elem csúcsnak neve van, de értéke nincs; –egy Szöveg csúcsnak nincs neve, de karaktersorozatú értéke van; –egy Attribútum csúcsnak neve és értéke is van.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Csúcsok azonosítói Minden csúcsnak van egy egyedi csúcs- azonosítója, ami nem módosítható.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Dokumentum sorrend A csúcsok közti rendezést a dokumentum sorrend definiálja, mely a pre-order bejárásnak felel meg. –Egy szülő csúcs megelőzi a gyerekeit és attribútumait. –A testvér csúcsok közül az attribútumok jönnek előbb és csak utána a más típusúak. –Az attribútumok sorrendje implementáció függő.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példák XPath lekérdezésekre Addison-Wesley Serge Abiteboul Rick Hull Victor Vianu Foundations of Databases 1995 Freeman Jeffrey D. Ullman Principles of Database and Knowledge Base Systems 1998

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XML-fa irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell /irodalom/könyv/év irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév /irodalom/könyv/év Eredmény: /irodalom/cikk/év eredménye üres, mert nincs cikk.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell //szerző irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév //szerző Eredmény : Serge Abiteboul Rick Hull Victor Vianu Jeffrey D. Ullman

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell /irodalom//kernév irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév /irodalom//kernév Eredmény: Rick

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell /irodalom/könyv/szerző/text() irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév /irodalom/könyv/szerző/text() Eredmény : Serge Abiteboul Victor Vianu Jeffrey D. Ullman text() = visszaadja a szövegcsúcs értékét node() = visszaadja csúcsot name() = visszadja a jelölő nevét

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell //szerző/* irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév //szerző/* Eredmény: Rick Hull A * tetszőleges elemre illeszkedik, de szövegre, attribútumra nem.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév Eredmény: 55

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell /irodalom/könyv/szerző[kernév] irodalom Gyökér könyv kiadó szerző ár cím év veznévkernév /irodalom/könyv/szerző[kernév] Eredmény : Rick Hull [kernév] igaz, ha a szerző elemnek van kernév gyereke.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell További példák predikátumokra < 60] az ára kisebb mint 60 /irodalom/könyv[szerző/kernév = "Rick"] egyik szerzőjének kerneve Rick /irodalom/könyv[szerző/text()] van szöveggel megadott szerzője /irodalom/könyv[2] a 2. könyv Aritmetikai összehasonlítás Egzisztenciális kifejezés Pozícionáló kifejezés

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Lekérdezések eredményeinek kombinálása A következő halmazműveleteket lehet használni: –Egyesítés: |, union –Metszet: intersect –Kivonás: except Ezek a műveletek eltávolítják a többszörös előfordulásokat.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Tengelyek b Aktuális csúcs Elem csúcs Attribútum csúcs Gyökér bli … - Szöveg

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A child tengely Az attribútumnak van szülője, de ő nem gyereke semelyik csúcsnak! b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A parent tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az attribute tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A descendant tengely A leszármazott, illetve felmenő a gyerek, illetve a szülő tranzitív lezárása. b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A descendant-or-self tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az ancestor tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az ancestor-or-self tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A following tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A following-sibling tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A preceding tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A preceding-sibling tengely b

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell XPath tengelyei (Axes) child (alapértelmezett tengely) – Gyerek csúcsok. parent Szülő csúcsok. attribute Attribútum csúcsok. descendant Leszármazott csúcsok, az aktuális csúcsot nem beleértve. descendant-or-self Leszármazott csúcsok, az aktuális csúcsot is beleértve. ancestor Felmenő ősök, az aktuális csúcsot nem beleértve. ancestor-or-self Felmenő ősök, az aktuális csúcsot is beleértve. following A dokumentum sorrend szerint következő csúcsok. following-sibling A dokumentum sorrend szerint következő testvérek. preceding A dokumentum sorrend szerint megelőző csúcsok. preceding-sibling A dokumentum sorrend szerint megelőző testvérek. self Az aktuális kontextus csúcs.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Rövidítések RövidítveTeljes alak /root(.) ///descendant-or-self::node()/.self::node()..parent::node() [szám][position() = szám]

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példák rövidítésekre Rövid alakHosszú alak /irodalom/könyv/child::irodalom/child::könyv attribute::ár /.//cím (ugyanaz mint a //cím) /self::node()/descendant-or- self::node()/child::cím //szerző/../descendant-or-self::node()/ child::szerző/parent::node()

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Kontextus csúcsok Az útvonalakat egy vagy több kontextus csúcsból indítjuk el. Egy XPath lépés: cs 0 /lépés –cs 0 jelöli a kontextus csúcsok sorozatát, ahonnan a navigációs lépést végrehajtuk.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Lépéssorozat Egy XPath navigációs kifejezés egy vagy több egymás utáni lépésből áll (lépés i (i>=1) ). A lépés 1 a cs 0 kontextus csúcsokból indul és cs 1 csúcsokba érkezik. Ezután cs 1 lesz a lépés 2 új kontextus csúcssorozata, és így tovább. Egy többlépéses XPath útvonal tehát így néz ki: cs 0 /lépés 1 /lépés 2 /… ((cs 0 /lépés 1 )/lépés 2 )/… cs 1

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Egy XPath lépés szintaxisa Egy lépés a következő fomájú: ax::nt[p 1 ] … [p n ] ahol 1.az ax egy tengely (axis), amely azt határozza meg, hogy milyen irányba kell a kontextus csúcsokból a navigációt végrehajtani, 2.a nt egy csúcsteszt (node test), amelyet arra használunk, hogy csak bizonyos nevű vagy típusú csúcsokhoz navigáljunk, 3.A p i egy opcionális predikátum, amely segítségével tovább lehet szűrni, hogy milyen csúcsokhoz akarunk a lépéssel eljutni. A predikátumlista a predikátumok konjunkcióját jelenti.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XQuery lekérdező nyelv Az XQuery egy deklaratív XML lekérdező nyelv. Azt a szerepet játssza, mint az SQL a relációs adatbázisok esetében. Az XQuery rendelkezik programozási nyelvre és adatbázisnyelvre jellemző tulajdonságokkal is. –Programozási nyelvi jellemzők: iteráció, változók (for…in, let…in) rekurzív, felhasználói függvények reguláris kifejezések, típusok listák, tömbök –Adatbázisos jellemzők: szűrés csoportosítás, összekapcsolás (joins)

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Az XQuery nyelvtana XQuery Expr :=Literal | Variable | FunctionCalls | PathExpr | ComparisonExpr | ArithmeticExpr| LogicExpr | FLWRExpr | ConditionalExpr | QuantifiedExpr |TypeSwitchExpr | InstanceofExpr | CastExpr | UnionExpr | IntersectExceptExpr | ConstructorExpr | ValidateExpr Ebből a FLWRExpr kifejezésekkel foglalkozunk. A PathExpr tetszőleges XPath kifejezés, azaz XPath  XQuery

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell FLOWR Expressions A FLOWR kifejezés a következőkből áll. iteráció (for); változók definiálása, lekötése (let); eredmény rendezése (order); predikátum alkalmazása (where); az eredmény konstrukciója (return). Egy példa (let nélkül): for $f in collection(‘filmek')/film where $f / év >= 2005 return { $f / cím / text()}, "rendezte" {$f / rendező / veznév / text()}

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Dokumentumok és kollekciók megadása Az XQuery számára az input a következő módon adható meg: doc() - az XML dokumentum URI-jét adjuk meg, és visszaadja a dokumentumfának a gyökerét; collection() egy olyan XML URI-jét veszi át, amely további XML fájlok URI-jét tartalmazza. Így egy XML adatbázist tudunk lekérdezni az XQuery segtségével.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell A FLOWR kifejezések Szintaxis: –for $v in e1 [ where e3 ] [ order by... ] return e2 –let $v := e1 [ where e3 ] [ order by... ] return e2 A for és let részekből több is lehet: –let $x:=1 let $y:=2 return $x+$y

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell for $x in expr1 return expr2 Jelentése: –az $x változó felveszi az expr1 által visszaadott értékeket –minden felvett értékre kiértékeljük az expr2 kifejezést –az eredményeket konkatenáljuk for $x in doc("irodalom.xml")/irodalom/könyv return { $x } A lekérdezés eredmény:... at kulcsszóval lehet számolni az iterációkat: for $x at $i in doc("irodalom.xml")/könyvesbolt/könyv/cím return {$i}. {data($x)}

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell let $x := expr1 return expr2 Jelentése: –az $x változó az expr1 eredményét veszi fel –kiértékeli és visszaadja az expr2 eredményét let $x := doc("irodalom.xml")/irodalom/könyv return { $x } A lekérdezés eredménye:......

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell where where hasonló az SQL where feltételéhez. Milyen filmeket rendezett Fellini: for $f in collection(" filmek")/ film where $f/ rendező / veznév =‘Fellini’ return $f/ cím Az XPath útvonalra vonatkozó szabályok: Ha az útvonal nem létezik, akkor feltétel HAMIS! Ha az útvonal kifejezés több csúcsot eredményez, akkor a feltétel IGAZ, ha LEGALÁBB EGY csúcsra igaz.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Konstruktorok for $k in doc(‘irodalom.xml’)//könyv where $k/szerző/kernév = ‘Kálmán’ and $k/szerző/veznév = ‘Mikszáth’ return { $k/cím, $k/ár } A lekérdezés eredménye: Noszty fiú 845 Gavallérok 530

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Összekapcsolás (Join) Hasonlítsuk össze a Libri és az Alexandra árait! { for $a in doc(“alexandra.xml”)/könyv, $l in doc(“libri.xml”)/könyv where = return { $a/cím } { $a/ár }, { $l/ár } }

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Csoportosítás Nincs GROUP BY az XQuery nyelvben. Adjuk meg a PANEM kiadó szerzőinek összes művét: { for $s in distinct- values(doc(‘irodalom.xml’)/irodalom/könyv[kiado=‘PANEM’]/szerző) return { $s, for $c in document(‘irodalom.xml’)/irodalom/könyv[szerző=$a]/cím return { $c } }

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Aggregálás Hány könyvet adtak ki a szerzők évente? (A nulla ne jelenjen meg.) for $s in distinct-values(doc(" $é in let $k := doc(" return if exists($k) then { $s, $é, count($k) } else ( )

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Rendezés: order by A for $v in e1 return e2 FLWOR kifejezésben az e1 sorrendje határozza meg az eredmény elemeinek sorrendjét. Ha más sorrendet akarunk megadni, akkor a következőt használhatjuk: for $v in e1 order by e3 [ascending | descending] [empty greatest | least] return e2 A nullértékek esetén az [empty greatest | least] mondja meg, hogy a nullérték a lista végén vagy elején legyen.

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Példa rendezésre Listázzuk ki rendezve a PANEM kiadó 2001 utáni könyveit. { for $könyv in /irodalom/könyv where > 2001 and $irodalom/kiadó=‘PANEM’ order by $könyv/cím return {$könyv/cím }, for $szerző in $könyv/szerző return {$szerző } }

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Néhány fontosabb függvény Az XQuery beépített függvényei segítségével bonyolultabb számításokat is el lehet végezni. Új függvények is definiálhatók. FüggvényPélda countcount((0,4,2)) → 3 maxmax((0,4,2)) → 4 subsequencesubsequence((1,3,5,7),2,3) → (3,5,7) emptyempty((0,4,2)) → false() existsexists((0,4,2)) → true() distinct-valuesdistinct-values((4,4,2,4)) → (4,2) to(1 to 10)[. mod 2 eq 1] → (1,3,5,7,9)

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell 1.Általános információk 2.Bevezető: Félig-strukturált, XML adatbázisok 3.Az XML fogalmai 4.Az XML DTD sémája 5.Az XPath lekérdező nyelv 6.Az XQuery lekérdező nyelv 7.Összefoglalás

Master Informatique dr. Kiss AttilaFélig-strukturált adatmodell Összefoglalás Az XML adatbázisok egyre nagyobb szerepet kapnak. Kutatásuk, gyakorlati alkalmazásuk egyre fontosabb. Nem szorítják ki a relációs adatbázis-kezelőket. XML, DTD, XPath, XQuery Az XML adatbázis-kezelők rendelkeznek a szokásos adatbázis- kezelői jellemzőkkel: –Adatmodell (félig-strukturált) –Lekérdező nyelvek –Indexelés –Tranzakció-kezelés –Jogosultságok kezelése Ajánlott oldalak: Interaktív XML, DTD, XSLT: Interaktív XPath: Interaktív XQuery: KÖSZÖNÖM A FIGYELMET!