Adatbáziskezelés Adatmodell és adatbázis
tb0 07
Alapfogalmak: • Adatmodell: olyan koncepciók gyűjteménye, amelyek egy adatbázis szerkezetét (egy megadott jelölésrendszer segítségével) egyértelműen leírják. Tartalmazza az adatkezelési alapműveleteket (bevitel, módosítás, törlés, lekérdezések), valamint a felhasználó igényei szerint kialakított összetett műveleteket (tranzakciókat). • Adatbázis: egy megvalósított adatmodell, tartalmazza az adatokat és az adatok típusait és kapcsolatait leíró, úgynevezett meta adatokat. • Adatbázis-kezelő rendszer (DBMS - Data Base Management System): az adatleíró és adatkezelő nyelvet magában foglaló rendszer. Ismertebbek: ORACLE, MS ACCESS o adatszerkezet leíró nyelv: (DDL - Data Definition Language) o fizikai szerkezetet leíró nyelv: (SDL – Storage Descriptios Language) o Tárolt adatok visszakeresését támogató nyelv: (DML - Data Manipulation Language) • Szabványosított lekérdező nyelv: (SQL – Structured Query Language). Magában foglalja a DDL, SDL, és DML nyelvet. Karakteres felületen egyfajta programozást igényel.
Adatbázis-rendszerek felépítése
FELHASZNÁLÓ
ADATBÁZIS RENDSZER
ALKALMAZÓI PROGRAM
ADATBÁZIS-KEZELŐ RENDSZER (DBMS)
A LEKÉRDEZÉSEKET FELDOLGOZÓ SZOFTVERKOMPONENS
A TÁROLT ADATOKAT KEZELŐ SZOFTVERKOMPONENS
OPERÁCIÓS RENDSZER
METAADATOK
TÁROLT ADATOK
1
Az adatbázis típusai: hierarchikus adatmodell, hálós adatmodell, relációs adatmodell objektum orientált adatmodell
tb0 07
• • • •
Az adatbázis-tervezés fázisai
Az adatbázis-tervezés hat fázisa
1. Fázis: Igények összegyűjtése Adatigények és elemzése
Műveleti igények
2. Fázis: Koncepcionális terv elkészítése (DBMS független)
Tranzakciók leírása (pszeudokód)
Koncepcionális séma (magas szintű modell)
3. Fázis: DBMS típusának kiválasztása
4. Fázis: Leképzés (DBMS függő) 5. Fázis Fizikai tervezés 6. Fázis: Megvalósítás
Logikai séma (alacsony szintű modell) Belső séma (fizikai szerkezet, hozzáférési módok) DDL és SDL nyelvi leírás (konkrét DBMS)
Tranzakciók kódja
Koncepcionális séma (magas szintű modell)
A magas szintű modellek közül elterjedten használják az Egyed-Kapcsolat (ER Entity-Relationship) vagy Kibővített Egyed-Kapcsolat (EER Enhanced Entity-Relationship) modelleket, mivel azok • kifejezők, hiszen az adattípusokon kívül azok kapcsolattípusait is szemléltetik • egyszerűek, azaz nemcsak a szakemberek értik meg azokat viszonylag rövid idő alatt • kevés fogalmat használnak, ami viszonylag rövid idő alatt megtanulható • ábrákat használnak, ami szemléletes • egyértelműek, azaz szinte nem lehet félreérteni azokat
Logikai (implementációs, alacsony szintű modell) adatmodellek • • • •
hierarchikus hálós relációs objektum-orientált
Adatbázis-kezelők célja, alkalmazási területei
• Adatbázis-kezelők célja: az adatok kezelése (adat felvétel, módosítás, törlés, ...) • Alkalmazási területei: o nyilvántartásokban: könyvtári, személyi, kölcsönzési (videó, könyv, ...) o telefonszámok tárolása ...stb.
2
Adatbázis-kezelők feladatai adatállomány létrehozása új adatok bevitele adatok módosítása adatok törlése keresés rendezés listázás válogatás egyéb feladatok: nyomtatás, számolás, operációs rendszer funkciói
tb0 07
• • • • • • • • •
ER (egyed kapcsolat)modell
Az ER modell egyedtípusokból, a köztük lévő kapcsolatokból és az egyes egyedtípusokhoz tartozó attribútumokból épül fel, és alkot szerves egészet.
Alapfogalmak
• egyedtípus: a modellezni kívánt világ egy-egy közös tulajdonsággal jellemezhető és egymástól egyértelműen elkülöníthető kisebb csoportjai, melyek tartalmazzák a valós előfordulásokat (egyedeket). Egyes szám, főnév,. pl. ház, növény, kutya,… . • egyed-előfordulás: bizonyos egyedtípushoz tartozó egyedek, pl. Blöki, … . • attribútum: azok az adatok, amelyeket a felhasználó nyilván akar tartani, azaz egyedtípusokat jellemző tulajdonság. Csak meghatározott értéket vehet fel. csoportosítása:
egyszerű: kisebb egységre már nem bontható, pl. testmagasság összetett: további kisebb egységekre bontható, pl. lakcím Azt, hogy egyszerűt vagy összetettet használunk, a feldolgozás igényei szabják meg. egyértékű: egyetlenegy értéket vehet fel, pl. testmagasság többértékű: egy egyed estében több értéket vehet fel, pl. kedvenc étel forrás: azok az attribútumok, amelyek ahhoz szükségesek, hogy a származtatott attribútumot kiszámoljuk, pl. születési év o Származtatott: amit a forrásból számítunk ki, pl: hány napot töltött egy ember a szállodában (vendég éjszaka=érkezés dátuma-mai dátum) kulcs-attribútum: ez azonosítja egyértelműen az egyedet, egyedtípus létre-hozásakor fontos feladat a meghatározása gyenge egyedtípus: nincs olyan attribútuma, amelyek kulcsként használhatnánk. Mindig létezik a vele kapcsolatban levő egyedtípusok között legalább egy, amellyel való kapcsolat révén egyedeit egyértelműen azonosítani lehet. szülő egyedtípus: gyenge egyedek azonosítását biztosító egyedtípus azonosító kapcsolat: szülő és a gyenge egyedtípus között fennálló kapcsolat parciális kulcs: egy szülőn belül azonosítja gyenge egyedet. Egy vagy több egyedtípus kulcs-attribútuma, valamint a gyenge egyedtípus parciális kulcsa együttesen már egyértelműen azonosítja a gyenge egyedet.
o o o o o o
•
•
• • •
Jelölések egyedtípus:
gyenge egyedtípus:
HÁZ
KUTYA
3
attribútum (tulajdonság): kulcs: személyiszám
kutyanév vezetéknév
tb0 07
egyértékű, egyszerű:
parciális kulcs:
többértékű, egyszerű:
zene
egyértékű, összetett:
születésihely
születés
születésiidő
Kapcsolatok
Két vagy több egyedtípus kapcsolatban van egymással, ha létezik egy olyan, a feladat szempontjából fontos rendezőelv, mely az egyedtípusok egyedeit egymáshoz rendeli. Jellemzője a kapcsolat fokszáma, amely megadja, hogy a kapcsolatban hány egyedtípus vesz részt. A kettőnél nagyobb fokszámú kapcsolatokat N-ágú kapcsolatoknak nevezzük. jelölése: teljes részleges KAPCSOLATNÉV
Csoportosítása: • egyedek kapcsolatban való részvétele alapján: o teljes: egy, a kapcsolatban levő egyedtípus minden egyede részt vesz a kapcsolatban, azaz minden egyed kapcsolatban van legalább egy másik egyeddel. Példa:
HÁZ h1 h2 h3
LAKIK L1 L2 L3 L4 L5 L6
EMBER e1 e2 e3 e4 e5 e6
o részleges: valamely egyedtípus előfordulása nem létesít kapcsolatot egyetlen másik egyeddel sem. Pl. minden gazdinak van kutyája (teljes), de nem minden kutyának van gazdája(részleges)
EMBER e1 e2 e3 e4 e5 részleges
VAN_E v1 v2 v3 v4 v5
KUTYA a1 a2 a3 a4 a5 teljes
FÉRFI f1 f2 f3 f4 f5 részleges
HÁZASTÁRS h1 h2 h3
NŐ n1 n2 n3 n4 n5 részleges
4
• egy adott egyedtípushoz tarozó egyed alapján (azaz egy egyed hány másik egyedtípushoz tartozó egyeddel van kapcsolatban): o 1:1 kapcsolat: ha a kapcsolatban résztvevő egyedei legfeljebb egy másik egyedtípusbeli egyeddel létesít kapcsolatot (Pl.: férfi-házastárs-nő)
tb0 07
o 1:N kapcsolat: az egyik oldal egyedei legfeljebb egy másik oldalbeli egyeddel létesítenek kapcsolatot, míg a másik oldal előfordulásai között biztosan van legalább egy olyan egyed, amely több előző oldalbeli egyeddel van kapcsolatban. (Pl.: embervan_e-kutya)
o M:N kapcsolat: mindkét oldal tartalmaz legalább egy olyan egyedet, amely több másik oldalbeli előfordulással van kapcsolatban. (Pl.: szinész-játszik-darab) SZÍNÉSZ JÁTSZIK sz1 j1 sz2 j2 sz3 j3
DARAB d1 d2 d3
Relációs modell Alapfogalmak:
• reláció: táblázat • rekord: a táblázat egy sora • fejléc: a táblázat első, kitüntetett sora, itt vannak az oszlopok nevei, szokás ATTRIBÚTUMOK-nak vagy MEZŐK-nek is nevezni. • fokszám: a táblázatban lévő oszlopok száma • kardinalitás: a sorok száma a táblázatban • név: a táblázat neve, amely mindig egyedi, (azaz egy relációs adatbázisban nem lehet két egyforma nevű táblázat)
ÁLLAT NÉV kutya egér
KULCS
Táblázat neve
LAKCÍM kutyaól egérlyuk
Attribútumok (mezők)
HOBBI macskakergetés rágcsálás
FŐÉTEL csont sajt
Fejléc
Rekord
oszlop
fajtái: • Elsődleges kulcs: a táblázat sorainak egyértelmű azonosítására (megkülönböztetésére) szolgál (pl.: a személyi szám a dolgozók nyilvántartásában) • Összetett kulcs: amikor két vagy több oszlop kombinációjára van szükség az egyértelmű azonosításhoz. Ha több olyan mező is van, amely elsődleges kulcs lehet, akkor amit nem választottunk elsődleges kulcsnak azt Alternatív kulcsnak nevezzük. (Pl.: ha egy személynél a szem.szám elsődleges kulcs, akkor a TB.szám vagy az adóazonosító jel alternatív kulcs). Az elsődleges kulcs választásánál ügyelnünk kell arra is, hogy a kulcsban szereplő komponensek (oszlopok) száma minimális legyen. • Idegen kulcs: hivatkozni tudunk egy másik, a hivatkozó táblázattal logikai kapcsolatban lévő táblázatra. Az idegen kulcsnak megfelelő érték abban a táblázatban, amelyiknek a rekordjára hivatkozunk, elsődleges kulcs.
5
Függőség: minden relációban van olyan kulcs, amitől a többi attribútum értéke függ. Az elsődleges kulcstól funkcionálisan függ a többi attribútum. idegen kulcs LAKCÍM
HOBBIKÓD
FŐÉTEL
kutya macska
kutyaól lábtörlő
mk fu
csont egér
elsődleges kulcs
HOBBI HOBBIKÓD
HOBBINÉV
mk fu
macskakergetés futás
tb0 07
ÁLLAT NÉV
A relációs modellben konkrét rekordokat nem kell feltüntetni, csupán a relációk nevét és az attribútumokat, valamint a relációk közti kapcsolatokat. Ábrázolási formák: ÁLLAT
NÉV
HOBBI
LAKCÍM HOBBIKÓD
FŐÉTEL
HOBBIKÓD HOBBINÉV
ÁLLAT (NÉV, LAKCÍM, HOBBIKÓD, FŐÉTEL)
HOBBI (HOBBIKÓD, HOBBINÉV)
ÁLLAT (NÉV, LAKCÍM, HOBBIKÓD, FŐÉTEL)
HOBBI (HOBBIKÓD, HOBBINÉV)
„Varjúláb” technika, kifejezi a kapcsolat és részvétel típusát. Az állat parciálisan vesz részt, egy 1:N kapcsolatban. (Több állatnak lehet ugyanaz a hobbija, de egy állatnak csak egy van.)
Anomáliák
Feladat egy alkalmazotti nyilvántartás készítése. Tárolni kell a dolgozó nevét, címét, foglalkozását.
ALKALMAZOTT AZONOSÍTÓ NÉV 100 Hapci Benő 110 Kuka Kázmér 120 Vidor Bálint 130 Szende Alfonz
LAKCÍM Erdő fasor 1. Bányaköz 9. Sújtólég u.13. Mézeskalács tér 2.
FOGLALKOZÁSKÓD bm vj vj bm
FOGLALKOZÁS bányamérnök vájár vájár bányamérnök
A táblázat fölösleges ismétlődéseket, tárolási redundanciákat tartalmaz (foglalkozás attribútum), amely problémákhoz vezet: • bővítési anomália: új foglalkozás megjelenésekor üres lesz a többi mező, míg be nem töltik az állást • törlési anomália: ha a két vájár kilép, akkor megszűnik a foglakozás is
• módosítási anomália: ha megváltozik egy foglalkozás neve, akkor több helyen is módosítani kell.
6
Megoldás: a foglalkozásokat másik táblázatban tároljuk: NÉV Hapci Benő Kuka Kázmér Vidor Bálint Szende Alfonz
LAKCÍM Erdő fasor 1. Bányaköz 9. Sújtólég u.13. Mézeskalács tér 2.
FOGLALKOZÁSKÓD bm vj vj bm
tb0 07
ALKALMAZOTT AZONOSÍTÓ 100 110 120 130
FOGLALKOZÁS FOGLALKOZÁSKÓD bm vj üo tk
FOGLALKOZÁS bányamérnök vájár üzemorvos takarító
Eredményül csökken a tárolási redundancia, mert a jóval rövidebb foglalkozás kódokat tároljuk. Megszűnnek az anomáliák, egy foglalkozás felvétele törlése vagy módosítása csak a FOGLALKOZÁS táblát érinti.
Normalizálás
Táblázatszétbontó eljárás, eredményesen három, néha négy lépésben végezhető el. Az eredmény több, egymással kapcsolatban álló, az eredetinél kisebb tárolási igényű reláció (táblázat). A normalizálás haszna: • csökken a tárolási igény (redudancia csökkentése) • törlési, módosítási és beszúrási anomáliák megszűnése • logikailag áttekinthetőbb AB
Adattípusok
Mit nevezünk adatnak?
• elemi adat: az információ önállóan is értelmes legkisebb része • rekord: összetartozó elemi adatok • állomány: az összes rekord
Adattípusok: (általában)
• numerikus (szám): o integer (egész) o real (valós) • karakteres (szöveg): meghatározott számú karaktert tartalmazó mező (max. 256) • logikai (boolean): logikai kifejezésben fordul elő, értéke igaz vagy hamis lehet • sztring (feljegyzés): • (memo): előre nem meghatározott számú karaktert tartalmazó mező (max. 64000) • dátum/idő (date): dátum és idő tárolására szolgál Konstans fogalma: az érték megadása előre (pl.: kezdőérték megadása) Változó fogalma: a program futása alatt változik az értéke, a felhasználó is változtathatja
7
Adatműveletek, operátorok:
tb0 07
• aritmetikai műveletek: +, −, *, / műveletek sorrendje (precedencia szabály), balról-jobbra szabály, zárójel szabály (+, −, *, / ezek mindegyike számokon elvégezhető) (+, − dátum típusú adatokon is elvégezhető) (a művelet eredménye szám típusú)
• logikai műveletek: AND (és), OR (vagy), NOT (nem), XOR (kizáró vagy) (a műveletek csak logikai típusú, vagy eredményű adatokon végezhetők el, pl.:férfi OR nő, x<3 AND y>7)
• relációs, vagy összehasonlító műveletek: <, >, =, <=, >=, <> (<> azonos a ≠-vel) a műveletek felhasználhatók szám, logikai, dátum/idő típusú adatoknál, eredményük viszont logikai típusú lesz
8