PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a....

23
PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400

Transcript of PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a....

Page 1: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE DI UN DATABASE

Corso di Abilità Informatiche Avanzate

Prof. Agostino Marengo

a.a. 2010-2011

GELSOMINA PETTORRUSO

Matricola: 566400

Page 2: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

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. 

GESTIONE DEI PRESTITI BIBLIOTECA PERSONALE

Page 3: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

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.

Page 4: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

SCHEMA ENTITA’-RELAZIONI :

AMICI LIBRI

PRESTITI

AUTORI

CATEGORIE

1 : N

N : N

N : 1

N :

1 1 : N

AUTORI_LIBRI

N : N

N :

1

CASE EDITRICI

N : 1

Page 5: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

Sono state individuate le seguenti entità:

AMICI

LIBRI

AUTORI

CATEGORIE

PRESTITI

AUTORI_LIBRI

CASE EDITRICI

Page 6: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

AMICI

•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

Per l’entità AMICI sono stati individuati i seguenti attributi:

Page 7: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

LIBRI

•Titolo libro:campo univoco

•Campo link alla tabella Categorie: definisce la categoria di libro •Editore libro•Anno di pubblicazione•Numero scaffale•Numero posto

Per l’entità LIBRI sono stati individuati i seguenti attributi:

Page 8: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

AUTORI

•Id Autore: codice univoco dell’autore

•Nome Autore•Cognome Autore•Data di Nascita•Luogo di Nascita

Per l’entità AUTORI sono stati individuati i seguenti attributi:

Page 9: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

AUTORI_LIBRI

•Id Autore Libro: campo univoco

•Campo link alla tabella AUTORI•Campo link alla tabella LIBRI

Per l’entità AUTORI_LIBRI sono stati individuati i seguenti attributi:

Page 10: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

CATEGORIE

•Id Categoria: codice univoco della categoria

•Nome Categoria: insieme di tutte le categorie di libri

Per l’entità CATEGORIE sono stati individuati i seguenti attributi:

Page 11: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

CASE EDITRICI

•Id Casa Editrice: codice univoco della categoria

•Nome Casa editrice: insieme di tutte le categorie di libri•Città

Per l’entità CASE EDITRICI sono stati individuati i seguenti attributi:

Page 12: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE CONCETTUALE

PRESTITI

•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

Per l’entità PRESTITI sono stati individuati i seguenti attributi:

Page 13: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

Nome campo Tipo campo

Dimensione

Vincoli Note

SoprannomeAmico

testo 50 Primary key

NomeAmico testo 30

CognomeAmico testo 30

NumeroTelefono Testo 15 Not null

Email testo 50

Tabella AMICI

Definizione delle caratteristiche degli attributi

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.

Page 14: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

Nome campo Tipo campo

Dimensione

Vincoli Note

TitoloLibro Testo 150 Primary key

EditoreLibro Testo 40 Not null

FkCategoria Numerico Intero Lungo

Foreign key

Link alla tabella CATEGORIE

AnnoDiPubblicazione

Numerico 4

NumeroScaffale Numerico Intero Lungo

Not null

NumeroPosto Numerico Intero Lungo

Not null

Tabella LIBRI

Definizione delle caratteristiche degli attributi

Page 15: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

Nome campo Tipo campo

Dimensione

Vincoli Note

IdAutore Numerico Intero Lungo Primary key

NomeAutore Testo 30 Not null

CognomeAutore Testo 30 Not null

DataDiNascita Data

LuogoDiNascita Testo 50

Tabella AUTORI

Definizione delle caratteristiche degli attributi

Page 16: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

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

Tabella AUTORI_LIBRI

Definizione delle caratteristiche degli attributi

Page 17: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

Nome campo Tipo campo

Dimensione Vincoli Note

IdCategoria Numerico Intero Lungo Primary key

NomeCategoria Testo 30 Unique

Tabella CATEGORIE

Definizione delle caratteristiche degli attributi

Nome campo Tipo campo

Dimensione Vincoli Note

IdCasaEditrice Numerico Intero Lungo Primary key

NomeCasaEditrice

Testo 30 Not null

Citta Testo 30

Tabella CASE EDITRICI

Page 18: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PROGETTAZIONE LOGICA

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

Tabella PRESTITI

Definizione delle caratteristiche degli attributi

Page 19: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

SCHEMA LOGICO

Page 20: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

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.

Page 21: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

PAZIENTI REPARTI

RICOVERI

MEDICI

1 : N

N :

1

N : N1 : N

SCHEMA ENTITA’-RELAZIONI :

Page 22: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

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

CHIAVI PRIMARIE E VINCOLI DI INTEGRITA’ REFERENZIALE

Page 23: PROGETTAZIONE DI UN DATABASE Corso di Abilità Informatiche Avanzate Prof. Agostino Marengo a.a. 2010-2011 GELSOMINA PETTORRUSO Matricola: 566400.

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)

• Fine di RICOVERI (poiché la data della fine del ricovero potrebbe non

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)

ATTRIBUTI SU CUI E’ SENSATO AMMETTERE VALORI NULLI