Adatbázis kezelés -...

Preview:

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

Recommended