online kép - Fájl  tube fájl feltöltés file feltöltés - adja hozzá a fájlokat online fedezze fel a legújabb online dokumentumok Kapcsolat
   
 

Letöltheto dokumentumok, programok, törvények, tervezetek, javaslatok, egyéb hasznos információk, receptek - Fájl kiterjesztések - fajltube.com

 

Online dokumentumok - kep
   
kategória
 

Biológia
Filozófia
Gazdaság
Gyógyszer
Irodalom Gyermekek Játék Könyvek Mesék Nyelvtan Oktatás óvoda Személyiségek Történelem Versek
Menedzsment
Receptek
Vegyes

 
 
 
 













































 
 

Az ODL-modellező nyelv

irodalom

Fájl küldése e-mail Esszé Projekt


egyéb tételek

 
Petöfi Sandor forradalmi latomas költészete
Babits Mihaly
Honoré de Balzac Goriot apó címü müvének elemzése és értelmezése
JÓKAI MÓR: A KŐSZÍVŰ EMBER FIAI
Ady Endre
Jules Verne: A dunai hajós
 
 

Az ODL-modellező nyelv

1. Az adatmodellezésről általában

Az adatmodellezés a DB logikai vázának megalkotását jelenti. Ez fogalmi szintű művelet, mely az alábbi ábrával írható le:



A folyamat tehát felfogható úgy, hogy egy "a valóság egy darabjáról" - pl. egy cég nyilvántartásáról szeretnénk adatmodellt és arról később egy DB sémát, azaz konkrét adatbázist készíteni. A DB séma már egy tényleges. értelmezhető kód.

A fázisok közötti átmenetek a következők:

a.) adatmodellező eszközöket használva (pl. ODL, E/K) készítjük el az adatmodell leírását

b.) DDL segítségével alakítható ki a DB séma.

A folyamat legfontos 616e46g abb része az a.)-ban zajló tevékenység; b.) ebből már nagyrészt automatikusan adódik.

Az adatmodellező eszköz többé-kevésbé formális jelölésrendszert biztosít adatok, kapcsolataik és a rajtuk végzett műveletek kifejezésére.

Az adatmodellezés egyes eszközeinek kapcsolata és eredménye:


2. Az ODL (Object Definition Language) módszertan

Az ODL elemei:

  Lehetővé teszi az objektumos DB-tervezést (a módszer közel áll a szabványossághoz);

  és része a CORBA-nak, az osztott objektumos számítások tervezett szabványának.

Az ODL tulajdonságai

·  a világot elsősorban objektumokkal írja le. Pl.: Emberek, Termékek, stb.

·  az objektumok tartalmuktól független azonosítóval, OID-vel rendelkeznek. (Az objektumos világban két azonos példány két különböző elem lehet.)

·  az objektumokat osztályokba csoportosítja:

  egy adott osztály objektumai hasonlók

  ábrázolt tulajdonságaik (típusaik, jellegzetességeik) azonosak

  képet róluk a rekordsablon alapján kaphatunk.

Az ODL osztály-megvalósításának fő tényezői:

1. Attribútumok

Az osztály-objektumok egyszerűbb tulajdonságai egyszerűbb típusokkal vannak ábrázolva (egész, valós, mutató, struct, enum, char, string, stb.). Osztály nem számít egyszerű típusnak!

2. Kapcsolatok osztályok között

Két alapvető formája van:

·  lehet hivatkozás egy (másik) osztály egy objektumára (egyértékű kapcsolat), vagy

·  hivatkozás egy (másik) osztály több objektumára (többértékű kapcsolat).

3. Metódusok

Az osztály objektumaira alkalmazott függvények. (A metódusok DB szempontból kevésbé relevánsak, de a modern SW-technológiának központi kérdése a metódusok tervezése és implementálása.)

Az osztálydeklaráció formája az ODL-ben:


interface < Osztálynév > ;

Az "interface" kulcsszó az ún. osztálykonstruktor.

Példák

1. filmes példa

interface Film szalagFajta; }

Tapasztalatok:

·  az attribútumnak van típusa és neve;

·  enum: felsorolás típusú

  típusneve: Szalag

  neve: szalagFajta

·  egy objektum képe ennek megfelelően:

OID +

2. színészes példa

interface Színész lakcím}


Kapcsolatok leírása

A kapcsolatok (relationship) osztályszinten más objektumhoz való viszonyokat írnak le. Két alapvető leírási formájuk van:

1.    < osztálynév > < kapcsolatnév >, és

2.    < kollekció típus > << osztálynév >> < kapcsolatnév >. A kollekció típusa lehet Set, Bag, List, vagy Array.

Az 1. leírás azt fejezi ki, hogy az objektum az adott típusú (nevű) kapcsolatban van a megadott osztállyal, a 2. pedig azt, hogy az objektum kapcsolatban van osztályok egy kollekciójával.

A kapcsolat megfordítható, annak az objektumnak a szempontjából is megfogalmazható, amivel a kitüntetett objektumunk kapcsolatban áll. Ezt a fordított kapcsolatot (reverse) jelölni is kell, tehát maga a kapcsolat mindkét (ill. valamennyi) érintett objektumnál fel kell tüntetni.

Lényeges, hogy a kapcsolat (relationship) - inverz kapcsolat (reverse) pár egybetartozó szerkezet, ne válasszuk őket külön! Az inverz feltüntetése fontos konzisztencia-tényező.

Példák

1. filmes példa (kapcsolat a Film oldaláról)

(2.)      relationship Set < Színész > szereplők;

reverse Színész: szerepel benne;

A filmben szereplő színészek egy halmazba vannak foglalva. A Filmnek annyi kapcsolata lesz a Színésszel, ahány színész benne játszik. Ez a kapcsolatok leírásának 2. formája.

(1.)      relationship Színész szereplője;

           reverse Színész: szerepel benne;

A kapcsolat leírható az 1. módon is, bár ez nem szerencsés.

2. színészes példa (kapcsolat a Színész oldaláról)

                    relationship Set < Film > szerepel benne;

                    reverse Film: szereplők;



3. konkrét adatokkal a kapcsolatok így néznek ki:

Film

Színész

Berlin fölött az ég

Bruno Ganz

Távol s mégis közel

Bruno Ganz

Távol s mégis közel

Peter Falk

Columbo

Peter Falk

Tanulság: egy színész több filmhez is tartozhat, ill. egy filmhez több színész tartozik.

Kapcsolatok osztályozása

Két osztály - pl. C és D - közötti kapcsolat lehet:

a.) egy-több (sok-sok, N:N) típusú: egy C osztálybeli objektumhoz az adott kapcsolatra nézve a D-ből több tartozhat, és fordítva.

}

 
Pl.: C = Film           köztük a "szereplők", "szerepel benne" kapcsolatok N:N típusúak

D= Színész

Ez a kapcsolat-típus a leggyakoribb (strukturálatlan) eset.

Az N:N kapcsolat árulkodó jele az ODL-leírásban a két kollekció-operátor. (Színészek halmaza, Filmek halmaza - mindkét oldalon több objektum van megengedve.)

b.) több-egy (sok-egy, N:1) típusú: egy C osztálybeli objektumhoz az adott kapcsolatra nézve legfeljebb egy D-beli tartozhat, de fordított irányban nincs megkötés (egy D-beli több C-belihez is tartozhat).

}

 
Pl.: C = Film           köztük a "gyártó" kapcsolat N:1 típusú

D = Stúdió

Jó példa a gyermek-anya kapcsolat is (egy gyereknek legfeljebb egy anyja lehet, de egy anyának lehet több gyereke).

Az N:1 kapcsolat árulkodó jele az ODL-leírásban: egyértékű kapcsolat C-nél  és kollekció D-nél.

c.) egy-több (egy-sok, 1:N) típusú: ez az N:1 kapcsolat fordítottja.

d.) egy-egy (1:1) típusú: egy C osztálybeli objektumhoz az adott kapcsolatra nézve legfeljebb egy D-beli tartozhat, és fordítva.

Pl.: C = Stúdió              köztük az "elnök" kapcsolat 1:1 típusú, feltéve, hogy egy stúdiónak

D = Személy      legfeljebb egy elnöke lehet, és egy személy nem lehet több stúdió elnöke.

Figyelem! A "legfeljebb egy" és "pontosan egy" nem ugyanazt jelenti. Az 1:1 kapcsolatban szerencsésebb a "legfeljebb egy"-et kikötni.

A kapcsolatok osztályozásánál tehát azt vizsgáljuk, hogy a kapcsolat két oldaláról mennyire függvényszerű a kapcsolat (mikor egyértelmű a hozzárendelés). Alapvető tehát, hogy "mennyi dolog kötődik mennyihez". A kapcsolatok jó megválasztása rendkívül fontos szemantikai és hatékonysági szempontból is.


Megj.: az ODL gyenge értelemben képes többágú kapcsolatot leírni.

Pl.: (a felírás megengedi két azonos egyed felvételét)

interface Szerződés

Típusok az ODL-ben

Az ODL az alaptípusokra és bizonyos építkezési szabályokra (melyeket a bonyolultabb adatszerkezetek kialakításához használ fel) támaszkodik. Ezen készlettel (adattípusok + szabályok) rendkívül sokféle feladat megoldható.

Alaptípusok: ide tartoznak az

1. Atomi típusok: a szokásos számítástechnikai adattípusok tartoznak ide, vagyis az egészek (integer), lebegőpontos számok (float), karakterek (character), karakterláncok (string), logikai értékek (boolean), felsorolt adatok (enum).

2. Interface típusok: ezeket az interface kulcsszó vezeti be (ilyen pl. a Film).

Típuskonstruktorok: ezek adják az ODL építkezési szabályait. Tegyük fel, hogy T egy típus.

1. Set < T > típus értéke T típusú elemek véges halmaza.

Pl.: Szereplők halmaza a Filmnél.

2. Bag < T > típus értéke T típusú elemek véges multihalmaza, vagyis a halmazban lévő elemek multiplicitással rendelkezhetnek (az ismétlődés megengedett). Akkor használják, amikor a Set nem alkalmazható.

3. List <T > típus értéke T típusú elemek véges - esetleg üres - listája. A Set-től annyiban különbözik, hogy benne fontos az elemek helye, sorszáma.

Pl.: string = List < char >

4. Array < T, i > típus értéke T típusú elemek i-hosszú tömbje.

5. Rekordkonstruktor

Adott a T1, ..., Tn (attribútum) típus-sorozat és az

            f1, ...., fn  mezőnév-sorozat.

Ekkor a Struct N egy N nevű, n komponensű rekordstruktúra. Az i. komponens (mező) típusa T1, neve fi.

Pl. A Színésznél a Cím egy kétkomponensű struktúra (rekord).

Az 1.-4. típuskonstruktorok az ún. kollekció-operátorok. Ezek valamilyen homogén összességet definiálnak, amelyekben eltérő lehet az, hogy megengednek-e ismétlődést vagy hogy fontos-e a pozíció, stb.

Az attribútumok típusa lehet:

·  atomi típus,

·  atomi típusokból álló struktúra,

·  vagy egy, az előzőekre alkalmazható konstruktor 1.-5. közül.

Példa: Array < Struct T ... , 3 >

A kapcsolat típusa lehet:

·  interface típus

·  egy, interface típusra alkalmazott konstruktor 1.-4. közül.

Alosztályok és öröklődés

Az alosztály egy osztály speciális tulajdonságú objektumaiból jön létre (differenciális specifikációval). Ehhez a tevékenységhez tartozik a szűkítés és a részképzés.



Alosztály jelölése: feltüntetjük a felettes osztály(oka)t.

Pl.: filmes példa

interface Rajzfilm: Film ;

interface Krimifilm: Film :

interface Krimirajzfilm: Rajzfilm, Krimifilm ;

Az alosztály örökli az összes felettes osztály (ún. "szuperosztály") tulajdonságait. Ezek az attribútumok, metódusok és kapcsolatok.

Pl.: a Krimirajzfilm örökli a Filmtől a címet.

Az alosztály-szerkezet hierarchiát definiál (egy felfelé irányított gráfot). Ez nem feltétlenül fastruktúra, bár ez a legjellemzőbb.

Pl.: a filmes példa öröklődési gráfja:


Az öröklődés révén konfliktus merülhet fel, ha egy alosztály többfelől örökölhet tulajdonságokat.

Pl.: rajzfilm: vég = boldog / szomorú

      krimi:     vég = ítélet / felmentés.

Megoldás: átnevezést hajtunk végre a felsőbb szinteken, vagy újradefiniáljuk a tulajdonságot az alsóbb szinten. (Például, ha a Sokszög - Négyszög - Négyzet alosztály öröklődési struktúrát nézzük, akkor célszerű a területet alsóbb szinten definiálni.)

Megszorítások modellezése az ODL-ben

Általunk az adatok közt további összefüggések is definiálhatók. Ezek ugyanúgy megszorítást jelentenek, mint a séma részei - például az N:1 kapcsolat, mert a kapcsolat másik oldalán egyetlen objektum állhat csak.

A megszorítások fő típusai:

1. Kulcsok

·  Olyan attribútum-halmazok, melyek egyértelműen azonosítják az objektumot. (Ha ismerjük a kulcsok értékét, akkor az azonosítás elvégezhető.)

·  0 vagy több attribútum lehet kulcs; ugyanekkor több kulcs is megadható.


·  A kulcs általános alakja:

interface < osztálynév >

(key(s) K1, K2, ... , Kn ) ;

A Ki kulcsleírás alakja:

< attribútumnév >; vagy (attr1, ... , attrn)

Példák

1. filmes példa

interface Film (key (cím, év)) ;

2. dolgozói nyilvántartás

interface Dolgozó (keys dolgAzon, tbSzám)

2. Egyértékűségi megszorítások

Azt rögzítik, hogy egy érték (-kombináció) az adott helyzetben egyedi. Pl. a termék meghatározza az árat.

Attribútumoknál a kollekció-operátorok mellőzése szolgál az egyértékűség kifejezésére.

 

Kétfajta értelmezés kapcsolódik az egyértékűséghez:

· "legfeljebb egy": ez felel meg az N:1 felfogásnak

· "pontosan egy": ez már egy "hivatkozási épség" (lásd később) típusú követelmény.

A "legfeljebb egy" értelmezés hatására vezették be a NULL értékeket. Ezen érték azt mutatja, hogy adott esetben megengedett "üresen" hagyni egy attribútum-mezőt.

Pl.: - ebből a halmazból kerül ki a filmszalag típusa. Ha a NULL érték van megadva, az azt jelenti, hogy a szalag típusa nem ismert.

3. Hivatkozási épség (referential integrity)

Az a követelmény, hogy a hivatkozott dolognak léteznie kell (vagyis nem fordulhatnak elő "lógó" mutatók, hivatkozások).

Lényeges, hogy az ODL a hivatkozási épség kérdését nem kezeli, csupán a megvalósítás szintjén ajánl különböző módszereket:

·  létrehozáskor kötelező a "pontosan egy" kapcsolat kitöltése;

·  hivatkozott objektum nem törölhető - ez az ún. gyenge törlési elv (az előbbi pont inverze);

·  a hivatkozott objektum csak a hivatkozóval együtt törölhető.

4. Értelmezési tartomány korlátozása

Ezen korlátozások a típusok értelmezési tartományára vonatkoznak!

5. Általános megszorítások

Általános követelmények, pl. a kapcsolat fokának korlátozása tartozik ide. Megadhatjuk például, hogy legfeljebb hány színész szerepelhet egy filmben. Ha ez történetesen 10, akkor ez így írható le:

relationship Array < Színész, 10 > Szereplők;

3. Adatmodellezési alapelvek

1. Valósághű modellezés

·  a fontos adatelemek és

·  a fontos kapcsolatok is legyenek benne a modellben!

2. A redundancia elkerülése

Ugyanazt a dolgot két vagy több helyen ne jelenítsük meg az ábrázolt modellben. Ez azért fontos a következők miatt:

· helygazdálkodás: nem ez a legfontosabb szempont, de mérlegelni kell;

· konzisztencia: a két vagy több helyen lévő azonos adatnak minden előfordulási helyén mindig ugyanolyan tartalmúnak kell lennie. Ha ez nem teljesül, akkor anomáliák lépnek fel;

· egyszerűség: a redundancia bonyolítja a modellt.

3. Megfelelő típusú elemek kiválasztása

Alapkérdések:

· mit reprezentálunk attribútumként?

· mit reprezentálunk kapcsolatként?

A megfelelő típusú elemek kiválasztásának szempontjai:

· az attribútum: egyszerűbb, mint a kapcsolat (hiszen ez direkt köthető alaptulajdonság)

az egyedhalmaz, osztály (azaz a kapcsolat): bonyolultabb, de kifejezőbb.


: 1395