La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso: Abilità Informatiche Avanzate Prof. Agostino Marengo Anno accademico 2010/2011 Studente: Antonio DAniello Matricola: 569637.

Presentazioni simili


Presentazione sul tema: "Corso: Abilità Informatiche Avanzate Prof. Agostino Marengo Anno accademico 2010/2011 Studente: Antonio DAniello Matricola: 569637."— Transcript della presentazione:

1 Corso: Abilità Informatiche Avanzate Prof. Agostino Marengo Anno accademico 2010/2011 Studente: Antonio DAniello Matricola:

2 : 1) PROGETTAZIONE DI UN DATA BASE: gestione dei prestiti di una biblioteca personale

3 Gestione prestiti di una biblioteca personale Entità LIBRI (Non possiedo stessi libri – per cui assumo chiave primaria il titolo del libro) AMICI (Individuo univocamente ogni amico con un soprannome.) La relazione tra le due è di n:n Ad ogni amico posso prestare uno o più libri; Ogni libro posso prestarlo ad uno o più amici. PRESTITI si rende necessaria per "scomporre" la relazione.

4 Gestione prestiti di una biblioteca personale PRESTITI LIBRI AMICI 1 : N N : 1 Schema Entità-Relazioni N : N

5 Gestione prestiti di una biblioteca personale Tabella LIBRI Nome campo Tipo campoDimension e VincoliNote TitoloTesto50Primary Key Casa editriceTesto50 Anno edizioneNumerico4 PrestatoTesto2Not null RestituitoTesto2Not null

6 Gestione prestiti di una biblioteca personale Tabella AMICI Nome campoTipo campoDimensioneVincoliNote SoprannomeTesto50Primary Key TelefonoNumericoIntero lungoNot null DomicilioAlfa numerico50Not null Indirizzo mailAlfanumerico50

7 Gestione prestiti di una biblioteca personale Tabella PRESTITI Nome campo Tipo campoDimensioneVincoliNote TitoloTesto50Foreign KeyLink alla tabella libri SoprannomeTesto50Foreign KeyLink alla tabella amici Data prestitoDataNot null Data restituzioneDataCheck if >(Data prestito)

8 Gestione prestiti di una biblioteca personale es. PRESTITI TitoloSoprannomeData prestitoData restituzione La solitudine dei numeri primi Giusè10/10/201003/03/2011 RossovermiglioPeppino05/01/2011 I giorni dellamore e della guerra Pino27/11/201001/02/2011 Lestate del cane nero Michele02/01/201125/01/2011

9 Gestione prestiti di una biblioteca personale es. LIBRI TitoloEditoreAnno edizione PrestatoRestituito La solitudine dei numeri primi Mondadori2008Si RossovermiglioFeltrinelli2009SiNo I giorni dellamore e della guerra Garzanti libri2008Si Lestate del cane neroMarsilio 2008Si

10 Gestione prestiti di una biblioteca personale es. AMICI SoprannomeTelefonoDomicilioIndirizzo mail Giusè Via strada chiusa, it Peppino Via strada storta, 6 Pino Piazza Capri,10 Michele Viale dei it

11 Gestione prestiti di una biblioteca personale Conclusini Non sono accettabili valori nulli per le Chiavi primarie ( Titolo, Soprannome ) perchè ho necessità di identificare quale libro ho prestato e a quale dei miei amici, sono gli elementi fondamentali del prestito. In alcune tabelle come ad esempio quella LIBRI ho impostato come NOT NULL gli attributi " prestato " e " restituito " in modo da ottimizzare l'utilità del database costringendo l'utente ad indicare se il libro è o no nella propria disponibilità. Nella tabella AMICI il soprannome individua univocamente l'amico e mi evita la costruzione di una superchiave: nell'esempio ho inserito tre persone, tutte con il nome Giuesppe, ma la prima conosciuta come Giusè, l'altra come Peppino, laltra come Pino. Nella tabella PRESTITI "impongo" all'utente di indicare la data in cui è avvenuto il prestito, al contrario dell'attributo "Data restituzione"; nel caso in cui però si voglia riempire anche quest'ultimo campo, c'è il vincolo logico da rispettare che la data di restituzione sia posteriore alla data del prestito.

12 2) " Base dati Ospedale" Chiavi Tra le tabelle PAZIENTI e REPARTI esiste una relazione n:n :un paziente può essere ricoverato in più reparti e un reparto può ospitare più pazienti. La si scompone in RICOVERI. Le chiavi primarie sono Cod per PAZIENTI, "Cod" per REPARTI – entrambe chiavi esterne nella tabella RICOVERI - e "Matr" per MEDICI; chiave esterna in REPARTI(Primario). Nella tabella RICOVERI non è possibile individuare una chiave – dobbiamo costruirci una superchiave: RICOVERI(Paziente,Inizio,Reparto)

13 "Base dati Ospedale" Attributi nulli e vincoli referenziali Gli attributi che possiamo ammettere nulli sono tutti quelli che non siano chiavi primarie (VINCOLO REFERENZIALE) – se ad esempio non disponessimo del cognome di un paziente, comunque sarebbe sufficiente PAZIENTI(COD) per identificarlo unificamente. attributi nulli Per cui attributi nulli REPARTI (Nome) PAZIENTI (Cognome,Nome)MEDICI (Nome,Cognome)

14 "Base dati Ospedale" Attributi nulli e vincoli referenziali Nonostante PAZIENTI e MEDICI abbiano una chiave primaria ciascuno, per rispettare i vincoli di integrità referenziale non possiamo considerare nulli i campi REPARTI(Primario) e MEDICI(Reparto), altrimenti perderemmo i riferimenti alle tabelle esterne. Per i RICOVERI la questione si rende più delicata perchè dobbiamo costruirci una superchiave. Poniamo composta da RICOVERI(Paziente,Inizio,Reparto) allora la voce ammissibile nulla è "FINE".


Scaricare ppt "Corso: Abilità Informatiche Avanzate Prof. Agostino Marengo Anno accademico 2010/2011 Studente: Antonio DAniello Matricola: 569637."

Presentazioni simili


Annunci Google