Giunzione in Algebra relazionale
Ciao a tutti,
sto svolgendo un esercizio di Basi di dati sull'algebra relazionale.
Lo schema relazionale è il seguente (le chiavi primarie sono sottolineate, le chiavi esterne sono date esplicitamente):
– City(id, name, countrycode*, district, population) countrycode FK(Country)
– Country(code, name, continent, capital*, population) capital FK(City)
– Countrylanguage(countrycode*, language, isofficial, percentage) countrycode FK(Country)
L'esercizio mi chiede di trovare in SQL il nome della nazione che ha come capitale Windhoek e restituire anche le lingue ufficiali con le relative percentuali parlate in quella nazione.
Qui non ho avuto problemi:
Poi chiede di esprimere tale query in algebra relazionale.
La mia soluzione inizia in questo modo: $π$ name, language, percentage($σ$capital = 'Windhoek' $∧$ countrycode = code (... ? ...))
La mia domanda è: dato che nella clausola FROM utilizzo 3 tabelle, come posso esprimere la giunzione in algebra relazionale?
sto svolgendo un esercizio di Basi di dati sull'algebra relazionale.
Lo schema relazionale è il seguente (le chiavi primarie sono sottolineate, le chiavi esterne sono date esplicitamente):
– City(id, name, countrycode*, district, population) countrycode FK(Country)
– Country(code, name, continent, capital*, population) capital FK(City)
– Countrylanguage(countrycode*, language, isofficial, percentage) countrycode FK(Country)
L'esercizio mi chiede di trovare in SQL il nome della nazione che ha come capitale Windhoek e restituire anche le lingue ufficiali con le relative percentuali parlate in quella nazione.
Qui non ho avuto problemi:
SELECT cou.name, cl.language, cl.percentage FROM City c, Country cou, Countrylanguage cl WHERE cou.capital = 'Windhoek' AND cl.countrycode = cou.code AND c.countrycode = cou.code;
Poi chiede di esprimere tale query in algebra relazionale.
La mia soluzione inizia in questo modo: $π$ name, language, percentage($σ$capital = 'Windhoek' $∧$ countrycode = code (... ? ...))
La mia domanda è: dato che nella clausola FROM utilizzo 3 tabelle, come posso esprimere la giunzione in algebra relazionale?
Risposte
Puoi semplicemente scrivere \( \text{City} \times \text{Country} \times \text{Countrylanguage} \) in quanto l'operazione è associativa.
Hai ragione, grazie!
