You are on page 1of 38

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!
Alapfogalmak

Adat: Információ:
észlelhető, értelmezett,
felfogható ismeret feldolgozott adat
jelsorozat új ismeretté
valakinek, vagy értelmezett adat
valaminek a újat közöl
jellemzője
tény, közlés
Alapfogalmak

Adathalmaz
rendszertelen,
szervezetlen módon
rögzített adatok
összessége
Alapfogalmak

Adatállomány: Adatbázis:
összefüggő rendezett tárolási elv
adathalmaz, amelyben szerint rögzített
minden szükséges adat adatok;
megtalálható lehetővé teszi az
adatok értelmes
kezelését
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
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 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.
Alapmodellek

 hierarchikus modell
 hálós modell
 relációs modell
 objektum-orientált modell
 félig strukturált adatmodell
Adatbázis-kezelők
 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)
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
Relációs modell
Tábla = EGYEDTÍPUS
Mező = TULAJDONSÁGTÍPUS
Rekord = EGYEDELŐFORDULÁS (EGYED)
Adat = TULAJDONSÁGÉRTÉK
Relációs adatmodell 1.

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.

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.
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.

Tanulók
Osztályzatok

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!)
Azonosító, kulcs
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ő.
 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.

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
KOT_BIZTOSITAS
Biztosito kotvenyszam rendszam A KOT_BIZTOSITAS tábla egy sorához az
Hungária MH 00 123 IZZ-776 AUTOK táblából maximum egy sor
AB Aegon LB700 1-1 PKM-225 kapcsolódhat, és ez fordítva is igaz: az
AUTOK tábla minden egyes sorához a
Providencia Ds 500 1209 HTL-910
KOT_BIZTOSITAS táblának csak egy sora
Providencia Ds 500 1211 BFG-611
kapcsolódhat.

AUTOK
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

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)
KOT_BIZTOSITAS
A fölérendelt táblában a kapcsoló mező nem
Biztosito kotvenyszam rendszam
veheti fel többször ugyanazt az értéket (egyedi
Hungária MH 00 123 IZZ-776 azonosító)
AB Aegon LB700 1-1 PKM-225
Az alárendelt táblában a kapcsoló mező
Providencia Ds 500 1209 HTL-910
többször is felveheti ugyanazt az értéket.
Providencia Ds 500 1211 BFG-611

KARESEMENYEK
A fölérendelt tábla
Rendszam Datum Kar_leiras Kar_osszeg
egy rekordjához az
alárendelt táblának FGM-889 2004.12.12 Horpadt elülső lemez 99 450Ft

akár több rekordja is BFG-611 2004.12.31 Betört a szélvédő 25100 Ft


kapcsolódhat. 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
A relációs BFG-611 2005.01.16 Eltörött az Indexlámpa 3 500 Ft
adatmodellre ez a DCY-103 2005-01.21 Lefújták festékszóróval 43 900 Ft
fajta kapcsolat a
jellemző!
M:N típusú (mellérendelő kapcsolat)
UJSAGOK
U_KOD UJSAGCIM DIJ E_KOD
NS Nemzeti Sport 3421 1124
KK Kiskegyed 5734 1124
MH M. Horgász 2734 6132

ELOFIZETOK
NÉV
újságot E_KOD LAKCIM U_KOD
Ugyanazt az 1124 Balogh Irma Kőfejtő u. 4 KK

többen is előfizethetik, és 6132 Só Pál Lom tér 3 KK

egyazon személy több 1368 Virág Elek Lom tér 1. NS


Végh Béla Kőfejtő u. 3
újságra is előfizethet. 4421 NS

Ebben az esetben mindkét


tábla egy adott sorához a A relációs adatmodell
másik táblának több sora is ilyen kapcsolatot nem
kapcsolódhat. tud kezelni.
M:N típus 2.
UJSAGOK ELOFIZETOK
U_KOD UJSAGCIM DIJ E_KOD NÉV LAKCIM
NS Nemzeti Sport 3421 1124 Balogh Irma Kőfejtő u. 4
KK Kiskegyed 5734 6132 Só Pál Lom tér 3
MH M. Horgász 2734 1368 Virág Elek Lom tér 1.
4421 Végh Béla Kőfejtő u. 3

ELOFIZETESEK
U_KOD E_KÓD Az M:N típusú kapcsolat több 1:N típusú
KK 1124 kapcsolatra vezethető vissza, újabb
NS 1124 tábla, vagy táblák közbeiktatásával.
MH 6132
KK 6132
Normalizálás
(pl. itt az ELOFIZETESEK)
NS 1368

Így már tudja kezelni a


relációs adatbáziskezelő!
Hivatkozási integritás
Az adatbázis szerkezetére vonatkozó megkötés. A kapcsolt táblák között
akkor áll fenn, ha:

 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.
Ellenőrző kérdések

1. 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. Mi alapján kapcsolható össze két tábla?
7. Mi az azonosító (kulcs)?
8. Mi az összetett kulcs?
9. Milyen típusú kapcsolat lehet a táblák közt?
10. Melyik kapcsolattípus jellemző a relációs adatmodellre?
11. Mi a hivatkozási integritás?
12. 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
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
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
Táblák közötti kapcsolatok

You might also like