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)
- ID:
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
:name
= a definiált elem nevetype
= 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
- a
- az
xs:complexType`` egy tipikus aleleme az
xs:sequence, amihez
xs:element``` elemek egy sorozata tartozik
- létehozás:
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
éstype
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 ésxs:restriction
aleleme
- az
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, avalue
attribútum után megadhatjuk a felsorolás elemeit.
- a
- Kulcsok:
- Az
xs:element
elemhez tartozhatxs: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)
- Az
- Idegen kulcsok:
- A
xs:keyref
alelem azxs: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.
- A
Keretrendszer
- Információintegráció: A különböző helyekről származó adatbázisokat úgy üzemeltetni, mintha egységes egészet alkotnának.
- Félig-strukturált adat: Viszonylag új adatmodell, amely segít megbirkózni az adatintegráció problémájával.
- 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:
- Adatbázis modellek (relációs, objektum-orientált, NoSQL, dokumentum stb.)
- Séma (normalizált, nem normalizált)
- Szakkifejezések: tanácsadó alkalmazott-e? Visszavonult nyugdíjas-e? Alvállalkozó?
- Konvenciók (méter kontra láb [metrikus (SI, CGI), birodalmi].
Két megközelítés az integrációra
- 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.
- 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