kategória | ||||||||||
|
||||||||||
|
||
Az adatbázis fogalma, fontosabb összetevöi, felhasználási módjai
1. Adatbáziskezelö rendszer (DBMS - DataBase Management System)
A DBMS komplex SW-HW rendszer, mely adatok magas szintü kezelését szolgálja. A "magas szintü" jelzö igényes felhasználói felületre utal.
Jellemzöi
nagy adatmennyiség: ez mega-, újabban pedig már terrabyte-os (1012 byte) adatmennyiséget jelent. A tárolás eszköze lehet diszk, dob vagy CD.
gazdag struktúra: ez adatmodell felállítását teszi lehetövé. Pl. a ¶ Newton-közelítése 16 jegyre pontosan nem szolgáltat adatbázist, csupán strukturálatlan bitfolyamot. Adatbázisról akkor beszélhetünk, amikor a biteknek struktúrája és íg 454e49e y jelentése van.
hosszú életciklus: fontos az adatok permanens megörzése, mert az együtt lévö adatmennyiség értéket képvisel.
2. A DBMS felhasználásával szembeni követelmények
Új adatbázis (a továbbiakban DB) létrehozása, ún. séma kialakítása és kezelése
Séma: adatok fogalmi struktúráját rögzíti. Ennek nyelvi eszköze a DDL (Data Definition Language), az adatdefiníciós nyelv. Erre a létrehozáskor ill. a rendszer változásakor van szükség.
Adatok beillesztése, törlése, módosítása, lekérdezése
Ennek nyelvi eszköze a
DML (Data Management Language), az adatmanipulációs nyelv, és a
QL (Query Language), a lekérdezö nyelv. (Ilyen pl. az SQL - Structured QL, ami felvállal DDL funkciókat is.)
Hatékony tárolás, kezelés, hozzáférés
Biztonság és védelem
Biztonság a meghibásodásokkal (Security), és védelem az illetéktelen hozzáférésekkel szemben (Privacy).
Felügyelje több felhasználó egyidejü konfliktusmentes munkáját
A '90-es évektöl kezdve a komolyabb rendszerek már ezt is figyelembe veszik.
3. A DBMS vázlatos modellje
A DBMS-hez az alábbi müveletekkel fordulhatunk
Sémamüveletek: a DB logikai vázának kialakítását, módosítását jelentik (a DDL igénybevételével).
2. Lekérdezések: kérdéseket fogalmazunk meg a DB tartalmával kapcsolatban. Ennek kétféle (bár nem teljesen független) változata:
a.) lekérdezö nyelven (QL) megfogalmazott kérdésekkel (pl. SQL), vagy
b.) alkalmazói programon keresztül feltett kérdésekkel nyerünk ki adatokat. Ez utóbbi esetben beszélhetünk gazdanyelvröl (host language), mely egy, a DBMS-hez hívásokat intézö általános célú programozási nyelv.
3. Adatmüveletek: adatok beillesztését, törlését, módosítását célozzák - ezek a DML funkciói is egyben. Az adatmüveletekben is érvényes a lekérdezéseknél megismert két ("a.)" és "b.)") változat. ("b.)"-re példa: banki rendszerekben kamatok jóváírása.)
A DBMS architektúra komponensei:
1. Tárkezelö: a diszkre ír és onnan olvas.
Részei:
File-kezelö: a fizikai szintü I/O-ot végzi, ami az állomány nyilvántartására és elemeinek kezelésére szolgál. (DB-környezetben az adatvesztés veszélye miatt nem megengedett a "nem fizikai" írás/olvasás, így például a UNIX-ban használt lapozás, ami nem mindig jár konkrét I/O-tal. Vagyis a módosításokat azonnal rögzíteni kell!)
(2.) Puffer-kezelö: ez a file-kezelö belsö memóriás kiegészítése; elkülönülést tesz lehetövé az operációs rendszer tárkezelö mechanizmusaitól és kezeli az I/O számára rendelkezésre álló belsö memóriát.
A puffer felépítése
A blokk egy ütemben írható/olvasható terület, mérete leggyakrabban 212-214 byte (ez egy rendszerfüggö paraméter).
A tárkezelö puffer-blokkjai elkülönülésének oka a fizikai adatfüggetlenség elve: ha igényeinkben változások állnak be, akkor a továbbiakban is használható legyen az adatbázis, vagyis logikai vázát ne kelljen átszervezni. Célunk tehát az, hogy a fizikai kérdéseket a többitöl nagyrészt függetlenül tudjuk kezelni.
2. "Lekérdezés" processzor (lekérdezés feldolgozó): magas szintü (pl. szelektor) kérdések átalakítását végzi egyszerü utasítások sorozatára. A "mit"-et bontja le kisebb elemekre, amelyek válaszolnak már a "hogyan"-ra is.
Ebben a lebontásban fontos az optimalizálás, a lehetséges végrehajtások közül az "intelligens" feldolgozó választ: végrehajtási tervet készít. A standard formában megfogalmazott kérdéseket lehetöséghez mérten átalakítja, majd a már végrehajtható utasításokkal a tárkezelö felé fordul.
Példa: ÜGYFÉL tábla
NÉV |
CÍM |
EGYENLEG |
NEMZETISÉG |
|
|
|
|
SELECT név
FROM ügyfél
WHERE egyenleg < 0 AND
nemzetiség = 'DOGON'
Azokra az nevekre vagyunk kíváncsiak az ÜGYFÉL táblából, akikhez negatív egyenleg tartozik és nemzetiségük "dogon" (<- afrikai népcsoport).
A feltétel szürése hatékonyabb, ha elsöként a nemzetiség szerint szelektálunk (mert példánkban egy ritka népcsoportot keresünk, s így a kiszürt hátralékos ügyfelek közül sokat kéne az eredményböl kizárni, mert nemzetiségük más), és csak ezután az egyenleg szerint. Látható tehát, hogy a jó szelektor-kérdések kialakítása nagyon fontos.
Lényeges a tábla elérési mechanizmusa is, ami lehet szekvenciális vagy indexelt, esetleg B-fával megoldott, stb.
A rendszerek nem törekszenek valódi optimum megtalálására - hiszen a szürési feltételek egymástól és az adatoktól való függése, hatékonysági sorrendje nagyon bonyolult lehet -, ezért inkább csak valamilyen módon közelítik az optimumot.
3. Tranzakció-kezelö: célja az, hogy egyidejüleg több folyamat párhuzamos hozzáférését biztosítsa az adatbázishoz. Kulcsfogalma a tranzakció: ez utasítások egybetartozó sorozata, ami felfogható egy program-egységnek is (amit egyes nyelveken -ek között írunk le).
Alapvetö követelmény a rendszerben a tranzakciók atomisága. A tranzakcióhoz tartozó utasítás-sorozat a "mindent vagy semmit" elven hajtódik végre, vagyis megszakíthatatlanul, oszthatatlanul. Vagy az összes, egy tranzakcióhoz tartozó utasítás lefut, vagy közülük egy sem. Ez a követelmény ahhoz, hogy teljesülhessen, a valós alkalmazásokban gyakran abortálást igényel (amikor a "semmit" ágon folytatódik a végrehajtás), mivel ütköztek az adatokhoz való hozzáférési igények.
A tranzakció határait képezö elvi -ek a belül lévö utasítás-sorozat védelmét szolgálják. Ezek elhelyezése a tervezés lényeges kérdése.
A tranzakció-kezelö feladatai:
atomiság biztosítása
következetesség (konzisztencia) biztosítása: adatok "közbülsö", tranziens állapota nem megengedett
tranzakciók elkülönítése: a véletlenszerüen, keveredve érkezö tranzakciók hatását el kell szeparálni
tranzakció-tartósság: egy sikerrel befejezödött tranzakció hatása legyen permanens, állandó; lehessen késöbb is erre a hatásra, eredményeire építeni. Komoly rendszerhibák ellen is legyen biztosítva a védettség, a DB ne sérüljön.
A tranzakció-kezelö alapeszközei:
zárak: egy tranzakció "lelakatol" egy adatot, adatelemet, és biztosítja, hogy más tranzakció ne dolgozhasson a használt adattal. A tranzakció végeztével a zár feloldódik. A zárral ellátható adatelemek mérete rendszerenként változik, a méret meghatározása külön tervezési szempontokkal rendelkezik.
naplózás: a naplóból végigkövethetök és "elszállás" esetén rekonstruálhatók a végzett tranzakciók, azaz a DB konzisztens állapotba hozható.
érvényesítés: a tranzakciók eredményének érvényességét igazolja. Például a "piszkos adatok" káros hatásait kiszürö protokollok tartoznak ide.
Vázlatos modellünket bizonyos árnyaló tényezök teszik a valódi rendszerekhez hasonlóvá. Ezek közül egy hatékony munkamegosztási eszköz a kliens-szerver architektúra:
A kliens elöfeldolgozott SQL kérdést ad a szervernek és táblát kap vissza. Célszerü tehát, ha a kliens oldal minél több munkát elvégez, hogy a szervertöl gyors válaszidökkel kaphassa meg az eredményt. A szerverhez való fordulás e módja trendként is felfogható.
4. A DBMS-sel kapcsolatos tevékenységek szintjei
Naiv felhasználó
Egyszerü lekérdezéseket intéz a rendszerhez vagy alkalmazói programokat indít.
DB-programozó
Összetett kérdéseket állít össze, alkalmazói programokat ír. Lehetösége van arra, hogy árnyaltabban, összetettebben használja ki a rendszer lehetöségeit.
DB-tervezö
Tevékenységi körébe tartozik a DB séma kialakítása, az adatok szerkezetének meghatározása, az adatok kapcsolatainak és a fizikai felépítésnek a tervezése.
(Itt húzhatunk egy képzeletbeli vonalat, mert nagy az ugrás a szakmai felkészültségben:)
DBMS-megvalósító
Tudja, hogyan kell DBMS-t készíteni, ami már komoly, specializált tudást igényel.
5. Amivel mi foglalkozunk
Tervezés: ez az adatmodellezés feladatköre. Ezen belül is szó lesz a következökröl:
ODL: objektumos adatmodellezés
Egyed/Kapcsolat megközelítés, modellezés
hálós és hierarchikus adatmodellezés
relációs adatmodellezés (fontos eleme a modell normalizálása)
Programozás: ORACLE/SQL és alkalmazása (a Szg.labor 6 keretében)
Megvalósítás: szisztematikusan nem, de az alapötletek szintjén vizsgálni fogjuk a kérdést. Szó lesz:
a fizikai szervezésröl,
a lekérdezés feldolgozásáról,
és a tranzakciókról.
Találat: 2129