Kálmán Endre, Sütő Gergely, Péteri József Adatmodellezés adatbázis-kezelés az MS ACCES segítségével Szerzők: KÁLMÁN ENDRE programozási osztályvezető 1. fejezet SÜTŐ GERGELY főiskolai adjunktus 2. fejezet PÉTERI JÓZSEF főiskolai adjunktus 3. fejezet Lektor : SZERT ARIDISZ HRISZTOSZ főiskolai docens Nyomdai és tördelő szerkesztő : VEKOR GYÖRGYNÉ A jegyzetről másolatot kizárólag a Pénzügyi és Számviteli Főiskolai Kar megbízásából az ezirányú közbeszerzési pályázat nyertese készíthet! 1
1. AZ AB ÁTSZERVEZÉS ALAPJAI 1.1. Bevezetés Az első számítógépek fizikai, matematikai feladatok megoldására készültek. Jelenlegi széleskörű felhasználásukra Neumann János (a számítástechnika tudományának megalapozója) valószínűleg nem is gondolt. Az utóbbi két évtizedben a számítógépes alkalmazásoknak a nagyobbik részét- az adatfeldolgozási feladatok teszik ki. Természetesen továbbra is megmaradtak a matematikai, műszaki - mérnöki feladatok számítógépes megvalósításai is, de ezek mennyiségükben háttérbe szorultak, specializálódtak. E téren a műszaki megoldások fejlődése újabb és újabb technikai eszközöket kapcsoltak össze a számítógépekkel (folyamatirányítás - számítógéppel támogatott tervezés, rövidítve: GAJD, számítógéppel támogatott megvalósítás, rövidítve: CAM távközlési rendszerek, multimédia azaz összekapcsolt videó audio és távközlési rendszerek, stb.) Az adatfeldolgozási feladatok előtérbe kerülése a problémaorientált (magas szintű, 3. generációs) programozási nyelvek (Cobol, PL/1) megjelenésével, a tárolókapacitások meghatározó növekedésével és hatékonyságuk javulásával vált lehetővé. Ezen programnyelvek (és később kifejlesztett 3. generációs társaik) adattárolási, adatkezelési, fájl- szervezési módszereinek fejlődése megállt egy bizonyos szinten, mely szintet a klasszikus fájl-szerkezetek szintjének nevezhetjük. Ezen a szinten a legelterjedtebb szerkezetek a különféle soros adatállományok, illetve - a rekordsorszám, vagy pedig valamely adatmező értékének elérési kulcsként való használatával dolgozó - közvetlen elérésű adatállományok. Ez utóbbiakat relatív és indexszekvenciális állománytípusoknak nevezzük. Ez előbbi adatszerkezetekkel működő klasszikus adatfeldolgozási feladatok a rendelkezésre álló alapadatok fizikai rendezésével, átcsoportosításával, átalakításával operálva jutnak el a kívánt végső eredményekig. Ezek használatánál a rendszerek fejlesztése során eleve az információszolgáltatási igényekből kiindulva tervezik a feldolgozó rendszert. Ez viszont azt a hibát eredményezheti, hogy az adattárolási szerkezetbe is belevetítődik a kívánt output szerkezet. így az elkészült adattárolási struktúra nem a valós rendszer eredeti szerkezetét tükrözi. A klasszikus fájl-szerkezetek az adatállomány belső struktúráját (adatmezők neve. hossza, tartománya, egyeb tulajdonságai) nem képesek tárolni, ezeket mindig algoritmus szinten, azaz a programokban kell leírnunk. Ezért, és a valós és a tarolt szerkezetek eltérései miatt rendkívül nehézkessé válik a valós rendszerek szerkezeti módosulásainak követése az információs rendszerben. Az eredmény adatok fenti módszerekké! történő előállítása pedig általában azt a hibalehetőséget hordozza magában, hogy egyes adatokat a rendszer több helyen is tárol. Ez pedig inkonzisztenciához - adat meg nem egyezőséghez - vezethet (azaz egyik heíven módosuló adattétel párhuzamosan másik helyen is tárolt értéke nem módosul). A klasszikus fájl-szerkezetek tehát újabb problémákat vetettek fel az adat- feldolgozó információs rendszerek tekintetében. Ezeket a felmerülő gondokat az alábbiakban foglalhatjuk össze: 2
Adatredundacia (átfedés, többszörös tárolás) megszüntetése. A feldolgozó rendszerben egy adat csak egy helyen jelenjen meg. Elsődleges célja az inkonzisztencia lehetőségének kiküszöbölése, másodlagos a helytakarékosság. Rugalmasság biztosítása. A tárolt adatok könnyű szerkezeti módosíthatóságának igénye (az állomány tartalmazza saját belső szerkezetét is). A sorrendiségek (rendezettségek) könnyű megoldhatósága, változtathatósága. A szerkezeti és tartalmi módosítások reprodukálhatóságának igénye (mentési, archiválási módszerek segítségével). Osztott felhasználás lehetősége. Azonos alapadatokkal több felhasználó is tudjon (a valós időben) egyidejűleg dolgozni. Adatvédelem biztosítása. Különböző jogosultságú felhasználók esetén lehetőség nyíljon az adatok különböző csoportjainak kezelését bizonyos felhasználók elől elzárni. Könnyű kezelhetőség. Egy felhasználó csak a számára szükséges adatkörrel kerüljön kapcsolatba, az adathalmaz többi része számára felesleges. El kell szakadni a klasszikus fájl szerkezeteknél fennálló kiírás - beolvasás szemléletmódtól. A fenti elvárásoknak megfelelően folyamatos fejlődésen mentek keresztül a fájl kezelő rendszerek és korszerűsödtek az adatszervezési módszerek. A szakemberek hamar felismerték, hogy a számítógépesítés céljából érdemes formalizálni, egységesíteni az adatfeldolgozási igényeket. A valós világnak a feladat megoldása céljából megfigyelt, vizsgált adatainak szerkezetét, az adatok kapcsolódási pontjait és sokaságát leíró módszert adatmodellezésnek. az adatmodellezés végén kapott eredményt pedig logikai adatmodellnek nevezzük. Ez a módszer egységes kezelhetőséget tesz lehetővé, ez által adattartalomtól független szimbolizmust (kezelő nyelveket) használhatunk a megvalósítandó adatfeldolgozó feladatoknál. A modellezett szerkezetbe foglalt adathalmazokat eleinte adatbankoknak, később adatbázisoknak nevezték. A modellek milyenségére vonatkozóan több féle elgondolás is fejlődött párhuzamosan. Létezett grafikus megközelítési mód, ahol az adatszerkezetet diagrammokkal, gráfokkal próbálták leírni (Bachman, Jackson, Nijsen, stb.), ezen kísérletekből fejlődött ki a hálós és ennek speciális változata, a hierarchikus adatmodell. Léteztek az adatmodellt verbálisán, szövegesen leíró próbálkozások, elvont, metanyelvi szimbolizmus használatával, ezek a próbálkozások nem fejlődtek tovább. A manapság leginkább elterjedt modellezési módszer matematikailag pontosan leírható szerkezetek felhasználásával alakult ki (halmazelméleti definíciókkal és relációkkal teljesen leírható, formalizálható) módszer, melynek alapjait E. F. Codd dolgozta ki 1970- ben és relációs adatmo- dellnek nevezzük. Az adatmodellezés feladata tehát: egy meghatározott, valós rendszer leíró adatainak és azok összefüggéseinek feltárása, valamint ezek megfogalmazása szabványos szimbólumrendszerrel. 3
TARTALOMJEGYZÉK 1. AZ ADATSZERVEZÉS ALAPJAI 1.1. Bevezetés 1.2. Áz adaímodellek legfontosabb alapelemei 1.3. A relációs adatmodell 1.4. A tulajdonságtípusok szerepe az egyedekben 1.5. A normalizálás 1.6. Logikai és fizikai tervezési szint 1.7. Egy információfeldolgozó rendszer fejlesztésének lépései 1.8. A szervezési és megvalósítási fázisokat támogató eszközök 2. ADATMODELLEZÉSI ÉS ADATBÁZIS KEZELÉSI MINTAFELADAT 2.1. Bolthálózat áruforgalma 2.2. Á feladat normáikéit modellje 2.3. Az adatmodell egyedtípusai 2.4. Logikai adatszerkezeti ábra 2.5. Az adatszerkezet megjelenése ACCESS-ben 2.6. Az adatbázistáblák szerkezete és tartalma (teszt adatok) 3. A MICROSOFT ACCES 2.0 ADATBÁZISKEZELŐ RENDSZER 3.1. Alapfogalmak 3.2. Ácces alapok 3.2.1. Az Acces indítása 3.2.2. A munka befejezése 3.2.3. Uj adatbázis létrehozása 3.2.4. Már létező adatbázis megnyitása, használatbavétele 3.2.5. Az adatbázis ablak 3.2.6. Nyitott adatbázis bezárás 3.3. Könyvtár-adatbázis, táblák 3.3.1. A "könyvtár" adatbázis létrehozása 3.3.2. Új tábla létrehozása 3.3.2.1. Adattípusok az Accesben 3.3.2.2. Mezőtulajdonságok 3.3.2.3. Az elsődleges kulcs (Primary Key) mezők 3.3.2.4. Az elkészült tábla mentése 3.3.3. A "könyvek" tábla létrehozása 3.3.4. A többi tábla definiálása 3.3.5. Táblák szerkezetének módosítása 3.3.5.1. Üres tábla szerkezetének módosítása 3.3.5.2, Egy nem üres tábla szerkezetének módosítása 3.3.6. Egy tábla indexeinek megtekintése és módosítása 4
3.3.7. Tábla rekordok bevitele és karbantartása 3.3.7.1. Tábláink feltöltése adatokkal 3.3.8. Keresés, rendezés, szűrés 3.3.8.1. Adatok keresése (Find) 3.3.8.2. Rekordok rendezése (Sort) 3.3.5.3. Rekordok szűrése (Filter) 3.4. Könyvtár-adatbázis, táblakapcsolatok, lekérdezések 3.4.1. Táblakapcsolatok 3.4.2. Lekérdezések 3.4.2.1. Feltételek és kifejezések 3.4.2.1.1. Rekordtartomány kiválasztása 3.4.2.1.2. Globális karakterek és a Like 3.4.2.1.3. A NŐT operátor 3.4.2.1.4. Is Null, Is Nőt Null 3.4.2.1.5. Összetett feltételek 3.4.2.1.6. Napi dátum a feltételekben 3.4.2.1.7. A halmaz művelet (IN) 3.4.2.1.8. Számítások feltételekben 3.4.2.1.9. Számított (calculated) mezők 3.4.2.1.10. Egyéb érdekességek 3.4.2.2. Összesítések (Totals) lekérdezésekben 3.4.2.2.1. Számítások minden rekordra 3.4.2.2.2. Számítások rekord csoportra 3.4.2.2.3. Feltételek összesítés mezőkre 5