PROGETTAZIONE DI UN DATABASE



Documenti analoghi
Strumenti di modellazione. Gabriella Trucco

Informatica (Basi di Dati)

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Organizzazione degli archivi

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

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

Progettaz. e sviluppo Data Base

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità

Rappresentazione grafica di entità e attributi

MODELLO RELAZIONALE. Introduzione

Progettazione base dati relazionale

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

Basi di dati Progettazione logica. Elena Baralis Politecnico di Torino

Identificatori delle entità

Progettazione Logica. Progettazione Logica

Progettazione di Basi di Dati

Introduzione alla progettazione. Metodologie e modelli per la progettazione di basi di dati. Il ciclo di vita dei sistemi informativi

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Progettazione di un DB....in breve

Basi di dati. Le funzionalità del sistema non vanno però ignorate

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

Progettazione logica relazionale (1/2)

PROGETTAZIONE CONCETTUALE

database: modello entityrelationship

MODELLO E/R. Modellazione dei dati

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

I database. Cosa sono e a cosa servono i Database

I Sistemi Informativi

Lezione 4. Modello EER

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

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

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

Fasi del progetto ( 1 )

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

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

BASI DI DATI - : I modelli di database

Progettazione di Database. Un Esempio

MODELLO E/R. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

Basi di Dati Relazionali

PROGETTAZIONE CONCETTUALE

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

Dalla progettazione concettuale alla modellazione di dominio

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Database. Si ringrazia Marco Bertini per le slides

Elena Baralis 2013 Politecnico di Torino 1

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

Progettazione concettuale

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

TEORIA sulle BASI DI DATI

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

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

Gestione Voti Scolastici

Data Base. Ing. Maria Grazia Celentano

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Lezione 2. Il modello entità relazione

CAPITOLO 7 ESERCIZI SUL MODELLO ER

Alessandra Raffaetà. Basi di Dati

BASE DI DATI: sicurezza. Informatica febbraio ASA

Il modello Entity-Relationship (ER)

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Vincoli di integrità

70555 Informatica Sicurezza Mario Rossi Anna Bianchi. Esempio istanza:

Il modello Entity-Relationship: elementi di base

Università degli Studi di Torino Facoltà di Economia

Informatica per l'impresa. Sistemi per la gestione di basi di Dati

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Modellazione dei dati in UML

Indice generale. OOA Analisi Orientata agli Oggetti. Introduzione. Analisi

Corso: Sistemi di elaborazione delle informazioni 2. Anno Accademico: 2007/2008. Docente: Mauro Giacomini

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

Basi di dati. Esercizi sul modello E.R.

Database 1 biblioteca universitaria. Testo del quesito

Progettazione di Database

Progettaz. e sviluppo Data Base

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

DATABASE RELAZIONALI

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

LE BASI DI DATI. Seconda parte La progettazione di database Relazionali SCHEMA CONCETTUALE LE ASSOCIAZIONI

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

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Corso di Informatica (Basi di Dati)

Progettazione di una base di dati Ufficio della Motorizzazione

Progetto Motorizzazione. Si vuole realizzare un'applicazione base di dati per la gestione di un ipotetico ufficio della motorizzazione.

Capitolo 8. Esercizio 8.1

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

Il Modello Relazionale

Lezione 5: Progettazione di Software e Database. Ingegneria del Software. Il Software 19/11/2011. Dr. Luca Abeti

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

11 - Progettazione Logica

Design di un database

Lezione 8. La macchina universale

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Introduzione alla teoria dei database relazionali. Come progettare un database

Progetto di basi di dati Laboratorio di diagnosi mediche

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

1. BASI DI DATI: GENERALITÀ

Corso di Basi di Dati A.A. 2013/2014

Transcript:

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 Cardinalità delle associazioni...2 Cardinalità degli attributi...2 Identificatori delle entità...3 Generalizzazioni...3 2.Progettazione dello schema (o modello) concettuale...5 3.Progettazione dello schema (o modello) logico...7 a. Analisi delle ridondanze...7 b. Rimozione delle generalizzazioni/specializzazioni...8 c. Partizione di:...9 entità...9 relazioni...10 d. Scelta delle chiavi...10 4.Traduzione nel modello logico...11 Relazione uno a molti...11 Relazione uno a molti con identificatore esterno...11 Relazione molti a molti:...12 Relazione uno ad uno (partecipazione obbligatoria per le entità)...12 Relazione uno ad uno (partecipazione opzionale per una entità)...13 Relazione uno ad uno (partecipazione opzionale per le due entità)...13 Relazione ricorsiva:...14 Relazione molti a molti ternaria...15 1.Il modello ER (entity relationship) In informatica, nell'ambito della progettazione dei database, il modello entity-relationship (anche detto modello entità-relazione, modello entità-associazione o modello E-R) è un modello per la rappresentazione concettuale dei dati ad un alto livello di astrazione. Viene spesso utilizzato nella prima fase della progettazione di una base di dati in cui è necessario tradurre le informazioni risultanti dall'analisi di un determinato dominio in uno schema concettuale. Generalità Il modello E-R si basa su un insieme di concetti molto vicini alla realtà di interesse: quindi facilmente intuibili dai progettisti (e in genere considerati sufficientemente comprensibili e significativi anche per i non-tecnici), ma non implementabili sugli elaboratori. Infatti, pur essendo orientato alla progettazione di basi di dati, il modello prescinde dai criteri specifici di organizzazione fisica dei dati persistenti nei sistemi informatici. Esistono tecniche per la traduzione dei concetti ad alto livello (meglio comprensibili per gli umani) in concetti di più basso livello tipici dei vari modelli logici (ad esempio il modello relazionale) implementati nei diversi DBMS esistenti. Il modello E-R ha rappresentato per lungo tempo (e forse ancora oggi) uno degli approcci più solidi per la modellazione di domini applicativi in ambito informatico; per questo motivo, è stato spesso a.s. 2011/2012 Pagina 1 di 16 Progettazione di un database

usato anche al di fuori del contesto della progettazione di database, ed è stato utilizzato come modello di riferimento per numerose altre notazioni per la modellazione. I costrutti principali del modello Analisi dei principali costrutti del modello E-R: entità, associazioni e attributi. Entità Rappresentano classi di oggetti (fatti, cose, persone,...) che hanno proprietà comuni ed esistenza autonoma ai fini dell'applicazione di interesse. Un'occorrenza di un'entità è un oggetto o istanza della classe che l'entità rappresenta. Non si parla qui del valore che identifica l'oggetto ma dell'oggetto stesso. Un'interessante conseguenza di questo fatto è che un'occorrenza di entità ha un'esistenza indipendente dalle proprietà ad essa associate. In questo, il modello E-R presenta una marcata differenza rispetto al modello relazionale nel quale non possiamo rappresentare un oggetto senza conoscere alcune sue proprietà. In uno schema, ogni entità ha un nome che la identifica univocamente, e viene rappresentata graficamente tramite un rettangolo con il nome dell'entità al suo interno. Associazioni Le associazioni (dette anche relazioni) rappresentano un legame tra due o più entità. Il numero di entità legate è indicato dal grado dell'associazione: un buono schema E-R è caratterizzato da una prevalenza di associazioni con grado due. È possibile legare un'entità con se stessa (attraverso un'associazione ad anello), nonché legare le stesse entità con più associazioni. Di norma viene rappresentata graficamente da un rombo contenente il nome dell'associazione. Il nome può essere un verbo in modo da fornire una direzione di lettura, oppure può essere un sostantivo in modo da non dare una direzione di lettura. L'orientamento accademico e professionale più recente propende per l'utilizzo del sostantivo proprio per evitare di dare un verso all'associazione. Attributi Le entità e le associazioni possono essere descritte usando una serie di attributi. Tutti gli oggetti della stessa classe entità (associazione) hanno gli stessi attributi: questo è ciò che si intende quando si parla di oggetti simili. La scelta degli attributi riflette il livello di dettaglio con il quale vogliamo rappresentare le informazioni sulle entità e sulle associazioni. Per ciascuna classe entità o associazione si definisce una chiave. La chiave è un insieme minimale di attributi che identifica univocamente un'istanza di entità o associazione. L'attributo si rappresenta con un'ellisse al cui interno viene specificato il nome dell'attributo o anche semplicemente, nel caso di diagrammi complessi, indicandone solo il nome, eventualmente in corrispondenza. In caso di chiave primaria, il nome dell'attributo viene sottolineato. Altri costrutti del modello Cardinalità delle associazioni Vengono specificate per ciascuna entità che partecipa a un'associazione e dicono quante volte, in una relazione tra entità, un'occorrenza di una di queste entità può essere legata ad occorrenze delle altre entità coinvolte nell'associazione (indica il minimo e il massimo delle occorrenze). Cardinalità degli attributi È possibile definire vincoli di cardinalità anche sugli attributi, con due scopi: indicare opzionalità indicare attributi multivalore a.s. 2011/2012 Pagina 2 di 16 Progettazione di un database

Se la specifica del vincolo manca, come avviene nella maggioranza dei casi, la cardinalità dell'attributo è (1,1). Consideriamo il seguente esempio: Poiché sul Nome manca la specifica del vincolo di cardinalità, vuol dire che la cardinalità è (1,1). (0,1) NumeroPatente, vuol dire che un impiegato può avere una patente ma anche non averla, o meglio un impiegato può avere al più una patente. (0,n) NumeroTelefono, vuol dire che un impiegato può avere molti numeri di telefono, ma può anche non aver alcun numero di telefono. (1,n) TitoloStudio, vuol dire che un impiegato può avere molti titoli di studio, ma deve averne almeno uno. Identificatori delle entità Costituiscono un sottoinsieme degli attributi di un'entità che identificano in maniera univoca ogni occorrenza della stessa entità. Un esempio può essere costituito dall'attributo CodiceFiscale dell'entità CittadinoItaliano. È infatti noto che ogni occorrenza dell'entità CittadinoItaliano, ossia ogni cittadino residente nel territorio della Repubblica Italiana, può essere inequivocabilmente identificato dal suo codice fiscale. Questo significa che non possono esistere due cittadini italiani aventi lo stesso codice fiscale. Generalizzazioni Rappresentano dei legami logici esistenti tra due o più entità. Tra le entità coinvolte si distinguono: una ed una sola entità padre una o più entità figlie Le entità figlie costituiscono dei "casi particolari" dell'entità padre. Ogni attributo dell'entità padre è anche attributo delle entità figlie, ma le entità figlie possono avere degli attributi che le differenziano dal padre e dai fratelli. Nell'esempio seguente si evidenzia che ogni persona è identificata da un codice fiscale ed è caratterizzata da un cognome, un nome e un'età ogni persona si distingue in uomo o donna. può essere valutata anche la posizione militare. Le generalizzazioni si distinguono in totali e parziali. Una generalizzazione è totale quando l'unione dei sottoinsiemi dei figli costituisce l'insieme del padre. Ad esempio la generalizzazione presentata in figura è totale poiché tutte le persone sono o uomini o donne, quindi, unendo i sottoinsiemi degli uomini e delle donne si ottiene l'insieme delle persone. Una generalizzazione è parziale quando invece l'unione dei sottoinsiemi dei figli non identifica globalmente l'insieme del padre. Ad esempio un'entità padre MezzoDiLocomozione con le entità figlie Bicicletta ed Automobile è una generalizzazione parziale, in quanto oltre alle biciclette ed alle automobili esistono altri mezzi di locomozione come ciclomotori, treni, navi, etc. L'unione dei sottoinsiemi Bicicletta e Automobile non è quindi sufficiente per identificare l'insieme padre MezziDiLocomozione. Una generalizzazione può essere inoltre esclusiva o sovrapposta. Una generalizzazione è esclusiva quando l'intersezione dei sottoinsiemi dei figli è vuota; è invece sovrapposta quando l'intersezione a.s. 2011/2012 Pagina 3 di 16 Progettazione di un database

dei sottoinsiemi dei figli non è vuota. Un'entità padre Lavoratore con le entità figlie Impiegato e Studente identifica una generalizzazione sovrapposta in quanto possono esistere degli impiegati che sono contemporaneamente studenti. In conclusione, una generalizzazione può essere: totale esclusiva (t,e) totale sovrapposta (t,s) parziale esclusiva (p,e) parziale sovrapposta (p,s) a.s. 2011/2012 Pagina 4 di 16 Progettazione di un database

2.Progettazione dello schema (o modello) concettuale Costrutto Entità Rappresentazione grafica Relazione Attributo semplice Attributo composto Cardinalità di una relazione Cardinalità di un attributo Identificatore o chiave (interna) Chiave composta (interna) Chiave composta (con esterna) Generalizzazione Entità: rappresentano classi di oggetti che hanno proprietà in comune ed un esistenza autonoma. Un istanza di un entità è un oggetto della classe rappresentata dall entità. a.s. 2011/2012 Pagina 5 di 16 Progettazione di un database

Attributo: descrive le proprietà elementari delle entità o delle relazioni. Il dominio di un attributo è l insieme dei valori ammissibili cioè dei valori che esso può assumere. Relazione: rappresenta il collegamento tra due o più entità. La maggior parte delle relazioni sono binarie (che coinvolgono due entità), ma esistono anche relazioni ternarie (che associano tre entità) e relazioni ricorsive (esempio: impiegato (entità) e collega (relazione) oppure: strada (entità) e incrocia (relazione)). Cardinalità: è specificata per ogni entità che partecipa ad una relazione e descrive il numero di volte minimo e massimo in cui un entità può partecipare alla relazione. Cardinalità di un attributo: può essere specificata per alcuni attributi di un entità o relazione e descrive il minimo ed il massimo numero di valori di un attributo associato ad un istanza di una entità (se la cardinalità di un attributo è (1,1) viene omessa; l attributo può anche essere opzionale, nel qual caso va specificato uno zero nella cardinalità: (0,N) ). Nota: gli attributi con cardinalità diversa da (1,1) vanno usati con grande attenzione Identificatore o chiave: deve essere specificato per ogni entità dello schema (o modello) concettuale e descrive i concetti che permettono di identificare senza alcuna ambiguità un istanza dell entità. In alcuni casi un identificatore è formato da uno o più attributi dell entità stessa; a volte invece gli attributi dell entità non sono sufficienti per riconoscere univocamente l istanza e quindi altre entità devono essere coinvolte nell identificazione (questo tipo di identificatore è chiamato identificatore esterno o chiave esterna). Generalizzazione: rappresenta un collegamento logico tra un entità E, nota come entità padre (o madre), e una o più entità E 1,,E n chiamate anche entità figlio: l entità E è più generale nel senso che comprende come caso particolare le entità E 1,,E n. In questa situazione E costituisce una generalizzazione di E 1,,E n mentre E 1,,E n costituiscono una specializzazione dell entità E. Ogni istanza di un entità figlio è anche un istanza dell entità padre. Ogni attributo dell entità padre è anche un attributo dell entità figlio (questa proprietà della generalizzazione è chiamata ereditarietà). Una generalizzazione si dice totale se ogni istanza dell entità padre è anche istanza di una delle entità figlio, altrimenti è chiamata parziale. Una generalizzazione si dice esclusiva se ogni istanza dell entità padre è al più un istanza di una delle entità figlio, altrimenti si dice sovrapposta. Esempi: la generalizzazione di persona in uomo e donna è totale ed esclusiva; la generalizzazione di veicolo in automobile e ciclomotore è parziale ed esclusiva; la generalizzazione di persona in studente e impiegato è parziale e sovrapposta. a.s. 2011/2012 Pagina 6 di 16 Progettazione di un database

3.Progettazione dello schema (o modello) logico Processo necessario per giungere allo schema logico: Modello concettuale Ristrutturazione del modello concettuale Processo di ristrutturazione del modello concettuale: a. Analisi delle ridondanze b. Rimozione delle generalizzazioni/spec. modello ristrutturato c. Partizione - fusione di entità e/o relazioni Traduzione in modello logico d. Scelta delle chiavi a. Analisi delle ridondanze a.s. 2011/2012 Pagina 7 di 16 Progettazione di un database

b. Rimozione delle generalizzazioni/specializzazioni Si parte da un modello E-R di questo tipo possibili trasformazioni: oppure: altra possibilità: a.s. 2011/2012 Pagina 8 di 16 Progettazione di un database

c. Partizione di: entità Esempio 1 che diventa Esempio 2 che diventa a.s. 2011/2012 Pagina 9 di 16 Progettazione di un database

relazioni d. Scelta delle chiavi Criteri di decisione: gli attributi con possibilità di contenere valori nulli non possono costituire chiavi primarie uno o pochi attributi sono preferibili a molti attributi Se non esiste un candidato che soddisfi i requisiti sopraesposti, è possibile introdurre un ulteriore attributo dell entità (codice o ID). a.s. 2011/2012 Pagina 10 di 16 Progettazione di un database

4.Traduzione nel modello logico Relazione uno a molti SQUADRA (IDsquadra, Nome, Citta, ColoreSquadra) GIOCATORE (IDgiocatore, Cognome, DataNascita, Posizione, CODsquadra, Salario) Relazione uno a molti con identificatore esterno UNIVERSITA (IDuniversita, Nome, Via, CAP, Citta) STUDENTE (IDstudente, CODuniversita, Cognome, Nome, DataNascita, AnnoIscrizione) a.s. 2011/2012 Pagina 11 di 16 Progettazione di un database

Relazione molti a molti: IMPIEGATO (IDimpiegato, Cognome, Nome, Salario) PROGETTO (IDprogetto, Nome, Budget) PARTECITA (CODimpiegato,CODprogetto,DataInizio) Relazione uno ad uno (partecipazione obbligatoria per le entità) DIRETTORE (IDdirettore, Nome, Cognome, Salario, DenominazioneDipartimento*, DataInizio) * unicità sul campo DenominazioneDipartimento DIPARTIMENTO (Denominazione, Telefono, Tipo) oppure DIRETTORE (IDdirettore, Nome, Cognome, Salario) DIPARTIMENTO (Denominazione, Telefono, Tipo, CODdirettore*, DataInizio) * unicità sul campo CODdirettore a.s. 2011/2012 Pagina 12 di 16 Progettazione di un database

altrimenti viene così trasformato: DIRETTORE (IDdirettore, Nome, Cognome, Salario) DIPARTIMENTO (CODdirettore, Denominazione, Telefono, Tipo, DataInizio) Relazione uno ad uno (partecipazione opzionale per una entità) IMPIEGATO (IDimpiegato, Nome, Cognome, Salario) DIPARTIMENTO (Denominazione, Telefono, Tipo, CODimpiegato*, DataInizio) * unicità sul campo CODimpiegato Relazione uno ad uno (partecipazione opzionale per le due entità) IMPIEGATO (IDimpiegato, Nome, Cognome, Salario) DIPARTIMENTO (Denominazione, Telefono, Tipo) GESTISCE (DenominazioneDipartimento*, CODimpiegato*, DataInizio) * unicità sia sul campo DenominazioneDipartimento che sul campo CODimpiegato a.s. 2011/2012 Pagina 13 di 16 Progettazione di un database

Relazione ricorsiva: STRADA (IDstrada, Nome, Lunghezza) INCROCIA (CODstrada1, CODstrada2, Semaforo) ATTORE (IDattore, Nome, Cognome, CODattoresostituto) Altri esempi di relazioni ricorsive DONNA 0:N 1:1 figlia di DONNA (IDdonna, Nome, Cognome, CODdonnamamma) a.s. 2011/2012 Pagina 14 di 16 Progettazione di un database

REGIONE 0:N 0:N confina con REGIONE (IDregione, Nome, Estensione) CONFINA (CODregione1, CODregione2) PERSONA 0:1 1:1 sposata con PERSONA (IDpersona, Nome, Cognome, CODpersonasposata*) * unicità sul campo CODpersonasposata Relazione molti a molti ternaria FORNITORE (IDfornitore, Denominazione) PRODOTTO (IDprodotto, Tipo) MAGAZZINO (IDmagazzino, Telefono) APPROVVIGIONARE(CODfornitore, CODprodotto, CODmagazzino, Quantità) Oppure a.s. 2011/2012 Pagina 15 di 16 Progettazione di un database

APPROVVIGIONARE(IDapprovvigionare, CODfornitore, CODprodotto, CODmagazzino, Quantità) Altro esempio (non tradotto in modello logico) PAZIENTE 1:N esame clinico MEDICO 1:N 1:N TIPOESAME a.s. 2011/2012 Pagina 16 di 16 Progettazione di un database