Az alábbi lekérdezéseket
fejezzük ki SQL SELECT-tel, majd írjuk
át a lekérdezést
kiterjesztett relációs algebrai
operátorokat
felhasználó kifejezéssé, majd
rajzoljuk fel
a kifejezésfát is.
- Adjuk meg
osztályonként az osztály
nevét és az ott dolgozók
számát
a dolgozók
száma szerint növekvő sorrendben.
- Adjuk meg azoknak az osztályoknak a
nevét, ahol
az átlagfizetés nagyobb mint 2000.
- Adjuk meg azoknak a foglalkozásoknak
a nevét,
amelyek a 10-es és 20-as
osztályon is
előfordulnak. Ismétlődések ne legyenek
a végeredményben.
Tk.7.2-7.3
Heurisztikus
szabályokon alapuló algebrai
optimalizálás
7.3. szakasz - Logikai
lekérdezéstervek
javítása (Papíron
oldjuk meg!)
- Hozzunk létre a DEPT, EMP,
SALGRADE táblákból a saját
táblákat.
Relációsémák:
OSZTALY(OAZON, ONEV, HELY)
DOLGOZO(DKOD, DNEV, FIZETES, FOGLALK,
BELEPES, OAZON)
FIZKAT(KATEGORIA, ALSO, FELSO)
- Fejezzük ki SQL SELECT-tel
(alkérdések illetve nézetek
használata nélkül) és
projekció-szelekció-direktszorzat
alakú kiindulási relációs
algebrai kifejezéssel,
hogy kik azok a dolgozók
(mi a nevük), akik tanárok, a
fizetésük a 2-es
kategóriába esik
és valamelyik ’Debrecen’
helyszínű osztályon dolgoznak.
- Rajzoljuk fel a relációs
algebrai kifejezést reprezentáló
lekérdezőfát, majd
alakítsuk át
hatékonyabb relációs algebrai
kifejezést
reprezentáló lekérdezőfává,
vagyis végezzük
el a heurisztikus
szabályokon alapuló algebrai
optimalizálást!
- Milyen relációs
algebrai
azonosságokat
használtunk fel az egyes
lépéseknél?
Tk.7.4-7.7.
Költség
alapú
optimalizálás
Segédanyagok:
lásd az előadás anyagát (nemcsak slide-ok,
táblára író órák voltak!)
7.4-7-7. szakasz - Költség alapú
optimalizálás (Papíron
oldjuk meg!)
- Vegyük az R(a, b), S(b, c) és U(c, d)
relációkat, ahol az T(R)=1000, T(S)=2000,
T(U)=5000 (ennyi sora van),
továbbá V(R,a)=100, V(R,b)=20, V(S,b)=200
és
V(S,c)=500, V(U,c)=100 és V(U,d)=400 (a
reláció attribútumának
ennyi
értéke van, R-nek
1000 sora van és R.a-nak 100
különböző értéke,
stb).
Adjuk meg a legjobb becslés az szigmaa=1
(R(a, b) join S(b, c) join U(c, d)) méretére!
- Vegyük az R(a, b, c), S(b, c, d) és U(b, e)
relációkat, ahol az T(R)=1000, T(S)=2000,
T(U)=5000 (ennyi sora van),
továbbá V(R,a)=100, V(R,b)=20,
V(R,c)=200, V(S,b)=50,
V(S,c)=100, V(S,d)=400, V(U,b)=200 és
V(U,e)=500 (a
reláció attribútumának
ennyi értéke van, R-nek 1000
sora van és R.a-nak 100 különböző
értéke, stb).
Adjuk meg a legjobb becslés az (R(a, b,
c) join S(b, c, d) join U(b, e)) méretére!