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 specifi­kációnak. Azaz, az osz­tályoknak v. egyedhalmazoknak és attribútumaiknak tükrözniük kell a valóságot. Akár­milyen összefüggések jönnek létre, azoknak értelmeseknek kell lenni az alapján, amit isme­rünk a valós világ modellezendő részéről. Pl.: Ha definiálunk egy szerepelBenne kap­csolatot a Szí­nész és a Fi1m között, annak sok-sok kapcsolatnak kell len­nie. A valós világban megfi­gyel­hetjük, hogy színészek több filmben is szerepelhetnek és a filmekben 1nél több színész is sze­repelhet. Nem lenne korrekt a szerepelBenne kapcsolatot sok-1 v. 1-1 kap­csolatnak de­finiálni.

1. ODL modell:

Ez 1 szabvány, amely segítségével adatbázisok struktúráját specifi­kálhatjuk objektumorientált terminológiával. Célja, hogy támogassa az adatbá­zisok objek­tumorientált tervezését, és utána ennek a tervnek a közvetlen transzformálását objektumori­entált adatbáziskezelő r.sz-ek deklarációiba. Az ilyen r.sz-ekben az elsőd­leges nyelv rendsze­rint a C++ v. a Smalltalk, így az ODL-t ezen nyelvek egyikének deklará­cióira kell transzfor­málni.

Objektumorientált tervezés: 1 objektumorientált terv a valós világot modellezi objek­tumok segítségével, melyek valamilyenfajta észlelhető egyedek. Az objektumoknak van 1 egyér­telmű objektumazonosítójuk (OID), ami megkülönbözteti őket más objek­tumoktó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;
}
Kapcsolatok (egy-egy; sok-egy; sok-sok): Relationship set <Film> szerepelbenne
Inverse Film :: szereplők
Elhagyva a set-et csak 1 objektumot kapcsolunk. Az ODL megköveteli a kapcsolatok név­vel ellátott inverzét.

Típusok:
  • Atomi: integer, float, charakter, string, boolean, enum
  • Interfész: struktúrát reprezentálnak.
Típuskostruálók:
  • 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:

  1. Egyedhalmazok, amelyek az osztályok megfelelői. Egyedhalmazok elemei az egyedek, amelyek az ODL objektumoknak felelnek meg.
  2. 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.
  3. 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.:
  4. Gyenge egyedhalmaz: akkor jön létre, amikor kulcsmeghatározásnál 1 v. több attri­bútum más egyedhalmaz attribútumaiból tevődik össze. Oka lehet: nem 1értelmű a kulcs meg­hatá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á:

Attribútumok átírása: cél hogy minden osztályhoz legyen 1 reláció, minden tulajdonság­hoz legyen 1 attribútum. Az osztály tulajdonságai attribútumok ezek pedig atomi típusúak. Ha sike­rült így átalakítani ODL modellünket, akkor az ábrázolás során, a reláció neve maga a táblázat neve lesz, az attribútumok, pedig a táblázat oszlopnevei lesznek. A sorok pedig az adatok. Pl.:

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éz­ségek az osztály relációra történő átírása közben. Ennek az oka az, hogy az ODL-ben az att­ribú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 {
attribute string név;
attribute Struct Cím
{string város, string utca} lakcím;
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.
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é:

Az egyed/kapcsolat diagram átírása relációs adatbázissémára hasonló, mint az ODL tervek átírása volt adatbázissémára. Bizonyos értelemben az E/K modell egy közbülső formát jelent az objektumorientált tervezés és a relációs tervezés között.
  • 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.