A valóság modellezésének eszközei, az ODL és E/K modellek, valamint ezek átírása relációkká.
Valóság modellezése: A tervnek pontosan meg kell felelni a specifikációnak. Azaz, az osztályoknak v. egyedhalmazoknak és attribútumaiknak tükrözniük kell a valóságot. Akármilyen összefüggések jönnek létre, azoknak értelmeseknek kell lenni az alapján, amit ismerünk a valós világ modellezendő részéről. Pl.: Ha definiálunk egy szerepelBenne kapcsolatot a Színész és a Fi1m között, annak sok-sok kapcsolatnak kell lennie. A valós világban megfigyelhetjük, hogy színészek több filmben is szerepelhetnek és a filmekben 1nél több színész is szerepelhet. Nem lenne korrekt a szerepelBenne kapcsolatot sok-1 v. 1-1 kapcsolatnak definiálni.
1. ODL modell:
Ez 1 szabvány, amely segítségével adatbázisok struktúráját specifikálhatjuk objektumorientált terminológiával. Célja, hogy támogassa az adatbázisok objektumorientált tervezését, és utána ennek a tervnek a közvetlen transzformálását objektumorientált adatbáziskezelő r.sz-ek deklarációiba. Az ilyen r.sz-ekben az elsődleges nyelv rendszerint a C++ v. a Smalltalk, így az ODL-t ezen nyelvek egyikének deklarációira kell transzformálni.
Objektumorientált tervezés: 1 objektumorientált terv a valós világot modellezi objektumok segítségével, melyek valamilyenfajta észlelhető egyedek. Az objektumoknak van 1 egyértelmű objektumazonosítójuk (OID), ami megkülönbözteti őket más objektumoktól.
Sémák és adatok: Az ODL 1 nyelv, amellyel séma-, ill. adatbázis-struktúra specifikálható. Az ODL nem ad lehetőséget az adatbázis aktuális tartalmának megadására, sem a lekérdezésekre, sem pedig az adatok manipulálására. A sémát specifikáló nyelveket, mint az ODL-t, gyakran hívják adatdefiníciós nyelveknek, míg azokat a nyelveket, amelyek segítségével megadhatjuk az adatbázis tartalmát, vagy lekérdezhetünk, vagy pedig módosíthatjuk az adatokat, adatmanipulációs nyelveknek nevezzük.
Definiálás:
Interface Film {
Attribute string cím;
Attribute integer év;
Attribute integer hossz;
Attribute enum szalag {színes, fekete-fehér} szalagfajta;
}
Inverse Film :: szereplők
Elhagyva a set-et csak 1 objektumot kapcsolunk. Az ODL megköveteli a kapcsolatok névvel ellátott inverzét.
Típusok:
- Atomi: integer, float, charakter, string, boolean, enum
- Interfész: struktúrát reprezentálnak.
- Halmaz: Set<T> -- T típusú elemek véges halmaza (rendezettlen, egy elem csak 1*)
- Multihalmaz: Bag<T> -- T típusú elemek halmaza (rendezettlen, egy elem több*)
- Lista: List<T> -- T típusú elemek véges listája (rendezett, egy elem több*)
- Tömb: Array<T,i> -- i elemű tömb, ahol az elemek típusa T.
2. E/K modell:
Az adatmodellezés grafikus megközelítését egyed-kapcsolat diagramnak nevezzük, amely lényegében hasonlít az ODL objektumorientált módszeréhez. Az E/K diagramnak 3 alapeleme van:
- Egyedhalmazok, amelyek az osztályok megfelelői. Egyedhalmazok elemei az egyedek, amelyek az ODL objektumoknak felelnek meg.
- Attribútumok, amelyek értékei egy-egyed tulajdonságait írják le. Így az attribútumok fogalma lényegében megegyezik az E/K diagramok és az ODL esetében.
- Kapcsolatok, amelyek 2 vagy több egyedhalmazt kapcsolnak össze. Itt a kapcsolatok 2irányúak. Egy kapcsolat E/K modellben több egyedhalmazt is összeköthet. Pl.:
- Gyenge egyedhalmaz: akkor jön létre, amikor kulcsmeghatározásnál 1 v. több attribútum más egyedhalmaz attribútumaiból tevődik össze. Oka lehet: nem 1értelmű a kulcs meghatározása. Más egyedhalmazok attribútumainak bevonásával megszüntethető. Dupla kerettel jelöljük.
ODL sémák átírása relációsémákká:
cím | év | hossz | szalagFajta |
Csillagok háborúja | 1977 | 124 | színes |
Rút kiskacsa | 1991 | 104 | színes |
Wayne világa | 1992 | 95 | színes |
Sajnos még akkor is, ha az osztály tulajdonságai mind attribútumok, előfordulhatnak nehézségek az osztály relációra történő átírása közben. Ennek az oka az, hogy az ODL-ben az attribútumok összetett típusúak is lehetnek, mint pl.: rekordszerkezetek, halmazok, multihalmazok v. listák. Másrészt pedig a relációs modell egyik alapelve, hogy a reláció attribútumok atomi típusúak, mint pl.: számok és karaktersorozatok.
Egyszerűen csak bővítjük a struktúra definícióját úgy, hogy a rekordszerkezet mindegyik mezőjéhez elkészítünk a relációban egy attribútumot.
interface Színész {Ebben az esetben attribútumaink (oszlopaink) a következők lesznek. Név, város, utca. A relációnk neve pedig színész lesz.
attribute string név;
attribute Struct Cím
{string város, string utca} lakcím;
Felsorolások és dátumok reprezentálása: Az ODL-ben vannak olyan atomi típusok, speciálisan a felsorolások és a dátumok, amelyeket nem tudunk közvetlenül reprezentálni a szabványos relációs modellben.
E/K diagram átírása relációs modellé:
- Minden nem gyenge egyedhalmazhoz létrehozunk egy relációt ugyanezzel a névvel és attribútum halmazzal.
- Kapcsolatokat nem tulajdonságként, hanem külön relációban ábrázoljuk. Itt az attribútumok a kapcsolatban résztvevő egyedhalmazok kulcsai lesznek. Valamint a kapcsolat attribútumai (ha vannak).
- Gyenge egyedhalmazok esetén a relációnak tartalmaznia kell a gyenge egyedhalmaz attribútumait, valamint azokat a más egyedhalmazhoz tartozó attribútumokat, amelyek segítettek kialakítani a kulcsot.
- Gyenge egyedhalmaz kapcsolatait is relációkká alakítjuk, úgy hogy a kapcsolat mindkét oldalán lévő egyedhalmazok kulcsait attribútumként kezeljük.