Adatbázis (alapfogalmak)
Alapfogalmak I Adat: minden olyan ismeret, mely már előzőleg rögzítésre került. Matematikailag leírható – számmal ábrázolható. Információ: olyan adat, amely az adott személy számára új ismerettel bír
Alapfogalmak II. Adatbázis: egy adott területre jellemző adatok összessége, melyből különféle módszerek segítségével információt tudunk kinyerni. (pl: ókori egyiptomi nyilvántartások (papirusz tekercs, kórházi kartoték-rendszer, könyvtári állomány nyilvántartása, stb ) Adatbázis-kezelő rendszer: általában olyan szoftvereszközt értünk, melynek megfelelő használatával az adott adatbázisból információt, adatot tudunk kinyerni. Tovább
Adatbázis-kezelő rendszer alapvető feladatai Adatok megbízható tárolása. A meglévő adatokból információ kinyerése.
Adatbázisok fajtái Hierarchikus Hálós Táblázatos formájú (relációs) adatbázis
Relációs adatbázis-kezelő Egy bányavállalat személyi nyilvántartó rendszerben tárolja a dolgozók adatait! A következő adatokat kellene nyilvántartanunk: A dolgozó nevét, Címét, Foglalkozását A foglalkozáshoz tartozó azonosító kódot (pl: bányamérnök → bm) Egy azonosítót
7 Elvetemült Törpe Kft. Azonosító Név Cím Fkód foglalkozás 17211 Táblanév: Alkalmazott Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Erdő fasor 3. bm Bányamérnök 17012 Kuka K. Bánya köz 11. Va Vájár 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm bányamérnök Az adatokat figyelembe véve fölösleges ismétlődéseket (redundanciát) figyelhetünk meg! (pl: bányamérnök - vájár)
[nem tudjuk a táblázat összes mezőit kitölteni!] Redundancia I. Táblanév: Alkalmazott Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Erdő fasor 3. bm Bányamérnök 17012 Kuka K. Bánya köz 11. Va Vájár 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm bányamérnök ??? Ke kőellenőrző Milyen problémák jelentkezhetnek? Például: a kőellenőrző, mint új foglalkozás létrehozásával a foglalkozáskód és a foglalkozás érték kivételével a többi mező mindaddig üresen marad, amíg valakit ilyen foglalkozásba fel nem veszünk! (bővítési anomália) [nem tudjuk a táblázat összes mezőit kitölteni!]
Redundancia II. Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Táblanév: Alkalmazott Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Erdő fasor 3. bm Bányamérnök 17012 Kuka K. Bánya köz 11. Va Vájár 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm bányamérnök Miért jelentene problémát Kuka K. és Vidor B. kilépése a vállalattól? Törlésre kerülne a vájár foglalkozás! (Törlési anomália)
Redundancia III. Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Táblanév: Alkalmazott Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Erdő fasor 3. bm Bányamérnök 17012 Kuka K. Bánya köz 11. Va Vájár 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm bányamérnök Milyen problémát okozna a ‘vájár’ foglalkozás ‘vájárfőnökre’ történő módosítása? Több helyen is módosítani kellene a táblázatot! (Módosítási anomália)
Mi a megoldás? 1 táblázat helyett 2, egymással kapcsolatban lévő táblázat létrehozása! Alkalmazott Azonosító Név Cím Fkód 17211 Hapci B. Erdő fasor 3. bm 17012 Kuka K. Bánya köz 11. Va 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm Szétbontás eredményeként a redundancia csökkent: 1, a foglalkozásneveket csak egyszer kell tárolni (az „Alkalmazott” táblában csak a rövidebb fkód-ok kerülnek tárolásra!) 2, újabb foglalkozás esetén csak a ‘foglalkozás’ táblát módosítjuk 3, Kuka és Vidor kilépésével nem törlődik a vájár foglalkozás Foglalkozás Fkód foglalkozás bm bányamérnök Va vájár
Relációs adatbázistábla részei Tábla neve: Attribútum Alkalmazott Azonosító Név Cím Fkód foglalkozás 17211 Hapci B. Erdő fasor 3. bm Bányamérnök 17012 Kuka K. Bánya köz 11. Va Vájár 16708 Vidor B. Kőomlás tér 1. 27407 Hófehér T. Boszorka dűlő 1. Bm bányamérnök Rekord → kulcs 1, Tábla neve: két ugyanolyan nevű tábla egy adatbázisban nem fordulhat elő 2, Attribútum: a táblázat első sora. Meghatározza az adott oszlopba felvihető adatokat 3, Rekord: a táblázat egy sora (kivétel az első sor) 4, Elsődleges kulcs: a táblázat sorainak egyértelmű megkülönböztetésére szolgál (primary key)
A relációs adatbázis tábláinak tulajdonságai: A táblázatban az oszlopok számának és sorrendjének azonosnak kell lenni. Ellenpélda 2. Minden oszlop csak meghatározott értéket vehet fel. (Pl: ha egy táblázat adott oszlopában csak egész számokat tárolunk, akkor ezek a cellák nem vehetik fel a 7,5 értéket.) 3. Minden attribútum (mező) csak egyetlen értéket vehet fel. Ellenpélda 4. Minden sorhoz „egyedi kulcs” tartozik. (egyedi kulcs segítségével tudjuk megkülönböztetni egymástól a táblázatban az esetlegesen előforduló azonos sorokat [rekordokat] A kulcs „minimális” legyen!) Ellenpélda Tovább
Rossz táblakialakítás Vissza
Az attribútum-mezők csak egyetlen értéket vehetnek fel Vissza
Egyedi kulcs hiánya Vissza
Kulcsok fajtái 1, Elsődleges kulcs: szerepe a táblázat rekordjainak egyértelmű megkülönböztetése (minimalitás elve!) Példa: 2, Összetett elsődleges kulcs: ha egy attribútum nem elegendő a rekordok egyértelmű megkülönböztetésére, akkor több attribútumot is össze lehet vonni. 3, Idegen kulcs: olyan kulcs, amelyik egy másik táblában elsődleges kulcsként szerepel. Idegen kulccsal hivatkozni tudunk egy másik, a hivatkozó táblázattal logikai kapcsolatban lévő táblázatra. Példa:
Táblák közötti kapcsolatok alapvető fajtái 1, 1:1 (egy-egy) kapcsolat: ha az egyik tábla egyik rekordjához a kapcsolódó táblának egyetlen rekordja járul Példa: 2, 1:N (egy-több) kapcsolat: ha az egyik tábla egy rekordjához a másik tábla több rekordja is járulhat Példa: 3, M:N (több-több) kapcsolat: ha az első tábla egy rekordja a második tábla több rekordjához is kapcsolódhat, ugyanakkor a második tábla egy rekordja az első tábla több rekordjához kapcsolódhat. Példa: