V. gyakorat: XML technikák MS SQL 2008-ban

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "V. gyakorat: XML technikák MS SQL 2008-ban"

Átírás

1 V. gyakorat: XML technikák MS SQL 2008-ban Írta: Tinku Szilárd Mátéfi Gergely, Nagypál Gábor, Bihari István, Hajnács Zoltán korábbi segédletének felhasználásával 1 BEVEZETÉS XML DOKUMENTUMOK FELÉPÍTÉSE ELEMEK ÉS CÍMKÉK SZERKEZET ATTRIBÚTUMOK HELYETTESÍTŐ SZEKVENCIÁK NÉVTEREK SÉMALEÍRÁS XML TÁMOGATOTTSÁG AZ MS SQL 2008-BAN FOR XML CLAUSE XML ELJÁRÁSOK AZ XSL TRANSZFORMÁCIÓ XPATH KIFEJEZÉSEK XSL STÍLUSLAPOK HOZZÁRENDELÉSE XML DOKUMENTUMOKHOZ ELÁGAZÁSOK ÉS VÁLTOZÓK XSL STÍLUSLAPOKON FELTÉTELES VÉGREHAJTÁS FELTÉTELES ELÁGAZÁS VÁLTOZÓK XSLT SABLONOK SABLONOK REKURZÍV FELDOLGOZÁSA TÖBBSZÖR FELHASZNÁLHATÓ NEVESÍTETT SABLONOK STÍLUSLAPOK TAGOLÁSA XQUERY HASZNÁLAT SZINTAKTIKA FLWOR XQUERY FÜGGVÉNYEK FELKÉSZÜLÉS A MÉRÉSRE FELHASZNÁLT IRODALOM FÜGGELÉK: XPATH FÜGGVÉNY REFERENCIA FÜGGELÉK: XSLT REFERENCIA FÜGGELÉK: XSD ADATTÍPUS MEGSZORÍTÁS REFERENCIA FÜGGELÉK: MODIFY() METHOD REFERENCIA

2 1 Bevezetés A nagyobb informatikai rendszerek jellemzően több hozzáférési felülettel rendelkeznek, például windowos klienssel, webes megjelenési felülettel, adatkapcsolati interfésszel külső informatikai rendszer felé stb. Több hozzáférési felület mellett a hagyományos kliens-szerver architektúra nem hatékony, ehelyett az összetettebb rendszerek felépítése az úgynevezett többrétegű architektúrát követi. Többrétegű architektúra esetén az adatelemekre vonatkozó előírások betartatásáért felelős alkalmazáslogikai réteg és a felhasználói felület kezeléséért felelős megjelenítési réteg szétválik, és a különböző hozzáférési felületek a közös alkalmazáslogikai réteget használják. Az egyes rétegekben található, esetenként eltérő platformon futó, eltérő gyártótól származó szoftverkomponensek integrációjához az adatelemek leírására alkalmas közös nyelv szükséges. Az elmúlt években az Extensible Markup Language (XML) nyelv vált az adatelemek leírásának de facto szabványává. Az XML platformfüggetlen, szöveges formátumú jelölő nyelv, amely alkalmas információk és adatelemek struktúrált leírására és továbbítására. Kapcsolódó szabványai lehetőséget teremtenek XML sémák definiálására és validálására, valamint a különböző sémák közötti transzformációra is. Jelen labor célja, hogy bepillantást engedjen az MS SQL Server 2008 XML támogatásába, és azon keresztül megismertesse a hallgatót magával az XML-el, a hozzá kapcsolódó technikákkal, eszközökkel. Az első alfejezet XML dokumentumok szerkezetét mutatja be, ezt követően az MS SQL Server 2008 XML támogatásáról lesz szó, majd betekintünk az XQuery rejtelmeibe, végül megnézzük, hogyan transzformálható át az XML megjelenése az XSLT és XPath technológiák segítségével. A segédlet az XML 1.0, XSLT 1.0, XPath 1.0, XQuery 1.0 és XSD 1.1 szabványokra épül. 2 XML dokumentumok felépítése 2.1 Elemek és Címkék Az XML dokumentumok, a HTML-hez hasonlóan, szöveges formátumú fájlok, amelyek egymásba ágyazott elemeket tartalmaznak. Az elemeket nyitó- és zárócímkék (tagek) jelölik, mint ahogy az alábbi példa is mutatja: <?xml version="1.0" encoding="iso "?> <üzenet> <feladó>géza</feladó> <címzett>béla</címzett> <törzs>szia Világ!</törzs> </üzenet> A HTML-lel szemben az XML szabvány nem rögzíti a címkeszótárat. Ehelyett az alkalmazástól függő mindenkori nyelvtan (XML séma) határozza meg, milyen címkék, milyen egymásbaágyazási szabályokkal szerepelhetnek a dokumentumban. Az XML terminológiája szerint egy dokumentum jól formált (well-formed), ha szintaktikája betartja az XML előírásait, és érvényes (valid) egy sémára nézve, ha követi annak nyelvtanát. A címkék neve betűvel vagy aláhúzással ( _ ) kezdődhet. Az XML a címkék nevében különbséget tesz kis- és nagybetűk között, tehát például a <Feladó> és a <feladó> címkék különbözőnek számítanak. 64

3 2.2 Szerkezet Minden XML dokumentum egy vezérlési utasítással kezdődik, amely kötelezően tartalmazza az XML verziószámát, és opcionálisan a felhasznált kódlapot: <?xml version="1.0" encoding="iso "?> Az XML dokumentumok elemei fa struktúrát alkotnak. Egy dokumentumnak pontosan egy gyökér eleme kell, hogy legyen; ez a fenti példában az <üzenet> elem volt. Minden nyitócímkéhez kell, hogy tartozzon egy záró címke is, amelyek közrefogják az elemhez tartozó adatot. Ellentétben a HTML megengedőbb szabályaival, XML-ben a nyitó- és zárócímkéknek követniük kell a zárójelezési szabályokat. Így például az alábbi forma helyes HTML-ben, de szabálytalan XML-ben: <b>ez vastag <i> és ez még dőlt is </b> ez már csak dőlt </i> Helyette a szabályos XML leírás: <b>ez vastag <i> és ez még dőlt is </i></b><i> ez már csak dőlt </i> Ha egy elemhez nem tartozik adat, akkor a nyitó- és a zárócímkék összevonhatóak egy önlezáró címkébe (empty-element tag), például a <br></br> helyett egyszerűen írható <br/>. A megjegyzéseket, a HTML-hez hasonlóan, a <!-- Megjegyzés --> szintaktikával jelezhetjük egy XML dokumentumban. A megjegyzések nem ágyazhatók egymásba. 2.3 Attribútumok Az XML logikája szerint egy elem tulajdonsága vagy gyermekelemmel, vagy attribútummal írható le, a használt séma szabályainak megfelelően. Az attribútumokat a nyitócímkébe lehet elhelyezni, például: <üzenet kelt= >Hello!</üzenet> Az attribútum értéke megadható mind aposztróf, mind idézőjel határolók között, azonban ellentétben a HTML-lel a határolót nem szabad elhagyni. Egy attribútum egy címkében csak egyszer szerepelhet. 2.4 Helyettesítő szekvenciák A címkékkel jelölt adatokban bármilyen karakter szerepelhet, kivéve a foglalt < és & vezérlőkaraktereket. A vezérlőkarakterek helyett az XML helyettesítő szekvenciák használhatóak, lásd az alábbi táblázatban. Például ez szabálytalan megadás: <formula>a < b & b < c => a < c </formula> Helyette ez használandó: <formula>a < b & b < c => a < c</formula> Alternatívájaként a speciális <![CDATA ]]> határoló is alkalmazható: <formula><![cdata a < b & b < c => a < c ]]></formula> Eredeti karakter & < > újsor Helyettesítés & < > " &apos; 65

4 2.5 Névterek Mivel a címkeszótárat az alkalmazások határozzák meg, ezért különböző alkalmazásoktól származó dokumentumok összefésülésekor névütközések jöhetnek létre a címkék nevében. A névütközések elkerülésére névterek használhatóak. Egy névteret az alkalmazás által definiált névtér URI (Uniform Resource Identifier, egységes erőforrás azonosító) azonosít, például a később ismertetendő XSLT a " névteret használja. A névtérbe tartozó címkék használatához egy egyedi prefixet kell definiálni a névtér számára az xmlns:prefix="névtér URI" speciális attribútummal. Ezt követően a névtér címkéire kvalifikált elnevezéssel, a <prefix:címkenév> formában lehet hivatkozni, ahogy az alábbi példa is szemlélteti: <?xml version="1.0" encoding="iso "?> <mail:message from="béla" to="réka" xmlns:mail="internet:mail"> <mail:subject>találka</mail:subject> <mail:body xmlns:xhtml=" <xhtml:body> Találkozzunk <xhtml:b>6-kor</xhtml:b> a szokott helyen! </xhtml:body> </mail:body> </mail:message> 2.6 Sémaleírás Adott az XML, mint általános, egyszerű és hatékony adatleíró nyelv. Önleíró, azaz egy XML dokumentumot minden külső információ nélkül értelmezni lehet, be lehet járni a benne található csomópontokat, kiolvasva a tagok értékét és attribútumait. Azonban irányított kommunikáció esetén, akár gépek közötti információcserénél, akár gép-ember kapcsolatban sokszor szabályokat kell alkotnunk a küldendő illetve fogadandó XML dokumentum szerkezetére vonatkozóan. Ekkor már csak azokat az XML dokumentumokat fogadjuk el érvényesnek, amelyek szerkezete megfelel a formális leírásban szereplő feltételeknek. Például egy megrendelést leíró XML dokumentumra valószínűleg kikötnénk, hogy benne kell, hogy legyen a megrendelő neve, címe, adószáma satöbbi. Ha a kapott XML-ben nem szerepel minden kívánatos adat, akkor visszadobjuk a megrendelést, mert nem érvényes. A legelterjedtebb sémadefiníciók az alábbiak: DTD, Document Type Definition: a legelső eszköz volt az XML dokumentumok struktúrájának leírására. Ma már nem igazán használják, több sebből is vérzik, de a legnagyobb problémája: nem XML formátumú. Emellett nincsenek benne adattípusok, mindent csak szövegként lehet definiálni, valamint nem támogatja a névtereket, amely nélkül szó sem lehet több forrásból összefűzött adatok ellenőrzésére. XDR, XML Data-Reduced: a nagyreményű Microsoft DTD utód - volt. Amellett, hogy XML formátumú még jóval flexibilisebb is, mint a DTD. A DTD-ben leírt struktúrának maradéktalanul meg kell felelni egy XML dokumentumnak. Az XDR is tud ilyen szigorú lenni, de emellett elő lehet azt is írni, hogy az ellenőrizendő dokumentum egyes részeiben lehetnek további elemek is, amelyet a séma nem ír le. Például egy személyről szóló XML adatlapban kötelezővé tesszük a név, születési dátum és az anyja neve elemeket, de ezen felül megengedjük, hogy a testmagasságot is beleszerkeszthessük a dokumentumba. A hangsúly nem azon van, hogy előírhatunk opcionális elemeket, hanem azon hogy megengedhetünk olyan elemeket is, amelyekről a séma készítésekor még nem is tudtuk, hogy lesznek. Ehhez kapcsolódó szolgáltatás, hogy XDR segítségével le lehet szabályozni a dokumentum egy 66

5 részét is, nemcsak a teljes egészet (ellentétben a DTD-vel). Emellett az XDR bővíthető, azaz az igények megváltozásakor nem kell a sémát kidobni, csak egy másik névtér bevezetésével kiegészíteni a meglevőt. Utolsó, de nagyon fontos szolgáltatás az XDR-ben, hogy az elemek és attribútumoknak meg lehet adni a típusát (egész szám, dátum satöbbi). A DTD-ben minden szövegként van deklarálva. A legtöbb, a közeli múltban fejlesztett Microsoft termék XDR-t használ sémaleírásra. XSD, XML Schema Definition a jelent pillanatban a leginkább aktuális sémaleíró nyelv (2001 óta W3C szabvány). A.NET XML osztályok és az MSSQL 2008 Server ezt a sémaleírást is tudják kezelni (természetesen az XDR mellett). A Visual Studio egyik alapszolgáltatása az XSD sémák grafikus szerkesztése, konverziója XDR-ből XSD-be, XML dokumentumból XSD generálása, stb. A továbbiakban csak az XSD-vel foglalkozunk. Az XSD, amelyet gyakran csak XML Schema néven emlegetnek, alkalmas a dokumentumban megjelenő elemek, azok viszonyának, elrendezésének definiálására, a lehetséges attribútumainak és a tartalmazott adatok pontos specifikálására. Előnye a DTD vel szemben, hogy maga is XML dokumentum, támogatja az adattípusokat (data types), névtereket és rugalmas, kiterjeszthető a későbbi változtatásokra. Hogy is épül fel egy XML Schema? <?xml version="1.0"?> <xs:schema xmlns:xs=" targetnamespace=" xmlns=" </xs:schema> Mivel maga is XML, a szokásos vezérlőutasítással nyitjuk a dokumentumot. Minden séma gyökéreleme a <schema> tag, amelynek gyakran használt attribútumait a fenti példában láthatjuk. A root elementben lehetőségünk van hivatkozni a séma által használt névtérre annak prefixét is itt adhatjuk meg (xs): xs:schema xmlns:xs=" Megadhatjuk azt is, hogy a sémát felhasználó dokumentum milyen névteret használ, illetve annak default érték is beállítható, így nem kell azt minden tag-ben kiírunk majd: targetnamespace=" xmlns=" Ha egy dokumentumukra szeretnénk egy sémát érvényesíteni, akkor arra a gyökérelemben kell hivatkoznunk. Az alábbi példa szemlélteti ennek módját: 67

6 <?xml version="1.0"?> <note xmlns=" xmlns:xsi=" xsi:schemalocation=" note.xsd"> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> Az xmlns=" attribútum közli a schema-validatorral a dokumentum default névterét, majd meg kell adnunk a séma által használt névteret és a séma elérhetőségét, forrását: xmlns:xsi=" xsi:schemalocation=" note.xsd" A sémában definiált elemek kétfélék lehetnek: egyszerű (simple) és összetett (complex) elemek. Az egyszerű elemek nem tartalmazhatnak más elemeket és nem lehet attribútumuk, míg a complex elemeknél ez megengedett. Egy simple element a következőképp deklarálható: <xs:element name="xxx" type="yyy"/>, ahol a name értelemszerűen a tag neve, míg a type az adattípusa. A leggyakrabban használt adattípusok: xs:string, xs:decimal, xs:integer, xs:boolean, xs:date, xs:time. Kiegészíthető a definíció még a default vagy a fixed paraméterekkel (kizáró vagy), melyek segítségével az adat résznek adhatunk alapértelmezett értéket, illetve rögzített értéket. Az alábbi példán egy XML részlet és a hozzá tartozó egy lehetséges sémadefiníció látható: <lastname>refsnes</lastname> <age>36</age> <dateborn> </dateborn> <xs:element name="lastname" type="xs:string"/> <xs:element name="age" type="xs:integer"/> <xs:element name="dateborn" type="xs:date"/> Mint említve lett, csak complex elem tartalmazhat attribútumot, mindazonáltal magát az attribútumot egyszerű elemként deklaráljuk: <xs:attribute name="xxx" type="yyy"/> Természetesen itt is lehetséges default és fixed paramétereket megadni, valamint beállítható, hogy opcionális vagy kötelező legyen az attribútumunk. Alapértelmezésben opcionális, use="required" paraméterrel tehetjük kötelezővé a sémadefinícióban. Az alábbi példában láthatunk egy XML részletet és egy összetett elem egy lehetséges attribútum-definícióját: <lastname lang="en">smith</lastname> <xs:attribute name="lang" type="xs:string"/> Az egyszerű típusú elemeket mindig <xs:simpletype> tagen belül deklaráljuk! Az összetett elemek a következőképp deklarálhatók: 68

7 <xs:element name="xxx"> <xs:complextype> <xs:sequence> <xs:element name="yyy1" type="zzz1"/> <xs:element name="yyy2" type="zzz2"/> </xs:sequence> </xs:complextype> </xs:element> Az xxx nevű elem gyermekelemei az <xs:sequence> tagen belül kerülnek felsorolásra, és természetesen azoknak is lehetnek gyermekelemeik, a deklaráció hasonló módon, beágyazottan megy. Nézzünk egy példát egy XML részletre, és egy lehetséges sémadefinícióra: <employee> <firstname>john</firstname> <lastname>smith</lastname> </employee> <xs:element name="employee"> <xs:complextype> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> A tartalmazott adatra lehetőségünk van megkötéseket (restrictions/constraints) tenni, például egy életkort reprezentáló age elem egy lehetséges definíciója így nézne ki: <xs:element name="age"> <xs:simpletype> <xs:restriction base="xs:integer"> <xs:mininclusive value="0"/> <xs:maxinclusive value="120"/> </xs:restriction> </xs:simpletype> </xs:element> A lehetséges megszorítások listája a függelék résznél található. Részletes leírás és tutorial az XSD-ről a oldalon található. 3 XML támogatottság az MS SQL 2008-ban Az MS SQL Server 2000-ben nem volt XML adattípust, az XML állományokat legfeljebb szövegmezőkben tárolhatták, amely nem adott lehetőséget arra, hogy kihasználhassuk az XML által nyújtott lehetőségeket. XML outputot generálására már ebben a verzióban is volt lehetőség, lekérdezések eredményét akár XPath által kezelhető módon is ki tudtuk nyerni XML dokumentumokba. Az MS SQL Server 2005-ben jelent meg az XML, mint data type, sőt, már az XSD-t is támogatta. T-SQL utasítással készíthettünk saját sémákat, melyet aztán hozzárendelhettünk az XML columnhoz. Bevezették az XQuery és XPath támogatást, lehetőség nyílt az XML adatbázisban okos lekérdezésekre, méghozzá effektíven, köszönhetően az XML 69

8 indexelési lehetőségnek. Az MS SQL Server 2008-ban a séma validációs lehetőségeken bővítettek (pl. date, time adattípusok teljes körű támogatása), az XQuery supportot erősítették, valamint az XML data manipulation language (DML) operációkat bevezették a már meglévő funkciókon keresztül (insert, delete, stb.). Az XML típusú mező mérete egészen 2 GB-ig támogatott, hozzárendelhető (opcionálisan) sémadefiníció. Az XML adatokhoz az SQL Server támogatja az XML indexelést, melynek segítségével a lekérdezések rajtuk jelentősen meggyorsíthatók. 3.1 FOR XML clause Nem XML típusú adathalmazból is elő tudunk állítani XML outputot a FOR XML clause segítségével. A lekérdezés szintaktikája a következő: SELECT < > [FROM < >] [WHERE < >] [GROUP BY < > [HAVING < > [ORDER BY < >] [FOR XML {RAW AUTO EXPLICIT PATH}] Mint látható, négy lehetséges módon kérhetjük az eredmény XML felépítését: RAW: Az eredményhalmaz minden sorát önálló adatelemként adja vissza. Ezen elemek neve row, és az egyes oszlopok ezen elemek attribútumaiként jelennek meg. AUTO: Ez a mód az elemeket a forrásuk szerint címkézi, pontosabban, hogy melyik táblából származik az adat. Ha az adat a lekérdezés során több táblából kerül ki, az egyes táblákból elkülönített, beágyazott elemeket kapunk vissza az XML dokumentumba (tehát testvér tagek lesznek a rekordot reprezentáló elem gyermekeiként). Lehetőség van AUTO módban az ELEMENTS alternatív opciót használni, hogyha az egyes oszlopok értékeit nem attribútumok, hanem elemek formájában szeretnénk visszakapni. EXPLICIT: Minden bizonnyal ez a legösszetettebb formázási módszer, de a végeredményképp ennek használatával van lehetőségünk a legjobban paraméterezni az output felépítését. Definiálhatjuk a visszakapott adatelemek hierarchia rendszerét, és utána úgy formázhatjuk a dokumentumot, hogy az egyes elemeihez ezen hierarchia szinteket valamelyikét rendeljük. Az EXPLICIT lehetőség helyett általában a PATH opciót szokás választani. PATH: Az MS SQL Server 2005-ben bevezetett módszer, amely az EXPLICIT rugalmasságát biztosítja, de használhatóbb formában, ugyanis a kimenet XML-re alkalmazható az XPath szabvány, ennek következében szinte mindig a PATH opciót választjuk az output előállítására. A továbbiakban csak ezzel foglalkozunk. A PATH módozat esetén érdemes további két paraméter használatát megfontolni: a TYPE és a ROOT paraméterekét. A TYPE esetén a visszakapott adat XML típusú lesz, nélküle az SQL Server a default unicode típusként kezeli, azaz nvarchar() -ként. Akkor érdemes élni vele, ha a resultset közvetlenül felhasználásra kerül az adatbázisban, és fontos, hogy ne egyszerű szöveg 70

9 legyen a data type-ja. A ROOT paraméter egy gyökérelemet rendel a dokumentumhoz (nélküle az XML outputnak nem lenne gyökere!), manuálisan kéne hozzáadni, hogy well-formed legyen, illetve gyökér nélkül az XPath sem alkalmazható rajta. Lássunk egy példát! A következő lekérdezésre nézzük meg a kimentet! SELECT ProductID AS '@ProductID', ProductName AS 'ProductName' FROM Products FOR XML PATH ('Product'), ROOT ('Products') A Products táblából vagyunk kíváncsiak a ProductID és ProductName mezőkre. Az előbbit attribútumként szeretnénk visszakapni az XML-ünkben, hivatkozunk rá (XPath szabvány, lásd a segédlet későbbi fejezetében). Az FOR XML PATH ('Product') paramétere azért kell, hogy a rekordjaink elemeit Product -nak nevezze el (nélküle a standard row lenne az elemek neve), illetve a ROOT ('Products') opció hatására a gyökérelem Products lesz (üres paraméter esetén root lenne a gyökér tag). A kimeneti dokumentum ehhez hasonló lenne: <Products> <Product ProductID="1"> <ProductName>Widget</ProductName> </Product> <Product ProductID="2"> <ProductName>Sprocket</ProductName> </Product> </Products> A FOR XML PATH típusú query-khez az XPath kifejezések ismerete szükséges! 3.2 XML eljárások Az MS SQL Server 2008-ban XML method-ok állnak rendelkezésünkre, hogy lekérdezzük vagy módosítsuk az XML típusú adatainkat, így kihasználva az adattípus előnyeit. Az alábbi eljárások léteznek: Query: A query XML method önálló elemeket képes lekérdezni az XML dokumentumokból. Value: The value XML method-dal az XML dokumentumból tetszőleges adatot nyerhetünk ki előre meghatározott típusban. Exist: The exist XML method annak eldöntésére alkalmas, hogy egy konkrét érték létezik-e a dokumentumunkban, XML adatainkban. Nodes: The nodes XML method segítségével összetett adatokat kérdezhetünk le az XML dokumentumunkból. Általában XML adat táblázatos megjelenítésére használják. Modify: The modify XML method-dal változtatni tudunk az XML adatainkon. 71

10 Szintaktikák: Query: query( XQuery kifejezés ). A várt kifejezés lehet egyszerű XPath címzés, de ezen a metóduson keresztül tudjuk alkalmazni az XQuery lekérdezéseinket (Az XQuery-ről a későbbiekben lesz szó). Value: value( XQuery kifejezés, SQLType). Az SQL Type paraméterre egy az SQL Server által ismert adattípust vár az eljárás, amelyben az eredmény értéket visszaadja, oszlop formában. Exist: exist( XQuery kifejezés ). Az eljárás 1-el, 0-val vagy NULL-al térhet vissza, annak függvényében, hogy a kifejezés által specifikált adatelem megtalálható-e a forrásban. 1, ha igen, 0, ha nem, NULL, ha az XML oszlop vagy dokumentum értéke NULL. Nodes: nodes( XQuery kifejezés ) as Table( Column ). A kifejezés által visszaadott értékeket teszi bele Table nevű táblánk Column nevű oszlopába. A táblázatos formához definiálnunk kell az egyes oszlopokat, amelyet a query és value metódusokkal tehetünk meg. Modify: modify(xml_dml). Segítségével az XML típusú adatunkon tudunk XML_DML műveletet végezni (insert, delete és replace; update nincs!) Próbáljuk ki egy példán az eljárásainkat! Az adatforrásunk legyen egy XML dokumentum, amelyre myxml néven hivatkozunk (helyette XML típusú oszlopunk is lehetne, nincs különbség): <Root> <Contact ContactID= 101 ContactName= Homer Simpson > <ContactInformation> < >[email protected]</ > <Cell> </Cell> </ContactInformation> </Contact> <Contact ContactID= 102 ContactName= Marge Simpson > <ContactInformation> < >[email protected]</ > <Cell> </Cell> </ContactInformation> </Contact> </Root> 72

11 Az egyes példametódusok és azok eredménye: /Root/Contact/ContactInformation/ ) Az eredmény: < >[email protected]</ > < >[email protected]</ > (/Root/Contact/@ContactID)[2], int ) Az eredmény egy névtelen oszlop lesz, egy 102 int mezővel. /ContactName = ( Homer Simpson ) ) Az eljárás 1-et ad vissza. SELECT varchar(35) ) AS Name, MyTable.cols.query( ContactInformation/ ) AS [ ], MyTable.cols.query( ContactInformation/Cell ) AS [Cell Phone] /Root/Contact ) MyTable (cols) Az eredmény az alábbi képen látható. Egy táblázatot kapunk, amelynek a Name oszlopa text típusú (varchar(35)), az és a Cell Phone oszlopai pedig XML adattípusúak. replace value of(/root/contact[1]/contactinformation/ /text())[1] with [email protected] ) Az eredményként megváltozik az szövege (hiába csak egy node van, specifikálni kell, hogy az elsőt vesszük, ezért kell a [1] a végére.) 73

12 4 Az XSL transzformáció Az XSL Transzformáció (XSLT) bemenő XML dokumentumok fa struktúrájú reprezentációját transzformálja át kimeneti fa struktúrába. Az XSL transzformáció szabályait úgynevezett XSL stíluslapok (XSL stylesheets) határozzák meg 1. XSLT processzornak nevezzük azt a szoftvert, amely végrehajtja az XSL transzformációt. Az előző könyvtári példában bemutatott kanonikus kimenet fa-struktúrájú reprezentációját a mellékelt ábra szemlélteti. A fa-struktúrájú reprezentáción az XML dokumentum csomópontokból álló faként jelenik meg. A következő csomópont típusokat különböztetjük meg: gyökér csomópont (root node), elem csomópont (element node), szöveges csomópont (text node), attribútum csomópont (attribute node) 2. A dokumentum minden esetben gyökér csomóponttal kezdődik, amely magát a dokumentumot reprezentálja. A gyökér csomópontnak egyetlen elem csomópont gyermeke lehet, a példán ez a <page> csomópont. Elem csomópontoknak további attribútum, szöveges és elem csomópont gyermekei is lehetnek, tetszőleges kombinációban. Megjegyzendő, hogy az ábra nem teljesen egyezik a korábbi szöveges reprezentációval, amelyet az átláthatóság kedvéért sortörésekkel és tabulátorokkal tagoltunk. A tagolás teljesen szabályos az XML szintaktikában, azonban a tagoló karakterek a fa struktúrában is megjelennek szöveges csomópontokként. / <page> <ROWSET> > <ROW> <ROW> <ISBN> num= <AUTHOR> <TITLE> <ISBN> Douglas Adams The Hitch Hiker s Guide to the Galaxy num= <AUTHOR> <TITLE> B.W. Kernighan R. Pike The UNIX Programming Environment Az XSL stíluslap maga is XML dokumentum, amely az XSLT névtérbe tartozó utasításokat használ a transzformáció leírásához. A stíluslapok felépítését az alábbi példa demonstrálja, amelyben a könyvek kanonikus formátumban átadott listáját transzformáljuk HTML táblázatos alakra: 1 Vigyázat: az XSL stíluslapok nem azonosak a HTML szabványból ismeretes CSS (Cascading Style Sheets) stíluslapokkal! 2 A teljesség kedvéért megemlítjük, hogy létezik még névtér csomópont (namespace node), feldolgozási utasítás csomópont (processing instruction node) és megjegyzés csomópont is (comment node). 74

13 <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="/"> <html> <body> <table> <xsl:for-each select="page/rowset/row"> <tr> <td><xsl:value-of select="isbn"/></td> <td><xsl:value-of select="author"/></td> <td><xsl:value-of select="title"/></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet> Az XSL stíluslap gyökéreleme az <xsl:stylesheet>. Egy stíluslap egy vagy több sablont (template) tartalmazhat. Sablon definiálható a forrás XML dokumentum bármely csomópontjához, ekkor az adott csomópontra illeszkedő sablon határozza meg az adott részfa transzformációját. A sablonokról később még bővebben lesz szó, itt az egyszerűség kedvéért csak egyetlen sablont definiáltunk az <xsl:template> paranccsal, amely közvetlenül a gyökérelemre illeszkedik. A példa sablon vegyesen tartalmaz HTML címkéket (<body>, <table>, <tr>, <td>), valamint XSLT parancsokat, mint <xsl:for-each> és <xsl:value-of>. A XSL feldolgozás során az XSLT névtéren kívüli címkék (itt a HTML címkék) változatlan formában kerülnek a kimenetre, ugyanakkor az XSLT parancsok értelmeződnek és végrehajtódnak. A mintában szereplő xsl:for-each XSLT utasítás iterációra szolgál: a végigmegy a select attribútumában kiválasztott csomópontokon, és a beágyazott utasításokat minden egyes részfára végrehajtja. A példában a page/rowset/row kifejezés az XML forrásban szereplő ROW elemeket választja ki. Az xsl:value-of XSLT utasítás egy szöveges csomópontot hoz létre a kimeneten. A szöveges csomópont tartalmát a select attribútumában megadott kifejezés határozza meg. A példában szereplő ISBN, AUTHOR, TITLE kifejezések a feldolgozás során éppen aktuális részfák értékét, azaz a keresett mezők értékét adják vissza. A transzformáció befejeztével az eredményfát az XSLT processzor szöveges formában írja a kimenetre. Ezt a folyamatot nevezzük az eredményfa szérializációjának (serialization). Az XSL stíluslapban szereplő xsl:output parancs a szérializációs folyamatot szabályozza. Az XSLT 1.0 háromféle kiírási metódust támogat: <xsl:output method="xml"/>: a csomópontok jól-formázott XML formátumban kerülnek kiírásra <xsl:output method="html"/>: a csomópontok HTML 4.0-kompatibilis formátumban kerülnek kiírásra, így például az önlezáró <br/> címke helyett <br> jelenik meg a kimeneten. <xsl:output method="text"/>: csak a csomópontok értéke kerül kiírásra, jelölés nélkül 75

14 A példánkban a html metódust válaszottuk, így a transzformáció kimenete az alábbi lesz: <html> <body> <table> <tr> <td> </td> <td>douglas Adams</td> <td>the Hitch Hiker's Guide to the Galaxy</td> </tr> <tr> <td> </td> <td>b.w. Kernighan-R. Pike</td> <td>the UNIX Programming Environment</td> </tr> </table> </body> </html> Ha stíluslap csak egyetlen sablont tartalmaz, amely közvetlenül a gyökérelemre illeszkedik, akkor lehetőség van egy egyszerűsített írásmód használatára is. Ekkor az <xsl:stylesheet> és az <xsl:template> elemek elmaradnak, és a sablonon belüli gyökérelem válik a stíluslap gyökerévé, az XSL névtér deklaráció pedig az új gyökérbe kerül. Így a példa stíluslap egyszerűsített írásmóddal: <?xml version="1.0" encoding="iso "?> <html xsl:version="1.0" xmlns:xsl=" <body> </body> </html> Az alapértelmezett kimeneti metódus az általános írásmódnál xml, míg az egyszerűsített írásmódnál, ha a gyökérelem <html>, a html. 5 XPath kifejezések Az XPath XML dokumentumok fastruktúrájú reprezentációjában csomópontok megcímzésére szolgáló szabványos nyelv. Egy XPath kifejezés eredménye lehet csomópontok (részfák) halmaza, numerikus, szöveges vagy logikai érték. Az előző XSL példában több ponton is használtunk már XPath kifejezéseket: az xsl:template parancsban a / kifejezés a fa gyökerét, az xsl:for-each parancsban a page/rowset/row kifejezés a sorokat reprezentáló részfákat, az xsl:value-of parancsban pedig az ISBN stb. kifejezések az aktuális részfa megfelelő mezőit reprezentáló csomópontokat választották ki. Az XPath elérési út (location path) hasonló egy DOS-os vagy UNIX-os könyvtárváltó parancs útvonalkifejezéséhez: ez is egy útvonalat ad meg, csak ezúttal az XML fastruktúrában. A fájlrendszerekhez hasonlóan itt is kétféle elérési út létezik: abszolút, ahol az elérési út / karakterrel kezdődik, ekkor a kiindulási pont a dokumentum gyökere, valamit relatív, ahol a 76

15 kiindulási pont az aktuális csomópont. Az elérési út lépésekből (location steps) áll, amelyeket / határoló választ el egymástól. Egy lépés általános formája 3 : csomóponttípus[feltételes kifejezés] A feltételes kifejezés rész opcionális, elmaradhat. A lehetséges csomóponttípusok a következők: Típus Kiválasztott csomópont(ok) Adott nevű gyermekcsomópontok Adott nevű attribútum-csomópontot. Aktuális csomópont.. Szülő csomópont * Elem típusú Attribútum típusú gyermekcsomópontok // Csomópont és annak összes leszármazója node() Elem típusú gyermekcsomópontok text() Szöveges típusú gyermekcsomópontok comment() Magyarázat típusú gyermekcsomópontok A lépésben szereplő feltételes kifejezés függvényeket és értékvizsgálatot tartalmazó összetett XPath logikai kifejezés, amelyekkel a lépésben kiválasztott csomópontok köre tovább szűkíthető. Néhány tipikus kifejezés: Kifejezés Igaz, ha elem létezik az elem elnevezésű csomópont elem=érték az elem nevű csomópont értéke az attr nevű attribútum értéke érték position()=n ez a csomópont a halmaz n. eleme count(halmaz)=n az XPath elérési úttal definiált csomóponthalmaz elemeinek száma n sum(halmaz)=n az XPath elérési úttal meghatározott csomóponthalmaz értékéinek összege n A feltételes kifejezések között az and és or logikai műveletek használhatók. A [position()=n] alak helyett használható az egyszerűsített [n] forma is. Az XPath kifejezésekben használható fontosabb függvényeket a Függelék tartalmazza. Két XPath kifejezés által kijelölt csomóponthalmazok uniója a operátorral képezhető. Néhány XPath példa a könnyebb érthetőség kedvéért, amelyeket a korábbi kanonikus XML kimenetre értelmezünk: / : a dokumentum gyökere (nem azonos a gyökér címkével!) /page/rowset/row : az összes lekérdezés összes sorát reprezentáló részfák /page/rowset[1]/row[1]/* : az első lekérdezés első sorának mezői /page/rowset/row[author] : azon sorok, melyekben az AUTHOR mező nem NULL értékű (azaz melyekben létezik az AUTHOR-t reprezentáló csomópont) 3 Itt csak a rövidített (abbreviated) elérési út formátumot ismertetjük. A rövidítetlen (unabbreviated) formátum használatakor a lépés kiegészül az irány jelölővel. 77

16 > 1 < 4] : a lekérdezések második és harmadik sorait reprezentáló részfák (felhasználva a num attribútumot a kanonikus kimenetben) /page/rowset/row[last()] : a lekérdezések utolsó sorát reprezentáló részfa //ROW[contains(TITLE,'Galaxy')] : az összes olyan sor, amelynek a TITLE mezője tartalmazza az Galaxy stringet. count(//author): az AUTHOR nevű csomópontok száma name(/page/rowset[1]/row[1]/*): az első lekérdezés első oszlopának neve /page/rowset[1]/row /page/rowset[2]/row: az első és a második lekérdezés sorait reprezentáló csomópontok uniója Emlékeztető: ha egy XPath kifejezést XSL stíluslapon használunk, akkor az XML szintaktikai előírásai miatt a foglalt karakterek (<, &) helyett a megfelelő helyettesítő szekvenciákat kell alkalmazni. 6 XSL stíluslapok hozzárendelése XML dokumentumokhoz Egy XML dokumentumhoz tartozó XSL stíluslapot az xml-stylesheet feldolgozási utasítás segítségével lehet megadni a forrásdokumentumban. Az utasítás type attribútumának értéke kötelezően text/xsl, a stíluslap elérhetőségét pedig a href attribútumban kell megadni: <?xml-stylesheet type="text/xsl" href="stíluslap.xsl"?> A választott XML formátumú megjelenítésben minden könyvhöz egy <book> címke tartozik, melynek attribútumaként jelenik meg a könyv ISBN azonosítója, és értékeként a könyv legkedvezőbb ára: <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <pricelist> <xsl:for-each select="rowset/row"> <book isbn="{isbn}"><xsl:value-of select="price"/></book> </xsl:for-each> </pricelist> </xsl:template> </xsl:stylesheet> A példából az is látható, hogy egy attribútum értékét a <címke attribútum="{xpath kifejezés}"> formában lehet a stíluslapon beállítani. A szöveges megjelenítésben minden könyvhöz tartozik egy sor, amelyben az ISBN-t és az árat tüntetjük fel: <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="text"/> <xsl:template match="/"> <xsl:for-each select="rowset/row"> <xsl:value-of select="isbn"/> <xsl:value-of select="price"/> <xsl:text> </xsl:text> 78

17 </xsl:for-each> </xsl:template> </xsl:stylesheet> A 7. sorban szereplő szekvencia az újsor karakternek felel meg. Mivel a stíluslapban szereplő szöveges csomópontok elejéről és végéről az XSL transzformáció levágja a whitespace karaktereket, ezért használjuk az xsl:text utasítást. Az xsl:text utasítással jelölt szöveges érték változtatás nélkül kerül a kimenetre. 7 Elágazások és változók XSL stíluslapokon 7.1 Feltételes végrehajtás <xsl:if test="xpath kif."> XSLT részlet </xsl:if> Ha igaz a test attribútumban megadott XPath kifejezés, akkor végrehajtja a beágyazott XSLT részletet. Amennyiben az XPath kifejezés nem logikai értéket, hanem XML részfahalmazt ad eredményül, akkor az értéke pontosan akkor igaz, ha a visszaadott részfahalmaz nem üres. Így az <xsl:if> (és az alább ismertetett <xsl:choose>) utasítás alkalmas annak eldöntésére is, hogy egy adott csomópont létezik-e az XML dokumentumon belül. 7.2 Feltételes elágazás <xsl:choose> <xsl:when test="xpath kif."> XSLT részlet </xsl:when> <xsl:when test="xpath kif."> XSLT részlet </xsl:when>... <xsl:otherwise> XSLT részlet </xsl:otherwise> </xsl:choose> Az xsl:choose pontosan egy XSLT részletet hajt végre: azt, ahol legelőször igaz az XPath kifejezés. Ha egyik sem igaz, az xsl:otherwise ág kerül végrehajtásra. 7.3 Változók Az XSL változó elnevezés csalóka, mivel az XSL változók konstansok, csak egyszer adhatunk nekik értéket. A változók érvényességi köre az az XML címke, ill. annak összes leszármazottja, ahol a változót definiáltuk. Változóhoz rendelhető skalár érték (szöveg, szám, logikai), vagy XML részfa, ahogy az alábbi két definíció mutatja: <xsl:variable name="változó_név" select="xpath kif."/> <xsl:variable name="változó_név">xml részfa</xsl:variable> 79

18 A definiált változók felhasználhatóak később XPath kifejezésekben, ahol a $változó_név formában lehet rájuk hivatkozni 4. Például a <xsl:variable name="n" select="2"/> <xsl:value-of select="item[$n]"/> parancsok a 2. item részfa értékét illesztik a kimenetbe. 8 XSLT Sablonok 8.1 Sablonok rekurzív feldolgozása Mint korábban említettük, egy XSLT sablon egy csomópont transzformációjának szabályait tartalmazza. A sablonokhoz tartozik egy XPath kifejezéssel megadott minta, amely meghatározza, mely csomópontokra érvényes az adott sablon. A mintát a match attribútumban kell megadni. Az előző példákban csak egyetlen sablont használtunk, amely közvetlenül a gyökér elemre illeszkedett, és amely a teljes fa transzformációs szabályát tartalmazta. Több sablon használatával a transzformáció rekurzív módon is végrehajtható. Az általános XSL transzformáció menete a következő. Az XSL transzformáció elején a gyökér csomópont az egyetlen kiválasztott csomópont. Az XSLT processzor kikeresi a kiválasztott csomópontra illeszkedő sablont, és végrehajtja a sablonban definiált szabályokat. Ha a sablon olyan XSLT utasítást tartalmaz, amely további csomópontokat jelöl ki feldolgozásra (tipikusan a gyermek csomópontokat), akkor a feldolgozás az adott csomópontokat egyenként kiválasztva folytatódik. Az XSLT processzor tartalmaz egy beépített sablont, amely biztosítja a rekurzív feldolgozást arra az esetre, ha egy elem csomópontra nincs illeszkedő explicit sablon a stíluslapon: <xsl:template match="* /"> <xsl:apply-templates/> </xsl:template> Ez a sablon nem ad semmilyen kimenetet, csupán az xsl:apply-templates paranccsal arra utasítja a processzort, hogy a gyermekcsomópontokon folytassa a feldolgozást. Létezik egy másik beépített sablon a szöveges és attribútum csomópontokra is. Ezen sablon egyszerűen kimásolja a csomópont értékét a kimenetre: <xsl:template <xsl:value-of select="."/> </xsl:template> Ha egy csomópontra több sablon is illeszkedik, akkor az XSLT processzor mindig a legspecifikusabb sablont fogja kiválasztani. Ökölszabályként, a * mintánál specifikusabb a VALAMI típusú minta, és ennél is specifikusabb a VALAMI/VALAMIMÁS, illetőleg a VALAMI[feltétel] típusú minta. 4 XSLT 1.0-ban az XML részfaként (result tree fragment) definiált változók szövegesen tárolódnak és csak sztringként kezelhetőek, így az XPath csomópont címzés kifejezések nem alkalmazhatóak rájuk. A kimenetre azonban részfaként is beilleszthetőek az xsl:copy-of függvény segítségével. 80

19 Az alábbi példa azt szemlélteti, hogyan tudjuk a könyvek listáját megjeleníteni HTML táblázatban rekurzív sablonokkal. <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:output method="html"/> <xsl:template match="/"> <html> <body><xsl:apply-templates/></body> </html> </xsl:template> <xsl:template match="rowset"> <table><xsl:apply-templates/></table> </xsl:template> <xsl:template match="row"> <tr><xsl:apply-templates/></tr> </xsl:template> <xsl:template match="row/*"> <td><xsl:apply-templates/></td> </xsl:template> </xsl:stylesheet> 8.2 Többször felhasználható nevesített sablonok Az XSLT lehetőséget biztosít arra, hogy a több sablonban is használt XSLT részleteket külön blokkokba, úgynevezett nevesített sablonokba helyezzük. A normál sablonokkal szemben a nevesített sablonokat nem mintaillesztéssel választja ki a processzor, hanem más sablonokból az az explicit <xsl:call-template name="sablonnév"> utasítással lehet meghívni őket. A nevesített sablonok nevét az xsl:template name attribútumában kell megadni. Az alábbi példa egyúttal azt is szemlélteti, hogyan adható át paraméter a meghívott sablonnak: <?xml version="1.0" encoding="iso "?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template name="nevesitett_sablon"> <xsl:param name="par1" select="2"/> <!-- XSLT utasítások --> </xsl:template> <xsl:template match="row"> <xsl:call-template name="nevesitett_sablon"> <xsl:with-param name="par1" select="42"/> </xsl:call-template> </xsl:template> </xsl:stylesheet> 8.3 Stíluslapok tagolása A struktúráltság végett lehetőség van egy stíluslap több fájlra tagolására, illetőleg külső stíluslapokban tárolt sablonkönyvtárak felhasználására. Külső stíluslap beillesztésére az 81

20 xsl:include és az xsl:import utasítások használhatóak, mindkét utasítás az xsl:stylesheet közvetlen gyermekelemeként adandó meg. A beillesztett sablonok precedenciája xsl:include esetén azonos, xsl:import esetén alacsonyabb lesz, mint a hívó stíluslap sablonjaié. 9 XQuery Az XQuery 2007 óta W3C szabvány. Eszköz, amely segítségével XML adatokon tudunk lekérdezéseket futtatni, gyakran fogalmaznak úgy, hogy az XQuery az XML olyan viszonyban állnak, mint az SQL és az adatbázisok. A technológia XPath kifejezésekre épül, fejlesztése alatt szoros volt az együttműködés az XPath és az XSL csapatával, így az említett szabványok jól működnek együtt, ugyanazon adatmodellre támaszkodnak, közös függvényeket és operátorokat használnak. 9.1 Használat Az MS SQL 2008 XML eljárásainál említettük, hogy bennük XQuery kifejezéseket (egyszerű esetben ezek csak XPath elérési utak) használunk. Például a query() metódus esetében a szintaktika a következő volt: {xml_fájlreferencia tábla_oszlop}.query( XQuery kifejezés ). Az adatbázisunkból közvetlen lekérdezni így tudunk XQuery-vel. Érdemes megjegyezni, hogy XML dokumentum megnyitására van saját függvénye az XQuery-nek, a doc( fájlnév.xml ), amely pontosan úgy működik, mint a referencia. 9.2 Szintaktika A szintaxisra vonatkozó pár alapszabály: case-sensitive a hivatkozott elemeknek, attribútumoknak és változóknak valid-nak kell lenniük a string értéke megadható szinpla és dupla kvótákkal is XQuery változó $-ral definiálható (például $x) a kommentezni így lehet: (: XQuery Comment :) Relációk: Eredeti karakter =!= < <= > >= Helyettesítés equ ne lt le gt ge A helyettesítés nem teljesen egyenértékű, különbség lehet a reláció két változata között: $x/@q > 10 : true-val tér vissza, ha van legalább egy q attribútum, amire a feltétel teljesül. $x/@q gt 10 : true-val tér vissza, ha pontosan egy q attribútum van, amire a feltétel teljesül, egyébként hibát kapunk. Feltételes kifejezések: Az if-then-else elágaztatás XQuery-ben is lehetséges, példa: 82

21 for $x in /stuff return if then <child>{data($x/name)}</child> else <adult>{data($x/name)}</adult> Megjegyzés: else if nem létezik, helyette az if ágon belül lehet újabb részágakat bontani. 9.3 FLWOR A FLWOR a For, Let, Where, Order by, Return clause-ok kezdőbetűiből összeállított mozaikszó. Segítségükkel lehetőségünk van válogatni és szűrni az XML elemeiből. For: a for kifejezés - nem meglepő módon - egy ciklust állít elő. Egy futóváltozót kell létrehozni hozzá, illetve megadni, hogy az milyen tartományban lépkedjen. Az at kulcsszó használatával nyomon követhetjük a lépésszámot, illetve az in kulcsszónak több paramétert megadva beágyazott ciklus szerinti működést is elérhetünk. Ezekre lássunk példát: Kifejezés: for $x in (1 to 5) return <test>{$x}</test> for $x at $i in /bookstore/book/title return <book>{$i}. {data($x)}</book> for $x in (10,20), $y in (100,200) return <test>x={$x} and y={$y}</test> <test>1</test> <test>2</test> <test>3</test> <test>4</test> <test>5</test> Eredmény: <book>1. Everyday Italian</book> <book>2. Harry Potter</book> <book>3. XQuery Kick Start</book> <book>4. Golden Book</book> <test>x=10 and y=100</test> <test>x=10 and y=200</test> <test>x=20 and y=100</test> <test>x=20 and y=200</test> Let: a let clause többszörös hozzárendelést tesz lehetővé az iteráció elkerülésével. Kifejezés: let $x := (1 to 5) return <test>{$x}</test> Eredmény: <test> </test> Where: a where kifejezés az SQL where-jéhez hasonlóan egy feltételt szab, amivel szűkítheti az eredményhalmazt. Természetesen az XPath függvényei és a relációk használhatók általa. Kifejezés: for $x in /bookstore/book where contains(/bookstore/book/title, Gold ) return <book>{data($x/title)}</book> Eredmény: <book>golden Book</book> 83

22 Order by: az order by clause szintén az SQL-ben használatos azonos nevű kifejezéshez analóg módon működik. Kifejezés: for $x in bookstore/book order by $x/title return $x Eredmény: <book prize= 10 ><title> Learning XML </title></book> <book prize= 30 > <title> Everyday Italian </book> <book prize= 30 > <title> Harry Potter </title></book> <book prize= 100 > <title> Golden Book</title></book> Return: a return kifejezés határozza meg, hogy mi kerüljön vissza eredményként, mint az SQL-ben a select. 9.4 XQuery függvények Az XQuery előre definiált függvényei az XPath függvénytárából származnak. Mindazonáltal van lehetőség saját függvények definiálására is, az alábbi módon: declare function prefix:function_name($parameter AS datatype) AS returndatatype { függvénytörzs } 10 Felkészülés a mérésre A labor teljesítéséhez XQuery-, XSLT- és XPath-specifikus ismeretekre lesz szükség. A labor során feltételezzük az SQL és alapszintű HTML nyelvi, valamint az alapszintű UNIX felhasználói ismeretek meglétét is. 1. Ha szükséges, ismételje át SQL, HTML és UNIX előtanulmányait. Alaposan tanulmányozza át a laborsegédletet! 2. Célszerű a oldalon az érintett szabványok tutorial-jainak áttekintése. 11 Felhasznált irodalom T. Bray et al. (editors): Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation, 2004 J. Clark (editor): XSL Transformations (XSLT) Version 1.0, W3C Recommendation, 1999 J. Clark et al. (editors): XML Path Language (XPath) Version 1.0, W3C Recommendation, 1999 S. Boag et al. (editors): XQuery 1.0: An XML Query Language, W3C Recommendation, 2007 Soczó Zsolt: Sémák, IE, XSL, NetAcademia, 2003 Robert D. Schneider, Darril Gibson: Microsoft SQL Server 2008 All in One Desk Reference, 2008 Robert Vieira, Beginning SQL Server 2005 Programming, 2006 What s New for XML in SQL Server 2008 (White Paper),

23 12 Függelék: XPath Függvény Referencia Csomópont halmaz függvények last() position() count(node-set) namespace-uri(node-set) name(node-set) Az aktuális csomóponthalmaz elemeinek számát adja vissza Az aktuális elem indexét adja vissza. A paraméter csomóponthalmaz elemeinek számát adja vissza. Az első csomópont címkéjének névterét adja vissza Az első csomópont címkéjének nevét adja vissza. Sztringkezelő függvények string(object) concat(string,string,...) starts-with(string,string) contains(string,string) substringbefore(string,string) string-length(string?) normalize-space(string?) translate(string,string,string) Az argumentumként megadott értéket szöveges értékké konvertálja. A paraméterként adott sztringeket összefűzi Igaz, ha a paraméterként megadott első sztring a másodikkal kezdődik. Igaz, ha a paraméterként megadott első sztring tartalmazza a másodikat. Visszaadja az első sztring mindazon részét, amely a második sztring első sztringben való első előfordulása előtt van. A megadott sztring hosszát adja vissza. Ha az argumentum elmarad, az aktuális elem értékének hosszát adja vissza. Levágja a megadott sztring elején és végén levő whitespace karaktereket, a sztring közepén levőket pedig egyetlen szóközre cseréli. Ha az argumentum elmarad, az aktuális elem értékére végzi a műveletet. Az első sztringben előforduló, második sztringben megadott karaktereket a harmadik sztringben megadott karakterekre cseréli. Például translate( PHP, PH, DT ) kimenete DTD. Logikai függvények boolean(object) not(boolean) true() false() Az argumentumként megadott értéket logikai értékké konvertálja. Logikai érték ellentettjét adja vissza. Logikai igaz Logikai hamis Numerikus függvények number(object) sum(node-set) floor(number) ceiling(number) round(number) Az argumentumként megadott értéket numerikus értékké konvertálja. A csomóponthalmaz értkeinek összegét adja Az argumentumot lefelé kerekíti Az argumentumot felfelé kerekíti Az argumentumot kerekíti 13 Függelék: XSLT Referencia xsl:apply-templates 85

24 Végrehajtja az XSL transzformációt a select attribútumában megadott csomópontokra, ennek hiányában a gyermekcsomópontokra. select mode xsl:attribute Csomópontokat meghatározó XPath kifejezés Ha definiált, akkor ezen módra definiált sablonokkal hajtja végre a transzformációt. Egy attribútum csomópontot hoz létre az eredményfában. Az attribútum értékét a beágyazott szöveg definiálja. name xsl:call-template Az attribútum neve Meghív egy nevesített sablont. Paramétereket az opcionális xsl:with-param gyermekelemekkel lehet átadni. name xsl:choose A nevesített sablon neve. Elágazást definiál, az ágakat az xsl:when és xsl:otherwise gyermekelemek tartalmazzák. xsl:copy-of A kiválasztott csomópontokat átmásolja az eredményfába. Működése hasonló a value-of parancséhoz, de megtartja az eredeti fastruktúrát, nem konvertál szöveges csomóponttá. select xsl:for-each A csomóponthalmazt meghatározó XPath kifejezés Iterál a megadott csomóponthalmazon. Az iteráció sorrendjét az opcionális xsl:sort gyermekelem definiálja. select xsl:if A csomóponthalmazt meghatározó XPath kifejezés Ha a megadott feltétel igaz, végrehajtja a beágyazott XSLT stíluslap részletet. test xsl:import Feltételt definiáló XPath kifejezés Egy külső stíluslapot illeszt az aktuális stíluslapba, így a külső stíluslap sablonjai is elérhetővé válnak. Eltérően az xsl:include-tól, az importált stíluslap sablonjainak alacsonyabb a prioritása, mint az importáló stíluslap sablonjainak. Az xsl:import csak az xsl:stylesheet közvetlen gyermekeként adható meg, és minden más gyermeket megelőzően kell megadni. href xsl:include A külső stíluslap elérhetősége. Egy külső stíluslapot illeszt az aktuális stíluslapba, így a külső stíluslap sablonjai is elérhetővé válnak. Az xsl:include csak az xsl:stylesheet közvetlen gyermekeként adható meg. href xsl:otherwise A külső stíluslap elérhetősége. Az xsl:choose parancs egy ágát definiálja. Ha egyetlen xsl:when feltétel sem igaz, akkor az xsl:otherwise elembe ágyazott stíluslap részlet kerül végrehajtásra. xsl:output 86

25 Eredményfa szérializációját vezérlő utasítás. method encoding omit-xml-declaration indent media-type xsl:param Szérializációs metódus, lehetséges értékek: xml, html, text A szérializációhoz használandó preferált kódtáblát deklarálja. Beállítja, hogy az XML deklarációs utasítás kerüljön-e a kimenetre. Lehetséges értékek: yes, no Beállítja, hogy az XSLT processzor whitespace-ek hozzáadásával formázza-e a kimenetet. Lehetséges értékek: yes, no A karakterfolyam média típusát (mime type) definiálja. Egy XSL paramétert definiál. Az xsl:variable-től eltérően, a változónak csak az alapértelmezett értékét definiálja, amely a sablonnak átadott paraméterekkel felülírható. name Paraméter neve select A változó értékét meghatározó XPath kifejezés. xsl:sort Az xsl:apply-templates és xsl:for-each utasítások gyermekelemeként adható meg, és ezen utasításokban a csomópontok feldolgozási sorrendjét határozza meg. select data-type order case-order xsl:stylesheet Stíluslap gyökéreleme. version Értéke kötelezően 1.0 xsl:template Sablont definiál. match name priority mode xsl:text A rendezési kulcsot meghatározó XPath kifejezés. A kulcs adattípusát definiálja. Ha értéke text, a kulcsot lexikografikusan rendezi. Ha értéke number, akkor a kulcsot számmá konvertálja és numerikusan rendezi. Rendezés iránya, lehetséges értékek: ascending, descending Szöveges rendezésnél határozza meg, hogy a nagy, vagy a kis betűk kerüljenek előre. Lehetséges értékei: upper-first, lower-first. XPath kifejezés, amely azonosítja azon csomópontokat, amelyekre a sablon érvényes. Nevesített sablonnál elmaradhat. Nevesített sablon neve. Nevesítetlen sablonnál elmaradhat. Sablon prioritása. Ha több, ugyanannyira specifikus sablon illeszkedik egy csomópontra, a prioritás dönt, melyik kerül végrehajtásra. Opcionálisan megadható mód. A megjelölt szöveget változtatás nélkül kimásolja a kimenetre. xsl:value-of 87

26 Szöveges csomópontot állít elő az eredményfában. select Az értéket meghatározó XPath kifejezés. Ha a kifejezés csomóponthalmazzal tér vissza, a hozzájuk tartozó értékek kerülnek a kimenetre. xsl:variable Egy XSL változót definiál. name select Változó neve A változó értékét meghatározó XPath kifejezés. xsl:when Az xsl:choose parancs egy ágát definiálja. Ha a megadott kifejezés igaz, akkor végrehajtja a beágyazott stíluslap részletet. test A feltételt definiáló XPath kifejezés. xsl:with-param Ezen utasítás az xsl:apply-templates és az xsl:call-template parancsok gyermekelemeként adható meg, és a hívott sablonnak átadott paraméter(eke)t definiálja. name select Paraméter neve Paraméter értékét meghatározó XPath kifejezés 14 Függelék: XSD Adattípus Megszorítás Referencia Constraint Description enumeration Defines a list of acceptable values fractiondigits Specifies the maximum number of decimal places allowed. Must be equal to or greater than zero length Specifies the exact number of characters or list items allowed. Must be equal to or greater than zero maxexclusive Specifies the upper bounds for numeric values (the value must be less than this value) maxinclusive Specifies the upper bounds for numeric values (the value must be less than or equal to this value) maxlength Specifies the maximum number of characters or list items allowed. Must be equal to or greater than zero minexclusive Specifies the lower bounds for numeric values (the value must be greater than this value) mininclusive Specifies the lower bounds for numeric values (the value must be greater than or equal to this value) minlength Specifies the minimum number of characters or list items allowed. Must be equal to or greater than zero pattern Defines the exact sequence of characters that are acceptable totaldigits Specifies the exact number of digits allowed. Must be greater than zero whitespace Specifies how white space (line feeds, tabs, spaces, and carriage returns) is handled 88

27 15 Függelék: Modify() Method Referencia Modify() Method insert (XML DML) Syntax insert Expression1( {as first as last} into after before Expression2) Arguments Expression1: Identifies one or more nodes to insert. This can be a constant XML instance; a reference to a typed XML data type instance of the same XML Schema collection on which the modify method is being applied; an untyped XML data type instance using a stand-alone sql:column()/sql:variable() function; or an XQuery expression. The expression can result in a node, and also a text node, or in an ordered sequence of nodes. It cannot resolve to the root (/) node. If the expression results in a value or a sequence of values, the values are inserted as a single text node with a space separating each value in the sequence. If you specify multiple nodes as constant, the nodes are included in parentheses and are separated by commas. You cannot insert heterogeneous sequences such as a sequence of elements, attributes, or values. If Expression1 resolves to an empty sequence, no insertion occurs and no errors are returned. into:nodes identified by Expression1 are inserted as direct descendents (child nodes) of the node identified by Expression2. If the node in Expression2 already has one or more child nodes, you must use either as first or as last to specify where you want the new node added. For example, at the start or at the end of the child list, respectively. The as first and as last keywords are ignored when attributes are inserted. after:nodes identified by Expression1 are inserted as siblings directly after the node identified by Expression2. The after keyword cannot be used to insert attributes. For example, it cannot be used to insert an attribute constructor or to return an attribute from an XQuery. before:nodes identified by Expression1 are inserted as siblings directly before the node identified by Expression2. The before keyword cannot be used when attributes are being inserted. For example, it cannot be used to insert an attribute constructor or to return an attribute from an XQuery. Expression2: Identifies a node. The nodes identified in Expression1 are inserted relative to the node identified by Expression2. This can be an XQuery expression that returns a reference to a node that exists in the currently referenced document. If more than one node is returned, the insert fails. If Expression2 returns an empty sequence, no insertion occurs and no errors are returned. If Expression2 is statically not a singleton, a static error is returned. Expression2 cannot be a processing instruction, comment, or attribute. Note that Expression2 must be a reference to an existing node in the document and not a constructed node. delete (XML DML) delete Expression Expression: Is an XQuery expression identifying the nodes to be deleted. All the nodes selected by the expression, and also all the nodes or values that are contained within the selected nodes, are deleted. As described in insert (XML DML), this must be a reference to an existing node in the document. It cannot be a constructed node. The expression cannot be the root (/) node. If the expression returns an empty sequence, no deletion occurs and no errors are returned. 89

28 replace value replace value of of(xml DML) Expression1 with Expression2 Expression1: Identifies a node whose value is to be updated. It must identify only a single node. That is, Expression1 must be a statical singleton. If the XML is typed, the type of the node must be a simple type. If multiple nodes are selected, an error is raised. If Expression1 returns an empty sequence, no value replacement occurs and no errors are returned. Expression1 must return a single element that has simply typed content (list or atomic types), a text node, or an attribute node. Expression1 cannot be a union type, a complex type, a processing instruction, a document node, or a comment node. If it is, an error is returned. Expression2: Identifies the new value of the node. This can be an expression that returns a simply typed node, because data() will be used implicitly. If the value is a list of values, the update statement replaces the old value with the list. In modifying a typed XML instance, Expression2 must be the same type or a subtype of Expression1. Otherwise, an error is returned. In modifying an untyped XML instance, Expression2 must be an expression that can be atomized. Otherwise, an error is returned. 90

V. gyakorlat: XML alapú adatkezelés

V. gyakorlat: XML alapú adatkezelés V. gyakorlat: XML alapú adatkezelés Írta: Mátéfi Gergely Nagypál Gábor, Bihari István, Hajnács Zoltán korábbi segédletének felhasználásával 1. BEVEZETÉS... 0 2. XML DOKUMENTUMOK FELÉPÍTÉSE... 1 2.1. Elemek

Részletesebben

XSLT ( XSL Transformations)

XSLT ( XSL Transformations) XSLT ( XSL Transformations) Tartalomjegyzék: 1. Az XSLT helye... 3 2. Az XSLT feldolgozás... 3 3. Az XSLT stíluslapok felépítése... 4 3.1. Sablonok... 4 3.2. Minták és kifejezések... 4 3.3. Az XSLT stíluslap

Részletesebben

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás

XML (DTD) (XSD) DOM SAX XSL. XML feldolgozás XML feldolgozás Áttekintés XML -bevezetés (XML érvényességének vizsgálata (DTD, XSD)) XML feldolgozók (DOM, SAX) XML transformációk (XSLT) Áttekintés XML -bevezetés (XML érvényességének vizsgálata (DTD,

Részletesebben

SQLServer. DB Recovery modes

SQLServer. DB Recovery modes SQLServer 13. téma Szöveges állományok kezelése XML DB Recovery modes A DML műveletek hatékonyságának fontos eleme a naplózás módozata: - FULL Recovery mode: minden elemi művelet naplózódik költséges,

Részletesebben

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai

SQL ALAPOK. Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai SQL ALAPOK Bevezetés A MYSQL szintaxisa Táblák, adatok kezelésének alapjai BEVEZETÉS SQL: Structured Query Language Strukturált Lekérdező Nyelv Szabvány határozza meg, azonban számos nyelvjárása létezik

Részletesebben

Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint [email protected]. Bevezetés a nyelvtechnológiába 2. gyakorlat 2007. szeptember 20.

Dokumentumformátumok Jelölő nyelvek XML XML. Sass Bálint sass@digitus.itk.ppke.hu. Bevezetés a nyelvtechnológiába 2. gyakorlat 2007. szeptember 20. XML Sass Bálint [email protected] Bevezetés a nyelvtechnológiába 2. gyakorlat 2007. szeptember 20. 1 DOKUMENTUMFORMÁTUMOK 2 JELÖLŐ NYELVEK 3 XML 1 DOKUMENTUMFORMÁTUMOK 2 JELÖLŐ NYELVEK 3 XML DOKUMENTUMFORMÁTUMOK

Részletesebben

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben?

5. téma XML DB. Az adatkezelés és XML kapcsolata. Miért fontos az XML használata az adatbázis kezelésben? Adatbázis modellek 5. téma XML DB Az adatkezelés és XML kapcsolata Miért fontos az XML használata az adatbázis kezelésben? Adattárolás alapformái: - strukturált - szabad-szöveges - szemi struktúrált -

Részletesebben

XPath. dr. Paller Gábor. XML technológiák

XPath. dr. Paller Gábor. XML technológiák XPath dr. Paller Gábor XPath Az XPath nyelv más specifikációkat szolgál ki. Elsődlegesen az XSLT céljaira készült. Funkciói XML dokumentum részeinek kiválasztása, címzése. Mintaillesztés (van-e olyan XML

Részletesebben

XML és XSLT (a színfalak mögül)

XML és XSLT (a színfalak mögül) XML és XSLT (a színfalak mögül) Írta: Nagy Tamás Motiváció Ez a dokumentum eredetileg egy előadás írott változatának készült. Már az előadásra való felkészülés során, több könyv és Internetes oldal elolvasása

Részletesebben

Bevezetés: az SQL-be

Bevezetés: az SQL-be Bevezetés: az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben, adattípusok, kulcsok megadása 02B_BevSQLsemak

Részletesebben

XML alapú adatbázis-kezelés. (Katona Endre diái alapján)

XML alapú adatbázis-kezelés. (Katona Endre diái alapján) XML alapú adatbázis-kezelés Adatstruktúrák: Digitális kép, hang: teljesen strukturálatlan A web (linkek): részben strukturált Relációs: teljesen strukturált Motiváció: (Katona Endre diái alapján) Ismeretlen

Részletesebben

Adatbázisok* tulajdonságai

Adatbázisok* tulajdonságai Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

Adatbázisok II. Jánosi-Rancz Katalin Tünde [email protected] 327A

Adatbázisok II. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A Adatbázisok II. 6 Jánosi-Rancz Katalin Tünde [email protected] 327A XQUERY 6 XQUERY jellemzői XML dokumentumok lekérdezésére szolgáló lekérdezőnyelv W3C szabvány 2007 óta; a böngészők és ABKR értik

Részletesebben

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery.

XML adatkezelés. 11. témakör. Az XQuery nyelv alapjai. XQuery. XQuery célja egy imperatív lekérdező nyelv biztosítása. XQuery. XML adatkezelés 11. témakör Az nyelv alapjai ME GEIAL dr Kovács Lászl szló célja egy imperatív lekérdező nyelv biztosítása SQL XPath XSLT (nem XML) XDM Forrás XML processzor Eredmény XML 1 jellemzői --

Részletesebben

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, [email protected]

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, [email protected] Számonkérés 2 Papíros (90 perces) zh az utolsó gyakorlaton. Segédanyag nem használható Tematika 1. félév 3 Óra Dátum Gyakorlat 1. 2010.09.28.

Részletesebben

Tranzakciókezelés PL/SQL-ben

Tranzakciókezelés PL/SQL-ben Tranzakciókezelés PL/SQL-ben ACID tulajdonságok: Tranzakció Atomosság, Konzisztencia, Izoláció, Tartósság A tranzakció állhat: - Több DML utasításból - Egy DDL utasításból A tranzakció kezdete az első

Részletesebben

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) közönséges felhasználók SQL*Plus Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP dolgozó), DEPT osztály) "közönséges" felhasználók Adatszótár: metaadatokat tartalmazó, csak olvasható táblák táblanév-prefixek:

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

XML sémanyelvek Jeszenszky, Péter

XML sémanyelvek Jeszenszky, Péter XML sémanyelvek Jeszenszky, Péter XML sémanyelvek Jeszenszky, Péter Publication date 2010 Szerzői jog 2010 Jeszenszky Péter A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046 számú Kelet-magyarországi Informatika

Részletesebben

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17

Adatbázisok. 8. gyakorlat. SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT október október 26. Adatbázisok 1 / 17 Adatbázisok 8. gyakorlat SQL: CREATE TABLE, aktualizálás (INSERT, UPDATE, DELETE), SELECT 2015. október 26. 2015. október 26. Adatbázisok 1 / 17 SQL nyelv Structured Query Language Struktúrált lekérdez

Részletesebben

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai: 8. Gyakorlat SQL SQL: Structured Query Language; a relációs adatbáziskezelők szabványos, strukturált lekérdező nyelve SQL szabványok: SQL86, SQL89, SQL92, SQL99, SQL3 Az SQL utasításokat mindig pontosvessző

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

BASH SCRIPT SHELL JEGYZETEK BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...

Részletesebben

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

SQL. 1.rész. 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL 1.rész 1.elıadás // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1 SQL története, szabványok Szabvány adatbázis-kezelő nyelv: SQL SQL (angol kiejtésben

Részletesebben

B I T M A N B I v: T 2015.03.01 M A N

B I T M A N B I v: T 2015.03.01 M A N Adatbázis Rendszerek MSc 2. Gy: MySQL Táblák, adatok B I v: T 2015.03.01 M A N 1/41 Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítások DCL utasítások 2/41 Az SQL jellemzése Az SQL a relációs

Részletesebben

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet

Aspektus-orientált nyelvek XML reprezentációja. Kincses Róbert Debreceni Egyetem, Informatikai Intézet Aspektus-orientált nyelvek XML reprezentációja Kincses Róbert Debreceni Egyetem, Informatikai Intézet [email protected] Bevezetés OOP: helyesen alkalmazva jó minőségű szoftvert lehet vele előállítani

Részletesebben

Adatbázis-kezelés. Harmadik előadás

Adatbázis-kezelés. Harmadik előadás Adatbázis-kezelés Harmadik előadás 39 Műveletek csoportosítása DDL adat definiálás Objektum létrehozás CREATE Objektum törlés DROP Objektum módosítás ALTER DML adat módosítás Rekord felvitel INSERT Rekord

Részletesebben

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak

Részletesebben

Adatbázis kezelés Delphiben. SQL lekérdezések

Adatbázis kezelés Delphiben. SQL lekérdezések Adatbázis kezelés Delphiben. SQL lekérdezések Structured Query Language adatbázisok kezelésére szolgáló lekérdező nyelv Szabályok: Utasítások tetszés szerint tördelhetők Utasítások végét pontosvessző zárja

Részletesebben

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b [email protected] http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik

Részletesebben

Lekérdezések az SQL SELECT utasítással

Lekérdezések az SQL SELECT utasítással Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression

Részletesebben

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2

Tartalomjegyzék. Tartalomjegyzék 1. Az SQL nyelv 1 Az SQL DDL alapjai 2 Tartalomjegyzék Tartalomjegyzék 1 Az SQL nyelv 1 Az SQL DDL alapjai 2 Adatbázis parancsok 2 Táblaparancsok 2 A táblázat létrehozása 2 A táblázat módosítása 3 A tábla törlése 3 Indextábla létrehozása 3

Részletesebben

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások SQL haladó Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások 1 Külső összekapcsolás Összekapcsoljuk R és S relációkat: R C S. R azon sorait,

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa

Részletesebben

XML technikák II Kovács, László

XML technikák II Kovács, László XML technikák II Kovács, László XML technikák II Kovács, László Kelet-Magyarországi Informatika Tananyag Tárház Nemzeti Fejlesztési Ügynökség http://ujszechenyiterv.gov.hu/ 06 40 638-638 Lektor Dr. Johanyák

Részletesebben

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai

A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai 8. gyakorlat Structured Query Language Struktúrált lekérdező nyelv A relációs adatbáziskezelés szabványos nyelve Két fő csoportba sorolhatók az utasításai DDL (Data Definition Language) adatstruktúra definiáló

Részletesebben

2012.05.11. Adatbázisok I A relációs algebra

2012.05.11. Adatbázisok I A relációs algebra Adatbázisok I A relációs algebra 2 3 4 1 Feladatok Tantárgy tkód cím kredit oktató Oktató oktkód név tanszék fizetés Feladatok 1. Az átlagos kreditpontszám: Γ avg(kredit) (Tantárgy) 2. A Matematika tanszéken

Részletesebben

Általános nyomtatványok xml szerkezete. (v1.3)

Általános nyomtatványok xml szerkezete. (v1.3) Általános nyomtatványok xml szerkezete (v1.3) BEVEZETŐ... 3 1.1 FOGALOMMAGYARÁZAT... 3 2 A NYOMTATVÁNYOK XML FORMÁTUMA... 4 2.1 AZ XML MODELL... 4 2.2 A NYOMTATVÁNYOK XML FELÉPÍTÉSE... 4 2.2.1 Megkötések...

Részletesebben

SQL DDL-1: táblák és megszorítások

SQL DDL-1: táblák és megszorítások SQL DDL-1: táblák és megszorítások Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása 7.1. Kulcsok és idegen kulcsok 7.2. Értékekre

Részletesebben

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális XML alapok Az XML (Extensible Markup Language) nyelv az XML egy leírónyelv, másnéven meta-nyelv, mely segítségével új nyelveket írhatunk le egy XML dokumentum egy ilyen nyelvnek a példánya, a formális

Részletesebben

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány)

Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) Adatbázis Rendszerek I. 10. SQL alapok (DML esettanulmány) 23/1 B IT v: 2018.10.31 MAN DML adatokon műveletet végző utasítások DML Data Manipulation Language Rekordok (sorok) beszúrása (felvitele) Mezők

Részletesebben

Adatkezelési mőveletek az XML nyelvben XQuery - XML dokumentumok lekérdezésére szolgáló lekérdezınyelv kifejezı ereje az OQL nyelvével egyenértékő.

Adatkezelési mőveletek az XML nyelvben XQuery - XML dokumentumok lekérdezésére szolgáló lekérdezınyelv kifejezı ereje az OQL nyelvével egyenértékő. Adatkezelési mőveletek az XML nyelvben XQuery - XML dokumentumok lekérdezésére szolgáló lekérdezınyelv kifejezı ereje az OQL nyelvével egyenértékő. más nyelvek: XML-QL, XQL, Lorel, de jelenleg valószínő,

Részletesebben

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei 1. Mi az elsődleges következménye a gyenge logikai redundanciának? inkonzisztencia veszélye felesleges tárfoglalás feltételes függés 2. Az olyan tulajdonság az egyeden belül, amelynek bármely előfordulása

Részletesebben

A szoftver és hardverfüggetlen adatbázis

A szoftver és hardverfüggetlen adatbázis A szoftver és hardverfüggetlen adatbázis http:///korszeru_xml/ Példa tove jani reminder don't forget

Részletesebben

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás:

Az XML Bevezetés. Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Utolsó módosítás: Az XML Bevezetés Fabók Zsolt Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem Utolsó módosítás: 2007. 10. 02. Szüks kségessége 2 Java: plattform független programok XML: plattform független

Részletesebben

SQL DDL-2 (aktív elemek) triggerek

SQL DDL-2 (aktív elemek) triggerek SQL DDL-2 (aktív elemek) triggerek Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 7.fej.: Megszorítások és triggerek 7.4. Önálló megszorítások 7.5. Triggerek

Részletesebben

A könyv tartalomjegyzéke

A könyv tartalomjegyzéke A könyv tartalomjegyzéke Elıszó Bevezetés Adatbázis-kezelı rendszerek Adatmodellezés Alapfogalmak Egyedhalmaz, egyed Kapcsolat, kapcsolat-elıfordulás, kapcsolat típusa Tulajdonság, tulajdonságérték, értékhalmaz

Részletesebben

Egészítsük ki a Drupal-t. Drupal modul fejlesztés

Egészítsük ki a Drupal-t. Drupal modul fejlesztés Egészítsük ki a Drupal-t Drupal modul fejlesztés Drupal 6.0 2008. február 13. Miért írjunk Drupal modult? Nincs az igényeinknek megfelelő modul Valamilyen közösségi igény kielégítése Valami nem úgy működik

Részletesebben

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás

Petőfi Irodalmi Múzeum. megújuló rendszere technológiaváltás Petőfi Irodalmi Múzeum A Digitális Irodalmi Akadémia megújuló rendszere technológiaváltás II. Partnerek, feladatok Petőfi Irodalmi Múzeum Megrendelő, szakmai vezetés, kontroll Konzorcium MTA SZTAKI Internet

Részletesebben

AWK programozás Bevezetés

AWK programozás Bevezetés 09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Java II. I A Java programozási nyelv alapelemei

Java II. I A Java programozási nyelv alapelemei Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve

Részletesebben

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Bevezetés az SQL-be Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.3. Relációsémák definiálása SQL-ben Kulcsok megadása (folyt.köv.7.fej.) -- még: Relációs

Részletesebben

S z á m í t ó g é p e s a l a p i s m e r e t e k

S z á m í t ó g é p e s a l a p i s m e r e t e k S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami

Részletesebben

1. Az XML és XHTML nyelvek. Az XML leíró nyelv Szabályok XHTML írásra. Tartalom. 1.1. Az XML leíró nyelv

1. Az XML és XHTML nyelvek. Az XML leíró nyelv Szabályok XHTML írásra. Tartalom. 1.1. Az XML leíró nyelv Az XML leíró nyelv Szabályok XHTML írásra Tartalom 1. Az XML és XHTML nyelvek...1 1.1. Az XML leíró nyelv...1 1.1.1. Néhány alapvető nyelvi elem...2 1.1.1.1. Az XML deklaráció...2 1.1.1.2. Elemek és az

Részletesebben

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze:

Az XML kidolgozásakor a fejlesztés szempontjait tíz pontban foglalták össze: 1 XML XML... 1 FELÉPÍTÉS... 2 KARAKTEREK, ELNEVEZÉSEK... 3 NÉVTEREK (NAMESPACES)... 4 Név konfliktus.... 4 Megoldás név előtéttel... 4 Megoldás névtér használatával.... 5 TULAJDONSÁGOK... 5 DTD (DOCUMENT

Részletesebben

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv)

Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL nyelv Structured Query Language (Struktúrált lekérdező nyelv) Az SQL a relációs adatbázis-kezelő rendszerek ma legelterjedtebb szabványosított adatbáziskezelő nyelve. Az IBM dolgozta ki 1983-ban,

Részletesebben

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése

Javadoc. Dokumentációs megjegyzés (2) Dokumentációs megjegyzés (1) Dokumentációs megjegyzés felépítése Javadoc Dokumentációs megjegyzés (2) Jeszenszky Péter Debreceni Egyetem, Informatikai Kar [email protected] Verzió: 2015.0 Utolsó módosítás: 2015. április 21. Tartalmazhatja a forráskódban

Részletesebben

Adatbázis rendszerek 7. előadás State of the art

Adatbázis rendszerek 7. előadás State of the art Adatbázis rendszerek 7. előadás State of the art Molnár Bence Szerkesztette: Koppányi Zoltán Osztott adatbázisok Osztott rendszerek Mi is ez? Mi teszi lehetővé? Nagy sebességű hálózat Egyre olcsóbb, és

Részletesebben

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1

MS ACCESS 2010 ADATBÁZIS-KEZELÉS ELMÉLET SZE INFORMATIKAI KÉPZÉS 1 SZE INFORMATIKAI KÉPZÉS 1 ADATBÁZIS-KEZELÉS MS ACCESS 2010 A feladat megoldása során a Microsoft Office Access 2010 használata a javasolt. Ebben a feladatban a következőket fogjuk gyakorolni: Adatok importálása

Részletesebben

Szkriptnyelvek. 1. UNIX shell

Szkriptnyelvek. 1. UNIX shell Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek

Részletesebben

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatbázis-lekérdezés. Az SQL nyelv. Makány György Adatbázis-lekérdezés Az SQL nyelv Makány György SQL (Structured Query Language=struktúrált lekérdező nyelv): relációs adatbázisok adatainak visszakeresésére, frissítésére, kezelésére szolgáló nyelv. Születési

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY / MONEY 8

Részletesebben

Adattípusok. Max. 2GByte

Adattípusok. Max. 2GByte Adattípusok Típus Méret Megjegyzés Konstans BIT 1 bit TRUE/FALSE TINIINT 1 byte 12 SMALLINT 2 byte -123 INTEGER 4 byte -123 COUNTER 4 byte Automatikus 123 REAL 4 byte -12.34E-2 FLOAT 8 byte -12.34E-2 CURRENCY

Részletesebben

Webes űrlapok és az XForms ajánlás

Webes űrlapok és az XForms ajánlás Debreceni Egyetem Informatikai Kar Webes űrlapok és az XForms ajánlás Témavezető: Dr. Adamkó Attila egyetemi adjunktus Készítette: Hetei György programtervező Informatikus Debrecen 2010 Bevezetés 3 A HTML

Részletesebben

Adatbázisok elmélete 9. előadás

Adatbázisok elmélete 9. előadás Adatbázisok elmélete 9. előadás Katona Gyula Y. Budapesti Műszaki és Gazdaságtudományi Egyetem Számítástudományi Tsz. I. B. 137/b [email protected] http://www.cs.bme.hu/ kiskat 2005 ADATBÁZISOK ELMÉLETE

Részletesebben

Az SQL*Plus használata

Az SQL*Plus használata Az SQL*Plus használata Célkitűzés Bejelentkezés az SQL*Plus-ba SQL utasítások szerkesztése Az eredmény formázása SQL*Plus utasításokkal Szkriptfájlok használata Az SQL és az SQL*Plus kapcsolata SQL*Plus

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. november 20. 10. El adás SQLite SQLite: Adatbázis kezel rendszer SQL standardokat nagyrészt követi Nagyon elterjedt, pl böngész kben is használt Nehéz olyan programnyelvet

Részletesebben

Adatmodellezés. 1. Fogalmi modell

Adatmodellezés. 1. Fogalmi modell Adatmodellezés MODELL: a bonyolult (és időben változó) valóság leegyszerűsített mása, egy adott vizsgálat céljából. A modellben többnyire a vizsgálat szempontjából releváns jellemzőket (tulajdonságokat)

Részletesebben

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok

SQL jogosultság-kezelés. Privilégiumok Grant és Revoke Grant Diagrammok SQL jogosultság-kezelés Privilégiumok Grant és Revoke Grant Diagrammok 1 Jogosultság-kezelés Egy fájlrendszer általában jogosultságokat rendel az általa kezelt objektumokhoz. Tipikusan olvasható, írható,

Részletesebben

Webshop készítése ASP.NET 3.5 ben I.

Webshop készítése ASP.NET 3.5 ben I. Webshop készítése ASP.NET 3.5 ben I. - Portál kialakíása - Mesteroldal létrehozása - Témák létrehozása Site létrehozása 1. File / New Web site 2. A Template k közül válasszuk az ASP.NEt et, nyelvnek (Language)

Részletesebben

XML / CSV specifikáció

XML / CSV specifikáció Ajánlatok átadása az rendszerébe Termékeinek az Olcsóbbat.hu rendszerében történő megjelenítéséhez termékadatbázisát az ebben a dokumentumban megfogalmazott szabályoknak megfelelően kell formáznia, legyen

Részletesebben

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN

Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN Adatbázis Rendszerek II. 5. PLSQL Csomagok 16/1B IT MAN B IT v: 2016.03.03 MAN Csomagok A DBMS csomagok a PL/SQL alkalmazások fejlesztését segítik, bennük tároljuk a létrehozott programok kódjait. A specifikációs

Részletesebben

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >> I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >

Részletesebben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS. Adatbázis alapú alkalmazások készítése PHP-ben Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 4.ELŐADÁS 2015-2016 Adatbázis alapú alkalmazások készítése PHP-ben Adatbázis alapú alkalmazás 2 A leggyakrabban használt dinamikus alkalmazások

Részletesebben

XML. Document Type Definitions (DTD) XML séma

XML. Document Type Definitions (DTD) XML séma XML Document Type Definitions (DTD) XML séma 1 Féligstrukturált adat Egy másik, fákon alapuló adatmodell. Motiváció: az adatok rugalmas megjelenítése. Motiváció: dokumentumok megosztása rendszerek és adatbázisok

Részletesebben

Az XSLT elemei. Az XSLT áttekintése

Az XSLT elemei. Az XSLT áttekintése Az XSLT elemei dr. Kovács László Az XSLT áttekintése Az XML formátum az általánosságából következően rendkívül széles alkalmazási területtel bír. Az XML alkalmas arra, hogy adatbázisként szolgáljon, paraméter

Részletesebben

Adatbázis, adatbázis-kezelő

Adatbázis, adatbázis-kezelő Adatbázisok I. rész Adatbázis, adatbázis-kezelő Adatbázis: Nagy adathalmaz Közvetlenül elérhető háttértárolón (pl. merevlemez) Jól szervezett Osztott Adatbázis-kezelő szoftver hozzáadás, lekérdezés, módosítás,

Részletesebben

Algoritmizálás és adatmodellezés tanítása 1. előadás

Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az

Részletesebben

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák SQL Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák A SELECT UTASÍTÁS ÁLTALÁNOS ALAKJA (ISM.) SELECT [DISTINCT] megjelenítendő oszlopok FROM táblá(k direkt szorzata) [WHERE feltétel]

Részletesebben

Adatbázismodellek. 1. ábra Hierarchikus modell

Adatbázismodellek. 1. ábra Hierarchikus modell Eddig az adatbázisokkal általános szempontból foglalkoztunk: mire valók, milyen elemekből épülnek fel. Ennek során tisztáztuk, hogy létezik az adatbázis fogalmi modellje (adatbázisterv), amely az egyedek,

Részletesebben

Regionális forduló november 19.

Regionális forduló november 19. Regionális forduló 2016. november 19. 9-10. osztályosok feladata Feladat Írjatok Markdown HTML konvertert! A markdown egy nagyon népszerű, nyílt forráskódú projektekben gyakran használt, jól olvasható

Részletesebben

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK)

Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK) Informatikai képzés Információs rendszerek dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ 5.hét: SQL áttekintés, táblák létrehozása és adatok felvitele Az előadások Ullman-Widom: Adatbázisrendszerek

Részletesebben

Java programozási nyelv

Java programozási nyelv Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék

Részletesebben

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban

Adabáziselérés ODBC-n keresztül utasításokkal C#-ban Adabáziselérés ODBC-n keresztül utasításokkal C#-ban 1. Előkészítés Access adatbázis lemásolása, ODBC DSN létrehozása Másoljuk le az alábbiakat: Mit Honnan Hova list.mdb p:\johanyák Csaba\Vizualis programozas\data\

Részletesebben

XML adatbázis kezelésének lehetőségei

XML adatbázis kezelésének lehetőségei Debreceni Egyetem Informatika Kar XML adatbázis kezelésének lehetőségei Témavezető: Dr. Adamkó Attila egyetemi adjunktus Készítette: Buka Balázs programtervező informatikus Debrecen 2010 1 Tartalo mjegyzék

Részletesebben

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva! A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-

Részletesebben

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 2.4. Relációs algebra (áttekintés) 5.1.

Részletesebben

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3

Tartalomjegyzék 2. RENDSZER FELÉPÍTÉSE... 3 Tartalomjegyzék 1. BEVEZETŐ... 2 2. RENDSZER FELÉPÍTÉSE... 3 2.1. FELÜLET... 3 2.2. FELHASZNÁLÓI FUNKCIÓK... 4 2.2.1. Modulok... 4 2.2.2. Előzmények... 4 2.2.3. Lekérdezés működése, beállítások... 5 2.2.4.

Részletesebben

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv:

5. Gyakorlat. 5.1 Hálós adatbázis modell műveleti része. NDQL, hálós lekérdező nyelv: 5. Gyakorlat 5.1 Hálós adatbázis modell műveleti része NDQL, hálós lekérdező nyelv: A lekérdezés navigációs jellegű, vagyis a lekérdezés megfogalmazása során azt kell meghatározni, hogy milyen irányban

Részletesebben

1. Alapok. #!/bin/bash

1. Alapok. #!/bin/bash 1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk

Részletesebben

DTD Dokumentumtípus definició

DTD Dokumentumtípus definició DTD Dokumentumtípus definició XML sémák - alapok jól formázott egy XML dokumentum, ha betartja a formai követelményeket minden nyitó címkének van záró párja az attribútumok ténylegesen kulcs-érték alakúak

Részletesebben

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } Funkcionális és logikai programozás { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem } http://www.ms.sapientia.ro/~mgyongyi ` 1 Jelenlét: Követelmények, osztályozás Az első 4 előadáson

Részletesebben

SQL parancsok feldolgozása

SQL parancsok feldolgozása Az SQL nyelv SQL nyelv szerepe Sequental Query Language, deklaratív nyelv Halmaz orientált megközelítés, a relációs algebra műveleteinek megvalósítására Előzménye a SEQUEL (IBM) Algoritmus szerkezeteket

Részletesebben

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése BEVEZETÉS Célkitűzések Az Oracle10g felépítésének, használatának alapszíntű megismerése A relációs adatbázis-kezelés elméleti és gyakorlati vonatkozásainak áttekintése Az SQL, PL/SQL nyelvek használatának

Részletesebben