Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
1
Adatbázis-kezelés
Alapfogalmak
Összeállította:
Nagy Zsolt
(fejlesztés alatt)
2
Adat:
Autó:
– Típus,
– Rendszám,
– Szín,
– Évjárat.
Az ismereteink megjelenési formája!
Bármi, amiről ismeretet tudunk szerezniadatként van jelen.
3
Adat:
Az adat tények, fogalmak, eligazítások
olyan formai megjelenése, amely
alkalmas az emberi vagy az
automatikus eszközök által történő
értelmezésre vagy feldolgozásra.
4
Adat:
Hogyan jutunk adatokhoz (ismerethez)?
• Társalgás,
• Olvasás,
• Mérés,
• Feldolgozás,
• Stb.
5
Információ
Adat + meglévő tudás Információ
Értelmezett adat!
Következtetés,
gondolkodás
6
Információ
Az adatnak tulajdonított jelentés.
Olyan tény, amely a befogadó ember
számára új ismeretet tartalmaz és ezáltal
bizonytalanságunkat csökkenti.
Az információ a tartalmi, az adat a formai
megjelenését jelenti ugyanannak a
közleménynek.
7
Adatkezelés
Az adatkezelés során adatokkal dolgozunk, amelyek a feldolgozó ember számára információvá válhatnak.
Király kincstárnoka VIR
Adatkezelést azért végzünk, hogy a meglévő ismereteinket eltároljuk, később visszakeressük, feldolgozzuk.
Vállalati Információs
RendszerFejlődés
8
Adatkezelés formái
• Szöveges szövegszerkesztők
• Táblázatos táblázatkezelők
• Adatszerű adatbázis-kezelők
• A jövő Adattárházak, Adatbányászat
Óriási méretű egységes adathalmazokból,
statisztikai és egyéb eljárásokkal új ismeretek
kinyerése.
9
Adatkezelés alkalmazási területei• kereskedelem: raktári készlet és megrendelések
nyilvántartása,
• kultúra, oktatás: könyvtári információs rendszerek, hallgatói adminisztráció
• közigazgatás: adónyilvántartások
• közlekedés: jegy helyfoglalási rendszerek
• egészségügy: betegnyilvántartás
• tudomány: szak-adatbázisok
• posta: ügyfelek, számlák nyilvántartása
• vállalat: termelés irányítási rendszerek
• mérnöki munka: tervezői rendszerek.
10
Információs rendszerek
követelményei
• Nagymennyiségű adatok hatékony kezelése.
A felhasználónak elfogadható időn belül kell választ kapnia a feltett kérdéseire.
• Konkurens hozzáférés támogatása.
Egyidejűleg több felhasználó is használja. A párhuzamos változtatások, műveletek, ha nincsenek összehangolva, akkor egymás hatását kiolthatják. Banki tranzakció.
• Integritásőrzés.A modellezett valóság belső törvényszerűségeinek megtartása. A letárolt adatok megfelelnek a belső szabályrendszernek. Nem lehet negatív életkor.
11
Információs rendszerek
követelményei II.
• Védelem.
Mi ellen?– Adathordozó megsérülése.
– Operációs rendszer vagy a program összeomlására.
– Illetéktelen személyek adatokhoz férése.
Módszerek:– RAID (független lemezek redundáns tömbje)
– Hozzáférések szabályozása (felh. Név + jelszó)
– Titkosítás
Ehhez viszont nyílván kell tartani a jogosult felhasználókat, azok
jogait és minden műveleti igény kiadásakor ellenőrizni kell, hogy elvégezhető-e a művelet.
12
Információs rendszerek
követelményei III.
• Hatékony programfejlesztés.
Cél a rendszerfejlesztési idő lerövidítése!
Piaci verseny miatt.
A gyorsaság bizonyos értelemben alapkövetelmény is,
hiszen a rendszer mindig a valóság egy modelljének
felel meg, s a modellezett valóság elég gyakran változik,
pl. megváltoznak a szabályozók, a törvények.
Legyenek képesek a kisebb változtatásokat elviselni!
Adatszerkezet módosítása.
13
Adatbázis (DB)
Adatoknak kapcsolataikkal együtt való ábrázolása és tárolása.
Adatbázisban tárolódnak továbbá az adatok szerkezetére, ellenőrzésére, védelmére vonatkozó adatok (metaadatok) is.
(Az adatbázis egy integrált adatrendszer, amely több különböző objektum előfordulási adatait, adatmodell szerint szervezetten, perzisztens módon tárolja a kapcsolatleíró elemek mellett a metaadatokkal együtt, melyek a hatékonyság, integritásőrzés, és az adatvédelem biztosítását szolgálják.)
14
Adatbázison elvégzendő műveletek
• Az adatbázis és szerkezetének kialakítása, karbantartása,
• Adatok karbantartása (beszúrás, módosítás, törlés),
• Adatok lekérdezése,
• Adatvédelem, adatbiztonság megoldása (hozzáférési jogok, titkosítás, jelszó, stb.),
• Konzisztencia biztosítása integritási megszorítások alkalmazásával,
• Konkurens hozzáférések kezelése.
15
Konzisztencia: Az adatbázis épsége. Ne
tartalmazzon az adatbázis hibás értékeket,
logikai ellentmondásokat.
pl.: Egy személy életkora nem lehet negatív érték!
Integritási megszorítások: Szabályok melyek
biztosítják az adatbázis konzisztenciáját.
pl.: életkor > 0
Konkurens hozzáférés: Egy adatbázishoz
egyszerre többen is hozzáférjenek.
pl.: Egy vonat helyfoglalásnál egyszerre több
pénztáros is adhasson el jegyet.
16
Adatbázist kezelő szoftverek
készítésére használt programozási
nyelvek, eszközök fejlődése:
• Kezdetben kis tárkapacitás főleg numerikus
számítások: Assembly, Fortran
Mágnesszalag szekvenciális hozzáférés.
• 1960-as évek: megjelent egy adatorientált nyelv: Cobol
IBM winchester közvetlen hozzáférés.
Adatmodellek kidolgozása: hálós, hierarchikus.
• 3GL (3. gen. Eszközök): dBase, Clipper, FoxBase
• 4GL (negyedik generációs fejlesztőeszközök): Access,
Oracle, Visual C++, Visual Basic, Visual FoxPro, Delphi
17
18
Adatbáziskezelő rendszer
(ABKR, DBMS)
DBMS (Data Base Management System)
Az a szoftverrendszer, amely az adatbázis
műveletek elvégzésére szolgál.
Részei:
• File kezelő (támaszkodhat az operációs
rendszerre),
• Adatvédelmi rész,
• Felhasználói kapcsolat
19
DBMS
Egy felhasználó több összetevőn éri el az
adatokat:
felhasználó felhasználói alkalmazás
(raktárnyilvántartó) DBMS (Access)
operációs rendszer (file kezelés,
lemezkezelés) adat
20
DBMS komponensei
Sokszor az operációs
rendszer háttértár
kezelésére
támaszkodik.
Műveletek
Fizikai
tárolás
21
• Tárkezelő: Nagyobb rendszereknél közvetlen lemezkezelés. Részei: fájlkezelő (lemezblokkok olvasása/írása), puffer-kezelő (memória munkaterületek kezelése).
• Lekérdezés feldolgozó: magas szintű lekérdezések átalakítása egyszerű műveletek sorozatára, optimalizálással. (A lemezblokk-műveletek számát kell minimalizálni.)
• Tranzakció kezelő: adatbiztonság támogatása (párhuzamos hozzáférések kezelése, változások naplózása, rendszerhiba esetén adat rekonstrukció).Tranzakció: Egy egységként kezelendő művelet sorozat!
Pl.: bankban pénzfelvételnél egyenleg ellenőrzése + pénzfelvétel. egy műveletnek számít!
22
DBS - Adatbázisrendszer
DBS Data Base System
DBS = DB + DBMS + segédprogramok
• DB: Adatbázis,
• DBMS: Adatbáziskezelő rendszer,
• Felhasználói alkalmazás
23
DBS szerkezete
ANSI / SPARC architektúra
Nevét onnan kapta, hogy az ANSI/SPARC Study
Group on Data Base Manegement Systems
bizottság dolgozta ki. A vizsgálat eredményeként
megszületett egy általános DBS modell,
melyben kiemelt hangsúlyt kaptak az egyes
komponensek közötti interface-ek.
Az ANSI / SPARC architektúra az adatbázis
leírására három szintet tartalmaz: az külső
(external), a koncepcionális (conceptual) és a
fizikai (internal) szintet.
24
ANSI / SPARC architektúra I.
Az egyes szintek az adatbázisrendszer, mint egység, különböző megvilágításainak, megközelítéséinek felelnek meg. Ezért a szinteket szokás nézeteknek (view) is nevezni.
25
ANSI / SPARC architektúra II.
• Külső Szint: Amit egy felhasználó az
adatbázisból lát, ami számára az adatbázist
jelenti. A teljes adatbázis egy-egy része.
Pl.: pénzügy, raktár, management, marketing,
stb.
• Koncepcionális szint: A teljes adatbázis,
amelyet az adatbázis adminisztrátor, vagy az
adatbázis-tervező lát.
• Belső szint: Az adatbázis valamilyen fizikai
adatstruktúrában letárolva a háttértárolón.
Adattárolási nézet.
26
Egy ABR
architektúra
3 szintje
27
ANSI / SPARC architektúra III.
Ez a szerkezeti felosztás a következők miatt fontos:
• Az adatfüggetlenség, mint az adatbáziskezelés egyik legfontosabb követelménye, a koncepcionális és a fizikai szint éles különválasztásának köszönhető.– Logikai adatfüggetlenség: metaadatokkal.
– Fizikai adatfüggetlenség: A tárolási szerkezet megváltozása nem vonja maga után a koncepcionális séma megváltozását.
• A fizikai és elvi struktúra megkülönböztetése a fejlesztés során munkamegosztást tesz lehetővé.
28
Adatbázis adminisztrátor (AB)
Feladatai:
• Felhasználók létrehozása, kezelése,
• Jogosultságok kiosztása,
• A rendszer működésének figyelése,
• Rendszerhibák kezelése,
• Adatbázis tervezés figyelemmel kísérése.
29
Modellezés szerepe az
adatbázis-kezelésben
30
Rendszer
A valós világban lévő dolgok kapcsolatban vannak
egymással, hatnak egymásra, viselkednek.
Ezek rendszert alkotnak!
A rendszert rendszerelemek alkotják, amelyek
kapcsolatban vannak egymással és a külvilággal.
A valós világ elemzésekor egyértelműen meg kell tudnunk
határozni az összetartozó részeket, kapcsolatokat,
viselkedéseket. Vagyis meg kell tudnom határozni
vizsgált rendszert.
Pl.: könyvtár: olvasók, könyvek, kölcsönzések
A rendszerek általában bonyolultak és változnak.
31
Milyen területeken készítenek
modelleket?
• Autógyártás,
• Repülőgépgyártás,
• Épületek tervezése
Miért? Túl nagy, vagy túl bonyolult a
feladat!
32
Modellezés
Absztrakció (elvonatkoztatás).
Modellezés (a lényeg kiemelése).
A modellel mindig egy rendszert elemzünk.
A modellek elősegítik a valós világ objektumainak
a könnyebb megértését.
Az elkészítendő modellben kiemeljük az általunk
fontosnak tartott részeit az adott rendszernek,
illetve az azt alkotó objektumoknak.
Ha nagyméretű a feladat, akkor részekre bontjuk.
33
Adatmodell I.Azokat a modelleket, amelyek az adatok struktúrájának
(szerkezetének) leírására alkalmasak, adatmodelleknek
nevezzük.
Nem a konkrét adatokkal, hanem azok típusaival illetve a
közöttük lévő kapcsolatokkal foglalkozik.
Vagyis a valós világ objektumainak csak a feladat
megoldása szempontjából fontos jellemzőit emeljük ki és
szerepeltetjük az adatmodellünkben.
Adatmodell:
• Egy eszközrendszer, amellyel leírható a valóság.
• Több absztrakciós szinten is létezik.
Absztrakt
szint
34
Adatmodell II.Az adatmodellnek a valóság teljes értékű
megadásához az alábbi komponenseket kell tartalmaznia:
• Strukturális rész: az adattípusok és kapcsolatok megadására. Statikus
Pl.: rendszerelemek, kapcsolatok feltérképezése.
• Műveleti rész: különböző módosítási vagy lekérdezési tevékenység elvégzésére. Dinamikus
• Integritási rész: az adatbázis belső törvényszerűségeinek betartására ad szabályokat.Konzisztens legyen az adatbázis!
Pl.: nem lehet negatív életkor.
35
Adatmodellek fajtái
Felhasználóhoz közeli (szemantikai):
• Egyed-kapcsolat modellezés (EK),
• Objektum-orientált,
DBMS-hez közeli:
• Hierarchikus,
• Hálós,
• Relációs
• Objektum-orientált
36Példa
Egyed-kapcsolat
modellezés
EK-modell: Egyed-kapcsolat modell
ER-model: Entity-relationship model
Egy grafikus leíró eszköz, mely diagram
segítségével adja meg az adatbázis
szerkezetét (struktúráját).
37
EK modell elemei I.
• Egyed, Egyedtípus: Minden olyan dolog, ami minden más dologtól megkülönböztethető és amiről adatokat akarunk tárolni. Tulajdonságokkal akarjuk leírni.Az egyedtípust sok konkrét dolog általánosításaként hozzuk létre. absztrakció
• A konkrét értékek az egyed-előfordulások.
Pl.: könyvtári nyilvántartásban:könyv – olvasó egyedtípus
Isaac Asimov Én a robot – Kovács Pál egyed előfordulás
Absztrakt
Konkrét
38
Egyedtípusok
• Erős egyedtípus: Amelyet egyértelműen
tudunk azonosítani. Van azonosító jellegű
tulajdonsága.Pl.: személy személyi-szám azonosítja.
• Gyenge egyedtípus: A tulajdonságai nem
határozzák meg egyértelműen, csak a
kapcsolatai révén lesz meghatározott.Pl.: Számítógép szervizben a számítógépet a
tulajdonosával azonosítják.
Pl.: szülő – gyerek (14 év alatt) viszony.
39
EK modell elemei II.
• Tulajdonság, tulajdonság típus, attribútum: Az egyed jellemzői. Meghatározza az egyed egy részletét.
könyv (könyvszám, szerző, cím)
könyv ( 2312, Isaac Asimov, Én a robot) –> tul. előford.
olvasó (olvasószám, név, lakcím)
olvasó ( 001, Kovács Pál, Szerencs) tul. előford.
Tehát az egyedeket a tulajdonságaikkal írjuk le.
Absztrakt
Konkrét
40
Példák egyedre, tulajdonságra
• Vevő (név, vásárlás ideje, vásárolt termék)
• Termék (termékkód, terméknév, mennyiség)
• Eladó (név, műszak, eladott termék)
• Autó (rendszám, típus, évjárat, szín, ár)
• Tulajdonos (szem_szám, rendszám)
• Személy (szem_szám, név, lakhely)
41
EK modell elemei III.
• Kapcsolat: Egyedek közötti viszony.
Mindig valóságos objektumok közötti viszonyt
fejez ki.
autó tulajdonlás személy
könyv kölcsönzés olvasó
A kölcsönzést jellemezheti a könyv
kikölcsönzésének és visszahozásának dátuma.
kapcsolat
42
Könyvtári nyilvántartás EK
diagramja
43
Tulajdonságok lehetnek:
• Leírók: csak az egyed jellemzésében vesznek
részt.
Pl.: autó (…, típus, szín,…)
• Azonosítók: egyértelműen meghatározzák az
egyed egy előfordulását. Állhat több
tulajdonságból is.
Pl.: autó (rendszám,…)
• Összetett tulajdonság: a tulajdonság
résztulajdonságokból áll.
Pl.: lakcím helység, utca, házszám, irsz
44
Tulajdonságok lehetnek:
• Többértékű tulajdonságok: Egy egyed-
előforduláshoz köthetően több értéke is
lehet az adott tulajdonságnak.
PL.:
– Egy személynek a végzettség tulajdonsága
lehet: lakatos, asztalos, stb.
– A könyv szerzői lehetnek többen is.
45
Tulajdonságok lehetnek:
• Leszármaztatott tulajdonság: olyan
tulajdonság, amelynek értéke más
tulajdonságokból vezethető le.
Pl.: egy termék bruttó (ÁFÁ-s) ára kiszámítható
a termék árából és az ÁFA-kulcs mértékéből.
46
EK diagram jelölése:
• Erős egyedtípus: téglalap,
• Gyenge egyedtípus: kettős téglalap,
• Tulajdonságtípus: ellipszis,
– Azonosító: aláhúzás,
– Összetett tulajdonság: A fő tulajdonság ellipsziséhez kapcsolódó ellipszisek.
– Többértékű tulajdonság: kettős ellipszis,
– Leszármaztatott tulajdonság: szaggatott vonallal határolt ellipszis,
• Kapcsolat: rombusz vagy egyenes vonal.
47
Példák (egyedre)
Könyv (ISBN, szerző, cím)
könyv
szerzőISBN cím
Többértékű tulajdonság
(kettőzött ellipszis)Azonosító
(aláhúzva)
48
Példák (egyedre)
Olvasó (olvasószám, név lakcím)
olvasó
névolvasószám lakcím
irsz
helység
utca
házszám
Összetett
tulajdonság
49
Példák (egyedre)
Autó (rendszám, típus, évjárat, szín, ár)
autó
típus
rendszám
évjáratszín
ár
50
Példák (egyedre)
Ábrázold az egyedeket! Mik az azonosítók?
• Tanterem (sorszám, férőhely, osztály)
• Számítógépterem (sorszám, gépszám)
• Filmek (filmnév, szereplők, rendezte, típus,
gyártás ideje)
• Színész (azonosító, sz_név, született, filmek)
• Utazás (hely, dátum_kezd, dátum_vége,
férőhely, utazás módja, extrák)
51
Kapcsolat jellemzői
• Kapcsolat: egyedek közötti viszony
• Kapcsolat foka: Megmutatja, hogy a kapcsolat hány egyedet köt össze. Leggyakoribb a bináris kapcsolat, amely két egyedet kapcsol össze.
könyv kölcsönzés olvasó
A könyv és az olvasó egyedet a kölcsönzés nevű kapcsolat köti össze. Bináris, mert két egyed közötti viszonyt fejez ki.
52
Kapcsolat jellemzői
• Kapcsolat fajtái: Két egyedtípus egyed-
előfordulásai közötti viszony számosságát
adja meg.
Attól függően, hogy az egyik egyedtípus
egyed-előfordulásához hány egyed-
előfordulás kapcsolódik a másik
egyedtípusból, három esetet
különböztetünk meg:
53
Kapcsolat fajtái I.
1. Egy – egy típusú kapcsolat (1:1)Az egyik egyedtípus egyed-előfordulásai a
másik egyedtípus legfeljebb egy egyed-
előfordulásával létesítenek kapcsolatot.
pl.: Személy és Személyigazolvány egyedtípusok
között.
Személy Személyigazolvány
Egyed-
előfordulások
54
Kapcsolat fajtái II.
2. Egy – több típusú kapcsolat (1:N)Az egyik egyedtípus egyed-előfordulása a
másik egyedtípus több egyed-előfordulásához
kapcsolódik.
Megye Település
Borsod
Pest
Szerencs
Miskolc
Szentendre
BP
55
Kapcsolat fajtái III.
3. Több – több kapcsolat (N:M)Az egyik egyedtípus egyed-előfordulása a
másik egyedtípus több egyed-előfordulásához
kapcsolódhat és ugyanúgy a másik egyedtípus
egy egyed-előfordulása az egyik egyedtípus
több egyed-előfordulásához kapcsolódhat.
Könyv Olvasó
56
Kapcsolat fajtái IV.
4. Rekurzív (visszamutató) kapcsolat:Egy egyedtípus előfordulásai saját
egyedtípusuk előfordulásaihoz kapcsolódnak.
Személy
Házastársa
Dolgozó
Főnök
57
Kapcsolat jellemzői• Teljes a kapcsolat, ha az adott egyedtípus minden
egyed-előfordulása részt vesz a kapcsolatban.
Megye – Település
Minden megyéhez tartozik település és minden település tartozik valamelyik megyéhez. Nincs olyan megye, amelyhez ne tartozna település és nincs olyan település amelyhez ne tartozna megye.
Jelölése: folytonos vonal.
• Részleges, opcionális a kapcsolat, ha az egyedtípus nem minden előfordulása vesz részt a kapcsolatban.
Személy – SzemélyigazolványVan olyan személy egyed-előfordulás, amelyhez nem tartozik a személyigazolvány egyedtípusból előfordulás.
Jelölése: a teljes oldalról folytonos, az opcionális oldal felől szaggatott.
58
Kapcsolatok jelölése
• 1:1 kapcsolat:Egy vállalat dolgozóinak és sportcsapatának kapcsolatát
mutatja be.
Dolgozó Sportoló
1:1
A dolgozó oldaláról a kapcsolat részleges,
vagyis nem minden dolgozó sportol.
Mivel a sportoló egyed-előfordulásai a
dolgozó egyed-előfordulásai közül kerültek
ki, ezért minden egyed-előfordulása részt
vesz a kapcsolatban.
59
Kapcsolatok jelölése
• 1:N kapcsolat: • N:M kapcsolat:
Osztály Tanuló
1:N
Szerző Könyv
N:M
Az osztály egyed egy
előfordulásához a
tanuló egyed több
előfordulása
kapcsolódhat.
Egy szerző több
könyvet is írhat és egy
könyvnek több szerzője
is lehet.
60
EK-feladatok
Személy és az Autó egyed kapcsolatának modellezése: (autókereskedésben)
Személyi-
szám
Név
Rendszám
Típus
Ár
Személy Autó1 N
Egy személy több
autót is birtokolhat.
61
EK-feladatok
Egy iskola osztályainak és tanulóinak kapcsolata:
Osztály
azonosító
Szak Osztály-
főnök
Személyi-
szám
Név
Osztály Tanuló1 N
Egy osztályba több
tanuló jár, de egy
tanuló csak egy
osztályhoz tartozik.
Létszám
62
EK-feladatok
Vásárlásnál az eladó és a vevő kapcsolata:
Mivel egy eladó több vevőt is kiszolgálhat , illetve egy
vevő több eladótól is vásárolhat, ezért a két egyed
viszonya több : több típusú.
Eladó
Azonosítója
NévVevő
Azonosítója
Név
Eladó VevőN M
Értékesítési
osztály
Eladás
Vásárlás
dátuma
Vásárolt
termék
63
EK-feladatok
Vásárlásnál az eladó és a vevő kapcsolata (folytatás):
Az Eladó és a Vevő egyedeket az Eladás kapcsolat köti össze. A vásárlás dátuma és a vásárolt termék tulajdonságok ezt az eseményt jellemzik. Vagyis nem kapcsolható külön sem az Eladó sem a Vevő egyedekhez.
Megjegyzés: Az ilyen (N:M) típusú viszony adatbázisban történő megvalósításakor egy új egyedet hozunk létre. Ez a kapcsoló egyed tartalmazni fogja a kapcsolatot jellemző tulajdonságokat és a kapcsolt egyedek azonosítóit.
64
EK-feladatok
Egy adott stúdiónak szeretnénk elkészíteni az EK-modelljét:
A stúdió filmeket gyárt (többet), a filmekben színészek szerepelnek (többen). De egy színész ugyanannak a stúdiónak több filmjében is szerepelhet.
1. Az egyedek megkeresése: Stúdió, Film, Színész
2. Az egyedek közötti kapcsolatok megkeresése:
a) Stúdió – Film: 1:N
b) Stúdió – Színész: 1:N Feltesszük, hogy egy színész csak egy stúdióval áll kapcsolatban.
65
EK-feladatok
c) Film – Színész: N:M
Mivel egy filmben több színész is szerepelhet és egy színész
több filmben is játszhat.
Stúdió
FilmSzínész
1
N
1
N MN
Játszik
66
EK-feladatok
3. Az egyedek tulajdonságainak összegyűjtése:
Stúdió: (Név, Cím)
Film: (Azonosító, Címe, Gyártási év, Hossz)
Színész: (Színész neve, Lakcím)
Feladat: Ábrázolás tulajdonságokkal, kapcsolatokkal együtt.
67
EK-feladatok
Egy számítógép
szerviz nem
bajlódik azzal, hogy
egyedi azonosítót
rendeljen a javított
gépekhez, hanem
azokat
tulajdonosaik
szerint tartja
nyílván.
Gyenge
egyedtípus és
kapcsolat
68
A Suli-könyvtár ER modellje Feladat specifikációja• Nyilván akarjuk tartani:
– a könyvtári könyveket (az egyes könyvek példányait)
– az olvasókat
– a példányok kölcsönzését
– az előjegyzéseket könyvekre.
Össze kell gyűjteni a szükséges tulajdonságokat, és kapcsolatokat.
Az összetartozó tulajdonságok egyedet határoznak meg.
• Induláskor legalább a következő egyedek azonosíthatóak:– olvasó
– példány
– könyv.
• A kapcsolatok:– kölcsönöz (olvasó példányt)
– előjegyez (olvasó könyvre)
– van (könyvből példány).
69
A Suli-könyvtár ER modellje
olvasó
példány
könyv
kölcsönöz
előjegyez
1
N
N
M
van
N1
ISBN
cim
kiado
kiad_dat
lelt_szam
kolcs_e
beir_dat
lakcim
o_azon
szerzo
vnev
unev
varos
utca
hazszam
kolcs_dat
eloj_dat
ar
70
Relációs
adatmodellezés
71
Relációs adatmodell
A relációs adatmodellt 1970-ben definiálta E. F. Codd amerikai kutató, de gyakorlati alkalmazása csak az 1980-as években vált általánossá.
Lényege, hogy az egyedeket, tulajdonságokat és kapcsolatokat egyaránt táblázatok, úgynevezett adattáblák (relációk) segítségével kezeli.
Dolgozó reláció:
Személyi szám Név Fizetés
18310012143 Kis Pista 200000
27804034356Kalandos
Zsuzsanna180000
72
Relációs adatmodellA relációs modell elemei:
• Relációs séma Absztrakt, általánosított szint.
• Relációk, Táblázatok Konkrét, reláció előfordulások.
• Tulajdonságok Absztrakt szint.
• Tulajdonság-előfordulás Konkrét tulajdonság értékek.
• A kapcsolatnak csak a lehetősége jelenik meg.
A relációs adatmodellnél a tulajdonságok kapják a fő hangsúlyt, a tulajdonságokkal definiáljuk az adatmodell szerkezetét.
73
Relációséma
Relációsémának nevezünk egy attribútum halmazt, amelyhez azonosító nevet rendelünk.
Jelölése: R (A1, A2, A3, …, An)R: a séma neve,An: attribútumok
Mivel logikailag az attribútumokat is halmazként kezeljük, így a sorrendiség nincs értelmezve közöttük.
74
Relációs séma - Reláció
Bármely relációs sémához tetszőleges számú
reláció értelmezhető.
r(R) „R” relációs séma „r” relációja nem más,
mint az attribútumok tartományaiból alkotott
Descartes-szorzat egy részhalmaza.
r(R) (dom(A1)…dom(An))
A reláció rekordok halmaza, közöttük sorrend
nem értelmezhető, és minden sor különböző.
75
Táblázatok (Relációk)
• Az Egyed-kapcsolat modellt táblázatokká alakítjuk.
• A táblázat sorokra és oszlopokra bontható.
• Az oszlopok lesznek az egyed tulajdonságai, amelyeket attribútumoknak nevezünk.
Az oszlopok számát a reláció fokának nevezzük.
• A táblázat sorai pedig az egyed-előfordulásokat tükrözik.
A sorok számát a reláció számosságának hívjuk.
• A reláció a sorokat halmazként kezeli, vagyis a sorrend nem számít. (Tárolásnál igen!)
76
Attribútum I.
Attribútumnak nevezünk egy tulajdonságot, amelyet a
megnevezésével azonosítunk, és értéktartományt
rendelünk hozzá. A Z attribútum értéktartományát
dom(Z) jelöli (az angol domain szó rövidítése).
Korlátozás: a relációs adatmodellnél az értéktartomány
csak atomi értékekből állhat, vagyis elemei nem lehetnek
struktúrák, halmazok, multihalmazok, listák.
Az értéktartomány megadása rendszerint típus és hossz
megadását jelenti, például a könyvszám attribútum
értéktartománya a legfeljebb 4-jegyű decimális számok
halmaza lehet.
77
Attribútum II.Könyv (ISBN, Szerző, KCím)
Az egyes attribútumok értéktartománya:
• Dom (ISBN): 10 jegyű decimális számok halmaza.
• Dom (Szerző): legfeljebb 30 hosszú karaktersorozat.
• Dom (KCím): legfeljebb 50 hosszú karaktersorozat.
Tekinthető az attribútum egy változónak, ami az
oszlopba írt értékeket "veszi fel" a tartományban
szereplő értékek közül, azaz a tartományt az
adott attribútum értéktartományának
tekinthetjük. (DBMS sorváltozói)
78
Adatbázis-séma
A relációs adatmodell lényege, hogy a
különböző relációsémák azonos attribútumokat
tartalmaznak, ezáltal kerülnek kapcsolatba
egymással, és így a különálló adattáblák
együttese egy szervesen összefüggő adatbázist
alkot.
Relációsémák kapcsolata absztrakt szint.
Relációk, táblák kapcsolata konkrét szint.
Pl.: következő dia.
79
Példa relációsémára:
Séma: KÖNYV (ISBN, szerző, KCím)
Séma előfordulásai:
• (1121, Sályi, Adatbázisok)
• (3655, Radó, Világatlasz)
• (2276, Karinthy, Így írtok ti)
• (1782, Jókai, Aranyember)
Táblázatban ábrázolva (Reláció):
ISBN Szerző KCím
1121 Sályi Adatbázisok
3655 Radó Világatlasz
1782 Jókai Aranyember
Absztrakt
Konkrét
Rekord
80
Kulcs attribútumAmennyiben egy tulajdonság, vagy tulajdonságok
egy csoportja egyértelműen meghatározza, hogy az egyedtípus melyik előfordulásáról van szó, akkor ezeket a tulajdonságokat együttesen kulcsnak nevezzük.
Vagyis egy táblában a kulcs attribútummal a sorokat (rekordokat) tudjuk azonosítani és így megkülönböztetni.
Pl.: Könyv (ISBN, szerző, KCím)
Az ISBN tulajdonság alkalmas azonosítónak, mert egyértelműen megkülönbözteti a könyv példányokat.
81
Kulcs jellemzői:
• Az attribútumok olyan csoportja, melyek csak egy sort azonosítanak.
• A kulcsban szereplő attribútumok egyetlen valódi részhalmaza sem alkot kulcsot.
• A kulcsban szereplő attribútumok értéke nem lehet definiálatlan (Not Null).
• Az egy attribútumból álló kulcsot egyszerűnek nevezzük, ha nem ilyen akkor összetett.
82
Relációk kapcsolataRelációk kapcsolata alkot egy adatbázist, amely egy
általunk kiválasztott jelenségkör leírására alkalmas.
EK modellezésben a vonalas összekötés jelölte a
kapcsolatot, a Relációs modellezésben a
kapcsolatban lévő táblák azonos jelentésű
tulajdonságai biztosítják.
Kapcsoló kulcs (Külső kulcs): A relációk közötti
kapcsolatot adja meg.
Olyan tulajdonság, amely az egyik relációban
azonosító, a másikban azonosító vagy leíró típusú.
Értéke vagy üres, vagy egy létező kulcsra mutat.
Jelölése: Szaggatott vonalas aláhúzás.
83
Relációk kapcsolata
Azonosító Név Fizetés
001 KP 36000
006 NL 46000
Sorszám Összeg Dátum Azonosító
01 18000 05.03. 001
02 17000 05.04. 006
03 15000 10.08. 001
04 20000 10.09. 006
Dolgozó tábla:
Prémium tábla:
Külső
kulcs
Kulcs
84
Külső kulcs 1:1 kapcsolatban:
Teljes kapcsolat esetén:Ilyen esetben kiválasztjuk a kapcsolatban résztvevő két reláció egyikét (bármelyiket), és annak sémájába új attribútumként felvesszük a másik reláció meghatározó (kulcs) attribútumait, valamint a kapcsolathoz rendelt attribútumokat.
Vegyes (teljes – részleges) kapcsolat esetén:A teljes oldalhoz kapcsoljuk a részleges kapcsolatban lévő reláció kulcsát. Így nem lesznek NULL értéket is tartalmazó mezők.
Részleges kapcsolat: Bármelyik oldalhoz lehet.
85
Példa 1:1 kapcsolatra:
Egy vállalat dolgozóinak és sportolóinak kapcsolata.
Eredeti reláció sémák:
Dolgozó (DAzon, Név, Beosztás) részleges kapcs.
Sportoló (SAzon, Sportkör) teljes kapcsolatEK példa
Mivel a két reláció között 1:1 típusú vegyes kapcsolat van, ezért a teljes oldalra teszem a részleges oldal kulcs attribútumait.
Dolgozó (DAzon, Név, Beosztás)Sportoló (SAzon, Sportkör, DAzon)
86
Külső kulcs 1:N kapcsolatban:
• 1:N kapcsolat esetén az ‘N’ oldali reláció
sémájába új attribútumként felvesszük a másik
reláció kulcs attribútumait, valamint a kapcsolat
attribútumait. (Az ‘N’ oldali részleges kapcsolat
esetén is.)
87
Példa 1:N kapcsolatra:
Személy és az Autó egyed kapcsolata.Adóhatóságnál : személy (részleges) autó (teljes) kapcsolat. (tulajdonlási kapcsolat)
Autó kereskedésnél : személy (teljes) autó (részleges) kapcsolat. (vételi kapcsolat)
Eredeti relációsémák:
Személy (Személy_azon, Név)
Autó (Rendszám, Típus, Ár)
Kapcsolat létrehozása:
Személy (Személy_azon, Név)
Autó (Rendszám, Típus, Ár, Személy_azon)
1: N
Külső kulcs.
Kapcsolatot
biztosít egy másik
táblával.
Kulcs
Azonosítja a
rekordot.
88
Példa 1:N kapcsolatra:
Személy_azon Név
16703121234 KR
27612012345 OS
Rendszám Típus Ár Személy_azon
ISR-334 Lada 210000 16703121234
CMY-123 Honda 1100000 27612012345
ABG-654 Trabant 440000 27612012345
Személy tábla:
Autó tábla:
89
Külső kulcs N:M kapcsolatban:
• N:M kapcsolat esetén új sémát (relációt)
veszünk fel, melynek attribútumai:
– A kapcsolódó relációk kulcs attribútumai.
– A kapcsolat saját attribútumai.
90
Példa N:M kapcsolatra:
Eladó és vevő kapcsolata (EK modell):
Eladó
Azonosítója
NévVevő
Azonosítója
Név
Eladó VevőN M
Értékesítési
osztály
Eladás
Vásárlás
dátuma
Vásárolt
termék
91
Példa N:M kapcsolatra:
Kapcsolat nélküli relációsémák:Eladó (Elad_azon, Név, Érték_oszt)
Vevő (Vevő_azon, Név)
Eladás (V_dátum, V_termék)
Relációs kapcsolat létrehozása:Eladó (Elad_azon, Név, Érték_oszt)
Vevő (Vevő_azon, Név)
Eladás (Rendelésszám, V_dátum, V_termék,
Elad_azon, Vevő_azon)
Kapcsolat
tulajdonságai
Az Eladás táblát az
Elad_azon kulső kulcs az
Elad táblához a Vevő_azon a
Vevő táblához kapcsolja
92
Példa N:M kapcsolatra:
Elad_azon Név Érték_oszt
E001 Szabi cipő
E002 Bea illatszer
Eladó tábla:
Vevő_azon Név
V001 Feri
V003 Éva
Vevő tábla:
Rendelésszám V_dátum V_termék Elad_azon Vevő_azon
001 2006.01.12. sport cipő E001 V001
002 2006.01.18. szandál E001 V003
003 2006.0212. sampon E002 V003
Eladás tábla:
93
Példa N:M kapcsolatra:
2. megoldás
Kapcsolat nélküli relációsémák:Eladó (Elad_azon, Név, Érték_oszt)
Vevő (Vevő_azon, Név)
Eladás (V_dátum, V_termék)
Relációs kapcsolat létrehozása:Eladó (Elad_azon, Név, Érték_oszt)
Vevő (Vevő_azon, Név)
Eladás (Elad_azon, Vevő_azon, V_dátum, V_termék,)
Kapcsolat
tulajdonságai
Az Eladás táblát az
Elad_azon kulső kulcs az
Elad táblához a Vevő_azon a
Vevő táblához kapcsolja
94
Példa N:M kapcsolatra:
Elad_azon Név Érték_oszt
E001 Szabi cipő
E002 Bea illatszer
Eladó tábla:
Vevő_azon Név
V001 Feri
V003 Éva
Vevő tábla:
Elad_azon Vevő_azon V_dátum V_termék
E001 V001 2006.01.12. sport cipő
E001 V003 2006.01.18. szandál
E002 V003 2006.0212. sampon
Eladás tábla:
95
Külső kulcs ugyanabban a táblában
A relációs adatbázisban megengedjük, hogy a külső kulcs ugyanabban a táblában szerepeljen, amiben maga a kulcs. Más névvel, de azonos jelentéssel (szinonima).Értéke vagy üres, vagy az adott táblában létező kulcs érték.
Dolgozó (D_azon, Név, Fiz, Főnök)
96
Külső kulcs ugyanabban a táblában:
D_azon Név Fiz Főnök
D001 Péter 200000
D002 Kálmán 80000 D001
D003 Tódor 120000 D001
D004 Gábor 100000 D002
D001-es dolgozó a nagyfőnök
D002-es a kisfőnök, akinek a felettese
a D001-es dolgozó
Dolgozó tábla:
97
Külső kulcs párhuzamos kapcsolatban:
A külső kulcs egy táblában többféle minőségben, jelentéssel is szerepelhet. Ilyenkor a külső kulcsnak annyi nevet adunk, amennyi jelentése van.
Pl.: A gépjármű táblában kétféleképpen is szerepelhet a személy azonosítója. Egyszer mint a gépjármű tulajdonosa (tul_azon), másodszor mint az üzembentartója (üzem_azon).
Személy (Azonosító, Név, …)
Gépjármű (Rendszám, Tul_azon, Üzem_azon, …)
98
Egyed - Kapcsolat modell
átalakítása
Relációs modellre
99
EK modell Relációs modell
Egy adatbázis relációs adatmodelljének
megalkotásához két út vezet:
• Leképezési szabályok alkalmazásával EK
modellből.
• Feladat specifikációból (feladat leírás)
kiindulva normalizálással.
100
Relációs modell létrehozása
Egyed-kapcsolat modellből,
leképezési szabályokkal
101
Egyedek leképezése
Az EK modell minden egyedéhez felírunk egy
relációsémát, amelynek neve az egyed neve,
attribútumai az egyed attribútumai, kulcsa az
egyed kulcs-attribútumai.
A sémára épülő adattábla minden egyes sora
egy egyed-előfordulásnak felel meg.
Pl.: könyv – olvasó egyedekből kapott
relációséma:
Könyv (ISBN, Szerző, Kcím)
Olvasó (Olvasószám, Név, Lakcím)
102
Összetett attribútumok leképezése
Az összetett attribútumot ugyanabban a sémában felbontjuk rész-tulajdonságaira.
Pl.: Olvasó (Olvasószám, Név, Lakcím)Ahol a lakcím: helység, utca, házszám tulajdonságokból állhat.
A fenti séma kibővítve:Olvasó (Olvasószám, Név, Helység, Utca, Házszám)
103
Összetett attribútumok leképezése
Olvasószám Név Helység Utca Házszám
122 Kiss István Bekecs Virág u. 10
612 Nagy Ágnes Szerencs Petőfi út 38
355 Tóth András Szerencs Jókai út 1
Olvasó tábla:
104
Többértékű attribútumok leképezése
A reláció egy rekordjának valamely attribútumához
több érték tartozik.
Pl.: KÖNYV (ISBN, szerző, KCím)
Egy könyvnek több szerzője is lehet.
Leképezés: A többértékű tulajdonságot kiemeljük
egy másik táblába és hozzávesszük az
azonosító tulajdonságát is.
Könyv (ISBN, KCím)
Szerzők (ISBN, szerző)
105
Többértékű attribútumok leképezése
A két tábla között az „ISBN” tulajdonság tartja a
kapcsolatot.
ISBN KCím
1121 Adatbázisok
3655 Világatlasz
2276 Így írtok ti
1782 Aranyember
ISBN Szerző
1121 Sályi
1121 Szelezsán
3655 Radó
2276 Karinthy
1782 Jókai
Könyv tábla: Szerzők tábla:
106
Kapcsolatok leképezése I.
Általános szabály:
• Vegyünk fel a kapcsolathoz egy új sémát,
amelynek neve a kapcsolat neve, attribútumai
pedig a kapcsolódó egyedek kulcs attribútumai
és a kapcsolat saját attribútumai.
• Ha ezen séma kulcsa megegyezik valamely
kapcsolódó egyed kulcsával, akkor a kapcsolat
sémája az egyed sémájába beolvasztható.
107
Kapcsolatok leképezése II.
• Példa a Könyv – Olvasó közötti kapcsolat
leképezésére.
ISBN
Szerző
Olvasó-
számNév
Könyv OlvasóN M
KCím
Kölcsönzés
Kölcsönzés
dátuma
Visszahozás
dátuma
Lakcím
108
Kapcsolatok leképezése III.
Egy új séma felvétele a kapcsolat alapján:
Kölcsönzés (ISBN, Olvasószám, Kölcsönzés
dátuma, Visszahozás dátuma)
Az ISBN
tulajdonság a
Könyv táblából. Az Olvasószám
tulajdonság az
Olvasó táblából.
Az utolsó két
tulajdonság a
kapcsolat saját
tulajdonságai.
109
Kapcsolatok leképezése IV.
A kialakított relációsémák:Könyv (ISBN, Szerző, KCím)
Kölcsönzés (ISBN, Olvasószám, Kölcsönzés dátuma, Visszahozás dátuma)
Olvasó (Olvasószám, Név, Lakcím)
Az ISBN és az Olvasószám külső-kulcsként is szerepelnek a Kölcsönzés relációsémában.
Ha a sémákat konkrét értékekkel töltenénk ki, akkor a séma egy előfordulását kapnánk, amit reláció – előfordulásnak, vagy egyszerűen relációnak (táblának) nevezünk.
110
Relációs modell létrehozása
Feladat leírásból,
Normalizálással
111
Készül
112
Microsoft Access
113
MS Access
Negyedik generációs (4GL) programozási nyelv.
• Vizuális felületen készíthetjük az alkalmazásunkat.
• Integrált fejlesztőrendszer, vagyis tartalmaz:
– Programozáshoz szükséges szövegszerkesztőt, fordítót, linkert,
debugert.
– Grafikus felhasználói felület készítéséhez (GUI)
vezérlőelemeket.
– Az alkalmazás létrehozását gyorsító „varázslókat”
pl.: adatbázis-, tábla-, dialógus-, jelentés-varázslót.
• Programozási nyelve a Visual Basic, amely objekum-
orientált.
114
Adatbázis létrehozása
• Adatbázis létrehozás (*.mdb).
• Adatbázis táblák létrehozása.
• Több tábla esetén a kapcsolatok kialakítása.
• Lekérdezések megfogalmazása és létrehozása.Lekérdezésekkel válogatjuk ki a szükséges adatokat.
• Űrlapok létrehozása.Az adatok tetszetős felvitelére, módosítására, törlésére.
• Jelentések elkészítése: Reprezentációs céllal, listák készítése, szükség esetén nyomtatás.
115
Adatbázis táblák létrehozása• Adatlap nézet: Adatok felvitelével lehet
létrehozni. A bevitt adatok alapján az Access
automatikusan meghatározza az adatok típusát.
• Tervező nézet: a tábla szerkezetét (relációséma)
részletesen a mezőtulajdonságok megadásával
lehet beállítani.
• Tábla varázsló: Előre elkészített táblákból és
azok mezőiből válogathatunk.
• Tábla importálása: Más adatbázisból,
táblázatkezelőből.
• Tábla csatolása: Hivatkozás más táblára.
116
Mezőtulajdonságok
• Adattípus
• Mezőméret
• Formátum
(megjelenés)
• Beviteli maszk
(beviteli minta)
• Cím
• Alapértelmezett érték
• Érvényességi szabály
• Érvényességi szöveg
• Kötelező
• Nulla hosszúság
engedélyezése
• Indexelt (keresés
gyorsítás)
117
Adattípusok
A mezőkben tárolt adatok értelmezését adják meg!
• Szám
• Szöveg (1-255 byte)
• Logikai
• Dátum
• Számláló (8 byte)
• Pénznem
• Feljegyzés
• Ole objektum
• Hiperhivatkozás
118
LekérdezésekA táblákból vagy másik lekérdezésből kigyűjti a
számunkra fontos adatokat.
Szerepe:
• A táblákban tárolt adatok visszakeresése.
• Megtekinthetjük az összekapcsolt táblák adatait.
• Rendezhetjük és csoportosíthatjuk az adatokat.
• Megjeleníthetünk számított mezőket.
• Megváltoztathatjuk adatainkat, rekordokat törölhetünk vagy adhatunk hozzá a táblához.
• A meglévő táblánkról (részéről) másolatot készíthetünk.
119
Lekérdezések
Csoportosítás:
• Visszakereső lekérdezés:
– Választó,
– Kereszttáblás
• Akció lekérdezés:
– Táblakészítő,
– Hozzáfűző,
– Törlő,
– Frissítő.
120
Lekérdezés tulajdonságok
121
LekérdezésekA lekérdezés leggyakrabban:
• Oszlopok kiválogatása,
• Sorok kiválogatása, feltétel megadásával.
Feltétel: Relációs és logikai műveleteket tartalmaz.(A mezőnevek mint változók szerepelnek.)
mezőnév reláció jel érték relációs kifejezés
relációs kif. logikai művelet relációs kif.logikai kifejezés
Olyan feltételt kell megadni, amellyel a szükséges értékeket kapjuk meg.
A rekordmutató által kijelölt sor mezőinek értékei lesznek hasonlítva a feltétellel. Igaz esetén bekerül a rekord az eredménytáblába.
122
FeltételekA feltételek vizsgálhatják:
• A mezők értékeinek egyezőségét (=),
• Kisebb – nagyobb relációját (< <= > >=),
• Egyenlőtlenségét (<>),
• Egy mező értéke, két határérték között van-e?mező érték BETWEEN érték1 And érték2
• Tartalmazást: mező érték IN (érték1, érték2, …)
• Szöveg mintaillesztése:mező érték LIKE illesztő szöveg
Illesztő karakterek: *, ?, #, [karakterlista], [!karakterlista]
123
Relációs algebra
124
Relációs algebra
Relációk absztrakt lekérdező nyelve. Halmazorientált, és
algebrai eszközökkel dolgozik. Az adatbázis
lekérdezések matematikai alapját képezi.
Műveletei:
• Halmazműveletek: unió, metszet, különbség,
• Redukciós műveletek: kiválasztás, vetítés,
• Kombinációs műveletek: Descartes-szorzat,
természetes-összekapcsolás, külső-összekapcsolás,
théta-összekapcsolás
125
HalmazműveletekItt az adattáblát (relációt) sorok halmazaként kezeljük.
Definíció. Az R1(A1,...,An) és R2(B1,...,Bm) relációsémák
kompatibilisek, ha n = m és dom(Ai) = dom(Bi) minden
i-re. Két táblát kompatibilisnek nevezünk, ha sémáik
kompatibilisek.
ISBN KCím
1111 Adatbázisok
2222 Világatlasz
3333 Így írtok ti
4444 Én a robot
Könyv1 tábla:
ISBN KCím
2222 Világatlasz
3655 Mesekönyv
3333 Így írtok ti
1782 Aranyember
Könyv2 tábla:
126
Unió (Egyesítés)
Unió: legyenek a T1 és T2
kompatibilis táblák. Ezek
halmazelméleti egyesítése a
T = T1 U T2 tábla lesz,
amelynek sémája szintén
kompatibilis T1 ill. T2
sémájával.
A művelet végrehajtása:
• - a két tábla egymás után
írása,
• - ismétlődő sorok kiszűrése.
Könyv1 U Könyv2
ISBN KCím
1111 Adatbázisok
1782 Aranyember
2222 Világatlasz
3333 Így írtok ti
3655 Mesekönyv
4444 Én a robot
Hat sor az eredeti nyolcból
127
Metszet (Intersection)
Két kompatibilis tábla halmazelméleti metszete:
T = T1 T2.
T1: A1 A2 A3 T2: B1 B2 B3 T1T2: C1 C2 C3
a b c b d e b d e
b d e a d b
f c b
128
Különbség (Difference)
Két kompatibilis tábla halmazelméleti különbsége:
T = T1 – T2 .
T1: A1 A2 A3 T2: B1 B2 B3 T1-T2: C1 C2 C3
a b c b d e a b c
b d e a d b f c b
f c b
129
Redukciós műveletek
A KÖNYV tábla:
Könyvszám Szerző Cím
1121 Sályi Adatbázisok
3655 Radó Világatlasz
2276 Karinthy Így írtok ti
1782 Jókai Aranyember
130
Szelekció (Kiválasztás)
Adott feltételnek eleget tevő sorok kiválasztása a táblából. A feltétel általában attribútumokból és konstansokból felépülő logikai kifejezés. Az eredménytábla sémája megegyezik (vagy kompatibilis) az eredetivel.
Jelölés: feltétel (tábla)
A szelekció kommutatív művelet: f1 ( f2 (R)) = f2 ( f1(R))
Jelenítsük meg azt a sort , amelyben Karinthy a szerző!
Példa: a Szerző = Karinthy (KÖNYV) tábla
Könyvszám Szerző Cím
2276 Karinthy Így írtok ti
131
Projekció (vetítés)
Adott oszlopok kiválasztása a táblából. Az új tábla sémája a megfelelő attribútumok kiválasztásával adódik.
Jelölése: attribútumlista (tábla)
Példa: A KÖNYV1 = szerző, cím (KÖNYV) tábla:
Szerző Cím
Sályi Adatbázisok
Radó Világatlasz
Karinthy Így írtok ti
Jókai Aranyember
132
Kombinációs műveletek
Több táblára vonatkoztatott műveletek.
Descartes-szorzat:
Legyen R1(A1,...,An), R2(B1,...,Bm) két tetszőleges relációséma, és T1 dom(A1) x...x dom(An), T2 dom(B1) x...x dom(Bm) táblák R1, R2 felett.
Descartes-szorzat: az R(A1,...,An,B1,...,Bm) séma feletti T dom(A1) x...x dom(An) x dom(B1) x...x dom(Bm) tábla, amelyet úgy kapunk, hogy T1 minden sorát párosítjuk T2 minden sorával.
Jele: T = T1 x T2
133
Descartes-szorzat
Példa:
T1: A1 A2 A3 T2: B1 B2 B3 T1xT2: A1 A2 A3 B1 B2 B3
a b c b d e a b c b d e
b d e a d b a b c a d b
f c b b d e b d e
b d e a d b
f c b b d e
f c b a d b
134
Descartes-szorzat tulajdonságai
• Ha R1 és R2 attribútumai között azonos nevűek vannak, akkor R-ben az eredeti séma nevével különböztetjük meg őket (például R1.Ai, R2.Ai).
• Ha T1 és T2 sorainak száma r1 ill. r2, oszlopainak száma c1 és c2, akkor a T táblában r1*r2 sor és c1+c2 oszlop van.
• Ha két tábla Descartes-szorzatát képezzük, akkor projekcióval visszakaphatók az eredeti táblák: A1,...An(T) = T1 és B1,...,Bm(T) = T2.
• A Descartes-szorzat műveletet nem szokták alkalmazni a gyakorlatban, hiszen az adathalmaz redundanciáját növeli, az összekapcsolási műveletek definiálásánál azonban szükségünk lesz rá.
135
SQL
• Készül
136
SQLAz utasítások megfogalmazása során a következő
logikai út betartása ajánlott:
• A megjelenítendő adatokat milyen táblák
tartalmazzák.
• Szükség esetén, hogyan kell összekapcsolni a
táblákat.
• Milyen feltételnek eleget tevő sorokból kell az
adatokat visszakapni.
• Kell-e az adatokat csoportosítani.
• Milyen feltételnek eleget tevő csoportokat
válasszunk ki.
• Milyen oszlopokból kell adatokat visszaadni.
• Kell-e rendezni.
137
Access SQL eltérések
• Access 97, 2000 SQL-89 (SQL-1)
• Access XP, 2003 SQL-92 (SQL-2)
• Beállítása:
Eszközök/Beállítások –
Táblák/Lekérdezések – SQL szerver-
kompatibilis szintaxis (ANSI 92) keret –
Ennél az adatbázisnál jelölőnégyzet
Azonosítók
• Az azonosítók több szóból is állhatnak,
elválasztójel a szóköz.
• Karakter kivételek: magyar ékezet, pont,
felkiáltójel, aposztróf, zárójelek.
• Maximális hossz 64 karakter.
138
Adattípusok
• BINARY – bármilyen adat
• BIT – logikai adat
• CHARACTER
• COUNTER– automatikus sorszámozás
• DATETIME
• DECIMAL – valós érték
• FLOAT
• IMAGE
• INTEGER
• MONEY – rögzített tizedes jegyű számok
• REAL, SMALLINT, TINYINT
• TEXT
• UNIQUEIDENTIFIER139
Műveletek
• Hatványozás jele: ^
• Egész osztás: \
• Maradékképzés: MOD
• Karaktersorozat összefűzése: &
• Karakterlánc konstansok: ‘ ‘, ” ”
• Dátum konstans: # # ; SQL-92: ‘ ‘ is lehet
• Logikai: IMP, XOR
140
SELECT utasítás módosulásai
• { DISTINCTROW | TOP n [PERCENT] }
• A DISTINCTROW utasítás hatására kimaradnak azok a
sorok, amelyeket a tábla többször is tartalmaz. Ha a
lekérdezésben csak egy tábla szerepel, vagy minden
táblából kiválasztunk mezőket, DISTINCTROW
predikátum figyelmen kívül marad.
• A TOP kulcsszóval azt jelölhetjük ki, hogy a rendezési
szempontnak megfelelően a lista elejéről hány sor
kerüljön az eredménybe.
• A PERCENT kulcsszóval a megadott szám egy
százalékérték.
141
SELECT utasítás módosulásai
• A SELECT és a FROM utasítás között használható az
INTO záradék,
INTO <táblázatnév> [IN <külső adatbázis neve elérési
úttal> <adatbázis típusa>
mellyel a lekérdezés eredményét egy új táblába írhatjuk.
• A JOIN műveletben csak az INNER, RIGHT, LEFT
kulcsszavak használhatók.
• A csoportosításból a NULL értéket tartalmazó sorok sem
maradnak ki.
• Az aggregát függvények a NULL értéket figyelmen kívül
hagyják. A függvényekben a DISTINCT kulcsszó nem
használható. (Kieg.: STDEV, STDEVP, VAR, VARP, FIRST, LAST)
142
SELECT utasítás módosulásai
• Predikátumok:
– SQL-89: ?, *
– SQL-92: _, %
– # {egyetlen a számjegyet helyettesít}
– [karakterlista] {egyetlen a listában szereplő karaktert}
– [!karakterlista]
– [kezdőkarakter-zárókarakter]
• Halmazműveletek:
– UNION [ALL]
143