1) PROGETTAZIONE DI UN
DATABASE
PADULA LUCIA
MATRICOLA N. 570960
ANALISI DEI REQUISITI
 Si vuole progettare un database per i prestiti di una
biblioteca personale
 A tale scopo bisognerà tener conto che:
- La biblioteca presta i libri ai propri amici;
- Un amico può prendere in prestito più libri;
- Il proprietario non ha libri con lo stesso titolo.
DOMINIO APPLICATIVO
 Lo scopo è quello di comprendere a fondo i concetti,
le dinamiche, le regole generali in cui la struttura di
dati dovrà essere impiegata, ovvero il contesto in cui
il software dovrà agire.
 Nel nostro caso il dominio applicativo è rappresentato
da tutte le entità coinvolte nel sistema biblioteca
personale ed in particolare quelle relative alla gestione
dei prestiti dei libri.
SCHEMA ENTITA’-RELAZIONI
1
:
N
AMICI
LIBRI
1
N
N
PRESTITI
1
PROGETTAZIONE CONCETTUALE

Nel nostro database sono state individuate le seguenti entità:
- AMICI
- LIBRI
- PRESTITI
PROGETTAZIONE CONCETTUALE
AMICI
Per l’entità amici sono presenti i seguenti attributi:
-
Soprannome Amico
Indirizzo
Numero di telefono
Indirizzo e-mail
PROGETTAZIONE CONCETTUALE
LIBRI
Per l’entità libri sono presenti i seguenti attributi:
- Titolo
- Autore
- Casa editrice
PROGETTAZIONE CONCETTUALE
PRESTITI
Per l’entità Prestiti sono presenti i seguenti attributi:
-
Libro
Amico
Data consegna
Data restituzione
PROGETTAZIONE LOGICA
DEFINIZIONE DELLA RELAZIONE
1
AMICI
:
N
PRESTITI
- Un amico può ottenere più prestiti
- Lo stesso prestito non può essere concesso a più amici
PROGETTO LOGICO
DEFINIZIONE DELLE RELAZIONI
1
PRESTITI
:
N
LIBRI
- Uno stesso libro non può essere concesso in prestito più
volte
- Un prestito può comprendere più libri
PROGETTO LOGICO
DEFINIZIONE DELLE RELAZIONI
1
AMICI
-
:
N
LIBRI
Un amico può prendere in prestito più libri
- Un libro può essere preso in prestito da un solo amico
PROGETTAZIONE LOGICA
DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
TABELLA AMICI
NOME CAMPO
TIPO CAMPO
DIMENSIONE
VINCOLI
SOPRANNOME
TESTO
30
PRIMARY KEY
INDIRIZZO
TESTO
40
NOT NULL
NUMERO DI
TELEFONO
NUMERICO
INTERO LUNGO
NOT NULL
INDIRIZZO E-MAIL
TESTO
30
NULL
PROGETTAZIONE LOGICA
DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
TABELLA LIBRI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
TITOLO
TESTO
30
PRIMARY KEY
AUTORE
TESTO
30
NOT NULL
CASE EDITRICI
TESTO
30
NOT NULL
PROGETTAZIONE LOGICA
DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI
TABELLA PRESTITI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
NOTE
SOPRANNOME
TESTO
40
FOREIGN
KEY
LINK TABELLA
AMICI
TITOLO
TESTO
30
FOREIGN
KEY
LINK TABELLA
TITOLI
DATA CONSEGNA
DATA
NOT NULL
DATA
RESTITUZIONE
DATA
NOT NULL
CODPRESTITO
NUMERICO
INTERO LUNGO
PRIMARY
KEY
ESEMPIO DATABASE
TABELLA AMICI
SOPRANNOME
INDIRIZZO
N. TELEFONO
E-MAIL
CARLO VERO
VIA ROMA
3331111111
[email protected]
FRANCO RINI
VIA PO
3207744777
[email protected]
LUISA VITA
VIA PIAVE
3472233444
[email protected]
ESEMPIO DATABASE
TABELLA LIBRI
TITOLO
AUTORE
CASA EDITRICE
ORGOGLIO E
PREGIUDIZIO
JANE AUSTEN
GARZANTI
IL CODICE DA
VINCI
DAN BROWN
MONDADORI
LA FORZA DELLA
RAGIONE
ORIANA FALLACI
RIZZOLI
ESEMPIO DATABASE
TABELLA PRESTITI
CODICE
PRESTITO
SOPRANNOME
TITOLO
DATA
CONSEGNA
DATA
RESTITUZIONE
01541
CARLO VERO
IL CODICE DA
VINCI
07/01/2011
31/01/2011
01224
LUISA VITA
ORGOGLIO E
PREGIUDIZIO
13/01/2011
25/02/2011
01475
FRANCO RINI
LA FORZA
DELLA RAGIONE
10/01/2011
01/02/2011
2) BASE DATI OSPEDALE
TABELLA PAZIENTI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
CODPAZIENTI
TESTO
10
PRIMARY KEY
COGNOME
TESTO
40
NOT NULL
NOME
TESTO
40
NOT NULL
NOTE
A mio parere non sono presenti in tal caso valori nulli visto che è importante
conoscere per ogni cliente cognome e nome.
2) BASE DATI OSPEDALE
TABELLA REPARTI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
CODREPARTO
NUMERICO
INTERO
LUNGO
PRIMARY KEY
NOME
TESTO
40
NOT NULL
PRIMARIO
NUMERICO
INTERO
LUNGO
FOREIGN KEY
NOTE
LINK TABELLA
MEDICI
A mio parere non sono presenti in tal caso valori nulli visto che è rilevante sapere
per ogni reparto il nome dello stesso altre al codice che lo identifica univocamente.
2) BASE DATI OSPEDALE
TABELLA RICOVERI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
NOTE
CODPAZIENTE
NUMERICO
INTERO
LUNGO
FOREIGN KEY
LINK TABELLA
MEDICI
INIZIO
DATA
NOT NULL
FINE
DATA
NOT NULL
CODREPARTO
NUMERICO
3
FOREIGN KEY
LINK TABELLA
REPARTO
A mio parere non sono presenti in tal caso valori nulli visto che è rilevante sapere
per ogni ricovero inizio e la fine dello stesso e il reparto in cui il paziente è
ricoverato. Non è, invece, presente la chiave primaria: sarebbe necessario ad es. il
campo CODRICOVERI.
2) BASE DATI OSPEDALE
TABELLA MEDICI
NOME CAMPO
TIPO CAMPO
DIMENSIONI
VINCOLI
MATRICOLA
NUMERICO
INTERO
LUNGO
PRIMARY KEY
NOME
TESTO
30
NOT NULL
COGNOME
TESTO
30
NOT NULL
REPARTO
NUMERICO
3
FOREIGN KEY
NOTE
LINK TABELLA
REPARTO
A mio parere non sono presenti in tal caso valori nulli visto che è rilevante sapere
per ogni medico sapere nome, cognome e reparto in cui lavora.