Master Informatique 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

Koordináták, függvények
Tananyag: konzultáció
Zenetár a webszerverünkön, avagy XML használata PHP 5 alatt. Ercsey Balázs (laze) – netpeople.hu.
Lekérdezések SQL-ben Relációs algebra A SELECT utasítás
ADATBÁZISOK.
Adatbázis gyakorlat 1. Szerző: Varga Zsuzsanna ELTE-IK (2004) Budapest
1 Internet. 2 WWW  World Wide Web  Hivatkozásokkal összekötött hipermédia dokumentumok rendszere  Dokumentumok -> Weboldalak  A weboldalak hipertext.
Adatbázisok SQL. TARTALOM Szijártó M.2 Témakörök  Az SQL tulajdonságai  A műveletek fajtái  Objektum-műveletek  Lekérdezések Tulajdonságok és műveletek.
Adatbázis-kezelés.
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.
Extensible Markup Language
2010/2011.Huszár István1. dia Weboldalak tervezése II. (X)HTML.
Az egyed-kapcsolat modell
Adatbázis-kezelés.
Amit a HTML-ről érdemes tudni
Vizuális modellezés Uml és osztálydiagram UML eszközök
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Előadás vázlat Az XML története és alkalmazási területe
Halmazok, relációk, függvények
Hernyák Zoltán XML validálás.
Adatbázis-kezelés ACCESS program:
XML alapok 2. XML hibaellenőrzés XML a böngészőkben XML parser
RDF és SPARQL. Felhasznált anyagok Marcelo Arenas, Claudio Gutierrez, Jorge Peréz: RDF and SPARQL: Database Foundations (bemutató) Claudio Gutierrez,
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 AttilaXML adatbázisok strukturális indexelése XML adatbázisok strukturális indexelése (Structural indexes.
Önleíró adatok: XML INFO ÉRA, Békéscsaba
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
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.
Webes Információs Rendszerek fejlesztése
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Térkép. Mi az adat? Minden információ, amit tárolni kell. Minden információ, amit tárolni kell.  szám  szöveg  dátum  hang  kép, stb.
Dr. Krauszné Dr. Princz Mária Adatbázis rendszerek I.
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.
Adatbázis-kezelés SQL-lel
Weboldalak tervezése (X)HTML.
Adatbázis-kezelés JAG,
Hernyák Zoltán XSLT transzformációk.
11. tétel Adatbázis táblái közti kapcsolatok optimalizálása
Adatbázis kezelés. Az adatbázis tágabb értelemben egy olyan adathalmaz, amelynek elemei – egy meghatározott tulajdonságuk alapján – összetartozónak tekinthetők.
RDF sémák. RDF  URI-val azonosított erőforrások  Hármasok a kapcsolatrendszer leírására  Egyszerű lekérdezések (rdf:type)  Következtetésre nem alkalmas.
Adatbázis kezelés.
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.
Adatbázisok gyakorlat
Adatbázis alapfogalmak
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
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.
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Illés Zoltán ELTE Informatikai Kar
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
Az XML nyelv (Extensible Markup Language). XML  XML: leíró nyelv (metanyelv)  XML alkalmazás: egy megalkotott nyelv  XML dokumentum: egy új nyelv egy.
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
Automatikus fizikai tervezési javaslatok XML adatbázisokhoz Balogh Bernadett Kresz Marcell Cseh Tamás.
Gráfadatbázisok Rácz Gábor.
Adatbázisszintű adatmodellek
Programozás III JPA.
Készítette: Kiss András
Kovács Gergely Péter Bevezetés
A CLIPS keretrendszer
Adatbázis-kezelés.
XML lekérdezőnyelvek XPath XQuery.
Előadás másolata:

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

Master Informatique 2 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 XML séma 6.Az XPath lekérdező nyelv 7.Az XQuery lekérdező nyelv 8.Az XSLT 9.Összefoglalás

Master Informatique 3 dr. Kiss AttilaFélig-strukturált adatmodell Tankönyv az XML-hez III. Félig-strukturált adatok modellezése és programozása Adatbázisrendszerek alapvetés könyv: 11.1 fejezet: Félig-strukturált adat ( oldal) 11.2 fejezet: XML ( oldal) 11.3 fejezet: DTD ( oldal) 11.4 fejezet: XML séma ( oldal) 12.1 fejezet: XPath ( oldal), 12.2 fejezet: XQuery ( oldal) 12.3 fejezet: XSLT ( 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

Master Informatique 4 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 5 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 6 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 7 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 8 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 9 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 10 dr. Kiss AttilaFélig-strukturált adatmodell A HTML megjelenítése böngészővel

Master Informatique 11 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 12 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 13 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 14 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 15 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. HTML4.0 ∈ XML  SGML

Master Informatique 16 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 17 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 18 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 19 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 20 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 21 dr. Kiss AttilaFélig-strukturált adatmodell Példa Igaz-e, hogy 2+3 < 6? Előre definiált entitások: << >> && &apos;‘ "“

Master Informatique 22 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 23 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 24 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 25 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 26 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 27 dr. Kiss AttilaFélig-strukturált adatmodell Egy teljes XML dokumentum Kiss Attila Kötelező Opcionális

Master Informatique 28 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 29 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 30 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 31 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 32 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 33 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 34 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 35 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 36 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 37 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 38 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 39 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 40 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 41 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 42 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 43 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 44 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 45 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 46 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 47 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 48 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 49 dr. Kiss AttilaFélig-strukturált adatmodell A DTD-nek megfelelő dokumentum Henry William Diana Charles

Master Informatique 50 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 51 dr. Kiss AttilaFélig-strukturált adatmodell Példa DTD: XML: &ka;&copyright;

Master Informatique 52 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 53 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 54 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 55 dr. Kiss AttilaFélig-strukturált adatmodell Egy DTD-nek megfelelő XML schema DTD:

Master Informatique 56 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 57 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 58 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 59 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 60 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 61 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 62 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 63 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 64 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 65 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 66 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 67 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 68 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 69 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 70 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 71 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 72 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 73 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 74 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 75 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 76 dr. Kiss AttilaFélig-strukturált adatmodell A parent tengely b

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

Master Informatique 78 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 79 dr. Kiss AttilaFélig-strukturált adatmodell A descendant-or-self tengely b

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

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

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

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

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

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

Master Informatique 86 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 87 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 88 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 89 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 90 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 91 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 92 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 93 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 94 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 95 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 96 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 97 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 98 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 99 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 100 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 101 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 102 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 103 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 104 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 105 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 106 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 107 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!