Adatbázis-kezelés Alapfogalmak
Követelmények az adatkezelő rendszerekkel szemben A legalapvetőbb feladatok megoldása (bevitel, módosítás, törlés, lekérdezés) Redundancia „mentes” tárolás („nincs” adatismétlődés) Adatintegritás megőrzése (az adatok érvényesek és ellentmondás-mentesek) Program és adatfüggetlenség (az adattárolás módja és a kezelő program teljesen elkülöníthető)
Az adatbázis fogalma: Hétköznapi értelemben rendezett, valamilyen szempont szerint tárolt adatok összessége. Az adatbázisban az adatok között meghatározott kapcsolatok vannak. Nemcsak az adatok rendezett tárolását, hanem azok kezelését is lehetővé teszi, (mert) a kapcsolatok nélkül az adatok eltérően értelmezhetők. Az eltárolt adatokat, azok jellemzőit METAADATOK-nak nevezzük Az adatbázis adott célból összeállított adatok rendezett szerkezete, mely lehetővé teszi adatok és segédinformációk tárolását és visszanyerését. Az eltárolt adatok struktúrája és a kezelő rendszer együttese.
Adatbázis-kezelő rendszer jellemzői: Óriási adatmennyiséget tárolhat (nincs határ) Rendszerezett és hatékony adatkinyerés elengedhetetlen Alapfunkciók: Létrehozás, elemek definiálása Adatok mentése, tárolása, megnyitása Lekérdezések Adatvédelem, kódolás, hozzáférési jogok
Adatbázis-kezelő rendszer fogalma: Olyan speciális szoftverrendszer, amellyel lehetséges az adatbázisokban tárolt adatok definiálása kezelése karbantartása felügyelete
Adatbázis-kezelő rendszerekkel szemben támasztott követelmények: Adatintegritás (az adatok és kapcsolatok helyessége, érvényessége és ellentmondás-mentessége) Rugalmasság (az adatok egyszerű módosíthatósága) Hatékonyság (gyors keresés és módosítás) Adatfüggetlenség (hardver és szoftverfüggetlenség) Adatbiztonság (védelem hardver és szoftverhibákkal szemben) Adatvédelem (illetéktelen felhasználókkal szemben) Osztott hozzáférés (több felhasználó egyidejű hozzáférésének biztosítása)
Adatbázis-kezelő rendszerek segédprogramjai Adatbázis adminisztrátor (a rendszer működéséhez szükséges paraméterek beállítása) Adatbázis-kezelő segédprogramok (adattáblák, eljárások, indexelések kezelése) Archiváló, biztonsági mentést szolgáló segédprogramok Alkalmazásfejlesztés eszközei SQL alapú kliensprogramok (más adatbázis-kezelők adatainak lekérdezése SQL utasítások segítségével)
Adatmodellezés Az adatmodellezés segítséget nyújt a környező világ megértésében és leképezésében, a lényeges jellemzők kiemelésében. Az adatmodell az adatok és az azok közötti összefüggések leírására szolgál. A modell olyan mesterséges rendszer, amely felépítésében és viselkedésében megegyezik a vizsgált létező rendszerrel Adatmodellnek nevezzük az adatok struktúrájának (felépítésének) leírására szolgáló modelleket.
Egyed-tulajdonság-kapcsolat Az adatmodell a fenti három fogalom együttese Egyed-nek nevezzük az információs rendszert felépítő személyeket, tárgyakat, eseményeket Az egyedeket a tulajdonság-aik jellemzik A tulajdonság egy érték, amelynek tulajdonságtípusa van. pl: név tulajdonságtípus János tulajdonság
Egyed-tulajdonság-kapcsolat A tulajdonság lehet: Azonosító, mely minden egyednél különböző értéket vesz fel, az egyedek közt nem ismétlődhet pl: személyi szám (1 661215 1122) Leíró tulajdonság, mely az egyed egy jellemzőjét írja le, több egyednél is előfordulhat pl: név (Kovács János) Gyengén jellemző tulajdonság, mely az előzőhöz hasonló, de nem kötelező megadni (üres is lehet) pl: kedvenc sportága (úszás) Kapcsoló tulajdonság, mely egyik egyedben leíró,a másikban azonosító funkciót tölt be Pl: születési hely (Siófok)
Egyed-tulajdonság-kapcsolat Egy rendszerben az egyedek nem elszigetelten vannak jelen, hanem kapcsolatban állnak más egyedekkel és objektumokkal. A kapcsolatrendszer többszintű, bonyolult struktúra, melyben több rendszer is kapcsolatban állhat egymással. Az ETK (egyed- tulajdonság- kapcsolat) modellben két egyedtípus egyedei közötti viszonyt kapcsolat-nak nevezzük
Kapcsolatok típusai: „egy-az-egyhez” (1-1) egy egyedtípus egy egyedéhez egy másik egyedtípus csak egyetlen egyede kapcsolódhat és fordítva is igaz (osztály-osztályfőnök) „egy-a-többhöz” (1-N) egy egyedtípus egy egyedéhez egy másik egyedtípus több egyede is kapcsolódhat de fordítva nem igaz (osztály-tanuló) „több-a-többhöz” (N-M) egy egyedtípus egy egyedéhez egy másik egyedtípus több egyede is kapcsolódhat de fordítva is igaz (osztály-tanár) Az adatbázis fogalma a kapcsolatok alapján: Az adatbázis véges számú egyedek, azok egyenként is véges számú tulajdonságainak és kapcsolatainak adatmodell szerinti szervezett együttese.
Normalizálás Az adatbázis tervezése során a legfontosabb feladat a logikai adatmodell kialakítása, mely azt jelenti, hogy: az adatok laza halmazából egy jól felépített, átlátható logikai adatstruktúrát hozunk létre. Ezt a folyamatot nevezzük NORMALIZÁLÁS-nak.
Normalizálás lépései Az egyedeken belüli kapcsolatok meghatározása (Az egyedeket tulajdonságaikkal jellemezzük) Egyedtípusok meghatározása: Azokat az egyedeket, amelyeket azonos tulajdonságokkal írhatunk le, egyedtípusoknak nevezünk. Azonosító meghatározása: A tulajdonságtípusok közül kiemelhető, az egyedre kizárólagosan jellemző tulajdonságtípus az azonosító. Egyedtípuson belüli kapcsolatok meghatározása: Egy egyed azonosítója és egy tulajdonsága közti kapcsolatot egyértelműen meg tudjuk-e határozni?
Egyedtípuson belüli kapcsolatok fajtái: Funkcionális függés (egyirányú): Egy egyedtípuson belül az azonosító egyértelműen meghatározza a tulajdonságtípus értékét. (személyi szám név) Kölcsönös funkcionális függés: Az azonosító egyértelműen meghatározza a tulajdonságtípus értékét, és a tulajdonságtípus is az azonosítót. (szem.szám adószám) Ezek a tulajdonságtípusok lehetnek azonosítók. Funkcionális függetlenség: Az azonosító nem határozza meg egyértelműen a tulajdonságtípus értékét. (személyi szám X tanult tantárgy) Fordított funkcionális függés: Az azonosító nem határozza meg egyértelműen a tulajdonságtípus értékét, de a tulajdonságtípus egyértelműen meghatározza az azonosítót. (anya személyi száma / gyermek személyi száma)
Normálformák Az adatmodellek létrehozásakor jól meghatározott és egyértelmű kapcsolatokkal rendelkező egyedtípusokat kell kialakítani. Ehhez meg kell határoznunk az egyedtípus normálformáját. Egyedtípus nulladik normálformája: Ha egy egyedtípuson belül van olyan tulajdonságtípus, amely funkcionálisan független az azonosítótól. Feladatunk a funkcionális függetlenség feloldása. Összetett azonosítóval javítható lenne, de ez adatismétlődéssel jár. Redundancia: adatismétlődés, mely felesleges helyfoglalást és inkonzisztenciát eredményez. Inkonzisztencia: egyes adatok az adatbázisban több helyen fordulnak elő, ezek javítása nagy figyelmet igényelne, hibalehetőséget okoz.
Normálformák Első normálforma: Egy egyedtípuson belül minden tulajdonságtípus funkcionális függésben áll az összetett azonosítóval, de van olyan tulajdonságtípus, amely az összetett azonosítónak csak egy részétől függ. Ez részleges funkcionális függés, tovább kell normalizálni, pl. új egyedtípus bevezetésével.
Normálformák Második normálforma: Ha egy egyedtípuson belül minden tulajdonságtípus csak az azonosítóval áll funkcionális függésben, de van olyan tulajdonságtípus, amely függ egy másik leíró jellegű tulajdonságtípustól is. Ennek oka a „tranzitív függés”, ami azt jelenti, hogy az egyedtípusnak van olyan tulajdonságtípusa, amely függ egy másik leíró jellegű tulajdonságtípustól.
Normálformák Harmadik normálforma: Ha egy egyedtípuson belül valamennyi tulajdonságtípus kizárólag az azonosítótól függ funkcionálisan. Létezik negyedik és ötödik normálforma is, de általában a harmadik normálforma elérése elegendő.
Adatbázis-szerkezetek Adatbázisok kialakításánál olyan szerkezetet kell kialakítani, amelyben a leghatékonyabban dolgozhatjuk fel az adatokat. A leggyakoribb adatszerkezetek: Hierarchikus Hálós Relációs
Hierarchikus adatbázismodell A hierarchikus modellen alapuló adatbázisokban az adatokat alá-fölérendeltségi viszonnyal meghatározott szerkezettel írjuk le. Csak egy a többhöz (1:N) típusú kapcsolatok képezhetők le. Az adatok csak a tárolt hierarchiának megfelelő sorrendben érhetők el. Fastruktúrával szemléltethető.
Hálós adatbázismodell Az egyes adategységek közötti kapcsolat gráffal írható le. A gráfban csomópontok találhatók, melyeket élek kötnek össze. Két csomópont között akkor van kapcsolat, ha őket él köti össze. Egy csomópontból tetszőleges számú él indulhat, de egy él csak két csomópontot köthet össze. Ezzel a modellel egy a többhöz (1:N) és több a többhöz (N:M) kapcsolatok is leírhatók Csak a tárolt kapcsolatok mentén bejárható. János Zoltán Kati Tibi Orvos Könyvtár Autó
Relációs adatbázismodell Az adatok tárolása táblázatos formában, a táblázat soraiban és oszlopaiban valósul meg. Nincsenek előre meghatározott kapcsolatok, a kapcsolatok létrehozásához szükséges adatokat tároljuk és használjuk fel. A relációs adatmodell jellemzői: Egyszerűen értelmezhető, átlátható. Rugalmas, könnyen kezelhető. A relációk kezelése matematikai műveletekkel leírható. (Relációs algebrának nevezzük.)
Relációs adatbázismodell A reláció egy adattábla,(táblázat), a soraiban tárolt adatokkal együtt. A reláció sorait rekordoknak, oszlopait attribútumoknak (tulajdonságtípusoknak), egy sor és egy oszlop metszéspontjában található adatot tartalmazó elemet mezőnek nevezzük. Tulajdonságtípusok Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B Rekordok Mezők
Relációk (táblák) jellemzői A relációk rekordjaiban tároljuk a logikailag összetartozó adatokat A relációban tárolt rekordok számát a reláció számosságának nevezzük. A relációk oszlopaiban (attribútumaiban) az azonos tulajdonságokra vonatkozó adatok jelennek meg. Egy tábla nem tartalmazhat két azonos nevű oszlopot. Az oszlopok (attribútumok) számát a reláció fokának nevezzük. Négyfokú reláció Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B Számossága kettő
Relációk (táblák) jellemzői Egy relációra vonatkozó követelmények: Minden rekordja különböző Nem tartalmazhat két azonos attribútumot Minden rekord mezőszerkezete azonos A rekordok és attribútumok sorrendje tetszőleges lehet Azonosító Név Évfolyam Osztály 001 Kati 11 A 002 Tibi 12 B 003 Zoli 10 C
Relációs adatbázisok kezelése A relációkon végzett műveletek két csoportra oszthatók: Adatkezelő műveletek Adatbevitel Törlés Adatmódosítás Adatlekérdező műveletek A relációs algebra műveleteivel végezzük A lekérdezés eredményeként mindig egy újabb relációt kapunk, mely része az adatbázisnak.
A relációs algebra műveletei A műveletek két csoportra oszthatók aszerint, hogy egy, vagy több reláción hajthatók végre. Egy reláción végrehajtható (egyoperandusú) műveletek: Szelekció Projekció Kiterjesztés Csoportosítás
A relációs algebra műveletei Több reláción végrehajtható (többoperandusú) műveletek: Descarters-szorzat Összekapcsolás Unió Metszet Különbség Osztás
A szelekció (kiválasztás) művelet (egy reláción végzett művelet) A szelekció (kiválasztás) művelete egy relációból csak egy adott feltételnek megfelelő sorokat jeleníti meg az eredmény relációban. Az eredmény számossága 0 és N között lesz, az eredmény reláció számossága nem változik. A TANULO relációból a VAROS mező értéke =‘Siófok’ Kod Nev Varos Evf. Oszt. 001 Balázs Budapest 12 a 002 Zoli Siófok 11 b 003 Kati 9 c 004 Mari Győr Kod Nev Varos Evf. Oszt. 002 Zoli Siófok 11 b 003 Kati 9 c
A projekció (vetítés) művelet (egy reláción végzett művelet) A művelet során egy reláció oszlopai közül csak bizonyosakat őrzünk meg az eredmény relációban. Az eredmény attribútumok (oszlopok)száma 1 és a műveletben résztvevő reláció attribútumai között változhat. Kod Nev Varos Evf. Oszt. 001 Balázs Érd 12 a 002 Zoli Siófok 11 b 003 Kati 9 c 004 Mari Győr Kod Nev Varos 001 Balázs Érd 002 Zoli Siófok 003 Kati 004 Mari Győr
Kiterjesztés (egy reláción végzett művelet) A lekérdezésben nem egyes konkrét mezőértékeket, hanem az azokból matematikai műveletekkel képzett eredményeket jelenítünk meg. Az eredmény relációban újabb mezőt képezünk a kiinduló reláció mezőivel végzett műveletek eredményének megjelenítésére. Kod Nev Elmelet Gyakorlat 001 Balázs 20 12 002 Zoli 23 11 003 Kati 10 9 004 Mari 19 Kod Nev Elmelet Gyakorlat Osszpont 001 Balázs 20 12 32 002 Zoli 23 11 34 003 Kati 10 9 19 004 Mari 30
Csoportosítás (egy reláción végzett művelet) A relációk rekordjait valamely attribútumok alapján meghatározott csoportokba foglaljuk, majd a csoportokhoz különböző függvényekkel meghatározott éréket rendelünk. (Pl: összeg, átlag, min, max, elemszám, szórás,) Kod Nev Evf. Oszt. Matekjegy 001 Balázs 12 a 2 002 Zoli 11 b 4 003 Kati 9 c 3 004 Feri 005 Mari Kod Nev Evf. Oszt. Matekjegy Atlag 002 Zoli 11 b 4 3,66 004 Feri 005 Mari 3
Descartes-szorzat (két reláción végzett művelet) Két reláció sorait minden variációban egymás mellé teszi az eredmény relációban. Kod Nev Evf. Oszt. 001 Balázs 12 a 005 Mari 11 b TKod Oszt. T01 matek T02 fizika T05 kémia Kod Nev Evf. Oszt. TKod 001 Balázs 12 a T01 matek T02 fizika T03 kémia 002 Mari 11 b
Összekapcsolás (két reláción végzett művelet) Két relációt kapcsol össze egy-egy attribútumuk alapján. Az eredmény relációba azok a rekordok kerülnek, amelyhez található adott feltételt kielégítő sor a második relációban. Kod Nev Hobbykod 001 Balázs 1 002 Mari 2 003 Misi 4 004 Dani HobbyKod Tevekenyseg 1 Sport 2 Olvasás 3 Mozi Kod Nev Hobbykod HobbyKod Tevekenyseg 001 Balázs 1 Sport 002 Mari 2 Olvasás 004 Dani
Relációkon végezhető halmazműveletek A halmazműveleteket csak azonos szerkezetű relációk között lehet elvégezni. Azonos szerkezetű két reláció, ha oszlopaik száma és a tárolt adatok típusa megegyezik. UNIÓ: Az eredmény reláció tartalmazni fogja azokat a rekordokat, amelyek legalább az egyik relációban szerepelnek. Azonos rekordok az eredmény relációban csak egyszer szerepelnek.
Relációkon végezhető halmazműveletek METSZET Az eredmény reláció csak azokat a rekordokat tartalmazza, amely a két reláció mindegyikében szerepel. Ha a metszet reláció üres, akkor a műveletben szereplő relációkban nincsenek azonos rekordok. A relációk sorrendje felcserélhető
Relációkon végezhető halmazműveletek KÜLÖNBSÉG Az eredmény reláció csak azokat a sorokat tartalmazza, amelyek az első relációban megtalálhatók, de a másodikban nem. Csak két, azonos szerkezetű relációra végezhető el. A műveletben szereplő relációk sorrendje nem cserélhető fel.