Domanda n°1
Codice
select r.nome as Ristorante, r.indirizzo as Indirizzo from ristorante r where r.zona = ANY(select z.zona from ristorante r join zone z on (r.zona = z.zona) where r.nome = 'Da Piero');
No, r.zona = 'C'. Se vai a vedere all'interno della relazione Ristorante, all'interno dei valori dell'attributo Zona non ci trovi 'Centro', ma 'C' oppure 'O' e via dicendo.
L'operatore =ANY che è l'equivalente di IN(). In ogni caso non è necessario in questo caso!
Domanda n°2
1) Schema concettuale
2) Scusami, ci sono alcune cose che non mi sono chiare:
- Secondo me un impiegato può anche partecipare a nessun progetto e a un progetto possono partecipare anche 0 impiegati se consideriamo che il progetto è stato appena definito... Non credi sia più corretto scrivere come cardinalità (0,N)<-->(0,N)?
- Secondo me un impiegato può anche non dirigere nessun dipartimento e un dipartimento può essere diretto anche da nessun impiegato se consideriamo che il dipartimento è stato appena costruito. Non credi sia più corretto scrivere come cardinalità (0,1)<-->(0,1)?
Per queste prime due domande comunque credo sia più un fatto soggettivo, cioè ognuno la vede in modo diverso ma queste cardinalità sembrano più logiche.
3) Perché hai messo quegli attributi sull'associazione AFFERENZA?
-
Basi di dati - Esercitazione
-
Esercitazione Basi di dati
-
Basi di dati - Esercitazione
-
Basi di dati - Esercitazione