1 / 49

Bevezetés

Bevezetés. Egy Excel táblázat, mely tárolja egy DVD kölcsönző adatait. Mégis, miért zavaró egy Excel tábla? Hányan kölcsönöztek tavaly? Hány vidéki tag kölcsönzött az idén? Kik vették ki a Kacsamesék DVD-t, név szerint sorbarendezve?

aqua
Download Presentation

Bevezetés

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. Bevezetés

  2. Egy Excel táblázat, mely tárolja egy DVD kölcsönző adatait

  3. Mégis, miért zavaró egy Excel tábla? Hányan kölcsönöztek tavaly? Hány vidéki tag kölcsönzött az idén? Kik vették ki a Kacsamesék DVD-t, név szerint sorbarendezve? Hol laknak azok, aki tavaly vették ki a Született feleségek filmet? Erre egy megoldás van: Az Excel táblázat helyett adattáblákkal dolgozunk. Külön táblát hozunk létre a DVD-knek, külön a tagoknak és külön a kölcsönzésnek A következő módon:

  4. DVD nevű tábla TAGOK nevű tábla KÖLCSÖNZÉS nevű tábla

  5. ADATBÁZISOK Alapfogalmak

  6. ~ok alattegy bizonyosinformáció gyűjteményt (adatok halmaza) értünk, melyet egyének, csoportok, cégek, régiók, országok és az egész világ is használhat • ~-okban szövegeket,képeket, hang és multimédiás file-okat, ... használhatunk • Pl.cégek:így őrzik az üzleti információkat, adatokat a vásárlókról,beszerzőkről és minden más dologról,ami nekik fontos pl.az állami adatbázisok a polgárok adatait tárolják ...

  7. Hogy van ez a Delphiben? • Mi relációs adatbázisokkal fogunk foglalkozni • Relációs adatbázis=relational database • Az ilyen adatbázis egy v.több táblából áll,melyek logikailag össze vannak kapcsolva • Tábla=kétdim.tábla egy objektumhalmaz jellegzetességeivel • A táblának van: neve(azonosító)- mellyel lehet rá hivatkozni

  8. Tábla- DVD attribútimok rekord

  9. Tábla (table) • Sorokból áll,melyekben azonos típusú objektumok adatait őrizzük • Minden sor egy objektum adatait tartalmazza és rekordnak (record) hívjuk • Egy tábla minden rekordja azonos szerkezetű és mezőkből(field) áll, melyekben az objektum attribútumait(tulajdonságait) őrizzük • Minden rekord azonos mezőkkel rendelkezik és ezek minden rekordban ugyanabban a sorrendben vannak elhelyezve • Ez azt jelenti, hogy egy oszlop mezőiben lévő adatok azonos típusúak kell, hogy legyenek

  10. Típusok • Numerikus • String • Pénzösszeg (Currency) • Dátum (Date) • Idő (Time) • Logikai (Boolean) • Szöveges (pl.egy film leírása) • Grafikus (pl.egy dvd borítója)...

  11. Elsődleges kulcs(primary key) • Minden táblázatnak legalább egy tulajdonsága kell, hogy legyen (oszlop), amellyel egyértelműen meg tudunk különböztetni minden egyedet a többitől • Az ilyen tulajdonság (oszlop) az elsődleges kulcs (primary key). • Ez azt jelenti,hogy ha ebből az oszlopból kiveszünk egy elemet,akkor az az egyén már nem azonosítható, hiába szerepel a többi oszlopbeli adata az adattáblában • Nagyon fontos, hogy az elsődleges kulcsként feltüntetett adat csak egy helyen fordulhat elő. (másik oszlopban sem lehet) • Az egyszerű kulcs egy mezőből áll, az összetett pedig több mezőből • Egy táblázaton belül csak egy elsődleges kulcs szerepelhet!!!

  12. Példák • Egy táblában a név nem lehet elsődleges kulcs, mert előfordulhat, hogy több ugyanolyan nevű egyén is szerepelhet. • Ehelyett hasznosabb a tagsági számot vagy a DVD kódot (vagy az anyakönyvi számot választani elsődleges kulcsnak pl. egy iskolai példa esetében) választani

  13. 1.Példa-ösztöndíj

  14. Ebben a példában a tanuló neve nem lehet elsődleges klucs (nem is szerepel ilyen tulajdonság a táblában, de ha lenne is, nem lenne egyértelmű) • Az elsődleges kulcs itt a TanuloAzonosito lesz

  15. 2.példa

  16. Mi lehet elsődleges kulcs, ha: • 1.egy tanuló csak egy ösztöndíjra jogosult? az egyetlen elsődleges kulcs: TanuloAzonosito • 2. ha több ösztöndíjat is kaphat? egyik tulajdonság sem lehet egyedül kulcs (TanuloAzonosito,Osszeg ) -nem lehet (TanuloAzonosito,Adomanyozo) -nem lehet (Adomanyozo,Osszeg) -nem lehet A megoldás a három attribútum együtt lesz a kulcs Az attribútumok a következők:TanuloAzonosito, Adomanyozo, Osszeg

  17. Különböző táblákban: • Kulcs lehet: -személyek azonosításában: JMBG • -iskolákban: az anyakönyvi szám • -egyetemeken:sorszám+íratkozás éve • A kulcsról szóló információkat külön file-ban is és az adatokkal együtt is tárolhatjuk

  18. Másodlagos index (~ kulcs) • Egy adatbázis tábláinak rekordjai fizikailag egy disken is lehetnek,méghozzá rendezetlenek is lehetnek • De ha használjuk a táblákat,akkor az adatoknak rendezetteknek kell lenniük(ábácé szerint,...) • A rendezés során találkozhatunk az index(indexelés) fogalmával • Az index azt mutatja meg, hogy milyen szempont szerint vizsgáljuk épp az adatainkat • Az indexek a program gyorsabb végrehajtása miatt is nagyon hasznosak

  19. Index létrehozása tulajdonképpen egy új tábla létrehozását jelenti, melyben egy oszlopot (tulajdonság) az eredeti tábla egy oszlopa alkot majd , csak itt rendezve szerepelnek , illetve van egy másik oszlop is, melyben a rekord eredeti táblabeli pozicíója szerepel

  20. A Vezetéknév indextáblája A Tanulók alaptábla

  21. A másodlagos index (kulcs) egy mutatótáblázattal valósítható meg • Ha több indexünk van, egy táblát több szempont alapján is rendezhetünk • A másodlagos index abban különbözik az elsődlegestől, hogy az indexelt mezők nem fontos, hogy egyediek legyenek • A Delphi mindenféle változást nyomon követ- az alaptábla minden módosítása után javítja az indextáblát (hozzáadás, törlés, javítás...)

  22. Index típusok • Egyszerű –csak egy oszlop,tulajdonság alapján • Összetett-1 vagy több oszlop, tulajdonság alapján • Egyedi (unique)-nem engedik meg, hogy a táblába azonos adatokat vigyünk be.Lehet egyszerű és összetett

  23. Táblák közti kapcsolat • Egy adatbázis általában több adattáblából áll, melyek össze vannak kötve (sokkal több információt kaphatunk összekapcsolt adattáblákból, mint egy-egy táblából) • Fontos tehát a köztük fennálló kapcsolat (relationship)

  24. Tanulók adattábla Ösztöndíjak adattábla

  25. Külső kulcs (foreign key) • Ez a kulcs a táblák közti kapcsolatoknál játszik fontos szerepet • Egyik tábla mindig a főtábla (master) szerepében van, a másik pedig az alárendelt (detail) • Magát a kapcsolatot szokták ”szülő –gyermek” kapcsolatnak nevezni • Egy alárendelt tábla külső kulcsa valósítja meg a kapcsolatot a főtábla elsődleges kulcsával • Pl.Az Ösztöndíjak táblából az TanAz lesz a külső kulcs,melynek segítségével kötjük majd össze a Tanulók tábla TanAz elsődleges kulcsával • Maga a külső kulcs is állhat több tulajdonságból (attribútum) és mutathat arra a táblára is,amelyben ő is szerepel

  26. Különbségek a táblák között • a fő tábla minden rekordja elérhető, míg az alárendelt táblának csak azon rekordjai, amelyek külső kulcsa kapcsolódik a fő tábla adott rekordjával • Más szóval a kurzor a fő tábla elsődleges kulcsa alapján mozog a rekordok között és mindig csak azokat a rekordokat (az alárendelt táblából) köti hozzá, ahova a kurzor mutat.

  27. Kurzor ez alapján mozog a fő táblában Ösztöndíj adattábla Tanulók adattábla

  28. Megjegyzés • A gyakorlatban 2-nél több táblát kell összekötni • Ebből kifolyólag egy tábla lehet egyidőben főtábla is és más oldalról vizsgálva alárendelt is • Sőt egy táblának lehet több alárendelt táblája is • Egy alárendelt táblát egyidőben nem használhat több főtábla => egy főtáblának lehet több alárendelt táblája, de egy alárendeltnek csak egy főtáblája lehet.

  29. A kapcsolatok fajtái: • 1:1- egy tábla minden rekordjának egy másik tábla egyetlen rekordja felel meg • 1:többhöz (1:n)- a főtábla egy rekordjához az alárendelt tábla több rekordja is megfelel • több:1 (n:1): a főtábla több rekordjához egy rekord felel meg az alárendelt táblából • n:m (több:több)- egy rekord a főtáblából több rekorddal van kapcsolatban az alárendelt táblából és fordítva

  30. Az adatbázisok integritása • 2 fontos korlátozás van, hogy egy adatbázis biztonságos legyen, az adatok egyértelműek és ellentmondás nélküliek legyenek: • Entitásbeli integritás és hivatkozási integritás

  31. Entitásbeli integritás • Egy adatbázis minden eleme egy rekord (egyed, entitás). • Ahhoz, hogy azonosítani tudjunk minden egyedet, tudnunk kell , hogy mi a kulcs. • Ez az integritás azt jelenti, hogy mindaddig nem vihetünk be az adatbázisba új adatokat, amíg nem írjuk le, hogy milyen attribútumokkal rendelkezik az adott tábla és, hogy mi lesz a kulcs • Épp ezért az elsődleges kulcs nem lehet olyan tulajdonság (attribútum), amelyben van olyan egyed,melynek valamely értéke NULL érték (nem lehet üres mező a kulcs olszlopában)!!!!! • Az entitásbeli integritás lehetővé teszi azt, hogy egy táblában sem legyen 2 olyan rekord, melyeknek ugyanaz az elsődleges kulcsuk

  32. Hivatkozási integritás • Ez a külső kulcsokra ad korlátozást • Ha 2 tábla össze van egymás között kötve, akkor a külső kulcs az alárendelt táblában csak azokat az adatokat tartalmazhatja, mint amely adatok a főtábla elsődleges kulcsának oszlopában szerepelnek! • Ha ez nem így van, az adatbázis nem tud helyesen működni

  33. Normalizáció • ~ alatt az adatok átszervezését értjük (abban az esetben, ha az adatok a táblában úgy fordulnak elő, hogy ellentmodáshoz jutnánk) • Célja, hogy egy olyan adatbázis kapjunk, melyben minden adat csak egy helyen fordul elő, a redundancia elkerülése érdekében ( redundancia= adatok ismétlődése)

  34. A normalizáció célja • Főként azért használjuk, hogy az ellentmondásokat elkerüljük, és egyszerűbbé tegyük az adattáblák használatát. • A köv.problémák merülhetnek fel egy nem-normalizált adattáblával: • redundancia • módosításbeli anomáliák (hiányosságok) • törlési anomáliák • beviteli anomáliák

  35. Példa (OSZTONDIJ adattábla)

  36. Törlési anomália • Ha kitöröljük a 100-as azonosítójú diákot, mi nemcsak azt az infót vesztjük el, hogy ez a tanuló közt.ösztöndías, hanem azt a tényt is, hogy a közt.ösztöndíj 9000 din. • Ez nev.törlési anomáliának (deletion anomaly)- egy objektum egy adatának törlésével(a 100-sal jelzett tan.közt.ösztöndíjat kap), akaratlanul eltüntettük egy másik tényt is (hogy ez az ösztöndíj 9000 din) • Ez azt jelenti, hogy egy törléssel 2 objektum információit is elvesztettük

  37. Beviteli anomáliák • Tfh.létezik még egy fajta ösztöndíj (pl.állami) • Ezt az infót nem vihetjük be az OSZTONDIJAK táblába, mert még nem létezik egyetlen egy tanuló sem, aki ilyen ösztöndíjat kapott volna • Probléma : a táblába nem vihető be semmiféle információ, míg egy másikról nem vittünk be infókat

  38. Mi a megoldás? TANULO-OSZTONDIJ tábla • Az OSZTONDIJ táblát 2 részre bontjuk, úgy hogy mindkettő 1-1 objektumról tartalmazzon információkat • A módszernek van egy hátránya: mi van akkor ,ha hozzáadtunk egy olyan új tanulót, akinek olyan az ösztöndíja,hogy az nincs benne a másik táblában • Meogoldás: Adományozo tuj.értékeinek halmaza a TANULO-OSZTONDIJ táblából részhalmaza kell, hogy legyen az Adomanyozo tuj-nak OSZTONDIJ-OSSZEG táblában OSZTONDIJ-OSSZEG tábla

  39. A problémák azért lépnek fel,mert egy tábla olyan tényeket tartalmaz, melyek 2 különböző dologra vonatkoznak: • 1.melyik tanuló kap ösztöndíjat és milyet • 2.egy-egy ösztöndíj mekkora értékű • Épp ezért : minden olyan táblát, mely 2 v.több “dolgot” (“témát”) tartalmaz, 2 v.több táblára kell szétbontani, úgy, hogy mindegyik közülük csak egy dologgal(pl. csak ösztöndíj, csak pénzösszeg ... ) foglalkozzon

  40. A táblák alapvető műveletei • Minden tábla legalább egy rekordból kell, hogy álljon • Definiálni egy táblát a köv.áll: • a mező leírása • a kulcs definiálása • az index definiálása • a mező értékeinek korlátozásai • a hivatkozási integritás megszorításai

  41. Minden táblának a létrehozás pillanatában meg kell határozni a szerkezetét és nevet kell adni neki • a Save to disk utasításnal minden, a táblával kacsolatos file is legenerálódik • Egy tábla átnevezésével átnevezésre kerülnek az őt kísérő file-ok is • Ha a diskről eltávolítunk egy adattáblát, akkor ez azt jelenti, hogy eltávolítottuk az összes kísérő file-t is

  42. Az adatbázisok típusai: • Ismert architektúrák: • 1.helyi (lokális) architektúra • 2. file-szerver architektúra • 3. kliens-szerver architektúra • 4.disztribuált architektúra • 5.internet-architektúra

  43. 1.helyi (lokális) architektúra • A program is és az adatbázis is egy szg-en hely.el • A Delphi a kapcsolatot az adtbázissal egy közvetítőn keresztül tartja: BDE (Dorland Database Engine) Alkalmazás BDE Adatbázis A felhasználó számítógépe

  44. 2. file-szerver architektúra • Az adatbázis egy elkülönített erős szg-en helyezkedik el, a személyi szg-ek (PC-k) pedig helyi hálózaton keresztül csatlakoznak a szerverhez • Ebben az esetben: több felhasználónak van lehetősége egyidőben használni az adatbázist • Hátrány:nagyon nagy információmennyiség áramlik a hélózaton keresztül

  45. Alkalmazás BDE Adatbázis helyi másolata A felhasználó számítógépe Alkalmazás BDE Adatbázis helyi másolata A felhasználó számítógépe 2. file-szerver architektúra Adatbázis Hálózati szerver

  46. 3. kliens-szerver architektúra • Ennél az architektúránál a szerveren nemcsak az adatbázist tároljuk, hanem az adatbázis-kezelő programot is, mely a hálózatban lévő felhasználók kéréseit végrehajtja, és visszaküldi nekik a kért adatokat (rekordokat) • Így a felhasználók programjai nem közvetlenül az adatbázissal érintkeznek , hanem a szerveren lévő programhoz fordulnak, mely végrehajtja az utasításokat • A kérést SQL nyelven kell megfogalmazni- Ez tulajdonképpen egy standard eszköz (Standard Query Language), mely segítségével kapcsolatot lehet létesíteni a szerveren lévő adatbázissal

  47. Alkalmazás BDE SQL -Links A felhasználó számítógépe Alkalmazás BDE SQL-Links A felhasználó számítógépe 3. kliens-szerver architektúra Az adatbázis szervere Adatbázis Távoli hálózati szerver

  48. 4.disztribuált architektúra • A hálózatban néhány server gép működik , az adattáblák köztük kerülnek szétosztásra, hogy így hatásosabb legyen az elérhetőségük • Hátrány: bonyolult adminisztráció és igen jó paraméterekkel rendelkező serverekre (szg-ekre) van szükség

  49. 5.internet-architektúra • Az adatbázisokat (melyek a hálózatban vannak) • vmilyen böngésző segítségével (pl.Internet Explorer, Netscape Navigator, Opera,...) tudjuk elérni • Ennél az architektúránál az adatbázisokat viszonylag szerényebb szg. segítségével is el tudjuk érni (és tudunk dolgozni velük)

More Related