Bevezetés és relációs adatmodell

Mi az az adatbázis?

Hátköznapi értelemben: összefüggő adatok praktikusan rendezett gyűjteménye és ezeknek valamilyen rendszerben való tárolása, amely a való világot valamilyen szempontból modellezi.

Adathalmaz adatbázis.

Ma már az élet számos területén alapvető fontossággal bírnak.

Példa: egyetemi oktatás

Tegyük fel, hogy egy olyan adatbázist szeretnénk, amely az egyetemi oktatásról készít modellt.

A dolgok, amelyeket tárolnunk kell:

  • Infók az oktatókról
    • azonosítószám
    • név
    • beosztás
  • Tárgyakról
    • név
    • oktató azonosító
    • bevezetés éve
  • Termek használatáról
    • épület
    • szobaszám
    • időköz
    • tárgynév

Egy tárgyat egy vagy több oktató oktathat, egy oktató egy vagy több tárgyat oktathat.

Egy időben egy teremben csak egy tárgyat oktathatnak.

Nyers fájlok

Tároljuk az adatokat CSV fájlokban.

Használjunk egy-egy fájlt az oktatóra, a tárgyakra és a teremhasználatra!

Az alkalmazásunknak majd szintaktikai elemzést kell végezni minden egyes alkalommal a fájlokon, amikor olvasni/frisséteni fogja a bejegyzéseket.

Adatintegritás

Hogyan tudjuk azt biztosítani, hogy egy előadó az összes albumánál ugyanabban a formában jelenjen meg?

  • Pl. adatbázis, adatbázisok, AB,

Mi történik, ha valaki véletlenül felülírja a tárgy bevezetésének évét egy érvénytelen stringgel?

  • Pl. 1993 helyett ezerkilencszázkilencvenhérom.

Hogyan, milyen formában tároljuk, ha több oktató oktat egy tárgyat?

Implementáció

Hogyan keresünk meg egy adott bejegyzést?

Mi van, ha egy új alkalmazást akarunk készíteni, amelyik ugyanazt az adatbázist használja?

Mi van, ha két thread egyidőben ugyanabba a fájlba próbál írni?

Tartósság

Mi van, a a gép elszáll, miközben éppen egy bejegyzést frissítünk?

Mi van, ha a magas rendelkezésre állás érdekében többszörözni/másolni akarjuk ugyanazt az adatbázist több gépen?

Adatbázis definiálása

Az adatbázisnak új meghatározást adunk: olyan adatok együttese, amelyet egy adatbázis-kezelő rendszer (DBMS: Database Management System) kezel.

Az általános DBMS megoldandó feladatai:

  • új adatbázisok létrehozása, ezek logikai szerkezetének, sémájának definiálása, adatdefiníciós nyelv (DDL - Data Definition Language)
  • adatok lekérdezése, módosítása (DML - Data Manipulation Language)
  • nagyméretű adatok hosszú időn keresztül történő tárolása, adatok biztonsága, meghibásodásokkal, illetéktelen hozzáférőkkel szemben, hatékony adatbázis-hozzáférés
  • egyszerre több felhasználó egyidejű hozzáférésének biztosítása

Adatmodell fogalma

Az adatmodell információ vagy adatok leírására szolgáló jelölés.

A leírás részei:

  • az adatok struktúrája
  • az adatokon végezhető műveletek
  • az adatra vonatkozó megszorítások

Legfontosabb modellek: relációs és féligstruktúrált (XML)

Relációs adatmodell

A relációs adatmodellben az adatokat kétdimenziós táblákban (relációkban) tároljuk.

A reláció fejrészében találhatók az attribútomok

Minden attribútomhoz hozzátartozik egy értékkészlet

A reláció neve és a reláció-attribútomok halmaza együtt alkotják a relációsémát

A reláció attribútumainak sorrendje felcserélhető.

A séma egy adatmodellben általánosságban azt adja meg, hogy egy-egy adatelem milyen "formájú" adatokat tárol.

Egy-egy reláció soroknak egy halmaza

Halmaz: nem számít a sorrend, egy elem csak egyszer szerepelhet.

A reláció sorainak halmazát előfordulásnak nevezzük.

esetén az attribútomok értékkészlete adja az alaphalmazokat (), egy egy előfordulás pedig egy-egy matematikai relációnak "feleltethető meg".

Az attribútumok sorrendje láttuk, hogy nem rögzített a relációsémában. Egy-egy előfordulás ábrázolása esetén viszont rögzítésre kerül.

A lényeg, hogy a soroknál egy attribútum értékét az attribútum nevével azonosítjuk, és nem pedig azzal, hogy hányadik helyen szerepel a soron belül.

Az adatbázis tulajdonképpen relációk halmaza. A megfelelő relációsémák halmaza adja az adatbázissémát, a hozzá tartozó előfordulások pedig az adatbázis-előfordulást.

Egy sor elemeit mezőnek (komponens) nevezzük. Minden mező csak atomi értéket vehet fel. Léteznek bonyolultabb adatmodellek is, ahol egy mező értéke lehet halmaz, lista, tömb, referencia stb.

Megjegyzés: a gyakorlatban sokszor megengedik a sorok ismétlődését, hiszen az ismétlődések megszüntetése nagyon időigényes

Megszorítás

Az attribútumok egy halmaza egy kulcsot alkot egy relációra nézve, ha a reláció bármely előfordulásában nincs két olyan sor, amelyek a kulcs összes attribútumának értékein megegyeznének.

pl. TAJ-szám...

A kulcsot aláhúzás jelöl: Teázó(név, város, tulaj)

Algebra

Egy algebra általában műveleteket és atomi operandusokat tartalmaz.

A relációs algebra lehetővé teszi kifejezések megfogalmazását az atomi operandusokon és az algebrai kifejezéseken végzett műveletek alkalmazásával kapott relációkon.

Fontos tehát, hogy minden művelet végeredménye reláció, amelyen további műveletek adhatók meg.

A relációs algebra atomi operandusai a következők:

  • a relációkhoz reprezentáló változók
  • konstansok, amelyek véges relációt fejeznek ki

Relációs algebra

  • Projekció: Adott relációt vetít le az alsó indexben szereplő attribútumokra.
  • Szelekció: Kiválasztja az argumentumban szereplő reláció azon sorait, amelyek eleget tesznek az alsó indexben szereplő feltételnek.
  • Unió, metszet, különbség
  • Descartes-szorzat
  • Átnevezés: relációk adott attribútumanak átnevezése.
  • Théta-összekapcsolás: összekapcsolás valamilyen predikátummal
  • Természetes összekapcsolás: összekapcsolás predikátum nélkül

Egy relációkon értelmezett operátor akkor monoton, ha bármelyik argumentumrelációhoz egy újabb sort hozzávéve az eredmény tartalmazza az összes olyan sort, amelyet addig tartalmazott és esetleg újabb sorokat is.

Források