Adatbázisokról már szinte mindenki hallott, de mik is ezek pontosan? Mire használjuk az adatbázisokat?
Az adatbázisokat az adatok strukturált tárolására használjuk a könnyebb kereshetőség érdekében. Ezért rengeteg területen előfordulnak; a banki informatikától kezdve, a gyárakon át, a webfejlesztésig. Az adatbázisok segítségével az éppen használt rendszerből tárolhatunk le adatokat, de fel is vihetjük őket, módosíthatjuk, vagy akár törölhetjük is. Programozóként az adatbázisok területén vagyok a legtapasztaltabb, ugyanis minden valamire való rendszer, használ valamilyen adatbázist. Az adatbázisok célja az adatok megbízható, hosszú távon tartós tárolása, és viszonylag gyors visszakereshetőségének biztosítása.
Mit érdemes tudni az adatbázisokról?
Adatbázisok fajtái
Az adatbázisok két fajtáját szokás megkülönböztetni, a logikai és a fizikai adatbázist.
A logikai adatbázis lényegében a „mit tárolunk” (mit és hogyan akarunk látni az adatokból) kérdésre ad választ. A fizikai adatbázis pedig a „hogyan tároljuk” (mit és hogyan érünk el a fizikai háttértáron) kérdésre.
Az adatbázisoknál a logikai adatbázist kedveljük, ellentétben a fizikaival szemben, mivel általában az érdekel minket, hogy mit tárolunk, nem pedig az, hogy hol tároljuk. A logikai adatbázisoknál az adatmodellek eltérései alapján beszélhetünk relációs, objektumorientált, hálós, deduktív, illetve objektumrelációs, deduktív relációs, deduktív objektumorientált stb. adatbázisokról. A relációs adatbázisok használata a leggyakoribb, így én is erről fogok beszélni.
Relációs adatbázis
Erre a relációs adatbázisra épül az SQL nyelv, melyet általánosan elfogadtak a fejlesztők. Ezek között is van több féle, például az Oracle, MSSQL, MySQL, és a PostgreSQL. A MySQL-t – mióta átvette az Oracle cég a fejlesztését – az Oracle kis tesójának is hívják. Ez egy általános ingyenes relációs adatbázis, ahogyan PostgreSQL is, de utóbbi kevésbé elterjedt.
MySQL
Jelenleg a relációs adatbázisok közül, a MySQL a legelterjedtebb a webfejlesztők körében. Az ár és a gyorsaság miatt esik általában erre az adatbázisra a választás. Habár, nem lehet benne tárolt eljárásokat létrehozni, mint a fizetős nagy tesóban az Oracle-ben, és az Oracle konkurenciájában lévő MSSQL-ben.
A tárolt eljárások segítenek abban, hogy bizonyos időközönként a szükséges SQL utasítások sorozata lefusson a táblákon, ezzel megkönnyítve az adatok kezelését. Mivel ezeket a tárolt eljárásokat nem lehet MySQL-ben létrehozni, a programozó kénytelen ezen eljárásokat másképpen megoldani.
De beszéljünk most egy kicsit a relációs adatbázisok felépítéséről
A relációs adatbázisok táblákból és a táblák kapcsolatából állnak, melyek segítségével elérjük az adatokat. Például, ha van egy étterem, ahol a vendégek számozott asztaloknál ülnek, akkor a rendeléseket a számokhoz veszik fel, s készítik el.
Ezt lehet matematikailag úgy is nézni, hogy van:
- asztalok tábla számozással
- menü tábla számozással
- és az őket összekötő tábla, mely az asztalokat és a menüket tartalmazza, immár csak a jelölőszámokkal, és mennyiségekkel. (valamint, hogy kiszervírozták-e már vagy sem).
Ezen táblákból lehet azt lekérdezni, hogy melyik asztalnál, mennyi, s milyen menüt kértek összesen a nap végén, mennyi lett esetleg visszavíve, vagy elfogyasztva. Ez egy egyszerű példa, de a bankok és a tőzsdék is használják a relációs adatbázisokat, mert ezzel a módszerrel viszonylag egyszerű a lekérdezés.
Ahhoz hogy a relációs adatbázis lekérdezése gyors legyen, két dolog szükséges:
- Az adatbázist felépítő táblák megtervezésénél az optimalitásra törekedjünk
- A lekérdezés megírásánál is optimalitásra törekedjünk
Tehát minél jobban bonyolítunk egy lekérdezést, annál hosszabban fut le, s minél több oszlopú táblákat hozunk létre, annál nagyobb adatmozgatással tudjuk lekérdezni egy – egy sor egy – egy elemét. A létrehozást és lekérdezést érdemes valamilyen adatbázis-kezelő segítségével végrehajtani.
Adatbázis-kezelők
Ingyenes adatbázis-kezelő például a:
- MySQL Workbench
- Dbeaver
- phpMyAdmin
Ezekből szerény véleményem szerint, a Dbeaver a legjobb, ugyanis a másik kettőt csak MySQL-hez lehet használni, míg a Dbeaver-el lehet Oracle-t, MSSQL-t és egyéb más népszerű adatbázist kezelni.
Fizetős adatbázis-kezelők például a:
- Microsoft SQL Server Management Studio
- Navicat a MySQL számára
- TOAD többféle adatbázis számára
- SQLyog MYSQl számára
A fizetősek közül, Nekem a TOAD vált be a legjobban.
A megfelelő választásához előbb érdemes jól utána nézni, hogy az adott feladatokhoz, melyik lesz a leghasznosabb és aszerint dönteni.
Az adatbázisok tervezése
Az adatbázis logikai szerkezetének kialakítása nem egy sablon feladat, ezért érdemes szakemberre bízni. Bármennyire is tűnik egyszerűnek, számos szempontot kell figyelembe venni; például pontosan azonosítani kell, hogy milyen adatok tárolását szeretnénk megvalósítani, azok mennyire összetettek és fenntarthatók, más adatokhoz milyen viszony fűződik, de figyelni kell arra is, hogy az adatbázis hosszú távú használatából származó működési rendellenességeket már szerkezeti szinten is elkerüljük, illetve arra is, hogy minél kevesebb tárhelyet kelljen foglalni az adattároláshoz.