Esonero del 19 maggio 2018 - Prova di progettazione Specifiche

Pagina creata da Samuele De Simone
 
CONTINUA A LEGGERE
Esonero del 19 maggio 2018 - Prova di progettazione Specifiche
Esonero del 19 maggio 2018 – Prova di progettazione
Specifiche
Un appassionato di serie TV vuole creare un database per rappresentare le principali informazioni su di esse:
     I produttori (cioè le società di produzione), con un nome e una nazionalità
     Gli attori, con un cognome, un nome, una nazionalità, e un eventuale indirizzo (URL) del sito web ufficiale
     Le serie TV, che hanno un nome e un produttore. A una serie TV partecipano diversi personaggi, ognuno
        denotato da un nome e un eventuale cognome; ogni personaggio o è interpretato da un attore (che si vuole
        conoscere), oppure è realizzato mediante effetti speciali (che si vogliono descrivere).
     Gli episodi, ognuno con un numero di stagione, un numero di episodio (nell’ambito della stagione), un titolo, e la
        data di uscita. Per ogni episodio si vuole conoscere quali dei personaggi della serie vi fanno apparizione.

Presentare un’istanza di esempio della base di dati, contenente le seguenti informazioni, completate liberamente ove non
specificate:
     Black Hole Theory, prodotta da 40Wolf. I personaggi sono Sheldon Mini (interpretato da John Smith), Pound
         (Mary Cook) e Lion Brown (Shaune Prince). Episodi:
             o S1E1: “Una bella frittata”, con tutti e tre i personaggi
             o S1E2: “Un buon polpettone”, con Sheldon e Pound
             o S1E3: “Un ottimo purè”, con Sheldon e Lion
     Supertruck, prodotta da 40Wolf. I personaggi sono Micheal Day (John Smith), Bonnie Ocean (Sheila Morrison) e
         KISS (è un camion dotato di intelligenza artificiale). Episodi:
             o S1E1: “Un brutto incidente”, con Micheal Day e KISS
             o S1E2: “Una fantastica rivincita”, con tutti e tre i personaggi
1. Progettazione concettuale
Ecco un possibile schema ER del dominio.

Un possibile identificatore di Episodio è la terna (numero dell’episodio, numero della stagione, serie
TV). Si tratta di un identificatore lungo e complesso: pertanto in fase di progettazione logica sarà
sostituito con un più semplice identificatore surrogato.
Si osservi che sarebbe stato errato definire Attore quale entità figlia di Personaggio, in quanto un attore
non è un personaggio (lo interpreta, non lo è). D’altra parte, un attore può interpretare molteplici
personaggi.
Ecco un esempio delle domande che ci consentono di definire le cardinalità. Prendiamo in
considerazione la relazione Composizione tra Episodio e Serie TV:
      Lato Serie TV: Data una Serie TV, da quanti Episodi è Composta? Minimo 1, massimo tanti →
       (1, N)
      Lato Episodio: Dato un Episodio, a quante Serie TV è legato dalla relazione Composizione?
       Minimo 1, massimo 1 (un episodio fa sempre riferimento a un’unica serie TV) → (1, 1)
2. Progettazione logica
2.1 Ristrutturazione del diagramma Entità-Relazione
Eliminazione delle generalizzazioni: è presente una generalizzazione. Siccome le entità figlie hanno
poche proprietà specifiche, scegliamo di accorparle all’entità padre (metodo I). Aggiungiamo pertanto
all’entità padre un attributo Fisico/Virtuale (in quanto la generalizzazione è esclusiva), e rendiamo
opzionali l’attributo Descr_effetto (cardinalità (0,1)) e la partecipazione alla relazione Interpretazione
(cardinalità (0,1)).
Eliminazione degli attributi multivalore: non sono presenti attributi multivalore
Scelta degli identificatori principali: per semplicità, scegliamo di introdurre un identificatore
surrogato id in tutte le entità (tranne Produttore, che ha un identificatore “naturale” abbastanza
semplice).
2.2 Traduzione verso il modello relazionale
La relazione molti-a-molti Apparizione si trasforma in una tabella di associazione.
Tutte le altre relazioni sono di tipo uno-a-molti, e danno luogo a una chiave esterna nella tabella che
partecipa alla relazione con cardinalità massima 1.

Si osservi che le frecce, che denotano i vincoli di integrità referenziale, partono sempre dall’attributo
che costituisce la chiave esterna.
3. Istanza
L’istanza sarà costituita da tabelle che rispecchiano lo schema logico appena progettato, e
contengono i dati di esempio.
Produttori

Nome                       Nazionalità
40Wolf                     USA

Serie TV

id            Nome                        NomeProduttore
S1            Black Hole Theory           40Wolf
S2            Supertruck                  40Wolf

Episodi

id       idSerie       Numero      Stagione     Titolo                     Data
E1       S1            1           1            Una bella frittata         2008-02-02
E2       S1            2           1            Un buon polpettone         2008-02-09
E3       S1            3           1            Un ottimo purè             2008-02-16
E4       S2            1           1            Un brutto incidente        1983-10-18
E5       S2            2           1            Una fantastica rivincita   1983-10-25

Attori

id            Cognome            Nome      Nazionalita       URL
A1            Smith              John      USA               www.johnsmith.com
A2            Cook               Mary      Canada            NULL
A3            Prince             Shaune    USA               NULL
A4            Morrison           Sheila    UK                www.gosheilago.co.uk
Personaggi

id    Cognome        Nome             idSerie FisicoVirtuale idAttore DescrEffetto
P1    Mini           Sheldon          S1     F               A1        NULL
P2    NULL           Pound            S1     F               A2        NULL
P3    Brown          Lion             S1     F               A3        NULL
P4    Day            Micheal          S2     F               A1        NULL
P5    Ocean          Bonnie           S2     F               A4        NULL
P6    NULL           KISS             S2     V               NULL      Camion dotato di IA

Apparizioni

idEpisodio            idPersonaggio
E1                    P1
E1                    P2
E1                    P3
E2                    P1
E2                    P2
E3                    P1
E3                    P3
E4                    P4
E4                    P6
E5                    P4
E5                    P5
E5                    P6

Apparizioni errata (Esempio di errore grave: un attributo non può assumere molteplici valori - e
sarebbe impossibile eseguire i join)

idEpisodio            idPersonaggio
E1                    P1,P2,P3
E2                    P1,P2
E3                    P1,P3
E4                    P4,P6
E5                    P4,P5,P6
Puoi anche leggere