RELÁCIÓS ADATMODELL, RELÁCIÓS ALGEBRAI LEKÉRDEZÉSEK
- Alapok: Relációs algebrához relax környezet táblákkal: dbis uibk github io/relax
- A fenti linken elérhető DB (ELTE-AB1) táblákat is használjuk a lekérdezésekhez,
de magunk is létrehozhatunk táblákat: Relax_Szeret.txt; Relax_PC_Termek.txt
- A relációs algebrai műveletek eredménye halmaz, vagyis ez az implementáció
minden művelet elvégzése után automatikusan megszünteti az ismétlődéseket.
A relációs algebrai fület használjuk, ez a szintaxis érzékeny a kis-nagybetűre,
algebrában a szűrőfeltételben nem használható alkérdés (az csak SQL-ben).
- Volt az 1.gyak: Szeret(nev, gyumolcs) táblára vonatkozó lekérdezések
Unér műveletek: pi-vetítés, sigma-kiválasztás, rho-átnevezés (táblák v. oszlopok)
Halmazműveletek: unió (union), halmazműv.különbség (-), metszet (intersect)
Tábla átnevezése, önmagával vett direkt szorzata (sorpárok összevetésére)
- A mai 2.gyak: Tankönyv példái és relációs algebrai lekérdezések feladatai:
Tk. 2.4. fejezetében kidolgozott példák: UW_24_RelAlg.pdf Filmek példája
Tk. 2.4.1. Termékek-feladatok.pdf a mai gyakorlat anyaga Relax_PC_Termek.txt
Tk. 2.4.3. Csatahajók-feladatok.pdf H.F. otthoni gyakorlás Relax_Csatahajok.txt
- Átírások: Alap relációs algebrai kifejezés <=> SQL SELECT utasításra
Itt most olyan megoldásokat keressünk, amit előbb az alap relációs algebrai
lekérdezésként adunk meg, majd ezt átírjuk SQL lekérdezésekre.
- projekció szelekció (táblák direkt szorzata) <=> SFW (SELECT FROM WHERE)
- Fontos! Az SQL-ben a halmazműveleteket nem táblákra, hanem
SFW lekérdezésekre alkalmazzuk (azonos dimenzió, kompatibilis típus)
SFW
{UNION | MINUS | INTERSECT }
SFW
- Megjegyzés: Relációs algebrában használhatunk segédváltozókat, aminek
az átírása SQL-be többféleképpen történhet vagy WITH munkatabla as (SFW)
záradékban adjuk meg közvetlenük a SELECT záradék előtt, ekkor a FROM listán
nem csupán valódi táblák, hanem ezek a munkatáblák is szerepelhetnek vagy
a FROM listán bezárójelezett alkérdést, ú.n. inline nézetet is használhatunk
FROM (SFW) temp_tábla, ahol (SFW) = (SELECT ... FROM ... WHERE ...) alkérdés.
- Tk 2.4.1. PC-Termékek példája (Rel.alg.kifejezés <=> SQL lekérdezés)
-- Tankönyv 2.4.szakasz 2.4.1.lekérdezési feladatai: Termékek-feladatok.pdf
Táblák létrehozása Relax-ban: Relax_PC_Termek.txt
-- Alosztályok használata az E/K diagramban, öröklési osztályhierarchia:

-- Osztályhierarchia átalakítása relációkká, három stratégia hogyan alakítjuk át:
1.) E/K típusú átalakítás (4 tábla lesz, ezt használjuk, csak a kulcs öröklődik)
2.) Objektumorientált megközelítésben való átalakítás (minden attr.öröklődik)
3.) Nullértékek használata relációk egyesítéséhez (egy táblában minden attr.)
-- Relációs sémák E/K típusú átalakítással:
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)
FELADATOK: Lekérdezések kifejezése alap relációs algebrában és SQL-ben
1. Melyek azok a PC modellek, amelyek sebessége legalább 3.00?
2. Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel
rendelkezı laptopot?
3. Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát,
típustól függetlenül.
4. Adjuk meg valamennyi színes lézernyomtató modellszámát.
5. Melyek azok a gyártók, akik laptopot árulnak, PC-t viszont nem?
6. Melyek azok a merevlemezméretek, amelyek legalább két PC-ben megtalálhatók?
7. Adjuk meg azokat a PC modell 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.
8. Melyik gyártó gyártja a leggyorsabb számítógépet (PC-t vagy laptopot)?
9. Melyik gyártó gyárt legalább három, különböző sebességű PC-t?
10. Melyek azok a gyártók, akik pontosan három típusú PC-t forgalmaznak?
--- --- --- ---
-- További gyakorló feladatok a Tankönyv 2.4.szakasz 2.4.3.lekérdezési feladai:
Tk. 2.4.3. Csatahajók-feladatok.pdf H.F. otthoni gyakorlás Relax_Csatahajok.txt