Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sbagliando simpara!
Andrea Turati
andrea.turati@cefriel.it
Introduzione
Questa presentazione include alcuni esercizi di progettazione svolti passo-passo La soluzione proposta soltanto una fra le possibili, che rispetta tre principi
Completezza Correttezza Semplicit
Si vuole rappresentare la base di dati di un archivio fotografico distribuito in varie sedi. Le fotografie sono catalogate in base ad un catalogo di soggetti possibili, ciascun soggetto ha una propria chiave. Le foto hanno una dimensione ed uno stato di conservazione; per le foto a colori, noto il tipo di stampa (chiaro o opaco). Le foto come detto sono reperibili in sedi diverse dellarchivio, di cui noto il responsabile, lindirizzo, il numero telefonico e lorario di apertura. Le foto possono descrivere personaggi, luoghi o oggetti. I personaggi hanno un nome ed un sesso; alcuni sono deceduti. Per i personaggi politici, si indica il partito di appartenenza e leventuale carica governativa ricoperta. Per gli artisti, si indica la loro attivit prevalente (pittura, scultura, ...). Quando le foto descrivono opere artistiche, noto il nome dellopera darte, lartista che lha realizzata, il luogo dove lopera risiede e lanno di realizzazione. Quando le foto descrivono luoghi o oggetti, noto nome e descrizione.
3
2007 Andrea Turati
Si vuole rappresentare la base di dati di un archivio fotografico distribuito in varie sedi. Introduzione Descrizione Le fotografie sono catalogate in base ad un catalogo di soggetti delle foto soggetto ha una propria chiave. Le foto hanno una possibili, ciascun dimensione ed uno stato di conservazione; per le foto a colori, noto Descrizione delle il tipo di stampa (chiaro o opaco). sedi degli archivi Le foto come detto sono reperibili in sedi diverse dellarchivio, di cui noto il responsabile, lindirizzo, il numero telefonico e lorario di apertura. Le foto possono descrivere personaggi, luoghi o oggetti. I personaggi hanno un nome ed un sesso; alcuni sono deceduti. Per i personaggi politici, si indica il partito di appartenenza e leventuale carica Descrizione governativa ricoperta. Per gli artisti, si indica la loro attivit dei soggetti prevalente (pittura, scultura, ...). Quando le foto descrivono opere delle foto artistiche, noto il nome dellopera darte, lartista che lha realizzata, il luogo dove lopera risiede e lanno di realizzazione. Quando le foto descrivono luoghi o oggetti, noto nome e descrizione.
4
2007 Andrea Turati
Progettazione Concettuale
Definizione dello scheletro
Da una prima lettura del testo individuiamo che le entit fondamentali sono
Le fotografie Gli archivi I soggetti
Queste entit sono in relazione fra loro ed facilmente individuabile il seguente scheletro di base
Le fotografie sono catalogate in base ad un catalogo di soggetti possibili
Archivio
Reperibilit
Foto
Rappresentazione
Soggetti
Progettazione concettuale
Analisi dello scheletro (1)
Archivio
Dal testo si ricavano facilmente le caratteristiche dellentit
Archivio
Orario
Le foto come detto sono reperibili in sedi diverse dellarchivio, di cui noto il responsabile, lindirizzo, il numero telefonico e lorario di apertura.
Progettazione concettuale
Analisi dello scheletro (2)
Fotografie
Dal testo si nota che esistono due tipologie di fotografie: quelle a colori e le altre (in bianco e nero). Si ha cio una gerarchia totale ed esclusiva.
Stato di conservazione Dimensione
Codice
Foto
Tipo Stampa
Foto BN
Foto Colori
Le foto hanno una dimensione ed uno stato di conservazione; per le foto a colori, noto il tipo di stampa (chiaro o opaco).
Progettazione concettuale
Analisi dello scheletro (3)
Soggetto
I personaggi hanno un nome ed un sesso; alcuni sono deceduti. Per i personaggi politici, si indica il partito di appartenenza e leventuale carica governativa ricoperta. Per gli artisti, si indica la loro attivit prevalente (pittura, scultura, ...).
Soggetto
(T,E)
Nome
Nome
Personaggio
Luogo
Descrizione Nome Descrizione Anno realizzazione Luogo Conservazione Artista
Oggetto
Partito Carica
Uomo Politico
Artista
Attivit Prevalente
Opera darte
Quando le foto descrivono opere artistiche, noto il nome dellopera darte, lartista che lha realizzata, il luogo dove lopera risiede e lanno di realizzazione.
Informatica Applicata per Ingegneria Biomedica Progettazione/1
Progettazione concettuale
Analisi dello scheletro (3)
Soggetto
NOTA1: fare bene attenzione a dove si mettono gli attributi
Fare attenzione allattributo Nome: ricordare che i figli ereditano dai padri
Personaggio Oggetto
Luogo
Descrizione
Partito Carica
Uomo Politico
Artista
Attivit Prevalente
Opera darte
Approfondimento: il testo non lo esplicitava ma, volendo, era possibile aggiungere alcune associazioni fra le tipologie di foto
Opera darte Artista che lha realizzata Opera darte Luogo di conservazione
Informatica Applicata per Ingegneria Biomedica Progettazione/1
Progettazione concettuale
Schema finale
Stato di conservazione Dimensione Codice Codice Responsabile
Indirizzo Telefono
Orario di apertura
Archivio
(1,N)
Orario
Orario di chiusura
Foto
Reperibilit
(1,1) (1,N)
Soggetto
(T,E)
Nome
Personaggio
Luogo
Descrizione
Oggetto
Partito Carica
Uomo Politico
Artista
Attivit Prevalente
Opera darte
Progettazione logica
Foto
Tipo Stampa
Dimensione Codice
Foto
(0,1)
Foto BN
Foto Colori
11
Progettazione logica
12
Progettazione logica
Nome
Personaggio
Luogo
Descrizione
Oggetto
Partito Carica
Uomo Politico
Artista
Attivit Prevalente
Opera darte
Nome Descrizione
Personaggio
(0,1) Attivit Prevalente
Oggetto
(0,1) (0,1)
Luogo
13
Progettazione logica
Passi 2 e 3: attributi e chiavi
Passo 2:
Lunico attributo da ristrutturare lorario dellarchivio: deve essere trasformato in due attributi semplici
Responsabile
Indirizzo Telefono
Orario di apertura
Indirizzo Responsabile
Telefono
Archivio
Orario
Orario di chiusura
Codice
Archivio
Orario di chiusura
Passo 3:
Tutte le entit hanno una chiave soddisfacente
14
Progettazione logica
Schema ristrutturato
Stato di conservazione Dimensione Codice Tipo di foto (0,1) Tipo Stampa (1,1) Indirizzo Responsabile Telefono Codice Orario di apertura (1,N)
Foto
(0,N) (0,N)
Reperibilit
Archivio
Orario di chiusura
(0,N)
Rapp. Luoghi
(1,N)
Luogo
Nome
Descrizione
Personaggio
Deceduto (0,1) (0,1) Attivit Prevalente
Oggetto
(0,1) (0,1)
Nome
15
Progettazione logica
Passi 4 e 5 Tabelle
Stato di conservazione Dimensione Codice Tipo di foto (0,1) Tipo Stampa (1,1)
Indirizzo Responsabile
Foto
Reperibilit
(1,N)
Archivio
Orario di chiusura
16
Progettazione logica
Passi 4 e 5 Tabelle
Stato di conservazione Dimensione Codice Tipo di foto (0,1) Tipo Stampa
Foto
(0,N)
Rapp. Pers.
(1,N)
Sesso
Personaggio
Deceduto (0,1) (0,1) Attivit Prevalente
17
Progettazione logica
Passi 4 e 5 Tabelle
Luogo (Nome, Descrizione) Oggetto (Nome, Descrizione, Anno, Luogo, Artista) Personaggio (Nome, Sesso, Deceduto, Partito, Carica, Attivit) RappLuoghi (Codice, Nome) RappOgg (Codice, Nome) RappPers (Codice, Nome)
18
Elemento principale dellattivit di una compagnia aerea sono i voli di linea. Ogni volo di linea caratterizzato da un numero, lorario di partenza ed arrivo, la durata. Si ha anche un elenco di tutti gli aeroporti toccati dalla compagnia; questi sono caratterizzati da un codice, un nome, dalla citt e dalla nazione. Per ogni volo si vuole tenere traccia degli aeroporti di partenza e arrivo. Per ogni volo si devono conoscere i viaggi effettuati, previsti o soppressi. In particolare, ogni viaggio identificato dalla data e da un attributo che indica se il viaggio effettuato, previsto o soppresso. I viaggi sono effettuati con velivoli identificati da n di matricola e caratterizzati da modello, marca e anno di acquisto. Ogni viaggio viene effettuato con uno e un solo velivolo. Ad ogni viaggio partecipa il personale viaggiante identificato dal n di matricola e caratterizzato da nome, cognome e data di nascita. Il personale viaggiante costituito da piloti e assistenti; dei piloti, si conosce il grado. Di ogni viaggio si conosce il comandante, il vicepilota e gli assistenti di viaggio (minimo uno).
19
2007 Andrea Turati
Elemento Voli principale dellattivit di una compagnia aerea sono i voli di linea. Ogni volo di linea caratterizzato da un numero, lorario di partenza ed arrivo, la durata. Aeroporti Si ha anche un elenco di tutti gli aeroporti toccati dalla compagnia; questi sono caratterizzati da un codice, un nome, dalla citt e dalla nazione. Per ogni volo si vuole tenere traccia degli aeroporti di partenza e Viaggi arrivo. Per ogni volo si devono conoscere i viaggi effettuati, previsti o soppressi. In particolare, ogni viaggio identificato dalla data e da un attributo che indica se il viaggio effettuato, previsto o soppresso. I viaggi sono effettuati con velivoli identificati da n di matricola e caratterizzati da modello, marca e anno di acquisto. Ogni viaggio Velivoli viene effettuato con uno e un solo velivolo. Ad ogni viaggio partecipa il personale viaggiante identificato dal n di matricola e caratterizzato da nome, cognome e data di nascita. Il Personale personale viaggiante costituito da piloti e assistenti; dei piloti, si conosce il grado. Di ogni viaggio si conosce il comandante, il vicepilota e gli assistenti di viaggio (minimo uno).
20
2007 Andrea Turati
Progettazione Concettuale
Individuazione delle entit principali Dallanalisi del testo si individuano le seguenti entit fondamentali
Volo, Aeroporto, Viaggio, Aeromobile, Persone
Volo
(2,2)
Partenze e Arrivi
Aereoporto
P/A
21
Progettazione Concettuale
Individuazione delle entit principali
Volo e Aeroporto (continua)
La soluzione precedente non corretta perch non possibile distinguere i due ruoli in modo corretto
Infatti mi dice che DEVO associare due aeroporti ad un volo, ma non mi vincola sul fatto che uno deve essere di partenza e uno di arrivo: potrei avere anche due arrivi (?) o due partenze (?). Per il modello anche queste possibilit sarebbero lecite.
Parte da Arriva a
(1,N)
Volo
(1,1) (1,N)
Aereoporto
Approfondimento: avremmo potuto aggiungere anche una terza relazione per indicare gli scali di ogni volo
22
Progettazione Concettuale
Individuazione delle entit principali
Volo, Viaggio e Aeromobile
Dal testo si capisce che il volo il servizio erogato dalla compagnia, mentre il viaggio la realizzazione di questo servizio
Attenzione: non devo pensare ad una gerarchia, stiamo parlando di concetti differenti. Servir invece una associazione
Elemento principale dellattivit di una compagnia aerea sono i voli di linea. Per ogni volo si devono conoscere i viaggi effettuati, previsti o soppressi. Ogni viaggio viene effettuato con uno e un solo velivolo.
LAeromobile non sar associato al Volo, ma al Viaggio (in quanto serve per la sua realizzazione) Si ottiene perci
(1,1)
Volo
(1,M)
Esecuzione
Viaggio
(1,1)
Utilizza
(0,N)
Aereomobile
Data
Stato
23
Progettazione Concettuale
Individuazione delle entit principali
Personale
Dal testo evidente la possibilit di creare una gerarchia fra le tipologie di personale Ad ogni viaggio partecipa il personale viaggiante identificato dal n di matricola e caratterizzato da nome, cognome e data di nascita.
Data Nascita
Personale
(T,E)
Pilota
Assistente
Grado
24
Progettazione Concettuale
Individuazione delle entit principali
Personale
Cognome Matricola Nome Data Nascita
Personale
(T,E)
Di ogni viaggio si conosce il comandante, il vicepilota e gli assistenti di viaggio (minimo uno).
Comando
(0,N)
Pilota
(0,N) Grado
Assistente
(0,N)
Vice
(1,1) (1,1)
Assiste
Viaggio
(1,N)
Progettazione Concettuale
Schema Finale
Numero OraP OraA Durata (1,M) Data (1,1) (1,1) (1,N) Codice Nome
Volo
(1,1)
Parte da Arriva a
Stato (1,1)
Aereoporto
(1,N)
Citt Nazione
Esecuzione
Viaggio
Utilizza
(0,N)
Aereo mobile
(1,N)
(1,1)
(1,1) Cognome
Nome
Data Nadcita
Assiste
Comando
Vice
Matricola Grado
Personale
(T,E)
(0,N)
(0,N)
Pilota
(0,N)
Assistente
2007 Andrea Turati
26
Progettazione Logica
Passo 3 Chiavi
Lentit Aeroporto presenta due possibili chiavi (Codice e Nome)
si sceglie la chiave Codice
27
Progettazione Logica
Schema Ristrutturato
Numero OraP OraA Durata (1,M) Data (1,1) (1,1) Codice Nome
Volo
(1,1)
Parte da Arriva a
Stato (1,1)
(1,N)
Aereoporto
(1,N)
Citt Nazione
Esecuzione
Viaggio
Utilizza
(0,N)
Aereo mobile
Data Nascita Grado
(1,N)
(1,1)
(1,1)
Assiste
Comando
(0,N)
Vice
(0,N)
Pilota
Nome Cognome Matricola (0,N) Data Nascita
Assistente
2007 Andrea Turati
28
Progettazione Logica
Passi 4 e 5 Tabelle
Assistente (Matricola, Cognome, Nome, Nascita)
Assiste (Data, VoloID, Matricola) Pilota (Matricola, Cognome, Nome, Nascita, Grado)
Aeromobile (Matricola, Marca, Modello, AnnoAcquisto) Volo (Numero, OraP, OraA, Durata, ParteDa, ArrivaA)
29
Interrogazioni
Assistente (Matricola, Cognome, Nome, Nascita) Assiste (Data, VoloID, Matricola) Pilota (Matricola, Cognome, Nome, Nascita, Grado) Viaggio (Data, VoloID, Stato, MatricolaAereo,Comandante, ViceComandante) Aeromobile (Matricola, Marca, Modello, AnnoAcquisto) Volo (Numero, OraP, OraA, Durata, ParteDa, ArrivaA) Aeroporto (Codice, Nome, Citt, Nazione) Quanti voli sono previsti in partenza per ogni nazione Quali modelli di aeromobili sono stati pilotati da Andrea Congedo A quanti viaggi ha preso parte come assistente Stefano Seveso Quali aeromobili sono utilizzati per voli interni Quanti viaggi svolti nel 2000 sono partiti da aeroporti italiani
1. 2. 3. 4. 5.
30
Interrogazioni/soluz.
Quanti voli sono previsti in partenza per ogni nazione SELECT COUNT(DISTINCT Volo.Numero), Aeroporto.Nazione FROM Volo JOIN Aeroporto ON Aeroporto.Codice = Volo.ParteDa GROUP BY Aeroporto.Nazione;
1.
Quali modelli di aeromobili sono stati pilotati da Andrea Turati SELECT DISTINCT(Aeromobile.Modello) FROM (Aeromobile JOIN Viaggio ON MatricolaAereo = Matricola) JOIN Pilota ON (Viaggio.Comandante = Pilota.Matricola OR Viaggio.ViceComandante = Pilota.Matricola) WHERE Pilota.Nome = Andrea AND Pilota.Cognome = Turati;
2.
A quanti viaggi ha preso parte come assistente Francesco Corcoglioniti SELECT COUNT(*) FROM (Viaggio JOIN Assiste ON Viaggio.Data = Assiste.Data AND Viaggio.VoloID = Assiste.VoloID) JOIN Assistente ON Assiste.Matricola = Assistent.Matricola WHERE Assistente.Nome = Francesco AND Assistente.Cognome = Corcoglioniti;
3.
Informatica Applicata per Ingegneria Biomedica Progettazione/1
31
Interrogazioni/soluz.
4.
SELECT COUNT(DISTINCT Volo.Numero), A.Nazione FROM (Aeroporto AS A JOIN Volo ON Volo.ArrivaA = A.Codice) JOIN Aeroporto AS P ON Volo.ParteDa = P.Codice WHERE P.Nazione = A.Nazione AND ParteDa <> ArrivaA GROUP BY A.Nazione;
5.
SELECT COUNT(*) FROM (Viaggio JOIN Volo ON Viaggio.VoloID = Volo.Numero) JOIN Aeroporto AS P ON Volo.ParteDa = P.Codice WHERE P.Nazione = Italia AND YEAR(Viaggio.Data) = 2000;
32