Upload
elvis-cline
View
55
Download
3
Embed Size (px)
DESCRIPTION
Adatbáziskezelés (alapfogalmak). Bevezetés. fájlkezelés: az operációs rendszer közvetlen hívásaival tudunk adatokat permanensen tárolni háttértárolón, és onnan visszaolvasni nehézségek: nagyon elemi műveletek (írás, olvasás), még k eresés sincs - PowerPoint PPT Presentation
Citation preview
Adatbáziskezelés (alapfogalmak)
Bevezetés
fájlkezelés: az operációs rendszer közvetlen hívásaival tudunk
adatokat permanensen tárolni háttértárolón, és onnan visszaolvasni
nehézségek:– nagyon elemi műveletek (írás, olvasás), még keresés sincs– komplex adatokra nekünk kell struktúrát kitalálni– a fájl meghibásodása esetén elvesznek az adatok – a fájlhoz operációs rendszer szinten nem csak a
programunk, hanem bárki hozzáférhet vagy módosíthat benne
– ha a fájlt egyszerre többen szeretnék használni, az komoly problémákhoz vezet
Az adatbázis-kezelés eszközei megoldást nyújtanak ezekre a
problémákra!
Adatmodellezés
cél: a valós információk tárolására kitaláljunk valami olyasféle struktúrát, amiben
– az adatok információvesztés nélkül tárolhatók
– az adatok közti kapcsolatok leírhatók – struktúra a számítógépes feldolgozás
szempontjából hatékony
Alapmodellek
hierarchikus modell hálós modell
relációs modell objektum-orientált modell félig strukturált adatmodell
Relációs modell
az adatokat táblákban tároljuk
(tábla - reláció) a táblák között kapcsolatokat építhetünk táblák:
– attribútumok vagy oszlopok (egyedi név, típus)
– sorok vagy rekordok– 1 cellában 1 elemi érték
A felhasználó adatbázis-kezelőn keresztül éri el az
adatokat.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben:
1. Tegye lehetővé a felhasználók számára, hogy új adatbázisokat hozhassanak létre és azok sémáját, vagyis az adatok logikai struktúráját egy speciális nyelven adhassák meg. Ezt a speciális nyelvet adatdefiníciós nyelvnek nevezzük.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben:
2. Engedje meg a felhasználóknak, hogy az adatokat egy megfelelő nyelv segítségével lekérdezhessék és módosíthassák. Ezt a nyelvet szokás lekérdezőnyelvnek vagy adatmanipulációs nyelvnek nevezni.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben:
3. Támogassa nagyon nagy mennyiségű adat (gigabájtok vagy még több adat) hosszú időn keresztül való tárolását, garantálja az adatok biztonságát a meghibásodásokkal és az illetéktelen felhasználókkal szemben, és tegye lehetővé a hatékony adathozzáférést a lekérdezések és az adatbázis-módosítások számára.
Elvárásaink egy adatbázis-kezelő rendszerrel szemben:
4. Felügyelje a több felhasználó által egy időben történő adathozzáféréseket úgy, hogy az egyes felhasználók műveletei ne legyenek hatással a többi felhasználóra és az egyidejű adathozzáférések ne vezethessenek az adatok hibássá vagy következetlenné válásához.
Adatbázis eszközök használata
néhány példa (támogatják a relációs adatmodellt)
– Oracle– MS SQL Server– IBM DataBase2 – Sybase
(amik NEM, vagy csak félig-meddig adatbázis-kezelők)
– dBase – Clipper– FoxPro– MySQL– Access (elterjedt, egyszerű a használata oktatásban használjuk)
Adatbázis
Egyazon információs rendszerhez tartozó adatok összefüggő,
szervezett rendszere.
Relációs adatmodell 1.
A tábla oszlopai azonos típusú adatmezőket: értékeket vagy más néven tulajdonságértékeket tartalmaznak (szöveg, szám, dátum, logikai érték)
Az oszlop címkéit mezőnevekneknek vagy tulajdonságtípusnak is szokás nevezni.
A tábla sorait rekordoknak vagy egyedelőfordulásnak nevezzük.
A relációs adatbázisokban az adatokat táblázatokba rendezzük. Az egymással kapcsolatban álló táblák (más néven relációk vagy egyedtípusok) alkotják az adatbázist.
Relációs adatmodell 2.
Két tábla a bennük lévő közös tulajdonság (kapcsolómező) alapján kapcsolható össze.
Jelenleg a korszerű adatbáziskezelők relációs adatbáziskezelők. (Access, SQL Server, Oracle, Ingres, Paradox, dBase, Foxpro.) Ennek oka az adatmodell szemléletessége és rugalmassága.
Pl.: a Tanulók tábla és az Osztályzatok tábla a mindkettőben szereplő Tanulósorszám mező alapján. (Nem feltétlenül a név, hanem az adattípus és a tartalom egyezése a lényeges!)
Osztályzatok
Tanulók
Azonosító, kulcs
Egyszerű kulcs: ha az azonosító egyetlen tulajdonság.
Összetett kulcs: ha az azonosító több, külön-külön azonosítónak nem alkalmas tulajdonságból áll, amelyek együtt megfelelőek erre a szerepre.
A táblának az az oszlopa (tulajdonsága), amely minden sorban (rekordban) más-más értéket vesz fel, vagyis a táblán belül egy és csakis egy egyedre jellemző.
Az azonosító értéke
egy táblán belül egyedi
nem lehet NULL érték, vagyis definiálatlan érték
Idegen kulcs (foreign key): olyan tulajdonság, amely az adott táblában nem kulcs, de egy másikban igen. (Kapcsolatot biztosít)
Kapcsolatok a táblák közt
• 1:1 (Egy az egyhez)
• 1:N (Egy a többhöz)
• N:M (Több a többhöz) –ez csak elvi!
1:1 típusú (kölcsönös) kapcsolat
Rendszam Forg_eng_sz Tipus Szin Tulaj_nev
IZZ-776 MJ 99999 Opel Bordó Somogyi Éva
BFG 611 NJ 54111 Suzuki Lila Berek Edina
HTL-910 LK 63211 Renault Kék Vaj Ákos
PKM-225 KK 99886 Skoda Sárga Tóth Béla
Biztosito kotvenyszam rendszam
Hungária MH 00 123 IZZ-776
AB Aegon LB700 1-1 PKM-225
Providencia Ds 500 1209 HTL-910
Providencia Ds 500 1211 BFG-611
AUTOK
KOT_BIZTOSITAS
A KOT_BIZTOSITAS tábla egy sorához az AUTOK táblából maximum egy sor kapcsolódhat, és ez fordítva is igaz: az AUTOK tábla minden egyes sorához a KOT_BIZTOSITAS táblának csak egy sora kapcsolódhat.
Az ilyen módon összekapcsolható táblák adatait akár egy táblában is tárolhatnánk…
1:N típusú (alá- fölérendelő kapcsolat)
Rendszam Datum Kar_leiras Kar_osszeg
FGM-889 2004.12.12 Horpadt elülső lemez 99 450Ft
BFG-611 2004.12.31 Betört a szélvédő 25100 Ft
HTL-910 2005.01.1.2 Megrongálódott mot 298 000 Ft
DCY-103 2005.01.13 Teljesen összetört a bal 340 700 Ft
BGG-668 2005.01.15 Belementek hátulról 280 000 Ft
BFG-611 2005.01.16 Eltörött az Indexlámpa 3 500 Ft
DCY-103 2005-01.21 Lefújták festékszóróval 43 900 Ft
Biztosito kotvenyszam rendszam
Hungária MH 00 123 IZZ-776
AB Aegon LB700 1-1 PKM-225
Providencia Ds 500 1209 HTL-910
Providencia Ds 500 1211 BFG-611
KOT_BIZTOSITAS
KARESEMENYEK
A fölérendelt táblában a kapcsoló mező nem veheti fel többször ugyanazt az értéket (egyedi azonosító)
Az alárendelt táblában a kapcsoló mező többször is felveheti ugyanazt az értéket.
A fölérendelt tábla egy rekordjához az alárendelt táblának akár több rekordja is kapcsolódhat.
A relációs adatmodellre ez a fajta kapcsolat a jellemző!
M:N típusú (mellérendelő kapcsolat)
U_KOD UJSAGCIM DIJ E_KOD
NS Nemzeti Sport 3421 1124
KK Kiskegyed 5734 1124
MH M. Horgász 2734 6132
UJSAGOK ELOFIZETOK
E_KOD NÉV LAKCIM U_KOD
1124 Balogh Irma Kőfejtő u. 4 KK
6132 Só Pál Lom tér 3 KK
1368 Virág Elek Lom tér 1. NS
4421 Végh Béla Kőfejtő u. 3 NS
Ugyanazt az újságot többen is előfizethetik, és egyazon személy több újságra is előfizethet.
Ebben az esetben mindkét tábla egy adott sorához a másik táblának több sora is kapcsolódhat.
A relációs adatmodellre ilyen kapcsolatot nem tud kezelni.
M:N típus 2.
U_KOD UJSAGCIM DIJ
NS Nemzeti Sport 3421
KK Kiskegyed 5734
MH M. Horgász 2734
UJSAGOK ELOFIZETOK
1368NS
6132KK
6132MH
1124NS
1124KK
E_KÓDU_KOD
ELOFIZETESEK
E_KOD NÉV LAKCIM
1124 Balogh Irma Kőfejtő u. 4
6132 Só Pál Lom tér 3
1368 Virág Elek Lom tér 1.
4421 Végh Béla Kőfejtő u. 3
Az M:N típusú kapcsolat több 1:N típusú kapcsolatra vezethető vissza, újabb tábla, vagy táblák közbeiktatásával.
Normalizálás (pl. itt az ELOFIZETESEK)
Így már tudja kezelni a relációs adatbáziskezelő!
Hivatkozási integritás
A fölérendelt táblából nem törölhetünk olyan adatot, illetve nem módosíthatjuk olyan rekord kulcsát, amelyhez tartozik kapcsolt rekord az alárendelt táblában. (vagyis a kapcsolatot biztosító tulajdonság értéke a két táblában azonos)
Pl. nem törölhetjük az Tanulók táblából a Bedők Csilla rekordját, ha az Osztályzatok táblában van rá vonatkozó rekord.
Az alárendelt táblában nem rögzíthetünk olyan adatot, amelyhez a fölérendelt táblában nem tartozik megfelelő rekord.
Pl. az Osztályzatok táblában addig nem rögzíthetjük Bedők Csilla osztályzatát, amíg a Tanulók táblában nem szerepel.
Az adatbázis szerkezetére vonatkozó megkötés. A kapcsolt táblák között akkor áll fenn, ha:
Ellenőrző kérdések1. Mi az adatbázis?2. Mi a relációs adatmodell lényege?3. Mi tartalmaznak a tábla oszlopai?4. Milyen típusúak lehetnek a tábla oszlopai?5. Mit tartalmaznak a tábla sorai?6. Hogyan nevezzük még a relációs adatbázis tábláit?7. Hogy nevezzük még a tábla oszlopait (oszlopcímkéit, sorait)?8. Mi alapján kapcsolható össze két tábla?9. Mi az azonosító (kulcs)?10. Mi az összetett kulcs?11. Milyen kikötéseket ismersz az azonosító értékével kapcsolatban?12. Milyen típusú kapcsolat lehet a táblák közt? 13. Mi jellemző az 1:N (1:1, M:N) típusú kapcsolatra?14. Melyik kapcsolattípus jellemző a relációs adatmodellre?15. Mi a hivatkozási integritás?16. Melyek a hivatkozási integritás szabályai?
Adatbázis műveletek
Létrehozás– mezők típusa– kulcs (rekordok azonosításához)– feltételek– legördölő lista lehetősége
Rendezés– fizikai átrendezés
Indexelés– logikai rendezés
Szűrés Kapcsolatok létrehozása, módosítása
– adattáblák közti megfeleltetés
Adatok megjelenítése, keresése
Lekérdezés– adattáblákból keres ki adatokat vagy számít ki
mennyiségeket
Űrlap– rekordok megjelenítéséhez
Jelentés– nyomtatáshoz rendezett adatok
Nézetek
Adatlap nézet Tervező nézet SQL nézet
Egyebek
Varázslók– lekérdezéshez– űrlap készítéséhez– jelentés készítéséhez
Stílusok– űrlapoknál– jelentéseknél
Importálás, exportálás– pl. Excel fájlból Access adattáblát lehet létrehozni
SQL I.
Structured Query Language – Strukturált lekérdező nyelv
adatbázis-orientált programozási nyelv
1. Példa: adatbázis tábla definíciója:
CREATE TABLE Szamla ( Szamlaszam NUMERIC(24), Tulajdonos VARCHAR(60), Nyitas DATE, Allapot VARCHAR(1), PRIMARY KEY (Szamlaszam)
);
SQL II.
2. Példa: Lekérdezés
SELECT COUNT(*), Tulajdonos FROM Szamla WHERE Allapot = 'N' GROUP BY Tulajdonos HAVING COUNT(*) > 1 ORDER BY Tulajdonos ;
A fenti példa kilistázza azokat a személyeket, akiknek egynél több aktív bankszámlája van. Az első oszlopban az aktív bankszámlák száma, a másodikban a tulajdonosok neve olvasható. A táblázat a tulajdonosok neve szerinti emelkedő sorrendben jelenik meg.
Lekérdezések
Választó lekérdezés
Adott feltételeknek megfelelő adatok megjelenítésére szolgál
Törlő lekérdezés
Adott feltételeknek megfelelő adatok törlésére szolgál
Nagy Károly - http://www.kariszoft.hu
Frissítő lekérdezés
A megfelelő rekordok adatainak módosítására szolgál
Paraméteres lekérdezés
Egy bizonyos feltétel megadását a felhasználóra bízzuk
A felhasználó adja meg a hiányzó feltételt
Kereszttáblás lekérdezés
Az adatok két szempont szerinti elemzését jelenti
Táblakészítő lekérdezés
Megegyezik a választó lekérdezéssel, de a kiválasztott rekordok nem a képernyőn, hanem egy új táblában jelennek meg
Hozzáfűző lekérdezés
Az adott feltételeknek megfelelő rekordokat hozzáfűzi egy már korábban létrehozott táblához, amely nem lehet azonos a forrás táblával
Indexelés
Az adatok keresésének gyorsítására szolgál
Működésének alapja egy segédtábla (indextábla), amely a rekordok sorrendjét tartalmazza az adott mező szerint
Az index megadása növeli az adatbázis fájl méretét, de gyorsítja a keresést
„lehet azonos”, vagy „nem lehet azonos”
Táblák közötti kapocsikatok