Comments
Description
Transcript
Basi di Dati
La costruzione di una base di dati 2 Analisi dei requisiti Basi di Dati - III Progettazione Corso di Laurea in Informatica Progettazione concettuale, logica e fisica dei dati Anno Accademico 2013/2014 Progettazione delle applicazioni Realizzazione Paolo Baldan [email protected] Noi spesso considereremo l’analisi dei requisiti una parte della progettazione http://www.math.unipd.it/~baldan 3. Modellazione Concettuale: Esercizi concettuale Corso di Basi di Dati Monday, April 14, 2014 Progettazione concettuale di schemi 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 3 Esercizio: Segreteria studenti 4 Segreteria che si occupa di pratiche relative agli studenti del Corso di Laurea Identificare le classi in Informatica, e in particolare delle richieste di trasferimento da altri corsi di Laurea. Identificare le associazioni e le loro proprietà strutturali Una domanda di trasferimento viene trasmessa al CCS e determina l’istruzione Identificare gli attributi delle classi e associazioni e i loro tipi di una pratica di trasferimento. La pratica viene infine evasa da una delibera Vincoli di integrità (chiavi, not null, ...) che indica quali esami sono stati convalidati. Un esame di un corso esterno viene convalidato come esame interno, e la convalida di un esame può essere Individuare le sottoclassi piena o previo colloquio integrativo. Individuare le generalizzazioni 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati Esercizio: Segreteria studenti (cont.) 5 Esercizio: Segreteria studenti (cont.) 6 Di una domanda di trasferimento interessano il numero di protocollo (che la Di un corso esterno interessano nome, numero di crediti, Università, Facoltà, identifica), il nome e recapito dello studente che la presenta, Università, Corso di laurea (non necessariamente quelli di provenienza dello studente), Facoltà, Corso di laurea di provenienza, data di presentazione, elenco dei corsi Anno Accademico di superamento. sostenuti. Di un corso interno interessano nome e numero di crediti. Di una pratica di trasferimento interessano la domanda di trasferimento a cui Di una convalida d’esame interessa corso interno, corso esterno e se l’esame e` si riferisce, il numero progressivo che la identifica, annotazioni eventuali, la convalidato in modo pieno o previo colloquio. delibera relativa. Per alcuni corsi esterni esistono convalide tipiche, che indicano corso interno Di una delibera interessano la pratica relativa, gli esami convalidati, data e corrispondente e modalità di convalida. numero del verbale del CCS (assenti quando la delibera è in stato di bozza) 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 Prima versione dello schema 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 7 Corso di Basi di Dati Seconda versione: sottoclassi e studenti 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 8 Corso di Basi di Dati Tipi degli attributi 9 Generalizzazione e dipendenze funzionali PresentataDa DichiaratoIn Studenti Causa Domande Trasferimento 10 Pratiche Trasferimento EvasaDa ApprovataIn Convalide Esami Delibere ConsideratoIn Corsi Corsi Esterni SvoltoIn Convalida BozzeDi Delibera Delibere Approvate Corsi interni ConvalideTipiche PrevioColloquio CorsiDiLaurea 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 Schema finale 11 Esercizio: File system 12 PresentataDa DichiaratoIn DomandeTrasferimento NumProtocollo: int <<PK>> DataPresentazione: date Causa Studenti Nome: Recapito: UniversitàDiProvenienza: FacoltàDiProvenienza: CorsoDiLaureaDiProvenienza: Si vogliono trattare le informazioni relative ai file contenuti in un file system. string <<PK>> string <<PK>> string string string I file possono essere file ordinari, directory o file speciali. Ogni file ha un PraticheTrasferimento Annotazioni: string NumeroProgressivo: int <<PK>> ApprovataIn identificatore unico, che è un intero, ha un padre, che è una directory, ed ha un BozzeDiDelibere EvasaDa Delibere Annotazioni: string nome, che lo identifica fra tutti i file con lo stesso padre; la directory radice DelibereApprovate DataVerbale: date <<PK>> NumVerbale: int <<PK>> ha se stessa come padre, ed è identificata dal numero 0. ConvalideEsami PrevioColloquio: bool <<invariant>> { <<PK>> (self.ConsideratoIn, self.ApprovataIn) AND self.ConsideratoIn ! self.ApprovataIn.EvasaDa.Causa.DichiaratoIn } Ogni file ha un utente che ne è proprietario, ed un gruppo di appartenenza. ConsideratoIn Corsi Nome: string <<PK>> Un utente ha un nome, che lo identifica, e può appartenere a più gruppi ed è Convalida CorsiEsterni AnnoAccademico: int <<Invariant>> <<PK>> (self.Nome, self.AnnoAccademico, self.SvoltoIn) SvoltoIn proprietario di più file. Ad ogni gruppo, identificato da un nome, appartengono CorsiInterni Crediti: int più utenti e più file. Dei file di testo interessa anche conoscere il numero di ConvalideTipiche PrevioColloquio: bool parole che vi appaiono. CorsiDiLaurea Nome: string <<PK>> Università: string <<PK>> Facoltà: string 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati Integrazione di schemi 13 Accade che (per grandi BD) si costruiscano sottoschemi settoriali che vanno Integrazione di schemi: Esempio 14 In una biblioteca ... poi integrati Soluzione dei conflitti (nome, tipo, proprietà strutturali, vincoli di integrità) Editori Nome: string Indirizzo: string Fusione degli schemi Pubblica Titolo: Libri string Tratta Argomenti Nome: string A Analisi delle proprietà interschema Documenti Titolo: string Editore: string Codice: string 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 Tratta Descrittori Nome: string Codice: string 3. Modellazione Concettuale: Esercizi B Corso di Basi di Dati Monday, April 14, 2014 Integrazione di schemi: Esempio 15 Integrazione di schemi: Esempio Uniformare gli schemi Uniformare gli schemi - nello schema B editore diventa una entità - nello schema B editore diventa una entità Nome: Editori string Pubblica Documenti Titolo: string Codice: string Tratta Descrittori Nome: string Codice: string Nome: Editori string Pubblica Documenti Titolo: string Codice: string 15 Tratta Descrittori Nome: string Codice: string TrattaL Argomenti Nome: string Codice: string Fondere gli schemi Editori Nome: string Indirizzo: string PubblicaL Titolo: PubblicaD 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Libri string Documenti Nome: string Codice: string TrattaD Corso di Basi di Dati Integrazione di schemi: Esempio 16 Proprietà interschema Esercizio: Campionato di calcio 17 Si vogliono gestire informazioni relative ad un campionato di calcio. Sia i giocatori che gli arbitri hanno un nome, una nazionalità ed un'età. Editori Nome: string Indirizzo: string Pubblica Documenti Titolo: string Codice: string Tratta Argomenti Nome: string Codice: string Le squadre sono caratterizzate da: nome, città in cui risiede il club, allenatore e giocatori che le compongono. Libri Di ogni partita interessa la data e la città in cui si svolge (o si svolgerà), le due ... squadre, l’arbitro e il risultato (se la partita si è già svolta). Di una città interessa il nome e la regione di appartenenza. 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 3. Modellazione Concettuale: Esercizi Corso di Basi di Dati Monday, April 14, 2014 Esercizio: Fumetti 18 Esercizio: Regate 19 Una rivista periodica di fumetti vuole memorizzare informazioni relative a Si vogliono gestire informazioni relative alle regate. Di una regata interessa il tutte le storie che ha pubblicato nel passato, ed ai relativi personaggi. Di una nome, la data e la città in cui si svolge e le barche partecipanti. Di una barca si storia interessa il titolo, che la identifica, ed interessano le informazioni vuole conoscere il nome della barca, il tipo di imbarcazione, il numero dei remi, relative alle puntate in cui è stata divisa: per ogni puntata interessa il numero l’equipaggio. Dei rematori interessa il nome e cognome, l’indirizzo, la remiera di di pagine, il numero d’ordine all’interno della storia (prima, seconda, . . . ) ed il appartenenza, il luogo di nascita. Per le città interessa la provincia e il numero numero della rivista su cui è stata pubblicata. I personaggi si dividono in di abitanti. Per ogni regata si vuol inoltre conoscere la barca vincitrice e il principali e secondari. Per tutti i personaggi interessa il nome, che li identifica. tempo impiegato per la regata. Per i personaggi secondari interessa ricordare le storie in cui sono apparsi, mentre per quelli principali si vogliono memorizzare precisamente le puntate di apparizione. Se due personaggi sono parenti, se ne memorizza la relazione di parentela (ovvero, il fatto che sono parenti ed anche il grado di parentela). 3. Modellazione Concettuale: Esercizi Monday, April 14, 2014 Corso di Basi di Dati Si dia uno schema grafico a oggetti della base di dati e si trasformi nello schema relazionale mostrandone la rappresentazione grafica. Poi per ogni relazione si specifichi il nome degli attributi, la chiave primaria e le chiavi esterne. 4. Modello Relazionale Monday, April 14, 2014 Corso di Basi di Dati Regate: Schema concettuale 20 HaVinto Tempo: int Barche Partecipa Nome: string Tipo: string NumRemi: int CondottaDa Rematori Nome: string Cognome: string Indirizzo: string Remiera: string 4. Modello Relazionale Monday, April 14, 2014 Regate Nome: string Data: date TenutaA NatoA Città Provincia: string Abitanti: int Corso di Basi di Dati