XML séma

Félstruktúrált adat

  • Fán alapuló adatmodell
  • Motiváció: adatok rugalmas megjelenításe, dokumentumok megosztása rendszerek és adatbázisok között.

Gráf

  • Pontok = objektumok.
  • Az élek címkéi tulajdonképpen az attribútumnevek, kapcsolatok.
  • Az atomi értékek a levelekben tárolódnak.

XML

  • Extensible Markup Language
  • A dokumentum deklarációval kezdődik, amit egy speciális <?xml ... ?> tag határol.
  • Tagek: nyitó, záró, egymásba ágyazott tagek (case sensitive)
  • Jól formált XML: megengedi, hogy önálló tageket vezessünk be.
    • Nem hiányzik a deklaráció
    • Minden nyitó tagnek megvan a záró párja
    • Nincs átfedés az egymásba ágyazott tagek között
    • Egyetlen gyökérelem van
  • Valid XML: illeszkedik az előre megadott sémára: DTD vagy XML séma.

DTD felépítése

  • Document Type Definition
<!DOCTYPE gyökér elem [
<!ELEMENT elem név(összetevők)>
. . . további elemek . . .
]>
  • ELEMENT: egy-egy elem leírása az elem nevét és zárójelek között az alelemek megadását jelenti. (sorrend, multiplicitás), a levelek (szöveges elemek) típusa (#PCDATA)

  • Elem leírások:

    • Az alelemek a felsorolás sorendjében kell, hogy kövessék egymást
    • Egy elemet a felsorolásban egy további szimbólum követhet megadva a multiplicitást (*,+,?)
    • A | szimbólum jelentése: vagy
  • Attribútumok:

    • Az XML-ben a nyitó tag-ek mellett szerepelhetnek attribútumok.
    • Egy DTD-ben, <!ATTLIST E A1 type1 value1 A2 type2 value2...> az taghez tartozó attribútumokat adja meg.
    • Mindegyik attribútumhoz meg kell adni, hogy mi legyen a típusa, és mi legyen igaz az értékére.
  • ID és IDREF attribútumok:

    • ID: <E A = "xyz"> - elem egy attribútuma, aminek típusa ID$
    • IDREF: Egy $F$ elem az IDREF attribútum segítságável hivatkkozhat egy másik elemre annak ID attribútumán keresztül (IDREFS attribútummal tövvre is)

XML séma felépítése

  • Az XML sémák segítségével szintén XML dokumentumok szerkezetét adhatjuk meg. Itt több megszorítást lehet előírni, mint a DTD-k esetén.
  • Az XML séma maga is egy XML dokumentum.
  • xs:element:
    1. name = a definiált elem neve
    2. type = az elem típusa
    • Lehyet XML séma típus, pl.: xs:string
    • vagy egy olyan típus, amit az adott XML sémában deklaráltunk
  • Összetett típusok:
    • létehozás: xs:complexType
      • a name attribútummal nevet adhatunk ennek a típusnak
    • az xs:complexType`` egy tipikus aleleme az xs:sequence, amihez xs:element``` elemek egy sorozata tartozik
  • xs:attribute:
    • elemek használatával az összetett tpuson belül a típushoz tartozó elemek attribűtumait adhatjuk meg
    • az xs::attribute elem attribútumai:
      • name és type
      • use = "required" | "optional"
  • Elem megszorítások:
    • az xs:simpleType segítségével felsorolásokat adhatunk meg és az alaptípusra vonatkozó megszorításokat.
    • name attribútuma van és xs:restriction aleleme
  • xs:restriction
    • a base attribútum adja meg, hogy melyik egyszerű típusra vonatkozik (pl.: xs:integer)
    • {min, max}{Inclusive, Exclusive} a nény attribútum használatával alsó és felső korlátokat adhatunk meg.
    • xs:enumeration alelem, a value attribútum után megadhatjuk a felsorolás elemeit.
  • Kulcsok:
    • Az xs:element elemhez tartozhat xs:key alelem.
    • Jelentése: ezen az elemen belül, minden elem, ami egy adott szelektor ösvényen keresztül elérhető, egyedi értékekkel kell, hogy rendelkezzen a megadott mezőonek kombinációin (alelem, attribútum)
  • Idegen kulcsok:
    • A xs:keyref alelem az xs:element elemen belül előírja, hogy ezen az elemen belül bizonyos értékek, melyeket ugyanúgy a szelektor és mezők használatával adhatunk meg, egy kulcs értékei között kell, hogy szerepeljenek.

Keretrendszer

  1. Információintegráció: A különböző helyekről származó adatbázisokat úgy üzemeltetni, mintha egységes egészet alkotnának.
  2. Félig-strukturált adat: Viszonylag új adatmodell, amely segít megbirkózni az adatintegráció problémájával.
  3. XML: Szabványos nyelv a félig-strukturált adatok leírására.

Információintegrációs probléma

  • Egymáshoz kapcsolható adatelemek sok helyen léteznek és elvileg együttműködésre alkalmasak volnának:
  • De a különböző adatbázisok több tekintetben különböznek:
  1. Adatbázis modellek (relációs, objektum-orientált, NoSQL, dokumentum stb.)
  2. Séma (normalizált, nem normalizált)
  3. Szakkifejezések: tanácsadó alkalmazott-e? Visszavonult nyugdíjas-e? Alvállalkozó?
  4. Konvenciók (méter kontra láb [metrikus (SI, CGI), birodalmi].

Két megközelítés az integrációra

  1. Adattárház: Az adatforrásokról egy központi másolatot készít, és egy közös adat sémává transzformálja.
  • Az adatokat naponta, hetente frissítik, de ennél nem szabad nagyobb pontosságot megcélozni.
  1. Mediáció, közvetítés: Az összes adatforrásra egy nézetet kell létrehozni, mintha egy integrált rendszer részei volnának:
  • A nézetre vonatkozó lekérdezést úgy lehet megválaszolni, hogy a lekérdezést az egyes adatforrások szakkifejezéseire fordítják le és azután kérdezik le az eredeti adatforrásokat

Források