Esonero del 19 maggio 2018 - Prova di progettazione Specifiche
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
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