VI.
Témakör (AB-szakirányon): UDT
és XML
UDT (10.gyak)
>> 6.1.
Objektumrelációs
lekérdezések és a 8HF+
XML (11-12.gyak)
>> 6.2.
Oracle 10.2g XPath alapismeretek és a 9HF+
>> 6.3.
További XPath feladatok (papíron)
>> 6.4. Oracle 10.2g
XQuery
alapismeretek és a 10HF+
_____________________________________________________
10. gyak. (2008.XI.18/20)
UDT
>> UDT
adattípusok az Oracle-ben (Nikovits Tibor EA
alapján)
>> 6.1.
Objektumrelációs
lekérdezések (feladatok) és
a 8HF+
6.1.
Objektumrelációs
lekérdezések
Feladatok - Nikovits Tibor
Információkezelés gyakorlatai
alapján
Ajánlott irodalom:
>> Ullman-Widom: Adatbázisrendszerek.
Alapvetés, Panem, 2008.
Második,
átdolgozott kiadás (megjelent: 2008. november.
ÚJ!!!)
10. fejezet
Objektumrelációs
modell, felhasználó által
definiált
típusok
Segédanyagok:
>> Nikovits Tibor EA: UDT.txt
>> Oracle Object-Relational Features
10g (10.2) HTML
PDF
>> Object-Relational Features of Oracle by ..stanford.edu/~ullman..
Feladatok:
>> Objektumok (OBJECT) 1-3. és 6-7. feladatok
>> Dinamikus tömbök (VARRAY) 4-5.
feladatok
>> Beágyazott táblák
(NESTED TABLE) 8.feladat (8HF+)
A példa adatbázis
tábláiból: hr.countries,
hr.employees, oe.customers, oe.jobs
A táblák
összekapcsolásának
felderítésében segítenek a
definiált
idegen kulcsok.
61_udt_1
-- Adjuk meg, hogy hány
különböző
országból vannak vevőink (oe.customers).
61_udt_2
-- Adjuk meg, hogy melyik
országból hány
vevőnk van. (oe.customers, hr.countries)
Az olyan ország is
szerepeljen (ha van), amelyik nincs benne
a hr.countries táblában.
(Ország_azon,
Országnév,
VevőkSzáma)
61_udt_3
-- Adjuk meg azoknak a dolgozóknak a
nevét
és foglalkozását, akik vevőkkel
foglalkoznak,
valamint azt, hogy hány
különböző
országbeli vevővel foglalkoznak.
(Név,
Foglalkozás,
OrszágokSzáma)
61_udt_4
-- Adjuk meg a Burt Spielberg nevű vevőnek a
telefonszámait
(külön sorokban).
61_udt_5
-- Adjuk meg azoknak a német vevőknek a
nevét,
akiknek legalább 2 telefonszámuk van.
61_udt_6
-- Adjuk meg azoknak az amerikai
városoknak a neveit, amelyek
az
északi szélesség
42. és 43.
foka valamint a nyugati hosszúság 82.
és
85. foka között helyezkednek el.
lásd ->
oe.customers.cust_geo_location
tárolja a vevő
városának földi
elhelyezkedését.
Az x és y
attribútumokban van a
földrajzi
hosszúság (-180 - 180, a negatív
számok
Greenwich-től nyugatra) illetve
szélesség (-90 - 90, a negatív
számok az egyenlítőtől délre).
61_udt_7
-- Adjuk meg a nikovits.sokszogek tábla
adatai alapján az egyes sokszögek
kerületét
vagyis oldalainak
összhosszát. (Név, Kerület)
Minden szükséges
információt, típusokat,
metódusokat a katalógusból
nézzetek meg.
8HF+
Házi
feladat (beadandó
+pontért). Beküldése,
lásd
Beadandók
beküldése
-- Hozzunk létre egy T
táblát az OE.ORDERS, OE.CUSTOMERS
táblák adatai alapján
a
következőképpen. A T táblában
legyen benne a vevo neve (first name
+ last name),
címe (cust_address),
telefonszámai
(VARRAY oszlopként), valamint az általa feladott
rendelések adatai
(beágyazott
táblaként). A rendelések
információi
közül
elég az
azonosítót, dátumot
és
összértéket (order_id, order_date,
order_total) tárolni.
-- Töltsük is fel adatokkal a T
táblát a fenti
két táblából.
Az
összes vevő
összes
rendelésével kerüljön
bele a táblába.
-- Majd adjuk meg a T táblát
lekérdezve
azon vevők
nevét és összes rendeléseik
összértékét,
akik címének
városa Detriot vagy
Indianapilis.
-- Ellenőrzésképpen adjuk meg
ugyanezt a
lekérdezést az eredeti két
táblára
megfogalmazva.
_____________________________________________________
11. gyak. (2008.XI.25/27)
XML
>> 6.2.
Oracle 10.2g XPath alapismeretek
>> 6.3.
További XPath feladatok (papíron)
>> 6.4. Oracle 10.2g
XQuery
alapismeretek
6.2.
Oracle 10.2g XPath alapismeretek
Ajánlott irodalom:
>> Ullman-Widom: Adatbázisrendszerek.
Alapvetés, Panem, 2008.
Második,
átdolgozott kiadás (megjelent: 2008.
november. ÚJ!!!)
-- 11. fejezet A
félig-struktúrált adatmodell. XML.
-- 12. fejezet
Programozási nyelvek az XML-hez. XPath. XQuery.
>> Oracle
XML DB Developer's Guide10g (10.2) HTML
PDF
(ez
például 852 oldalas doksi,
781-800.o.>> B Appendix XPath)
>> W3C ajánlás XML: http://www.w3.org/XML/
XPath 2.0: http://www.w3.org/TR/xpath20/
XQuery & XPath Data Model: http://www.w3.org/TR/xpath-datamodel/
>> W3Schools XML Tutorial: W3Schools
Tutorial XML Tutorial
XPath Tutorial:
XPath
Tutorial XQuery
Tutorial: XQuery
Tutorial
Segédanyagok: Nikovits
Tibor összefoglalói és kidolgozott
példái
>> XML dokumentum, XMLTYPE, adatok
lekérdezése: xml_alapok.txt
>> A példák alapjául
szolgáló XML dokumentum itt: xml_dok_pelda.txt
>> XPath nyelv, lokációs
lépések, XPath kifejezések: xpath_alapok.txt
Feladatok:
-- XPath kifejezések
építőköveinek bemutatása: xpath
examples (www.zvon.org)
-- XPath példák (feladatok
megoldásokkal) xpath_feladatok.txt
A példák
alapjául szolgáló XML dokumentum itt
található: xml_dok_pelda.txt
(Ezt nyomtassátok ki, mert
fontos a csomópontok nevében a kis/nagybetű!)
-- 1.) Adjuk meg a teljes dokumentumot
-- 2.) Adjuk meg az összes csúcsot (az összes
létező részfát)
-- 3.) Adjuk meg az összes második csúcsot
(az összes létező részfák 2.
csúcsait)
-- 4.) Adjuk meg az első kölcsönző nevét.
-- 5.) Adjuk meg azokat a csomópontokat, amelyeknek van 'ar'
attribútuma
-- 6.) Adjuk meg a DVD csomópontok szöveges
tartalmát nyitó és
záró tagek nélkül
-- 7.) Adjuk meg az összes előadót
-- 8.) Adjuk meg a 2600-nál olcsóbb vagy
3800-nál drágább DVD-ket
-- 9.) Adjuk meg azokat a csomópontokat, amelyeknek van 'eloado'
vagy 'szerzo' attributuma
-- 10.) Adjuk meg azokat a csomópontokat, amelyeknek van 'cim'
és 'szerzo' attributuma
-- 11.) Adjuk meg azokat a csomópontokat, amelyeknek nincs
attribútuma
-- 12.) Adjuk meg a Shrek DVD csomópontját
-- 13.) Adjuk meg a 'Szep Holnap' című CD
árát
-- 14.) Adjuk meg azoknak a CD-knek a címeit, amelyeknek
ára legalább 3000
-- 15.) Adjuk meg a 'Shrek' DVD árát
-- 16.) Adjuk meg a Gipsz Jakab által
kölcsönzött konyvek szerzőit
-- 17.) Adjuk meg azoknak a CD-knek az előadóit, amelyeket nem
Gipsz Jakab kölcsönzött
-- 18.) Adjuk meg azoknak a nevét, akik
kölcsönöztek Zorán CD-t
-- 19.) Adjuk meg azok nevét, akik
kölcsönöztek könyvet
-- 20.) Adjuk meg azok nevét, akik
kölcsönöztek könyvet vagy CD-t
-- 21.) Adjuk meg a Gipsz Jakab utáni
kölcsönzők nevét
-- 22.) Adjuk meg a Gipsz Jakab utáni kölcsönző
nevét
-- 23.) Adjuk meg az utolsó kölcsönző
nevét
-- 24.) Kik azok, akik 2 könyvet
kölcsönöztek
-- 25.) Kik azok, akik csak 1 féle dolgot
kölcsönöztek
-- 26.) Mely csomópontok nevében van 'r' betű?
-- 27.) Mely csomópontnevek hossza 2?
9HF+
Házi
feladat (beadandó
+pontért). Beküldése,
lásd
Beadandók
beküldése
-- 1.) Adjuk meg azoknak a CD-knek a címeit, amelyek
előadójának neve 'Z' betűvel kezdődik.
-- 2.) Adjuk meg a CD-t is kölcsönző
kölcsönzők közül az
utolsónak a nevét.
-- 3.) Adjuk meg az utolsó kölcsönző
nevét, feltéve, hogy ő
kölcsönzött CD-t.
(Ha nem kölcsönzött,
akkor üres eredmény)
-- 4.) Adjuk meg azok nevét, akikre igaz, hogy az
általuk
kölcsönzött CD-k árainak
összege
több mint 3000.
-- 5.) Adjuk meg azok nevét, akikre igaz, hogy az
általuk
kölcsönzött összes dolog
árainak összege
kevesebb mint 8000.
-- 6.) Adjuk meg azok nevét, akikre igaz, hogy az
általuk
kölcsönzött CD-k
átlagára több mint
2600.
_____________________________________________________
13. gyak. (2008.XII.02/04)
- XML - XQuery
6.3.
További XPath feladatok (papíron)
Segédanyagok: Nikovits
Tibor összefoglalói és kidolgozott
példái
>> XML dokumentum, XMLTYPE, adatok
lekérdezése: xml_alapok.txt
>> A példák alapjául
szolgáló XML dokumentum itt: xml_dok_pelda.txt
>> XPath nyelv, lokációs
lépések, XPath kifejezések: xpath_alapok.txt
Feladatok:
>> Adott egy XML dokumentum xml_dok_pelda.txt
(kolcsonzes tábla azon=1 sorában).
(Ezt nyomtassátok ki a ZH-ra, mert
fontos a csomópontok nevében a kis/nagybetű!)
>> Adjuk meg papíron, hogy az
alábbi XPath kifejezések milyen
eredményt szolgáltatnak.
--
'descendant-or-self::Kolcsonzo[self::*/descendant::CD/@eloado="Zoran"]/@nev'
-- '//Kolcsonzo[.//CD/@eloado="Zoran"]/@nev'
-- '//Kolcsonzo[//CD/@eloado="Zoran"]/@nev'
-- '//CD[@eloado="Zoran"]/ancestor::*/@nev'
-- '//Kolcsonzo[@nev="Gipsz Jakab"]/following-sibling::*[1]/@nev'
6.4.
Oracle 10.2g XQuery alapismeretek
Ajánlott irodalom:
>> Ullman-Widom: Adatbázisrendszerek.
Alapvetés, Panem, 2008.
Második,
átdolgozott kiadás (megjelent: 2008.
november. ÚJ!!!)
-- 11. fejezet A
félig-struktúrált adatmodell. XML.
-- 12. fejezet
Programozási nyelvek az XML-hez. XPath. XQuery.
>> Oracle
XML DB Developer's Guide10g (10.2) HTML
PDF
(ez
például 852 oldalas doksi,
781-800.o.>> B Appendix XPath)
>> W3C ajánlás XML: http://www.w3.org/XML/
XPath 2.0: http://www.w3.org/TR/xpath20/
XQuery & XPath Data Model: http://www.w3.org/TR/xpath-datamodel/
>> W3Schools XML Tutorial: W3Schools
Tutorial XML Tutorial
XPath Tutorial:
XPath
Tutorial XQuery
Tutorial: XQuery
Tutorial
Segédanyagok: Nikovits
Tibor összefoglalói és kidolgozott
példái
>> A példák alapjául
szolgáló XML dokumentum itt: xml_dok_pelda.txt
>> XQuery, FLWOR kifejezés: xquery_alapok.txt
Feladatok:
-- 1.) Igaz-e, hogy minden Kolcsonzo
kölcsönzött DVD-t?
-- 2.) Hány kölcsönző van?
Valójában a neveiket számoljuk meg.
-- 3.) Adjuk meg a kölcsönzők nevét
és az
általuk kölcsönzött CD-k
árának
összegét!
(XML formátumban)
10HF+
Házi
feladat (beadandó
+pontért). Beküldése,
lásd
Beadandók
beküldése
-- 1.) Mely CD-ket kölcsönözte ki Kis Virag?
-- 2.) Igaz-e, hogy minden kölcsönző
kölcsönzött CD-t? (az eredmény
igen vagy nem legyen)
-- 3.) Mennyi a kölcsönzött DVD-k
árának
összege? (string nélkül
csúnyán
írja ki)
-- 4.) Mennyi a legolcsóbb CD ára?
-- 5.) Adjuk meg az alábbi formában, hogy ki hány darab dolgot kölcsönzött.
OSZLOP
----------------------------------------
<Kolcsonzo nev="Gipsz Jakab" darab="4"/>
<Kolcsonzo nev="Kis Virag" darab="3"/>
<Kolcsonzo nev="Nagy Pal" darab="1"/>
-- 6.) Adjuk meg az alábbi formában, hogy ki milyen
összértékű dolgokat kölcsönzött.
OSZLOP
-------------------------------------------
<Kolcsonzo nev="Gipsz Jakab" össz="11500"/>
<Kolcsonzo nev="Kis Virag" össz="8700"/>
<Kolcsonzo nev="Nagy Pal" össz="2500"/>