...

Basi di Dati

by user

on
Category: Documents
21

views

Report

Comments

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
Fly UP