1 / 13

XML

XML. Adatbázis-kezelés (Oracle). XML.

kagami
Download Presentation

XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML Adatbázis-kezelés (Oracle)

  2. XML • Az XML (eXtensible Markup Language) eredetileg a „dokumentumvilágból” és nem az „adatbázisvilágból” (értsd: dokumentumokkal illetve adatbázisokkal foglalkozó tudományos közösség) emelkedett ki, mint a dokumentumok formájának egységesítésére történő javaslat. • Ennek nyomait a nyelv máig őrzi: • az attribútumok és elemek különbözősége, aminek az adatbázisok szempontjából vajmi kevés jelentősége van, • az elemek alapértelmezett esetben rendezetten helyezkednek el, ami az adatbázisok esetében ritkán alapkövetelmény (az attribútumok sorrendje viszont lényegtelen), • a típusok bevezetése is csupán később történt meg (XMLSchema), valamint a kulcs, idegen kulcs jellegű megszorítások is hiányoztak kezdetben a nyelvből (sőt még most is hiányoznak).

  3. XML (példa) <konyv nyelv=” Magyar”> <cim>Létbátorság</cim> <szerzo>Paul Tillich</lang> </konyv> vagy... <konyv> <cim>Létbátorság</cim> <szerzo>Paul Tillich</lang> <nyelv>Magyar</nyelv> </konyv>

  4. Példa (XML dokumentum) <? xml version=”1.0” ?> <konyvek> <konyv nyelv=” magyar”> <cim>Létbátorság</cim> <szerzo>Paul Tillich</lang> <ar>2400</ar> </konyv> <konyv nyelv=”magyar” megjegyzes=”nem beszerezheto”> <cim>En es Te</cim> <szerzo>Martin Buber</szerzo> </konyv> </konyvek>

  5. Példa (gráf ábrázolás) konyvek konyv konyv cim ar szerzo megjegyzes Letbatorsag Paul Tillich 2500 szerzo cim En es Te Martin Buber nem elerheto

  6. Féligstrukturált adatok és W3C • Az XML megjelenésével szinte egy időben kezdődött a féligstrukturált adatok kutatása, ami a korábbi relációs modell helyett gráfokat használ az adatok reprezentálásának modelljeként, s így nagyobb rugalmasságot biztosít. • A két világ, a dokumentum- és az adatbázisvilág, hamar egymásra talált. • A World Web Consortium (W3C) (többek között a html kiötlője) szabványokat kezdett el kidolgozni az XML adatok egységes kezelésére vonatkozóan. A legfontosabb javaslataik: • XML, XMLDOM • XPath • XSLT • XQuery • XSLT

  7. XPath I. • A dokumentumokban való navigáláshoz a W3C által javasolt eszközök (XSLT, XQuery stb.) többsége az XPath nyelvet használja. • Az XPath kifejezések építőkövei a lokációs lépések (location steps). • Egy-egy lokációs lépés: egy axis-ból, egy pont ellenőrzésből (node test) és egy predikátumból áll. • Az axisok lehetnek: • attribute • self, parent, child • ancestor, ancestor-or-self, descendant, descendant-or-self • following-siblings, preceding-sibling, followings, precedings. • Példa: child::item[position()=1]. • A lokációs lépések „egymásba fűzésével” lokációs ösvények (locations paths) készíthetők. • Példákhoz lásd az XML_XPath_pelda.html fájlt.

  8. XPath II. • Rövidített szintaxis: • ha nem szerepel semmi axis-ként, az a child axis-t jelenti, • . a self axis-nak felel meg, a .. pedig a parent axis-nak, • @ az attribute axis-t helyettesíti, • // a descendant-or-self::node() helyett áll. • Példákhoz ismételten lásd az XML_XPath_pelda.html fájlt. • Bővebben lásd: W3 Schools oldal XPath leírását.

  9. Oracle XML DB • Az XML adatok kezelésére az Oracle egy külön komponenst készített, az Oracle XML DB-t. • Az XML adatok tárolására az XMLType típust fejlesztették ki. • Az XMLType típus tulajdonképpen egy objektumtípus. Jellemzői: • tábla és tábla oszlopa is lehet XMLType típusú, • ugyanúgy használható, mint bármelyik másik típus, pl. szerepelhet PL/SQL eljárás paramétereként, függvény visszatérési értékeként stb., • csak jól formázott (well-formed) XML dokumentumok lehetnek ilyen típusúak, • legfontosabb metódusai: extract(), extractValue(), existsNode(), xmlSequence(), updateXML(), ezek a függvények azonban önállóan is léteznek. • Alapesetben az XML dokumentumok CLOB-ként (Character Large Object) tárolódnak.

  10. extract(), extractValue(), existsNode() • Az extract() azt a pontot vagy pontokat adja vissza, amelyek illeszkednek a függvényben megadott XPath kifejezésre. • A függvény az XMLType egy metódusaként is használható. • Az existsNode() függően szolgáltat igaz vagy hamis értéket (1 vagy 0), hogy a megadott XPath kifejezésre illeszkedik pont vagy sem. • Segítségével olyan feltételeket fogalmazhatunk meg többek között a WHERE feltételben, melyeknek kifejezése különben bonyodalmas lenne. • Az extractValue() annak az attribútumnak, elemnek a szöveges értékét szolgáltatja vissza, ami illeszkedik a függvényben megadott XPath kifejezésre. • Példákhoz lásd az XML_XPath_pelda.html fájt.

  11. XMLSequence() • Az extract() függvény sok esetben dokumentum helyett dokumentum-töredékeket (document fragments) ad vissza, vagyis olyan XML elemeket, amelyeket „nem fog össze” egy közös gyökér, hanem függetlenek egymástól. • Az XMLSequence() függvény minden egyes ilyen fragmentet XMLType típusú objektummá alakít, majd veszi ezek kollekcióját. • A table() függvénnyel aztán a kollekció virtuális táblává alakítható. • Példákhoz lásd az XML_XPath_pelda.html fájlt.

  12. Feladatok I. • A kolcsonzesek tábla felett adjuk meg a következő lekérdezéseket. • Adjuk meg a gyökérelemet és annak tartalmát. • Adjuk meg a táblában szereplő neveket. • Adjuk meg az összes attribútumot és azok értékét. • Adjuk meg a Gipsz Jakab által kölcsönzött könyvek címeit. • Adjuk meg a második kölcsönző által kölcsönzött cd-k közül az elsőt. • Adjuk meg azokat, akik kölcsönöztek dvd-t, de nem kölcsönöztek könyvet. • Adjuk meg azon könyveket melyeknek a nevében szerepel az ‘s’ betű (kicsi vagy nagy). • Adjuk meg azokat, a könyveket, amelyeket legalább ketten kölcsönöztek. • Adjuk meg hány gyermeke van a kolcsonzesek elemnek.

  13. Feladatok II. • A levelezes tábla felett adjuk meg a következő lekérdezéseket. • Adjuk meg Melák kiknek küldött email-t. • Adjuk meg, hogy Luca összesen hány email-t küldött. • Adjuk meg ki írt olyan email-t, amelyben szerepel a Melak szó. • Adjuk meg Luca válaszként küldött email-jeinek (subject RE:-vel kezdődik) szövegét. • Adjuk meg azon email-ek szövegét, amelyekre választ is küldtek. A válaszok szövegét is adjuk meg.

More Related