1. Dolgozza ki az alábbi Autókereskedés teszteseteket: a. Autók listája, ahol a vevő meghatározza a márkát és a hengerűrtartalmat. Kimutatásminta: Autók listája <Opel>, <1400 cm 3 > Rendszám Űrtartalom Típus Szín Évjárat Üzemmód EAP-231 1398 Astra Fehér 2001 Benzin FGD-112 1401 Corsa Zöld 2003 Benzin HIW-182 1405 Vectra Metál ezüst 2004 Diesel Rendszám szerint növekvő sorrendben. Minden autó i. rendszáma, ii. hengerűrtartalma (tényleges) iii. típusa, iv. színe, v. évjárata, vi. üzemmódja, ahol az autó márkája = megadott márka és hengerűrtartalom beleesik az autó hengerűrtartalma ± 10% intervallumban. Paraméter: márka, hengerűrtartalom b. Vevők listája, akik ebben az évben autót vásároltak. Kimutatásminta Vevők listája Év: 2006 Név Kiss Lajos 53462 Nagy Imre 76456 Pál Péter 24354 Vörös Beáta 65436 Vevő azonosítója Vevőnév növekvő sorrendben. Minden vevő, - neve, - azonosítója, akihez létezik értékesítés, ahol dátum = <megadott év> Paraméter: aktuális év Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 1
c. Értékesítések listája, ahol az eladási ár kisebb volt, mint az irányár (alkudtak). Lealkudott értékesítések listája Értékesítés azonosítója Rendszám Irányár Eladási ár 3456 ABC-543 2,500,000 2,250,000 5342 DEF-765 3,500,000 3,125,000 7654 JHK-543 5,200,000 Értékesítések növekvő sorrendben. Minden értékesítés - azonosítója, - az autó rendszáma, - az autó irányára, - eladási ár, ahol értékesítés eladási ára < az értékesítéshez tartozó autó irányára d. Értékesítők, akik nem adtak el autót a múlt hónapban. Értékesítők listája, akik nem adtak el autót az <aktuális hónap 1> hónapban Név Barát Lajos 32 Cifra Imre 12 Holló Péter 31 Kő Zita 18 Azonosítója Értékesítők név szerinti növekvő sorrendben, akiknél nincs hozzájuk tartozó értékesítés, ahol értékesítés dátumának hónapja = aktuális hónap -1 Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 2
2. Készítse el az alábbi háziorvosi adatbázis modell-ábráját! 1. ábra Kórház megoldás Az általános modell tulajdonképpen az Ügyfél Ügyfélfogadás Ügyintéző rendszer (Beteg Rendelés Orvos). Egy ügyfél több ügyintézőhöz is járhat, és egy ügyintéző több ügyfél ügyeit is intézi. Esetünkben egy beteg több orvoshoz is járhat, egy orvos pedig több beteget is kezel. Az orvos és a beteg közötti kapcsolatot a saját nem csak a beteg és orvos azonosítóit tartalmazó attribútumokkal is rendelkező Rendelés egyed valósítja meg (mint a valóságban is). Ennek módosított változata a Beteg Kezelés Orvos viszony. A Betegség kiegészítő egyed, melynek segítségével több információt kaphatunk az egyes betegségekről. A kapcsolat, ellentétben a korábbi autókereskedés Autó egyedének példájával, itt egy-több, mivel a Betegség nem egy konkrét, mindenki számára egyedi előfordulást jelöl (pl. influenza -> több ember). Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 3
3. Készítse el az alábbi könyvtári adatbázis modell-ábráját!: 2. ábra Könyvtár megoldás Az alapmodell az előző feladathoz hasonló; az olvasó és a könyv között a kapcsolatot a kölcsönzés realizálja, egy olvasó többször is kölcsönözhet, és egy könyvet is több kikölcsönözhetnek. A kölcsönzés mint minden hasonló modellben az olvasók és a könyvek közti több több kapcsolatot bontja fel két, egy több kapcsolatra. A szerzők és a könyvek között ilyen, a feladatban saját okán megjelenő, felbontó kapcsolategyed nincs: egy szerző több könyvet is írhat, és egy könyvnek is lehet több szerzője. Később, amikor relációs adatbázist használunk a modellek megvalósítására, látni fogjuk, hogy abban a modellben nem tudjuk a több több kapcsolatot megoldani: ilyenkor technikai megoldás kapcsolótábla közbeiktatásával, mesterségesen kell majd ezt felbontani, két egy több típusú kapcsolatra. Ez hasonlóan az Autókereskedés Autó egyedénél ott bemutatott pontatlansági gondjára rámutat majd itt is a Könyv egyed hasonló problémájára. 3. ábra A "pontatlan" modell Az SZ_K egyed feladata az lenne, hogy a szerzőket a könyvekhez kapcsolja (vagy fordítva, ez most mindegy). A szerzői oldalon nincs is gond, de a könyveknél világosan jelentkezik a probléma: mivel nem különböztettük meg a Könyv egyedtípust a könyvek konkrét előfordulásaitól (emlékezzünk: az egyed fogalma alatt ezek könnyen összemoshatók), Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 4
nyilvántartásunkban most minden könyvpéldányt egyenként hozzá kell rendelnünk a szerzőhöz (mert leltári számonként jegyezzük be a szerzőket). Ha a modellt pontosan készítjük el, 4. ábra Pontosítás akkor elválik egymástól a könyv, mint fogalom (melyhez a szerző, a cím, a tartalom, stb. kapcsolódik), és a konkrét példány, amely ugyanabból a könyvből több is lehet, és amelyeket ténylegesen kölcsönzünk. A feladat végleges megoldása tehát például így nézne ki (kiegészítve a szükséges további egyedekkel és tulajdonságokkal): 5. ábra A pontos megoldás Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 5
Ebben a modellben a szerzők-könyvek nyilvántartásában már nem jelentkezik a többszörös tárolás problémája, és világosan látszik a könyv-nyilvántartás, a példányok készletezése és a kölcsönzés részfeladatok megoldása. Végül felhívjuk az olvasó figyelmét arra, hogy a több-több kapcsolatok alapos vizsgálata nem csak a relációs adatbázis alapú megvalósításnál ajánlatos: az elemzés feltárhat újabb, rejtőző egyedtípusokat, és alapvető módosításokat eredményezhet a megoldás szemléletében, filozófiájában is. Készítette: SZÁMALK Zrt, Szakképzési Igazgatóság 6