20. Adatbázisok tervezése és lekérdezése Flashcards

1
Q

Relációs adatmodell

A

Adatok gyűjteményét kezelő modell

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

E / K modell átalakítása relációs adatmodellbe

A
  • egyedhalmaz séma → relációséma
  • tulajdonságok → attribútumok
  • (szuper)kulcs → (szuper)kulcs
  • egyedhalmaz előfordulása → reláció
  • egyed → e(A1)…e(An) sor
  • R(E1, …Ep, A1, …Aq) kapcsolati séma (Ei egyedhalmaz, Aj tulajdonság) → R(K1, …Kp, A1, …Aq) relációséma
    (Ki az Ei (szuper)kulcsa)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Relációséma

A
  • R: relációnév
  • Ai: attribútumok
  • Dom(Ai): attribútumok lehetséges értékei, típusa (milyen domain tartozik hozzá)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Előfordulás

A
  • lehetséges értékekből veszünk sorok halmazát
  • egy sor a reláció-előfordulás
  • egy sor egyszer szerepel (kivéve multihalmaznál)
  • sorok sorrendje relációs adatmodell szinten lényegtelen – optimalizálásnál számíthat
  • oszlop sorrendje is lényegtelen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hivatkozási épség

A

(E / K) megszorítás, kerek végződéssel jelölik. Pontosan egy egyed
tartozik egy kiválasztott egyedhez (pl.: 1 gyártónak pontosan 1 legjobb söre van)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

E / K modell

A
  • Egyedhalmaz: hasonló egyedek összessége
  • Attribútumok: megfigyelhető tulajdonságok, megfigyelt értékek, egyedek tulajdonságai
  • Kapcsolatok: más egyedhalmazzal való kapcsolatok
  • Séma: E(Ai, …, An) egyedhalmaz séma. E név, Ai tulajdonság, DOM(Ai) a lehetséges értékek halmaza.
  • Előfordulás: konkrét egyedek (entitások). Minden attribútumban nem egyezhetnek meg
  • K(E1, E2) bináris kapcsolat (…)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

E / K kapcsolat típusok

A
  • egy-egy
  • sok-egy
  • sok-sok
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Szuperkulcs

A

Az egyedhalmaz szuperkulcsa egy azonosító, vagyis olyan tulajdonság-halmaz, amelyről feltehető,
hogy az egyedhalmaz előfordulásaiban nem szerepel két különböző egyed, amelyek ezeken a tulajdonságokon megegyeznek. Az összes tulajdonság mindig szuperkulcs.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

E / K tervezési alapelvek

A
  • 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(etrkó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 egyedosztály: például a vizsgajegy osztály helyett jegy tulajdonságot használjunk.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Relációs algebrai műveletek

A
  1. Unió
  2. Különbség
  3. Vetítés (projekció)
  4. Kiválasztás
  5. Direktszorzat
  6. Átnevezés
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SQL

A

Structured Query Language
Főbb részei:
- DDL (Data Definition Language)
- DML (Data Manipulation Language)
- DCL (Data Control Language)
- Tranzakciókezelés
- Procedurális kifejezések

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

DML

A

Adatkezelő nyelv - Data Manipulation Language (INSERT, UPDATE, DELETE, SELECT)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

DDL

A

Adatleíró nyelv - Data Definition Language (CREATE, ALTER, DROP)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

DCL

A

Adatvezérlő nyelv - Data Control Language (GRANT, REVOKE)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

SQL - Tranzakció-kezelés

A

COMMIT, ROLLBACK, SAVEPOINT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

SQL - Procedurális kifejezések

A

Oracle PL/SQL, SQL/PSM

17
Q

PSM definíciója

A

PSM (Persistent Stored Modules): SQL utasítások és konvencionális elemek (if, while stb) keverékéből áll. Olyan
dolgokat is meg lehet csinálni, amit önmagában az SQL-ben nem.

Eljárás meghívása: CALL <eljárás> (<argumentumlista>)</argumentumlista></eljárás>

Függvénynél a RETURN utasítás határozza meg a visszatérési érték típusát - nem terminál ekkor a függvény (!)

DECLARE - BEGIN - END

értékadás: SET <változó> = <kifejezés></kifejezés></változó>

18
Q

PL/SQL definíciója

A

Nem csak eljárások, függvények tárolására alkalmas, ezeket futtatni is tudja.

értékadás: “:=” jellel

PSM-hez képest eltérések:
- több típus (NUMBER -> INT, REAL)
- ROWTYPE: attribútum típusa

19
Q

Relációs adatbázis-sémák tervezése

A

Függőségek: funkcionális, többértékű (tervezésnél használják, adatbázisban megszorítások vannak)
Normalizálás: jó sémákra való felbontás, funkcionális függőségek → (1,2,)3NF, BCNF; többértékű függőségek → 4NF

20
Q

Funkcionális függőség (def.)

A

Legyen R(U) egy relációséma, továbbá X és Y az U attribútumhalmaz részhalmazai. X-től funkcionálisan
függ Y (jelölésben X → Y), ha bármely R feletti T tábla esetén valahányszor két sor megegyezik X-en, akkor megegyezik Y-on is, ∀t1, t2 ∈ T esetén (t1[X] = t2[X] ⇒ t1[Y ] = t2[Y ]). Ez lényegében azt jelenti, hogy az X-beli
attribútumok értéke egyértelműen meghatározza az Y-beli attribútumok értékét. Jelölés: R |= X → Y, vagyis R
kielégíti X → Y függőséget.

21
Q

Armstrong-axiómák:

A

Legyen R(U) relációséma és X, Y ⊆ U, és jelölje XY az X és Y attribútumhalmazok
egyesítését. F legyen funkcionális függőségek tetsz. halmaza.
- FD1 (reflexivitás): Y ⊆ X esetén X → Y .
- FD2 (bővíthetőség): X → Y és tetszőleges Z esetén XZ → Y Z.
- FD3 (tranzitivitás): X → Y és Y → Z esetén X → Z.
Az Armstrong-axiómarendszer helyes és teljes, azaz minden levezethető függőség implikálódik is, illetve azok a
függőségek, amelyeket F implikál azok le is vezethetők F-ből. F |- X → Y ⇐⇒ F |= X → Y

22
Q

Boyce-Codd normálforma (BCNF)

A

R reláció BCNF-ben van, ha minden X → Y nemtriviális FF-re R-ben X szuperkulcs. Nemtriviális: Y nem része X-nek. Szuperkulcs: tartalmaz kulcsot (ő maga is lehet kulcs). Ha van
olyan következmény FF F-ben, ami sérti a BCNF-t, akkor egy F-beli FF is sérti. Kiszámítjuk X+-t: Ha itt
nem szerepel az összes attribútum, X nem szuperkulcs.

23
Q
  1. normálforma (3NF)
A

Bizonyos FF halmazok esetén a felbontáskor elveszíthetünk függőségeket. 3. normálformában (3NF) úgy
módosul a BCNF feltétel, hogy az előbbi esetben nem kell dekomponálnunk. Egy attribútum elsődleges
attribútum (prím), ha legalább egy kulcsnak eleme. X → A megsérti 3NF-t akkor és csak akkor, ha X nem
szuperkulcs és A nem prím.

24
Q
  1. normálforma (4NF)
A

A 4.normálforma hasonlít a BCNF-re, azaz minden nem triviális többértékű függőség bal oldala szuperkulcs.
A TÉF-ek okozta redundanciát a BCNF nem szünteti meg. A megoldás: a negyedik normálforma. A negyedik normálformában (4NF), amikor dekomponálunk, a TÉF-eket úgy kezeljük, mint az FF-eket, a kulcsok megtalálásánál azonban nem számítanak.
Egy R reláció 4NF -ben van ha: minden X →→ Y nemtriviális TÉF esetén X szuperkulcs. Nemtriviális
TÉF: Y nem részhalmaza X-nek, és X és Y együtt nem adják ki az összes attribútumot. A szuperkulcs definíciója ugyanaz marad, azaz csak az FF-ektől függ. Definíció: R 4NF-ben van D-re nézve, ha XY != R,
Y !⊂ X, és D |- X →→ Y esetén D |- X → R.
Definíció: d = {R1, …, Rk} dekompozíció 4NF-ben van D-re nézve, ha minden Ri 4NF-ben van ΠRi
(D)-re
nézve.
Állítás: Ha R 4NF-ben van, akkor BCNF-ben is van. Következmény: Nincs mindig függőségörző és veszteségmentes 4NF dekompozíció.
Veszteségmentes 4NF dekompozíciót mindig tudunk készíteni a naiv BCNF dekomponáló algoritmushoz hasonlóan.
Ha R 4NF-ben van, akkor BCNF-ben is.

25
Q

Dekompozíciók, anomáliák

A

Rossz tervezés → anomáliák
Cél: anomáliák, redundancia csökkentése

  • Módosítási anomália: Egy adat egy előfordulását megváltoztatjuk, más előfordulásait azonban nem. (pl.: terméknél lenne a konkrét márkanév eltárolva)
  • Törlési anomália: Törléskor olyan adatot is elveszíthetünk, amit nem szeretnénk. (csak megrendeléseket lennének eltárolva a termékek → megrendelés törlésekor a termék is elveszik)
  • Beillesztési anomália: NULL gyártó beszúrása?? → megszorítás, trigger az adatok ellenőrzésére (pl.: megrendeléshez nem tartozna partner)
26
Q

Dekomponálás

A

Az anomáliáktól dekomponálással (felbontással) tudunk megszabadulni! Definíció:
d = {R1, …, Rk} az (R,F) dekompozíciója, ha nem marad ki attribútum, azaz R1 ∪ … ∪ Rk = R.(Az adattábla
felbontását projekcióval végezzük).
Elvárások:
1. Veszteségmentes legyen a felbontás, vagyis ne legyen információvesztés. A fenti jelölésekkel: ha r = ΠR1
(r) ./
… ./ ΠRk
(r) teljesül, akkor az előbbi összekapcsolásra azt mondjuk, hogy veszteségmentes. Itt r egy R
sémájú relációt jelöl. Chase-teszt a veszteségmentességhez: Készítünk egy felbontást. A felbontás eleminek
összekapcsolásából veszünk egy sort. Az algoritmussal bebizonyítjuk, hogy ez a sor az eredeti relációnak is
sora.
2. A vetületek legyenek jó tulajdonságúak, és a vetületi függőségi rendszere egyszerű legyen (normálformák:
BCNF, 3NF)
3. Függőségek megőrzése a vetületekben (FO) A dekompozíciókban érvényes függőségekből következzen az eredeti sémákra kirótt összes függőség. Adott (R,F) esetén d = {R1, …, Rk} függőségőrző dekompozíció akkor
és csak akkor, ha minden F-beli függőség levezethető a vetületi függőségekből: minden x → Y ∈ F esetén
ΠR1
(F) ∪ … ∪ ΠRk
(F) |- X → Y .

A függőségőrzésből nem következik a veszteségmentesség és a veszteségmentességből nem következik a függőségőrzés.