Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda
ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben 2.2 Műveletek a relációs modellben 2.2.1 Relációra vonatkozó megszorítások 2.2.2 Multihalmazon értelmezett műveletek 2.2.3 A relációs modell további kiterjesztései
1
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda
Adott az adatbázis sémája, amelyik négy relációból áll:
Termék(gyártó, modell, típus) PC(modell, sebesség, memória, merevlemez, ár) Laptop(modell, sebesség, memória, merevlemez, képernyő, ár) Nyomtató(modell, színes, típus, ár)
2
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda e) Melyek azok a gyártók, akik laptopot árulnak, PC-t viszont nem f) Melyek azok a merevlemezméretek, amelyek legalább 2 különboző tipusú PC-ben megtalálhatók?
gyártó
(Laptop
gyártó
(PC
Termék) Termék)
f)
(C(PC X PC_1))
merevlemez
C=(PC.modell<>PC_1.modell) AND (PC.merevlemez=PC_1.merevlemez)
3
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda g) Adjuk meg azokat a PC párokat, amelyek ugyanolyan gyorsak és a memóriájuk is ugyanakkora. Egy pár csak egyszer jelenjen meg, azaz, ha már szerepel az (i,j), akkor a (j,i) ne jelenjen meg
PC.modell,PC_1.modell
(C(PC X PC_1))
C=(PC.sebesseg=PC_1.sebesseg) AND (PC.memoria=PC_1.memoria) AND (PC.modell>PC_1.modell)
4
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda h) Melyek azok a gyártók, amelyek gyártanak legalább két, egymástól különböző, legalább 133 megahertzen működő számítógépet (PC-t vagy Laptopot)?
W=
modell,gyártó
modell,gyártó W.gyarto
(sebesség>=133(PC
(sebesség>=133(Laptop
Termék))
U
Termék))
(C(W X W_1))
C=(W.modell>W_1.modell) AND (W.gyarto=W_1.gyarto)
5
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda
Q1= Q2=
i) Melyik gyártó gyártja a leggyorsabb számítógépet (PC-t vagy laptopot)?
W=
sebesség,gyártó
sebesség,gyártó
(PC
(Laptop
Termék)
U
Termék)
(c1(W X W_1)) W_1.gyarto,W_1.sebesseg(c2(W X W_1)) W.gyarto,W.sebesseg
Q=
gyarto (Q1-Q2)
C1=C2=W.sebesseg>W_1.sebesseg 6
W
A 133
A 133
A
133
A
133
A
133
A
120
A
133
B
166
A 120
A 120
B 166
B 166
A
133
B
200
B 200
B 200
A
120
A
133
A
120
A
120
A
120
B
166
A
120
B
200
B
166
A
133
B
166
A
120
B
166
B
166
B
166
B
200
B
200
A
133
B
200
A
120
B
200
B
166
B
200
B
200
A
133
A
120
B
166
A
133
B
166
A
120
B
200
A
133
B
200
A
120
B
200
B
166
Q1
Q2
A 133
A 133
B 166
A 120
B 200
B 166
Q=
gyarto (Q1-Q2) B 200
7
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda j) Melyik gyártó gyárt legalább három, különböző sebességű PC-t W= gyarto,sebesseg(PC
gyártó
Termek)
(C(W X W_1 X W_2))
C=(W.gyarto=W_1.gyarto) AND (W_2.gyarto=W_1.gyarto) AND (W.sebesseg<>W_1.sebesseg) AND (W.sebesseg<>W_2.sebesseg) AND (W_1.sebesseg<>W_2.sebesseg) 8
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda
Ekivalens kifejezések és a lekérdezések optimizálása: Definíció: Ekivalens kifejezések amelyek ugyanazt az eredményt adják. Példa: cim,ev (hossz<100 (film) studio=‘FOX’ (film)) cim,ev (hossz<100 AND
studio=‘FOX’(film))
4. Átnevezés
Átnevezés: S(A1,A2,..An) (R) és S(R) Ha csak a reláció nevét akarjuk megváltoztatni
9
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 2.2.1 Relációkra vonatkozó megszorítások Megszorítások Nagyon fontosak az adatbázisok világában. Megszorítások megadása relációs algebra segítségével 1. Ha R egy relációs kifejezés, akkor az R=Ø egy olyan megszorítás, amelynek jelentése “az R-nek üresnek kell
lennie” vagy másképp ”az R eredményében egyetlen sor sincs”. 10
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 2. Ha R és S relációs algebrai kifejezések, akkor RS egy olyan megszorítás, melynek jelentése: “az R eredményének minden sora benne kell legyen az S
eredményében”. Természetesen az S eredménye tartalmazhat az R sorain kívül más sorokat is. A két módon megfogalmazott kifejezés ekvivalens.
Az RS felírható az R-S=Ø alakban is.
11
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Hivatkozási épség: Ha egy érték megjelenik valahol egy környezetben, akkor ugyanez az érték egy másik, az előzővel összefüggő környezetben is megjelenik. Ha egy A objektum (egyed, sor) kapcsolatban áll a B objektummal (egyeddel, sorral, akkor B-nek valóban léteznie kell) Film(cím, év, hossz, színes, stúdióNév, producerAzon) Gyártásirányító(név, cím, azonosító, nettóBevétel)
producerAzon
(Film)
azonosító
(GyártásIrányító) 12
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda számlaszám Számlák Dátum
ÁFA
Sorszám Számlasorok
sorai
egységár
számlája
mértékegység termék
mennyiség
Számla(számlaszám, dátum, áfa, kliensAzon)
azonosító Kliensek név
bank
kliensAzon
Kliens(azonosító, név, bank, bszámla) bszámla
(Számla)
azonosító
(Kliens)
13
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Ekvivalens kifejezések az előbbi feladatokhoz
producerAzon
(Film)-
kliensAzon
azonosító
(Számla
(GyártásIrányító)=Ø
azonosító
(Kliens))
A Filmszínész relációban a nem (gender) megengedett értékei ‘N’ és ‘F’
(nem≠‘N’ AND nem≠‘F’ (Filmszínész))=Ø
14
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 2.2.2. Multihalmazokon értelmezett műveletek Def.: Az olyan relációt, ahol megengedett az azonos sorok jelenléte multihalmaznak nevezzük.
A kereskedelmi adatbázisok ritkán alapulnak halmazokon, bizonyos esetekben megengedett az azonos sorok jelenléte is. Általános szabály: •a relációk (táblák) HALMAZOK •a lekérdezések eredményei MULTIHALMAZOK •Multihalmaz→Halmaz Select DISTINCT
15
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Mire jók a multihalmazok? Több módon is gyorsíthatja a relációs műveleteket. Vetítés esetén az eredmény multihalmaz, függetlenül lehet dolgozni minden egyes sorral. Ha az eredményt
halmazként
kezeljük,
minden
egyes
sornál
összehasonlítást kell végeznünk az összes többi sorral. Ez
sok
időt
vesz
fel,
esetenként
az
információ
torzulásához is vezethet. Például, ha értékekre vetítünk.
16
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Sszám
sorsz
egységár Darab
Tkód
1234
1
50
3
A35
1235
1
30
5
B36
2
20
10
C37
1235
össz=egységár*darab
össz 150
150 200
multihalmaz
(Számlasor) halmaz
Halmaz esetén elveszik az információ, ami pénzügyi problémát okozhat.
össz 150
200 17
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmazok egyesítése, metszete, különbsége
A 1
B 2
A 1
B 2
3 3 1 5
4 4 2 6
3 3 3
4 4 4
RUS
A 1 3 3 1 5 1 3 3 3
B 2 4 4 2 6 2 4 4 4
Ha egy sor m-szer van meg az R-ben és n-szer az S-ben, akkor RUSben (n+m )-szer van meg {1,2} 2-szer az R-ben {1,2} 1-szer az S-ben {1,2} 3-szor az RUS-ben
18
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmazok egyesítése, metszete, különbsége
A 1
B 2
A 1
B 2
3 3 1 5
4 4 2 6
3 3 3
4 4 4
R
A 1 3 3
B 2 4 4
A 1 5
B 2 6
A 3
B 4
S\R R\S
R∩S
S 19
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda R multihalmazban t sor n-szer szerepel S multihalmazban t sor m-szer szerepel RUS-ben a t sor (n+m) -szer szerepel RS-ben a t sor min(n,m) -szer szerepel R\S-ben a t sor max(0,n-m)-szer szerepel S\R-ben a t sor max(0,m-n)-szer szerepel
20
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmazon értelmezett kiválasztás A 0 3
B 2 4
C 5 6
A 3 1
B 4 2
C 6 7
1 1
2 2
7 7
1
2
7
R
(R)
C≥6
21
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmazok szorzata A 1 1
B 2 2
R
B 2 4
C 3 5
4
5 S
A 1 1
1 1 1 1
R.B S.B 2 2 2 2
2 2 2 2
4 4 4 4
C 3 3
5 5 5 5
RXS 22
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmazok összekapcsolása A 1 1
B 2 2
R
B 2 4
C 3 5
4
5 S
A 1
B 2
C 3
1
2
3
R
S
23
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Multihalmaz műveletek halmazokon. RUS Eredmény MH
R∩S
R\S
X
H
H
MH
H
H
•R és S halmazok •MH-multihalmaz •H halmaz Definíció: Halmazokon végzett műveletek eredménye multihalmaz az egyesítés és a vetítés műveleteivel kapható.
24
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda A
B
A
B
1
2
3
4
3
4
5
6
R
S
A
B
1
2
3
4
3
4
5
6
V=RUS multihalmaz
halmazok
A
B
C
U
1
2
5
halmaz
3
4
6
A,B(U)
1
2
7
multihalmaz
1
2
8
A
B
1
2
3
4
1
2
1
2
25
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda 2.2.3. A relációs modell további kiterjesztései Műveletek, amelyek nem részei a relációs adatmodell formális leírásának, a gyakorlatban viszont előfordulnak. Módosítások 1. Sorok beszúrása relációba INSERT 2. Sorok törlése relációkból DELETE 3. Meglévő sorok módosítása, egy komponensének megváltoztatásával. UPDATE
vagy
több 26
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Összesítések Valódi adatbázis-lekérdezőnyelvek lehetővé teszik az ú.n. összesítő műveletek használatát • COUNT relációk sorainak leszámlálása
• SUM
oszlop-értékek összeadása
• AVG
átlag-érték kiszámolása
• MIN
oszlop minimum kiszámítása
• MAX
oszlop maximum kiszámítása 27
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Nézetek
Relációs algebrai kifejezés 1. Program, amelyik kiszámolja az R relációt és ki is nyomtatja 2. Képletek, amelyeknek addig nincs eredményük amíg igazi relációkra nem alkalmazzuk őket A nézeteknek gyakran neveket adunk, ezeket ugyanúgy hasznájuk más algebrai kifejezések argumentumaként, mint a valódi relációkat.
28
Sapientia - Erdélyi Magyar TudományEgyetem (EMTE) Csíkszereda Nullértékek NULL érték bizonyos szempontból ugyanolyan érték, mint a többi.Más szempontból nem is érték 2 reláció összekapcsolásakor 2 NULL komponens nem egyenlő 1. Ismeretlen érték: tudom, hogy valamilyen értéknek kell ott lennie, de nem tudom, hogy melyik az 2. Alkalmazhatatlan érték: Nincs olyan érték, aminek értelme lenne: hitves attribútum azok esetében, akik egyedülállók 3. Visszatartott érték: Nem vagyunk feljogosítva, hogy ismerjük: titkosított telefonszám, személyi szám (bizonyos 29 esetekben)