Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaMarcell Varga Megváltozta több, mint 10 éve
1
Bevezetés
2
2 DVD kódDVD címTípus DbDb Tagsági szám Vezeték névNévVárosLakcím Telefonszá m Kölcs.dátu m 2212ZorroKaland21287TóthBélaZentaFő utca 24024-817-6412009.04.10 1234Született feleségekSorozat54312Németh Veronik aFelsőhegyPetőfi Sándor 11024-829-1102008.12.14 5427GettómilliomosDráma11287TóthBélaZentaFő utca 24024-817-6412008.12.14 1167MadagaszkárRajzfilm37290KovácsKrisztiánAdaPotiska 44024-852-7982008.03.10 3518Madagaszkár 2Rajzfilm31287TóthBélaZentaFő utca 24024-817-6412007.08.30 1235KacsamesékRajzfilm24312Németh Veronik aFelsőhegyPetőfi Sándor 11024-829-1102009.02.24 1234Született feleségekSorozat55555BarnaViolaZentaMadách Imre 52024-813-2692008.12.24 1235KacsamesékRajzfilm21123JuhászAnnaCsókaDózsa György 20230-71-4232009.01.05 8231Wall-EAnimációs11287TóthBélaZentaFő utca 24024-817-6412009.01.07 Egy Excel táblázat, mely tárolja egy DVD kölcsönző adatait
3
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
4 DVD kódDVD címTípus DbDb 2212ZorroKaland2 1234Született feleségekSorozat5 5427GettómilliomosDráma1 1167MadagaszkárRajzfilm3 3518Madagaszkár 2Rajzfilm3 1235KacsamesékRajzfilm2 8231Wall-EAnimációs1 Tagsági szám Vezeték névNévVárosLakcím Telefonszá m 1287TóthBélaZentaFő utca 24024-817-641 4312NémethVeronikaFelsőhegyPetőfi Sándor 11024-829-110 1123JuhászAnnaCsókaDózsa György 20230-71-423 7290KovácsKrisztiánAdaPotiska 44024-852-798 5555BarnaViolaZentaMadách Imre 52024-813-269 DVD kód Tagsági szám Kölcs.dátu m 221212872009.04.10 123443122008.12.14 542712872008.12.14 116772902008.03.10 351812872007.08.30 123543122009.02.24 123455552008.12.24 123511232009.01.05 823112872009.01.07 DVD nevű tábla TAGOK nevű tábla KÖLCSÖNZÉS nevű tábla
5
ADATBÁZISOK Alapfogalmak
6
6 ~ok alatt egy bizonyos informá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... pl.az állami adatbázisok a polgárok adatait tárolják...
7
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
8 Tábla- DVD DVD kódDVD címTípusDb 2212ZorroKaland2 1234Született feleségekSorozat5 5427GettómilliomosDráma1 1167MadagaszkárRajzfilm3 3518Madagaszkár 2Rajzfilm3 1235KacsamesékRajzfilm2 8231Wall-EAnimációs1 rekord attribútimok
9
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
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
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
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
13 1.Példa-ösztöndíj TanuloAzonosito AdomanyozoOsszeg 100Köztársaság9000 150Város6000 175Község3000 200Város6000
14
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
15 2.példa TanuloAzonosito AdomanyozoOsszeg 100Köztársaság9000 100Város6000 150Város6000 175Község3000 175Város6000 200Város6000 200Köztársaság9000
16
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
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
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
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
20 Vezetéknév Pozíció Almási1 Baji4 Kovács5 Mihók3 Mihók1000 Soós6...... Szabó2PozícióTanAz Vez.név Név...Tel1100AlmásiMiklós234-186 2125SzabóAnna304-219 3150MihókGábor631-762 4175BajiIván414-515 5200KovácsIbolya411-333 6225SoósPéter761-708............... 100025075MihókMárta631-228 A Vezetéknév indextáblája A Tanulók alaptábla
21
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
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
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
24 TanAz Vez.név Név...Tel 100AlmásiMiklós234-186 125SzabóAnna304-219 150MihókGábor631-762 175BajiIván414-515 200KovácsIbolya411-333 225SoósPéter761-708............ 25075MihókMárta631-228 TanAz AdomanyozoOsszeg100Köztársaság9000 100Város6000 150Város6000 175Község3000 175Város6000 200Város6000 200Köztársaság9000 Tanulók adattábla Ösztöndíjak adattábla
25
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
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
27 TanAz Vez.név Név...Tel 100AlmásiMiklós234-186 125SzabóAnna304-219 150MihókGábor631-762 175BajiIván414-515 200KovácsIbolya411-333 225SoósPéter761-708............ 25075MihókMárta631-228 TanAz AdomanyozoOsszeg175Község3000 175Város6000 Kurzor ez alapján mozog a fő táblában Tanulók adattábla Ösztöndíj adattábla
28
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
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
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
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
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
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
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
35 Példa (OSZTONDIJ adattábla) TanuloAzonosito AdomanyozoOsszeg 100Köztársaság9000 100Város6000 150Város6000 175Község3000 175Város6000 200Város6000 200Köztársaság9000
36
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
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
38 Mi a megoldás? 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 TanuloAzonositoAdomanyozo 100Köztársaság 150Város 175Község 200Város AdomanyozoOsszegKöztársaság9000 Város6000 Község3000 TANULO-OSZTONDIJ tábla OSZTONDIJ-OSSZEG tábla
39
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
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
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
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
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ásBDEAdatbázis A felhasználó számítógépe
44
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
2. file-szerver architektúra 45 AlkalmazásBDE Adatbázis helyi másolata A felhasználó számítógépe AlkalmazásBDE Adatbázis helyi másolata A felhasználó számítógépe Adatbázis Hálózati szerver
46
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
3. kliens-szerver architektúra 47 AlkalmazásBDE SQL -Links A felhasználó számítógépe AlkalmazásBDE SQL-Links A felhasználó számítógépe Adatbázis Távoli hálózati szerver Az adatbázis szervere
48
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
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)
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.