4.gyak. Többrelációs lekérdezések kifejezése a relációs algebrában
és SQL SELECT-tel valamint ekvivalens átírások egymásba

      
Feladatok: A 3-4. gyakorlaton az 1-2. gyakorlatok feladatait oldjuk meg SQL-ben,
célszerű ezeket az SQL megoldásokat táblánál is felírni és megbeszélni,  majd gépnél
is kipróbálni az Oracle adatbázis környezetben, lásd Oracle adatbázis elérhetősége 
   
Emlékeztető az előző gépes gyakorlatról, csatlakozás az Oracle adatbázishoz: 
Gépes gyakorlathoz: Oracle adatbázis elérhetősége
   
A lekérdezési feldatatok megoldásához előbb az alaptáblákat kell létrehoznunk
(aki volt az előző gyakorlaton, azoknak megvan, aki nem volt, most hozza létre)
1.) Oracle segédanyag példáinak kipróbálása:
- Ehhez előkészítés: HR séma tábláihoz készítsük el a szinonimákat create_synonym
   
2.) Az órai gyakorlatok példái:
- Dolgozo és Osztaly táblák és kérdések: table_dolgozo.txt
   és a táblák létrehozása (scriptként futtatva le) create_dolgozo
- Termékek, lásd table_termekek.txt és a táblák létrehozása:  create_termekek
       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)
- Csatahajók, lásd table_csatahajok.txt és a táblák létrehozása create_csatahajok
       Hajóosztályok(osztály, típus, ország, ágyúkSzáma, kaliber, vízkiszorítás)
       Hajók(név, osztály, felavatva)
       Csaták(név, dátum)
       Kimenetelek(hajó, csata, eredmény)
   
3.) A példatár feladatai önálló gyakorlásra:
-- 
Lásd Feladatok.pdf (3.1-3.4.fej. feladatai) és a táblák létrehozása  cr_dept_emp
    

Többrelációs lekérdezések: Összekapcsolások és halmazműveletek
   
1.3. FROM záradék: Összekapcsolások az SQL-ben

   
1.3.1. Descartes szorzat 
   
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM   table [, table, ...]
[WHERE condition(s)]
[ORDER BY column(s) [DESC]];
   
SELECT table1.column, table2.column
FROM    table1
[CROSS JOIN table2];
   
1.3.2. JOIN - Természetes összekapcsolás
   
SELECT table1.column, table2.column
FROM    table1
[NATURAL JOIN table2] |
[JOIN table2 USING (column_name)] |
[JOIN table2
  ON (table1.column_name = table2.column_name)]
   
1.3.3. Theta összekapcsolás (nem-ekvijoin)
   
Segédanyag: >> FROM_lista példáit próbáljuk ki!
   

1.4. Alkérdések az SQL-ben I.
   
Összekapcsolások kifejezése WHERE t IN (SFW) alkérdéssel
Fenti példákat másképpen is megoldva...
   
Segédanyag: >> Alkérdések I.  példáit próbáljuk ki!
    

1.5. Halmazműveletek: egyesítés, különbség, metszet
 
rövidítés: SFW = SELECT ... FROM ... WHERE ..
- halmazként értelmezve: duplikációk nélkül
- ALL: minden duplikációval, multihalmazként
 
SFW
  {UNION | MINUS | INTERSECT [ALL] }
SFW
     
Segédanyag: >> Halmazműveletek példáit próbáljuk ki!
 

Fejezd ki a lekérdezéseket SQL SELECT-tel és relációs algebrában,
a relációs algebrai kidefejézes átírása SQL SELECT-re, és vissza.
2.) A gyakorlatok feladatai itt: table_dolgozo.txt
Feladatok a 4.gyakorlatra
- Kik azok a dolgozók, akiknek a főnöke KING? (CROSS JOIN)
- Kik azok a dolgozók, akik osztályának telephelye BOSTON vagy CHICAGO?
  (Keressünk több megoldást: JOIN, NATURAL JOIN, alkérdéssel is fejezzük ki!)
- Kik azok a dolgozók, akik osztályának telephelye nem BOSTON vagy CHICAGO? (MINUS)
- Adjuk meg azoknak a nevét, akiknek a fizetése > 2000 vagy a 30-as osztályon dolgoznak (UNION)
   
Végül nézzük meg az 1-2. gyakorlat  Termékek és Csatahajós példáit is!
       

3.) További gyakorló feladatok: Oracle példatár Feladatok.pdf
a 4.gyakorlathoz: 3.fejezet: Táblák összekapcsolása (3.1-3.4)
Az önálló gyakorlást nem-kötelező beadandóként egy "<ehakod>_4gy.txt" nevű  
szöveges fájlban legkésőbb a köv.gyakorlat előtt, kedd 10h-ig küldjék el emailben.
A beadandó célja az önálló gyakorlás, lásd Gyakorlati követelmények #Beadandó.  
           
Vissza az AB1 gyakorlat oldalára             Vissza a Kezdőlapra