57
1.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK) http://sila.hajas.elte.hu/ Az előadás is az SQL gyakorlatokat támogatja, megadja a szemléletet, a lekérdezések előtt tervezés szükséges Bevezetés/Előkészítés: Adatmodellezésre feladatok, E/K modell, E/K diagram leképezése relációsémákra A mai témakörök a Tankönyvben: 2.1.-2.2. Adatmodellek, relációs modell 4.1.- 4.4. E/K-modell elemei 4.5.- 4.6. E/K-diagram átírása relációkra 1 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

1.előadás: Adatbázisok-I. dr. Hajas Csilla (ELTE IK)

http://sila.hajas.elte.hu/

Az előadás is az SQL gyakorlatokat támogatja, megadja

a szemléletet, a lekérdezések előtt tervezés szükséges

Bevezetés/Előkészítés:

Adatmodellezésre feladatok, E/K modell,

E/K diagram leképezése relációsémákra

A mai témakörök a Tankönyvben:

2.1.-2.2. Adatmodellek, relációs modell

4.1.- 4.4. E/K-modell elemei

4.5.- 4.6. E/K-diagram átírása relációkra

1 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 2: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Bevezető példa (reláció = tábla)

Naponta találkozunk adatbázisokkal

1960-as évektől a korai DBMS: banki rendszerek,

repülőgép-helyfoglalás, vállalati nyilvántartások

Napi szinten: Google, Yahoo, Amazon.com,

egyetemi tanulmányi rendszerek, Neptun

1.példa: A jelentkezési adatok egyeztetésére táblázat

(lásd papíron a jelenléti ív /Ez az első előadás példája)

Reláció = tábla (a jelenléti ív)

Séma = a reláció szerkezetének leírása (tábla fejléce)

Előfordulás v. példány = a tábla sorai, adott időpontban

a tábla aktuális tartalma dinamikusan változik (példában

szereplő tábla tartalma a tantárgyfelvétel időszakában)

2 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 3: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Bevezetés: Ki ismeri az SQL-t? Ki ismeri az SQL-t? Van-e különbség? R

Tetszőleges táblát lekérdezve

megegyezik-e az eredmény?

(1) SELECT B FROM R

WHERE A<10 OR A>=10;

(2) SELECT B FROM R;

Itt mi a helyzet ezzel?

(3) SELECT A FROM R, S

WHERE R.B = S.B;

(4) SELECT A FROM R

WHERE B IN (SELECT B FROM S);

A B

5 20

10 30

20 40

… …

3 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 4: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Mi az adatmodell? Az adatmodell a valóság fogalmainak, kapcsolatainak,

tevékenységeinek magasabb szintű ábrázolása

Kettős feladat: az adatmodell megadja, hogy a számítógép

számára és a felhasználó számára hogy néznek ki adatok.

Az adatmodell: adatok leírására szolgáló jelölés.

Ez a leírás általában az alábbi három részből áll:

1. Az adat struktúrája (struktúrák, tömbök, rekordok, fizikai és

fogalmi adatstruktúrák, hamarosan példákat is mutatunk)

2. Az adaton végezhető műveletek (lekérdezések,módosítások,

feldolgozások legyenek megfogalmazhatók és hatékonyan

legyenek implementálva)

3. Az adatokra tett megszorítások (milyen adatokat

engedélyezünk, milyen megszorításokat teszünk?)

4 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 5: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

A fontosabb adatmodellek Hálós, hierarchikus adatmodell (gráf-orientált, fizikai szintű,

ill. apa-fiú kapcsolatok gráfja, hatékony keresés)

Relációs adatmodell (táblák rendszere, könnyen

megfogalmazható műveletek), magában foglalja az

objektumrelációs kiterjesztést is (strukturált típusok,

metódusok), SQL/Object, SQL/CLI, SQL/PSM (PL/SQL)

Objektum-orientált adatmodell (az adatbázis-kezelés

funkcionalitásainak biztosítása érdekében gyakran relációs

adatmodellre épül), ODMG: ODL és OQL

Logikai adatmodell (szakértői rendszerek, tények és

következtetési szabályok rendszere)

Dokumentum típusú adatok, félig-strukturált adatmodell

(XML-dokumentum)

Gráf adatbázisok, stb. (további adatmodellek) 5 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 6: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa relációs adatmodellre

név gyártó

Soproni Magyar

Kozel Cseh

Dreher Német

név város tulaj

Makk 7-es Budapest Géza

Lórúgás Győr Ica

sör söröző ár

Kozel Makk 7-es 320

Dreher Makk 7-es 400

Soproni Lórúgás 280

Sör Söröző

Felszolgál

attribútumok

sorok

Az adatbázis sémája: Sör (név, gyártó),

Söröző (név, város, tulaj),

Felszolgál (sör, söröző, ár).

előfordulás

6 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 7: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa féligstrukturált adatra (XML) <?xml version="1.0" encoding="UTF-8"?>

<söröző típus="étterem">

<név>Makk 7-es</név>

<város>Budapest</város>

<tulaj>Géza</tulaj>

<telefon>+36-70-123-2345</telefon>

<telefon>+36-70-123-2346</telefon>

</söröző>

<söröző típus="kocsma">

<név>Lórúgás</név>

<város>Eger</város>

<telefon>+36-30-451-1894</telefon>

</söröző>

</xml>

7 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 8: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Relációs adatmodell története

E.F. Codd 1970-ben publikált egy cikket

A Relational Model of Data for Large Shared Data Banks

Link: http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf

amelyben azt javasolta, hogy az adatokat táblázatokban,

relációkban tárolják. Az elméletére alapozva jött létre a

relációs adatmodell, és erre épülve jöttek létre a relációs

adatmodellen alapuló relációs adatbázis-kezelők.

Relációs (objektum-relációs) adatbázis-kezelők például:

ORACLE , INFORMIX , SYSBASE , INGRES, DB2, stb

Adatbázisok-1 gyakorlaton ORACLE adatbázis-kezelő

rendszert használunk.

8 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 9: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Relációs adatmodell: relációs séma

Adatok gyűjteményét kezeli (gyűjtemény azonosítása: név)

A gyűjtemény - R reláció (tábla, táblázat) megadása

A gyűjtemény milyen típusú adatokat gyűjt?

adattípus: sor-típus. A sor-típus (egy n-es) megadása:

<Attribútumnév1: értéktípus1, … , Attrnévn: értéktípusn>

röviden <A1, … , An>

Relációséma: Relációnév (sortípus) (itt: kerek zárójelben!)

vagyis R(Anév1: értéktípus1, …, Anévn: értéktípusn)

röviden R(A1, … , An) ill. U = {A1, … , An} jelöléssel R(U)

Megadjuk a relációsémát, oszlopneveket és típusukat.

Milyen megszorításokat (pl. kulcs) tudunk megadni a

sémán? (create table később lesz az SQL DDL-ről ea.)

9 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 10: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Relációs adatmodell: előfordulás Mit jelent egy konkrét sor? sor <A1: érték1, …, An: értékn>

Reláció előfordulás (példány, instance)

A sor-típusnak megfelelő véges sok sor (sorok halmaza).

{t1, ... ,tm} ahol ti (tuple, sor, rekord) i= 1, …, m (véges sok)

ti = <vi1, ... ,vin> (vagyis egy sor n db értékből áll)

m - számosság (sorok száma)

n - dimenzió (attribútumok száma)

Értéktartományok: A reláció minden Aj attribútumához

tartozik egy dom(Aj) értéktartomány (adott értéktípusú

értékek halmaza) (1normálforma feltétel: atomi típusú)

vij ebből a dom(Aj) tartományból veszi fel az értékét

vagy speciális NULL érték (hiányzó érték) is lehet!

10 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 11: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Hiányzó érték: NULL

Ellenpélda (Kréta), de jó lenne használni a NULL-t, vagy

a nincs adat (N/A) jelet a hiányzó értékre, ez nem a 0.00

Helytelen a NULL értéket 0-ként az átlagba beszámítani,

lásd az alábbi mellékletben a hibás eredményt:

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 11

Page 12: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Logikai szinten: táblázatos szemléltetés

A B C

a b c

d a a

c b d

B C A

b c a

a a d

b d c

A B C

c b d

d a a

a b c

Példa 1 Példa 2

Példa 3

Mivel attribútumok halmazáról van szó, a Példa 1 és Példa 2 relációk nevüktől eltekintve azonosak.

Mivel sorok halmazáról van szó, a Példa 1 és Példa 3 relációk nevüktől eltekintve azonosak.

A B C

c b d

c b d

a b c

Példa 4

Ebben a modellben Példa 4 nem reláció, de a valóságban megengedünk mutihalmazokatlásd később SQL

A relációk táblákban jelennek meg. A tábláknak egyedi neve van.

A relációk oszlopait az attribútumok címzik. A tábla sorait tetszőlegesen

megcserélhetjük, sorok sorrendje lényegtelen (a halmazszemlélet miatt)

12 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 13: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Magas szintű adatbázismodellek

Vizsgáljuk meg azt a folyamatot, amikor egy új adatbázist létrehozunk, vegyük példaként a sörivós adatbázist.

Az adatbázis-modellezés és implementálás eljárása

Elgondolások Magas Relációs Relációs szintű terv adatbázis- ABKR séma

Modellezés

komplex valós világ leképezése, absztrakció

Tervezési fázis:

Milyen információkat kell tárolni?

Mely információelemek kapcsolódnak egymáshoz?

Milyen megszorításokat kell figyelembe venni? stb…

13 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 14: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Egyed-kapcsolat modell elemei

Egyed-kapcsolat modell: E/K modell

(Entity-relationship ER) alapfogalmak:

Egyedhalmazok (absztrakt objektumok osztálya)

Miről gyűjtünk adatokat?

Mit tegyünk egy gyűjteménybe? - hasonlóság

Hasonló egyedek összessége

Attribútumok

Megfigyelhető tulajdonságok, megfigyelt értékek

Az egyedek tulajdonságait írják le

Kapcsolatok

Más egyedhalmazokkal való kapcsolatuk

14 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 15: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K modell elemei: Egyedhalmazok

E(A1,…,An) egyedhalmaz séma:

E az egyedhalmaz neve,

A1,…,An tulajdonságok,

DOM(Ai) – lehetséges értékek halmaza.

például: tanár(név, tanszék).

E(A1,…,An) sémájú egyedhalmaz előfordulása:

A konkrét egyedekből áll

E = {e1,…,em} egyedek (entitások) halmaza, ahol

ei(k)DOM(Ak),

semelyik két egyed sem egyezik meg minden

attribútumban (léteznek és megkülönböztethetők)

15 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 16: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K-diagram: Egyedhalmazok

E/K diagram: séma-szinten grafikusan ábrázoljuk

Egyedhalmazok: téglalap

Tulajdonságok: ovális

az elsődleges kulcshoz tartozó tulajdonságokat

aláhúzzuk.

Sörök

név gyártó

16 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 17: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K modell elemei: Kapcsolatok

K(E1,…,Ep) a kapcsolat sémája,

K a kapcsolat neve,

E1,…,Ep egyedhalmazok sémái,

p=2 bináris kapcsolat, p>2 többágú kapcsolat,

például: tanít(tanár,tárgy).

K(E1,…,Ep) sémájú kapcsolat előfordulása:

K = {(e1,…,ep)} egyed p-esek halmaza, ahol

eiEi,

a kapcsolat előfordulásaira tett megszorítások határozzák meg a kapcsolat típusát.

17 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 18: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K-diagram: Kapcsolatok --1

Sörivók cím név

Sörök

gyártó név

Söröző

név

engedély

cím

Felszolgál A sörözőkben söröket árulnak.

Szeret A sörivók söröket szeretnek.

Látogat

A sörivók sörözőkbe járnak.

18

A kapcsolatok jele: rombusz

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 19: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kapcsolatok típusai: sok-egy, sok-sok (két egyedhalmaz között több kapcsolat is lehet)

19

Sörivók Sörök Szeret

Kedvence

Dolgozók Osztály Dolgozik

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 20: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kapcsolatok típusai

K(E1,E2) bináris kapcsolat, sok-egy (n:1)

K {(ei,ej)} alakú előfordulásaiban nem szerepelhet

egyszerre (e1,e2) és (e1,e2'), ha e2 és e2'

különböznek,

másképpen: K előfordulásaiban minden E1-beli

egyedhez legfeljebb 1 E2-beli egyed tartozhat,

például: született(név,ország).

E1 E2

e1

e2

e2'

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 20

Page 21: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kapcsolatok típusai

K(E1,E2) bináris kapcsolat, sok-sok (n:m),

K {(ei,ej)} alakú előfordulásai nincsenek korlátozva,

előfordulhat (de nem kötelező, hogy előforduljon) az

ábrán látható helyzet, vagyis minden E1-beli egyedhez

több E2-beli egyed tartozhat, és fordítva, minden E2-

beli egyedhez több E1-beli egyed tartozhat,

például: tanul(diák,nyelv).

E1 E2

e1 e2

e1'

e2'

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 21

Page 22: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kapcsolatok típusai K(E1,E2) bináris kapcsolat, egy-egy (1:1),

K {(ei,ej)} alakú előfordulásai egyszerre sok-egy és egy

sok típusúak, vagyis minden E1-beli egyedhez legfeljebb

egy E2-beli egyed tartozhat, és fordítva, minden E2-beli

egyedhez legfeljebb egy E1-beli egyed tartozhat,

nem kötelezően szerepel minden egyed a kapcsolatban,

például: házaspár(férfi,nő).

E1 E2

e1 e2'

e1'

e2

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 22

Page 23: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Egy egyedhalmaz önmagával is

kapcsolódhat: Szerepek (Roles)

Sörivók

házaspár

férj feleség

A kapcsolat előfordulása

Férj Feleség Bob Ann Joe Sue … …

23 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Dolgozók

főnöke

dolgozó főnöke

Osztály Dolgozik

Page 24: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Többágú (3-ágú) kapcsolatra

Söröző Sörök

Sörivók

név név cím gyártó

név cím

engedély

Kedvencek

24 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Itt a három egyed között van

egy háromágú kapcsolat,

együttesen kapcsolódnak,

melyik sörivó melyik sört

szereti attól is függ, hogy

melyik sörözőben veszi

Page 25: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Összevetve más, mint a korábbi

Sörivók cím név

Sörök

gyártó név

Söröző

név

engedély

cím

Felszolgál

Szeret Látogat

Itt a három egyed páronként

kapcsolódik, ez 3 db bináris

(két egyed közötti) kapcsolat

és sok-sok kapcsolat, mert

pl. egy sörivó több sört is

szerethet és egy sört több

sörivó is szerethet.

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 25

Page 26: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Átírható-e bináris kapcsolatra?

Söröző Sörök

Sörivók

név név cím gyártó

név cím

engedély

Kedvencek Kedvencek kapcsolat

helyett egyedhalmazt

bevezetve az egy 3-ágú

kapcsolat átírható 3db

binér kapcsolatra

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 26

Page 27: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Többágú kapcsolat átírása

bináris kapcsolatokra

Kedvencek kapcsolat helyett egyedhalmazt

bevezetve ez a 3-ágú kapcsolat átírható 3db

binér kapcsolatra

Vagyis Kedvencek kapcsolat helyett egy új

egyedhalmazt vezetünk be, aminek három

attribútuma van: a név, söröző, sörivó

és ezt az új egyedhalmazt középen téglalappal

jelöljük, és ez kapcsolódik páronként a három

egyedhez bináris kapcsolattal, lásd köv lapon:

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 27

Page 28: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Többágú kapcsolat átírása

bináris kapcsolatokra

Söröző Sörök

Sörivók

név név cím gyártó

név cím

engedély

Kedvencek

söröző sör

név

Kinek?

Hol? Mi?

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 28

Page 29: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kapcsolatnak is lehet attribútuma

Sörök

gyártó név

Söröző

név

engedély

cím

Felszolgál

29

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

ár

Kurzus Félév hirdetve

helyszín

időpont

Az időpont és helyszín a Kurzus és Félév együttes függvénye, de egyiké sem külön.

A sör ára függ a Sörtől és a Sörözőtől együtt.

Page 30: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Tervezési kérdés:

Attribútum vagy egyedhalmaz?

Kurzus Félév hirdetve

terem

helyszín A helyszínt itt attribútum helyett egyedhalmazként adjuk meg

30

időpont

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 31: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Alosztályok és öröklődés

Speciális „is-a” (az-egy) kapcsolat

Sörök

Alkohol- mentes

isa

név gyártó

szín

31 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 32: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: „is-a" (az-egy) kapcsolatra

32 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 33: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kulcs megszorítás

jele: aláhúzás

33

Helyiség

épület ajtószám név alapterület

Sörök név gyártó

Példa egyszerű kulcsra: név a Sörök elsődleges kulcsa:

Példa összetett kulcsra: épület, ajtószám két-attribútumos

elsődleges kulcsa a Helyiség-nek:

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 34: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Hivatkozási épség megszorítás

jele a kerek végződés )

Gyártók Sörök Legkedveltebb

Egy gyártónak pontosan egy legkedveltebb söre van.

Egy sör 0 vagy 1 gyártó legkedveltebb söre.

34 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 35: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Játékosok

Erős és gyenge egyedhalmaz

Csapatok Játszik

név név szám

• Dupla rombusz: sok-egy gyenge kapcsolat. • Dupla téglalap: gyenge egyedhalmaz.

A kerek végződés jelzi, hogy minden játékoshoz kötelezően tartozik egy csapat, amely az azonosításhoz használható.

35 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 36: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Erős és gyenge egyedhalmaz

Fajok Nemzetség Tagja

név név

36

Tankönyv 4.21. példája:

például az emberek a Homo sapiens fajhoz tartoznak,

ahol Homo a nemzetség neve, a sapiens a faj neve

(sajnos maguk a fajok nevei nem egyértelműek, két

vagy több nemzettségben is lehet ugyanolyan fajnév).

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 37: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Tervezési alapelvek valósághű modellezés:

megfelelő tulajdonságok tartozzanak az egyedosztályokhoz, például a tanár neve ne a diák tulajdonságai közé tartozzon

redundancia elkerülése:

az index(etr_kód,lakcím,tárgy,dátum,jegy) rossz séma, mert a lakcím annyiszor ismétlődik, ahány vizsgajegye van a diáknak, helyette 2 sémát érdemes felvenni:

hallgató(etr_kód,lakcím), vizsga(etr-kód,tárgy,dátum,jegy).

egyszerűség:

fölöslegesen ne vegyünk fel egyedosztályokat

például a naptár(év,hónap,nap) helyett a megfelelő helyen inkább dátum tulajdonságot használjunk

tulajdonság vagy egyedhalmaz:

például a vizsgajegy osztály helyett jegy tulajdonságot használjunk.

37 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 38: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K-diagram átírása relációkra

Előtte: Relációs adatmodell (Tankönyv 2.1-2.2.)

E/K-diagram átírása relációsémákra (Tk 4.5.-4.6.)

Egyedhalmazok átírása relációkká

E/K-kapcsolatok átírása relációkká

Egyszerűsítés, összevonások

Gyenge egyedhalmazok kezelése

Osztályhierarchia átalakítása relációkká

38 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 39: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K diagram átírása relációs adatbázistervre

egyedhalmaz séma relációséma

E(A1,…,An) E(A1,…,An)

tulajdonságok attribútumok

(szuper)kulcs (szuper)kulcs

egyedhalmaz

előfordulása reláció

e egyed (e(A1),…,e(An)) sor

R(E1,…Ep,A1,…,Aq) R(K1,…,Kp,A1,…,Aq)

kapcsolati séma, ahol relációséma, ahol

Ei egyedhalmaz, Ki az Ei (szuper)kulcsa

Aj saját tulajdonság

Mi minek felel meg:

E/K modell Relációs adatmodell

39 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 40: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: E/K diagram átírása relációkká ---1

Az egyedek és sok-sok kapcsolatok átírása

Sörivók cím név

Sörök

gyártó név

Söröző

név

engedély

cím

Felszolgál A sörözőkben söröket árulnak.

Szeret A sörivók söröket szeretnek.

Látogat

A sörivók sörözőkbe járnak.

40

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 41: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Az egyedhalmazok átírása

(aláhúzás jelöli a kulcs attribútumokat)

Sörök(név, gyártó)

Sörözők(név, város, tulaj, engedély)

Sörivók(név, város, tel)

Sok-sok kapcsolatok átírása Szeret(név, sör)

Felszolgál(söröző, sör, ár)

Látogat(név, söröző)

41 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Példa: E/K diagram átírása relációkká ---2

Az egyedek és sok-sok kapcsolatok átírása

Page 42: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: E/K diagram átírása relációkká ---3

sok-egy kapcsolatok átírásának 1.lépése

Sörivók Sörök Szeret

Szeret(név, sör) Kedvenc

0

Kedvenc(név, sör)

Házaspár

férj feleség Házaspár(férj, feleség)

név cím név gyártó

Cimbora

1 2

Cimbora(név1, név2)

A kapcsolatoknak megfelelő sémákban az

oszlopokat átneveztük, például a szerepek

alapján, (név,név) séma nem szerepelhetne.

42

Sörivók(név, cím)

Sörök(név, gyártó)

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 43: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Összevonhatunk 2 relációt, ha

az egyik egy sok-egy kapcsolatnak megfelelő reláció,

a másik pedig a sok oldalon álló egyedhalmaznak

megfelelő reláció.

Példa:

Sörivók(név, cím) és Kedvenc(név,sör) összevonható,

és kapjuk az Sörivó1(név,cím,kedvencSöre) sémát.

Hasonlóan a Dolgozók táblába összevonható

az Osztállyal illetve önmagával való kapcsolat

43 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Példa: E/K diagram átírása relációkká ---4

sok-egy kapcsolatok átírásának 2.lépése

Az összevonás (ésszerűsítés)

Page 44: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Gyenge egyedhalmaz átírása

Logins Host gépek

Hová

név név

Hostgépek(hostNév, cím) Logins(loginNév, hostNév, jelszó) Hová(loginNév, hostNév, hostNév2)

A logins kulcsa összetett: loginNév,hostNév Kétszer szerepelne az azonos értékű hostNév a Hová sémában

jelszó

Beolvasztjuk a Logins relációba

cím

44 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 45: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Alosztály átírására relációkká

Sörök

Alkohol- mentes

isa

név gyártó

szín

45 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 46: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Alosztályok átírása: három megközelítés

E/R stílusban: Egy reláció minden alosztályra, de az általános osztályból csak a kulcsokat vesszük hozzá a saját attribútumokhoz.

Objektumorientált stílusban: Egy reláció minden alosztályra, felsorolva az összes tulajdonságot, beleértve az örökölteket is.

Nullértékek használatával: Egyetlen reláció az öröklődésben résztvevő összes osztályra. Ha egy egyed nem rendelkezik egy alosztály speciális tulajdonságával, akkor ezt az attribútumot NULL értékkel töltjük majd ki.

46 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 47: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

E/K tipusú átalakítás ---1

név gyártó Bud Anheuser-Busch Summerbrew Pete’s Sörök név szín Summerbrew világos Alkoholmentes

Az olyan lekérdezésekre jó, hogy egy adott gyártó milyen söröket gyárt, beleértve az alkoholmenteseket is.

47 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 48: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Objektumorientált megközelítés ---2

név gyártó Bud Anheuser-Busch Sörök név gyártó szín Summerbrew Pete’s világos Alkoholmentes

Az olyan lekérdezésekre jó, hogy egy adott gyártó milyen színű alkoholmentes söröket gyárt.

48 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 49: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Nullértékek használatával ---3

név gyártó szín Bud Anheuser-Busch NULL Summerbrew Pete’s világos Sörök

Általában kevesebb hely elég a tárolásra, kivéve ha nagyon sok attribútum marad nullértékű.

49 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 50: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Termékek (Tankönyv feladata)

Termék

Laptop

isa

modell típus

50 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

gyártó

PC

isa

Nyomtató

isa

típus

színes sebesség

memória

merevlemez stb stb

E/K-t írjuk át a három megközelítéssel relációsémákra!

Page 51: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Kérdés/Válasz

Köszönöm a figyelmet! Kérdés/Válasz?

Következő 2.előadáson: Lekérdezések kifejezése

relációs algebrában és SQL SELECT utasítással.

1.gyakorlaton: Adatmodellezésre feladatok, példák

E/K diagram felrajzolása és átalakítása relációs

modellre. A gyakorlatra szóló modellezési feladatok

megtalálhatóak itt az 1.előadás diasorozat végén.

A gyakorlatokon megbeszéljük a demo adattáblák

kialakításához milyen E/K modell áll a hátterében,

lásd Oracle HR séma Dolgozó és Osztály tábláit.

51 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 52: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Modellezési feladatok gyakorlatra

Tankönyv 4.1.1. feladat. Tervezzünk egy bank

részére adatbázist, amely tartalmazza az ügyfeleket

és azok számláit. Az ügyfelekről tartsuk nyilván a

nevüket, címüket, telefonszámukat és TAJ-

számukat. A számláknak legyen számlaszámuk,

típusuk (pl. takarékbetét-számla, folyószámla stb.)

és egyenlegük. Továbbá, meg kell jelölni azokat

az ügyfeleket, akiknek van számlájuk. Adjuk meg

az E/K diagramját ennek az adatbázisnak.

Alkalmazzunk nyilakat a kapcsolatokban a

multiplicitások jelölésére.

52 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 53: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Modellezési feladatok gyakorlatra

Tankönyv 4.1.3. feladat. Adjuk meg az E/K modelljét

egy olyan adatbázisnak, amely csapatokat, játékosokat és azok szurkolóit tartja nyilván:

Minden csapatról tároljuk a nevét, játékosait, csapatkapitányát (ő is egy játékos), mezük színét.

Minden játékosnak legyen neve.

Minden rajongóról tartsuk nyilván a nevét, kedvenc csapatát, kedvenc játékosát és kedvenc színét.

Vigyázzunk, a színek halmaza nem lehet a csapatok egy attribútumának típusa. Hogyan lehet ezzel a megszorítással együtt megfelelő modellt készíteni?

53 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 54: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Modellezési feladatok gyakorlatra

Tankönyv 4.1.9. feladat. Tervezzünk adatbázist

egy tanulmányi osztály számára. Ez az adatbázis tartalmazza a hallgatókat, oktatókat, tanszékeket és kurzusokat. Ezenkívül tartsuk nyilván, hogy a hallgatók milyen kurzusokat vettek fel, az adott kurzust mely oktató oktatja, a hallgatók jegyeit, a kurzusoknál az oktató munkáját segítő hallgatókat, egy adott kurzust mely tanszék ajánlotta, és minden olyan információt, ami a fentiek megvalósításához szükséges. Megjegyezzük, hogy ez a feladat nagy szabadságot enged a korábbiakhoz képest. Dönteni kell a kapcsolatok típusáról (sok-sok, sok-egy vagy egy-egy), az alkalmas típus megválasztásról, illetve arról, hogy milyen segédinformációkat használunk.

54 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 55: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Feladatok: Alosztály átírása relációkká

55 Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek

Page 56: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Oracle HR séma táblái:

Dolgozók, Osztály, Fiz_kategória EMPLOYEES

DEPARTMENTS JOB_GRADES

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 56

Page 57: 1.előadás: Adatbázisok-I.sila.hajas.elte.hu/ABEA/01_adatb_hcs.pdf · 2019-09-08 · 2. Az adaton végezhető műveletek (lekérdezések,módosítások, feldolgozások legyenek

Példa: Oracle SH (Sales History) séma

Adatbázisok-1 (Hajas Csilla, ELTE IK) 1.előadás: Adatmodellek 57

Átrajzolva

E/K jelölésre:

Itt középen ELADÁS

5-ágú kapcsolat:

ami körül körben az öt

egyedhalmaz:

VEVŐ, TERMÉK,

CSATORNA, IDŐ,

KEDVEZMÉNY

SALES