Compito n.2 Progettazione di un DataBase Il Compilatore Di Lorenzo Salvatore Esercizio n.1 SCHEMA ENTITA’ - RELAZIONI 1 : N Amici Libri Esercizio n.1 Tabella Libri Tabella Amici ID Amici Nome Soprannome 101 Biagio Rosso 102 Biagio Grosso 103 Carlo Brocco 104 Domenico Secco ID Libri Titolo Data Amici prevista di restituzione L201 Guerra e Pace 01/02/2011 102 A222 Zanna Bianca 02/02/2011 101 C103 Oliver Twist 03/02/2011 101 A127 Robinson Crusoe 04/02/2011 103 Progettazione logica Definizione delle caratteristiche degli attributi Tabella Amici Nome Campo Tipo Campo Dimensioni Vincoli ID Amici Numerico Intero Primary key Nome Testo 20 Not null Soprannome Testo 20 Not null Note Progettazione logica Definizione delle caratteristiche degli attributi Tabella Libri Nome Campo Tipo Campo Dimensioni Vincoli ID Libri Testo Intero Primary key Titolo Testo 40 Not null Data prevista di restituzione Data/ora 8 Not null Fk Amici Numerico Intero Foreign key Note Link alla Tabella Amici RISPOSTE 1. 2. E’ emersa l’esigenza di rappresentazione di valori nulli per i valori dell’attributo Nome relativi agli Amici con ID 101 e 102 perché, essendo omonimi (si chiamano entrambi Biagio) sono definiti unicamente dal Soprannome (il quale evita le omonimie): per questo motivo i loro nomi possono essere omessi ed essere sostituiti da valori nulli, in quanto sono valori senza informazione. E’ emersa altresì l’esigenza di rappresentare valori nulli per i valori dell’attributo Soprannome relativi agli Amici con ID 103 e 104 perché, non essendo omonimi (si chiamano rispettivamente Carlo e Domenico) sono definiti unicamente dal nome: per questo motivo i loro soprannomi possono essere omessi ed essere sostituiti da valori nulli, in quanto sono valori senza informazione. In generale i valori nulli evitano confusione (perché vengono utilizzati al posto di valori inappropriati). La presenza di valori nulli nelle Chiavi genera difficoltà poiché in tali casi i valori delle Chiavi non consentono di identificare le ennuple e di realizzare facilmente i riferimenti da altre relazioni: per queste ragioni la presenza di valori nulli nelle chiavi deve essere limitata. Esercizio 2 Base di Dati Ospedale Tabella Pazienti Cod. Cognome Tabella Reparti Nome Cod. Nome Primario A102 Rossi Luca B372 Neri Piero A Chirurgia 203 B543 Neri Mario B Pediatria 574 B444 Neri Gino C Medicina 530 Tabella Ricoveri Fine Tabella Medici Paziente Inizio Reparto Matr. Cognome Nome Reparto A102 2/05/01 9/05/01 A 203 Neri Piero A A102 2/12/01 2/01/02 B 574 Bisi Mario B B444 1/12/02 2/01/03 C 530 Belli Nicola C Progettazione logica Definizione delle caratteristiche degli attributi Tabella Pazienti Nome Campo Tipo Campo Dimensioni Vincoli Cod. Testo Intero Primary key Cognome Testo 20 Not null Nome Testo 20 Not null Note Progettazione logica Definizione delle caratteristiche degli attributi Tabella Ricoveri Nome Campo Tipo Campo Dimensioni Vincoli Paziente Testo Intero Primary key Inizio Data/ora 8 Not null Fine Data/ora 8 Not null Reparto Testo Byte Foreign key Note Link alla Tabella Reparti Progettazione logica Definizione delle caratteristiche degli attributi Tabella Reparti Nome Campo Tipo Campo Dimensioni Vincoli Cod. Testo Byte Primary key Nome Testo 20 Not null Primario Numerico Intero Note Foreign key Link alla Tabella Medici Progettazione logica Definizione delle caratteristiche degli attributi Tabella Medici Nome Campo Tipo Campo Dimensioni Vincoli Matr. Numerico Intero Primary key Nome Testo 20 Not null Cognome Testo 20 Not null Reparto Testo Byte Note Foreign key Link alla Tabella Reparti RISPOSTE 1. Vincolo di integrità referenziale tra l’attributo Cod. della Relazione Pazienti e la Relazione Ricoveri. Vincolo di integrità referenziale tra l’attributo Reparto della Relazione Ricoveri e la Relazione reparti. Vincolo di integrità referenziale tra gli attributi Cod. e Primario della Relazione Reparti e la Relazione Medici. 2. Chiavi: Cod. nella Tabella Pazienti; Paziente e Inizio nella Tabella Ricoveri; Cod. nella Tabella Reparti ; Matr. nella Tabella Medici; 3. Gli Attributi sui quali può essere sensato ammettere valori nulli sono: Cognome e Nome nella Tabella Pazienti; Fine nella Tabella Ricoveri; Nome nella Tabella Reparti: Cognome e Nome nella Tabella Medici.