2011. tavaszi félév: Korszerű adatbázisok (2+2) (IPM-08irKAEG/1)

 

Hirdetés (módosítva 2011. május 19.):

  1. Mindenki válasszon egy cikket a cikkek alkönyvtárból és a saját nevét, cikk sorszámát, címét küldje el a

korszeru2011@gmail.com címre. Ha még nem foglalt, akkor OK a válasz, ha már foglalt, akkor Foglalt, válassz másikat! lesz a válasz.

Az esetleges iterációk végén legkésőbb április 1. 12 óráig mindenkinek legyen meg a cikke.

 

  1. További ajánlott tárgyak:

ˇ        Tudáskezelő rendszerek szakirányú labor (1,2,3,4) 0+4, minden félévben

ˇ        Integrált keretrendszerek (SAP) 2+2 őszi félév

ˇ        Webtechnológiák információs rendszerekben, 2+2 tavaszi félév

 

Szakdolgozati, TDK, diploma, doktori témák (2011-2012): http://people.inf.elte.hu/kiss/Temak2011.doc

Tematika:

Komplex fejlesztői környezetek, Oracle ADF, többrétegű adatbázis-kezelő alkalmazások, XML adatbázisok, multimédia adatbázisok, XML lekérdező, transzformáló nyelvek, XML tömörítés, XML indexelés, XML sémák

Vizsga (írásbeli):

 

A vizsga két részből áll:

  1. Tanulmány készítése, kinyomtatása és a vizsga kezdetekor az anyag leadása, valamint a doc és pdf fájl vizsga előtti napon emailben elküldése az

korszeru2011@gmail.com

címemre,

  1. egy vizsgakérdés kifejtése a helyszínen (90 percben), 3-4 oldalon.

 

A jegy a tanulmányra adott jegy, és az írásbeli kérdés kifejtésére adott jegyek, azaz összesen 2 jegy felfelé kerekített átlaga lesz. Ha az egyik elégtelen, akkor a a végeredmény is elégtelen.

 

Vizsganapok: Minden kedden 10-12. Június 28 csak UV!!!.

A tanulmány:

1.      Rövid összefoglalás (absztrakt: kb. 10 mondat)

2.      Bevezetés (a vizsgált problémák, feladatok közérthető megfogalmazása: kb. 2-3 oldal)

3.      Kapcsolódó munkák (a hivatkozásban milyen eredményeket értek el eddig: kb.0,5-1 oldal)

4.      Alapfogalmak (definíciók, tulajdonságok, módszerek, architektúrák, példák: kb. 4-5 oldal)

5.      Eredmények (megoldások, állítások, példák, futási eredmények: kb. 4-5 oldal)

6.      További kutatás terv (a cikkek alapján mit lehetne még vizsgálni, esetleg saját ötletek a folytatásra: 0.5-1 oldal, olyan formában, ahogy a szakdolgozat témabejelentőjében kell megadni)

7.      Irodalomjegyzék (0.5-1 oldal)

 

 

#

Név

Cikk sorszáma

Címe

1

Almádi Balázs

44

SOA to e-science

2

Ambrus Anett

18

Data Cloud

3

Árvay Zsófia

23

Effective and Efficient Update of XML in RDBMS

4

Baláz Adam

04

Adaptive XML Shredding: Architecture, Implementation, and Challenges

5

Bánky Dániel

 

 

6

Borók-Nagy Zoltán

13

Cloud Architectures

7

Csajka Frantisek

19

DataGrid

8

Csicsay Attila

31

Integrating database into semantic web

9

Fekete György

42

Semantic web in industry

10

Felker Péter

23

Effective XML update

11

Gombos Gergő

39

RDF, Jena, SparQL and the Semantic Web 

12

Gradwohl Anikó

52

Webtable

13

Hackspacher Tamás

06

Autocompletion for SQL

14

Hriczu László

16

Columnstore database

15

Illés Zoltán

05

Amazon EC2

16

Jancsó Dávid Kornél

22

Dicom viewer

17

Kádár Gábor

56

XSLT implementation

18

Karácsonyi Felicián

37

Ontology Health Database

19

Kerti Csaba

38

Pattern-based framework for modularized software development and evolution robustness

20

Kollarits Zsolt

15

Cloud data management

21

Lucz Loránd Attila

30

Hypergraphdb

22

Matók Balázs

43

Skyserver

23

Matuszka Tamás

21

Relation Discovery on the DBpedia SemanticWeb

24

Mészáros István

20

DBpedia.

25

Mészáros Zsófia

46

TellMeMore

26

Mórocz Ádám

48

Web Ontologies

27

Németh Dávid

03

Efficient adaptive retrieval and mining in large multimedia databases

28

Németh Gábor

53

XML independent XQuery

29

Rácz Gábor

32

Large rdf database join

30

Roszik Gábor

24

Efficient XSLT processing

31

Sidarov Antal Baltazár

09

Binary XML Storage and Query Processing in Oracle 11g

32

Sipos Roland

14

Cloud Computing in biomedical information sharing

33

Sótér Péter

26

Geoinformation from text

34

Szabó Dávid

35

Multimedia Database server

35

Szikszai Gergely Dániel

 

 

36

Törőcsik Krisztián

36

Multimedia webservice

37

Varga Kristián

47

TwitterSearch

 

Az előadáson kipróbált fontosabb adatbázis-alkalmazások, adatbázisok, portálok, leírások:

 

 

 

Feladatok: Egyszerű szövegelemző készítés XSLT vagy XQUERY segítségével:

0. Legalább három szintű XML fájl legyen a példa, aminek szöveges csúcsaiban szóközzel elválasztva gyümölcsök szerepelnek.

1. Szerepel-e akármelyik szinten az alma?

2. Hányszor szerepel az alma összesen?

3. Egymás alatt soroljuk fel az összes szereplő gyümölcsöt, mindegyiket annyiszor, ahányszor előfordul.

4. Egymás alatt soroljuk fel az összes szereplő gyümölcsöt, de mindegyiket csak egyszer.

5. Készítsünk gyakoriság táblázatot, egymás alatt (gyümölcs, előfordulások száma)

6. Melyik gyümölcs szerepel a legtöbbször? (Ez lesz az XML fájl topikja.)

7. Melyik két gyümölcs szerepel a legtöbbször?

 

Feladatok:

Relációs algebra szimulálása XSLT-vel.

Reláció reprezentálása XML-ben

<d>

  <r1>

    <t>

      <a>

        0

      </a>

      <b>

        0

      </b>

   </t>

    <t>

      <a>

        0

     </a>

     <b>

        1

     </b>

   </t>

  </r1>

  <r2>

    <t>

      <a>

        1

      </a>

      <b>

        1

      </b>

   </t>

    <t>

      <a>

        0

     </a>

     <b>

        1

     </b>

   </t>

  </r2>

</d>

 

Algebrai műveletek (az eredmény kerüljön be az xml-be, a műveletnek megfelelő -például r1_Minus_r2 néven):

 

A duplikátumokat nem kell kiszűrni.

A sémát fixnek tekintjük.

* Hogy kellene kiszűrni a duplikátumokat?

* Hogy kellene megoldani, hogy tetszőleges sémára működjön?

* Hogyan kellene tetszőleges realációs algebrai kifejezést XSLT-vel szimulálni?

 

 

 

 

 

Segédanyagok

Apex.pdf

Cséri Tamás megoldása: JdevTutorCseriTamas.pdf

Cseh Péter megoldása: CsehPeter_oktatoanyag.pdf

Oracle RIA:

http://www.w3schools.com/default.asp

 

Vizsgakérdések:

  1. Mutassa be részletesen, példákon keresztül az Xpath lekérdező nyelvet.
  2. Mutassa be részletesen, példákon keresztül az Xquery lekérdező nyelvet.
  3. Mutassa be részletesen, példákon keresztül a DTD sémaleírást.
  4. Mutassa be részletesen, példákon keresztül az XSD sémaleírást.
  5. Mutassa be részletesen, példákon keresztül az XSLT transzformációs nyelvet.

 

Előadások és gyakorlatok anyaga (12 hét):

 

1. Korszerű fejlesztői keretrendszerek, jdeveloper

2. Adatbázis-fejlesztés jdeveloperrel

3.  Grafikus elemek, megjelenítési templatek készítése jdeveloperrel

4. További vizualizációs lehetőségek, diagramok, térképek, pivottáblák

5. XML, DTD, XPATH, XML indexelési technikák, Oracle XML kezelése

6. Komplex XML-es feladatok, Xquery

7. XML tömörítés, Oracle Xquery megoldásai, XML állományok táblába konvertálása és vissza.

8. Xml transzformálása XSLT segítségével

9.  RDF, Ontológiák (OWL), XSLT alkalmazása jdeveloperrel, oracle függvényekkel.

10. Multimédia adatbázisok, Oracle multimédia típusai és függvényei

11. Az XSD XML séma és használata Oracle-ben

12. XML normalizálás

 

Beadandó feladatok

ˇ        Beadandó feladat

ˇ        Beadandó feladat

 

1. Adatbázis-alkalmazás készítése jdeveloperrel

 

A jdeveloper fejlesztőkörnyezet lehetőségei: JDeveloper.pdf

Az Oracle ADF (Application Development Framwork): The_Fusion_Development_Platform.pdf

Az ADF fejlesztési módszertanának dokumentációja: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/toc.htm

 

ELŐKÉSZÍTÉS:

 

sqldeveloper letöltése

Az Oracle 11g a tomx.inf.elte.hu gépen található.

A connectálásnál a Service name: ORA11G

 

Oracle 11g-ben a HR séma másolása saját sémába :

- Töltsük le ezt scriptkönyvtárat majd csomagoljuk ki.

- Script a HR séma létrehozásához és felöltéséhez  (hr_main.sql)

   Ebben a scriptben írjuk át a .sql fájlok elérési útvonalait arra, ahová mentettük és futassuk le sqldeveloperben.

(Ha valamiért újra létre kell hozni a sémát, akkor töröljük az előzőleg használt sémát ezzel a scripttel. hr_drop.sql)

 

jdeveloper 11g letöltése, telepítése

 

JDEVELOPER HASZNÁLATA:

Az első egyszerű Java kód elkészítése, futtatása, jdeveloper lehetőségeinek megismerése (kb 50 perc)

http://www.oracle.com/technology/obe/obe11jdev/ps1/introjdevide/introjdevide.htm

(Ha nem érhető el, akkor egy letöltött verzió is használható. Ha a képekkel gond van, akkor frissíteni kell.)

 

Az átmásolt sémához webes alkalmazás készítése (kb. 2 óra)

http://www.oracle.com/technology/obe/obe11jdev/ps1/ria_application/developriaapplication_long.htm

(Ha nem érhető el, akkor egy letöltött verzió is használható. Ha a képekkel gond van, akkor frissíteni kell.)

 

Segédanyagok: dr. Bakay Árpád által készített anyag:

ora1.pdf, ora2.pdf, ora3.pdf, ora4.pdf, ora5.pdf, ora6.pdf, ora7.pdf, ora8.pdf, ora9.pdf, ora10.pdf, ora11.pdf, ora12.pdf

3ora1.pdf, 3ora2.pdf, 3ora3.pdf, 3ora4.pdf, 3ora5.pdf, 3ora6.pdf

Uzleti reteg tervezese.doc

 

2. Adatbázis-fejlesztés jdeveloperrel

 

Ismétlés: webes alkalmazás készítése (1,5 óra)

http://www.oracle.com/technology/obe/obe11jdev/ps1/ejb/ejb.html

(Ha nem érhető el, akkor egy letöltött verzió is használható. Ha a képekkel gond van, akkor frissíteni kell.)

           

Adatbázis-fejlesztés, logikai és fizikai modell, UML, visszatervezés, verziókezelés (50 perc)

http://www.oracle.com/technology/obe/obe11jdev/ps1/databasedevelopment/obe_%20databasedevmt.htm

 

 

ELŐKÉSZÍTÉS

 

FOD séma és alkalmazás bemásolása saját sémába:

            Töltsük le a FusionOrderDemo_R1PS1.zip fájlt és csomagoljuk ki egy FOD könyvtárba.

            A FOD\Infrastructure\DBSchema\Scripts\createFODSchema.sql fájlban minden sort kommentezzünk ki.

(Ez majd azért kell, hogy ne egy fod séma jöjjön létre, hanem a sajátunk alá másolódjon minden.) A módosított fájl így nézzen ki, majd mentsük el.

            Indítsuk el a jdevelopert.

            Nyissuk meg a FOD\Infrastructure\Infrastructure.jws fájlt.

            A MasterBuildScript\Resources\build.properties -ben írjuk át az adatbázis kapcsolódási paramétereket a következőképpen:

                        jdbc.urlBase=jdbc:oracle:thin:@tomx.inf.elte.hu

jdbc.port=1521

jdbc.sid=ora11g

                        db.adminUser= ide írjuk be a saját oracle login-ünket

db.demoUser= ide írjuk be a saját oracle login-ünket

db.demoUser.password= ide írjuk be a saját oracle jelszavunkat

            Mentsünk mindent el.

            Jobb klikk a MasterBuildScript\Resources\build.xml -re és válasszuk a Run Ant Target -ből a buildAll-t.

                        Hibalehetőségek:

- a futáshoz create session, alter session, create table, create trigger, create view, create sequence, create synonym, create type, create procedure jogok kellenek.

            jogaink lekérdezése: all_privileges.sql

további jogokat a DBA adhat nekünk

                        - már léteznek az adatbázis objektumok. Ekkor töröljük a FOD össze objektumát:

                                   a sémánk alatti összes objektumunk droppolási scriptjét előállítja a create_purge.sql

                                   (Vigyázat, a nem FOD sémába tartozók is szerepelni fognak, ezért ezeket töröljük ki a generált scriptből!)

 

A FOD sémát használó WEB ÁRUHÁZ elindítása:

            A http://www.oracle.com/technology/products/jdev/samples/fod/index.html (vagy letöltött verzió: fod.html) Running the Sample alapján.

            Az adatbázis-kapcsolódásnál a saját sémánkat (login/jelszó) adjuk meg.

 

3. Grafikus elemek, megjelenítési templatek készítése jdeveloperrel, önálló feladatmegoldás.

      

Ismétlés: Ajax alapú komplex megjelenítések fejlesztése (60 perc)

            http://www.oracle.com/technology/obe/obe11jdev/ps1/adf_richclient/adfrichclient.htm

( Ha nem megy a letöltés, akkor innen is letölthető a Tutorial.zip, illetve az oldal adfrichclient.htm.)

 

            FELADAT: egyszerűsített ETR egy félévre vonatkozólag, azaz nem kell dátumokat használni.

                       

Funkcionalitás:

- lehessen hallgatókat, tárgyakat felvinni, karbantartani, valamint hallgató vehessen fel tárgyat vagy jelentkezhessen le róla,

- lehessen böngészni hallgatóra és lássuk az általa felvett tárgyakat,

                        - lehessen keresni benne hallgatóra és lássuk milyen tárgyakat vett fel,

                        - grafikonnal szemléltessük, hogy melyik tárgyat hányan vettek fel,

                        - a későbbi feladatokban majd ezt az alkalmazást fogjuk bővíteni, ezért olyan megoldásokat válasszunk, amelyek kellően rugalmasak.

                       

Lépések:

                        Tervezzük meg az adatbázis sémáját:

                                   Ezek a mezőnevek mindenképpen szerepeljenek, a többit értelmesen találjuk ki.

                                   Hallgató azonostója: eha

                                   Tárgy azonostója: tazon

                                   Tárgy kreditértéke: kredit

Tanár azonosítója: teha

                                    

                        Tervezzük meg az alkalmazás adatmodelljét.

                        Tervezzük meg az oldalakat, master-detail oldalakat, lekérdezéseket, vezérléseket.

                        Az adatokat kössük hozzá az oldalakhoz.

                        Futassuk.

                       

            Súgó: Ha nem emlékszünk a fejlesztés lépéseire, nézzük meg a doksiban: http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/toc.htm

 

Cseh Péter hallgató órai megoldása: ETR.rar (kisebb szépséghibákkal).

 

A következő órán mindenki a saját ETR feladat megoldását fogja tovább bővíteni, ezért a következő órára kötelező házi feladat mindenkinek egy igényes megoldás elkészítése az ETR feladatra.

A megoldást hozzátok magatokkal és az óra azzal fog kezdődni, hogy gyorsan mindenkinek végignézem a megoldását.

Célszerű óra előtt ellenőrizni a laboros gépen, hogy minden úgy működik-e mint otthon.

                       

4. További vizualizációs lehetőségek, diagramok, térképek, pivottáblák.

 

 A házi feladatok bemutatása

 

Ismétlés: További vizualizációs lehetőségek, diagramok, térképek, pivottáblák (45 perc)

Az elején a FOD sém generálását át kell ugrani, ha az előző órán rendben legeneráltuk a FOD sémát!)

http://www.oracle.com/technology/obe/obe11jdev/ps1/dvt_graph/gant_chart_pivot_table.htm

( Ha nem megy a letöltés, akkor innen letölthető a Gantt.zip, illetve az oldal gant_chart_pivot_table.htm.)

 

A házi feladat továbbfejlesztése önállóan.

      (Akinek nem működik a saját megoldása megfelelően, az használja Erdélyi Viktor megoldását ETR-EVT-20100303.ZIP, de előtte generálja le a táblákat az alkalmazásnak megfelelően, illetve írja át az adatbázis-kapcsolatot a saját ehakódjára!)

 

FELADATOK:

      1. Bővítsük az alkalmazást, hogy tanárok adatait is kezelje.

            2. Legyen egy olyan táblázat és grafikon, amely azt mutatja, hogy a tanároknak hány diákot kell vizsgáztatnia, azaz a tanított tárgyait összesen mennyien vették fel.

            3. A hallgatókhoz vegyünk fel lakcímet, és az óra elején átnézett tutor alapján jelenítsük meg táblázatban és térképen, hogy melyik városból mennyi diák szerepel az ETR-ben.

            4. Ha marad idő, további feladatokat az órán mondok.

            Erdélyi Viktor megoldása (az adatbáziskapcsolatnál a saját sémát írjátok be, de előtte a táblákat generáljátok le): ETR-EVT-20100307-noconn.ZIP

 

ELSŐ BEADANDÓ:

 

-         a megoldások bemutatása: az április 8-i órán.

-         az ETR feladat további igényes megjelenésű, kezelésű bővítése (az eddigi funkcionalitásnak is működnie kell!):

1.      Vizsgák kezelése: a tanár a tárgyaiból írhasson ki vizsganapokat (dátummal).

2.      A hallgató a felvett tárgyaiból jelentkezhessen a kiírt vizsganapok egyikére.

3.      A tanár vizsgalapon adhasson jegyeket a feliratkozott diákoknak és a vizsgalapot Excel táblába ki lehessen menteni.

4.      Készüljön egy táblázat és egy grafikon, ami azt mutatja, hogy tárgyanként mennyi a vizsgaátlag.

5.      Legyenek amerikai diákjaink és térképen lehessen megnézni, hogy melyik városból kik jöttek és mennyi egyesével az átlaguk.

 

Osztályzás: csak akkor fogadom el, ha az eddigi funkcionalitás is működik

                        2 feladat: kettes (2)

                        3 feladat: közepes (3)

                        4 feladat: jó (4)

                        5 feladat: jeles (5)

 

5. Ismétlés: XML, DTD, XPATH XML.ppt , XML indexelési technikák: Tudomanyos.ppt, az Oracle XML kezelése: Oracle XML.ppt

 

 

FELADATOK:

- 2 tárgy leírása Tantargyleiras.doc alapján készítsünk DTD-t, amely alkalmas az MSC-s tárgyak XML formátumban történő leírására.

(Vegyük figyelembe az alábbi lekérdezéseket is!)

- A két tárgyleírást konvertáljuk át olyan jólformált XML-be, amely a fenti DTD szerint érvényes.

- Bővítsük a tárgyakat  tartalmazó táblát egy leiras xml típusú oszloppal és vigyük be ezt a két tárgyat. (sqldeveloperrel vagy jdeveloper database navigatorral)

- Listázzuk ki a tárgyak ajánlott irodalmait.

- Listázzuk ki a tantárgyfelelősőket.

- Módosítsuk az egyik tantárgyfelelős nevét, hogy legyen két egyforma tárgyfelelős.

- Adjuk meg hány kredit tartozik egy tantárgyfelelőshöz összesen.

- Hány darab kötelező irodalom tartozik a tárgyakhoz tárgyanként?

- További feladatokat az órán adok.

 

Erdélyi Viktor megoldása: egy xml típusú táblára vonatkozóan: ora.xml plsql.sql query.sql

 

6. Komplex XML-es feladatok, Xquery

 

Oracle XML doksi: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10492/toc.htm

Vagy letöltve: e10492.pdf

 

FELADAT.

 

A következő oldalon találtok filmekre vonatkozó nagy XML és DTD fájlokat.

http://infolab.stanford.edu/pub/movies/dtd.html

Töltsétek le: main, people, actor, casts.

Tanulmányozzátok át a struktúrákat, mielőtt a feladatokat elkezditek.

 

Hozzatok létre hasonló xml fájlokat vagy használjátok ezeket úgy, hogy a következő kérdésekre ne legyen üres a lekérdezés eredménye.

 

 

  1. Oracle xml típusú oszlopokat tartalmazó táblába kerüljenek be az xml adatok, a dtd-t nem kell beletenni.

 

Válaszoljuk meg SQL-lel a következőket

 

  1. Milyen filmeket rendezett Hitchcock?
  2. Hány film van az adatbázisban?
  3. Hány rendező van az adatbázisban?
  4. Milyen filmeket rendezett Hichcock 1945 előtt?
  5. Kik azok a rendezők, akik szerepeltek filmben?
  6. Kik azok a rendezők, akik saját filmjükben szerepeltek?
  7. Melyik színész játszott a legtöbb Hitchcock filmben?
  8. Melyik filmet rendezte meg Hitchock legalább kétszer?
  9. Mindenki adjon egy közepes nehézségű lekérdezést a szomszédjának, amit 10 percen belül meg kell tudni oldania.
  10. Módosítsuk a filmeket, adjuk hozzá valamelyik kedvenc filmünket. Ha filmparaméterekre vagyunk kíváncsiak, a http://www.imdb.com/ -on megtaláljuk.
  11. Módosítsuk a filmeket, a Sabotage című film évét változtassuk 1937-re.

További feladatok az órán lesznek.

 

           

 

7. XML tömörítés, Xquery, XML állományok táblába konvertálása és vissza.

 

XML compress.ppt

 

Ismétlés:

 

Töltsük be a következő XML állományt egy saját táblába: kolcsonzesek.xml

Fejezzük ki Xpath lekérdezésekkel:

 

  1. Adjuk meg azokat a csomópontokat, amelyeknek nincs attribútuma!
  2. Adjuk meg a 'Szep Holnap' című CD árát!
  3. Adjuk meg azoknak a CD-knek a címeit, amelyeknek ára legalább 3000!
  4. 20%-kal növeljük meg a 'Shrek' DVD árát!
  5. Adjuk meg azoknak a CD-knek az előadóit, amelyeket nem Gipsz Jakab kölcsönzött!
  6. Adjuk meg azoknak a nevét, akik kölcsönöztek Zorán CD-t!
  7. Adjuk meg azok nevét, akik kölcsönöztek könyvet!
  8. Adjuk meg azok nevét, akik kölcsönöztek könyvet vagy CD-t!
  9. Vigyük be saját magunkat kölcsönzőként és kölcsönözzük ki a Zöld kártya, 2000 forintos DVD-t és az Omega Időrabló, 1000 forintos CD-t.
  10. Kik azok, akik 2 könyvet kölcsönöztek?
  11. Kik azok, akik csak 1 féle dolgot kölcsönöztek?

 

XQuery segítségével 

 

1. Összegezzük a kölcsönzött CD-k árát.

Az eredmény sémája Cd ((cím)*, összár) legyen

2. Kik mennyi értékű valamit kölcsönöztek?

            Az eredmény sémája kölcsönzö (összdarab, összár) legyen

3. Jelöljük meg, hogy ki miből kölcsönzött legalább egyet. C,D,K  ( CD,DVD, Könyv)

            Az eredmény kölcsönzőkből álljon, akiknek egy mit attribútuma CDK részhalmaza lehet.

4. Készítsünk relációt kolcson (kolcsonzo, mit,cim,ar) táblát és töltsük fel az XML adataival.

5 A kolcson táblát listázzuk ki XML formában, úgy, hogy a séma (kolcsonzo (mit, (cím, ár)) legyen

 

További feladatokat az órán adok. 

 

 

8. Xml transzformálása XSLT segítségével

 

(Beadandók bemutatása)

 

Egy XML: cdcatalog.xml

Egy XSLT: cdcatalog.xsl

Az XSLT alkalmazása az XML-re: cdcatalog_with_xsl.xml

 

xslt.ppt

 

Az XSLT lehetőségei, sablonok, attribútumok, tengelyek,  ismétlés, rendezés, elemek és attribútumok létrehozása, feltételes feldolgozás, változók, függvények, aggregációk, formázások, másolás, egyebek: Tutorial magyarul: http://www.zvon.org/xxl/XSLTutorial/Output_hun/contents.html

 

A példákat ki lehet gyorsan próbálni az alábbi tutorial Try it Yourself gombjára kattintva és bemásolva az XML és XSLT a két ablakba.

Tutorial angolul: http://www.w3schools.com/xsl/

 

Az XSLT egy programozási nyelv, így akár fraktált is rajzolhatunk vele: http://incrementaldevelopment.com/xsltrick/aufgang/#fractal

További extrém XSLT alkalmazások (nem minden link működik már): http://incrementaldevelopment.com/xsltrick/

 

Az Oracle-ben az XMLTransform() SQL függvény első paraméteres egy XML, a második egy XSLT (mindkettő XMLType típusú) és az eredmény az XSLT alkalmazása az XML-re.

Szintaxis:

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10492/xdb08tra.htm#ADXDB4721

vagy

http://download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/functions229.htm

 

További Oracle XSLT leírás:

http://oreilly.com/catalog/orxmlapp/chapter/ch07.html

(Letöltve: ch07.html )

 

Feladatok (XSLT-vel oldjuk meg, a CD katalógust használva (a stíluslapokat mentsük el)):

 

  1. A CD katalógust listázzuk úgy ki, hogy az énekes, lemezcím és ár jelenjen meg.
  2. Csak az 1990 utáni Cd-k összes adatát listázzuk ki. (Az év fejléc piros legyen, a többi kék.)
  3. Csak az USA lemezek összes adatát listázzuk ki.
  4. Az előző feladat táblázata alatt jelenjen meg, hogy hány darab USA lemez van és mennyi az összáruk.
  5. Írassuk ki a prímszámokat 100-ig.
  6. Tegyük be a CD katalógust és a stíluslapot egy sql tábla sorának egy-egy mezőjébe és  harmadik mezőbe az eredményt.
  7. Készítsünk egy olyan procedúrát, amely egy 3 oszlopos tábla (xml,xsl,result) harmadik oszlopát kitölti úgy, hogy a stílust alkalmazza az xml-re.
  8. A Cd katalógusból készítsünk olyan XML fájlt, amely annyiban más, hogy CD helyett DVD szerepel minden címkében, ahol a CD szerepelt és a Price elem hiányzik.

 

További feladatokat az órán adok.

 

9. XSLT alkalmazása jdeveloperrel, oracle függvényekkel.

 

Ismétlés: Az Employees.xml Products.xml fájlokat XSLT segítségével alakítsuk át úgy, ahogy az alábbi leírásban látható: hw4description.pdf

 

Néhány XML alkalmazás (Web Service, szemantikus web, RDF, ontológiák (OWL)):   lec0301.ppt  NewRDF-1.ppt OntologiesInOWL.ppt

 

XSLT debuggolása jdeveloperrel: http://www.oracle.com/technology/products/jdev/101/viewlets/101/xsltdebug_viewlet_swf.html

 

XML betöltése Oracle táblába (Az XML-t előtte kanonikus formává kell alakítani XSLT-vel átalakítani - ROWSET, ROW. Minden címke csupa nagybetű legyen!): o55xml.html

DBMS_XMLSTORE: http://stanford.edu/dept/itss/docs/oracle/10g/appdev.101/b10790/xdb_dbmstore.htm#CACIDHFI

 

 

Feladatok:

  1. Írjunk Employees.xsl XSLT-t, amely az  Employees.xml fájlt kanonikus formájúvá alakítja.
  2. Készítsünk egy három oszlopos input_xml táblát (inp_xml, inp:xsl, result), amelynek egyik sorában az Employees.xml , Employess.xsl, Employees_kanonikus.xml xmltype értékeket tartalmazza.
  3. Készítsünk egy Employees táblát a megfelelő oszlopokkal és DBMS_XMLSTORE segítségével töltsük fel.
  4. Az input_xml táblában hozzunk létre egy új sort XSLT segtségével, amelynek első oszlopa csak az officer-eket tartalmazza, de 1 évvel idősebbek, a második, harmadik oszlop a kanonikus alakra hozó XSLT, illetve az eredmény.
  5. Ezzel a sorral és DBMS_XMLSTORE segítségével módosítsuk az Employees táblát.
  6. Hozzunk létre egy sort az input:xml táblában, amelynek első oszlopa a 25 éveseket tartalmazza, a második, harmadik oszlop értelme változatlan.
  7. Ezzel a sorral és DBMS_XMLSTORE segítségével töröljük a 25 éveseket Employees táblából.
  8. További feladatokat az órán adok.

 

Rácz Gábor megoldásai:

betoltes.sql

kanonikus alak.txt

xml_oracle2.sql

xslt.txt

 

10. Multimédia adatbázisok, Oracle multimédia típusai és függvényei

 

Orvosi multimédia demo alkalmazás (Oracle Dicom típus alkalmazásával): https://apex.oracle.com/pls/otn/f?p=39561:1

Digital Imaging and COmmunications in Medicine (DICOM): http://hu.wikipedia.org/wiki/Digital_Imaging_and_Communications_in_Medicine

A multimédia alapfogalmai: multimedia\Hintro.ppt multimedia\Hlec2.ppt multimedia\Hlec24.ppt

Oracle multimédia: multimedia\Oracle multimedia.ppt

 

DICOM típus használatára:

 

Oktató anyagok

Ezeket hajtsuk mind végre, de ne a scott/tiger felhasználóval, hanem a saját felhasználó azonosítónkkal.

 

1.      Dicom adatok bevitele, lekérdezése, exportálása: http://www.oracle.com/technology/obe/11gr1_db/datamgmt/dicom/dicom.htm

(Letöltve: dicom.htm dicom.zip) (30 perc)

2.  ORDImage típusú képek kezelése SQL-ben: http://www.oracle.com/technology/products/intermedia/htdocs/intermedia_quickstart/intermedia_quickstart.html

(Letöltve intermedia_qs_image.pdf, quickstart_image.zip )

3. ORDImage típusú képek kezelése  Java kliens osztályok segítségével:

http://www.oracle.com/technology/products/intermedia/htdocs/intermedia_quickstart/intermedia_java_qs.html

(Letöltve intermedia_java_qs.pdf, intermedia_java_qs.zip )

 

Multimédia adatok kezelése jdeveloperrel:

 

Oktató anyagok (3 videó): http://www.oracle.com/technology/products/intermedia/training/index.html

 

1. Multimédia objektumokat tartalmazó tábla elérése (Create a Business Component Model)

2. Képek megjelenítése JSP alkalmazásban (Create an ADF JSP Application for Media Retrieval )

3. Képek feltöltése kliens gépről JSP alkalmazásban (Create an ADF JSP Application for Media Upload )

 

Doksik:

Oracle multimedia Users guide (fogalmak, típusok, függvények): OracleMultimediaDocUserGuide.pdf

Oracle multimedia Reference (metódusok szintaxisa, képfeldolgozási függvények):

Release 1: OracleMultimediaDoc.pdf

            Release 2: OracleMultimediaDoc 2.pdf (HTML-ben: http://oracle.su/docs/11g/appdev.112/e10776/toc.htm )

 

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10777/toc.htm

http://www.oracle.com/technetwork/database/multimedia/overview/multimedia11gr2-featover-128418.pdf

Varga Balázs előadása: szeminarium_110404.ppt

 

Feladatok:

 

  1. Készítsünk egy album (id,pic,result) táblát, ahol a pic és result típusa ORDImage.
  2. Töltsünk le 5 színész fényképét a google képkereső felhasználásával és vigyük be ezeket az albumba.
  3. Kérdezzük le, hogy hány pixelesek a képek (magasság*szélesség).
  4. Hajtsunk végre képfeldolgozási feladatokat, az eredmény a result oszlopba kerüljön:
    1. Az első képet kicsinyítsük le felére
    2. A második képet alakítsuk át szürkeárnyalatossá
    3. A harmadik képet forgassuk el 90 fokkal
    4. A negyedik képből vágjuk ki a bal felső negyedét
    5. Az ötödik képet tükrözzük
  5. Az 5 eredményt exportáljuk ki egy könyvtárba és ellenőrizzük az eredményt
  6. Kérdezzük le a képek metainformációit:
    1. Formátum
    2. Fájlnév
    3. Stb.
  7. Írjunk egy webes alkalmazást, amely ebbe a táblába a gépünkről tud feltölteni képeket.

 

 

 

MÁSODIK BEADANDÓ:

 

-         A megoldások bemutatása az utolsó órán (május 6).

-         CD katalógusok készítése, kezelése:

Készítsük el a következő  táblát

cd_catalogs(catalog_id int, catalog_inf xmltype, catalog_logo ordimage, catalog_small_logo ordimage).

Ezen kívül készítsünk egy problems(problem_id int, query xmltype, result xmltype) táblát,

amiben a 2.,3.,4. feladatok megoldásait jelentő lekérdezéseket és a lekérdezések eredményét tároljuk.

 

1.      Adjunk meg egy sort:

a)      A catalog_id legyen 100.

b)      A catalog_inf legyen a http://www.w3schools.com/XML/cd_catalog.xml xml fájl.

(Letöltve: cd_catalog.xml )

c)      A catalog_logo legyen egy virág képe.

d)      A catalog_small_logo legyen a logo felére kicsinyített, szürkeárnyalatos képe. (Ezt képfeldolgozó procedúrával oldjuk meg.)

2.      XSLT-vel készítsünk html állományt, amely

a)      tetszőlegesen színes fejlécű és

b)      csak az USA lemezek adatait tartalmazza táblázatos formában és

c)      a 10-nél drágább árak pirosak, a többi ár zöld.

3.      XSLT-vel alakítsuk át az xml fájlt úgy, hogy

a)      a COUNTRY elem a CD elem attribútuma legyen és

b)      eszerint az attribútum szerint legyen rendezve a kapott xml fájl.

4.      Xquery-vel adjuk össze az azonos évekhez tartozó árakat és az eredmény formája (év szerint rendezve) a következő legyen (ahol az EHA helyén a saját EHA kódunk áll):

<EHA_RESULT>

     <GROUP>

<YEAR>1987</YEAR>

                 <SUM_PRICES>23.5</SUM_PRICES>

</GROUP>

<GROUP>

<YEAR>1990</YEAR>

                 <SUM_PRICES>20.5</SUM_PRICES>

</GROUP>

stb.

</EHA_RESULT>

5.      A következő 2 feladatból elég egyet megoldani:

Írjunk webes alkalmazást jdeveloperrel, amellyel

a)      vagy fel lehet tölteni a logo fényképét a kliens gépről,

b)      vagy le lehet kérdezni a catalog_id alapján a cd_catalog tartalmát úgy, hogy eredményül jelenítse meg a 2 képet (a többi mezőt nem szükséges megjeleníteni).

 

(Az 5. feladathoz segítség: http://www.oracle.com/technology/products/jdev/tips/muench/jsfordimage/JSFOrdImageExample.zip

(Letöltve: JSFOrdImageExample.zip )

További tippek, trükkök:

http://blogs.oracle.com/smuenchadf/examples/

)

 

 

Osztályzás:

                        2 feladat: kettes (2)

                        3 feladat: közepes (3)

                        4 feladat: jó (4)

                        5 feladat: jeles (5)

 

11. Az XSD XML séma és használata Oracle-ben

 

Ismétlés:

DICOM multimédia típus kezelése

Minta DICOM fájlok innen tölthetők le: http://pubimage.hcuge.ch:8080/

XML alkalmazás: SOA ora_13.pdf (Kovács László összeállítása)

WSDL: http://download-east.oracle.com/docs/cd/B31017_01/core.1013/b28764/web_services002.htm

http://www.oracle.com/technology/obe/obe1013jdev/wstopdown/wstopdown.htm

 

 

Az XSD XML séma és használata Oracle-ben:

 

XML-3.pdf (Tarcsi Ádám összeállítása magyarul)

Xsd példák (oktató anyag): http://www.zvon.org/xxl/XMLSchemaTutorial/Output/series.html

XML Schema Tutorial - Oktató anyag angolul: http://www.w3schools.com/schema/default.asp

 

Oracle XML Schema doksi (letöltve e10492.pdf ) következő fejezetei:

Sémák regisztrálása: http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10492/xdb05sto.htm

Sémák generálása:

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10492/xdb06stt.htm#i1032141

Xml validálása a séma szerint:

http://download.oracle.com/docs/cd/E11882_01/appdev.112/e10492/xdb08tra.htm#g1030361

 

Xsd sémavalidálás jdeveloperrel:

http://www.packtpub.com/article/schema-validation-with-oracle-jdeveloper-xdk-11g

(letöltve: schema-validation-with-oracle-jdeveloper-xdk-11g.htm )

 

Feladatok:

1. A http://pubimage.hcuge.ch:8080/ oldalról töltsünk le egy kis méretű, DICOM fájlokat tartalmazó tömörített állományt. (Például: WRIX.zip (5M), FIVIX.zip (100M) )

2.      Ismétlés: Dicom adatok bevitele, lekérdezése, exportálása: http://www.oracle.com/technology/obe/11gr1_db/datamgmt/dicom/dicom.htm

(Letöltve: dicom.htm dicom.zip) (30 perc)

Doksi: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28416/toc.htm

(Letöltve: b28416.pdf )

 

3. Tervezzünk Oracle adatbázist, amiben tárolni tudjuk a tömörített állományon belüli összes állományt és töltsük fel az adatbázist.

4. Fogalmazzunk meg 5 lekérdezést és alkalmazzuk a DICOM adatbázisunkra.

5. Írjunk jdeveloperrel egy tetszőleges alkalmazást erre az adatbázisra.

6. Az egyik DICOM fájl meta információit tartalmazó XML leírására alkalmazzunk XQuery lekérdezést.

7. Adjuk meg, vagy generáljunk sémát az XML-ből.

8. Oracle függvénnyel ellenőrizzük, hogy tényleg valid-e erre a sémára.

9. Jvedeloperrel is ellenőrizzük, hogy a validációt.

 

12. XML normálformák, funkcionális függőségek

 

Libkin.ppt BP10majus.pdf XMLFD.pdf XMLAQTR.pdf

 

 

 

Hibák és tippek:

 

1.      A webserver nem indul el.

Megoldás 1: Próbáljuk kitörölni a következő fájlt. (A user helyett a saját usernevünk áll.)

C:\Documents and Settings\user\Application Data\JDeveloper\system11.1.1.2.36.55.36\DefaultDomain\servers\DefaultServer\tmp\DefaultServer.lnk

Megoldás 2: jdeveloper újratelepítése

 

2. Nem frissül például egy grafikon adatmódosításkor.

Megoldás: A grafikonhoz tartozó iterátornak van egy Refresh tulajdonsága, azt kell always-re állítani. Ekkor commit után már frissül.

 

 

További segédanyagok:

 

Egy 5. éves diplomamunka XML tranzakció-kezelésből: XMLtranzakcio.pdf

 

Oracle szeminárium előadásai:

http://www.oracle.com/global/hu/events/index.html

 

Gyakorló feladatok, példák:

XSLT http://www.zvon.org/xxl/XSLTutorial/Output_hun/contents.html
http://www.zvon.org/o_html/group_xsl.html

XML:   http://www.zvon.org/xxl/XMLTutorial/General_hun/contents.html
Névtér: http://www.zvon.org/xxl/NamespaceTutorial/Output_hun/contents.html
Xpath:  http://www.zvon.org/xxl/XPathTutorial/General/examples.html
DTD:   http://www.zvon.org/xxl/DTDTutorial/General_hun/book.html