• Nem Talált Eredményt

When I visited the ship, the hands were out on deck

2. Műveletek halmaza, amelyekkel végre tudjuk hajtani a megkívánt tevékenységeket az adatok

2.3. pontot) - ezekre a szerző egy külön elnevezést:

2.3.3. Irreducibilis modellek

Ezen modellek fő motivációja az, hogy a sémát bizonyos alapvetői, egyszerű, adatokból kiindulva építhessük fel.

Itt tehát az a cél, hogy felismerjük az információ

"atomjait", azaz azokat az információ darabokat, amelyek egy elemi fogalmat jelölnek, és igy az információ megőr­

zésével tovább már nem bonthatók. Ezekből az "atomokból"

aztán felépíthetjük az összetett fogalmakat is. Ezen modellek szerzőinek meggyőződése az, hogy jó>l megválasz­

tott atomokkal elérhető az, hogy az atomok függetlenek legyenek, azaz, amikor néhány atomból összeállítunk egy összetett objektumot, akkor az alkotórészeket külön- külön, egymástól teljesen függetlenül megváltoztatva az összetett objektum értelmes marad. Ennek a feltevésnek a jogosultsága, valamint az elemi információk megkeresésé­

nek támogatása még további kutatást igényel. Valószínű, hogy a teljes függetlenséget nem tudjuk elérni CBRO'84], de bizonyos korlátok között igen, és ez nagymértékben megnövelheti a modellezési precizitást.

2.3.3.1. A bináris-reláció modell

A bináris—reláció modell CBPP'761 egy tipikus irreduci- bilis adatmodell, ez a relációs adatmodellnek egy olyan speciális változata, amelyben csak kétváltozós relációi­

kat engedünk meg . Ezek a kétváltozós relációk a legki­

sebb ábrázol hatói információ egységek a rendszerben, és

192

esek általában egy objektum és egy egyszerű, attribútum- érték közötti kapcsolatot Írják le, és ezeket tekintjük atomi tényeknek. Ezen modell legnagyobb előnye a kevés és világos felépítésű, adat konstrukció, hátránya, hogy az általános kapcsolatok ábrázolásához mesterséges "Össze­

kötő" típusokat kell definiálnunk.

2.3.3.2. Az i r r educ i bi l i s reláció' modell

Az irreducibilis reláció modell CHOT'7&D a reláciős adatmodell olyan változata, ahol a relációk lehetnek n- változösak, és azokat a relációkat tekintjük atomi tény­

nek, amelyek szemantikusán irreducibilisek. Ez azt je­

lenti, hogy nem lehet őket két vagy több kisebb reláció egyesítésére bontani, hogy közben információ el ne vesszék, azaz, ha a felbontás elemeit kombináljuk, akkor nem kapjuk vissza az eredeti relációt. Például, ha van egy leltárt számontartó rendszerünk, és abban van egy menny i ség (r akt ár tér em, áruféleség, dar abszám ) , ezt val ő'-szinüleg nem lehet felbontani valami RÍ(raktárterem,áru­

féleség) és R2(áruféleség,darabszám) egyesítésére, mivel egy áru a különböző raktár termekben különböző mennyiség­

ben fordul elő.

2.3.3.3. A funkcionális adatmodell

Ez a modell a legjobban kidolgozott irreducibilis adat­

modell, és ez sikeresen építi be a funkcionális progra­

mozás elméletét az adatmodellezésbe.

A funkcionális adatmodellek alkotóelemei az entity-k, és

az ezek közötti függvények. így az egyes objektumok tulajdonságainak leirására a függvények szolgálnak, és ezen modellek Legvonzóbb tulajdonsága az, hogy természe­

tes módon, a függvények kompoziciójával tudunk üj, származtatott adatokat létrehozni, és ezen konstrukciók­

kal egyszerű, lekérdező műveletekre is lehetőség nyilik.

Ezen modellek közül kiválasztottunk egyet, nevezetesen a DAPLEX adatmodellt CSH'813, és kissé részletesebben is megvi zsgáljuk.

Először is a DAPLEX nem csupán egy adatmodell, hanem kinálja azt a felhasználói inter face-t (fogalmi leirö nyelvet ) is, ami a természetes adatbázis kezeléshez szükséges.

Az előzőeknek megfelelően a DAPLEX-ben két alapvető konstrukció van, az egyik az entity, a másik a függvény.

Az előző az adatobjektumok, az utő*bbi az objektumok tulajdonságainak rnegjel eni tésére szolgál.

Itt a függvények a lehető legáltalánosabbak lehetnek, azaz Lehetnek többváltozósak, és Lehetnek több értékűek is. így egy érdekes formai egyszerüsitésre nyilik lehe­

tőség, mivel vannak változó nélküli,többértékü függvé­

nyek is (ezen függvények tulajdonképpen éntity-tipusokat jelölnek), igy nincs szükség külön tipusokat definiálni.

(Feltéve, hogy már kezdetben is van egy nagy halmazunk -mondjuk ENTITY -, amely tartalmazza az összes objektu­

mot, és igy használhatjuk, mint általános értelmezési tartomány. A továbbiakban ezt mindig feltételezzük, továbbá azt is, hogy a szokásos programozási nyelvekből megszokott "EGÉSZ","STRING","BOGLE" tipusok is

garantál-tak. )

A DAPLEX-ben két sémaépitő művelet van a DECLARE» és a DEFINE. Az első űj függvények létrehozására szolgál, a második segítségével pedig a már létező függvényekből új, származtatott függvényeket állíthatunk elő. Az adat­

manipulációs, és lekérdező műveletek nem tesznek különb­

séget a két fajta függvény között, igy ügyesen megvá­

lasztott származtatott függvényekkel támogathatjuk a különböző felhasználói nézőpontok létrehozását. A pontos szintaxis ismertetése túl sok helyet foglalna, igy inkább egy egyszerű példát mutatunk.

A példában egyszerű nyilvántartásról van szó, amelyben tároljuk néhány programozó személyi adatait, továbbá, azt, hogy aktuálisan milyen projekteken dolgoznak. A projekteknek van egy egyértelmű vezetó>je.

Először definiáljuk a személyi adatokat. Ezt úgy tehet­

jük meg, hogy egy változó nélküli, többértékű függ­

vénnyel létrehozzuk a "személy" entity tipust, azután definiáljuk a személyek nyilvántartásba veendő adatait.

Tehát :

DECLARE személyi) ==>> ENTITY DECLARE név(személy) => STRING DECLARE ciml személy) => STRING stb.

Itt a kettős nyil többértékü, az egyes nyil egyértékü függvényt jelez.

Ezután ügy tudjuk jelezni» hogy a programozókra kérünk személyi nyilvántartást» hogy ezen tipust igy hozzuk

létre :

DECLARE programozói) =>> személy

Látható, hogy igy egyszerűen meg tudtunk valósítani egy special i z é.c i ót-.

Most pedig hozzuk létre a projekt tipust, és tulajdon­

ságait :

DECLARE project() =>> ENTITY

DECLARE vezetölproject) => programozó DECLARE feladat(programozó) => project

Tekintsük most a feladat és a vezető függvények kompozí­

cióját. Látható, hogy ennek a függvénynek teljesen vi­

lágos szemantikai jelentése van, ez Írja le a fönők- besztott kapcsolatot, igy:

DEFINE fónök(programozó) =>> vezetői feladat(programozó)) A származtatott függvények felépítésénél még sok egyéb lehetőségünk is van a kompozíció függvény képzésén kí­

vül, például használhatjuk az inverz-függvényt, vagy több függvényből, mint komponensből többdimenziós függ­

vényt képezhetünk.

Még ki kéne térnünk a manipulációs, és lekérdező művele­

tek szintaxisára, de az túlságosan messze vezetne, és

reméljük» hogy a fenn vázoltak elegendők egy gyors betekintésbe a DAPL.EX rendszerbe» és igy a funkcionális adatmodell be is.