Studenti - Prof. Simon Columbano

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