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 "http://www.w3.org/1999/xsl/transform" 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="http://www.w3.org/1999/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="http://www.w3.org/2001/xmlschema" targetnamespace="http://www.w3schools.com" xmlns="http://www.w3schools.com"> </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="http://www.w3.org/2001/xmlschema" 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="http://www.w3schools.com" xmlns="http://www.w3schools.com" 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="http://www.w3schools.com" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.w3schools.com note.xsd"> <to>tove</to> <from>jani</from> <heading>reminder</heading> <body>don't forget me this weekend!</body> </note> Az xmlns="http://www.w3schools.com" 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="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.w3schools.com 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 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> <Cell> </Cell> </ContactInformation> </Contact> <Contact ContactID= 102 ContactName= Marge Simpson > <ContactInformation> <Cell> </Cell> </ContactInformation> </Contact> </Root> 72

11 Az egyes példametódusok és azok eredménye: /Root/Contact/ContactInformation/ ) Az eredmény: 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 ) 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="http://www.w3.org/1999/xsl/transform"> <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="http://www.w3.org/1999/xsl/transform"> <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="http://www.w3.org/1999/xsl/transform"> <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="http://www.w3.org/1999/xsl/transform"> <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="http://www.w3.org/1999/xsl/transform"> <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="http://www.w3.org/1999/xsl/transform"> <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: > 10 : true-val tér vissza, ha van legalább egy q attribútum, amire a feltétel teljesül. 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

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

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.

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 sass@digitus.itk.ppke.hu 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

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

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

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

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

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á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

Adatbázisok II. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 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 tsuto@ms.sapientia.ro 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

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu 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

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

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

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

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

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

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

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

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

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

Á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

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

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

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

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

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

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

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

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

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

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 jeszenszky.peter@inf.unideb.hu Verzió: 2015.0 Utolsó módosítás: 2015. április 21. Tartalmazhatja a forráskódban

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

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

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

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

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

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

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

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

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

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

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

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf.

Szerver oldali Java programozás 2007-08/II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése. szenasi.sandor@nik.bmf. Szerver oldali Java programozás 2007-08/II. 1. óra Elemkönyvtárak Elemkönyvtárak használata Saját elemkönyvtár készítése szenasi.sandor@nik.bmf.hu Adatbázisok elérése Témakörök Elemkönyvtárak használata

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

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

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

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

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

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

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk.

Az alábbi kód egy JSON objektumot definiál, amiből az adtokat JavaScript segítségével a weboldal tartalmába ágyazzuk. JSON tutorial Készítette: Cyber Zero Web: www.cyberzero.tk E-mail: cyberzero@freemail.hu Msn: cyberzero@mailpont.hu Skype: cyberzero_cz Fb: https://www.facebook.com/cyberzero.cz BEVEZETÉS: A JSON (JavaScript

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

Adatbázis rendszerek. dr. Siki Zoltán

Adatbázis rendszerek. dr. Siki Zoltán Adatbázis rendszerek I. dr. Siki Zoltán Adatbázis fogalma adatok valamely célszerűen rendezett, szisztéma szerinti tárolása Az informatika elterjedése előtt is számos adatbázis létezett pl. Vállalati személyzeti

Részletesebben

Széchenyi István Egyetem www.sze.hu/~herno

Széchenyi István Egyetem www.sze.hu/~herno Oldal: 1/6 A feladat során megismerkedünk a C# és a LabVIEW összekapcsolásának egy lehetőségével, pontosabban nagyon egyszerű C#- ban írt kódból fordítunk DLL-t, amit meghívunk LabVIEW-ból. Az eljárás

Részletesebben

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba Programozás alapjai Ha egy adott adattáblára Ctrl + G t nyomunk,

Részletesebben

ASP.NET 2.0 (Whidbey) Mi várható a 2005-ös ASP.NET-ben?

ASP.NET 2.0 (Whidbey) Mi várható a 2005-ös ASP.NET-ben? ASP.NET 2.0 (Whidbey) Mi várható a 2005-ös ASP.NET-ben? VII. rész: Hierarchikus adatok kezelése Sorozatunk korábbi részeiben már szó volt a Data Source vezérlôkrôl, és az adatkötés újdonságairól. Ebben

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

1. fejezet Microsoft Excel 2010 Tartománynevek... 3

1. fejezet Microsoft Excel 2010 Tartománynevek... 3 Táblázatkezelés II. TARTALOMJEGYZÉK 1. fejezet Microsoft Excel 2010 Tartománynevek... 3 Tartománynevek definiálása... 5 Háromdimenziós tartománynevek... 7 Másik munkafüzet celláira utaló név létrehozása...

Részletesebben

DIPLOMAMUNKA. Szűcs Béla. Debrecen 2009. PDF processed with CutePDF evaluation edition www.cutepdf.com

DIPLOMAMUNKA. Szűcs Béla. Debrecen 2009. PDF processed with CutePDF evaluation edition www.cutepdf.com DIPLOMAMUNKA Szűcs Béla Debrecen 2009 PDF processed with CutePDF evaluation edition www.cutepdf.com Debreceni Egyetem Informatika Kar XML ALAPÚ SZOLGÁLTATÁSOK Témavezető: Dr. Adamkó Attila egyetemi adjunktus

Részletesebben

BEVEZETÉS Az objektum fogalma

BEVEZETÉS Az objektum fogalma BEVEZETÉS Az objektum fogalma Program (1) Adat (2) Objektum Kiadványszerkesztés Word Táblázatkezelés Excel CAD AutoCad Adatbáziskezelés Access 1 Program (1) Adat (2) Objektum Adatmodell (2) A valós világ

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

XmlGessünk 13. rész - Az XML Schema II.

XmlGessünk 13. rész - Az XML Schema II. XmlGessünk 13. rész - Az XML Schema II. Az elz részben láthattuk, hogyan kell közvetlen egymásba ágyazással, referenciákkal és típusok definiálásával egyszerbb sémákat szerkeszteni. Részletesen megnéztük

Részletesebben

Az ErdaGIS térinformatikai keretrendszer

Az ErdaGIS térinformatikai keretrendszer Az ErdaGIS térinformatikai keretrendszer Két évtized tapasztalatát sűrítettük ErdaGIS térinformatikai keretrendszerünkbe, mely moduláris felépítésével széleskörű felhasználói réteget céloz, és felépítését

Részletesebben

Adatbázisok II. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A

Adatbázisok II. Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A Adatbázisok II. 7 Jánosi-Rancz Katalin Tünde tsuto@ms.sapientia.ro 327A Oracle XML 7 Oracle XML DB Az XML adatok kezelésére az Oracle egy külön komponenst készített, az Oracle XML DB-t. Az XML adatok tárolására

Részletesebben

Adatbázis-kezelés, információs-rendszerek

Adatbázis-kezelés, információs-rendszerek Adatbázis-kezelés, információs-rendszerek 3. Ea: Eskúel (2011) Structured Query Language v: 2011.09.05 Szűcs Miklós - ME, ÁIT. 1.o Témakörök SQL alapok DDL utasítások DML utasítások DQL utasítás DCL utasítások

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 Célok Az SQL SELECT utasítás lehetőségeinek bemutatása A megjelenítendő oszlopok kiválasztása Elemi SELECT utasítások végrehajtása Az SQL utasítások és az isql*plus

Részletesebben

Programozás II. 2. Dr. Iványi Péter

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

Web-fejlesztés NGM_IN002_1

Web-fejlesztés NGM_IN002_1 Web-fejlesztés NGM_IN002_1 Szindikálás, aggregálás - RSS, Atom Tartalom betáplálás Gyakran frissül! webszájtok Új felhasználói igények el!fizetési igény az új tartalomra a tartalom újrafelhasználása eltér!

Részletesebben

Adatbázis rendszerek 6.. 6. 1.1. Definíciók:

Adatbázis rendszerek 6.. 6. 1.1. Definíciók: Adatbázis Rendszerek Budapesti Műszaki és Gazdaságtudományi Egyetem Fotogrammetria és Térinformatika 6.1. Egyed relációs modell lényegi jellemzői 6.2. Egyed relációs ábrázolás 6.3. Az egyedtípus 6.4. A

Részletesebben

A legfontosabb DOS parancsok

A legfontosabb DOS parancsok A legfontosabb DOS parancsok A DOS parancsok általános formája: KULCSSZÓ paraméterek Az utasítások akár kis-, akár nagybetűkkel is írhatók, a DOS nem tesz köztük különbséget. A kulcsszó és az első paraméter

Részletesebben

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT

ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT ÓBUDAI EGYETEM Neumann János Informatikai Kar Nappali Tagozat ADATBÁZIS-KEZELÉS FÉLÉVES FELADAT NÉV: MÁK VIRÁG NEPTUN KÓD: A DOLGOZAT CÍME: Jani bácsi székadatbázisa Beadási határidő: 14. oktatási hét

Részletesebben

C programozás. 1 óra Bevezetés

C programozás. 1 óra Bevezetés C programozás 1 óra Bevezetés A C nyelv eredete, fő tulajdonságai 1. Bevezető C nyelv alapelemei többsége a BCPL (Basic Combined Programming Language {1963}) Martin Richards B nyelv Ken Thompson {1970}

Részletesebben

Adatok szűrése, rendezése

Adatok szűrése, rendezése Adatok szűrése, rendezése Célkitűzések Szűrést kifejező lekérdezések végrehajtása A lekérdezés eredményének rendezése &változó használata isql*plus-ban futási időben megadható feltételek céljából A lista

Részletesebben

Programozás. Adatbázis-kezelés (alapok) Fodor Attila

Programozás. Adatbázis-kezelés (alapok) Fodor Attila Programozás Adatbázis-kezelés (alapok) Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 22. Bevezetés Adatbáziskezelés

Részletesebben

Vizuális programozás gyakorlat

Vizuális programozás gyakorlat Vizuális programozás gyakorlat A gyakorlat célja az entitás modell készítésének és az MS SQLEXPRESS használatának gyakorlása. A gyakorlat során egy könyvtári szoftver adatmodelljét tervezzük meg, valamint

Részletesebben

Szövegek C++ -ban, a string osztály

Szövegek C++ -ban, a string osztály Szövegek C++ -ban, a string osztály A string osztály a Szabványos C++ könyvtár (Standard Template Library) része és bár az objektum-orientált programozásról, az osztályokról, csak később esik szó, a string

Részletesebben

Adatbázis használata PHP-ből

Adatbázis használata PHP-ből Adatbázis használata PHP-ből Adatbázis használata PHP-ből...1 Nyílt forráskódú adatbázisok...1 A mysql függvények...2 A mysqli függvények...4 Bináris adatok adatbázisban való tárolása...8 Adatbázis csatoló

Részletesebben

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba

Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve. Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba Ügyviteli rendszerek hatékony fejlesztése Magic Xpa-val mobilos funkciókkal kiegészítve Oktatók: Fülöp József, Smohai Ferenc, Nagy Csaba Inheritance beállítás Ez egy olyan beállítás, amely a modell alapján

Részletesebben

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET

FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET FUNKCIONÁLIS PROGRAMOZÁS GYAKORLAT JEGYZET Szerkesztette: Balogh Tamás 2013. május 17. Ha hibát találsz, kérlek jelezd a info@baloghtamas.hu e-mail címen! Ez a Mű a Creative Commons Nevezd meg! - Ne add

Részletesebben

Spatial a gyakorlatban

Spatial a gyakorlatban Spatial a gyakorlatban A korábban összefoglalt elméleti ismeretanyagot mindenképpen szerettem volna kipróbálni a gyakorlatban is. Sajnos az időm rövidsége és beállítási problémák miatt nem tudtam megoldani,

Részletesebben

w w w. h a n s a g i i s k. h u 1

w w w. h a n s a g i i s k. h u 1 w w w. h a n s a g i i s k. h u Adatbázis-kezelés Adatbázisok Az adatbázisok rendezett adatok halmaza. Rendezett adatok közt sokkal gyorsabban lehet keresni! Napjainkban a relációs típusú adatbázis terjedt

Részletesebben

Web-technológia PHP-vel

Web-technológia PHP-vel Web-technológia PHP-vel A PHP programnyelv 2, futtatókörnyezet beálĺıtások Erős Bence February 26, 2013 Erős Bence () Web-technológia PHP-vel February 26, 2013 1 / 19 Szuperglobális változók $ GET : request

Részletesebben

PHP-MySQL. Adatbázisok gyakorlat

PHP-MySQL. Adatbázisok gyakorlat PHP-MySQL Adatbázisok gyakorlat Weboldalak és adatbázisok Az eddigiek során megismertük, hogyan lehet a PHP segítségével dinamikus weblapokat készíteni. A dinamikus weboldalak az esetek többségében valamilyen

Részletesebben

1.1.1 Dátum és idő függvények

1.1.1 Dátum és idő függvények 1.1.1 Dátum és idő függvények Azt már tudjuk, hogy két dátum különbsége az eltelt napok számát adja meg, köszönhetően a dátum tárolási módjának az Excel-ben. Azt is tudjuk a korábbiakból, hogy a MA() függvény

Részletesebben

Már megismert fogalmak áttekintése

Már megismert fogalmak áttekintése Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

Webprogramozás szakkör

Webprogramozás szakkör Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás

Részletesebben

Többtáblás lekérdezések megjelenítése

Többtáblás lekérdezések megjelenítése Többtáblás lekérdezések megjelenítése Célkitűzés Egynél több táblának egyenlőségen vagy nem-egyenlőségen alapuló összekapcsolást végző SELECT utasítások írása. Egy táblának önmagával történő összekapcsolása.

Részletesebben

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos

Kilencedik témakör: Lazarus-Firebird. Készítette: Dr. Kotsis Domokos PASzSz Kilencedik témakör: Lazarus-Firebird Készítette: Dr. Kotsis Domokos Az SQLdb fülön IBConnection Kapcsolat A Data Access fülön Az SQLdb fülön... Select 1. Az SQLQuery lezárása. (Active := false,

Részletesebben

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat 2012.03.05.

Adatbáziskezelı-szerver SQL. Relációs adatbázis-kezelık. Relációs adatszerkezet. Házi feladat 2012.03.05. 1 2 Adatbáziskezelı-szerver Általában dedikált szerver Optimalizált háttértár konfiguráció Csak OS + adatbázis-kezelő szoftver Teljes memória az adatbázisoké Fő funkciók: Adatok rendezett tárolása a háttértárolón

Részletesebben

Cikktípusok készítése a Xarayában

Cikktípusok készítése a Xarayában Cikktípusok készítése a Xarayában A Xaraya legfontosabb tulajdonsága az egyedi cikktípusok egyszerű készítésének lehetősége. Ezzel kiküszöbölhető egyedi modulok készítése, hiszen néhány kattintással tetszőleges

Részletesebben

DocBook útmutató. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu

DocBook útmutató. Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu DocBook útmutató Jeszenszky Péter Debreceni Egyetem, Informatikai Kar jeszenszky.peter@inf.unideb.hu Mi a DocBook? (1) XML formátum műszaki dokumentációhoz Eredetileg hardver és szoftver dokumentáció készítéséhez

Részletesebben

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Adatbázisok I SQL- Utasítások csoportosítása Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER Módosítás: DML: - rekord felvitel INSERT - rekord törlés

Részletesebben

dr.xlsx A programról Szövegműveletekhez használható függvények

dr.xlsx A programról Szövegműveletekhez használható függvények dr.xlsx A programról A CD struktúrája A CD 9 munkafüzetben mutatja be a Microsoft Excel 2003, 2007 és 2010 függvényeit. Az egyes munkafüzetek a "tartalom" munkafüzetből érhetők el a munkafüzet nevére kattintással.

Részletesebben

Programozási környezetek

Programozási környezetek KOVÁSZNAI GERGELY ÉS BIRÓ CSABA EKF TTK Információtechnológia Tanszék Programozási környezetek Alkalmazható természettudományok oktatása a tudásalapú társadalomban TÁMOP-4.1.2.A/1-11/1-2011-0038 WPF Bevezetés

Részletesebben