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.