DBS - Individuální úkol č. 3 - lichý týden

Uvažujme evidenci letů z minulého úkolu. Pro připomenutí, zde je ER model jednoho z možných řešení.

Tento diagram lze jednoduše transformovat do relačního schématu (viz poslední přednáška).

Letadlo (ID_LETADLO, Oznaceni, kapacita)
Jazyky (ID_JAZ, NazevJazyka)
Personal (ID_PERS, Jmeno)
Letuska (ID_PERS) – je to divné, ale je potřeba je nějak určit
Pilot (ID_PERS, PilotniPrukaz)
UmiJazyk (ID_PERS, ID_JAZ)
Destinace (ID_DEST, JmenoLetiste)
Opatreni (ID_OPATRENI, Popis)
VyzadujeOpatreni (ID_DEST, ID_OPATRENI)
Let (ID_LET, DatumCasOdletu, DatumCasPriletu, RezervaceUkoncena, ID_LETADLO, ID_DEST_Z, ID_DEST_DO) – :!: pozor na join!
Pasazer (ID_PAS, Jmeno)
Cestuje (ID_PAS, ID_LET)
NaPalube (ID_PERS, ID_LET)

IO:

Letuska [ID_PERS] ⊆ Personal [ID_PERS]
Pilot [ID_PERS] ⊆ Personal [ID_PERS]
UmiJazyk [ID_PERS] ⊆ Letuska [ID_PERS]
UmiJazyk [ID_JAZ] ⊆ Jazyky [ID_JAZ]
VyzadujeOpatreni [ID_DEST] ⊆ Destinace[ID_DEST]
VyzadujeOpatreni [ID_OPATRENI] ⊆ Opatreni[ID_OPATRENI]
Let [ID_LETADLO] ⊆ Letadlo[ID_LETADLO]
Let [ID_DEST_Z] ⊆ Destinace[ID_DESTINACE]
Let [ID_DEST_DO] ⊆ Destinace[ID_DESTINACE]
Cestuje [ID_PAS] ⊆ Pasazer[ID_PAS]
Cestuje [ID_LET] ⊆ Let[ID_LET]
NaPalube [ID_PERS] ⊆ Personal[ID_PERS]
NaPalube [ID_LET] ⊆ Let[ID_LET]

Zadání

Opět považujte všechny lety za proběhlé, takže pokud je napsáno “letěli”, nerozlišujte, zda-li je let datován na budoucí datum.

Vyjádřete pomocí relační algebry následující dotazy:

  1. Vypište pasažéry (aspoň jména), kteří letěli do destinace, kam je “Zakázán dovoz hovězího”.
  2. Vypište letušky (aspoň jména), které sloužily s pilotem “Jan Novák”.
  3. Vypište jména letišť, kam letěla už všechna letadla (ty stroje).

Vyjádřete pomocí SQL následující dotazy:

  1. Vypište seznam (aspoň jména) všech lidí a u každého z nich počet letů do New Yorku. Lidé, kteří tam nebyli, budou mít 0.
  2. Vypište seznam lidí (aspoň jména), kteří neletěli Airbusem (žádným) - název letadla hledejte v atributu Oznaceni, ale pozor, je to řetězec, který bude třeba “Airbus A320”, takže je potřeba testovat pomocí LIKE.
  3. Vypište letadla (všechny atributy), která byla použita aspoň 100x.