Irodai szoftverek

Az adatbázis-kezelés alapjai

Relációs adatbázis

A relációs adatmodellben az adatokat egymással logikai kapcsolatban álló táblákba rendszerezzük.

Egy tábla oszlopainak és sorainak a következő feltételeknek kell megfelelniük:
- minden oszlopnak egyértelmű neve van,
- minden sorban ugyanazok az oszlopok vannak,
- az oszlopokban található adatok meghatározott értéket vehetnek fel,
- az oszlopok soronként csak egy értéket vehetnek fel,
- a táblát a neve egyértelműen azonosítja.

A tábla a logikailag összetartozó adatokat foglalja össze. A tábla oszlopokból és sorokból áll, amelyeket mezőknek, illetve rekordoknak nevezünk.

Alapfogalmak

Rekord (egyed): az adatbázis egy sora. Egy rekordban tároljuk az egymással összefüggő adatokat.

Mező: az adatbázis egy oszlopa, amelyben az egyedek tulajdonságértékeit tároljuk.

Tulajdonság: az egyed valamely jellemzője. Az egyed az attribútumok összességével jellemezhető. Az egyedre vonatkozóan megadott tulajdonságok összességét egyedtípusnak nevezzük. Az egyedre vonatkozóan megadott konkrét tulajdonságokat egyed előfordulásnak nevezzük. Az elemi adatok a tábla celláiban szereplő értékek, amelyek az egyed konkrét tulajdonságai.

Elsődleges kulcs: a tábla rekordjainak egyértelmű azonosítója, értéke egyedi.

Idegen kulcs: olyan azonosító, amelynek segítségével egy másik tábla elsődleges kulcsára hivatkozhatunk.

Index: A táblákban való keresés és a sorba rendezés gyorsítására alkalmas eszköz.

Táblakapcsolatok

A táblák közti kapcsolatok az egyedek egymáshoz való viszonyát írják le. Az egyedek közti kapcsolatot háromféleképpen írhatjuk le:

1:1 kapcsolat: az egyik tábla egy eleméhez a másik tábla pontosan egy eleme kapcsolódik.
1:N kapcsolat: az egyik tábla egy eleméhez a másik tábla több eleme is tartozhat.
N:M kapcsolat: bármely tábla elemeihez a másik tábla tetszőleges számú eleme tartozhat.

Kapcsolat létrehozása

Két tábla között létre hozhatunk kapcsolatot menü segítségével vagy, hogy a mezőlistáikból egymásra húzzuk a kapcsolatban résztvevő mezőket.

Mindig az elsődleges tábla azonosítóját visszük a kapcsolódó tábla idegen kulcsára. Az egér elengedésekor megjelenik a Kapcsolat szerkesztése ablak, amelyben ellenőrizhetjük, korrigálhatjuk a kapcsolódó mezőket, valamint szabályozhatjuk a kapcsolat tulajdonságait. A tulajdonságok beállítása után a Létrehozás gombbal alakíthatjuk ki a kapcsolatot. Ilyenkor megjelenik a két tábla kapcsolatát jelképező vonal, amely a kapcsolódó mezőket köti össze.

Az adatbázis-kezelő rendszerek az egyedtípusok adatainak és azok kapcsolatainak tárolására, valamint az adatbázis konzisztenciájára is ügyelnek. Figyelik és kizárják az egymásnak ellentmondó adatok keletkezését.

A hivatkozási integritással érhetjük el, hogy az adatbázis-kezelő rendszer megőrizze az adatbázis konzisztenciáját.

Hivatkozási integritás

A hivatkozási integritás megóvja az adatbázist attól, hogy az elsődleges táblában végzett módosítás veszélyeztesse a táblák kapcsolatát.

A hivatkozási integritás megőrzése a következő korlátozásokat jelenti:
- Új rekord hozzáadása a kapcsolt táblához csak akkor lehetséges, ha létezik hozzá a csatolás alapján megegyező rekord az elsődleges táblában.
- Az elsődleges tábla elsődleges kulcsát nem módosíthatjuk, ha létezik hozzá kapcsolt rekord a kapcsolt táblában.
- Az elsődleges táblából nem törölhetünk olyan rekordot, ha létezik hozzá kapcsolt rekord a kapcsolt táblában.

Van amikor mégis szükségünk van az elsődleges táblában az elsődleges kulcs módosítására, vagy rekord törlésére. Ilyenkor lehetőség van a kapcsolt mezők kaszkádolt frissítésére, törlésére, ami azt jelenti, hogy adatbázis-kezelő rendszer az elsődleges táblában végzett módosításokat a kapcsolt tábla megfelelő rekordjaiban is elvégzi.

Kapcsolt mezők kaszkádolt frissítése

Alapbeállítás szerint a adatbázis-kezelő program nem engedi, hogy utólag megváltoztassuk az elsődleges kulcs értékét.

Ha mégis meg akarjuk változtatni utólag az elsődleges kulcsot, el kell érnünk, hogy ha megváltozik egy elsődleges kulcs értéke, akkor a kapcsolódó táblában automatikusan az új értékre változzanak a kapcsolódó rekordok idegen kulcsainak értékei is. Ezt nevezzük kaszkádolt frissítésnek.

A kapcsolt mezők kaszkádolt frissítése az jelenti, hogy az elsődleges kulcs értékének utólagos megváltoztatásakor automatikusan az új értékre frissíti a kapcsolódó rekordok idegen kulcsainak értékeit is.

Kapcsolt mezők kaszkádolt törlése

Ha egy kapcsolat elsődleges táblájából törlünk egy olyan rekordot, amihez a kapcsolódó táblában kapcsolódik rekord, akkor sérül a hivatkozás integritás, mert a kapcsolódó rekord „árván” marad, azaz olyan rekordra fog hivatkozni, amely már nem létezik az elsődleges táblában.

Ha az elsődleges táblából törlünk egy rekordot, akkor automatikusan törlődik a kapcsolódó tábla, kapcsolódó rekordjai is. Ezt nevezzük kaszkádolt törlésnek.

A kaszkádolt törlés veszélyes is lehet, mert 1:n kapcsolat esetén egyetlen rekord törlése az elsődleges táblában, a kapcsolódó tábla több rekordjának törlésével járhat.

Adatbázis objektumok

Táblák

Táblát létrehozhatunk új adatbázis létrehozásával, tábla meglévő adatbázisba történő beillesztésével, vagy külső adatforrás importálásával vagy csatolásával. Az információk importálása során másolatot készítünk az külső adatokról az aktuális adatbázis új táblájában. Ezzel szemben az adatok csatolásakor egy csatolt táblát hozunk létre az adatbázisban, amely élő kapcsolatban áll a máshol tárolt adatokkal. Ha egy másik alkalmazás módosítja az eredeti forrás adatait, a változások megjelennek a csatolt táblában is.

Mezőtípusok

Apró egész (TINYINT): 3 számjegy hosszúságú egész szám.
Kis egész (SMALLINT): 5 számjegy hosszúságú egész szám.
Egész (INTEGER): 10 számjegy hosszúságú egész szám.
Valós (REAL):  17 számjegy hosszúságú valós szám. A tizedes jegyek száma megadható.
Duplapontos (DOUBLE):  17 számjegy hosszúságú valós szám. A tizedes jegyek száma megadható. Duplapontossággal tárolódnak a számok.
Nagy egész (BIGINT): 19 számjegy hosszúságú egész szám
Szám (NUMERIC): Számjegyenként tárolt valós szám.
Decimális (DECIMAL): Számjegyenként tárolt valós szám.

Szöveg (fix) (CHAR): Adott karakterhosszúságú szöveg. Ha a szöveg rövidebb akkor szóközzel tölti fel.
Szöveg (VARCHAR): 255 karakter? Adott karakterhosszúságú szöveg. Mindig csak a szükséges hosszt foglalja le.
Memo (LONGVARCHAR): 2147483647? Hosszú szöveget tartalmazó mező.
Dátum (DATE): Dátumot tartalmazó mező.
Idő (TIME): Időt tartalmazó mező.
Dátum/Idő (TIMESTAMP): Dátumot és időpillanatot tartalmazó mező.

Igen/Nem (BOOLEAN): Logikai Igen/Nem értéket tartalmazó mező.

Lekérdezések

A lekérdezés az adatokra vonatkozó utasításokból áll. A lekérdezés végrehajtásával ezeket az utasításokat hajtjuk végre. Az eredmények visszaadása mellett – amelyeket rendezhetünk, csoportosíthatunk, szűrhetünk – a lekérdezés adatokat hozhat létre, másolhat, törölhet vagy módosíthat.

Az egy sorban levő feltételek között ÉS, a sorok kritériumai között pedig VAGY kapcsolat van.

A feltételek megadásához használhatóak az AND, OR és NOT logikai operátorok, valamint a relációjelek (<, >, =, <=, >=, <>)

Operátorok

LIKE 'xxx': A mintaszövegnek megfelelő adatokat kereshetünk. A %-jel bármilyen, bármennyi karaktert helyettesít.

Szöveg elején: LIKE 'xxx%'
Szöveg végén: LIKE '%xxx'
Szövegben bárhol: LIKE '%xxx%'

BETWEEN x AND y: Két szám vagy két dátum közötti értéket kereshetünk.

IN (xxx): az oszlopkifejezés értéke szerepel-e a megadott értéklistában.
NOT IN (xxx): az oszlopkifejezés értéke nem szerepel a megadott értéklistában.

Űrlapok

Az űrlap táblák vagy lekérdezések adatainak bevitelére, szerkesztésére és megjelenítésére használható adatbázis-objektum. Űrlapokkal szabályozhatjuk az adatokhoz való hozzáférést is, így meghatározhatjuk, hogy mely mezők vagy adatsorok jelenjenek meg.

Az űrlapok készülhetnek az adatbázis tábláiból vagy lekérdezéseiből. Attól függően, hogy milyen típusú űrlapra van szükségünk, választhatunk űrlaptípusok közül.

Egyedivé tehetjük az űrlapot vezérlők elhelyezésével.

Jelentések

A jelentés az adatok nyomtatott formában történő megjelenítésének hatékony módja, ugyanakkor segítségükkel csoportosításokat, rendezéseket és összegzéseket is végrehajthatunk.

A jelentések alapjául szolgáló adatok származhatnak táblából, illetve lekérdezésekből. Ha több táblából származó adatokat szeretnénk megjeleníteni, célszerű ezeket egy lekérdezésben összefoglalni, és erre alapozni a jelentést. Ha a jelentés alapjául szolgáló tábla vagy lekérdezés adatait módosítjuk, a módosítás megjelenik a jelentésben is.