1 / 50

NYME Informatika Intézet

NYME Informatika Intézet. Számítógépes alkalmazások 5. előadás. Adatbázis-kezelő rendszerek. Tartalom. Adatbázis fogalma Adatbázis-kezelő rendszerekkel szembeni elvárások Repülőgép helyfoglalás Banki rendszerek Vállalati nyilvántartások Relációs adatbázisok – számlák példa

hetal
Télécharger la présentation

NYME Informatika Intézet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NYME Informatika Intézet Számítógépes alkalmazások 5. előadás

  2. Adatbázis-kezelő rendszerek

  3. Tartalom • Adatbázis fogalma • Adatbázis-kezelő rendszerekkel szembeni elvárások • Repülőgép helyfoglalás • Banki rendszerek • Vállalati nyilvántartások • Relációs adatbázisok – számlák példa • Adatbázis-kezelő rendszerek felépítése • Adatok, metaadatok, indexek • A tárkezelő feladata • A lekérdezés-feldolgozó feladata • A tranzakció-kezelő feladata • Adatbázis-tervezés • Adatbázis-programozás • Adatbázis-megvalósítás • Az ACCESS adatbázis objektumai • ACCESS definíciók • ACCESS lekérdezés típusok

  4. Adatbázis Mi egy adatbázis? • A valós világ egy meghatározott részének leírásá-hoz használt, adott formátumú és rendszer szerint tárolt adatok (adatelemek) együttese. • Olyan adatok együttese, amit egy adatbázis-kezelő rendszer kezel (tárol, lekérdez, módosít)

  5. Adatbázis-kezelő rendszerekkel szembeni elvárások • Tegye lehetővé új adatbázisok létrehozását, az adat-bázis logikai struktúrájának (sémájának) egy speci-ális nyelven (adatdefiníciós nyelv) való megadását. • Biztosítsa, hogy a felhasználók az adatokat egy meg-felelő nyelv (adatmanipulációs nyelv, lekérdező nyelv) segítségével lekérdezhessék, módosíthassák.

  6. Adatbázis-kezelő rendszerekkel szembeni elvárások • Támogassa nagyon nagy mennyiségű adat hosszú időn keresztül történő tárolását. Garantálja az adatok biztonságát a meghibásodá-sokkal és az illetéktelen felhasználókkal szemben. Tegye lehetővé a hatékony adathozzáférést a le-kérdezések és módosítások számára.

  7. Adatbázis-kezelő rendszerekkel szembeni elvárások • Támogassa több felhasználó egyidejű munkáját. Figyelje a több felhasználó által egy időben törté-nő adathozzáféréseket úgy, hogy azok ne vezes-senek az adatok hibássá vagy következetlenné válásához.

  8. Első adatbázis-kezelő rendszerek • 60-as évek végén jelentek meg. • Nem támogattak semmilyen magas szintű lekérde-ző nyelvet. • Első jelentős alkalmazási területek azok a rendsze-rek voltak, amelyekben sok kis adatelem szerepelt és a rendszerben sok lekérdezés és módosítás volt.

  9. Repülőgép helyfoglalás Adatelemek: • Egy vevő helyfoglalása egy adott járatra (ülőhely, választott menü). • Járatokra vonatkozó információ (indulás, érkezés, honnan, hová, repülőgép). • Jegyárak, előjegyzések, még kapható jegyek.

  10. Repülőgép helyfoglalás Lekérdezések: • Egy adott városból egy másikba mely járatok indul-nak egy hozzávetőlegesen megadott időpontban. • Mely ülőhelyek szabadok. • Mennyi egy jegy ára.

  11. Repülőgép helyfoglalás Adatmódosítások: • Egy vevő helyfoglalása egy adott járatra. • Egy ülőhely kiadása. • Egy menüválasztás bejegyzése.

  12. Banki rendszerek Adatelemek: • Ügyfelek nevei és címei. • Folyószámlák és hitelszámlák egyenlegei. • Az ügyfelek és a számlák között fennálló kapcso-latok (pl. kinek melyik számla felett van aláírási joga).

  13. Banki rendszerek Lekérdezések: • Egy adott számla egyenlege. Adatmódosítások: • Egy adott számlára vonatkozó befizetés vagy ki-fizetés.

  14. Vállalati nyilvántartások Adatelemek: • Eladásokra vonatkozóak. • Kimenő és bejövő számlákra vonatkozóak. • Dolgozókra vonatkozóak (név, cím, fizetés, nye-reség-részesedés).

  15. Vállalati nyilvántartások Lekérdezések (jelentések): • Kinnlevő számlák. • Dolgozók havi fizetése. Adatmódosítások: • Minden egyes eladás, vásárlás, számlakibocsátás, számlakifizetés. • Dolgozók felvétele, elbocsátása, előléptetése.

  16. Adatbázis-kezelő rendszerek Kezdetben egyedi programok készültek az egyes válla-latoknál a különböző adatok nyilvántartására. A tömeges alkalmazási igény kikényszerítette az adat-formátumok szabványosítását, és általános célú adatbá-ziskezelő szoftverek kifejlesztését.

  17. Relációs adatbázis-kezelők E. F. Codd: A relational model of data for large shared data banks. Communications of the ACM, 13 (1970), 377-387. Az adatokat a felhasználók felé táblázat (reláció) for-májában jelenítjük meg (a háttérben persze bonyolult struktúrák is lehetnek). A lekérdezések magas szintű nyelv segítségével való-sulnak meg, amely jelentősen növeli az adatbázis programozók hatékonyságát.

  18. Relációsadatbázisok Számlák

  19. Relációs adatbázisok Számlák nevű reláció Attribútumok (oszlopok, mezők): számlaszám, egyenleg, típus Lekérdezés (SQL): SELECTegyenleg FROM Számlák WHEREszámlaszám = 67890;

  20. Relációs adatbázisok • Vizsgáld meg a FROM után szereplő reláció min-den sorát. • Válaszd ki azokat a sorokat, amelyek a WHERE után megfogalmazott követelményeknek eleget tesznek. • Add meg eredményként ezeknek a soroknak a SELECT után megadott attribútumait.

  21. Relációs adatbázisok Még egy lekérdezés (SQL): SELECTszámlaszám FROM Számlák WHEREtípus='betétszámla'ANDegyenleg < 0;

  22. Relációs adatbázisok A gyakorlatban a rendszernek optimalizálnia kell a lekérdezést: hatékony végrehajtási módot kell találni még akkor is, ha a lekérdezésben szereplő relációk nagyon nagyok. Az IBM volt az első olyan cég, amely relációs adat-báziskezelő rendszereket árusított. Ma is a relációs adatbázis-kezelő rendszerek a legel-terjedtebbek a piacon.

  23. Adatbázis-kezelő rendszerek felépítése „Lekérdezés”- feldolgozó Tranzakció- kezelő Tárkezelő Adatok, metaadatok

  24. Adatok, metaadatok Az ábra alján az adatok tárolására szolgáló hely látható. Ez a rész nem csak adatokat, hanem metaadatokat is tar-talmaz, ami az adatok szerkezetét írja le (relációs adat-báziskezelő esetén a relációk nevei, attribútumok nevei, attribútumok típusai).

  25. Indexek Az adatbázis-kezelő rendszerek gyakran indexeket hasz-nálnak az adatok elérésére. Az index olyan adatstruktúra, amely lehetővé teszi, hogy az adatelemeket gyorsan megtaláljuk, ha ismerjük a hoz-zá tartozó értékek bizonyos részét.

  26. Indexek A leggyakrabban előforduló példa olyan index, ame-lyiknek a segítségével egy reláció azon sorait keres-hetjük meg, amelyekben az egyik attribútum értéke adott. Az indexek a tárolt adatok közé tartoznak, viszont az, hogy mely attribútumokra léteznek indexek, a meta-adatok részét képezik.

  27. Tárkezelő A tárkezelő feladata a kért információk beolvasása a tá-rolóhelyről, illetve az adatok módosítása, ha a felette ál-ló rendszerszintek ilyen irányú kérést fogalmaznak meg. Lehetne az operációs rendszer fájlkezelő része is, de a hatékonyság érdekében az adatbázis-kezelők általában közvetlenül felügyelik az adatok lemezen való tárolását.

  28. Tárkezelő A tárkezelő két részből áll: • Fájlkezelő: fájlok lemezen való elhelyezkedését tartja nyilván, az állomány blokkjait írja/olvassa ha a puffer-kezelő erre kéri. • Pufferkezelő: a fájlkezelő segítségével adatblokkokat olvas be a lemezről és kiválaszt egy memóriaterületet, ahol az adott blokkot tárolni fogja; Egy lemezblokkot a memóriában tarthat egy ideig, de ha a blokk által foglalt memóriára egy másik blokknak van szüksége, akkor a blokkot visszaírja a lemezre.

  29. Lekérdezés-feldolgozó A lekérdezés-feldolgozónak nevezett egység feladata, hogy a lekérdezéseket, illetve egyéb adatbázis-műveleteket (adatok és metaadatok módosítása), amelyek gyakran egy magas szintű nyelven vannak megfogalmazva, egyszerű utasítások sorozatává alakítsa. Gyakran a lekérdezés-feldolgozás legnehezebb része a le-kérdezés optimalizálása, vagyis egy megfelelő végrehajtási terv kiválasztása.

  30. Példa Tegyük fel, hogy egy bank adatbázisában a követke-ző két reláció található: Az ÜGYFELEK reláció tárolja az egyes ügyfelek ne-vét, címét és személyi azonosítóját. A SZÁMLÁK reláció tárolja az egyes számlák szám-laszámát, egyenlegét és a számla tulajdonosának sze-mélyi azonosítóját (feltesszük, hogy minden számlá-nak csak egy tulajdonosa van).

  31. Példa A következő kérdésre szeretnénk választ kapni: Adjuk meg az összes számla egyenlegét, amelynek tulajdonosa Kovács István. Egy meglehetősen költséges terv a következő: Nézzük végig az ÜGYFELEK táblát, amíg meg nem találjuk Kovács Istvánt (remélhetőleg csak egy van), majd a SZÁMLÁK táblából gyűjtsük ki azokat a sorokat, amelyekben Kovács István személyi azonosítója szerepel.

  32. Példa Ha az ÜGYFELEK táblához van indexünk az ügyfél nevére, akkor az első fázis gyorsan megy. Ha a SZÁMLÁK táblához is van indexünk, méghoz-zá a személyi azonosítóra, akkor a második fázis sem tart sokáig. Általában 8-10 lemezolvasásnál nincs többre szükség, ha mindkét index rendelkezésre áll, ellenkező esetben viszont több százezer lemezolvasásra is szükség lehet.

  33. Lekérdezés-feldolgozó Bár ebből a példából úgy tűnhet, hogy egy lekérdezés optimalizálása mindössze annyiból áll, hogy használ-junk indexeket, ha léteznek, valójában a dolog ennél sokkal összetettebb. A bonyolult lekérdezések sokszor lehetővé teszik, hogy átrendezzük az elemi műveleteket, és így nagyon sok végrehajtási terv adódik.

  34. Tranzakció-kezelő A tranzakció-kezelő rész felelős a rendszer sértetlen-ségéért. Ennek kell biztosítania, hogy az egy időben futó lekérdezések és módosítások ne ütközzenek össze egymással, és hogy a rendszer még rendszer-hiba esetén se veszíthessen adatokat.

  35. Tranzakció-kezelő A tranzakció-kezelő kapcsolatot tart a lekérdezés-feldolgozóval, hiszen a konfliktusok elkerüléséhez tudni kell, hogy az aktuális lekérdezések éppen mely adato-kon dolgoznak, és épp a konfliktusok megakadályozá-sáért késleltethet bizonyos műveleteket (zárolás). Kapcsolatot tart a tárkezelővel is, mert az adatok védel-mére szolgáló módszerek többnyire magukban foglalják a módosítások naplózását.

  36. Tranzakció-kezelő Az adatbázis-kezelők többnyire megengedik a felhasz-nálóknak, hogy egy vagy több lekérdezést vagy módo-sítást egy tranzakcióba csoportosítsanak. A tranzakció tulajdonképpen olyan műveletek egy cso-portja, amelyeket egymás után egy egységként kell vég-rehajtani. Az adatbázisrendszerek gyakran sok tranzakció egyide-jű végrehajtását engedik meg, ezek helyes lefutásának biztosítása is a tranzakció-kezelő feladata.

  37. Tranzakciók A tranzakciók „helyes” lefutásával szembeni elvárá-sokat négy pontban szokták összefoglalni: • Atomosság. Megköveteljük, hogy egy tranzakció vagy teljes egészében hajtódjon végre, vagy sem-mi ne hajtódjon végre belőle. Például az automatából történő pénzfelvétel és a hozzá kapcsolódó megterhelés az ügyfél számlá-ján egyetlen atomi tranzakciót kell, hogy alkosson.

  38. Tranzakciók • Következetesség. Egy adatbázisban akkor beszélhe-tünk a következetes állapot fogalmáról, amikor az adatok megfelelnek bizonyos elvárásoknak (feltételek-nek).

  39. Tranzakciók Például egy repülőgép-helyfoglalási adatbázisban egy megfelelő következetességi feltétel, hogy egyetlen ü-lőhelyet se rendeljünk hozzá két különböző utashoz. Noha ezt a feltételt megsérthetjük a tranzakció alatt (pl. utasok átrendezése), a tranzakció-kezelőnek biz-tosítania kell, hogy a tranzakció befejezése után az adatbázis ismét következetes állapotba kerüljön.

  40. Tranzakciók • Elkülönítés. Amikor két vagy több tranzakció egyi-dejűleg fut, azok kihatását el kell különíteni egymás-tól. Ez azt jelenti, hogy semmiféle olyan eredményt vagy kihatást nem tapasztalhatunk az adatbázisban, amit a két tranzakció egyidejű futása okozott, és ami nem fordult volna elő, ha a két tranzakció egymás után fut le.

  41. Tranzakciók Például ha két ügynök éppen ugyanarra a járatra ad el jegyet és a járaton már csak egy hely van, akkor az e-gyik kérést teljesíteni kell, a másikat pedig vissza kell utasítani. • Tartósság. Ha egy tranzakció befejeződött, akkor an-nak eredménye nem veszhet el rendszerhiba esetén sem, még akkor sem, ha a rendszer közvetlenül a tranzakció befejezése után hibásodik meg.

  42. Adatbázis-kezelő rendszerek Az ábra tetején három különböző fajta input látható: • Lekérdezések (adatokra vonatkozóan): • Egy általános lekérdező-interfészen keresztül. Például a rendszer megengedi SQL lekérdezé-sek begépelését. • Egy alkalmazói program interfészén keresztül. Általában nem tehetünk fel akármilyen kérdést, de amit igen, azt általában egyszerűbben tehet-jük meg (mezők kitöltése ACCESS-ben).

  43. Adatbázis-kezelő rendszerek • Módosítások (adatokra vonatkozóan): hasonló, mint a lekérdezéseknél. • Sémamódosítások: az ezekre vonatkozó utasításokat csak az arra illetékes személyek, az adatbázis admi-nisztrátorok adhatják ki.

  44. Adatbázis-kezelő rendszerekkel kapcsolatos főbb tevékenységek Adatbázis-tervezés • Hogyan alakítsunk ki egy jól használható adatbázist? • Mely információk kerüljenek be az adatbázisba? • Milyen legyen az adatok szerkezete? • Milyen feltételezésekkel éljünk az adatelemek típusára és értékeire vonatkozóan? • Hogyan kapcsolódjanak egymáshoz az adatelemek?

  45. Adatbázis-kezelő rendszerekkel kapcsolatos főbb tevékenységek Adatbázis-programozás • Hogyan fejezzük ki az adatbázisra vonatkozó lekérde-zéseket és egyéb műveleteket? • Hogyan használjuk ki az adatbázis-kezelő rendszerek egyéb lehetőségeit, mint amilyenek a tranzakciók vagy a triggerek (ellenőrző procedurák)?

  46. Adatbázis-kezelő rendszerekkel kapcsolatos főbb tevékenységek Adatbázis-megvalósítás • Hogyan készítsünk el egy adatbázis-kezelő rendszert? • Hogyan valósítsuk meg a lekérdezés-feldolgozót, a tranzakció-kezelőt? • Hogyan szervezzük meg az adatok tárolását, hogy az adathozzáférés hatékony legyen?

  47. Az ACCESS adatbázis objektumai • TÁBLA: Az adatokat tárolja (reláció). • LEKÉRDEZÉS: Szelektálja, rendezi, elemzi, módosítja az adatokat, új táblát hozhat létre. Jelentések, űrlapok alapját képezheti. • ŰRLAP: Adatok bevitele, megjelenítése és módosítása rekordonként, diagram. • JELENTÉS: Táblák és lekérdezések adatait összegzi elemzés, nyomtatás végett. • MAKRÓ: Műveletsort tárol automatikus végrehajtáshoz. • MODUL: ACCESS Basic programot tartalmaz.

  48. Fogalom-definíciók • REKORD: az adattábla egy sora (egy entitásra vonatkozó adatokkal) • MEZŐ: az adattábla egy oszlopa (azonos típusú adatokkal - attributum) • MEZŐNÉV: az adatoszlop elnevezése • INDEX: olyan mező (oszlop), mely szerint a szűrést felgyorsítjuk • KULCS: olyan indexelt mező, melyben nincs két agyforma érték

  49. Fogalom-definíciók • KIFEJEZÉS: képlet, mely az adattábla adataiból új információt vezet le • KIFEJEZÉS-SZERKESZTŐ: olyan eszköz, mellyel egyszerűen hozhatók létre képletek • SZÁMÍTOTT MEZŐ: az adattábla olyan oszlopa, melyet kifejezés állít elő. Ennek kiszámítása csak futtatással (jele „!”) lehetséges • SZŰRÉS: rekordok (sorok) szelekciója, melynek logikáját a szűrési feltétel írja elő

  50. Lekérdezés típusok • Módosító: átírja az adattábla adatait • Törlő: rekordokat (sorokat) töröl a táblából • Választó: új táblát hoz létre levezetett adatokból • Tábla-készítő: mint a választó, de az eredmény valódi tábla lesz • Kereszttáblás: sor és oszlopfejléccel kombinált összesítő lekérdezés • Hozzáfűző: egyik táblából másikba tehetünk át rekordokat

More Related