Adatbázis-objektumok és az SQL Server
Miből áll egy adatbázis?
A komolyabb célokra használható adatbáziskezelő rendszerek a kliens-szerver
koncepciót követik. A szerver legfontosabb feladatai a hatékony,
biztonságos adatelérés biztosítása, a hozzáférés felügyelete, és az "üzleti
logika" szerver oldalon szükséges részének megvalósítása. Ismertebb adatbáziskezelő-rendszerek
az Oracle, DB2, Informix, Interbase, SQL Server, Sybase, Ingres, stb.
Az adatbázis-programozás a logikai és fizikai
adatmodell, azaz az adatbázis-táblák és kapcsolatok elkészítésén túl sok
egyéb adatbázis-objektum elkészítését (programozását) jelenti. Ezek támogatottsága
rendszertől függő, a továbbiakban az SQL Server lehetőségeit ismertetjük.
Adattárolást és üzleti logikát megvalósító objektumok
Az SQL Server legfontosabb kezelőprogramja az Enterprise Manager, amely
adatbázisonként lehetővé teszi az összes objektum létrehozását, módosítását
és törlését. Az Access alatt már megismert Biblio adatbázist az SQL Server
alá importálva az Enterprise Manager kapcsolatszerkesztőjével a már ismerős
módon tudjuk létrehozni a kapcsolatokat és a kulcsokat. Az Access számláló
típusának itt az Identity felel meg.
Az adatbázis-objektumok kezeléséhez az alábbi felületet használhatjuk.
-
A legfontosabb objektum természetesen maga az adatbázis.
-
Táblák (Tables): a fenti képen látható a biblio adatbázis tábláinak
listája, köztük a rendszer által az adatbázis létrehozásakor automatikusa
generált és használt táblákkal (pl. sysobjects). Egy tábla nevére klikkelve
módosíthatjuk mezőszerkezetét és a mezőkhöz kötött default értékeket és
kényszereket (Design table), böngészhetjük (Open table), és kezelhetjük
a táblához kötött indexeket és triggereket.
-
Default értékek (Default ): Az új rekord beszúrásakor a mező ezt
az értéket fogja felvenni, ha az INSERT parancs NULL értéket ad az adott
mezőnek.
-
Nézetek (View, hasonló az Access Query-jéhez): Egy vagy több
táblából egy SELECT típusú lekérdezés hatására összeálló virtuális
tábla, amelyre más objektumok (pl. más nézetek) mint táblára hivatkozhatnak.
Van egy Access-szerű grafikus szerkesztője, a gyakorlatban azonban szinte
mindig kézzel kell a nézetet összeállítani.
-
Indexek (Index): A kulcsra a rendszer mindig készít egy unique (egyedi)
tulajdonságú indexet, de emellett a lekérdezések szerkezetétől függően
további indexeket vehetünk fel pl. külső kulcsoknak, vagy mezőcsoportok
egyediségének a biztosításra.
-
Kényszerek (Constraint, Rule): az üzleti körülmények biztosításának
egyik alacsonyszintű eszköze. pl. ha tudjuk, hogy csak 1600 után kiadott
könyvekkel akarunk foglalkozni:
-
Tárolt eljárások (Stored Procedure): A procedurális jellegű üzleti
logika megvalósításának legfőbb eszköze. A deklaratív SQL nyelv egy procedurális
bővítését használják (az SQL Server esetén ez a T-SQL), úgy foghatók fel,
mintha egymásra épülő függvények lennének, melyek rekordhalmazokat, visszatérési
értékeket, kimenő paraméterket, hibaüzeneteket adhatnak vissza. Paraméterezhetők,
általában a kliens programból hívjuk meg őket, és a visszakapott rekordhalmazt
prezentáljuk a felhasználónak.
-
Triggerek (Trigger): Egy táblához rendelt tárolt eljárás, amelyet
a rendszer a táblán végzett INSERT, UPDATE vagy DELETE esetén automatikusan
hív meg.
Az adatbázis menedzselését segítő objektumok
A különböző objektumokhoz való hozzáférés alapja a felhasználónév
(login) és jelszó. A védett objektum típusától függ, hogy milyen jogokat
lehet rá engedélyezni. Pl. tábla eseténa SELECT, UPDATE, INSERT, DELETE,
tárolt eljárásnál az EXECUTE engedélyezhető (többek között). A felhasználók
különböző előre definiált jogkör-halmazokban, szerepekben (role)
működhetnek, ami a felhasználók kezelését egyszerűsíti. Lehetőség van adott
időnként vagy adott időpontban elvégzendő feladat (job) megadására,
pl. napi mentés, stb. Ha a feladat elvégzését feltételhez kötjük
(pl. a hely kezd elfogyni a hely a lemezen), akkor riasztásról (alert)
beszélünk. Az alábbi képen a szerver pillanatnyi állapotát mutató panel
látható a futó processzekkel és zárakkal.
Az adatbázis-objektumok nemcsak az Enterprise Managerrel kezelhetők,
hanem a T-SQL és az ún. rendszer tárolt eljárások révén ODBC kapcsolaton
keresztül is (pl. Query Analyzer).