Tamás Ferenc: Adatbáziskezelés alapjai 1. rész


Az adatbáziskezelő programok nem egyszerűek, nem is tervezték annak, viszont a használatuk során igen komoly ismeretekre tehetünk szert. Nézzünk erre néhány egyszerű példát!
-    Vasúti menetrend (https://www.mavcsoport.hu/)
-    Autóbusz menetrend (https://menetrendek.hu/)
-    Budapesti és/vagy vidéki mozik műsora
-    Televízióműsor online (kereshető) verziója (https://port.hu/tv)
-    Nemzetközi film adatbázis (http://www.imdb.com/)
-    Keresők adatbázisa (Google.com, Yahoo.com, Bing.com, …)
Vagy céges méretekben:
-    Raktári adatbázis
-    Céges dolgozók személyi nyilvántartása
-    Cég könyvelésének összes (kimenő és bejövő) számlája
Úgy érzem, hogy egyből érthető, hogy miért is van szükség adatbázis kezelésére!

Igazság szerint az adatbázisok egy része egyszerű listaként indul, például a telefonban tárolt ismerősök neve és telefonszáma. A legegyszerűbb tárolási módszer ilyenkor egy sima Word dokumentum. Kicsit bonyolultabb, de számomra sokkal tetszetősebb módszer, amikor ezt egy Excel-es táblázattal követjük el. Itt már rendezhetjük az ismerősöket például a telefontársaságok szerint (pl.: 20-as, 30-as, 70-es, stb.), vagy lakcím szerint (helyi, környéki, messzi); esetleg ismeretségi fok szerint is (rokon, munkatárs, barát, céges ismerős, szakember). A rendezésen túl a legtöbb táblázatkezelőhöz hasonlóan az Excel is megengedi a táblázat szűrését, így csak azon sorokat jeleníti meg, amelyekben a szűrés paramétere szerint értékes adat van.
Viszont most vegyük példának egy kb. 20-osztályos iskola összes tanulójának adatait!
Mit is kellene elraktároznunk minden egyes tanulóról?
-    Vezetéknév
-    Keresztnév (vagy keresztnevek)
-    Nem
-    Anyja neve
-    Születési idő (év, hó, nap)
-    Születési hely
-    Osztálya (évfolyam, osztály)
-    Oktatási azonosítója
-    Pontos lakcím (irányítószám, város, utca, házszám)
-    Családi körülményei
-    Mentessége (ha van)
-    Nyelvvizsgái (ha vannak)
-    Bejárás módja (csak vidéki esetén)
-    Saját telefonszáma
-    Szülő telefonszáma
-    Összes jegy minden tantárgyból
-    Hiányzások napja és (tan)órára lebontva
-    stb.
Bár a fenti adatokat fel lehet vinni egy táblázatba, de az már nagyon nehezen áttekinthető lesz. Ráadásul egyetlen táblázat esetén az adatváltozásokat is nehéz követni. Például évváltáskor külön kell átvezetni azokat, akik sikeresen abszolválták a tanévet és ki kell válogatni azokat, akik azonnal évismétlésre buktak, illetve azokat is, akik pótvizsgázhatnak. Itt még nem is beszéltem az osztályzatok, illetve a hiányzások kezelésének nehézségéről.
Egyetlen Excel táblázat esetén simán lekérdezhetjük szűréssel az egy városban lakó busszal bejárókat, de az már nehézséget okozhat, hogy megnézzük a múlt hónapban legalább 4 napot hiányzók közül ki kapott idegen nyelvből legalább két egyest dolgozataira. Nos, ekkor már érdemes egy adatbáziskezelőt hadrendbe állítani!
Elméleti téren megközelítve: a számítógépes adatbázisok objektumokat tárolnak. Egy adatbázis több táblát is tárolhat. Ha például 5 táblát tárol egy adatbázis, akkor az még egyetlen adatbázisnak számít attól függetlenül, hogy több különféle adattáblája van. Ráadásul az egyes táblákat össze is köthetjük megfelelő kapcsolatokkal, így a munkánkat sokkal könnyebbé tehetjük.
Rendelkezésre álló műveletek egy létező adatbázis esetén: (a fenti iskolai példa esetén)
-    új adatok hozzáadása (pl.: új tanuló érkezik)
-    meglévő adatok módosítása (pl.: egy tanuló családja elköltözik)
-    adatokat törlése (pl.: egy tanuló jogviszonya véget ér, mert végez)
-    különböző szempontok szerinti listák készítése (pl.: egy osztályba járó fiúk névsora)
-    különböző összesítések készítése (pl.: osztályonként hány fiú és hány lány jár be egy adott városból)
-    adatok megosztása másokkal (pl.: egy tanuló összes jegyének megmutatása a szülő számára)

Most nézzük egy adatbázis legfontosabb összetevőit sorban!

Táblák


Ezek az objektumok hasonlítanak leginkább a klasszikus táblázatokra, mivel itt is oszlopokban és sorokban tárolják az adatokat. Viszont annyi különbség van, hogy itt az egyes oszlopokat különféle nevekkel és tulajdonságokkal lehet ellátni. Ellenben az egyes sorok simán számozottak. A fenti iskolai példánál maradva az oszlopok nevei pl.: diák vezetékneve, diák keresztneve, diák 2. keresztneve, anyja neve – ezek mind sima szöveges típusú adatok. Utána jöhet pl. a születési idő, ami már dátum típusú.
Az egyes adatok általában úgy vannak berendezve, hogy ne legyenek benne ismétlődések, de ezt sajnos nem sikerül mindig tökéletesen betartani. A fenti példában a diákok személyes adatait egy táblában érdemes tárolni, míg az osztályok tagjait egy másikban, tovább egy harmadikban a tanárok neveit, amelyikben könnyen be lehet jelölni az osztályfőnököket is! Ez a folyamat a normalizálás.
A tábla sorait rekordoknak nevezik. A rekordokban tárolják az egyes információkat. Minden egyes rekord egy vagy több mezőből áll. A mezők természetesen a tábla oszlopainak felelnek meg. A mezőknek vannak típusai, pl.: szöveg, logikai igen/nem, szám, dátum, karakter, stb.

Űrlapok

Az űrlapokat egyszerűbben adatbeviteli képernyőknek is szokás nevezni, mivel a legegyszerűbben űrlapokon keresztül lehet nagy mennyiségű adatot felvinni egy adatbázisba. Persze van más lehetőség is, például egy másik adatbázisban, Excel táblázatban vagy egyéb formátumban tárolt nyers adatsokaság is.
Az űrlapok könnyedén szerkeszthetők, kiegészíthetők, illetve módosíthatók. Lehet rá tenni a megszokott beviteli mezőkön túl parancsgombokat, illetve egyéb funkcionális elemeket is. Persze ha valaki csak felvinni szeretné az adatokat, de magát az űrlapot nem kell módosítania, akkor erre is nyílik lehetőség.
További lehetőség, hogy egy űrlap tervezője azt is meghatározhatja, hogy ki férhet hozzá az űrlaphoz, illetve annak egyes mezőihez. Az iskolánál maradva például egy diák megnézheti a jegyeit, de nem módosíthatja azokat; viszont egy tanár hozzáférhet a diák jegyeihez és újakat is írhat hozzá. Ez a kettős hozzáférés nagyban segíti a rendszer megbízható és korrekt használatát.

Jelentések

A jelentéseket általában táblákban lévő adatok bemutatására, összegzésére használják. Például ki lehet mutatni az egyes osztályok létszámát fiú-lány arányra bontva, vagy az osztályonkénti 2,00-ás átlag alatti tanulók számát tantárgyankénti bontásban.
A jelentések összeállítása igen nagy fokú rugalmasságot mutat, mivel azokat igen sok módon lehet formázni. További előny, hogy a jelentések mindig a pillanatnyi állapotot tükrözik, tehát például egy könyvelésnél igen komoly információt hordoz!
Magukat a jelentéseket bár alapvetően képernyőn jeleníti meg az adatbáziskezelő, de simán nyomtathatóak, illetve elküldhetőek.

Lekérdezések

Egy átlagos adatbázisban a lekérdezések végzik a munka túlnyomó részét, mivel rájuk hárul a feladatok döntő többsége. Legtöbbször egy vagy több táblából nyernek ki különféle adatokat. A legegyszerűbb lekérdezések csupán egyetlen táblából nyernek ki adatokat, így azokat pár kattintással is össze lehet hozni, viszont a többtáblás lekérdezéseknél már megfelelően összekapcsolt táblák kellenek, hogy a lekérdezés értékelhető eredményt hozzon. A lekérdezések gyakran nem az összes elérhető rekordot jelenítik meg, hanem a megfelelő szűrők segítségével csak néhányat. A fentieken kívül a lekérdezések igen gyakran szolgáltatnak adatokat a jelentések és az űrlapok számára.
A legtöbb lekérdezés sima adatokat jelenít meg, azonban léteznek speciális funkciójú jelentések is, például a frissítő/módosító lekérdezéssel számos rekord mezőjét vagy mezőit lehet egyszerre megváltoztatni. Ezzel óvatosan kell bánni, mivel ez már nem próba: a megváltozott adatok azonnal megjelennek az adatbázisban.
További módosító lekérdezés, amely táblákat hoz létre megfelelő mezőkkel és adatokkal, illetve olyan is lehet, ami táblát vagy táblákat töröl. Ezzel szintén igen óvatosan kell bánni!

Folytatása következik!

Felhasznált irodalom:
-    http://office.microsoft.com/hu-hu/access-help/az-adatbazis-kezeles-alapjai-HA010064450.aspx
-    http://informatika.gtportal.eu/index.php?f0=adatbazis&szint=1
-    http://nytta.faludinet.hu/temak/elm/adatbazisalap1.htm
-    http://ebedszu.net/zsolt/adatbazis/pg_stud.html