Adatbázis-kezelés
Alapfogalmak Adatbázis adott célból összeállított adatok rendezett gyűjteménye (általában digitális formában) Adatbázis-kezelő rendszer (DBMS – DataBase Management System) speciális szoftver, amellyel lehetséges az adatbázisok kezelése fő funkciói: adatdefiníció: szerkezet megadása, feltöltése adatokkal és ellenőrzése adatmanipuláció (adatkezelés): adatok visszakeresése, karbantartása adatfelügyelet: ki mihez férhet hozzá, azaz jogosultságok
Alapfogalmak Adatmodell Adatmodellezés a feladat céljából a valós világ adatainak szerkezetét és kapcsolatait leíró modell Adatmodellezés az a módszer, ami a feladat céljából a valós világ megfigyelt és megvizsgált adatainak szerkezetét, az adatok kapcsolódási pontjait és azok sokaságát leírja végeredménye: logikai adatmodell
Adatmodell alapfogalmai Egyed Tulajdonság Kapcsolat
Egyed azok az objektumok, amelyeket adatokkal szeretnénk leírni egyedtípusokba rendezhetőek egyedtípus: olyan általános objektum, amely minden más objektumtól megkülönböztethető. azonos tulajdonságtípusokkal rendelkező egyedek halmaza. Pl.: tanuló a típus szó utal arra, hogy sok konkrét dolgot foglal magába. egyed-előfordulás: egyedtípus konkrét eleme
Tulajdonság (attribútum) egyedtípusok (feladat szempontjából) lényeges jellemzői az objektumok (egyedek) tulajdonságait tulajdonságtípusokba rendezhetjük tulajdonságtípus: azonos jellemzőt leíró tulajdonságok halmaza. Pl.: név tulajdonság-előfordulás: konkrét egyed konkrét tulajdonsága
Tulajdonságok csoportosítása Elemi tulajdonság nem bontható tovább (pl.: igazolványszám) Összetett tulajdonság több tulajdonságból áll (pl.: lakcím)
Speciális tulajdonságok azonosító tulajdonság az a tulajdonság, vagy azok egy csoportja, amelyek egyértelműen meghatározzák, hogy melyik egyed-előfordulásról van szó (elsődleges kulcsnak is nevezik) minden egyednek pontosan egy azonosítója van (ha nem tudunk ilyet kiválasztani, akkor egy speciális azonosítót kell bevezetni, pl.: sorszám, kód) egyetlen egyed-előfordulásban sem lehet üres az értéke lehet egyszerű (egy tulajdonságból áll) vagy összetett (több tulajdonságból áll)
Speciális tulajdonságok leíró tulajdonság a nem azonosító tulajdonságok elnevezése minden egyedhez tetszőleges számú leíró tulajdonság tartozhat értéke lehet üres (ismeretlen) ha az adott tulajdonság az előfordulások egy részénél üres (ismeretlen), akkor gyengén jellemző tulajdonságnak nevezzük
Speciális tulajdonságok kapcsoló tulajdonság az egyik egyedben azonosító, a másikban leíró típusú tulajdonság ez biztosítja a kapcsolatot két egyed között idegen kulcsnak is nevezik
Egyedtípusok jellemzői Két egyed-előfordulás akkor tartozik egy egyedtípusba, ha azonos tulajdonságokkal rendelkezik. Két egyed-előfordulást az különböztet meg egymástól, hogy legalább egy tulajdonságuk értéke különbözik. Az egyedtípusok tulajdonságai között lennie kell legalább egynek, amely értéke minden előfordulás esetén különböző (azonosító).
Kapcsolat Két egyedtípus előfordulásai között lévő viszony. Típusai: 1:1 (egy-az-egyhez) 1:N (egy-a-többhöz, hierarchikus kapcsolat) M:N (több-a-többhöz, hálós kapcsolat)
Pl.: A = férfi, B = nő; kapcsolat = házasság Az A egyedtípus egy előfordulásához a B egyedtípus legfeljebb egy előfordulása tarozhat, és fordítva. A B Pl.: A = férfi, B = nő; kapcsolat = házasság
Pl.: A = osztály, B = tanuló 1:N kapcsolat Az A egyedtípus egy előfordulásához a B egyedtípus több előfordulása tarozhat, de a B egyedtípus egy előfordulásához az A egyedtípus legfeljebb egy előfordulása tartozhat. A B Pl.: A = osztály, B = tanuló
M:N kapcsolat Az A egyedtípus egy előfordulásához a B egyedtípus több előfordulása tarozhat, és fordítva. A B Pl.: A = szerző, B = könyv
M:N kapcsolat Nincs alá és fölérendeltség az egyedtípusok között. Az adatbázis-kezelő rendszerek nem tudják általában közvetlenül kezelni az M:N kapcsolatot, hanem egy kapcsoló egyedtípus segítségével felbontják két 1:N kapcsolatra.
Logikai adatmodellek A gyakorlatban 3 alapvető adatmodell terjedt el: Hierarchikus adatmodell Hálós adatmodell Relációs adatmodell
Hierarchikus adatmodell Egyszerűen leírható szerkezettel rendelkezik, 1:1 és 1:N kapcsolatokat képes kezelni Az adatokat hierarchikus fa-struktúrában tárolja, így jól kezeli az alá és fölérendeltséget A csomópontok az egyedtípusok (a gyökér is csomópont), minden csomóponthoz tartozik legalább egy lejjebbi és feljebbi csomópont (kivéve gyökér) Minden egyedtípus egyetlen úton érhető el (szervezeti felépítésre hasonlít)
Hálós adatmodell Hierarchikus adatmodell továbbfejlesztése, bonyolult kapcsolatokat is képes ábrázolni M:N kapcsolatot is képes kezelni, de csak átalakítással Egy egyedtípushoz több úton is el lehet jutni Az egyed-előfordulások közötti kapcsolatot mutatók (pointer) felhasználásával oldották meg Az egyedek tulajdonságait külön írja le
Relációs adatmodell Az adatokat 2 dimenziós táblákban (reláció) ábrázolja sor = egyed-előfordulások oszlop vagy mező = egyed tulajdonsága A tulajdonság a hangsúlyos, a kapcsolat nem épül be, csak lehetőséget kap a modellben 1:1 és 1:N kapcsolatot kezel, az M:N kapcsolatot fel kell bontani több 1:N kapcsolatra
Relációs adatmodell Egyszerű és rugalmas modell A táblák közötti kapcsolatot a közös tulajdonságok jelentik Reláció fontos tulajdonságai: reláció foka: tulajdonságok száma reláció számossága (kardinalitása): sorok száma Az 1:N kapcsolatban azt az egyedet, amelyben a kapcsolatot kifejező tulajdonság azonosító szerepű, fölérendeltnek nevezzük. Az 1:N kapcsolatban azt az egyedet, amelyben a kapcsolatot kifejező tulajdonság kapcsoló szerepű, azt alárendeltnek nevezzük.
Normalizálás Célja: a tárolás és karbantartás szempontjából az optimális szerkezetű egyedtípusok (relációk) kialakítása Léteznek adatmodellező programok, amik ezt automatikusan elvégzik, de az eredmény nem biztos, hogy megfelelő lesz
Normalizálás fogalmai Többértékű tulajdonság: azon tulajdonság, amely egy előfordulásban több értékkel is rendelkezhet (pl.: nyelvismeret) Tranzitív függés: egy nem azonosító tulajdonság meghatároz egy másik leíró tulajdonságot (pl.: irányítószám, helyiség)
Normalizálás fogalmai Funkcionális függés (A és B ugyanazon reláció egy-egy tulajdonságtípusa): az A funkcionálisan meghatározza B-t, ha a reláció minden előfordulásában A minden egyes értékéhez B-nek csakis egy értéke társul (pl.: rendszám, szín) Kölcsönös funkcionális függés: az A és B, valamint B és A funkcionálisan meghatározzák egymást (pl.: osztálykód, osztálynév) Két tulajdonság funkcionálisan független, ha nem áll fenn köztük funkcionális függés (pl.: típus, szín)
Normalizálás fogalmai Ha a meghatározó tulajdonság összetett (A+B), akkor megkülönböztetünk részleges és teljes funkcionális függést. részleges funkcionális függés: ha az összetett tulajdonságból (A+B) bármely tagot kiemelve is fennáll a függés (pl.: számlaszám, árukód) Két reláció között logikai átfedés van, ha mindkettőben van azonos névvel és/vagy tartalommal rendelkező tulajdonságtípus
Normalizálás fogalmai Logikai átfedések típusai: gyenge logikai átfedés: ha az átfedő (azonos) tulajdonságtípus az egyik egyedtípusban azonosító, a másikban leíró típusú erős logikai átfedés: ha az átfedő tulajdonságtípus egyik egyedtípusban sem azonosító
Relációs adatmodell jellemzői A reláció nem tartalmazhat két egyforma sort A reláció sorainak sorrendje lényegtelen Bármely sorra az azonosítóval hivatkozhatunk A reláció oszlopaira névvel hivatkozunk Az oszlopok sorrendje lényegtelen Ha ezeknek a feltételeknek megfelel egy reláció, akkor 0. normál formába (NF) van.
Normál formák (NF) 0. normál forma követelményei: a reláció minden tulajdonsága funkcionálisan függ az azonosítótól. a relációk közti kapcsolatot a köztük lévő gyenge logikai átfedés képezi minden reláció kapcsolatban áll minden más relációval Ha a reláció 0NF-ban van, és nem tartalmaz többértékű tulajdonságot, akkor legalább 1NF-ban van.
Normál formák (NF) Ha a reláció 1NF-ban van, és nem tartalmaz részleges funkcionális függést, akkor legalább 2NF-ban van. ha egy reláció 1NF-ban van, és egyszerű azonosítóval rendelkezik, akkor 2NF-ban is van. Ha a reláció 2NF-ban van, és nem tartalmaz tranzitív függést, akkor legalább 3NF-ban van. A relációs adatmodellek jellemzően 3NF-ban vannak.