PROGETTAZIONE DI UN DATABASE
Corso di Abilità Informatiche
Avanzate
Prof. Agostino Marengo
a.a. 2010-2011
GELSOMINA PETTORRUSO
Matricola: 566400
GESTIONE DEI PRESTITI
BIBLIOTECA PERSONALE
ANALISI DEI REQUISITI
1. Si vuole progettare un Database per la gestione dei prestiti di
una biblioteca personale.
La progettazione deve tener conto del fatto che il proprietario:
• presta libri ai suoi amici, che indica attraverso il nome o il soprannome
(per evitare omonimie)
• fa riferimento ai libri attraverso i titoli
(non possiede libri con lo stesso titolo)
• quando presta un libro prende nota della data prevista di restituzione.
DOMINIO APPLICATIVO
Nel nostro caso il dominio
applicativo è rappresentato da
tutte le entità coinvolte nel
sistema BIBLIOTECA, in
particolare quelle relative alla
gestione dei prestiti.
SCHEMA ENTITA’-RELAZIONI :
CASE EDITRICI
AMICI
LIBRI
N
:
CATEGORIE
N
1 :
N
PRESTITI
AUTORI_LIBRI
AUTORI
PROGETTAZIONE CONCETTUALE
Sono state individuate le seguenti entità:
AMICI
CASE EDITRICI
CATEGORIE
LIBRI
PRESTITI
AUTORI_LIBRI
AUTORI
PROGETTAZIONE CONCETTUALE
AMICI
Per l’entità AMICI sono stati
individuati i seguenti attributi:
•Soprannome amico: insieme di tutti i soprannomi degli amici, campo univoco
•Nome amico: insieme di tutti i nomi degli amici
•Cognome amico: insieme di tutti i cognomi degli amici
•Numero di telefono: insieme di tutti i numeri di telefono degli amici
•e-mail: insieme di tutti gli indirizzi e-mail degli amici
PROGETTAZIONE CONCETTUALE
LIBRI
Per l’entità LIBRI sono stati
individuati i seguenti attributi:
•Titolo libro:campo univoco
•Campo link alla tabella Categorie:
•Editore libro
•Anno di pubblicazione
•Numero scaffale
•Numero posto
definisce la categoria di libro
PROGETTAZIONE CONCETTUALE
AUTORI
Per l’entità AUTORI sono stati
individuati i seguenti attributi:
•Id Autore: codice univoco dell’autore
•Nome Autore
•Cognome Autore
•Data di Nascita
•Luogo di Nascita
PROGETTAZIONE CONCETTUALE
AUTORI_LIBRI
Per l’entità AUTORI_LIBRI sono stati
individuati i seguenti attributi:
•Id Autore Libro: campo univoco
•Campo link alla tabella AUTORI
•Campo link alla tabella LIBRI
PROGETTAZIONE CONCETTUALE
CATEGORIE
Per l’entità CATEGORIE sono stati
individuati i seguenti attributi:
•Id Categoria: codice univoco della categoria
•Nome Categoria: insieme di tutte le categorie di libri
PROGETTAZIONE CONCETTUALE
CASE EDITRICI
Per l’entità CASE EDITRICI sono stati
individuati i seguenti attributi:
•Id Casa Editrice: codice univoco della categoria
•Nome Casa editrice: insieme di tutte le categorie di libri
•Città
PROGETTAZIONE CONCETTUALE
PRESTITI
Per l’entità PRESTITI sono stati
individuati i seguenti attributi:
•Id Prestito: codice univoco del prestito
•Campo link alla tabella Amici: definisce la
persona (amico) che ha preso in prestito il libro
•Campo link alla tabella Libri: definisce il libro che
è stato preso in prestito
•Data inizio prestito
•Data riconsegna
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella AMICI
Nome campo
Tipo campo
Dimensione
SoprannomeAmico
testo
50
NomeAmico
testo
30
CognomeAmico
testo
30
NumeroTelefono
Testo
15
Email
testo
50
Vincoli
Note
Primary key
Not null
Il soprannome dell’amico (chiave primaria) è un campo che non può essere nullo; impostiamo come
non nullo anche il campo numero di telefono così da avere un riferimento certo in caso di non
restituzione del libro. Gli altri campi possono eventualmente essere nulli.
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella LIBRI
Nome campo
Tipo campo Dimensione
Vincoli
TitoloLibro
Testo
150
Primary key
EditoreLibro
Testo
40
Not null
FkCategoria
Numerico
Intero Lungo
Foreign key
AnnoDiPubblicazione
Numerico
4
NumeroScaffale
Numerico
Intero Lungo
Not null
NumeroPosto
Numerico
Intero Lungo
Not null
Note
Link alla tabella
CATEGORIE
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella AUTORI
Nome campo
Tipo campo
Dimensione
IdAutore
Numerico
Intero Lungo
Vincoli
Primary key
NomeAutore
Testo
30
Not null
CognomeAutore
Testo
30
Not null
DataDiNascita
Data
LuogoDiNascita
Testo
50
Note
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella AUTORI_LIBRI
Nome campo
Tipo campo Dimensione
Vincoli
Note
IdAutoreLibro
Numerico
Intero Lungo
Primary key
FkAutore
Numerico
Intero Lungo
Foreign key
Link alla tabella
AUTORI
FkTitoloLibro
Testo
150
Foreign key
Link alla tabella
LIBRI
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella CATEGORIE
Nome campo
Tipo campo Dimensione
Vincoli
IdCategoria
Numerico
Intero Lungo
Primary key
NomeCategoria
Testo
30
Unique
Note
Tabella CASE EDITRICI
Nome campo
Tipo campo Dimensione
Vincoli
IdCasaEditrice
Numerico
Intero Lungo
Primary key
NomeCasaEditrice
Testo
30
Not null
Citta
Testo
30
Note
PROGETTAZIONE LOGICA
Definizione delle caratteristiche degli attributi
Tabella PRESTITI
Nome campo
Tipo campo
Dimensione
Vincoli
Note
IdPrestito
Numerico
Intero Lungo
Primary key
FkSoprannomeAmico
Testo
50
Foreign key
Link alla
tabella AMICI
FkTitoloLibro
Testo
100
Foreign key
Link alla
tabella LIBRI
DataInizioPrestito
Data
Not null
DataFinePrestito
Data
Not null
SCHEMA LOGICO
2. Individuare le chiavi ed i vincoli di integrità referenziale che sussistono nella
base di dati in figura e che è ragionevole assumere. Individuare anche gli
attributi sui quali possa essere sensato ammettere valori nulli.
SCHEMA ENTITA’-RELAZIONI :
PAZIENTI
N
:
N
RICOVERI
REPARTI
1
:
N
MEDICI
CHIAVI PRIMARIE E VINCOLI
DI INTEGRITA’ REFERENZIALE
LE CHIAVI PRIMARIE
possono essere:
• Codice (Cod) per la tabella PAZIENTI
• Matricola (Matr) per la tabella MEDICI
• Codice (Cod) per la tabella REPARTI
• Inizio * per la tabella RICOVERI
•La scelta della chiave primaria Inizio sulla tabella RICOVERI presuppone che non ci sia
più di un ricovero nella stessa giornata, se così non fosse l’univocità della chiave verrebbe
meno.
I VINCOLI DI INTEGRITA’ REFERENZIALE sono:
• tra l’attributo Paziente di RICOVERI e la tabella PAZIENTI
• tra Reparto di RICOVERI e la tabella REPARTI
• tra Reparto in MEDICI e la tabella REPARTI
ATTRIBUTI SU CUI E’ SENSATO
AMMETTERE VALORI NULLI
Fatta eccezione per le chiavi primarie che non possono avere valori nulli,
sembra sensato ammettere valori nulli sugli attributi:
• Cognome e Nome di PAZIENTI
(poiché si ha il codice identificativo del paziente)
•
(poiché la data della fine del ricovero potrebbe non
Fine di RICOVERI
essere stabilita alla data del ricovero)
•
Cognome e Nome di MEDICI
(poiché ciascun medico è identificato da una
matricola)
•
Nome di REPARTI
(essendo il reparto identificato da un codice)
Scarica

vi - WordPress.com