170 likes | 361 Views
COMPITO 2. CELESTE BONANNO MATR. 570089 CDL: SDFA. Esercizio 1. ANALISI DEI REQUISITI Si vuole automatizzare la gestione dei prestiti di una biblioteca personale. A tale scopo è necessario memorizzare dati relativi a: Libri Amici
E N D
COMPITO 2 CELESTE BONANNO MATR. 570089 CDL: SDFA
Esercizio 1 ANALISI DEI REQUISITI Si vuole automatizzare la gestione dei prestiti di una biblioteca personale. A tale scopo è necessario memorizzare dati relativi a: Libri Amici Il fine ultimo è quello di ricavare le informazioni relative ai prestiti effettuati ai diversi amici. DOMINIO APPLICATIVO In questo caso il nostro dominio applicativo è rappresentato da tutte le entità coinvolte nel sistema “biblioteca personale”, in particolare quelle relative alla gestione dei prestiti.
AMICI SCHEMA ENTITÀ – RELAZIONI N : 1 PRESTITI N 1 : N LIBRI N
PROGETTAZIONE CONCETTUALE Nel nostro caso individuiamo le seguenti entità: • Libri • Amici Osserviamo gli attributi che queste due entità posseggono. • LIBRI Per l’entità “LIBRI” sono stati individuati i seguenti attributi: • Id libro: codice univoco del libro; • Titolo libro: insieme di tutti i libri presenti in biblioteca; • Autore Libro: insieme di tutti gli autori presenti nella biblioteca; • Casa Editrice: insieme delle case editrici che compongono la raccolta; • Anno di pubblicazione. • AMICI Per l’entità “AMICI” individuiamo: • Id Amico: codice univoco dell’amico; • Nome Amico: insieme di tutti i nomi del proprietario della biblioteca • Soprannome amico: insieme di tutti i soprannomi degli amici del proprietario della biblioteca.
AMICI LIBRI PROGETTAZIONE LOGICA DEFINIZIONE DELLE RELAZIONI 1 : N N : 1 N : N PRESTITI
Un amico può infatti prendere in prestito più libri e, allo stesso modo uno stesso libro, può essere preso in prestito da più amici nel corso del tempo. Dalla relazione N:N deriva un’ulteriore entità che chiameremo PRESTITI cui attributi saranno: • Id Prestito: codice univoco del prestito; • Campo Link alla tabella AMICI: definisce l’amico che ha preso in prestito un libro; • Campo Link alla tabella LIBRI: definisce il libro che è stato preso in prestito; • Data Ritiro Libro; • Data Prevista consegna Libro; • Data consegna libro
PROGETTAZIONE LOGICA: DEFINIZIONE DELLE CARATTERISTICHE DEGLI ATTRIBUTI TABELLA LIBRI TABELLA AMICI
TABELLA ESAMI Come vediamo tutti gli attributi delle entità trattate non possono mai assumere valore nullo tranne la data di consegna del libro che è difficile da poter determinare. In più è necessario imporre il vincolo che la data della consegna debba essere successiva a quella del ritiro.
TABELLA PAZIENTI TABELLA REPARTI
CHIAVI • Le chiavi che secondo me è necessario inserire in questo data Base sono: • Nella tabella PAZIENTI, l’attributo Cod_Paziente sarà una Primary Key poiché identifica univocamente un paziente dell’ospedale; • Nella tabella REPARTI, l’attributo Cod_Reparto è una Primary Key poiché contraddistingue ogni reparto dell’ospedale; • Nella tabella MEDICI, l’attributo Matr_Medico è anch’essa una Primary Key poiché identifica univocamente ogni medico dell’ospedale; • Nella tabella RICOVERI: • l’attributo Fk_Cod_Paziente è una Foreign Key proveniente dalla tabella PAZIENTI; • l’attributo Fk_Cod_Reparto è lo stesso una foreign key proveniente dalla tabella REPARTI ; • Per identificare una singola n-pla possiamo individuare una Super chiave formata da due attributi, Fk_Cod_Paziente e Data_Inizio_Ricovero.
VINCOLI • Tabella PAZIENTI, REPARTI e MEDICI: • Nessun attributo può essere NULL poiché ogni campo deve univocamente distinguere rispettivamente pazienti, reparti e medici. • Nella tabella RICOVERI: • Tutti gli attributi sono NOT NULL tranne, anche in questo caso l’attributo Data_Fine_Ricovero che non può essere prevista e deve sottostare al vincolo di corrispondere ad una data successiva a quella registrata nel campo Data_Inizio_Ricovero
RELAZIONI MEDICI Più medici possono lavorare nello stesso reparto, ma ogni medico è assegnato ad un singolo reparto, del quale puo essere primario REPARTO 1 : N N : 1 N RICOVERI Un reparto può ospitare più pazienti. 1 : N PAZIENTI N Un singolo paziente può essere ricoverato in più reparti.