Relációs algebrai lekérdezések átírása SQL SELECT-re (példák)



Hasonló dokumentumok
Tankönyv példák kidolgozása

Feladatok A mai előadáson: Tankönyv -- Termékek feladatai:

Relációs algebra 2.rész

Példák átírásokra: Relációs algebrai kifejezések, a kiértékelı fák átírása SQL lekérdezésekre

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

Relációs algebra áttekintés és egy táblára vonatkozó lekérdezések

Relációs algebra 2.rész példák

Relációs algebra 1.rész

LEKÉRDEZÉSEK SQL-BEN. A relációs algebra A SELECT utasítás Összesítés és csoportosítás Speciális feltételek

ADATBÁZISOK I. Az esetleges hibákat kérlek a csongor@csongorbokay.com címen jelezd! Utolsó módosítás: március 20.

Databases 1. Relációs algebra és nemrekurzív Datalog

Adatbázisok I. Jánosi-Rancz Katalin Tünde 327A 1-1

Lekérdezések az SQL-ben 2.rész

Adatbázisok-1 előadás Előadó: dr. Hajas Csilla

8. Gyakorlat SQL. DDL (Data Definition Language) adatdefiníciós nyelv utasításai:

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

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

Lekérdezések az SQL-ben 1.rész

Adatbázisrendszerek Tervezése Közgazdászoknak Munkapéldány

Lekérdezések az SQL-ben 1.rész

Relációs algebra 1.rész alapok

Adatbázisok I A relációs algebra

Adattípusok. Max. 2GByte

Adatbázisok I. Az SQL nyelv


Bevezetés az SQL-be. Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009

Adatbázisok I A relációs algebra

Adatbázisok* tulajdonságai

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

Adattípusok. Max. 2GByte

BEVEZETÉS Az objektum fogalma

Adatbázisok tavaszi félév Vizsgatételsor

Adatbázis-kezelés, információs-rendszerek

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

SQL bevezetés. Select-From-Where záradékok Több relációt tartalmazó lekérdezések Alkérdések

ABR ( Adatbázisrendszerek) 2. Előadás : Műveletek a relációs modellben

ADATBÁZISOK I. ELŐADÁS ÉS GYAKORLAT JEGYZET

4. Előadás Az SQL adatbázisnyelv

WHERE záradék (további lehetıségek) SQL specialitások, nem írhatók át relációs algebrába: LIKE. NULL értékek. Az ismeretlen (unknown) igazságérték

SQL. Táblák összekapcsolása lekérdezéskor Aliasok Allekérdezések Nézettáblák

GEIAL Kovács László. GEIAL Kovács László

ADATBÁZISOK gyakorlat: SQL 2. rész SELECT

SQL DDL-2 (aktív elemek) triggerek

Adatbázisok I. Definíció: DDL: - objektum létrehozás CREATE - objektum megszüntetés DROP - objektum módosítás ALTER

Gyakorlás: Hozzunk létre egy Alkalmazottak táblát AZO szám, Részleg szöveg, Munkakör szöveg és BelépésDátuma dátum típussal.

Adatbázisok. 9. gyakorlat SQL: SELECT október október 26. Adatbázisok 1 / 14

LOGISZTIKAI ADATBÁZIS RENDSZEREK UNIÓ, ALLEKÉRDEZÉSEK

Statisztikai szoftverek Molnár Gábor József

Adatbázisok elmélete 9. előadás

SELECT. SELECT(projekció) FROM(forrás) WHERE(szűrés) GROUPBY(csoportosítás) HAVING(csoportok szűrése) ORDERBY(rendezés)

SQL PÉLDATÁR. készült a PTE TTK Iskolai informatika III. kurzus teljesítésére

Adatbázisok elmélete

Adatbázis-lekérdezés. Az SQL nyelv. Makány György

Adatok szűrése, rendezése

ADATBÁZISKEZELÉS ADATBÁZIS

Több tábla összekapcsolásán alapuló lekérdezések. Copyright 2004, Oracle. All rights reserved.

Adatbázisok elmélete 6. előadás

Több tábla összekapcsolásán alapuló lekérdezések

A relációs algebra egy speciális algebra, amely néhány egyszerű, de hathatós. operandusok. Egy reláció megadható a nevével vagy közvetlenül, sorainak

MATEMATIKA 9. osztály Segédanyag 4 óra/hét

SQL feladatok megoldasa

Több táblára vonatkozó lekérdezések Relációs algebra és SQL SELECT

SELECT DISTINCT deptno FROM emp; (distinct) SELECT STATEMENT HASH UNIQUE TABLE ACCESS FULL EMP

Adatbázis tartalmának módosítása. SQL DML utasítások

Többtáblás lekérdezések megjelenítése

INFORMATIKAI ALAPISMERETEK

2. Hatványozás, gyökvonás

Tranzakciók az SQL-ben

BGF. 4. Mi tartozik az adatmodellek szerkezeti elemei

Adatbázisok elmélete 9. előadás

Óravázlat. az ECDL oktatócsomaghoz. 5. modul. Adatbáziskezelés. Krea Kft Budapest, Szőlő u 21. Tel/fax: / krea@krea.

SQL gyakorló feladatok. 6. Adatbázis gyakorlat április 5.

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

Lekérdezések az SQL SELECT utasítással

Adatbázis tartalmának módosítása

Datalog: logikai alapú lekérdezı nyelv

Az F# nyelv erőforrásanalízise

Adatbázis tartalmának módosítása (DML), az adatbázis-kezelı rendszerek felépítése,

Adatbázis használat I. 2. gyakorlat

Adatbázis használat I. 2. gyakorlat

Csima Judit szeptember 6.

Adatbázis rendszerek SQL nyomkövetés

A könyv tartalomjegyzéke

Bevezetés: az SQL-be

ABR ( Adatbázisrendszerek) 1. Előadás : Műveletek a relációs medellben

Adatbázisok elmélete 9. előadás

ADATBÁZIS HASZNÁLAT I. 4. gyakorlat

4. előadás. Relációalgebra és relációkalkulusok. Adatbázisrendszerek előadás október 10.

Lineáris Algebra gyakorlatok

Adatbázis-kezelés. Harmadik előadás

SQL haladó. Külső összekapcsolások, Csoportosítás/Összesítés, Beszúrás/Törlés/Módosítás, Táblák létrehozása/kulcs megszorítások

CAD-CAM

Adabáziskezelés gyakorlat SQL

INFORMATIKA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ

ADATBÁZISOK ELMÉLETE 5. ELŐADÁS 3/22. Az F formula: ahol A, B attribútumok, c érték (konstans), θ {<, >, =,,, } Példa:

JANUS PANNONIUS TUDOMÁNYEGYETEM. Schipp Ferenc ANALÍZIS I. Sorozatok és sorok

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria I.

Szeminárium-Rekurziók

INFORMATIKAI ALAPISMERETEK

Paraméteres-, összesítı- és módosító lekérdezések

Átírás:

Relációs algebrai lekérdezések átírása SQL SELECT-re (példák) Tankönyv: Ullman-Widom: Adatbázisrendszerek Alapvetés Második, átdolgozott kiadás, Panem, 2009 Áttekintés: Rel.algebra és SQL Példák: Tk.Termékek feladatai 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 1

(3EA) ismétlés: SELECT utasítás záradékai 2-3.EA: Egy táblára vonatkozó lekérdezések: HF volt: Oracle Példatár 1. és 2.fejezet feladatai Tk.6.1. és 6.4. Relációkra vonatkozó műveletek Teljes SELECT utasítás(a záradékok sorrendje adott) SELECT [DISTINCT] Lista1 -- 5 és 6 FROM R t -- 1 [WHERE Felt1 ] -- 2 [GROUP BY csopkif -- 3 [HAVING Felt2 ] ] -- 4 [ORDER BY Lista2] -- 7 τ Lista2 δ Π Lista1 σ Felt2 (γ csopkif,, AGGR(kif) onev σ Felt1 ( R ) ) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 2

(3EA) ismétlés: SFW alapértelmezése Tk.6.2.fej.: 3.EA: Több táblára vonatkozó lekérdezések: SELECT [DISTINCT] kif 1 [[AS] onév 1 ],, kif n [[AS] onév n ] FROM R 1 [t 1 ],, R n [t n ] WHERE feltétel (vagyis logikai kifejezés) Alapértelmezés (a műveletek szemantikája -- általában) A FROM záradékban levő relációkhoz tekintünk egy-egy sorváltozót, amelyek a megfelelő reláció minden sorát bejárják (beágyazott ciklusban) Minden egyes aktuális sorhoz kiértékeljük a WHERE záradékot (csak az igaz sorok kerülnek az eredménybe) A SELECT záradékban szereplő kifejezéseknek megfelelően képezzük a sorokat. Ha van DISTINCT, akkor az ismétlődő sorokat elhagyjuk. 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 3

(3EA) ismétlés: Halmazmőveletek az SQL-ben A relációs algebrai halmazműveletek: unió, különbség és metszet, ebből csak az unió és különbség alapművelet, az SQL-ben mindhárom használható, implementálva van A SELECT-FROM-WHERE utasítások általában multihalmaz szemantikát használnak, külön kell kérni DISTINCT tel ha halmazt szeretnénk kapni, viszont a halmazműveleteknél mégis a halmaz szemantika az érvényes, itt a multihalmaz szemantikát kell kérni: ALL Az SQL-ben a halmazműveleteket úgy vezették be, hogy azt mindig két lekérdezés között lehet értelmezni: (SFW-lekérdezés1) [ UNION [ALL] INTERSECT [ALL] {EXCEPT MINUS} [ALL] ] (SFW-lekérdezés2); 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 4

(4EA) ismétlés: Alkérdések A FROM listán és a WHERE záradékban (valamint a GROUP BY HAVING záradékában) zárójelezett SFW SELECT-FROM-WHERE utasításokat (alkérdéseket) is használhatunk. Szintaktikus alakja: zárójelbe kell tenni a lekérdezést (1) WHERE és HAVING záradékban: kifejezésekben, feltételekben (2) FROM listában: új listaelem (rel.név változó SQL-ben) (lekérdezés) [AS] sorváltozó Szemantikája: A FROM záradékban kiértékelődik az alkérdés, eredménye egy tábla (ún. inline nézettábla), utána a sorváltozót ugyanúgy használjuk, mint a közönséges adatbázisban tárolt relációk esetén. 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 5

(4EA) ismétlés: Alkérdések a WHERE-ben WHERE és HAVING záradékokban: (i) Az alkérdés eredménye egyetlen skalárérték, vagyis az alkérdés olyan, mint a konstans, ami egy új elemi kifejezésként tetszőleges kifejezésben használható. (ii) Skalár értékekből álló multihalmaz logikai kifejezésekben használható: [NOT] EXISTS (lekérdezés) kifejezés [NOT] IN (lekérdezés) kifejezés Θ [ANY ALL] (lekérdezés) (iii) Teljes, többdimenziós tábla a visszatérő érték: [NOT] EXISTS (lekérdezés) (kif 1, kif n ) [NOT] IN (lekérdezés) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 6

(4EA) ismétlés: Összekapcsolások az SQL-ben Az SQL:1999-es szabványban összekapcsolások számos változata megtalálható: Természetes összekapcsolás USING utasítással történő összekapcsolás Teljes (vagy két oldali) külső összekapcsolás Tetszőleges feltételen alapuló külső összekapcsolás Direktszorzat (kereszt-összekapcsolás). SELECT tábla1.oszlop, tábla2.oszlop FROM tábla1 [NATURAL JOIN tábla2] [JOIN tábla2 USING (oszlopnév)] [JOIN tábla2 ON (tábla1.oszlopnév = tábla2.oszlopnév)] [{LEFT RIGHT FULL} OUTER JOIN tábla2 ON (tábla1.oszlopnév = tábla2.oszlopnév)] [CROSS JOIN tábla2] 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 7

(ÚJ ANYAG) ÁTTEKINTÉS: PÉLDÁK Legyen adott az alábbi relációs sémák feletti relációk: 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 Tk.2.4.1.feladat (ezeket a kérdéseket konkrét táblák alapján természetes módon meg lehet válaszolni, majd felírjuk relációs algebrában) a) Melyek azok a PC modellek, amelyek sebessége legalább 3.00 b) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? c) Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát! stb!! i) Melyik gyártó gyártja a leggyorsabb számítógépet (laptopot vagy PC-t)?!! k) Melyek azok a gyártók, akik pontosan három típusú PC-t forgalmaznak? 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 8

Példák relációs algebrai lekérdezésekre ---1 Relációs algebra kifejezések ilyen bevezetése valóban használható a lekérdezések megadására? Tk.2.4.1.feladat Példa: Adottak az alábbi relációs sémák feletti relációk Termék (gyártó, modell, típus) PC (modell, sebesség, memória, merevlemez, cd, ár) Laptop (modell, sebesség, memória, merevlemez, képernyő, ár) Nyomtató (modell, színes, típus, ár) Jelölje: T(gy, m, t) PC(m, s, me, ml, ár) L(m, s, me, ml, k, ár) Ny(m, sz, t, ár) Megj.: a két típus attr.név nem ugyanazt fejezi ki és így T Ny természetes összekapcsolásnál zűr 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 9

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 10

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 11

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) vagy ekv. gy (T (σ ml 100 (L)) -- Nézzük meg a relációs algebrai kifejezőfával is! 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 12

Példák átírásokra ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) Π m SELECT modell FROM PC σ s >= 3.00 WHERE sebesség>=3.00; PC b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) SELECT gyarto FROM Termek T, Laptop L WHERE merevlemez>=100 AND T.modell=L.modell; Π gy σ ml >= 100 T.m=L.m 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 13 T X L

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) vagy ekv. gy (T (σ ml 100 (L)) c.) Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát típustól függetlenül! 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 14

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) vagy ekv. gy (T (σ ml 100 (L)) c.) Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát típustól függetlenül! három részből áll (Nyomtató táblánál vigyázni, uis term.összekapcsolásnál a típus attr. itt mást jelent!) -- segédváltozót vezetek be, legyen BT := m σ gy= B (T) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 15

Példák relációs algebrai lekérdezésekre ---2 a.) Melyek azok a PC modellek, amelyek sebessége legalább 3.00? m (σ s 3.00 (PC)) b.) Mely gyártók készítenek legalább száz gigabájt méretű merevlemezzel rendelkező laptopot? gy ( σ ml 100 (T L)) vagy ekv. gy (T (σ ml 100 (L)) c.) Adjuk meg a B gyártó által gyártott összes termék modellszámát és árát típustól függetlenül! három részből áll (Nyomtató táblánál vigyázni, uis term.összekapcsolásnál a típus attr. itt mást jelent!) -- segédváltozót vezetek be, legyen BT := m σ gy= B (T) m, ár (BT PC) m, ár (BT Laptop) m, ár (BT Ny) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 16

c.) select termek.modell, ar from termek join (select modell, ar from pc union select modell, ar from laptop union select modell, ar from nyomtato ) arlista on termek.modell=arlista.modell where gyarto='b'; 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 17

c.) select modell, ar from pc where modell in (select modell from termek where gyarto='b') union select modell, ar from laptop where modell in (select modell from termek where gyarto='b') union select modell, ar from nyomtato where modell in (select modell from termek where gyarto='b'); 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 18

with Btermek as c.) (select modell from termek where gyarto='b') select modell, ar from pc natural join Btermek union select modell, ar from laptop natural join Btermek union select modell, ar from nyomtato natural join Btermek; 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 19

Példák relációs algebrai lekérdezésekre ---3 d.) Adjuk meg valamennyi színes lézernyomtató modellszámát 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 20

Példák relációs algebrai lekérdezésekre ---3 d.) Adjuk meg valamennyi színes lézernyomtató modellszámát: m (σ sz= i (Ny)) m (σ t= lézer (Ny)) -- elvégezhető más módon is: m (σ sz= i t= lézer (Ny)) = = m (σ sz= i σ t= lézer (Ny)) = m (σ t= lézer σ sz= i (Ny)) e) Melyek azok a gyártók, amelyek laptopot árulnak, PC-t viszont nem? (ha laptop gyártó több pc-t gyárt, akkor az eredménytábla csökken, nem monoton művelet: R - S) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 21

Példák relációs algebrai lekérdezésekre ---3 d.) Adjuk meg valamennyi színes lézernyomtató modellszámát: m (σ sz= i (Ny)) m (σ t= lézer (Ny)) -- elvégezhető más módon is: m (σ sz= i t= lézer (Ny)) = = m (σ sz= i σ t= lézer (Ny)) = m (σ t= lézer σ sz= i (Ny)) e) Melyek azok a gyártók, amelyek laptopot árulnak, PC-t viszont nem? (ha laptop gyártó több pc-t gyárt, akkor az eredménytábla csökken, nem monoton művelet: R - S) gy (T L) gy (T PC)! f) Melyek azok a merevlemezméretek, amelyek legalább két PC-ben megtalálhatók? (táblát önmagával szorozzuk) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 22

Példák relációs algebrai lekérdezésekre ---3 d.) Adjuk meg valamennyi színes lézernyomtató modellszámát: m (σ sz= i (Ny)) m (σ t= lézer (Ny)) -- elvégezhető más módon is: m (σ sz= i t= lézer (Ny)) = = m (σ sz= i σ t= lézer (Ny)) = m (σ t= lézer σ sz= i (Ny)) e) Melyek azok a gyártók, amelyek laptopot árulnak, PC-t viszont nem? (ha laptop gyártó több pc-t gyárt, akkor az eredménytábla csökken, nem monoton művelet: R - S) gy (T L) gy (T PC)! f) Melyek azok a merevlemezméretek, amelyek legalább két PC-ben megtalálhatók? (táblát önmagával szorozzuk) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 23

Példák relációs algebrai lekérdezésekre ---3 d.) Adjuk meg valamennyi színes lézernyomtató modellszámát: m (σ sz= i (Ny)) m (σ t= lézer (Ny)) -- elvégezhető más módon is: m (σ sz= i t= lézer (Ny)) = = m (σ sz= i σ t= lézer (Ny)) = m (σ t= lézer σ sz= i (Ny)) e) Melyek azok a gyártók, amelyek laptopot árulnak, PC-t viszont nem? (ha laptop gyártó több pc-t gyárt, akkor az eredménytábla csökken, nem monoton művelet: R - S) gy (T L) gy (T PC)! f) Melyek azok a merevlemezméretek, amelyek legalább két PC-ben megtalálhatók? (táblát önmagával szorozzuk) -- segédváltozót vezetek be, legyen PC 1 := PC PC.ml (σ PC1.m PC.m PC 1.ml=PC.ml (PC 1 x PC)) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 24

Példák relációs algebrai lekérdezésekre ---4! g) 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. 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 25

Példák relációs algebrai lekérdezésekre ---4! g) 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. PC1.m, PC.m(σ PC1.m<PC.m PC 1.s=PC.s PC 1.me=PC.me (PC 1 x PC))!! h) Melyek azok a gyártók, amelyek gyártanak legalább két, egymástól különböző, legalább 2.80 gigahertzen működő számítógépet (PC-t vagy laptopot) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 26

Példák relációs algebrai lekérdezésekre ---4! g) 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. PC1.m, PC.m(σ PC1.m<PC.m PC 1.s=PC.s PC 1.me=PC.me (PC 1 x PC))!! h) Melyek azok a gyártók, amelyek gyártanak legalább két, egymástól különböző, legalább 2.80 gigahertzen működő számítógépet (PC-t vagy laptopot) -- segédváltozó: Gyors := m (σ s 2.8 (PC)) m (σ s 2.8 (L)) -- és ezzel legyen: T 1 := T Gyors és T 2 := T Gyors T1. gy( σ T1. gy= T2. gy T 1. m T 2. m (T 1 x T 2 )) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 27

Példák relációs algebrai lekérdezésekre ---5!! i) Melyik gyártó gyártja a leggyorsabb PC-t? ( elhagyás típusú lekérdezések, nincs nála gyorsabb PC) 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 28

Példák relációs algebrai lekérdezésekre ---5!! i) Melyik gyártó gyártja a leggyorsabb PC-t? (az elhagyás típusú lekérdezések, lásd maximum kif.) Kiválasztjuk azokat a PC-ket, amelyiknél van gyorsabb, ha ezt kivonjuk a PC-ékből megkapjuk a leggyorsabbat: EnnélVanNagyobb = PC.m (σ PC.s<PC1.s(PC x PC1)) Leggyorsabb: m (PC) EnnélVanNagyobb -- Ehhez rajzoljuk fel a kiértékelő fát is: 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 29

Példák relációs algebrai lekérdezésekre ---5!! i) Melyik gyártó gyártja a leggyorsabb számítógépet (PC-t vagy laptopot)? Lásd még az elhagyás típusú lekérdezéseket (köv.oldalon pl. maximum kifejezése) Kiválasztjuk azokat a PC-ket, amelyiknél van gyorsabb, ha ezt kivonjuk a PC-ékből megkapjuk a leggyorsabbat: EnnélVanNagyobb = PC.m (σ PC.s<PC1.s(PC x PC1)) Leggyorsabb: m (PC) EnnélVanNagyobb Ehhez rajzoljuk fel a kiértékelő fát is: (folyt.: PC helyett számítógép kell Π PC.m és a válaszban Π m σ PC.s<PC1.s is a gyártó kell ) PC PC PC 1 x 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 30

Példa: MAX elıállítása rel.algebrában Nézzük meg a maximum előállításának a kérdését! Legyen R(A,B). Feladat: Adjuk meg MAX(A) értékét! (Ez majd átvezet az új témára, aggregáló függvényekre, illetve csoportosításra). π A (R) π R1.A (σ R1.A<R.A (ρ R 1 ( R) R) ) Kiértékelő fa: Π A Π R1.A σ R1.A<R.A x R R 1 R 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 31

Példa: Rel.alg. kifejezés átírása SQL lőző oldal folyt.max előállítás átírása SQL-re: Kiértékelő fa szerinti átírás SQL-be: (SELECT A FROM R) EXCEPT (SELECT R1.A AS A FROM R R1, R R2 WHERE R1.A<R2.A); Nézzük meg korrelált (függő) alkérdéssel is: SELECT A FROM R MAXA WHERE NOT EXISTS (SELECT A FROM R WHERE A > MAXA.A); 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 32

Példák relációs algebrai lekérdezésekre ---6!! j) Melyik gyártó gyárt legalább három, különböző sebességű PC-t? mint a legalább kettő, csak ott 2x, itt 3x kell a táblát önmagával szorozni. Legyenek S, S 1, S 2 := T m,s (PC) S.gy (σ S1.gy=S.gy S 2.gy=S.gy S 1.s S.s S 2.s S.s S 1.s S 2.s (S x S 1 x S 2 ))!! k) Melyek azok a gyártók, amelyek pontosan három típusú PC-t forgalmaznak? legalább 3-ból - legalább 4-t kivonni Mire érdemes felhívni a figyelmet? Mi a leggyakrabban előforduló típus, amiből építkezek? lista (σ feltétel (táblák szorzata)) Ezt a komponenst támogatja legerősebben majd az SQL: SELECT s-lista FROM f-lista WHERE feltétel; 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 33

Kérdés/Válasz Köszönöm a figyelmet! Kérdés/Válasz? Tk.2.4.14. (54-57.o.) 2.4.1.feladata Termékek feladatai először relációs algebrában táblákkal gondolkodva felírva kifejezőfákkal, majd átírva SQL lekérdezésekre többféle megoldási lehetőséget vizsgáljunk meg, vessünk össze Feladat: http://people.inf.elte.hu/sila/eduab/ab1_gy1.pdf create table: http://people.inf.elte.hu/sila/eduab/create_termekek.txt Gyakorlás a 5EA-hoz: Több táblára (DEPT és EMP tábla) vonatkozó lekérdezésekre feladatok. Házi feladat: Oracle Példatár 3.fejezet feladatai, összekapcsolások és alkérdések használata, de a hierarchikus és rekurzív lekérdezések még nem: http://people.inf.elte.hu/sila/eduab/feladatok.pdf 05ea_Attekintes // Adatbázisok-1 elıadás // Ullman-Widom (Stanford) tananyaga alapján // Hajas Csilla (ELTE IK) 34