Secondo Compito: PROGETTAZIONE DI UN DATABASE Claudia Angione Mat: 570252 CdL Magistrale: Economia e Management
ANALISI DEI REQUISITI TRACCIA n.1 Si vuole automatizzare la gestione dei libri prestati da un soggetto proprietario, agli amici. A tale scopo bisognerà registrare dei dati relativi a: Libri; Amici; Il fine ultimo è ricavare le informazioni per la gestione dei prestiti di una biblioteca.
DOMINIO APPLICATIVO Il dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema Biblioteca, in particolare quelle relative alla gestione del prestito dei libri.
SCHEMA DELLE RELAZIONI Amici Libri 1 : N N : 1 Prestito
PROGETTAZIONE CONCETTUALE Nel nostro caso sono state individuate le seguenti entità: LIBRI AMICI
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI LIBRI AMICI N : 1 N : N PRESTITO
PROGETTAZIONE CONCETTUALE LIBRI Per l’entità LIBRI sono stati individuati i seguenti attributi: Id Libri: Codice Univoco di Libri Titolo Libro: insieme di tutti i libri presenti nella Biblioteca personale
PROGETTAZIONE CONCETTUALE AMICI Per l’entità AMICI sono stati individuati i seguenti attributi: Id Amici: Codice univoco amici Soprannome Amico Telefono Amico Indirizzo Amico Email Amico
PROGETTAZIONE LOGICA Nella determinazione delle relazioni tra l’entità LIBRO e l’entità AMICI si stabilisce una relazione molti-a-molti perché: 1 libro può essere prestato a N amici; ed 1 amico può prendere a prestito N libri.
PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI Dalla relazione N : N deriva una ulteriore entità (PRESTITO) i cui attributi sono i seguenti: Id Prestito; Link alla Tabella Libri; Link alla Tabella Amici; Data Prestito; Data Restituzione.
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella LIBRI Nome Campo Tipo campo Dimensione Vincoli Note Id Libro Numerico Intero Lungo Primary Key TitoloLibro Testo 50 Not Null
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella AMICI Nome Campo Tipo Campo Dimensioni Vincoli Note Id Amico Numerico Intero Lungo Primary Key SoprannomeAmico Testo 20 Not Null TelefonoAmico 10 IndirizzoAmico 40 EmailAmico
PROGETTAZIONE LOGICA DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI Tabella PRESTITO Nome Campo Tipo Campo Dimensioni Vincoli Note Id Prestito Numerico Intero Lungo Primary Key FkLibroPrestito Foreign Key Link alla Tabella Libri FkAmiciPrestito Link alla Tabella Amici DataPrestito Data Not Null DataRestituzione
Quindi nel caso in questione le chiavi primarie sono: Tabella Libro: IdLibro; Tabella Amici: IdAmico; Tabella Prestito: IdPrestito. Le Chiavi Esterne sono presenti nella Tabella Prestiti: FkLibroPrestito; FkAmiciPrestito rispettivamente collegate alla tabella LIBRO e alla tabella AMICI. Nel caso in questione, sarebbe preferibile creare il vincolo di assenza di valori nulli nel dominio, in relazione alle chiavi primarie delle diverse entità.
BASE DI DATI OSPEDALE TRACCIA n. 2 Reparti Pazienti Ricoveri Cod. Nome Primario A Chirurgia 203 B Pediatria 574 C Medicina 530 Reparti Cod Cognome Nome A102 Rossi Luca B372 Neri Piero B543 Mario B444 Mori Gino Pazienti Paziente Inizio Fine Reparto A102 2/05/01 9/05/01 A 2/12/01 2/01/02 B444 1/12/02 2/01/03 B Ricoveri
Chiavi Primarie: Medici Matr Nome Cognome Reparto 203 Neri Piero A 574 Bisi Mario B 530 Belli Nicola C Medici Chiavi Primarie: IdPaziente: fa riferimento al “codice” del Paziente; IdReparto: fa riferimento al “codice” del Reparto; IdRicovero: volendo potremmo inserire una chiave IdRicovero che corrisponderà alla tripla univoca Paziente, Reparto, DataRicovero. È chiaro però osservare che se in un unico giorno il paziente viene spostato in più reparti, ciò che andrà a differenziare IdRicovero sarà l’ora nel quale il paziente viene ricoverato nei diversi reparti; IdMedico: fa riferimento alla “Matricola” di ognuno di essi.
Chiavi Esterne: Per quanto concerne la Tabella Reparti: la “Matricola” della Tabella Medici è la chiave esterna collegata a Primario (presente in Reparti). Per la Tabella Medici: il “Codice” della Tabella Reparti è la chiave esterna collegata a Reparto (presente in Medici). Per la Tabella Ricoveri essendo la Tabella risultante dalla relazione N:N tra Reparti e Pazienti presenterà le chiavi esterne relative a queste due Tabelle: il “Codice” della Tabella Pazienti è la chiave esterna collegata a Paziente (presente in Ricovero) e il “Codice” della Tabella Reparti è la chiave esterna collegata a Reparto (presente sempre in Ricovero).
Valori Nulli: Come valore nullo indichiamo la Data di Fine Ricovero presente nella Tabella Ricoveri in quanto la degenza potrebbe essere superiore a quella indicata.