Adatbázis-kezelés Alapfogalmak Összeállította: Nagy Zsolt (fejlesztés alatt)
1
Adat: Autó: – Típus, – Rendszám, – Szín, – Évjárat.
Az ismereteink megjelenési formája! Bármi, amiről ismeretet tudunk szerezni adatként van jelen. 2
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.
3
Adat: Hogyan jutunk adatokhoz (ismerethez)?
• • • • •
Társalgás, Olvasás, Mérés, Feldolgozás, Stb. 4
Információ Következtetés, gondolkodás
Adat + meglévő tudás Információ Értelmezett adat! 5
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. 6
Adatkezelés Az adatkezelés során adatokkal dolgozunk, amelyek a feldolgozó ember számára információvá válhatnak. Vállalati Információs Fejlődés
Rendszer
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. 7
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. 8
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. 9
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. 10
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. 11
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.
12
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.) 13
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. 14
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. 15
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 16
17
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 18
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
19
DBMS komponensei
Műveletek
Sokszor az operációs rendszer háttértár kezelésére támaszkodik.
Fizikai tárolás 20
• 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 lemezblokkmű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! 21
DBS - Adatbázisrendszer DBS Data Base System
DBS = DB + DBMS + segédprogramok • DB: Adatbázis, • DBMS: Adatbáziskezelő rendszer, • Felhasználói alkalmazás 22
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. 23
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. 24
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. 25
Egy ABR architektúra 3 szintje
26
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é. 27
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.
28
Modellezés szerepe az adatbázis-kezelésben
29
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. 30
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! 31
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. 32
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. Absztrakt szint
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.
33
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. 34
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 35
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). Példa
36
Absztrakt
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:
Konkrét
könyv – olvasó egyedtípus Isaac Asimov Én a robot – Kovács Pál egyed előfordulás 37
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. 38
EK modell elemei II. • Tulajdonság, tulajdonság típus, attribútum: Az egyed jellemzői. Meghatározza az egyed egy részletét. Absztrakt
könyv (könyvszám, szerző, cím)
Konkrét
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. 39
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)
40
EK modell elemei III. • Kapcsolat: Egyedek közötti viszony. Mindig valóságos objektumok közötti viszonyt fejez ki. kapcsolat
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. 41
Könyvtári nyilvántartás EK diagramja
42
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 43
Tulajdonságok lehetnek: • Többértékű tulajdonságok: Egy egyedelő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.
44
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.
45
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. 46
Példák (egyedre) Könyv (ISBN, szerző, cím) Többértékű tulajdonság (kettőzött ellipszis)
Azonosító (aláhúzva)
ISBN
szerző
cím
könyv
47
Példák (egyedre) Olvasó (olvasószám, név lakcím) helység utca irsz olvasószám
név
lakcím
házszám
olvasó
Összetett tulajdonság 48
Példák (egyedre) Autó (rendszám, típus, évjárat, szín, ár)
típus
évjárat
rendszám
szín ár
autó
49
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) 50
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. 51
Kapcsolat jellemzői • Kapcsolat fajtái: Két egyedtípus egyedelő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 egyedelőfordulás kapcsolódik a másik egyedtípusból, három esetet különböztetünk meg: 52
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 egyedelőfordulásával létesítenek kapcsolatot. pl.: Személy és Személyigazolvány egyedtípusok között.
Személy
Személyigazolvány Egyedelőfordulások
53
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. Borsod Pest
Megye
Szerencs Miskolc Szentendre BP
Település
54
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ó
55
Kapcsolat fajtái IV. 4. Rekurzív (visszamutató) kapcsolat: Egy egyedtípus előfordulásai saját egyedtípusuk előfordulásaihoz kapcsolódnak.
Dolgozó
Személy
Házastársa
Főnök
56
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ány Van 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. 57
Kapcsolatok jelölése • 1:1 kapcsolat: Egy vállalat dolgozóinak és sportcsapatának kapcsolatát mutatja be. 1:1 Dolgozó
Sportoló
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.
58
Kapcsolatok jelölése • 1:N kapcsolat:
• N:M kapcsolat:
1:N Osztály
N:M Tanuló
Az osztály egyed egy előfordulásához a tanuló egyed több előfordulása kapcsolódhat.
Szerző
Könyv
Egy szerző több könyvet is írhat és egy könyvnek több szerzője is lehet. 59
EK-feladatok Személy és az Autó egyed kapcsolatának modellezése: (autókereskedésben) Név
Típus
Személyiszám
Rendszám
Személy
1
N
Ár
Autó
Egy személy több autót is birtokolhat. 60
EK-feladatok Egy iskola osztályainak és tanulóinak kapcsolata: Osztályfőnök
Szak Osztály azonosító
Létszám
Osztály
1
Név Személyiszám
N
Egy osztályba több tanuló jár, de egy tanuló csak egy osztályhoz tartozik.
Tanuló
61
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ú. Vevő Azonosítója
Név Eladó Azonosítója
Név
Értékesítési osztály
Eladó
N
Eladás
Vásárlás dátuma
M
Vásárolt termék
Vevő
62
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. 63
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) b)
Stúdió – Film: 1:N Stúdió – Színész: 1:N Feltesszük, hogy egy színész csak egy stúdióval áll kapcsolatban. 64
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.
1
1 Stúdió
N Színész
N
N
M Játszik
Film
65
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.
66
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 67
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). 68
A Suli-könyvtár ER modellje lelt_szam kolcs_e
ar kolcs_dat példány
vnev N
o_azon unev
N
1
kölcsönöz
van
olvasó
1
N beir_dat
előjegyez M
lakcim
varos utca hazszam
könyv eloj_dat kiado
ISBN
kiad_dat
cim szerzo
69
Relációs adatmodellezés
70
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
27804034356
Kalandos Zsuzsanna
180000 71
Relációs adatmodell A 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. 72
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. 73
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ő.
74
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!) 75
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. 76
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) 77
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. 78
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ó):
Absztrakt
Konkrét Rekord
ISBN
Szerző
KCím
1121 3655 1782
Sályi Radó Jókai
Adatbázisok Világatlasz Aranyember
79
Kulcs attribútum Amennyiben 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. 80
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. 81
Relációk kapcsolata Relá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. 82
Relációk kapcsolata Dolgozó tábla:
Azonosító
Név
Fizetés
001
KP
36000
006
NL
46000
Kulcs
Külső kulcs
Prémium tábla:
Sorszám 01
Összeg 18000
Dátum 05.03.
Azonosító 001
02 03 04
17000 15000 20000
05.04. 10.08. 10.09.
006 001 006 83
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. 84
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 kapcsolat EK 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) 85
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.)
86
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) 1: N Kapcsolat létrehozása: Személy (Személy_azon, Név) Autó (Rendszám, Típus, Ár, Személy_azon) Kulcs Azonosítja a rekordot.
Külső kulcs. Kapcsolatot biztosít egy másik táblával.
87
Példa 1:N kapcsolatra: Személy tábla:
Személy_azon
Név
16703121234
KR
27612012345
OS
Autó tábla:
Rendszám
Típus
Ár
Személy_azon
ISR-334
Lada
210000
16703121234
CMY-123
Honda
1100000
27612012345
ABG-654
Trabant
440000
27612012345 88
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.
89
Példa N:M kapcsolatra: Eladó és vevő kapcsolata (EK modell): Vevő Azonosítója
Név Eladó Azonosítója
Név
Értékesítési osztály
Eladó
N
Eladás
Vásárlás dátuma
M
Vevő
Vásárolt termék 90
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)
Kapcsolat tulajdonságai
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)
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
91
Példa N:M kapcsolatra: Eladó tábla:
Vevő tábla:
Elad_azon
Név
Érték_oszt
Vevő_azon
Név
E001
Szabi
cipő
V001
Feri
E002
Bea
illatszer
V003
Éva
Eladás 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 92
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)
Kapcsolat tulajdonságai
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,) 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
93
Példa N:M kapcsolatra: Eladó tábla:
Vevő tábla:
Elad_azon
Név
Érték_oszt
Vevő_azon
Név
E001
Szabi
cipő
V001
Feri
E002
Bea
illatszer
V003
Éva
Eladás 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 94
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) 95
Külső kulcs ugyanabban a táblában: Dolgozó tábla:
D_azon
Név
Fiz
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ó
Főnök
96
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, …) 97
Egyed - Kapcsolat modell átalakítása Relációs modellre
98
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.
99
Relációs modell létrehozása Egyed-kapcsolat modellből, leképezési szabályokkal
100
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) 101
Ö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) 102
Összetett attribútumok leképezése Olvasó tábla:
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
103
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ő) 104
Többértékű attribútumok leképezése Könyv tábla:
Szerzők tábla:
ISBN
KCím
ISBN
Szerző
1121
Adatbázisok
1121
Sályi
3655
Világatlasz
1121
Szelezsán
2276
Így írtok ti
3655
Radó
1782
Aranyember
2276
Karinthy
1782
Jókai
A két tábla között az „ISBN” tulajdonság tartja a kapcsolatot. 105
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ó.
106
Kapcsolatok leképezése II. • Példa a Könyv – Olvasó közötti kapcsolat leképezésére. Lakcím
Szerző Olvasószám
KCím
ISBN
Könyv
N
Kölcsönzés
Kölcsönzés dátuma
M
Visszahozás dátuma
Név
Olvasó
107
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.
108
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. 109
Relációs modell létrehozása Feladat leírásból, Normalizálással
110
Készül
111
Microsoft Access
112
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 objekumorientált. 113
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. 114
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.
115
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)
116
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 117
Lekérdezések A 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. 118
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ő. 119
Lekérdezés tulajdonságok
120
Lekérdezések A 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 121 eredménytáblába.
Feltételek A 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]
122
Relációs algebra
123
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
124
Halmazműveletek Itt 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. Könyv1 tábla:
Könyv2 tábla:
ISBN
KCím
ISBN
KCím
1111
Adatbázisok
2222
Világatlasz
2222
Világatlasz
3655
Mesekönyv
3333
Így írtok ti
3333
Így írtok ti
4444
Én a robot
1782
Aranyember 125
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 126
Metszet (Intersection) Két kompatibilis tábla halmazelméleti metszete: T = T1 T2. T1: A1 A2 A3 a b c b d e f c b
T2: B1 B2 B3 b d e a d b
T1T2: C1 C2 C3 b d e
127
Különbség (Difference) Két kompatibilis tábla halmazelméleti különbsége: T = T1 – T2 . T1: A1 A2 A3 a b c b d e f c b
T2: B1 B2 B3 b d e a d b
T1-T2: C1 C2 C3 a b c f c b
128
Redukciós műveletek A KÖNYV tábla: Könyvszám 1121 3655 2276 1782
Szerző Sályi Radó Karinthy Jókai
Cím Adatbázisok Világatlasz Így írtok ti Aranyember
129
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 130
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
131
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 132
Descartes-szorzat Példa: T1: A1 A2 A3 a b c b d e f c b
T2: B1 B2 B3 b d e a d b
T1xT2: A1 A2 A3 B1 B2 B3 a b c b d e a b c a d 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 133
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á. 134
SQL • Készül
135
SQL Az 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.
136
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 szerverkompatibilis szintaxis (ANSI 92) keret – Ennél az adatbázisnál jelölőnégyzet
137
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 UNIQUEIDENTIFIER 139
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
[IN 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