Domanda n°1
Io mi trovo il seguente schema relazionale dei dati:
RAPPRESENTANTI(IdRapp,Cognome,Nome,Indirizzo)
ORDINI(IdOrd,IdRapp,Data,Rappresentante:RAPPRESENTANTI)
DETTORDINI(Ordine:ORDINI,Prodotto:PRODOTTI,Quantità)
PRODOTTI(IdProd,Descrizione,PrezzoUnitario,Categoria)
A) ORDINI(idOrd, idRapp:RAPPRESENTANTI, Data) OPPURE ORDINI(IdOrd,Rappresentante:RAPPRESENTANTI, Data) [Si può chiamare come si vuole!]
Domanda 2°
Svolgimento
1) Al volo... le entità principali sono libri, editori, scrittori.
Libri è legata a editori dall'associazione edizioni (molti a molti, perciò è tradotta con una nuova relazione), che ha anche il campo anno. (semplice) e il campo multivalore collana, che è tradotto come da regola con una nuova relazione, come se si trattasse di un'associazione uno a molti. Libri e scrittori sono collegati dall'associazione autori... spero di non sbagliare...
2)
3) Mi trovo... collana non può essere un attributo multivalore perché la relazione contiene campi diversi... mi spieghi quell'intreccio tra gli attributi di editori..? Significa che nome e città sono insieme la chiave?
Esattamente! Sono gli identificatori dell'entità, in particolare nel modello relazionale vengono tradotti in chiave primaria!
3)
Domanda 3
A) La relazione ha i seguenti attributi:
X = {CodiceMateria, Materia, CorsoStudio, Semestre, CodDoc, NomeDoc, Dip}
e la SK di R è individuata da K = {CodiceMateria, CorsoStudio, CodDoc}.
Perché sia verificata la BCNF occorre che la relazione sia in prima forma normale (cosa che di per sé già è realizzata) e che, dato l'insieme degli attributi X sulla relazione R, per ogni dipendenza funzionale Y -> Z, Y contenga una chiave per R.
Di fatto c'è una dipendenza funzionale tra NomeDoc e Dip, ma NomeDoc non è chiave per R.
Pertanto gli schemi da costruire sarebbero:
- A(CodiceMateria, Materia)
- B(CodiceDocente, Docente)
- C(CodiceDocente, Dipartimento)
- D(CodiceMateria, CorsoStudio, Semestre)
Vi trovate d'accordo?