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 rappresentare. Esempio Sistema informativo per la gestione di una Biblioteca. Libri Soci Sistema Informativo della Biblioteca Operazioni 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 1 I Sistemi Informativi Automatizzati Definizione Un Sistema Informativo è Automatizzato quando le informazioni sono elaborate per mezzo di un calcolatore elettronico (Computer), la gestione dei dati avviene mediante l’ utilizzo di software e la memorizzazione degli stessi è supportata dalle memorie di massa. In generale, un Sistema Informativo Automatizzato è costituito da: • File di dati: contengono tutte le informazioni che descrivono le entità utili per rappresentare i dati della realtà considerata. • Programmi (Software): consentono di interpretare e gestire le informazioni in ingresso, fornendo i dati elaborati agli utenti del Sistema informativo Automatizzato. • Calcolatore elettronico: effettua le elaborazioni richieste dai programmi. Le fasi di Progettazione di un Sistema Informativo Automatizzato • Progettazione Concettuale • Progettazione Logica • Progettazione Fisica 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 2 • Le Specifiche sui Dati descrivono le caratteristiche principali delle informazioni che saranno organizzate e registrate in un sistema informativo automatizzato. Interviste e Analisi Specifiche sui Dati Specifiche sulle operazioni Progettazione Concettuale • Le Specifiche sulle Operazioni descrivono quali operazioni la futura utenza dell’organizzazione considerata opererà. • Modello Entity-Relationship (Modello E/R) lo schema concettuale viene rappresentato graficamente in un diagramma che indica le entità, gli attributi e le associazioni. Schema Concettuale Progettazione Logica Schema Logico Progettazione Fisica Schema Fisico 19/10/2014 • La fase di progettazione logica trasforma lo schema concettuale nello schema logico (operazione detta di Mapping) contenente la descrizione logica delle strutture dati (tabelle, tracciati record, chiavi) in cui saranno registrate le informazioni del Sistema Informativo Automatizzato. • Nella fase di progettazione fisica si implementa fisicamente cioè in memoria di massa lo schema logico della fase precedente. Il risultato sono i file di dati (tabelle) in cui saranno fisicamente registrate le informazioni. Informatica - A. S. 2014/15 Prof. Simon Columbano 3 I Database e i DBMS Definizione di Database Un Database (Base di Dati) è una raccolta di dati logicamente organizzati attraverso tecniche di modellazione e gestiti da un particolare software chiamato DataBase Management System(DBMS), con lo scopo di eliminare ridondante inutili, rendere i dati indipendenti dai programmi che li elaborano e gestire la sicurezza negli accessi alla base di dati. Memoria di Massa Dati Dati Dati Dati Database DBMS 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 4 Definizione di DBMS (DataBase Management System) Il DBMS è il software che gestisce la base di dati offrendo agli utenti della stessa un’interfaccia che consenta la creazione e la manipolazione dei dati memorizzati nel database. Definizione di SQL (Structured Query Language) SQL è il linguaggio speciale che costituisce lo standard per la programmazione dei database ed è utilizzabile da tutti i principali DBMS. SQL DDL 19/10/2014 DMCL DCL Informatica - A. S. 2014/15 Prof. Simon Columbano DML QL 5 • Linguaggi per la definizione dei dati (DDL, Data Definition Language), per la dichiarazione delle tabelle, degli attributi e dei loro tipi di dati, delle chiavi, delle relazioni tra le tabelle e dei vincoli sui dati. • Linguaggi di controllo dei dispositivi di memorizzazione dei dati (DMCL, Device Media Control Language), per la definizione delle corrispondenze tra le strutture fisiche del database e i supporti di memorizzazione utilizzati. • Linguaggio di controllo dei dati (DCL, Data Control Language), per stabilire i diritti di accesso consentiti agli utenti. • Linguaggio di manipolazione dei dati (DML, Data Manipolation Language) per lo sviluppo di software per l’elaborazione dei dati del database (inserimento, cancellazione, modifica , ricerca, visualizzazione e stampa). • Linguaggio di interrogazione (QL, Query Language), per la scrittura di interrogazioni interattive per la ricerca dei dati nel database. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 6 Lo Schema Concettuale Definizione Lo Schema Concettuale è la rappresentazione astratta dei dati che descrivono l’organizzazione considerata e delle correlazioni esistenti tra essi. Uno schema concettuale è costituito fondamentalmente da tre insiemi di elementi, che devono essere individuati durante la fase di progettazione concettuale: • l’insieme delle Entità • l’insieme degli Attributi • l’insieme delle Associazioni Simbolo Identificatore entità 19/10/2014 Significato Descrizione Entità L’Entità è rappresentata da un semplice rettangolo, al cui interno è posto l’identificatore dell’entità. Attributo Gli attributi delle entità e delle associazioni sono rappresentati con linee. A ogni linea è associato l’identificatore di uno specifico attributo. Associazione Le associazioni tra entità sono rappresentate da rombi, contenenti l’identificatore dell’associazione, che collegano le due entità attraverso linee continue o tratteggiate, etichettate con il grado dell’associazione. Informatica - A. S. 2014/15 Prof. Simon Columbano 7 Definizione di Entità L’ Entità costituisce l’unità di informazione di interesse per la costituzione del modello della realtà che si intende rappresentare. Le entità sono costituite da insiemi di elementi che presentano proprietà ( caratterisitche ) comuni; ogni elemento viene chiamato istanza dell’Entità. Esempi di entità: STUDENTI LIBRI PAZIENTI Definizione di Attributi Le proprietà comuni ad ogni istanza dell’Entità prendono il nome di Attributi. Prendendo come esempio l’ entità Studenti, possiamo avere tra i suoi attributi: Matricola, Cognome, Nome, DataNascita, Indirizzo, Telefono, Email, Classe, Specializzazione, ecc. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 8 • Matricola • Cognome • Nome • DataNascita STUDENTI • Indirizzo • Telefono• Email• Classe • Specializzazione Se consideriamo l’entità Libri, i suoi attributi possono essere: CodiceLibro, Titolo, Autore, CasaEditrice, AnnoPubblicazione, NumeroPagine, Genere, ecc. • CodiceLibro • Titolo • Autore LIBRI • CasaEditrice • AnnoPubblicazione • NumeroPagine • Genere 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 9 Definizione di Chiave Primaria Tra gli attributi di un’entità definiamo chiave primaria (primary key) la caratteristica, o insieme di caratteristiche (chiave composta), che permette di individuare univocamente ogni singola istanza dell’entità. Nei diagrammi E/R una chiave primaria è rappresentata sottolineando l’attributo (o gli attributi nel caso di chiave composta) corrispondente. A ogni attributo sono associati: • L’Identificatore • Il Tipo di Dati, che indica la tipologia di valori che può assumere ( stringa, numero, data, ecc) e la rispettiva dimensione; • l’Opzionalità, che indica se l’attributo deve obbligatoriamente assumere un valore (attributo richiesto) o se può assumere un valore nullo. • Il Dominio, che indica l’insieme di valori che un attributo può assumere. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 10 Esempio: consideriamo l’attributo Specializzazione dell’entità Studenti. Specializzazione è il suo identificatore Può assumere valori di tipo stringa con dimensione massima pari al nome più lungo tra le specializzazioni offerte nella scuola considerata. La sua immissione è obbligatoria (e quindi non opzionale) Il dominio è dato dall’insieme delle specializzazioni presenti nell’istituto scolastico Esempio: attributo Email. Email è il suo identificatore Può assumere valori di tipo stringa con dimensione massima uguale a 50 caratteri La sua immissione è opzionale (alcuni studenti potrebbero non avere indirizzo di posta elettronica) Il dominio è dato dall’insieme delle stringhe di tipo nomeutente@dominio 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 11 • Definizione di Vincoli di Integrità I vincoli di integrità sono le regole che devono essere verificate affinché siano ritenute valide le informazioni memorizzate in una base dati. Si consideri come esempio l’attributo NumeroPagine dell’entità libri: • NumeroPagine è il suo identificatore • Può assumere valori di tipo numerico intero • La sua immissione è obbligatoria • Il dominio è costituito dall’insieme dei numeri interi positivi, quindi NumeroPagine > 0. Il vincolo di integrità consiste nell’impossibilità ad assegnare all’attributo NumeroPagine un valore negativo o uguale a zero. Classificazione degli attributi • Attributi semplici • Attributi composti • Attributi multipli 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 12 Definizione di Attributo Semplice Un attributo si definisce semplice ( o elementare) quando non è ulteriormente scomponibile in più attributi, cioè rappresenta un’unità informativa di base che caratterizza un’entità e al quale è associato un singolo valore. Definizione di Attributo Composto Un attributo si definisce composto quando è ulteriormente scomponibile in più attributi semplici, cioè rappresenta contemporaneamente più unità informative di base che caratterizzano un’entità. • Matricola • Cognome • Nome • Giorno • DataNascita • Mese • AnnoNascita STUDENTI • Classe • Telefono• Email- • Indirizzo • Via • NumeroCivico • Città • C.A.P. • Specializzazione 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano • Provincia 13 Definizione di Attributo Multiplo Un attributo si definisce multiplo quando a esso possono essere associati anche più valori dello stesso tipo contemporaneamente. • NumeroTreno • Destinazione • OraPartenza ORARI • OraArrivo • BinarioPartenza • Fermate* • CodiceMedicina • Denominazione MEDICINE • Produttore • Costo • MalattieCurate* 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 14 Le Associazioni Definizione Un’Associazione tra una o più entità è una relazione tra le istanze che costituiscono le entità, cioè il legame tra gli elementi degli insiemi considerati. Esempio: prendiamo in considerazione le entità Studenti e Facoltà. Può essere definita tra le due entità una associazione binaria Frequentano/SonoFrequentate, cioè viene stabilito un legame tra le istanze della prima entità con quelle della seconda. Frequentano Matricola Cognome STUDENTI Sono Frequentate Frequentano Nome FACOLTÀ CodiceFacoltà Denominazione Città A seconda dell’ordine di lettura si parla di associazione diretta e associazione inversa 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 15 Vediamo un esempio di associazione unaria o ricorsiva, che coinvolge cioè una sola entità e le cui istanze sono quindi in relazione con se stesse. Consideriamo l’entità Dipendenti, le cui istanze rappresentano gli impiegati dipendenti di un’azienda. Dirigono CodiceDipendente Cognome Nome Dirigono DIPENDENTI Indirizzo Sono Diretti Curano CodiceDottore Sono Curati CodicePaziente Cognome Cognome DOTTORI Curano PAZIENTI Nome Nome Città Specializzazione DataInizioCura 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 16 Definizione di Associazione Totale e di Associazione Parziale Un’ associazione tra due entità si definisce totale quando ad ogni istanza della prima entità corrisponde almeno un’istanza della seconda entità; un’associazione tra due entità si definisce parziale quando ad ogni istanza della prima entità può anche non corrispondere alcuna istanza della seconda entità. Possegono Matricola Sono Posseduti CodiceComputer Cognome Modello STUDENTI Possegono COMPUTER TipoCPU Nome CapacitàRAM Classe Definizione di Associazione uno a uno (1:1) Un’ associazione si definisce uno a uno quando ad ogni istanza della prima entità corrisponde una e una sola istanza della seconda entità e viceversa. Definizione di Associazione uno a molti (1:N) Un’ associazione si definisce uno a molti quando a ogni istanza della prima entità corrisponde una e una sola istanza della seconda entità, ma a ogni istanza della seconda entità corrispondono una o più istanze della prima entità o viceversa. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 17 Definizione di Associazione molti a molti (M:N) Un’ associazione si definisce molti a molti quando a ogni istanza della prima entità corrispondono una o più istanze della seconda entità e a ogni istanza della seconda entità corrispondono una o più istanze della prima entità. Esempio di Associazione 1:1 SonoDiretti CodiceIstituto Denominazione ISTITUTI 1 Dirigono SonoDiretti 1 CodiceDirigente DIRIGENTI Cognome Nome Indirizzo L’associazione viene letta nel seguente modo: • Associazione diretta: Ogni Istituto è diretto da un solo Dirigente • Associazione inversa: Ogni Dirigente dirige un solo Istituto 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 18 Esempio di Associazione 1:N Frequentano Matricola Cognome N STUDENTI Sono Frequentate Frequentano 1 FACOLTÀ Nome CodiceFacoltà Denominazione Città L’associazione viene letta nel seguente modo: • Associazione diretta: Ogni Studente frequenta una sola Facoltà • Associazione inversa: Ogni Facoltà è frequentata da uno o più Studenti Esempio di Associazione M:N Frequentano Matricola Cognome STUDENTI M Sono Frequentati Frequentano N CORSI Nome CodiceCorso Denominazione NumeroOre L’associazione viene letta nel seguente modo: • Associazione diretta: Ogni Studente frequenta uno più Corsi • Associazione inversa: Ogni Corso è frequentato da uno o più Studenti 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 19 Problema 1.1: Una Biblioteca intende organizzare le proprie informazioni mediante un sistema informativo automatizzato. In particolare si vogliono gestire le informazioni relative ai Libri, Soci e Case Editrici. Si precisa che non sarà sufficiente memorizzare il nome della casa editrice come attributo inserito all’interno di una delle altre entità. Si analizzi il problema nel caso in cui la biblioteca disponga di una sola copia dei libri posseduti. CodiceLibro CodiceSocio Titolo Autore LIBRI N 1 SonoPrestati Cognome SOCI Nome Indirizzo NumeroPagine Telefono N Pubblicano AnnoStampa 1 CodiceCasaEditrice Denominazione CASEEDITRICI Indirizzo Telefono SitoWeb 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 20 Problema 1.2: Riprendiamo in esame il problema precedente con l’integrazione delle seguenti informazioni considerate rilevanti al fine della progettazione del sistema informativo della Biblioteca: non sarà più sufficiente indicare il nome dell’autore come attributo dell’entità libri ed inoltre in questo caso supponiamo che possano esistere più copie di uno stesso libro. CodiceSocio CodiceLibro LIBRI Titolo 1 Esistono N COPIE N Cognome 1 SonoPrestate SOCI NumeroPagine Nome Indirizzo Telefono NumInventario N N Collocazione DataPrestito Scrivono Pubblicano CodiceAutore M AnnoStampa 1 CodiceCasaEditrice Denominazione Nominativo AUTORI CASEEDITRICI Nazione 19/10/2014 Indirizzo Telefono SitoWeb Informatica - A. S. 2014/15 Prof. Simon Columbano 21 Problema 2.1: Il Dirigente scolastico di una scuola secondaria superiore chiede che si realizzi una base di dati per l’archiviazione e la gestione di informazioni riguardanti le attività scolastiche, nonché l’esito conseguito da ciascuno studente per ogni anno scolastico. L’organizzazione scolastica prevede che ciascuno studente possa frequentare più corsi di arricchimento dell’offerta formativa e/o di recupero e/o di sostegno. Matricola Classe Cognome STUDENTI M Frequentano Nome N CLASSI IdClasse Sezione Esito N AnnoScolastico Frequentano M CodiceCorso CORSI Titolo MonteOre 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 22 Problema 3.1: Si vuole monitorare la degenza ospedaliera dei pazienti di un ospedale mediante le relative cartelle cliniche. Si rappresentino nello schema E/R le entità, gli attributi e le associazioni di interesse. Problema 4.1: Uno studio di Informatica/Ingegneria dispone di un gruppo di progettisti, i quali possono essere responsabili dei progetti a loro affidati. Si effettui la progettazione concettuale. Problema 5.1: Si vogliono gestire gli account degli utenti che hanno accesso alle risorse hardware presenti nei vari laboratori di un istituto scolastico. Ogni utente può essere autorizzato, a partire da una certa data, ad accedere a una o più risorse grazie a uno UserName e a una PassWord. Alla stessa risorsa possono accedere anche più utenti autorizzati. Problema 6.1: Progettare lo schema concettuale di una base di dati per la gestione della segreteria didattica di un istituto scolastico. Gestire le informazioni relative agli studenti, alle loro valutazioni e alle loro assenze (con la causale). 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 23 Progettazione Logica: il modello relazionale Definizione di progettazione logica La fase di progettazione logica consiste nell’analisi delle informazioni riguardanti le entità, gli attributi e le associazioni fornite dallo schema E/R, per trasformarle, attraverso un procedimento di conversione detto mapping, in un insieme di strutture dati chiamato schema logico. La fase di progettazione logica si adatta al modello dei dati al quale si riferisce il DBMS a disposizione. Il modello logico di rappresentazione dei dati che in questo momento è adottato dalla totalità dei DBMS in commercio è il modello relazionale. Chiameremo lo schema logico che si ottiene al termine della progettazione logica come schema logico relazionale. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 24 Il modello relazionale struttura la realtà in un insieme di relazioni: lo schema logico relazionale che si ricava al termine della progettazione logica è esattamente costituito dall’insieme delle relazioni che modellano la realtà. Si dovrebbero avere, nello schema logico relazionale, tante relazioni quante sono le entità individuate nello schema concettuale con le relative chiavi primarie. Si devono prendere in considerazione anche le associazioni tra le entità, in quanto anch’esse sono relazioni tra entità e quindi devono essere convertite, secondo le regole di derivazione del modello relazionale, per comparire nello schema logico relazionale. Nel modello relazionale, le associazioni tra le entità sono implementate attraverso l’introduzione del concetto di chiave esterna, il cui utilizzo è fondamentale durante il processo di mapping. Definizione di chiave esterna. Una chiave esterna (foreign key) di una relazione è un attributo o un insieme di attributi che non ha solitamente funzione di chiave primaria della relazione in cui compare, ma è invece chiave primaria in un’ altra relazione, alla quale è legata attraverso un’associazione nello schema concettuale. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 25 Le regole di derivazione dello schema logico relazionale Mapping delle entità e degli attributi Le entità che fanno parte dello schema concettuale vengono trasformate in relazioni individuate nel seguente modo: NomeRelazione (Chiave primaria, Elenco altri attributi semplici) Esempio: entità studenti con attributi matricola, cognome, nome e telefono • Matricola • Cognome STUDENTI • Nome • Telefono- Studenti(Matricola, Cognome, Nome, Telefono-) Per gli attributi non semplici si procede nel seguente modo: • attributi composti: sono sostituiti con l’elenco degli attributi semplici componenti • attributi multipli: sono sostituiti con la creazione di una o più nuove relazioni 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 26 Esempio: entità Studenti con attributi Matricola, Cognome, Nome, ClasseFrequentata (attributo composto) e Telefono • Matricola • Cognome • Nome STUDENTI • Classe • ClasseFrequentata • Telefono- • Sezione Studenti(Matricola, Cognome, Nome, Classe▼, Sezione▼, Telefono-) Mapping delle associazioni 1:1 Nello schema logico relazionale, un’ associazione 1:1 tra due entità porta, nella maggior parte dei casi, alla creazione di un’ unica relazione, cioè gli attributi di una delle due entità migrano nella relazione più importante dal punto di vista della progettazione e la chiave primaria diventa quindi unica. Esempio: entità Impiegati e Coniugi, collegate tramite l’associazione Coniugati con CodiceImpiegato Cognome Nome CodiceConiuge IMPIEGATI 1 Coniugati con 1 CONIUGI CognomeConiuge NomeConiuge Mansione Impiegati(CodiceImpiegato, Cognome, Nome, Mansione▼, CognomeConiuge-, NomeConiuge-) 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 27 Definizione di Integrità Referenziale L’integrità referenziale è costituita da un insieme di regole, rispettando le quali si rendono valide le associazioni tra le relazioni, imponendo che ogni inserimento di un valore non nullo della chiave esterna debba avere un valore corrispondente della chiave primaria nella relazione associata. Mapping delle associazioni 1:N Le associazioni binarie di grado 1:N sono convertite nelle corrispondenti due relazioni relative alle entità collegate, aggiungendo, nella relazione relativa all’entità che si trova sul lato N dell’associazione, un attributo con funzione di chiave esterna, corrispondente alla chiave primaria dell’altra relazione collegata. Esempio: entità Studenti e Facoltà, collegate tramite l’associazione Frequentano Matricola Cognome CodiceFacoltà STUDENTI N Frequentano Nome 1 FACOLTÀ Denominazione Preside Studenti(Matricola, Cognome, Nome, CodiceFacoltà ) Facoltà(CodiceFacoltà, Denominazione, Preside) 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 28 Prendiamo in considerazione il vincolo di integrità referenziale in inserimento dei dati relativo all’esempio precedente. L’integrità referenziale in questo caso ci dice che non è possibile inserire un valore alla chiave esterna nella tabella Studenti che non sia incluso tra i valori della corrispondente chiave primaria in Facoltà. Facoltà CodiceFacoltà Denominazione Preside F01 Scienze Tizio F02 Medicina Caio F03 Ingegneria Sempronio Studenti Matricola Nome Cognome CodiceFacoltà M001 Mario Rossi F02 M002 Michele Bianco F01 M003 Elisa Marrone F03 M004 Giulia Rosso F04 Per il vincolo di integrità referenziale il valore F04 assunto dalla chiave esterna relativa allo studente con matricola M004 non è ritenuto valido in quanto non presente tra i valori della chiave primaria nella tabella Facoltà. 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 29 Mapping delle associazioni M:N Le associazioni binarie di grado M:N sono convertite nelle corrispondenti due relazioni relative alle entità collegate, aggiungendo una nuova relazione in cui migrano le chiavi primarie delle due entità associate, che svolgeranno il ruolo di chiavi esterne. La nuova relazione prenderà il nome dell’ associazione implementata. Se l’associazione presenta degli attributi, anch’essi migreranno nella nuova relazione. Esempio: entità Dottori e Pazienti, collegate tramite l’associazione Curano CodiceDottore CodicePaziente CognomeD DOTTORI M N Curano CognomeP PAZIENTI NomeD NomeP Città Specializzazione DataInizioCura Dottori(CodiceDottore, CognomeD, NomeD, Specializzazione) Pazienti(CodicePaziente, CognomeP, NomeP, Città) Curano(CodiceDottore , CodicePaziente , DataInizioCura) 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 30 Dottori CodiceDottore NomeD CognomeD Specializzazione D001 Maria Cossu Chirurgo D002 Lorenzo Rossi Geriatra D003 Giovanni Bianco Cardiologo D004 Erica Marrone Ottorino Pazienti CodicePaziente NomeP CognomeP Città P001 Mario Rossi Milano P002 Giorgio Caio Roma P003 Elisa Marrone Cagliari P004 Giulia Rosso Olbia Curano CodiceDottore 19/10/2014 CodicePaziente DataInizioCura D001 P002 10/01/2009 D003 P001 11/01/2009 D003 P003 11/01/2009 D004 P003 20/01/2009 Informatica - A. S. 2014/15 Prof. Simon Columbano 31 Si noti che se volessimo gestire un archivio storico, in cui mantenere traccia delle precedenti cure, si potrebbe verificare il caso in cui i valori della coppia CodiceDottore + CodicePaziente si ripetano uguali più di una volta. Quindi in questo caso tale coppia di attributi non sarebbe idonea a svolgere il compito di chiave primaria. In questo caso si potrebbe scegliere come chiave primaria, quella composta dai tre attributi della relazione Curano. Bisogna però precisare che l’utilizzo di chiavi primarie composte da un numero elevato di attributi è sconsigliabile per ragioni di praticità. La soluzione più logica in questo caso è quella di inserire una chiave artificiale con funzione di chiave primaria (ad esempio un attributo progressivo NumeroCura). Dottori(CodiceDottore, CognomeD, NomeD, Specializzazione) Pazienti(CodicePaziente, CognomeP, NomeP, Città) Curano(NumeroCura, CodiceDottore , CodicePaziente , DataInizioCura) Esempio di entità con attributo multiplo • CodiceInsegnante • Cognome • Nome • Telefono INSEGNANTI • AnniServizio • Materie* Insegnanti(CodiceInsegnante, Cognome, Nome, Telefono, AnniServizio) Insegnano(CodiceInsegnante 19/10/2014 , Materia▼) Informatica - A. S. 2014/15 Prof. Simon Columbano 32 Mapping delle associazioni ricorsive 1 CodiceDipendente Dirigono Cognome Nome Dirigono DIPENDENTI Indirizzo Sono Diretti N Dipendenti(CodiceDipendente, Cognome, Nome, Indirizzo, CodiceDirigente- ) Dipendenti CodiceDipendente Nome Cognome Indirizzo CodiceDirigente D001 Mario Rossi …… D004 D002 Michele Bianco …… D002 D003 Elisa Marrone …… D002 D004 Orlando Furioso …… D004 D005 Giulia Rosso …… D004 19/10/2014 Informatica - A. S. 2014/15 Prof. Simon Columbano 33