Gyakorlati alapok III.
SQL (adatbázis)
Általában az adatbázisokról
Amint az az előző fejezetben már említésre került, napjaink talán legmeghatározóbb informatikai fogalmai az adat, az információ és természetesen az adatbázis, amelyet így első körben nyugodtan minősíthetünk számunkra hasznos, azaz információforrásként szolgáló adatok rendszerezett csoportjának.
Nem véletlenül kezdtem velük a felsorolást, hiszen már az informatika fejlődésének kezdetén felmerült az adat, vele az információ mibenlétének kérdése (Shannon – 1948). Gondoljunk csak vissza az univerzális Turing-gép definíciójára, amely bemeneti adatokat vár, hogy programja szerint abból kimeneti adatokat szolgáltasson:
Honlapom egyik, az Adatszerkezetek című részében már részletesen ismertetésre került az adat és a közöttük lévő kapcsolatok meghatározása. Emlékezzünk vissza ennek egyik példájára, amelynek körülményeit most még ne fedjük fel, hogy a példából mielőbb megértsük az adatbázis fogalmát. Adott tehát néhány tárgy...
-
1 szőnyeg,
-
1 papírfecni,
-
1 koszos pohár,
...amelyeket kissé elvonatkoztatva szemrebbenés nélkül tudunk adatoknak minősíteni.
Ez a véletlenszerű kacathalom senkit nem érdekel egészen addig a pontig, amíg
nem alkot olyan összefüggő adatstruktúrát, amely a megfigyelőt érdekelheti. Ez
az említett fejezetben egy bűnügyi helyszín lehetséges bizonyítékai. Ebben a
pillanatban az alapjában véve jellegtelen tárgyak bizonyos megfigyelők számára
irtózatosan fontossá válnak: elkezdik megvizsgálni, rendszerezni és nagy
valószínűséggel más adatok bevonásával számítógépes nyilvántartásba is veszik,
nagyjából ilyesformán:
Bűnügyi nyilvántartás
Esetszám | Időpont | Helyszín | Eset | Talált bizonyítékok |
001 | 2010.11.15.21h | óvoda ebédlője | csokimikulás-lopás |
1 szőnyeg, 1 papírfecni, 1 koszos pohár |
Csupán egy kissé szükséges ahhoz elvonatkoztatunk, hogy észrevegyük a konkrét
adatok “feletti”, távolabbi összefüggéseket is:
adatok önmagukban ugyan nem alkotnak adatbázist (pusztán rendezetlen adatkupacot), de ha eltároljuk őket és hozzájuk számunkra fontos kapcsolati pontokat rendelünk, valamint ezen adat-kapcsolat struktúrákat sematizáljuk, azaz absztrakció segítségével modellezzük is, akkor olyan egységes, logikai keretek között jól kezelhető, adattároló szerkezetet kapunk, amelyet már nyugodtan nevezhetünk adatbázisnak.
A fenti példával és annak általánosításával tehát tisztáztuk az adatbázis fogalmát. Nézzük meg, hogy mindebből következően az adatbázis milyen fontos tulajdonságokkal fog rendelkezni:
-
ha az adatok és kapcsolataik modellekbe, sémába szervezhetők, lehetővé fog válni egységes kezelésük, ez pedig ajtót nyit az adatbázis gépesítése, algoritmizálása felé.
-
Az ilyen módon szervezett adatbázisokra (lényegében) egységes kezelésű programozási nyelv is megvalósítható, amely képes akár tartalmilag különböző adatbázisokat is egységesen kezelni. Később látni fogjuk, hogy ez az SQL, amelynek azóta már jónéhány módosulása is kifejlődött, alapvetően adatbáziskezelő jellege azonban nem változott.
-
Egy “hétköznapi” adatbázisban az adatok egyszeresen vannak tárolva (nem számítva persze a biztonsági mentéseket), és használati szempontból úgy vannak megtervezve, hogy ne csak 1 felhasználó legyen képes hozzáférni. Bár erre is akad rengeteg példa, ám az adatbázisok jellemzően többfelhasználós rendszerek, ahol a felhasználók -jogosultságaiktól függően-, különböző mértékben és mélységben képesek az adatbázist menedzselni. Így alakulhatnak ki azon adatbázisok, amelyek már központi erőforrásként üzemelnek: az adatokat lehetőleg egyszeresen, sémákba szervezetten, alaposan átgondolt hozzáférési jogosultságokkal, elkülönített logikai (és fizikai) struktúrákban tárolják. Ilyen adatbázis bármely cég, szervezet egyik legfontosabb informatikai erőforrása. Gondoljunk csak bele, ha az adatokat nem ilyen módon tárolnánk! Minden dolgozónak, minden részlegnek (tágabb értelemben minden, bármely adatot “produkáló” entitásnak) saját, a többitől elkülönült adatkupaca lenne.
Utolsó definíciós szempontként, a fenti példát még egyszer általánosítva észrevehetjük, hogy az adatbázis a valóság egy kiragadott, a megfigyelő által fontosnak ítélt szeletét modellezi le. Az adatbázis tehát a maga statikus és absztrahált adat-kapcsolat pillanatképeivel szimulálja a valóság adott időszeletét és történéseit.
A ma leginkább elterjedett adatbázisok az úgynevezett relációs adatmodellre
épülnek (Codd, 1970). A relációs adatmodellben az adat-kapcsolat összefüggések
matematikailag vannak megfogalmazva, ellentétben a kezdetben oly népszerű
hierarchikus (hálós) adatmodelltől, ahol ezt gráfok és diagramok biztosítják,
vagy a szemantikai adatmodelltől, amelyben mindezt szavak, nyelvi elemek. Az
utóbbi adatmodell egyébként éppen emiatt tökéletesen életképtelennek
bizonyult.