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

   
A 3-4. gyakorlatokon 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,
valamint a gépnél is kipróbálni az Oracle 11g adatbázis környezetben.
   
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.) Házi feladatok: Oracle példatár Feladatok.pdf
HF a 4.gyakorlathoz:
- 3.fejezet: Táblák összekapcsolása (3.1-3.4) 
     
Vissza az AB1 gyakorlat oldalára             Vissza a Kezdőlapra