Kihagyás

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
  • 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)

Tranzakció

  • 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 ANSI/X3/SPARC modellje

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
  • 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