MODELLO ER Prof Fabio Cantaro 1 Introduzione Quotidianamente
MODELLO E/R Prof. Fabio Cantaro 1
Introduzione • Quotidianamente abbiamo a che fare con una grossa mole di dati => come organizzarli per recuperarli facilmente? Prof. Fabio Cantaro 2
Introduzione • Un esempio è la RUBRICA TELEFONICA: – Su carta ho un elenco di persone con numeri telefonici. – Pro: utile – Contro: poco efficiente: • Lentezza nello sfogliare • un unico criterio di ricerca: per cognome Prof. Fabio Cantaro 3
Introduzione • La rubrica è comunque un insieme di dati ORGANIZZATI in RECORD: – cognome – Nome – Inidirizzo – Numero telefonico Prof. Fabio Cantaro 4
Introduzione • Se per la rubrica utilizziamo il computer => Archiviazione Elettronica. • Fino a qualche anno fa si utilizzavano gli archivi, oggi i Data Base Prof. Fabio Cantaro 5
Introduzione • Gli Archivi erano un insieme di File a cui si accedeva tramite programmi scritti da programmatori e avevano molti problemi di sicurezza • I database sono simili agli Archivi: sono una evoluzione efficiente e permettono l’utilizzo anche a personale non tecnico Prof. Fabio Cantaro 6
Gli Archivi Un archivio è un insieme organizzato di informazioni caratterizzato da alcuni aspetti: • tra esse c’è un nesso logico (ad esempio nell’elenco telefonico: gli abbonati sono raggruppati per città di una provincia) • sono rappresentate tramite un formato (la disposizione delle righe dell’elenco: prima i nomi, poi i numeri di telefono, gli indirizzi, ecc…) • sono registrate su un supporto (in questo caso la carta) • sono organizzate per una semplice consultazione (stampati in ordine alfabetico) Prof. Fabio Cantaro 7
Operazioni sugli archivi 1. CREAZIONE dell’archivio stesso, su disco; 2. INSERIMENTO – MODIFICA inserimento di nuovi dati nell’archivio o aggiornamento (UPDATE) di dati già esistenti 3. INTERROGAZIONE (QUERY) reperimento di informazioni necessarie per l’elaborazione. La QUERY serve normalmente per visualizzare su monitor o per stampare su carta i dati richiesti. Prof. Fabio Cantaro 8
Applicazioni Gestionali(1) Le PROCEDURE per la gestione degli archivi • programmi per la creazione e la manutenzione degli archivi • e programmi per ritrovare i dati, tramite le Query Le MASCHERE Sono utilizzate dall’utente finale e sono degli schemi che permettono, in modo semplice, l’inserimento o l’aggiornamento dei dati a video. I REPORT • Elenchi su carta normale (es. listini prezzo, liste alfabetiche); • moduli prestampati in cui si stampano dati in posizioni prefissate sul foglio Prof. Fabio Cantaro 9
Applicazioni Gestionali(2) Di solito gli archivi sono: • ANAGRAFICHE: contengono informazioni di soggetti, persone o prodotti; • MOVIMENTI: riguardano eventi ai soggetti dell’anagrafica; • PARAMETRI: dati costanti nel tempo Esempio Nello studio Dentistico: • L’anagrafica è il parco CLIENTI (nome, cognome, ecc…) • i Movimenti le prestazioni del medico sui clienti; • i Parametri sono il COSTO, i MATERIALI usati, ecc… Prof. Fabio Cantaro 10
Basi di dati(1) Premessa In una SCUOLA, si consideri l’ARCHIVIO STUDENTI. Questi può essere usato: • Dalla SEGRETERIA, per fare i certificati • e dalla BIBLIOTECA, per registrare i prestiti dei libri Se uno studente cambia indirizzo e lo comunica solo alla segreteria => INCONGRUENZA dei dati => INCONSISTENZA degli archivi SOLUZIONE: utilizzare un unico archivio sia per la biblioteca che per la segreteria => GESTIONE INTEGRATA degli archivi Prof. Fabio Cantaro 11
Basi di dati(2) Una Base di Dati (DATABASE) è un insieme integrato di archivi, base comune di lavoro per gli utenti di applicazioni diverse Dopo aver creato il database si effettuano, similmente agli archivi, le operazioni (manutenzione) di: • MANIPOLAZIONE: inserimento, modifica, cancellazione • INTERROGAZIONE (Query): per ritrovare le informazioni che servono Prof. Fabio Cantaro 12
Basi di dati(3) ESEMPI DI DATABASE: • gestione di una biblioteca: libri, prestiti, soci, autori di libri, editori, ecc… • Gestione delle visite mediche: Pazienti, prenotazioni visite, tipi di visite, medicine, … • Gestione studenti universitari: Studente, esami, Materie, Tasse, Docenti, … • Archivio Bancario: Clienti, Conto. Correnti, Movimenti sui CC, dipendenti, Tipo. Contratti, offerte, ecc… • Campinato di Calcio: Calciatori, Squadre, Campionati, Allenatori, dirigenti, ecc… Prof. Fabio Cantaro 13
Basi di dati(4) Dopo una fase di progettazione, i database vengono implementati utilizzando dei software chiamati DBMS (Data Base Management System) Prof. Fabio Cantaro 14
Basi di dati(5) • i DBMS vengono usati: • da tecnici che costruiscono e gestiscono il database • da utenti che accedono ad una parte del database; Ad esempio gli sportellisti di una banca che effettuano transazioni Prof. Fabio Cantaro 15
Basi di dati(6) • Alcuni DBMS in commercio: • Microsoft ACCESS: database ad uso personale • Microsoft SQL Server • My. SQL (open source) • ORACLE • INFORMIX • Postgres • ecc… Prof. Fabio Cantaro 16
Modello Entità / Relazione Per realizzare un database c’è una fase preventiva di progettazione, cosi da costruire il MODELLO CONCETTUALE Lo strumento per la progettazione è lo SCHEMA E/R, che permette una modellizzazione della realtà tramite una rappresentazione grafica. Prof. Fabio Cantaro 17
Modellazione dei dati Modellare i dati significa: costruire una rappresentazione semplificata della realtà osservata, individuandone gli elementi caratterizzanti e i legami intercorrenti tra essi. Prof. Fabio Cantaro 18
Modello Entità / Relazione Tali elementi Caratterizzanti di un modello entità/associazioni sono: • entità, oggetto (concreto o astratto) che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. • attributi, proprietà di un’entità • associazioni, collegamento tra le entità Prof. Fabio Cantaro 19
Modellazione dei dati La progettazione di un modello di dati avviene su 3 livelli: 1. CONCETTUALE 2. LOGICO 3. FISICO Prof. Fabio Cantaro 20
Modellazione dei dati Realtà Modello concettuale Modello logico Modello fisico Rappresenta la realtà dei dati e le relazioni tra essi attraverso uno schema Rappresenta il modo (Modello E/R) attraverso cui i dati sono organizzati archivi Rappresentanegli l’effettiva elettronici. degli Descrive installazione archivi quindi la composizione ed elettronici il formato dei dati nel loro aspetto di struttura logica dei dati. Prof. Fabio Cantaro 21
Modellazione dei dati Il modello concettuale definisce tramite lo SCHEMA dei dati, cioè una rappresentazione INDIPENDENTE da: • dai valori assegnati ai dati • dalle applicazioni che useranno i dati • dalle viste parziali dei dati da parte degli utenti Prof. Fabio Cantaro 22
Il modello E/R Il modello entità/associazioni (Entity/Relationship) Relationship strumento utilizzato per costruire un modello concettuale dei dati indipendente dalle applicazioni. => risultato: lo schema E/R rappresentazione grafica che permette di individuare gli elementi del modello concettuale e le associazioni tra esse. Gli elementi di un modello entità/associazioni sono: • entità • associazioni, • attributi Prof. Fabio Cantaro 23
L’entità è un oggetto (concreto o astratto) che ha un significato anche quando viene considerato in modo isolato ed è di interesse per la realtà che si vuole modellare. Esempi di entità: una persona, un modello di automobile, un movimento contabile, una prova sostenuta da uno studente. Prof. Fabio Cantaro 24
L’entità Le entità possono essere classificate secondo un certo criterio di omogeneità definendo il tipo di entità attraverso un nome. Es. : • gli studenti di una scuola sono classificabili nel tipo entità Studente. • i diversi modelli di automobile sono classificabili nel tipo entità Automobile. Ciascuno studente rappresenta un’istanza dell’entità Studente. Ad esempio Fabio Carbone, Luigi Bianchi, ecc… sono istanze di Studenti. Prof. Fabio Cantaro II/II 25
L’entità Nella rappresentazione grafica le entità sono identificate con un rettangolo contenente all’interno il nome dell’entità. Ad Esempio la rappresentazione delle entità Studente, Automobile e Persona: STUDENTE AUTOMOBILE Prof. Fabio Cantaro PERSONA 26
ESERCIZIO Trovare le entità nelle seguenti realtà: • un film • Campionato di calcio • Corsi di informatica Prof. Fabio Cantaro 27
ESERCIZIO soluzione • Nel Film: Attore Regista Prof. Fabio Cantaro Film 28
ESERCIZIO soluzione • Nel Film: Attore Regista Film • Nel Campionato di calcio Campionato Calciatori Prof. Fabio Cantaro Allenatori 29
ESERCIZIO soluzione • Nel Film: Attore Regista Film • Nel Campionato di calcio Campionato Calciatori Allenatori • Corsi di informatica Corso Aule Docenti Corsisti • Se fosse stato gestione di un corso => l’entità CORSO non sarebbe servita Prof. Fabio Cantaro 30
Gli attributi Le proprietà delle entità e delle associazioni vengono descritte attraverso gli attributi Esempi di attributi per l’entità Automobile sono: Modello, Produttore, Cilindrata, Prezzo. Listino. AUTOMOBILE Prezzo. Listino Cilindrata Produttore Modello Prof. Fabio Cantaro 31
Lezione 2 Prof. Fabio Cantaro 32
Gli attributi Le caratteristiche di ogni attributo sono : • il formato: indica il tipo di valori che assume; i tre formati base sono: carattere, numerico, data/ora. • la dimensione indica la quantità massima di caratteri o cifre inseribili. • l’opzionalità indica la possibilità di non essere sempre valorizzato: l’attributo è obbligatorio se deve avere valore non nullo, facoltativo se sono accettabili valori nulli. Il valore nullo (in inglese Null) rappresenta un’informazione mancante, inapplicabile o sconosciuta. Prof. Fabio Cantaro 33
Gli attributi L’insieme dei possibili valori assunti da un attributo si chiama dominio dell’attributo. I valori appartenenti al dominio sono omogenei tra loro, cioè sono dello stesso tipo. Esempio: attributi di uno studente STUDENTE Nome {fabio, Antonio, ecc…} Cognome {Maldini, Del Piero, Vieri…} Matricola {numeri interi} Data Nascita {date} Data. Nascita Matricola Cognome NOME Oss. Età deriva da Data Nascita => definire solo gli attributi elementari e non quelli derivati Prof. Fabio Cantaro 34
Gli attributi Si indica con il termine chiave o chiave primaria (primary key) l’insieme di uno o più attributi che consentono di distinguere un’istanza dall’altra per la stessa entità. Nella descrizione grafica, gli attributi chiave vengono sottolineati (oppure se ne colora il cerchietto) Esempi: STUDENTE PRODOTTO Data. Nascita Matricola Cognome NOME Prof. Fabio Cantaro Prezzo Descrizione Codice 35
ESERCIZIO Trovare gli attributi e le Chiavi per le entità del precedente esercizio: • un film • Campionato di calcio • Corsi di informatica Prof. Fabio Cantaro 36
ESERCIZIO soluzione • Nel Film: id. Attore id. Regista specializzazione REGISTA ATTORE Anno Nascita Nome d’arte Cognome NOME id. Film ATTORE Anno Uscita Titolo Prof. Fabio Cantaro 37
ESERCIZIO soluzione • Nel Campionato di calcio • Calciatore (id. Calciatore, Nome, Cognome, Ruolo, Data. Nascita) • Allenatore(id. Allenatore, nome, cognome, data. Nascita) • Campionato(anno, num. Squadre, scudetto, …) Prof. Fabio Cantaro 38
ESERCIZIO soluzione • Corsi di informatica • Corso (id. Corso, Nome. Corso, durata. Ore, Costo, Data. Inizio) • Docenti(id. Docente, nome, cognome, Materia) • Studenti(Matricola, nome, cognome) • Aule (Id. Aula, nome. Aula, Istituto) Prof. Fabio Cantaro 39
VERIFICA 1 • Fare la verifica 1 sui database • File: 1_Concettibase_Database. doc Prof. Fabio Cantaro 40
L’associazione (relationship) un’interazione tra le entità. è un PERSONA legame che stabilisce AUTOMOBILE Ogni associazione ha due versi: • ogni verso ha un’entità di partenza e una di arrivo; • ogni verso inoltre ha una descrizione che consente di comprenderne il significato. Prof. Fabio Cantaro 41
L’associazione PERSONA Posseduta da Possiede AUTOMOBILE tra l’entità Persona e l’entità Automobile esiste un’associazione che può essere descritta secondo due versi: • una persona possiede una o più automobili; • un’automobile è posseduta da una persona. Prof. Fabio Cantaro 42
L’associazione Un altro simbolismo usato per descrivere un’associazione è un rombo con la descrizione dell’associazione: PERSONA Possiede Prof. Fabio Cantaro AUTOMOBILE 43
Gli attributi Nel caso del formalismo con il rombo gli ATTRIBUTI si possono cosi rappresentare: PERSONA Possiede Data. Acquisto AUTOMOBILE Prezzo. Acquisto Gli attributi Data. Acquisto e Prezzo. Acquisto non sono attributi né dell’entità Persona, né dell’entità Automobile, => sono attributi dell’associazione tra le due entità. Prof. Fabio Cantaro 44
Esercizi Determinare gli attributi delle seguentità e stabilire quale tra essi può svolgere la funzione di chiave primaria: 1. Veicolo immatricolato 2. Cittadino contribuente per il sistema fiscale 3. Film 4. Prodotto venduto in un centro commerciale Prof. Fabio Cantaro 45
Modello Entità / Relazione(4) Esempi di Associazioni: 1. Per conoscere le prove sostenute da uno studente, fissiamo un collegamento (EFFETTUA) tra le entità: Studente effettua PROVA 2. Per conoscere le automobili di una persona, fissiamo un collegamento (POSSIEDE) tra le entità: PERSONA Possiede Prof. Fabio Cantaro AUTOMOBILE 46
ESERCIZI In entrambi i formati, fare lo schema E/R rappresentando Entità e Associazioni. 1. Trovare le associazioni e il loro nome, tra Squadre di Calcio e Allenatori 2. Trovare le associazioni e il loro nome, Cantante e Canzone 3. Trovare le associazioni e il loro nome, tra Marito e Moglie Prof. Fabio Cantaro 47
Le associazioni tra entità (1) Cardinalità dell’associazione Un’associazione tra le entità può essere: • obbligatoria: quando il legame tra le entità deve essere sempre presente (linea continua nello Schema E/R) • opzionale: quando può essere presente (linea tratteggiata nello Schema E/R) PERSONA Intestato a CONTOCORRENTE Titolare di Prof. Fabio Cantaro 48
Le associazioni tra entità (2) Il grado di un verso dell’associazione indica quante istanze dell’entità di arrivo si associano all’istanza di partenza. Il grado può essere a uno oppure a molti e pertanto le associazioni tra due entità si classificano nei seguenti tipi: a. Associazione 1: 1 (uno a uno) o biunivoca ad ogni elemento del primo insieme E 1 corrisponde uno e un solo elemento del secondo insieme E 2, e viceversa. E 1 E 2 Ogni istanza della prima entità è associata ad una sola istanza della seconda entità e viceversa. Prof. Fabio Cantaro 49
Le associazioni tra entità (3) Esempio: l’associazione tra Studente e l’entità Diploma, in una scuola superiore, è biunivoca perché ad ogni studente corrisponde uno e un solo diploma. Il simbolismo che indica il grado a uno dell’associazione tra le entità è la linea stessa. STUDENTE 1 Rilasciato Possedere 1 Attestato di DIPLOMA Patente – Automobilista, ecc… Prof. Fabio Cantaro 50
Le associazioni tra entità (3) Rappresentazione alternativa (0, 1) STUDENTE Possi ede (1, 1) Attestato di DIPLOMA Uno studente può possedere 0 o al più 1 attestato di diploma Prof. Fabio Cantaro 51
Le associazioni tra entità (3) Rappresentazione alternativa (0, 1) STUDENTE Possi ede (1, 1) Attestato di DIPLOMA Un Attestato è posseduto da almeno 1 studente ed al più da 1 studente (uno e uno solo) Prof. Fabio Cantaro 52
Le associazioni tra entità b. Associazione 1: N (uno a molti) o semplice ad un elemento di E 1 possono corrispondere più elementi di E 2, mentre ad ogni elemento di E 2 deve corrispondere uno e un solo elemento di E 1 E 2 Ogni istanza della prima entità si può associare a uno o più istanze della seconda entità, mentre ogni istanza della seconda entità si deve associare ad una sola istanza della prima. Prof. Fabio Cantaro 53
Le associazioni tra entità Esempio: gestione movimenti su un conto corrente. Su ogni conto si possono effettuare una o più operazioni, ma ogni movimento si riferisce ad un solo conto corrente. Riferito a 1 CONTOCORRENTE Movimentato da N Prof. Fabio Cantaro MOVIMENTO 54
Le associazioni tra entità il verso Movimentato da (opzionale) è di grado a molti, mentre il verso Riferito a (obbligatorio) è di grado a uno. Riferito a 1 CONTOCORRENTE Movimentato da N MOVIMENTO Il grado a molti si rappresenta con l’aggiunta di altre due linee in prossimità dell’entità di arrivo. Prof. Fabio Cantaro 55
Le associazioni tra entità Rappresentazione alternativa (0, N) CONTOCORRENTE Rifer ito (1, 1) MOVIMENTO Un Conto Corrente può riferirsi a 0 o al più N Movimenti Prof. Fabio Cantaro 56
Le associazioni tra entità Rappresentazione alternativa (0, N) CONTOCORRENTE Rifer ito (1, 1) MOVIMENTO Un Movimento deve riferirsi a 1 solo Conto Corrente Prof. Fabio Cantaro 57
ESERCIZI Stabilire l’associazione (1: 1 o 1: N), il grado, l’opzionalità. Usare il formato grafico preferito. 1. tra Squadre di Calcio e Allenatori per un certo anno (cosa cambia se affermiamo che una squadra può cambiare allenatore durante l’anno oppure che non può cambiarla? ) 2. Tra studente e prove d’esame 3. Tra Marito e Moglie Prof. Fabio Cantaro 58
Le associazioni tra entità c. Associazione N: N (molti a molti) o complessa ad un elemento dell’insieme E 1 possono corrispondere più elementi dell’insieme E 2 e viceversa. E 1 E 2 Ogni istanza della prima entità si può associare a uno o più istanze della seconda entità e viceversa. Prof. Fabio Cantaro 59
Le associazioni tra entità Per esempio nell’associazione tra l’entità Studente e l’entità Materia, uno studente può essere verificato su una o più materie, e una materia può essere oggetto di verifica da parte di uno o più studenti. STUDENTE Oggetto di verifica per Verificato in (0, N) Verif ica Prof. Fabio Cantaro (0, N) MATERIA 60
Le associazioni tra entità OSS. 1: Le associazioni 1: N sono molto più frequenti delle associazioni di tipo 1: 1 e di tipo N: M. STUDENTE N Oggetto di verifica per Verificato in N MATERIA OSS. 2 L’associazione N: M può essere facilmente scomposta in due associazioni 1: M, 1: M anche per consentire di rappresentare gli attributi dell’associazione (maggiore chiarezza). Prof. Fabio Cantaro 61
Le associazioni tra entità Dal precedente esempio: Il modello diventa più chiaro introducendo una terza entità Prova, avente come attributi la data e il voto della verifica. Infatti data e voto ottenuto non sono attributi nè di STUDENTE e nè di MATERIA ma di PROVA STUDENTE 1 Verificato con Data Sostenuta da N PROVA N Voto Riferita a 1 Control. con MATERIA Prof. Fabio Cantaro 62
Le associazioni tra entità Rappresentazione alternativa STUDENTE (0, N) Sosti ene Data (1, 1) PROVA Voto (1, 1) riferi ta (0, N) MATERIA Prof. Fabio Cantaro 63
ESERCIZI Rappresentare con un o schema E/R le seguenti frasi, indicando il grado dei versi e l’obbligatorietà (o opzionalità) delle associazioni: 1. Una materia può essere insegnata da più docenti, un docente deve insegnare una sola materia 2. Un Comune appartiene a una sola Regione, ogni Regione può comprendere più Comuni 3. Un Attore può fare molti film, ogni film ha come interpreti molti attori 4. Ogni cittadino possiede una carta d’identità, una carta d’identità appartiene a un solo cittadino 5. Un negozio vende più prodotti, ogni prodotto può essere venduto in molti negozi Prof. Fabio Cantaro 64
Lezione 3 Prof. Fabio Cantaro 65
REGOLE DI LETTURA Servono a controllare la bontà dello Schema E/R prodotto. Ogni <nome entità Partenza> può/deve essere <nome verso Associazione> un solo / uno o più <nome entità Arrivo> Entità di Partenza Può essere Deve essere Un solo Uno o più Deve essere Entità di Arrivo Prof. Fabio Cantaro 66
Esempio Regole di Lettura • Ogni fornitore PUO’ ESSERE abbinato (fornire) a UNO O PIU’ prodotti • Ogni prodotto DEVE ESSERE fornito da UN SOLO fornitore FORNITORE Fornito da 1 Abbinato a N Prof. Fabio Cantaro PRODOTTO 67
Le associazioni tra entità Applicare le regole di lettura ai precedenti esercizi Prof. Fabio Cantaro 68
ESERCITAZIONE 1. Le esercitazioni (sono 3) del file Esercitazione. Database. doc Il primo facciamolo insieme Realizzare un db che tenga conto dei film prodotti in Italia per genere (giallo, azione, ecc…) e per anno. I film sono diretti da un regista di cui occorre conoscere cognome, nazionalità e Codice Fiscale. In un film recitano più attori di cui si vuole conoscere il nome, cognome, nome d’arte e Codice Fiscale. Un attore può recitare in più film, occorre allora conoscere la paga e il ruolo (comparsa, protagonista) in quel film. Realizzare lo Schema ER e lo schema Logico Attenzione: Conservate lo schema E/R dei 3 esercizi perché ci torneranno utili quando faremo il modello logico Prof. Fabio Cantaro 69
Traccia della soluzione 1. Le entità sono: Realizzare un db che tenga conto dei film prodotti in Italia per genere (giallo, azione, ecc…) e per anno. I film sono diretti da un regista di cui occorre conoscere cognome, nazionalità e Codice Fiscale. In un film recitano più attori di cui si vuole conoscere il nome, cognome, nome d’arte e Codice Fiscale. Un attore può recitare in più film, occorre allora conoscere la paga e il ruolo (comparsa, protagonista) in quel film. Realizzare lo Schema ER e lo schema Logico OSS: ci sono relazioni 1: N tranne una che è N: M Prof. Fabio Cantaro 70
Le regole di derivazione del modello logico Dal modello concettuale dei dati è possibile ottenere il modello logico dei dati => si può definire la struttura degli archivi adatti per organizzare i dati. Le strutture dati scelte per il modello logico devono rendere facili le operazioni di manipolazione e veloci le attività di ritrovamento dei dati richiesti. Il modello logico si ricava applicando le Regole di Derivazione: Derivazione 1. ogni entità diventa un archivio; 2. ogni attributo di un’entità diventa un campo nell’archivio, cioè il nome di un campo nella struttura del record 3. ogni campo del record eredita le caratteristiche dell’attributo dell’entità da cui deriva; Prof. Fabio Cantaro 71
Le regole di derivazione del modello logico 4. l’identificatore univoco di un’entità diventa la chiave primaria nel record dell’archivio derivato; 5. l’associazione uno a uno diventa un archivio unico, il cui tracciato record contiene i campi corrispondenti agli attributi della prima e della seconda entità; 6. nell’associazione uno a molti l’identificatore univoco dell’entità di partenza (TABELLA LATO 1) diventa chiave esterna (foreign key) dell’entità di arrivo associata (TABELLA LATO MOLTI) 7. l’associazione con grado molti a molti diventa un nuovo archivio (in aggiunta agli archivi derivati dalle due entità), il cui record contiene gli identificatori univoci delle due entità e gli eventuali attributi dell’associazione. Prof. Fabio Cantaro 72
Le regole di derivazione del modello logico ESEMPIO associazione 1: 1 Associazione tra l’entità Codice. Fiscale e l’entità Cittadino: è un’associazione uno a uno in quanto ad ogni cittadino è assegnato uno ed un solo codice fiscale. CODICE FISCALE 1 1 CITTADINO l’archivio avrà gli attributi dell’una e dell’altra entità: Anagrafi. Tributarie (Num. Codice. Fiscale, Data. Rilascio, Ufficio. Rilascio, Cognome, Nome, Data. Nascita) Il campo Codice. Fiscale diventa chiave primaria. Prof. Fabio Cantaro 73
Le regole di derivazione del modello logico CODICE FISCALE 1 1 CITTADINO Cardinalità = 2 Anagrafi. Tributarie Num. Cod. Fisc Data. Rilascio Ufficio. Rilasci Cognome Nome o Rssplo 68. . 12/12/2003 Gela Vrd. Gpp. . 21/04/1978 Catania Rossi Verdi Grado Prof. Fabio Cantaro Paolo Pippo Data. Nascita 11/12/1968 03/03/1978 74
Le regole di derivazione del modello logico Archivio Campo Anagrafi. Tributarie Num. Cod. Fisc Data. Rilascio Uff. Rilascio Cognome Nome Data. Nascita Chiave Formato primaria Carattere data/ora carattere data/ora Dimensione 16 8 20 30 25 8 In generale dall’associazione uno ad uno del modello concettuale viene derivato un unico archivio che contiene gli attributi della prima e della seconda entità. Prof. Fabio Cantaro 75
Le regole di derivazione del modello logico Cioè otteniamo la seguente tabella Cardinalità = 2 Codice Fiscale 1234 1345 Cognome Rossi Verdi Nome Paolo Andrea Data. Nascita 12/12/89 17/07/89 Grado Prof. Fabio Cantaro 76
ESERCIZIO Partendo dagli esercizi precedenti: 1. Un marito può avere una sola moglie e una moglie può avere un solo marito 2. Una persona può avere una sola carta d’identità e una carta d’identità deve appartenere a una sola persona Partendo dallo schema E/R, applicando le regole di derivazione, ricavare il modello logico (tabelle e chiavi) e le tabelle coi tipi di campo Prof. Fabio Cantaro 77
Esempio di derivazione relazione 1: N Partendo dallo Schema E/R: 1 Studente effettua N PROVA Applicando le regole di derivazione ottengo 2 tabelle: STUDENTE Matricola Cognome PROVA nome id. Prova Data Materia Voto Matr. Studente Chiave esterna Prof. Fabio Cantaro 78
Le regole di derivazione del modello logico ALTRO ESEMPIO associazione 1: N Associazione tra l’entità Contratto e l’entità Dipendente è una relazione uno a molti, in quanto ogni contratto può essere sottoscritto da uno o più dipendenti, e ogni dipendente è regolato da un solo contratto di lavoro. CONTRATTO 1 N DIPENDENTE la chiave primaria dell’archivio Contratti diventa chiave esterna nell’archivio Dipendenti. Contratti (Codice, Descrizione, Stipendio. Base, Data. Scadenza) Dipendenti (Matricola, Cognome, Nome, Indirizzo, Qualifica, Codice. Contratto) Prof. Fabio Cantaro 79
Le regole di derivazione del modello logico Archivio Campo Chiave Contratti Codice Descrizione Stipendio. Base Data. Scadenza primaria numerico carattere numerico data/ora 3 30 10 8 Dipendenti Matricola Cognome Nome Indirizzo Qualifica Codice. Contratto primaria carattere carattere esterna numerico 7 30 25 30 10 3 Prof. Fabio Cantaro Formato Dimensione 80
Le regole di derivazione del modello logico 2 tabelle: Contratti Codice Descrizione Stipendio. Base Data. Scadenza 1234 Metalmecca 1. 200 € nico Febbraio 2005 1345 Docente Maggio 2006 1300 € Dipendenti Matricola Qualifica Cod. Contratto Met_112 Cognome Rossi Nome Paolo Elettricista 1234 Met_132 Doc_411 Verdi Cantaro Andrea Fabio Saldatore informatica 1234 1345 Prof. Fabio Cantaro 81
Le regole di derivazione del modello logico Agli attributi dell’entità Dipendente (a molti) è stata aggiunta come chiave esterna Codice. Contratto, cioè la chiave primaria dell’entità Contratto (a uno). In generale dal modello concettuale vengono derivate le tabelle che rappresentano le entità e l’associazione uno a molti viene tradotta aggiungendo agli attributi dell’entità “a molti” la chiave dell’entità “a uno”. Prof. Fabio Cantaro 82
ESERCIZIO Partendo dagli esercizi precedenti: • Una materia può essere insegnata da più docenti, un docente deve insegnare una sola materia • Un Comune appartiene a una sola Regione, ogni Regione può comprendere più Comuni Partendo dallo schema E/R già realizzato, applicare le regole di derivazione per ricavare il modello logico (tabelle e chiavi) Prof. Fabio Cantaro 83
Esempio di derivazione relazione N: M Partendo dallo Schema E/R: STUDENTE N Verifica Data Voto N MATERIA Applicando le regole di derivazione ottengo 3 TABELLE: TABELLE STUDENTE MATERIA Matricola Cognome ID_Materia facoltà Nome. Mat. anno VERIFICA id. Verifica Matr: Studente nome. Materia Prof. Fabio Cantaro data voto 84
Le regole di derivazione del modello logico ALTRO ESEMPIO di associazione N: M Si considerino l’entità Docente e l’entità Classe per una scuola: tra le due entità si può stabilire un’associazione molti a molti, in quanto ogni docente può insegnare in una o più classi, e ogni classe ha uno o più docenti. CLASSE DOCENTE Accanto agli archivi Docenti e Classi, viene creato un nuovo archivio, chiamato Insegna, il cui record contiene gli attributi chiave dei due archivi considerati. Prof. Fabio Cantaro 85
Le regole di derivazione del modello logico Se vengono considerati anche gli attributi dell’associazione, questo nuovo archivio di legame contiene, oltre alle chiavi delle due entità anche gli attributi assegnati all’associazione: il numero delle ore di insegnamento del docente in una classe non è attributo né di Docente, né di Classe, ma dell’associazione; esso diventa un campo nel nuovo archivio Insegna. Docenti (Codice, Nome , Qualifica, Materia) Classi (Sigla, Numero. Alunni, Aula) Insegna (Codice. Docente, Sigla. Classe, Numero. Ore) Prof. Fabio Cantaro 86
Le regole di derivazione del modello logico Archivio Campo Chiave Formato Dimensione Docenti Codice Nome Qualifica Materia primaria carattere 5 40 7 3 Classi Sigla Numero. Alunni Aula primaria carattere numerico 3 2 3 Insegna Codice. Docente Sigla. Classe Numero. Ore primaria carattere numerico 5 3 2 Prof. Fabio Cantaro 87
Le regole di derivazione del modello logico Codice Docenti 1234 1345 Insegna Classi Nome Cantaro Rossi Qualifica Teorico ITP 6 1345 1234 3 6 3 B Aula Num. Alunni 23 127 5 C 26 128 4 F 31 129 Sigla Informatica Numero Ore Cod. Docente Classe 1234 3 B 3 B 5 C Materia Prof. Fabio Cantaro 88
Le regole di derivazione del modello logico In generale quindi vengono derivati gli archivi corrispondenti alle entità e l’associazione molti a molti viene tradotta con un terzo archivio contenente le chiavi delle due entità e gli eventuali attributi dell’associazione. Prof. Fabio Cantaro 89
ESERCIZIO Partendo dagli esercizi precedenti: • Un Attore può fare molti film, ogni film ha come interpreti molti attori • Un negozio vende più prodotti, ogni prodotto può essere venduto in molti negozi Partendo dallo schema E/R, applicando le regole di derivazione, ricavare il modello logico (tabelle e chiavi) Prof. Fabio Cantaro 90
ESERCIZIO Completo Fare lo schema E/R e applicare le regole di derivazione per ricavare il modello logico (tabelle e chiavi) Esercizio completo 1 (Scrivete il testo perché lo implementeremo in Access) Si deve realizzare la gestione automatizzata delle prestazioni mediche del Servizio Sanitario, per consentire le prenotazioni agli uffici del Servizio Sanitario, controllo della disponibilità e registrazione della prenotazione. I dati da organizzare riguardano • i medici che operano presso il Servizio Sanitario, • i diversi tipi di visite specialistiche • le prenotazioni delle visite da parte dei pazienti Prof. Fabio Cantaro 91
Soluzione Traccia per la Soluzione Analisi del problema: le entità che emergono sono: • il Medico (con i suoi dati personali), • la visita specialistica (il tipo di visita, dove si effettua, ecc…), • la prenotazione (data e ora di quel tipo di visita prenotata da quel cliente) • e il paziente (con i suoi dati personali). Prof. Fabio Cantaro 92
Soluzione Medico effettuata Visita Riferita a Riferire prenotazione eseguita effettua Paziente Prof. Fabio Cantaro 93
Lezione 4 Prof. Fabio Cantaro 94
ESERCITAZIONE. Tempo 30 minuti 1. Riprendere le precedenti esercitazioni del file Esercitazione. Database. doc e ricavare il modello Logico Realizzare un db che tenga conto dei film prodotti in Italia per genere (giallo, azione, ecc…) e per anno. I film sono diretti da un regista di cui occorre conoscere cognome, nazionalità e Codice Fiscale. In un film recitano più attori di cui si vuole conoscere il nome, cognome, nome d’arte e Codice Fiscale. Un attore può recitare in più film, occorre allora conoscere la paga e il ruolo (comparsa, protagonista) in quel film. Realizzare lo Schema ER e lo schema Logico Prof. Fabio Cantaro 95
Traccia per la soluzione. Realizzare un db che tenga conto dei film prodotti in Italia per genere (giallo, azione, ecc…) e per anno. I film sono diretti da un regista di cui occorre conoscere cognome, nazionalità e Codice Fiscale. In un film recitano più attori di cui si vuole conoscere il nome, cognome, nome d’arte e Codice Fiscale. Un attore può recitare in più film, occorre allora conoscere la paga e il ruolo (comparsa, protagonista) in quel film. Realizzare lo Schema ER e lo schema Logico • Nelle associazioni 1: N creare la chiave esterna nella tabella lato molti • Nella associazione N: M creare una terza tabella…. Prof. Fabio Cantaro 96
VERIFICA 2 Tempo 30 minuti Distribuire la stampa del file 2_regole_di_derivazione. doc Costruire il modello dei dati per organizzare le informazioni sui redditi dei dipendenti e le aziende in cui lavorano. I dipendenti effettuano versamenti di imposta in date diverse durante l’anno. Le entità sono: __________, ________; Tra gli attributi dei dipendenti, oltre ai dati anagrafici, sono contenuti il reddito annuo lordo, il numero di familiari a carico, il totale delle trattenute effettuate. Negli attributi dell’azienda, oltre alla denominazione, occorre inserire anche l’indirizzo e il settore di attività. Definire il modello E/R e il modello logico con le tabelle Prof. Fabio Cantaro 97
Soluzione Prof. Fabio Cantaro 98
- Slides: 98