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.