VII. Témakör: Objektumrelációs adatbázisok

Ez az oldal szerkesztés alatt, ahogyan haladunk,  aktualizálom.
Az oldal behívása után kérem frissítse azt! (Reload szükséges!)

_______________________________________________________
1-2. gyak. (II.13-20)
 - Modellezés. E/K, UML, EER modell

>> Mintapéldák
>> Beadandó feladatötletek

Tankönyv, 4.fejezet Magas szintű adatbázismodellek
1.gyak. E/K modell és leképezése relációs modellre, Tk. 133-181.o.
2.gyak. UML modell és leképezése obj.relációs modellre, Tk. 181-195.o.

Mintapéldák:
7.1.példa : HR-OE séma >>  hasonló lásd KissA_EA_slide E/K modell
     
7.2.példa:  Tanulmányi osztály >> lásd Órai mintadatbázissémák

7.3.példa: Orvosi adatbázist készítünk. Minden embernél számontartjuk a nevét,
      korát, TAJ számát. Ezen utóbbi alapján egyértelműen azonosítani lehet bárkit.
     Az orvosoknál tároljuk ezeken kívül még a tudományos fokozatukat és
     a szakterületüket, a körzeti orvosoknál még annak a városnak a nevét is,
     ahol rendelnek, a pácienseknél pedig a foglalkozásukat.
     A betegségeknél számontartjuk a nevüket és azt, hogy átlagosan mennyi ideig
     tart a gyógyulási folyamat. Minden betegséget valamilyen bacilustörzs okoz.
     Ezek a nevük alapján egyértelműek, emellett tároljuk az elterjedtségük arányát.
     A törzsekhez bacilusok tartoznak, ám a név alapján még nem tudhatjuk pontosan
     melyik bacilusról van szó, mert több törzshöz is tartozhat ugyanolyan nevű bacilus.
     A különféle betegségekben szenvedő pácienseknek lehet, hogy egyszerre több
     orvos írja majd fel a különféle árú gyógyszereket. A gyógyszereknél tároljuk a
     nevüket, és hogy mely bacilusok esetében hatásosak. Minden páciensnek
     tartoznia kell egy körzeti orvoshoz, és valaki csak úgy lehet körzeti orvos,
     ha legalább húsz páciense van. E/K modellt >> lásd KósaB_EA_slide

7.4.példa: Tankönyv példái. A középkor nagy kalóztámadásairól szeretnénk adatbázist
     készíteni. A csatákban kalóz- és szállítóhajók illetve katonai hajók vettek részt.
     Minden hajónál számontartjuk annak nevét, típusát és súlyát. A katonai hajóknál
     feljegyezzük még ezen kívül az ágyúk számát, a szállítóhajóknál pedig megadjuk
     a rakományuk jellemzőit, azaz a rakomány értékét, mennyiségét, származási helyét
     és azonosítóját. Egy szállítóhajónak mindig van rakománya. Egy-egy csatában
     legalább 5 hajó vett részt. Egy katonai hajó legalább háromszor, egy kalózhajó
     legalább kétszer csatázott. Minden csatánál számontartjuk még a nevét, dátumát,
     helyszínét, a győztes ország nevét és az elsüllyedt hajók neveit. Minden hajóhoz
     legalább tíz fős legénység tartozott: legalább kilenc matróz és pontosan egy kapitány.
    A legénység minden tagjánál számontartjuk a nevét és a szolgálati idejét.

Beadandó feladatötletek (szabadon választható és szabadon változtatható!)
-- Több lépcsős feladat (a kapott pontok az 1zh pontjaihoz számítanak),
1-2.gyak. E/K modell és leképezése relációs modellre, Tk. 4.1-4.6.fej., 133-181.o.
2-3.gyak.UML modell és leképezése obj.relációs modellre, Tk. 4.7-4.8.fej.181-195.o
3-5.gyak. Megvalósítása az Oracle obj.relációs adatb.kezelővel, Tk. 10.3-10.5.fej.

A feladatok kiosztása >> lásd cIRF.pdf

1.) Betegkezeléshez tervezzen adatbázist.
     Kórházak nyilvántartása (központi betegátirányítás, hol van szabad hely).

2.) Folyóvizeink szennyeződését szeretnénk nyomon követni.
     Az egyes folyók honnan-hová (nagyobb települések) folynak, mikor-hol történt
     szennyeződés és milyen fajta (pl. cián, ill. többféle veszélyes anyagra nézve), és
     a szennyeződés mértékére a mérhető adatok (pl. mennyi hal pusztult el, stb.)
     nyilvántartásához tervezzen adatbázist.

3.) Időjárás- és árvíz előrejelzéshez tervezzen adatbázis.
     Állomásonként a mérőműszerek helye, pontossága. A mért napi ill. óránként
     adatok nyilvántartása az elemzésekhez és előrejelzéshez.

4.) Zenei cd-ket árusító szaküzletek, internetes on-line cd-boltok nyilvántarásához
     tervezzen adatbázist. Legfrissebb számok, lemezajánlók, akciók, stb.

5.) A BKV járműveiről adatbázist készítünk. Egy jármű lehet villamos, busz, metró,
     trolibusz vagy hév. Minden járműnél számon tartjuk annak azonosítóját, menetidejét,
     megálló helyeit, emellett hogy milyen átszállási lehetőségeink vannak az egyes
     megállóhelyeken. A járművek az azonosító alapján egyértelműek. 

6.) Utazási iroda szállásfoglalások, programok.
     Utazási szokásokról készülő felméréshez gyűjtünk adatokat, például egyedül utazik
     vagy családdal, üzleti vagy üdülési célból, a kora (fiatal, középkorú vagy idősebb),
     a neme (nő vagy férfi), mivel utazik, mennyi időre, belföldi-külföldi utak, köt-e
     biztosítást, hogyan tervezi az utazást (utazási irodán vagy interneten, telefonon
     keresztül intézi a foglalásokat), milyen szállás (hotel, sátor, stb).

7.) Egy számítástechnikai termékeket árusító bolt nyilvántartása.
     A boltban kapható alkatrészekről (alaplap, processzor, memória, stb.), illetve ezek
     jellemzőiről valamint a raktárkészletről nyilvántartás.

8.) ELTE Egyetemi élet felméréséhez (pl. sport és kultúrális események) tervezzen
     adatbázist, vegyük például a Kortárs Segítő Csoport (hallgatói csoportosulás)
     szolgáltatásainak nyilvántartását, a csoport által kínált szolgáltatások
     http://www.kortars.elte.hu/ajanlas oldalon találhatók. 

9.) Nemzetközi karácsonyi szokások felméréséhez gyűjtünk adatokat, nemzetiség,
     lakhely, kor (fiatal, középkorú, v. idősebb), az ajándékozottak köre (kiknek),
     hol vásárol (nagybolt, karácsonyi vásár, speciális boltok), milyen karácsonyi
     üdvözletet küld (képeslap, csomag, email), hol étkeznek karácsonykor, stb,
     tipikus nemzeti ünnepi ételek-italok listája, stb., szabadon változtathat a tervezési feladaton.

10.) A kötelező gépjármű-felelősségbiztosítások összehasonlításához gyűjtünk adatokat,
     például melyik biztosítónál kötheti meg, mennyi időre, milyen járműre - milyen díjjal,
     milyen díjengedmények, bónuszosztály, milyen egyéb kedvezményes szolgáltatásokat
     nyújtanak, valamint milyen a kárkifizetés, káresetkor milyen pótdíjak vannak, stb.

11.) Adatbázis könyvkiadáshoz. A kiadók, alkalmazottak, könyvek szerzők adatai.

12.) A triatlon egyes sportjain (azaz úszás, biciklizés, futás) induló sportolók adatainak
     nyilvántartása, az egyes versenyeken való részvétele illetve a teljesítés eredményei.

13.) Számítógépes szerepjátékok account kezelő rendszere. Az accountok tartalmazhatnak
    karaktereket. A karakterek felszerelést hordanak, ami védelmi vagy támadó tárgyakból áll.
    Minden karakter egyszerre csak egy Területen tartózkodhat (Régióban). Léteznek továbbá
    generált karakterek, ami nem tartozik egy accounthoz sem, de ezek is felszerelést hordanak
    és lehetnek barátságosak vagy ellenségesek, és ezek is egy területen tartózkodnak.

14.) Az angol rögbiliga, a Guiness Premiership felépítése. Csapatok, játékosok, edzők,
    az utóbbi kettőt lehet például ember osztályból származtatni(azegy), mely játékosok
    hol játszanak(kié), posztjuk, születési dátum(objektum), súlyuk, magasságuk, melyik
    csapatnak ki az edzője, a mezszíne(i), játékosok számát, alapítás éve, stadion neve, stb.

15.) Kocsma-nyilvántartás. Egy weboldalon vedéglátóipari egységeket (kocsmákat, büféket,
    éttermeket, szórakozó helyeket) tartunk nyilván. A regisztrált felhasználók értékelhetik
    az egyes kocsmákat 1-10es skálán és véleményt írhatnak róluk.

16.) Szabadon választott feladatok rövid leírása, stb... folyt.köv.... stb...

_______________________________________________________

3-4. gyak. (II.27-III.5)  - Objektumrelációs alapok.

Objektumrelációs lekérdezések

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

udt_1
-- Adjuk meg, hogy hány különböző országból vannak vevőink (oe.customers).

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)

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)

udt_4
-- Adjuk meg a Burt Spielberg nevű vevőnek a telefonszámait (külön sorokban).

udt_5
-- Adjuk meg azoknak a német vevőknek a nevét, akiknek legalább 2 telefonszámuk van.

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

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.

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

Példák és feladatok:
>> Objektumrelációs alapok: absztrakt adattípusok   (jelszóval nyitható)
>> Kollektorok: dinamikus tömbök és beágyazott táblák  (jelszóval nyitható)

Segédanyagok:
>> Oracle Large Objects 10g (10.2)    HTML     PDF

Példák és feladatok:
>> LOB adatok (Large Object)    (jelszóval nyitható)

_______________________________________________________
5. gyak. (III.12)  - SQL3 rekurzió

folyt.köv.

_______________________________________________________