1. Analisi dei requisiti

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "1. Analisi dei requisiti"

Transcript

1 1. Analisi dei requisiti 1a. Requisiti espressi in linguaggio naturale Si vuole realizzare una base di dati per la gestione di una biblioteca di medie dimensioni. La base di dati sarà rivolta al personale delle biblioteca, in modo da facilitare e velocizzare le comuni operazioni di gestione dei prestiti e rendere più immediata la loro visualizzazione. La base di dati quindi conterrà tutte le informazioni riguardanti i volumi gestiti dalla biblioteca, gli utenti e i prestiti. I volumi sono divisi in due categorie: libri e manuali. Questi a sua volta si possono dividere in due sottocategorie: i libri, in quelli di narrativa e quelli di saggistica; mentre i manuali, in dizionari e tutti gli altri tipi che non rientrano nei dizionari. La biblioteca gestisce solo libri e manuali (niente riviste, giornali o altro), di ognuno dei quali vogliamo poter conoscere il codice (che deve essere univoco), il titolo, l edizione, la lingua in cui è scritto (o le due lingue nel caso del dizionario), gli autori, l editore e l anno di pubblicazione. Inoltre deve essere possibile risalire ad altri eventuali volumi che sono citati da quest ultimo. Di ogni volume possono esistere più copie identiche, queste avranno lo stesso codice del volume, ma dovranno essere dotate di un codice della copia che le differenzia dalle altre riproduzioni. I codici della copia potranno essere simili per volumi diversi. Di ciascuna casa editrice registrata nel nostro archivio, vogliamo conoscere la denominazione e la città di appartenenza. Di ciascun scrittore, invece, desideriamo conoscere i dati anagrafici: nome, cognome, data di nascita e, se è deceduto, la data della morte (che potrebbe essere anche sconosciuta). I volumi della biblioteca sono catalogati in modo da poterli ricercare facilmente: ad ogni libro di narrativa dovrà essere associato un genere (es. giallo, horror, avventura,...), mentre ad ogni libro di saggistica, o manuale che non sia un dizionario, dovrà essere associata una materia (es. informatica, elettronica, chimica,...). Un volume potrà far parte di una particolare collana ed in tal caso vogliamo poter risalire al numero che il volume occupa al suo interno. L indicazione della collocazione di ogni testo è suddivisa in tre parti: numero della sezione, numero dello scaffale e numero di registrazione. Se di un volume esistono più copie, queste saranno poste fisicamente una di fianco all altra. Gli utenti della biblioteca sono registrati in base ai dati anagrafici (nome, cognome, indirizzo, numero di telefono). A ciascuno di loro, inoltre, è associato un numero di tessera. A seguito di una richiesta, viene dapprima verificata la presenza di almeno una copia del volume, e se questo è disponibile si procede con il prestito. Quando un cliente ottiene un volume in prestito, la base di dati registra la data di inizio del prestito, il volume prelevato e i dati dell utente che lo ha preso. Quando il libro viene riconsegnato, la base di dati completa le informazioni sul prestito inserendo anche la data di riconsegna. Ad ogni volume è associata una durata massima del prestito. Se un utente riconsegna un volume in ritardo, riceve un avviso, se arriva a dieci avvisi la sua scheda viene bloccata e riceve una multa. Gli avvisi dovranno essere cumulativi. Le operazioni più importanti previste sulla base di dati sono: 1- Ricerca di tutti i volumi attualmente in possesso di un utente, restituendo il codice del volume, il codice della copia e il titolo; Frequenza stimata: 5 volte al giorno 2- Verifica del numero di volumi riconsegnati in ritardo da un utente; Frequenza stimata: 2 volte al giorno 3- Inserimento di un nuovo libro di narrativa con autori ed editore che non sono presenti nella base di dati, associato ad un genere ed a una collana già presenti nell archivio; Frequenza stimata: 2 volte alla settimana 4- Trova la collocazione di un volume catalogato come libro, partendo dal codice del volume e visualizzando, oltre alla posizione, il titolo, la lingua, l edizione, l editore e il nome e cognome dell autore; Frequenza stimata: 120 volte al giorno 5- Ricerca tutti i volumi citati da un altro volume restituendone il titolo, l edizione e il nome e cognome dell autore; Frequenza stimata: 20 volte al giorno 6- Ricerca tutti i volumi scritti da un autore visualizzando il codice del volume, il titolo, l edizione, l editore e l anno di pubblicazione;

2 Frequenza stimata: 80 volte al giorno 7- Cancellazione di un autore che non si riferisce a nessun volume; Frequenza stimata: 1 volta al mese 8- Ricerca di tutti i volumi appartenenti a un genere (solo per libri di narrativa); Frequenza stimata: 40 volte al giorno 9- Registrazione di un nuovo prestito (si dovrà prima vedere se c è almeno una copia disponibile del volume e se la tessera non è bloccata); Frequenza stimata: 100 volte al giorno 10- Registrazione dell avvenuta riconsegna di un volume (fine del prestito); Frequenza stimata: 100 volte al giorno 11- Ricerca di tutte le copie di tutti i volumi in prestito visualizzando oltre ai codici anche il titolo e l edizione (considerando che in media ce ne sono 500 alla settimana); Frequenza stimata: 1 volta alla settimana 12- Invio multa e blocco della tessera per tutti gli utenti che hanno raggiunto dieci o più avvisi (considerando che mediamente ce ne sono due alla settimana). Frequenza stimata: 3 volte alla settimana 1b. Glossario dei termini Termine Descrizione Sinonimi Collegamenti Volume Materiale cartaceo gestito dalla Testo Editore, autore, collana biblioteca. Può essere un libro o un manuale Libro Particolare categoria di volume. Può - Volume, libro di essere di narrativa o saggistica saggistica e libro di Manuale Libro di narrativa Libro di saggistica Dizionario Altro manuale Particolare categoria di volume. Può essere un dizionario o un qualunque altro tipo di manuale Particolare categoria di libro e sottocategoria di volume Particolare categoria di libro e sottocategoria di volume Particolare categoria di manuale e sotto-categoria di volume Particolare categoria di manuale e sotto-categoria di volume narrativa - Volume, dizionario e altro manuale - Libro e genere - Libro e materia - Manuale - Manuale e materia Editore Colui che ha pubblicato il volume Casa Volume editrice Autore Colui che ha scritto un volume Scrittore Volume Genere Es. giallo, horror, avventura,ecc. - Libro di narrativa E associato ad ogni libro di narrativa Materia Es. informatica, chimica, meccanica, - Libro di saggistica e altro ecc. E associata ad ogni libro di saggistica e ad ogni manuale che non sia un dizionario manuale Collana Utente Raccolta di volumi aventi tra loro una certa analogia Colui che prende in prestito dei volumi dalla biblioteca - Volume Cliente Volume 1c. Rilevamento delle ambiguità e correzioni proposte 2

3 Nel testo sono presenti diversi casi di ambiguità, procurati la maggior parte da sinonimi, che devono essere chiariti. Linea Termine Nuovo termine Ragione della correzione 9 Codice Codice del volume Codice volume è più specifico 13 Riproduzioni Copie Sinonimo per riproduzione in linea Casa editrice Editore Sinonimo per casa editrice in linea Scrittore Autore Sinonimo per scrittore in linea Numero Numero d ordine Numero d ordine è più specifico 24 Testo Volume Sinonimo per testo in linea 4 25 Numero di registrazione Codice del volume Codice del volume è più specifico 31 Cliente Utente Sinonimo per cliente in linea 4 32 Libro Volume Libro è troppo specifico 35 Scheda Tessera Sinonimo per scheda in linea 28 1d. Requisiti in linguaggio naturale con correzione ambiguità Si vuole realizzare una base di dati per la gestione di una biblioteca di medie dimensioni. La base di dati sarà rivolta al personale delle biblioteca, in modo da facilitare e velocizzare le comuni operazioni di gestione dei prestiti e rendere più immediata la loro visualizzazione. La base di dati quindi conterrà tutte le informazioni riguardanti i volumi gestiti dalla biblioteca, gli utenti e i prestiti. I volumi sono divisi in due categorie: libri e manuali. Questi a sua volta si possono dividere in due sottocategorie: i libri, in quelli di narrativa e quelli di saggistica; mentre i manuali, in dizionari e tutti gli altri tipi che non rientrano nei dizionari. La biblioteca gestisce solo libri e manuali (niente riviste, giornali o altro), di ognuno dei quali vogliamo poter conoscere il codice del volume (che deve essere univoco), il titolo, l edizione, la lingua in cui è scritto (o le due lingue nel caso del dizionario), gli autori, l editore e l anno di pubblicazione. Inoltre deve essere possibile risalire ad altri eventuali volumi che sono citati da quest ultimo. Di ogni volume possono esistere più copie identiche, queste avranno lo stesso codice del volume, ma dovranno essere dotate di un codice della copia che le differenzia dalle altre copie. I codici della copia potranno essere simili per volumi diversi. Di ciascun editore registrato nel nostro archivio, vogliamo conoscere la denominazione e la città di appartenenza. Di ciascun autore, invece, desideriamo conoscere i dati anagrafici: nome, cognome, data di nascita e, se è deceduto, la data della morte (che potrebbe essere anche sconosciuta). I volumi della biblioteca sono catalogati in modo da poterli ricercare facilmente: ad ogni libro di narrativa dovrà essere associato un genere (es. giallo, horror, avventura,...), mentre ad ogni libro di saggistica, o manuale che non sia un dizionario, dovrà essere associata una materia (es. informatica, elettronica, chimica,...). Un volume potrà far parte di una particolare collana ed in tal caso vogliamo poter risalire al numero d ordine che il volume occupa al suo interno. L indicazione della collocazione di ogni volume è suddivisa in tre parti: numero della sezione, numero dello scaffale e codice del volume. Se di un volume esistono più copie, queste saranno poste fisicamente una di fianco all altra. Gli utenti della biblioteca sono registrati in base ai dati anagrafici (nome, cognome, indirizzo, numero di telefono). A ciascuno di loro, inoltre, è associato un numero di tessera. A seguito di una richiesta, viene dapprima verificata la presenza di almeno una copia del volume, e se questo è disponibile si procede con il prestito. Quando un utente ottiene un volume in prestito, la base di dati registra la data di inizio del prestito, il volume prelevato e i dati dell utente che lo ha preso. Quando il volume viene riconsegnato, la base di dati completa le informazioni sul prestito inserendo anche la data di riconsegna. Ad ogni volume è associata una durata massima del prestito. Se un utente riconsegna un volume in ritardo, riceve un avviso, se arriva a dieci avvisi la sua tessera viene bloccata e riceve una multa. Gli avvisi dovranno essere cumulativi. 1e. Filtraggio dei concetti fondamentali 3

4 Frasi di carattere generale Si vuole realizzare una base di dati per la gestione di una biblioteca di medie dimensioni. La base di dati sarà rivolta al personale delle biblioteca, in modo da facilitare e velocizzare le comuni operazioni di gestione dei prestiti e rendere più immediata la loro visualizzazione. La base di dati quindi conterrà tutte le informazioni riguardanti i volumi gestiti dalla biblioteca, gli utenti e i prestiti. Frasi relative a volume I volumi sono divisi in due categorie: libri e manuali. Di ogni volume vogliamo poter conoscere il codice del volume (che deve essere univoco), il titolo, l edizione, la lingua in cui è scritto (o le due lingue nel caso del dizionario), gli autori, l editore e l anno di pubblicazione. Inoltre deve essere possibile risalire ad altri eventuali volumi che sono citati da quest ultimo. Frasi relative alle copie del volume Di ogni volume possono esistere più copie identiche, queste avranno lo stesso codice del volume, ma dovranno essere dotate di un codice della copia che le differenzia dalle altre copie. I codici della copia potranno essere simili per volumi diversi. Frasi relative a libri e manuali Si possono dividere in due sottocategorie: i libri, in quelli di narrativa e quelli di saggistica; mentre i manuali, in dizionari e tutti gli altri tipi che non rientrano nei dizionari. Ad ogni libro di narrativa dovrà essere associato un genere (es. giallo, horror, avventura,...), mentre ad ogni libro di saggistica, o manuale che non sia un dizionario, dovrà essere associata una materia (es. informatica, elettronica, chimica,...). Frasi relative all editore Di ciascun editore registrato nel nostro archivio, vogliamo conoscere la denominazione e la città di appartenenza. Frasi relative all autore Di ciascun autore desideriamo conoscere i dati anagrafici: nome, cognome, data di nascita e, se è deceduto, la data della morte (che potrebbe essere anche sconosciuta). Frasi relative alla collana Un volume potrà far parte di una particolare collana ed in tal caso vogliamo poter risalire al numero d ordine che il volume occupa al suo interno. Frasi relative alla posizione del volume L indicazione della collocazione di ogni volume è suddivisa in tre parti: numero della sezione, numero dello scaffale e codice del volume. Se di un volume esistono più copie, queste saranno poste fisicamente una di fianco all altra. Frasi relative agli utenti Gli utenti della biblioteca sono registrati in base ai dati anagrafici (nome, cognome, indirizzo, numero di telefono). A ciascuno di loro, inoltre, è associato un numero di tessera. Frasi relative al prestito A seguito di una richiesta, viene dapprima verificata la presenza di almeno una copia del volume, e se questo è disponibile si procede con il prestito. Quando un utente ottiene un volume in prestito, la base di dati registra la data di inizio del prestito, il volume prelevato e i dati dell utente che lo ha preso. Quando il volume viene riconsegnato, la base di dati completa le informazioni sul prestito inserendo anche la data di riconsegna. Ad ogni volume è associata una durata massima del prestito. Se un utente riconsegna un volume in ritardo, riceve un avviso, se arriva a dieci avvisi la sua tessera viene bloccata e riceve una multa. Gli avvisi dovranno essere cumulativi. 2. Progettazione concettuale 4

5 2a. Strategia di progetto Come strategia di progetto è stata scelta la strategia mista. Si può introdurre inizialmente uno schema scheletro composto dalle entità UTENTE, e PRESTITO che sono i concetti principali di questa applicazione, e poi approfondire tutti gli altri concetti procedendo in maniera inside-out. Infine ci sarà un passo d integrazione per ottenere lo schema concettuale finale. 2b. Schema scheletro Come già detto i concetti fondamentali che emergono in una prima analisi delle specifiche sono:, UTENTE e PRESTITO. Questi possono essere rappresentati considerando utente e volume come entità, e prestito come un associazione che li collega: PRESTITO UTENTE Un altra soluzione poteva essere quella di rappresentare i tre concetti tutti come entità, ma la prima scelta è da preferire perché rende più evidente la relazione che lega utente e volume quando avviene un prestito. 2c. Schemi concettuali parziali (procedendo in maniera inside-out) Con riferimento allo schema sopra possiamo a questo punto decidere di analizzare separatamente le due entità. Utente: Questa entità dovrà possedere i seguenti attributi:,,, Indirizzo e Numero_telefonico (supponiamo quest ultimo unico e quindi con una cardinalità 1,1). Questi saranno considerati come un attributo composto chiamato Dati anagrafici. Lo stesso attributo Indirizzo sarà un attributo composto, i cui attributi semplici saranno: Città, Via, Numero_civico e CAP. Occorrerà inoltre aggiungere un attributo #Tessera che identifica un certo cliente in modo univoco ed altri tre attributi che hanno a che fare con i prestiti scaduti: Tot_avvisi, il numero totale degli avvisi ricevuti, che saranno cumulativi e faranno scattare sanzioni non appena arrivano a dieci; Multa, indica se ad un utente è stata inviata oppure no una multa; Tessera_bloccata, è lo stato della tessera (attiva o bloccata), una volta bloccata la tessera, ad un utente viene impedito di prelevare ulteriori libri. #Tessera Tessera_bloccata Multa Tot_Avvisi UTENTE Dati anagrafici Indirizzo Città Via Numero_telefonico CAP Numero_civico Volume: 5

6 Innanzi tutto si dovranno inserire gli attributi nell entità, che sono:, identifica univocamente ogni volume,, e, specifica la durata massima (in giorni) del prestito per ogni volume. A questo punto possiamo notare dalle specifiche, che ogni volume può citare altri volumi, perciò inseriamo un associazione CITAZIONE che è di tipo ricorsivo (collega l entità volume a se stessa). Verranno inseriti due identificatori (CITA A e CITATO DA) che specificano il ruolo dell associazione nei due sensi di lettura. Le cardinalità saranno entrambe, perché ogni volume può citare o essere citato da 0 ad n volumi. CITA A CITAZIONI CITATO DA Tra i volumi si individuano due categorie: i libri e i manuali. Questi concetti sono rappresentabili come entità LIBRO e MANUALE, figlie dell entità : la generalizzazione che ne risulta è totale. A sua volte le entità figlie si dividono in due sotto-categorie: i libri, in NARRATIVA e SAGGISTICA, e i manuali, in DIZIONARIO e ALTRO (manuali che non sono dizionari). Queste verranno rappresentate come altre due generalizzazioni totali. Nelle specifiche viene richiesto di tenere conto anche della lingua con cui un volume è stato scritto; non è possibile però inserire un attributo lingua in volume, perché, a causa della gerarchia, diventerebbe un attributo anche dell entità DIZIONARIO. Questa infatti dovrà averne due di attributi: Prima_lingua e Seconda_lingua, in modo da riportare entrambe le lingue della traduzione. L attributo Seconda_lingua avrà cardinalità (0, 1), perchè può assumere il valore NULL nel caso in cui il volume è, ad esempio, un dizionario dei sinonimi. L attributo lingua sarà necessario a questo punto nelle entità LIBRO e ALTRO. Possiamo notare dalle specifiche che i libri di narrativa sono associati ad un genere, mentre quelli di saggistica e gli altri manuali sono associati ad una materia. Per questo motivo provvediamo ad inserire l entità GENERE e di conseguenza l associazione INCLUSO che andrà a collegare l entità creata con l entità NARRATIVA. La stessa cosa la facciamo per le entità SAGGISTICA ed ALTRO che colleghiamo ad un entità MATERIA tramite, rispettivamente, le relazioni ABBINATO e ASSOCIATO. Le cardinalità di relazione, che saranno le stesse per tutte e tre le associazioni, sono: dalla parte delle entità della generalizzazione, perché un certo volume sarà associato ad una, ed una sola materia/genere; dall altra parte, perché ad una materia/genere sono associati da 0 ad N volumi. CITA A CITAZIONI CITATO DA Lingua LIBRO MANUALE Lingua NARRATIVA SAGGISTICA DIZIONARIO ALTRO GENERE Prima_lingua Seconda_lingua (0, 1) INCLUSO ABBINATO MATERIA ASSOCIATO Di ogni volume devono essere considerate anche le copie. Questo è un concetto importante, infatti un utente non prende in prestito un volume, ma una copia di un certo volume, perciò, più che introdurre un attributo, inseriamo 6

7 una nuova entità COPIA che ha come attributo Codice_copia. Decidiamo quindi di creare una relazione chiamata RELATIVA, con l attributo Disponibilità, che lega le entità COPIA e. L attributo ci dice se una copia di un volume è disponibile, oppure è attualmente in mano ad un utente. Ci possono essere da una a più copie di un volume (cardinalità 1, N). Una copia, invece, sarà relativa a zero, uno, o più volumi (cardinalità 0, N). Procedendo sempre a macchia d olio, possiamo introdurre un entità AUTORE con attributi,, e Data_morte, dove i primi tre individuano univocamente un autore. L attributo Data_morte avrà una cardinalità (0, 1), questo perché può essere NULL nel caso in cui un autore è ancora in vita oppure è sconosciuta la data della sua morte. L entità creata sarà collegata all entità tramite l associazione SCRITTO. Le cardinalità della relazione sono: (1, N), perché un volume può essere scritto da uno o più autori (deve essere sempre conosciuto almeno un autore di un volume), e, perché nella base di dati possono comparire anche autori che non hanno scritto nessun testo. Procediamo ora con la creazione di un entità EDITORE, provvista degli attributi, che ne identifica univocamente le tuple, e Città_di_appartenenza, che avrà una cardinalità (0, 1) in quanto potrebbe essere anche sconosciuta. L entità EDITORE sarà collegata a dalla relazione PUBBLICAZIONE, che a sua volta è provvista dell attributo Anno_pubblicazione; la cardinalità di quest ultimo sarà (0, 1) per tenere conto anche di quei volumi più antichi per i quali è probabile che l anno di pubblicazione non si conosca. Un editore registrato nell archivio non necessariamente deve aver pubblicato almeno un volume, al contrario, per ogni volume deve essere presente nella base di dati la casa editrice che lo ha pubblicato. Le cardinalità saranno, quindi, quelle riportate nello schema seguente. AUTORE Data_morte (0, 1) COPIA Codice_copia SCRITTO Anno_pubblicazione (0, 1) (1, N) (1, N) RELATIVA Disponibilità EDITORE PUBBLICAZIONE CITA A CITAZIONI Città_di_appartenenza (0, 1) CITATO DA Lingua LIBRO MANUALE Lingua NARRATIVA SAGGISTICA DIZIONARIO ALTRO GENERE Prima_lingua Seconda_lingua (0, 1) INCLUSO ABBINATO MATERIA ASSOCIATO Analizzando le specifiche si può notare che mancano ancora due concetti da rappresentare: la collana, a cui può appartenere un volume, e la collocazione dei volumi nella biblioteca. 7

8 Per quanto riguarda il primo, possiamo introdurre un entità COLLANA, provvista di un attributo che sarà anche la chiave dell entità, ed una relazione APPARTENENZA tra l entità appena creata e l entità. L associazione dovrà inoltre possedere l attributo #Ordine_nella_collana, che occorre per specificare il numero che il volume possiede all interno della collana. Le cardinalità della relazione saranno: (1, N), perché ad ogni collana presente nel database apparterrà almeno un libro, e (0, 1), in quanto un volume potrebbe anche non appartenere a nessuna collana. L ultimo concetto lo rappresentiamo tramite l entità POSIZIONE, che sarà collegata all entità sfruttando la relazione COLLOCAZIONE. Ogni volume sarà collocato in una posizione univoca e, inversamente, in una posizione ci potrà stare un solo tipo di volume (con tutte le sue copie), perciò le cardinalità saranno entrambe. Ogni posizione è individuata dal numero della sezione, dal numero dello scaffale e dal codice del volume, perciò introduciamo nella relazione gli attributi #Sezione, #Scaffale e. L ultimo di questi è l attributo chiave dell entità, e quindi attributo esterno per l entità POSIZIONE. E possibile usare un attributo esterno perché la cardinalità è (1,1). L entità POSIZIONE è stata legata all entità e non a COPIA, perché nei requisiti è stato specificato che le copie sono poste una di fianco all altra, quindi basta solo il codice del volume per identificare una posizione al cui interno sono contenute tutte le sue copie. Lo schema parziale che si ottiene è il seguente: AUTORE Data_morte (0, 1) COPIA Codice_copia Disponibilità (0, 1) Città_di_appartenenza (1, N) (1, N) SCRITTO RELATIVA Anno_pubblicazione (0, 1) #Sezione #Scaffale EDITORE PUBBLICAZIONE COLLOCAZIONE POSIZIONE #Ordine_nella_collana APPARTENENZA (0, 1) CITA A (1, N) COLLANA CITAZIONI CITATO DA Lingua LIBRO MANUALE Lingua NARRATIVA SAGGISTICA DIZIONARIO ALTRO GENERE Prima_lingua Seconda_lingua (0, 1) INCLUSO ABBINATO MATERIA ASSOCIATO 2d. Integrazione di schemi 8

9 Integrando i due schemi parziali ci si accorge che l associazione PRESTITO, che era stata specificata come binaria nello schema scheletro, in realtà è una relazione ternaria tra COPIA, UTENTE e. Questo perché in un prestito un utente preleverà una certa copia di un determinato volume. La relazione dovrà inoltre possedere i seguenti attributi: Data_inizio, Data_riconsegna e #Avvisi (specifica, per ogni prestito, quanti avvisi vengono inviati all utente, avendo costui superato la durata massima del prestito). L attributo Data_riconsegna avrà cardinalità (0, 1) perché può essere NULL nel caso in cui il libro non sia stato ancora riconsegnato. Per quanto riguarda le cardinalità della relazione queste sono tutte : un utente può aver preso in prestito da 0 ad N copie di 0 o N volumi, di un volume possono essere prese in prestito da 0 ad N copie da 0 ad N utenti, ed infine, una copia può essere relativa a 0 o N volumi e prelevata da 0 ad N utenti. Lo schema concettuale finale è il seguente. 2e. Schema concettuale finale Data_morte (0, 1) #Tessera AUTORE Tessera_bloccata Multa Tot_Avvisi UTENTE Dati anagrafici Indirizzo Città Via SCRITTO (1, N) Data_riconsegna PRESTITO Data_inizio #Avvisi Numero_telefonico RELATIVA Disponibilità (1, N) Numero_civico CAP Codice_copia COPIA (0, 1) Città_di_appartenenza #Sezione #Scaffale Anno_pubblicazione (0, 1) EDITORE PUBBLICAZIONE COLLOCAZIONE POSIZIONE APPARTENENZA (1, N) #Ordine_nella_collana (0, 1) CITA A CITAZIONI CITATO DA COLLANA Lingua LIBRO MANUALE Lingua NARRATIVA SAGGISTICA DIZIONARIO ALTRO Prima_lingua Seconda_lingua (0, 1) ASSOCIATO GENERE INCLUSO ABBINATO MATERIA Possiamo notare nello schema che ci sono due attributi Lingua relativi alle entità ALTRO e LIBRO, che oltre ad avere lo stesso nome, indicano anche la stessa cosa. Per questo motivo si potrebbe pensare di aggiungere un entità LINGUA legata poi ad ALTRO e LIBRO tramite due associazioni. In realtà questo non è stato fatto, perché in un 9

10 secondo momento, nella fase di semplificazione, verranno prese in considerazione le generalizzazioni e, nel caso del collassamento dei figli nel padre (come è probabile che avvenga), i due attributi diventeranno un unico attributo risolvendo il problema. 2f. Dizionario dei dati Entità: entità Descrizione Attributi Identificatore Testo che si trova nella tabella (numerico a 6 cifre) (stringa a 80 caratteri) (numerico a 2 cifre) (numerico a 3 cifre) LIBRO Particolare categoria di volume Lingua (stringa a 15 caratteri) Nessuno, perché è un entità figlia MANUALE Particolare categoria di volume - Nessuno, perché è un entità figlia NARRATIVA Particolare categoria di libro - Nessuno, perché è un entità figlia SAGGISTICA Particolare categoria di libro - Nessuno, perché è un entità figlia DIZIONARIO Particolare categoria di manuale Prima_lingua (stringa a 15 caratteri) Nessuno, perché Seconda_lingua (stringa a 15 caratteri; è un entità figlia cardinalità 0, 1) ALTRO Particolare categoria di manuale Lingua (stringa a 15 caratteri) Nessuno, perché EDITORE AUTORE GENERE Soggetto che ha pubblicato un volume Soggetto che ha scritto un volume Es. giallo, horror, avventura, ecc. E associato ad ogni libro di narrativa MATERIA Es. informatica, chimica, meccanica, ecc. E associata ad ogni libro di saggistica e ad ogni manuale che non sia un dizionario COLLANA UTENTE Raccolta di volumi aventi tra loro una certa analogia Colui che prende in prestito dei volumi dalla biblioteca (stringa a 40 caratteri) Città_di_appartenenza (stringa a 30 caratteri; cardinalità 0, 1) (stringa a 15 caratteri) (stringa a 15 caratteri) (stringa a 10 caratteri) Data_morte (stringa a 10 caratteri; cardinalità 0, 1) (stringa a 15 caratteri) (stringa a 25 caratteri) (stringa a 30 caratteri) #Tessera (numerico a 6 cifre) Dati anagrafici: - (stringa a 15 caratteri) - (stringa a 15 caratteri) - (stringa a 10 caratteri) è un entità figlia, e #Tessera - Indirizzo: o Città (stringa a 30 caratteri) o Via (stringa a 30 caratteri) o Numero_civico (numerico a 4 cifre) 10

11 o CAP (numerico a 5 cifre) - Numero_telefonico (numerico a 10 cifre) Tessera_bloccata (booleano) Tot_avvisi (numerico a 2 cifre) Multa (booleano) POSIZIONE Locazione della biblioteca dove #Sezione (numerico a 3 cifre) si trova un certo volume #Scaffale (numerico a 5 cifre) COPIA Indica le copie di ogni volume Codice_copia (numerico a 2 cifre) Codice_copia Relazioni: relazione Descrizione Entità coinvolte Attributi PRESTITO Associa un utente ad una certa copia di un volume presa in prestito, UTENTE e COPIA Data_inizio (stringa a10 caratteri) Data_riconsegna (stringa a 10 caratteri; cardinalità 0, 1) #Avvisi (numerico a 2 cifre) RELATIVA Associa, ad ogni volume, tutte le sue COPIA e Disponibilità (booleano) copie COLLOCAZIONE Associa, ad un volume, una certa posizione della biblioteca, che sarà la stessa per tutte le sue copie CITAZIONI Associa un volume ad altri volumi da lui citati SCRITTO Associa un volume agli autori che lo hanno scritto PUBBLICAZIONE Associa un volume all editore che lo ha pubblicato APPARTENENZA Associa un volume alla collana a cui questo appartiene (sempre se il volume appartiene ad una collana) INCLUSO ABBINATO ASSOCIATO Associa ad un libro di narrativa un certo genere Associa ad un libro di saggistica una materia Associa, ad un manuale che non sia un dizionario, una certa materia e POSIZIONE - e AUTORE e EDITORE e COLLANA NARRATIVA e GENERE SAGGISTICA e MATERIA ALTRO e MATERIA - - Anno_pubblicazione (numerico a 4 cifre; cardinalità 0, 1) #Ordine_nella_collana (numerico a 4 cifre) Ristrutturazione dello schema concettuale 3a. Tavola delle operazioni 11

12 Operazione Tipo operazione Frequenza 1 I 5 volte al giorno 150 volte al mese 2 I 2 volte al giorno 60 volte al mese 3 I 2 volte alla settimana 8 volte al mese 4 I 120 volte al giorno 3600 volte al mese 5 I 20 volte al giorno 600 volte al mese 6 I 80 volte al giorno 2400 volte al mese 7 I 1 volta al mese 8 I 40 volte al giorno 1200 volte al mese 9 I 100 volte al giorno 3000 volte al mese 10 I 100 volte al giorno 3000 volte al mese 11 B 1 volta alla settimana 4 volte al mese 12 B 3 volte alla settimana 12 volte al mese 3b. Tavola dei volumi Concetto Tipo Volume E LIBRO E MANUALE E NARRATIVA E SAGGISTICA E DIZIONARIO E 1000 ALTRO E EDITORE E 200 AUTORE E GENERE E 25 MATERIA E 50 COLLANA E 480 UTENTE E POSIZIONE E COPIA E 15 PRESTITO R RELATIVA R COLLOCAZIONE R CITAZIONI R SCRITTO R PUBBLICAZIONE R APPARTENENZA R INCLUSO R ABBINATO R ASSOCIATO R c. Costo delle operazioni e schemi di navigazione Operazione 1: 12

13 #Tessera Tessera_bloccata Multa Tot_Avvisi Data_riconsegna UTENTE PRESTITO AVG = 15 Data_inizio #Avvisi Dati anagrafici Numero_telefonico Indirizzo Città Via Numero_civico CAP Codice_copia AVG = 5 COPIA Tavola degli accessi Operazione 1 Concetto Costrutto Accessi Tipo operazione UTENTE Entità 1 R Entità 15 R COPIA Entità 15 R Costo operazione 31 R Totale costo 31 * 150 (frequenza operazione) = 4650 Operazione 2: #Tessera Tessera_bloccata Multa Tot_Avvisi Data_riconsegna UTENTE AVG = 15 Data_inizio PRESTITO #Avvisi Dati anagrafici Numero_telefonico Indirizzo Città Via Numero_civico CAP Codice_copia AVG = 5 COPIA Tavola degli accessi Operazione 2 Concetto Costrutto Accessi Tipo operazione UTENTE Entità 1 R PRESTITO Relazione 15 R 13

14 Costo operazione 16 R Totale costo 16 * 60 (frequenza operazione) = 960 Operazione 3: Data_morte (0, 1) AUTORE AVG = SCRITTO (1, N) (0, 1) Città_di_appartenenza Anno_pubblicazione (0, 1) AVG = 2 AVG = 2 AVG = 8000 RELATIVA (1, N) Codice_copia Disponibilità COPIA 15 #Sezione #Scaffale EDITORE 200 AVG = 300 AVG = 1 PUBBLICAZIONE COLLOCAZIONE AVG = AVG = POSIZIONE APPARTENENZA (1, N) AVG = 25 #Ordine_nella_collana (0, 1) AVG = 0, CITA A AVG = 3 CITAZIONI AVG = 3 CITATO DA COLLANA 480 Lingua LIBRO MANUALE GENERE 25 NARRATIVA AVG = 1 AVG = 1000 INCLUSO SAGGISTICA Tavola degli accessi 14

15 Operazione 3 Concetto Costrutto Accessi Tipo operazione Entità 1 W LIBRO Entità 1 W COPIA Entità 2 L RELATIVA Relazione 2 W AUTORE Entità 2 W EDITORE Entità 1 W PUBBLICAZIONE Relazione 1 W POSIZIONE Entità 1 W CITAZIONI Relazione 3 W COLLANA Entità 1 L APPARTENENZA Relazione 1 W GENERE Entità 1 L INCLUSO Relazione 1 W Costo operazione 14 W + 4 R = 18 Totale costo 18 * 8 (frequenza operazione) = 144 Operazione 4: Data_morte (0, 1) AUTORE AVG = 12 SCRITTO (1, N) AVG = 2 #Sezione #Scaffale (0, 1) Città_di_appartenenza Anno_pubblicazione (0, 1) AVG = 1 AVG = 1 COLLOCAZIONE POSIZIONE PUBBLICAZIONE AVG = EDITORE AVG = Lingua LIBRO MANUALE Tavola degli accessi Operazione 4 Concetto Costrutto Accessi Tipo operazione Entità 1 R LIBRO Entità 1 R AUTORE Entità 2 R 15

16 EDITORE Entità 1 R POSIZIONE Entità 1 R Costo operazione 6 R Totale costo 6 * 3600 (frequenza operazione) = Operazione 5: AUTORE Data_morte (0, 1) AVG = 12 SCRITTO (1, N) AVG = 2 AVG = 3 CITA A AVG = 3 CITAZIONI CITATO DA Tavola degli accessi Operazione 5 Concetto Costrutto Accessi Tipo operazione Entità 1 R CITAZIONI Relazione 3 R AUTORE Entità 2 * 3 = 6 R Costo operazione 10 R Totale costo 10 * 600 (frequenza operazione) = 6000 Operazione 6: Data_morte (0, 1) AUTORE AVG = 12 (0, 1) Città_di_appartenenza SCRITTO (1, N) AVG = 2 Anno_pubblicazione (0, 1) PUBBLICAZIONE AVG = EDITORE AVG = 1 Tavola degli accessi Operazione 6 16

17 Concetto Costrutto Accessi Tipo operazione AUTORE Entità 1 R Entità 12 R PUBBLICAZIONE Relazione 1 * 12 = 12 R EDITORE Entità 1 * 12 = 12 R Costo operazione 37 R Totale costo 37 * 2400 (frequenza operazione) = Operazione 7: Prima di procedere alla cancellazione, si dovrà verificare se nell associazione SCRITTO esiste almeno una tupla in cui compare quell autore. Data_morte (0, 1) AUTORE AVG = 12 SCRITTO (1, N) AVG = Tavola degli accessi Operazione 7 Concetto Costrutto Accessi Tipo operazione AUTORE Entità 1 R SCRITTO Relazione 12 R AUTORE Entità 1 W Costo operazione 13 R + 1W = 14 Totale costo 14 * 1 (frequenza operazione) = 14 Operazione 8: 17

18 60000 Lingua LIBRO MANUALE GENERE 25 NARRATIVA AVG = 1 AVG = 1000 INCLUSO SAGGISTICA Tavola degli accessi Operazione 8 Concetto Costrutto Accessi Tipo operazione GENERE Entità 1 R Entità 1000 R Costo operazione 1001 R 1000 Totale costo 1000 * 1200 (frequenza operazione) = Operazione 9: In realtà questa operazione è composta da due fasi (o sotto-operazioni). Nella prima fase si visualizzano tutte le copie di un volume, specificando per ognuna se è disponibile per il prestito e si verifica se la tessera dell utente è attiva o bloccata. Nella seconda fase, che verrà eseguita solo se la tessera è attiva ed è presente almeno una copia di quel volume, verrà registrato il prestito. #Tessera Tessera_bloccata Multa Tot_Avvisi Data_riconsegna UTENTE PRESTITO Dati anagrafici (1, N) RELATIVA Tavola degli accessi Indirizzo AVG = 15 Data_inizio Numero_telefonico #Avvisi AVG = Disponibilità AVG = AVG = AVG = 8000 Città Via Numero_civico CAP Codice_copia COPIA 15 Prima fase Seconda fase Operazione 9 Concetto Costrutto Accessi Tipo operazione 18

19 Prima fase Entità 1 R RELATIVA Relazione 2 R COPIA Entità 2 R UTENTE Entità 1 R Costo prima fase 6 R Seconda fase Entità 1 R COPIA Entità 1 R UTENTE Entità 1 R PRESTITO Relazione 1 W Costo seconda fase 3 R + 1 W Costo operazione (entrambe le due fasi) 9 R + 1 W = 10 Totale costo 10 * 3000 (frequenza operazione) = Operazione 10: #Tessera Tessera_bloccata Multa Tot_Avvisi Data_riconsegna UTENTE PRESTITO AVG = AVG = 15 Data_inizio #Avvisi Dati anagrafici AVG = RELATIVA Numero_telefonico Disponibilità (1, N) AVG = Indirizzo AVG = 8000 Città Via Numero_civico CAP Codice_copia COPIA 15 Tavola degli accessi Operazione 10 Concetto Costrutto Accessi Tipo operazione Entità 1 R UTENTE Entità 1 R COPIA Entità 1 R PRESTITO Relazione 1 W RELATIVA Relazione 1 W Costo operazione 3 R + 2 W = 5 Totale costo 5 * 3000 (frequenza operazione) = Operazione 11: #Tessera 19

20 Tessera_bloccata Multa Tot_Avvisi Data_riconsegna UTENTE Dati anagrafici Indirizzo Numero_telefonico Data_inizio PRESTITO AVG = #Avvisi AVG = Disponibilità (1, N) AVG = 2 RELATIVA AVG = 8000 Città Via Numero_civico CAP Codice_copia COPIA 15 Considerando, ogni settimana, di avere in media 500 volumi in prestito, si ottiene: Tavola degli accessi Operazione 11 Concetto Costrutto Accessi Tipo operazione PRESTITO Relazione R Entità 500 R UTENTE Entità 500 R Costo operazione R Totale costo * 4 (frequenza operazione) = Operazione 12: #Tessera Tessera_bloccata Multa Tot_Avvisi UTENTE Dati anagrafici Indirizzo Città Via Numero_telefonico Numero_civico CAP Considerando, ogni settimana, di avere in media 2 utenti che hanno accumulato dieci o più avvisi, si ottiene: Tavola degli accessi Operazione 12 Concetto Costrutto Accessi Tipo operazione UTENTE Entità R UTENTE Entità 2 W Costo operazione R + 2 W Totale costo * 12 (frequenza operazione) = d. Analisi delle ridondanze Analizzando lo schema concettuale finale, due sono gli attributi ridondanti: Tot_avvisi (nell entità UTENTE) e Disponibilità (nell associazione RELATIVA). Il primo è ridondante in quanto nell associazione PRESTITO è presente l attributo #Avvisi che, per ogni prestito, ci dice quanti avvisi ha ricevuto quell utente per avere riconsegnato in ritardo quel volume. Il totale degli avvisi è 20

21 quindi facilmente ottenibile analizzando tutti i prestiti di un utente e sommando via via il valore memorizzato nello attributo #Avvisi. Il secondo, invece, ci indica se una certa copia di un volume è, oppure no, disponibile. Senza l attributo sarebbe ugualmente possibile avere questa informazione, basterà infatti analizzare l associazione PRESTITO per vedere se la copia del volume cercata è attualmente in mano ad un utente (se esiste almeno una tupla di PRESTITO dove compare quella copia, quel volume e l attributo Data_riconsegna è uguale a NULL) oppure è presente in biblioteca (tutte le tuple di prestito relative a quella copia ed a quel volume hanno la Data_riconsegna diversa da NULL). Analisi dell attributo Tot_avvisi: L attributo viene usato nell operazione 12, quindi guardiamo in quale caso, con o senza attributo, questa ha il costo minore. con l attributo: Lo schema di navigazione e la tavola degli accessi sono gli stessi della pagina 21. La stessa cosa vale per il costo dell operazione che è senza l attributo: Tessera_bloccata Multa Data_riconsegna #Tessera UTENTE PRESTITO AVG = 15 Data_inizio #Avvisi Dati anagrafici Indirizzo Numero_telefonico Città Via Numero_civico CAP Codice_copia COPIA Tavola degli accessi Operazione 12 Concetto Costrutto Accessi Tipo operazione UTENTE Entità R PRESTITO Relazione * 15 = R UTENTE Entità 2 W Costo operazione R + 2 W Totale costo * 12 (frequenza operazione) = Guardando i costi in entrambi i casi, risulta che è conveniente tenere l attributo Tot_avvisi, perché ci risparmia quasi letture. Questa soluzione, però, comporterà un aumento dell occupazione di memoria. Tenendo conto che ci basta memorizzare fino a 10 avvisi, l attributo potrà essere codificato con 4 bit; lo spazio in più che viene richiesto è pari a: (numero di tuple di UTENTE) * 4 bit = bit = 10kB Prezzo che si paga volentieri per risparmiare tutte quelle letture. 21

22 Analisi dell attributo Disponibilità: L attributo viene usato nell operazione 9, o meglio nella prima fase di questa operazione. Procediamo, quindi, a verificare in quale caso, con o senza attributo, questa ha il costo minore. con l attributo: Lo schema di navigazione e la tavola degli accessi sono gli stessi della pagina 19. La stessa cosa vale per il costo della prima fase dell operazione che è 6. senza l attributo: Tessera_bloccata Multa Tot_Avvisi Data_riconsegna #Tessera UTENTE PRESTITO AVG = 15 Data_inizio #Avvisi Dati anagrafici AVG = Numero_telefonico Indirizzo Città Via Numero_civico CAP Codice_copia AVG = (1, N) RELATIVA AVG = AVG = 8000 COPIA 15 Prima fase Tavola degli accessi Operazione 9 Concetto Costrutto Accessi Tipo operazione Prima fase Entità 1 R COPIA Entità 2 R UTENTE Entità 1 R PRESTITO Relazione 2 R Costo prima fase 6 R Se guardiamo al numero degli accessi, avere oppure no l attributo è insignificante. Se guardiamo all occupazione di area che introduce: (tuple della relazione RELATIVA) * 1 bit (1 = disponibile e 0 = non disponibile) = bit = 15kB Lasciare l attributo non comporta vantaggi dal punto di vista degli accessi e inoltre occupa anche memoria, ma siccome l occupazione di memoria è minima e la presenza dell attributo ci semplificherà la traduzione in query mysql dell operazione 9, decidiamo di lasciarlo. 3e. Eliminazione delle gerarchie Ci sono più metodi per eliminare le generalizzazioni. Tenendo conto che, ossia l entità padre, ha quattro attributi, e che quasi tutte le operazioni si riferiscono ad essa piuttosto che ai suoi figli, è sconveniente sia l eliminazione del padre, che l introduzione di relazioni tra il padre e i figli. Una soluzione migliore è quella di collassare le entità figlie, LIBRO e MANUALE, nell entità padre, aggiungendo in quest ultimo un attributo selettore chiamato Categoria che non sarà mai NULL perché la generalizzazione è totale. 22

23 Per quanto riguarda le altre due generalizzazioni, che ora passano all entità, anche queste saranno collassate nell entità, alla quale si dovrà aggiungere un altro attributo chiamato Sottocategoria che sarà anch esso sempre diverso da NULL, perché le generalizzazioni sono totali. Si può notare che preleva dai figli attributi che hanno lo stesso significato, quindi tra gli attributi Lingua (di LIBRO), Lingua (di ALTRO), Prima_lingua e Seconda_lingua (di DIZIONARIO) lasciamo solo gli ultimi due (rinominando Prima_lingua in Lingua), perché inglobano anche i primi. La cardinalità di Lingua e di Seconda_lingua resteranno le stesse. Per quanto riguarda le associazioni che collegavano i figli alle entità GENERE e MATERIA, queste passeranno ora a, eliminando una relazione tra ABBINATO e ASSOCIATO, perché due sarebbero ridondanti. Lasciamo l associazione ASSOCIATO (che avrà un volume dei dati pari ad ASSOCIATO più ABBINATO), ma la cardinalità tra la relazione e l entità dovrà cambiare da a (0, 1), questo perché ad esempio un dizionario, o un libro di narrativa, non sono associati a nessuna materia. La stessa cosa vale per la relazione INCLUSO, la cui cardinalità passa ugualmente da a (0, 1). Dopo le ultime modifiche lo schema diventa: Data_morte (0, 1) #Tessera AUTORE Tessera_bloccata Multa Tot_Avvisi UTENTE Dati anagrafici Indirizzo Città Via SCRITTO (1, N) Data_riconsegna PRESTITO Data_inizio #Avvisi Numero_telefonico (1, N) RELATIVA Disponibilità Numero_civico CAP Codice_copia COPIA (0, 1) Città_di_appartenenza #Sezione #Scaffale Anno_pubblicazione (0, 1) EDITORE PUBBLICAZIONE COLLOCAZIONE POSIZIONE #Ordine_nella_collana CITA A APPARTENENZA (1, N) COLLANA (0, 1) Seconda_lingua (0, 1) Lingua CITATO DA Categoria Sottocategoria CITAZIONI GENERE INCLUSO 3f. Eliminazione degli attributi composti (0, 1) (0, 1) ASSOCIATO MATERIA Si presentano i seguenti attributi composti: #Tessera Tessera_bloccata Multa Tot_Avvisi UTENTE Dati anagrafici Indirizzo Città Via 23 Numero_telefonico Numero_civico

24 Per quanto riguarda l attributo composto Indirizzo, verrà privato di tutti i suoi attributi semplici e verrà trasformato esso stesso in un attributo semplice. Questo dovrà comunque inglobare tutte le altre informazioni eliminate. L attributo composto Dati anagrafici verrà invece collassato e tutti i suoi attributi passeranno direttamente all entità UTENTE. Si ottiene così: #Tessera Tessera_bloccata Multa Tot_Avvisi UTENTE Indirizzo Numero_telefonico 3g. Eliminazione degli identificatori esterni E presente il seguente identificatore esterno: #Sezione #Scaffale COLLOCAZIONE POSIZIONE Per eliminarlo basta aggiungere la chiave dell entità, ossia, nell entità posizione. Dopo questa modifica si ottiene: #Sezione #Scaffale COLLOCAZIONE POSIZIONE 3h. Scelta delle chiavi Le chiavi sono le stesse della tabella a pagina 11 e 12. Ma ci sono alcuni aspetti da chiarire per tre entità. UTENTE: Come chiavi candidate c erano il numero della tessera (#Tessera) e la chiave composta dai seguenti attributi:, e Data_Nascita. Si è scelta la prima perché è migliore una chiave semplice di una composta. : Come chiavi candidate c erano il codice del volume () e la chiave composta dai seguenti attributi:,, Autore ed Editore, dove gli ultimi due sono attributi esterni. Anche in questo caso, per lo stesso motivo precedente, la prima ipotesi è la migliore. AUTORE: Le specifiche non richiedevano in questo caso un particolare attributo codice, che identificasse univocamente gli elementi, quindi l unica chiave candidata è quella composta dagli attributi:, e. In realtà si può prendere in considerazione l inserimento di un attributo Codice_autore che identifichi univocamente un autore, in modo da ottenere una chiave semplice invece di una composta. Oltretutto questa soluzione, incrementerebbe si l occupazione 24

25 di area dell entità AUTORE, ma ridurrebbe quella dell associazione SCRITTO. Calcolando di aver bisogno di 40 byte per la chiave composta e 16 bit per il nuovo attributo (che ci bastano per memorizzare fino a circa autori): Occupazione di memoria senza Codice_autore SCRITTO (numero tuple) * 40 byte = 4,8MB Occupazione di memoria con Codice_autore SCRITTO (numero tuple) * 16 bit = 240kB AUTORE (numero tuple) * 16 bit = 20kB Guardando ai valori ottenuti si conclude che conviene inserire l attributo Codice_autore e verrà usato come chiave dell entità AUTORE. 4. Progettazione logica 4a. Traduzione di entità e associazioni in relazioni del modello relazionale Entità/Relazione Utente Volume Autore Scritto Copia Relativa Editore Prestito Posizione Collana Appartenenza Citazioni Genere Materia Incluso Associato Traduzione Utente (Tessera,,,, Indirizzo, Numero_telefonico, Tot_avvisi, Multa, Tessera_bloccata) Nota: E stato rinominato #Tessera in Tessera. Volume (,, Edizione, Editore, Anno_pubblicazione, Categoria, Sottocategoria, Lingua, Seconda_lingua, ) Nota: E stato rinominato in Edizione. Autore (Codice_autore,,,, Data_morte) Volume_Autore (Volume, Autore) Nota: Sono stati rinominati e Codice_autore in Volume e Autore. Inoltre la relazione non è stata chiamata Scritto ma Volume_Autore. Copia (Codice_copia) Volume_Copie (Volume, Copia, Disponibilità) Nota: Sono stati rinominati e Codice_copia in Volume e Copia. Inoltre la relazione non è stata chiamata Relativa ma Volume_Copie. Editore (, Città_di_appartenenza) Prestito (Volume, Copia, Utente, Data_inizio, Data_riconsegna, Avvisi) Nota: Sono stati rinominati, Codice_copia, #Tessera e #Avvisi in Volume, Copia, Utente e Avvisi. Per identificare un prestito non basterà solo Volume, Copia e Utente, ma anche Data_inizio, perché lo stesso utente potrebbe aver affittato la stessa copia dello stesso volume per più volte. Posizione (, Sezione, Scaffale) Nota: Sono stati rinominati #Sezione e #Scaffale in Sezione e Scaffale. Collana () Volume_Collana (Volume, Collana, Ordine_nella_collana) Nota: Sono stati rinominati (della relazione Collana), #Ordine_nella_collana e in Collana, Ordine_nella_collana e Volume. Inoltre la relazione non è stata chiamata Appartenenza ma Volume_Collana. Citazioni (Volume, Volume_citato) Nota: Sono stati rinominati i due in Volume e Volume_citato. Genere () Materia () Volume_Genere (Volume, Genere) Nota: Sono stati rinominati e (della relazione Genere) in Volume e Genere. Inoltre la relazione non è stata chiamata Incluso ma Volume_Genere. Volume_Materia (Volume, Materia) Nota: Sono stati rinominati e (della relazione Materia) in Volume e 25

26 Materia. Inoltre la relazione non è stata chiamata Associato ma Volume_Materia. 4b. Normalizzazione Le relazioni Volume, Autore, Volume_Copie, Editore, Prestito, Posizione, Volume_Collana, Volume_Genere, e Volume_Materia sono in forma normale di Boyce e Codd, perché le uniche dipendenze funzionali sono o quelle banali o dipendenze tra un qualunque attributo non primo e la chiave. Le relazioni Volume_Autore, Copia, Collana, Citazioni, Genere e Materia hanno solo attributi primi, quindi le uniche dipendenze funzionali sono quelle banali e pertanto anche queste relazioni sono in forma normale di Boyce e Codd. L unica relazione che non è in forma di Boyce e Codd è Utente, perché è presente una dipendenza funzionale tra Indirizzo e Numero_telefonico: Numero_telefonico -> Indirizzo, e il primo non fa parte di una chiave. La soluzione sarà di decomporre la relazione Utente in due relazioni, la prima identica ad Utente senza il numero di telefono e la seconda del tipo: Rubrica (Utente, Numero_telefonico) dove è stato rinominato l attributo Tessera in Utente. Tutte le relazioni ora sono in BCNF e non presenteranno anomalie in fase di inserimento, modifica e cancellazione. 4c. Vincoli di integrità referenziale Attributo Editore (relazione Volume) Volume (relazione Volume_Autore) Autore (relazione Volume_Autore) Volume (relazione Volume_Copie) Copia (relazione Volume_Copie) Volume (relazione Prestito) Copia (relazione Prestito) Utente (relazione Prestito) (relazione Posizione) Collana (relazione Volume_Collana) Volume (relazione Collana) Volume (relazione Citazioni) Volume_citato (relazione Citazioni) Volume (relazione Volume_Genere) Genere (relazione Volume_Genere) Volume (relazione Volume_Materia) Materia (relazione Volume_Genere) Vincolato a (relazione Editore) (relazione Volume) Codice_autore (relazione Autore) Codice_Volume (relazione Volume) Codice_copia (relazione Copia) (relazione Volume) Codice_copia (relazione Copia) Tessera (relazione Utente) (relazione Volume) (relazione Collana) (relazione Volume) (relazione Volume) (relazione Volume) (relazione Volume) (relazione Genere) (relazione Volume) (relazione Materia) 4d. MySQL: definizione dello schema Si dovranno definire le tabelle in modo da consentire la cancellazione dei volumi, ed in tal caso si dovrà cancellare ogni riferimento a quel volume. Non importerà se si perdono le informazioni sui prestiti che lo riguardano, perché, non facendo più parte della biblioteca, non interessa più la sua storia. create database Biblioteca; create table Utente ( Tessera numeric(6) primary key, char varying(15) not null, char varying(15) not null, date not null, Indirizzo char varying(70) not null, Tot_avvisi numeric(2) not null default 0, Multa enum ( 0, 1 ) not null default 0, 26

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008. .: FastResearch :. Gestionale per Negozio Informatico

Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008. .: FastResearch :. Gestionale per Negozio Informatico Università degli studi di Urbino C.d.L : Informatica Applicata Anno Accademico : 2007/2008.: FastResearch :. Gestionale per Negozio Informatico..: Realizzato da Giorgio Rosolia Mat. 205993 :.. Corso: Basi

Dettagli

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

BASI DI DATI I. Progettazione di un DBMS per un negozio di materiale elettrico. Progetto realizzato da: Iero Demetrio Matricola: 106857

BASI DI DATI I. Progettazione di un DBMS per un negozio di materiale elettrico. Progetto realizzato da: Iero Demetrio Matricola: 106857 BASI DI DATI I Progettazione di un DBMS per un negozio di materiale elettrico Progetto realizzato da: Iero Demetrio Matricola: 106857 DESCRIZIONE DELLA REALTA' Si vuole realizzare un DBMS per la gestione

Dettagli

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti.

Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Impresa di raccolta e riciclaggio di materiali metallici e di rifiuti. Indice Cognome Nome Matr.xxxxxx email Cognome Nome Mat. Yyyyyy email Argomento Pagina 1. Analisi dei requisiti 1 a. Requisiti espressi

Dettagli

Laboratorio di Basi di Dati Esercizio 8.1

Laboratorio di Basi di Dati Esercizio 8.1 Laboratorio di Basi di Dati Esercizio 8.1 Pierluigi Pierini Technolabs S.p.a. Pierluigi.Pierini@technolabs.it Università degli Studi di L Aquila Dipartimento di Informatica Technolabs S.p.A. R&D Department

Dettagli

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale

Informatica Industriale Modello funzionale: Informazione Progettazione concettuale DIIGA - Università Politecnica delle Marche A.A. 2006/2007 Informatica Industriale Modello funzionale: Informazione Progettazione concettuale Luca Spalazzi spalazzi@diiga.univpm.it www.diiga.univpm.it/~spalazzi/

Dettagli

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE

I livelli di progettazione possono essere così schematizzati: Esistono tre tipi diversi di modelli logici: Modello gerarchico: Esempio SPECIFICHE I DATABASE o basi di dati possono essere definiti come una collezione di dati gestita dai DBMS. Tali basi di dati devono possedere determinati requisiti, definiti come specifiche, necessarie per il processo

Dettagli

Capitolo 8. Esercizio 8.1

Capitolo 8. Esercizio 8.1 Capitolo 8 Esercizio 8.1 Si consideri lo schema Entità-Relazione ottenuto come soluzione dell esercizio 7.4. Fare delle ipotesi sul volume dei dati e sulle operazioni possibili su questi dati e, sulla

Dettagli

Termine Descrizione Sinonimo Collegamenti Lettore Una persona che prende in Utente

Termine Descrizione Sinonimo Collegamenti Lettore Una persona che prende in Utente Capitolo 7 Esercizio 7.1 Si desidera automatizzare il sistema di prestiti di una biblioteca. Le specifiche del sistema, acquisite attraverso un intervista con il bibliotecario, sono quelle riportate in

Dettagli

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1]

Progettazione di basi di dati. Progettazione di basi di dati. Ciclo di vita dei sistemi informativi. Fasi del ciclo di vita [1] Progettazione di basi di dati Progettazione di basi di dati Requisiti progetto Base di dati Struttura Caratteristiche Contenuto Metodologia in 3 fasi Progettazione concettuale Progettazione logica Progettazione

Dettagli

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER Basi di Dati Progettazione del Modello ER Dai requisiti allo schema ER Entità, relazioni e attributi non sono fatti assoluti dipendono dal contesto applicativo Nella pratica si fa spesso uso di una strategia

Dettagli

INSERIMENTO DATI BASILARI

INSERIMENTO DATI BASILARI PASSO PASSO. Questo applicativo software nasce con l idea di essere molto semplice da usare. Di fatto lo è ed infatti non dispone di un help in linea all interno dello stesso. Tuttavia ci sentiamo in dovere

Dettagli

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni

Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni LA PROGETTAZIONE DI BASI DI DATI Progettare una basi di dati vuole dire progettare la struttura dei dati e le applicazioni La progettazione dei dati è l attività più importante Per progettare i dati al

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Progettazione di un DB....in breve

Progettazione di un DB....in breve Progettazione di un DB...in breve Cosa significa progettare un DB Definirne struttura,caratteristiche e contenuto. Per farlo è opportuno seguire delle metodologie che permettono di ottenere prodotti di

Dettagli

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore

Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore Basi di Dati corso C Esercitazione 18/12/2002 Autonoleggio tempo: 3 ore Si vuole progettare una base di dati per conto di una società convenzionata con un aeroporto, che gestisce il noleggio di automobili

Dettagli

Manuale. Gestione biblioteca scolastica by Rosset Pier Angelo is licensed under a Creative Commons

Manuale. Gestione biblioteca scolastica by Rosset Pier Angelo is licensed under a Creative Commons Manuale Gestione biblioteca scolastica by Rosset Pier Angelo is licensed under a Creative Commons Premessa Gestione Biblioteca scolastica è un software che permette di gestire in maniera sufficientemente

Dettagli

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO

INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Basi di dati: Microsoft Access INFORMATICA PER LE APPLICAZIONI ECONOMICHE PROF.SSA BICE CAVALLO Database e DBMS Il termine database (banca dati, base di dati) indica un archivio, strutturato in modo tale

Dettagli

Database 1 biblioteca universitaria. Testo del quesito

Database 1 biblioteca universitaria. Testo del quesito Database 1 biblioteca universitaria Testo del quesito Una biblioteca universitaria acquista testi didattici su indicazione dei professori e cura il prestito dei testi agli studenti. La biblioteca vuole

Dettagli

Prova scritta del corso di Basi di dati attive 17 Dicembre 1999. Agenzia

Prova scritta del corso di Basi di dati attive 17 Dicembre 1999. Agenzia Prova scritta del corso di Basi di dati attive 17 Dicembre 1999 Si desidera automatizzare la gestione dei banchetti organizzati da un agenzia di pubbliche relazioni. Le specifiche del sistema informativo,

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

Design di un database

Design di un database Design di un database Progettare un database implica definire quanto i seguenti aspetti: Struttura Caratteristiche Contenuti Il ciclo di design di un database si suddivide in tre fasi principali: progettazione

Dettagli

Fasi del progetto ( 1 )

Fasi del progetto ( 1 ) Progetto 2004-2005 2005 Esercitazione delle lezioni 2, 3 e 4. 1 Fasi del progetto ( 1 ) Analisi dettagliata delle specifiche fornite dal committente. Questa fase è fondamentale per capire a fondo quali

Dettagli

VIDES. Mariagrazia Rossi

VIDES. Mariagrazia Rossi VIDES Mariagrazia Rossi Sommario Descrizione della realtà... 2 Requisiti Funzionali... 2 Requisiti non Funzionali... 3 Dizionario dei termini... 3 Diagramma dei casi d uso... 4 CASI D USO... 7 Process

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Modello concettuale dei dati e Disegno Logico di un Database. L.Vigliano

Modello concettuale dei dati e Disegno Logico di un Database. L.Vigliano Modello concettuale dei dati e Disegno Logico di un Database Modello concettuale dei dati Progettare una base di dati significa definirne struttura, caratteristiche e contenuto. Uso di opportune metodologie.

Dettagli

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino Progettazione logica Progettazione logica Richiede di scegliere il modello dei dati!modello relazionale Obiettivo: definizione di uno schema logico relazionale corrispondente allo schema ER di partenza

Dettagli

Progettazione logica relazionale (1/2)

Progettazione logica relazionale (1/2) Progettazione di basi di dati (1/2) Introduzione Ristrutturazione dello schema ER Eliminazione delle gerarchie Partizionamento di concetti Eliminazione degli attributi multivalore Eliminazione degli attributi

Dettagli

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1

La progettazione concettuale: il modello ER. 17/12/2007 Unità di Apprendimento A2 1 La progettazione concettuale: il modello ER 17/12/2007 Unità di Apprendimento A2 1 1 La progettazione concettuale Prima di procedere con la progettazione concettuale è necessario effettuare un analisi

Dettagli

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS

CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS CONTENUTI: CREAZIONE DI UN DATABASE E DI TABELLE IN ACCESS Creazione database vuoto Creazione tabella Inserimento dati A) Creazione di un database vuoto Avviamo il programma Microsoft Access. Dal menu

Dettagli

Progetto Logos - Documentazione -

Progetto Logos - Documentazione - Progetto Logos - Documentazione - Marco Benvegnù Gianluca Marcante Simone Sanavio Roberto De Franceschi PM) Corso di Basi di Dati Corso di Laurea in Ingegneria Informatica A.A. 2002/2003 Progetto Logos

Dettagli

LA NORMALIZZAZIONE. Introduzione

LA NORMALIZZAZIONE. Introduzione LA NORMALIZZAZIONE Introduzione La normalizzazione e' una tecnica di progettazione dei database, mediante la quale si elimina la rindondanza dei dati al fine di evitare anomalie nella loro consistenza

Dettagli

LABORATORIO. 2 Lezioni su Basi di Dati Contatti:

LABORATORIO. 2 Lezioni su Basi di Dati Contatti: PRINCIPI DI INFORMATICA CORSO DI LAUREA IN SCIENZE BIOLOGICHE Gennaro Cordasco e Rosario De Chiara {cordasco,dechiara}@dia.unisa.it Dipartimento di Informatica ed Applicazioni R.M. Capocelli Laboratorio

Dettagli

1. I database. La schermata di avvio di Access

1. I database. La schermata di avvio di Access 7 Microsoft Access 1. I database Con il termine database (o base di dati) si intende una raccolta organizzata di dati, strutturati in maniera tale che, effettuandovi operazioni di vario tipo (inserimento

Dettagli

1 SPIEGAZIONE DEI DATI PRESENTI NELLA SCHERMATA DEI PRESTITI

1 SPIEGAZIONE DEI DATI PRESENTI NELLA SCHERMATA DEI PRESTITI CIRCOLAZIONE Prestiti/Restituzioni 1 - Spiegazione dei dati della schermata dei Prestiti 2 - Opzioni del Prestito 3 - Ricerca di un Utente 4 - Accesso al record (tessera) dell Utente 5 - Ricerca di un

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Traduzione da ER a Relazionale

Traduzione da ER a Relazionale Traduzione da ER a Relazionale Costruito lo schema concettuale (modello ER) occorre tradurre lo schema ottenuto in uno schema logico ad esso equivalente, nel nostro caso useremo il modello relazionale

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi

Dettagli

La Progettazione Concettuale

La Progettazione Concettuale La Progettazione Concettuale Università degli Studi del Sannio Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica CorsodiBasidiDati Anno Accademico 2006/2007 docente: ing. Corrado Aaron Visaggio

Dettagli

Vincoli di Integrità

Vincoli di Integrità Vincoli di Integrità Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2010-2011 Questi lucidi sono stati prodotti

Dettagli

Basi di Dati e Microsoft Access

Basi di Dati e Microsoft Access Basi di Dati e Microsoft Access Lun: 16-18 e Mer: 14-17 Alessandro Padovani padoale@email.it Database: definizione Un database (DB) è una collezione di informazioni organizzata in gruppi, che consentono

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

ITI Galilei Salerno Corso Database ed SQL

ITI Galilei Salerno Corso Database ed SQL ITI Galilei Salerno Corso Database ed SQL prof Carmine Napoli Introduzione Database: Si definisce Database un insieme di dati, di solito di notevoli dimensioni, raccolti, memorizzati ed organizzai in modo

Dettagli

Introduzione ai database I concetti fondamentali Database e DBMS Per comprendere appieno cos'è un Database e quali sono i vantaggi legati al suo impiego, soprattutto nel settore gestionale, è necessario

Dettagli

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Si formulino le seguenti interrogazioni tramite il linguaggio SQL: Informatica per le Scienze Umane - Corso di Laurea in Lettere Appello del 15.01.2009 - Docente: Massimo Coppola Modello Relazionale e SQL Si consideri la seguente base di dati relativa alla redazione di

Dettagli

Progettazione di una base di dati Ufficio della Motorizzazione

Progettazione di una base di dati Ufficio della Motorizzazione Corso di Gestione dell Informazione Studenti NON frequentanti A.A. 2008/2009 1 Scopo del progetto Progettazione di una base di dati Ufficio della Motorizzazione Si vuole realizzare un applicazione base

Dettagli

Concetti fondamentali dei database database Cos'è un database Principali database

Concetti fondamentali dei database database Cos'è un database Principali database Concetti fondamentali dei database Nella vita di tutti i giorni si ha la necessità di gestire e manipolare dati. Le operazioni possono essere molteplici: ricerca, aggregazione con altri e riorganizzazione

Dettagli

Basi di Dati Relazionali

Basi di Dati Relazionali Corso di Laurea in Informatica Basi di Dati Relazionali a.a. 2009-2010 PROGETTAZIONE DI UNA BASE DI DATI Raccolta e Analisi dei requisiti Progettazione concettuale Schema concettuale Progettazione logica

Dettagli

I Sistemi Informativi

I Sistemi Informativi I Sistemi Informativi Definizione Un Sistema Informativo è un mezzo per acquisire, organizzare, correlare, elaborare e distribuire le informazioni che riguardano una realtà che si desidera descrivere e

Dettagli

PROGETTAZIONE DI UN DATABASE

PROGETTAZIONE DI UN DATABASE Indice PROGETTAZIONE DI UN DATABASE 1.Il modello ER (entity relationship)...1 Generalità...1 I costrutti principali del modello...2 Entità...2 Associazioni...2 Attributi...2 Altri costrutti del modello...2

Dettagli

C A T A L O G O. Catalogo del Sistema Bibliotecario Padovano. Gruppo Lavoro per il Coordinamento dei Corsi all Utenza

C A T A L O G O. Catalogo del Sistema Bibliotecario Padovano. Gruppo Lavoro per il Coordinamento dei Corsi all Utenza C A T A L O G O Catalogo del Sistema Bibliotecario Padovano Gruppo Lavoro per il Coordinamento dei Corsi all Utenza Quando si usa un catalogo? Un catalogo permette di verificare se un documento, monografia

Dettagli

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO

DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO DESIGNAZIONE: Rappresenta una relazione tra due entità di tipo 1 ad M. Esempio tipico è : REPARTO ------- IMPIEGATO (designata) (designante) Viene rappresentata inserendo, nella tabella dell entità designante,

Dettagli

CAPITOLO 7 ESERCIZI SUL MODELLO ER

CAPITOLO 7 ESERCIZI SUL MODELLO ER CAPITOLO 7 (le soluzioni sono riportate da pag. 6 in poi) ESERCIZI SUL MODELLO ER Esercizio 1 Considerate lo schema ER in Figura 1: lo schema rappresenta varie proprietà di uomini e donne. a) Correggete

Dettagli

Pianificazione del data warehouse

Pianificazione del data warehouse Pianificazione del data warehouse Dalla pianificazione emergono due principali aree d interesse: area commerciale focalizzata sulle agenzie di vendita e area marketing concentrata sulle vendite dei prodotti.

Dettagli

Esame Basi di Dati. 21 Gennaio 2013

Esame Basi di Dati. 21 Gennaio 2013 Esame Basi di Dati 21 Gennaio 2013 Matricola Prog. (Sì/No) Cognome Nome Istruzioni I voti verranno resi disponibili su AlmaEsami. Chi vorrà rifiutare il voto dovrà comunicarlo tassativamente 5 giorni dalla

Dettagli

Identificatori delle entità

Identificatori delle entità Identificatori delle entità Permettono di identificare in maniera univoca le occorrenze delle entità Ogni entità deve averne (almeno) uno Targa Automobile Modello Colore Nome Persona Data di nascita Indirizzo

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

Biglietti e Ritardi: schema E/R

Biglietti e Ritardi: schema E/R Biglietti e Ritardi: schema E/R Ritardi: Progettazione dello schema di Fatto! Definire uno schema di fatto per analizzare i ritardi; in particolare l analisi deve considerare l aeroporto di partenza, mentre

Dettagli

Progettazione di Database

Progettazione di Database Progettazione di Database Progettazione Concettuale: strutturazione della realtà che si vuole rappresentare secondo uno schema concettuale Dallo schema concettuale si ricava lo schema del database relazionale

Dettagli

BASI DI DATI INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO PER L ANNO ACCADEMICO 2013 2014 Prof. Gigliola Vaglini, Ing. Francesco Pistolesi

BASI DI DATI INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO PER L ANNO ACCADEMICO 2013 2014 Prof. Gigliola Vaglini, Ing. Francesco Pistolesi BASI DI DATI INGEGNERIA INFORMATICA SPECIFICHE DI PROGETTO PER L ANNO ACCADEMICO 2013 2014 Prof. Gigliola Vaglini, Ing. Francesco Pistolesi 1 Descrizione dei requisiti delle fasi di progettazione Si desidera

Dettagli

ASSOWEB. Manuale Operatore

ASSOWEB. Manuale Operatore ASSOWEB Manuale Operatore Sistemi Internet per la gestione delle Associazioni dei Donatori di Sangue integrata con il sistema informativo del Servizio Trasfusionale L utilizzo delle più moderne tecnologie

Dettagli

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Raffinamento dello schema e forme normali 1 Forme Normali Le forme normali consentono di valutare la qualità delle relazione Sono state proposte diverse forme normali che includono, in ordine di generalità:

Dettagli

Progettazione Logica. Progettazione Logica

Progettazione Logica. Progettazione Logica Consorzio per la formazione e la ricerca in Ingegneria dell'informazione Tabelle per ogni concetto Docente: Cesare Colombo CEFRIEL colombo@cefriel.it http://www.cefriel.it Passaggio al modello logico (1)

Dettagli

Il diagramma dei casi d uso

Il diagramma dei casi d uso Il diagramma dei casi d uso Laboratorio di Ingegneria del Software Prof. Paolo Ciancarini Dott. Sara Zuppiroli A.A. 2010/2011 Lab di Ingegneria del Software () Il diagramma dei casi d uso A.A. 2010/2011

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER Caratteristiche generali del linguaggio SQL Il linguaggio SQL è il linguaggio usato per la gestione dei database relazionali, cioè dei database creati con un DBMS di tipo relazionale. Esso nacque nella

Dettagli

DD - Design Document

DD - Design Document Politecnico di Milano Progetto di Ingegneria del Software 2 DD - Design Document Autori: Claudia Foglieni Giovanni Matteo Fumarola Massimo Maggi Professori: Elisabetta Di Nitto Raffaela Mirandola 1 gennaio

Dettagli

GUIDA ALLE FUNZIONI DELL OPAC

GUIDA ALLE FUNZIONI DELL OPAC GUIDA ALLE FUNZIONI DELL OPAC Premessa... 2 Ricerca... 2 Ricerca semplice... 2 Ricerca multi-campo... 3 Ricerca avanzata... 3 Ricerca per scorrimento... 4 CCL... 5 Nuove acquisizioni... 5 Suggerimenti

Dettagli

ESAME di INFORMATICA e ARCHIVIAZIONE

ESAME di INFORMATICA e ARCHIVIAZIONE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Medicina e Chirurgia CORSO DI LAUREA IN TECNICHE DI RADIOLOGIA MEDICA PER IMMAGINI E RADIOTERAPIA ESAME di INFORMATICA e ARCHIVIAZIONE 22 giugno 2011 1 Progettazione

Dettagli

Prefazione Sistemi informativi e basi di dati Il modello relazionale Il modello ER

Prefazione Sistemi informativi e basi di dati Il modello relazionale Il modello ER Indice Prefazione XI 1 Sistemi informativi e basi di dati 1 1.1 La Gestione dell Informazione................... 1 1.1.1 Sistemi Informativi e Sistemi Informatici......... 1 1.2 Esempi di Sistemi Informativi...................

Dettagli

Progetto n.1: Student s Magazine 2.0

Progetto n.1: Student s Magazine 2.0 Progetto n.1: Student s Magazine 2.0 Requisiti Lo Student s Magazine 2.0 è un magazine on line a gestione distribuita. Non c è un organizzazione centrale, tutti gli utenti possono essere giornalisti e

Dettagli

Registrazione nuovo utente. Per registrare un nuovo utente cliccare sul link Registrazione

Registrazione nuovo utente. Per registrare un nuovo utente cliccare sul link Registrazione Manuale Gedos 2 Indice Indice... 3 Il Portale... 4 Registrazione nuovo utente... 5 Primo Logon... 8 Registrazione a Gedos... 9 Accesso ai Servizi... 11 Gestione Donatori... 12 Inserimento nuovo donatore...

Dettagli

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Vincoli di Integrità Approccio dichiarativo alla loro implementazione Vincoli di Integrità Approccio dichiarativo alla loro implementazione Antonella Poggi Dipartimento di informatica e Sistemistica SAPIENZA Università di Roma Progetto di Applicazioni Software Anno accademico

Dettagli

REALIZZAZIONE DI UN SISTEMA INFORMATIVO TRAMITE DIVERSI DATABASE

REALIZZAZIONE DI UN SISTEMA INFORMATIVO TRAMITE DIVERSI DATABASE UNIVERSITÀ DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA DELL INFORMAZIONE LAUREA TRIENNALE IN INGEGNERIA INFORMATICA REALIZZAZIONE DI UN SISTEMA INFORMATIVO TRAMITE DIVERSI DATABASE RELATORE: Prof.

Dettagli

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache... Appunti di Calcolatori Elettronici Concetti generali sulla memoria cache Introduzione... 1 Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

Dettagli

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso

2.0 Gli archivi. 2.1 Inserire gli archivi. 2.2 Archivio Clienti, Fornitori, Materiali, Noleggi ed Altri Costi. Impresa Edile Guida all uso 2.0 Gli archivi All interno della sezione archivi sono inserite le anagrafiche. In pratica si stratta di tutti quei dati che ricorreranno costantemente all interno dei documenti. 2.1 Inserire gli archivi

Dettagli

Basi di dati. Esercizi sul modello E.R.

Basi di dati. Esercizi sul modello E.R. Basi di dati Esercizi sul modello E.R. Esercizio 1, testo (1) Si vuole modellare un sistema per la gestione di visite mediche da svolgersi in diversi ambulatori medici Ogni visita è svolta in uno ed un

Dettagli

Esercizi di progettazione E-RE

Esercizi di progettazione E-RE Consorzio per la formazione e la ricerca in Ingegneria dell'informazione E-RE Sbagliando si impara 5 novembre 2003 Gennaro Pepe gennaro.pepe@cefriel.it Introduzione In questa presentazione si trovano tre

Dettagli

Progettazione di Database. Un Esempio

Progettazione di Database. Un Esempio Progettazione di Database Un Esempio Data Base Management System Applicazione 1 Applicazione 2 Applicazione 3 DBMS A B C D E Il Modello Relazionale Una relazione è costituita su un insieme di domini, non

Dettagli

Rappresentazione grafica di entità e attributi

Rappresentazione grafica di entità e attributi PROGETTAZIONE CONCETTUALE La progettazione concettuale, ha il compito di costruire e definire una rappresentazione corretta e completa della realtà di interesse, e il prodotto di tale attività, è lo schema

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

BASI DATI BIOINGEGNERIA ED INFORMATICA MEDICA. Lezione II - BioIngInfMed

BASI DATI BIOINGEGNERIA ED INFORMATICA MEDICA. Lezione II - BioIngInfMed BASI DATI BIOINGEGNERIA ED INFORMATICA MEDICA 1 Sistema Informativo Un sistema informativo (SI) è un componente di una organizzazione il cui obiettivo è gestire le informazioni utili per gli scopi dell

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili

Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili Monitoraggio della rete d assistenza Fase1 Anagrafica ASL Comuni - Assistibili Versione 1.1 30 Novembre 2004 Manuale_Utente_MRA.doc Pagina 1 di 97 Versione 1.1 Indice 1. Introduzione... 5 1.1 Definizioni...

Dettagli

Introduzione a MySQL

Introduzione a MySQL Introduzione a MySQL Cinzia Cappiello Alessandro Raffio Politecnico di Milano Prima di iniziare qualche dettaglio su MySQL MySQL è un sistema di gestione di basi di dati relazionali (RDBMS) composto da

Dettagli

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro 802749

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro 802749 Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006 Esercizi entità relazione risolti a cura di Angela Campagnaro 802749 Indice: Esercizio 1: Un insieme di officine 1.1 Testo esercizio.3

Dettagli

Lezione 2. Il modello entità relazione

Lezione 2. Il modello entità relazione Lezione 2 Il modello entità relazione Pag.1 Introduzione alla progettazione delle basi di dati 1. Analisi dei requisiti Quali sono le entità e le relazioni dell organizzazione? Quali informazioni su queste

Dettagli

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale Basi di Dati e Sistemi Informativi Progettazione logica: Il modello relazionale Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Introduzione Basato sul lavoro di Codd (~1970) E attualmente

Dettagli

Il modello Entity-Relationship per il progetto delle basi di dati

Il modello Entity-Relationship per il progetto delle basi di dati 1 Il modello Entity-Relationship per il progetto delle basi di dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Le metodologie di progettazione delle Basi di Dati 2 Una metodologia

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

Volumi di riferimento

Volumi di riferimento Simulazione seconda prova Esame di Stato Gestione di un centro agroalimentare all ingrosso Parte prima) Un nuovo centro agroalimentare all'ingrosso intende realizzare una base di dati per l'attività di

Dettagli

Sviluppare un DB step by step

Sviluppare un DB step by step Sviluppare un DB step by step Creare un nuovo database Per prima cosa creiamo un nuovo DB vuoto Access di default salverà il db dandogli come nome Database 1 se è già presente un file con tale nome Database

Dettagli

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

Ingegneria del Software: UML Class Diagram

Ingegneria del Software: UML Class Diagram Ingegneria del Software: UML Class Diagram Due on Mercoledì, Aprile 1, 2015 Claudio Menghi, Alessandro Rizzi 1 Contents Ingegneria del Software (Claudio Menghi, Alessandro Rizzi ): UML Class Diagram 1

Dettagli

Università degli Studi di Torino Facoltà di Economia

Università degli Studi di Torino Facoltà di Economia Università degli Studi di Torino Facoltà di Economia Corso di Information and Communication Technology II Progettazione di basi di dati: introduzione, il modello E-R, traduzione da E-R a relazionale --

Dettagli