DB-kezelés
- Háttértárolón tárolt, nagy adatmennyiség hatékony:
- kezelése
- lekérdezése
- módosítása
- Adatmodell támogatása
- DB-kezelő nyelvek támogatása
- Helyreállíthatóság
- Ügyfél-kiszolgáló támogatása
- Adatvédelem, adatbiztonság
Szódoga
- DDl
- Adatdefiniáló nyelv
- DML
- Adatkezelő nyelv
- QL
- Lekérdező nyelv
- Deklarazív - SQL
- Procedurális - Relációs algebebra
- Lekérdező nyelv
- PL/SQL
- Programozási rendszerek + SQL
- 4GL nyelvek
- Alkalmazások generálása
Több user támogatása
- Felhasználói csoportok
- DBA - Adatbázis-rendszergazda
- Jogosultságok
- Tárolásuk rendszertáblákban
Tranzakció-kezelés
- Tranzakció - adatkezelő műveletekből álló sorozat
- Zárolások (Lock, Unlock)
- A zár kiadásához meg kell várni a zár feloldását
- Csökken a párhuzamosíthatóság
- A zárak finomíthatóak ellene
Holtpont
- \(\orange{\text{T1}}\):
(Lock S, Read S, S:=S+1, Write S, Unlock S) - \(\blue{\text{T2}}\):
(Lock S, Read S, S:=S-1, Write S, Unlock S)
- T1 vár T2-re A miatt
- T2 vár T1-re B miatt
Megoldások
Kétfázisú protokoll
A tranzakció elején zárolunk minden szükséges adatelemet
Tranzakciók érvényesítése
Naplózás,
COMMIT,ROLLBACK,CHECKPOINT
Ütemező
Tranzakciók műveleteinek végrehajtási sorrendjéhez
"Szérializálhatóság"
Az ütemezés eredménye a műveletek egymás utáni végrehajtásával egyezzen meg
Tranzakciók állapotának, és elvégzett műveleteinek tárolása rendszertáblákban
Remember ACID
Atomicity- Atomiság
- A tranzakció vagy egységben fut le, vagy sehogy
Consistency- Következetesség
- A tranzakció után is konzisztens legyen a DB
Isolation- Elkülönítés
- Tranzakciók párhuzamos végrehajtása az utasítások szekvenciális végrehajtással legyen ekvivalens
Durability- Tartósság
- A befejezett tranzakció eredménye rendszerhiba esetén sem veszhet el
Ügyfél - Kiszolgáló felépítés
Kiszolgáló
- Nagy tárhely
- Gyors
- DB műveletek optimalizálva, párhuzamítva
Ügyfél
- DB műveletek megfogalmazása
- Lekérdezések küldése
- Eredményadatok fogadása
- Megjelenítése
Más felépítések is léteznek , például middleware rétegek az ügyfél és a kiszolgáló között
Adatvédelem / Adatbiztonság
- Jogosultságok kezelése
- Felhasználók, jelszavak, hozzáférési jogok
- Adatbázissémák korlátozása
- virtuális nézettáblákkal
- Tárolt és forgalomban levő adatok titkosítása
- (RSA, DES, ...)
DB-kezelők felépítése
- Lekérdezés-feldolgozó
- Lekérdezésen Szintaktikai ellenőrzés
- Objektumok és hozzáférési jogok meglétének ellenőrzése
- Metaadatbázis, rendszertáblák
- Lekérdezés optimalizálása
- Végrehajtási terv készítése
- Ideálisan az adatstruktúrák és azok mérete szerint minimális költségű legyen
- Végrehajtási terv lefuttatása
- Tranzakció-kezelő
- ACID
- Tárkezelő (állománykezelő)
- Fizikai adatstruktúrák, táblák, indexek, pufferek kezelése
Adatbázisok szintjei
- \(\orange{\text{Sémák és előfordulások}}\)
- \(\blue{\text{Fizikai, logikai, alkalmazói réteg}}\)
| \(\text{\orange{Séma}}\) | \(\text{\orange{Egy előfordulás}}\) | |
|---|---|---|
| \(\blue{\text{Alkalmazások}}\) | SELECT SUM(fiz) as összfiz FROM Bér; |
30 |
| \(\blue{\text{Logikai adatbázis}}\) | Bér(név,fiz) |
$ \begin{array}{l |
| \(\blue{\text{Fizikai adatbázis}}\) | Szekvenciális | (Bér, név,fiz, #2, Kiss, 10, Nagy, 20) |
- Fizikai adatfüggetlenség
- Fizikai adatbázis módosítása
- Indexek készítése
- Adatok más struktúrában tárolása
- Hatékonyság növelhető jobb tárolási struktúrákkal
- Fizikai adatbázis módosítása
- Logikai adatfüggetlenség
- A logikai adatbázis bővítése
- Új táblák, oszlopok hozzáadás
- A régi alkalmazások még működjenek
- Új táblák, oszlopok hozzáadás
- A logikai adatbázis bővítése