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

 

Hirdetés (módosítva 2010. június 22.):

  1. XML verseny: http://support.aastra.fr/XMLcontest/index.php

    (Telefonra kell XML-es alkalmazást fejleszteni 2010. október 30-ig. A verseny kihirdetése 2010. április 15-én volt.)

  1. Kooperatív képzésre lehet jelentkezni az év közben bármikor az alábbi

Adatbázis-kezelési témákra

a kiss@inf.elte.hu címemre küldött önéletrajzzal.

  1. Az Információs Rendszerek Tanszék kutatás-fejlesztésre keres 3-4 olyan hallgatót:

A jelentkezők kapnak egy-egy részterületet, és abban kellene elmerülni, hogy szakértői legyenek a témakörnek.

Jelentkezni lehet a kiss@inf.elte.hu címemre küldött önéletrajzzal.

  1. A PostgreSQL (http://www.postgresql.org/) egy nyílt, ingyenes adatbázis-kezelő. C-ben lehet hiányzó funkciókat fejleszteni hozzá. A fejlesztésre váró feladatok listája: http://wiki.postgresql.org/wiki/Todo Például XML-lel kapcsolatban is van két tucat megoldásra váró feladat. Nézzétek meg és akinek megtetszik valamelyik feladat, akkor a feladat nehézségétől függően diplomamunkát is lehet belőle készíteni.
  2. További ajánlott tárgyak:

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

2.      Web-technológiák információs rendszerekben 2+2 tavaszi félév

A tárgyak leírása: Integralt keretrendszerek (SAP).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

 

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

3.      Beadandó feladat

4.      Beadandó feladat

Vizsga (írásbeli):

 

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

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

oktatoanyag@gmail.com címemre.

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

 

A jegy az oktató anyagra adott jegy, és a két kérdés kifejtésére adott jegyek, azaz összesen három jegy felfelé kerekített átlaga lesz.

 

Vizsganapok:

2010. június   1. kedd 10-11.30, 00-623

2010. június   8. kedd 10-11.30, 00-623

2010. június 15. kedd 10-11.30, 00-623

2010. június 22. kedd 10-11.30 (csak UV), 00-623

Oktatóanyag:

Jdeveloperrel egy webes alkalmazást kell készíteni, amely segítségével egy hallgato(eha,nev,atlag) táblába lehessen felvinni új sort és lehessen keresni benne EHA kód alapján.

 

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.
  6. Mutassa be részletesen, példákon keresztül a multimédia rendszerek feladatait, típusainak jellemzőit.
  7. Mutassa be részletesen, példákon keresztül az XML indexelési technikáit
  8. Mutassa be részletesen, példákon keresztül az XML tömörítési technikáit.

 

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

 

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 réteg tervezése és implementálása az EJB 3.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.

 

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 )

 

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