SlideShare uma empresa Scribd logo
1 de 43
PROGETTAZIONE
DATABASE
1
ROBERTO BELMONTE
LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Progettazione e modernizzazione database in ambiente "DB2 for i" – Contenuti:
 Progettazione del Modello Concettuale di una Base Dati con l’utilizzo del
metodo Entity-Relationship model (E/R).
 Progettazione del Modello Logico di una Base Dati a partire dal Modello
Concettuale.
 Normalizzazione in Terza Forma Normale del modello Relazione di una Base
Dati.
 Modernizzazione di una Base Dati in ambiente IBM i e "DB2 for i" .
2
PROGETTAZIONE DATABASE
Fasi e Metodologia
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Progettazione Basi Dati - Ciclo di Vita di un Sistema Informativo :
Studio di fattibilità
Raccolta e analisi
dei requisiti
Realizzazione
Validazione e
collaudo
Funzionamento
Progettazione
dei dati
La Progettazione delle Base di Dati
é una delle attività del processo di
sviluppo dei Sistemi Informativi (SI),
va quindi inquadrata in un contesto
più generale del ‘Ciclo di Vita dei
Sistemi Informativi’ che sono:
• Insieme delle attività svolte da
analisti, progettisti, manager,
nello sviluppo e nell’uso dei
sistemi informativi.
• Attività iterativa, quindi Ciclo.
3
PROGETTAZIONE DATABASE
Fasi e Metodologia
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
requisiti del
Sistema informativo
progettazione concettuale
progettazione logica
progettazione fisica
SCHEMA LOGICO
SCHEMA CONCETTUALE
SCHEMA FISICO
applicazioniutenti
interattivi
DBMS
Base Dati
La metodologia introdotta prevede 3 fasi:
Progettazione concettuale
Progettazione logica
Progettazione fisica
La fase di raccolta e analisi dei requisiti in pratica
viene ad essere svolta congiuntamente a quella di
progettazione concettuale
Ognuna delle fasi si basa su un modello, che
permette di generare una rappresentazione
formale (schema) della base di dati ad un dato
livello di astrazione (concettuale, logico e fisico):
Schema concettuale
Schema logico
Schema fisico
4
PROGETTAZIONE DATABASE
Fasi e Metodologia
 È la fase in cui si raccolgono e analizzano le specifiche informali ed eterogenee che i vari utenti danno
delle procedure da automatizzare mediante un DBMS
 requisitiinformativi: caratteristiche dei dati
 requisiti sui processi: operazioni sui dati
 requisiti sui vincoli di integrità: proprietà dei dati e delle operazioni
 Attività principali:
 Costruzione glossario dei termini
 Eliminazione delle ambiguità (sinonimi, omonimi)
 Raggruppamento dei requisiti “omogenei”
 Fase solo apparentemente semplice, nella realtà è spesso la più complessa perché è difficilmente
standardizzabile il processo che porta a
capire cosa gli utenti vogliono!
5
PROGETTAZIONE DATABASE
Fase di raccolta e analisi dei requisiti
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 A partire dai requisiti informativi viene creato uno schema concettuale, cioè una descrizione
formalizzata e integrata delle esigenze aziendali, espressa in modo indipendente dal DBMS adottato
 A tale scopo si adotta un modello concettuale, che permette di fornire descrizioni ad alto livello
indipendenti dall'implementazione
 Lo schema concettuale è indipendente anche dal tipo di DBMS che sarà utilizzato (relazionale, gerarchico,
ecc.)
6
PROGETTAZIONE DATABASE
Fase di progettazione concettuale
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Consiste nella traduzione dello schema concettuale nel modello dei dati del DBMS
 Il risultato è uno schema logico, espresso nel DDL del DBMS
 In questa fase si considerano anche aspetti legati a:
 integrità e consistenza (vincoli)
 efficienza
 La progettazione logica si articola in due sotto-fasi:
 ristrutturazione dello schema concettuale
 traduzione verso il modello logico
7
PROGETTAZIONE DATABASE
Fase di progettazione logica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 In questa ultima fase si operano scelte spesso strettamente dipendenti dallo specifico DBMS utilizzato
 Ad esempio, lo stesso schema logico può essere fisicamente rappresentato in modo diverso in DB2 e in
Oracle, al fine di meglio sfruttare le caratteristiche dei due DBMS
 Il risultato è lo schema fisico, che descrive le strutture di memorizzazione e accesso ai dati (tablespace,
clustering, indici, ecc.)
8
PROGETTAZIONE DATABASE
Fase di progettazione fisica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
PROGETTAZIONE DATABASE
Un modello dei dati è una collezione di concetti che vengono utilizzati per descrivere i dati, le loro
associazioni, e i vincoli che questi devono rispettare.
Un ruolo di primaria importanza nella definizione di un modello dei dati è svolto dai meccanismi che possono essere usati
per strutturare i dati.
 Modelli Logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati utilizzati dai programmi, indipendenti dalle
strutture fisiche.
 Modelli Concettuali: permettono di rappresentare i dati in modo
indipendente da ogni sistema.
 cercano di descrivere i concetti del mondo reale
 sono utilizzati nelle fasi preliminari di progettazione
I l p i ù n o t o m o d e l l o C o n c e t t u a l e è :
E n t i t y - R e l a t i o n s h i p m o d e l ( E / R ) ( C h e n 1 9 7 6 )
9
Modelli dei dati: logici vs concettuali
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
PROGETTAZIONE DATABASE
 La progettazione di un sistema informativo è guidata dai dati, e si avvale di una metodologia che consta di
diverse fasi
 Ogni fase produce uno schema, facendo uso di uno specifico modello
 Per la progettazione concettuale si fa uso di un modello concettuale che, astraendo da aspetti
specifici dei DBMS e dalla rappresentazione concreta dei dati, costituisce un valido compromesso tra ciò che
si dovrà realizzare e la realtà che si deve modellare
10
Riassumiamo
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Cerchiamo quindi un livello di astrazione “intermedio” tra sistema e utenti,
che sia al tempo stesso:
 Flessibile
 Intuitivo
 Espressivo
… tutte caratteristiche che mancano ai modelli logici
 I modelli concettuali prevedono tipicamente una
rappresentazione grafica, che risulta anche utile come
strumento di documentazione e comunicazione
Modello
Schema
11
PROGETTAZIONE DATABASE
Creare il Modello Concettuale dei Dati
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Uno “standard de facto” per la progettazione concettuale
 Ha una rappresentazione grafica
 Concetti fondamentali:
 Entità (entity)
 Associazione (relationship)
 Attributo
 Vincolo di cardinalità
 Identificatore
 Gerarchia
12
PROGETTAZIONE DATABASE
Il Modello Entity-Relationship
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Quando ragioniamo su un problema usiamo sempre, in funzione del tipo di problema da risolvere, dei procedimentali mentali
di un certo tipo per arrivare alla soluzione, ovvero astraiamo dal caso specifico per ricondurci a un “pattern” più generale che
conosciamo.
Quindi l’Astrazione é il procedimento mentale che si adotta quando si concentra l’attenzione su alcune caratteristiche,
trascurando le altre giudicate non rilevanti.
Nel nostro caso i meccanismi fondamentali di astrazione sono:
 Classificazione: identifica classi di oggetti del mondo reale aventi proprietà comuni
 Aggregazione: definisce un nuovo concetto a partire da concetti componenti
 Generalizzazione: definisce una classe astraendo dalle differenze esistenti tra due o più classi
13
PROGETTAZIONE DATABASE
Meccanismi di astrazione
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Insieme (classe) di oggetti della realtà di interesse che possiedono caratteristiche comuni (es. persone,
automobili, …) e che hanno esistenza “autonoma”
 L’istanza (elemento) di un’entità è uno specifico oggetto appartenente a quella entità (es. io, la mia auto, …)
 Graficamente un’entità si rappresenta con un rettangolo
Persone Automobili Impiegati
14
PROGETTAZIONE DATABASE
Modello E/R: Entità
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Data un’Entità, in prima approssimazione possiamo considerarla “equivalente” a una Relazione , di cui però
non sappiamo ancora definire lo Schema:
Studenti
…. …. …. …. …. …. …. ….
…. …. …. …. …. …. …. ….
Studenti
https://it.wikipedia.org/wiki/Relazione_(matematica)
15
PROGETTAZIONE DATABASE
Entità e Relazioni
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Definizione di un concetto (classe) a partire da un insieme di concetti componenti
Studenti
 La Matricola è una parte (part of) dello Studente
 È la tipica astrazione che viene utilizzata quando si definiscono dei record (tuple)
Matricola Cognome Email
16
PROGETTAZIONE DATABASE
Astrazione di aggregazione
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Un caso particolarmente interessante è quando i concetti che vengono aggregati sono delle classi che
rappresentiamo come delle entità
Esami
Studenti Corsi
Lezioni
Aule Corsi Orari
17
PROGETTAZIONE DATABASE
Aggregazione di classi
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Rappresenta un legame logico tra entità, rilevante nella realtà che si sta considerando
 Istanza di associazione: combinazione (aggregazione) di istanze delle entità che prendono parte
all’associazione
 Graficamente un’associazione si rappresenta con un rombo:
Persone Risiedono Città
 Se ‘p’ è un’istanza di Persone e ‘c’ un’istanza di Città, la coppia (p, c) è un’istanza dell’associazione Risiedono
18
PROGETTAZIONE DATABASE
Modello E/R: Associazione
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Un atttributo è una proprietà elementare di un’entità o di un’associazione, graficamente :
Persone
nome
cognome
cod_fiscale
 nome, cognome, cod_fiscale sono tutti Attributi di Persone
 Ogni attributo è definito su un dominio di valori
 Quindi un attributo associa ad ogni istanza di entità o associazione un valore del corrispondente dominio
19
PROGETTAZIONE DATABASE
Attributi
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Ancora in modo approssimato, un entità con attributi possiamo considerarla “equivalente” a una Relazione,
di cui ora possiamo definire lo schema :
Matricola Cognome Nome DataNascita Email
29323 Bianchi Giorgio 21/06/1978 gbianchi@alma.unibo.it
Studenti
nome
cognome
data_nascita
matricola
email
35467 Rossi Anna 13/04/1978 anna.rossi@yahoo.it
39654 Verdi Marco 20/09/1979 mverdi@mv.com
Studenti
20
PROGETTAZIONE DATABASE
Entità con attributi e relazioni
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 È importante fare attenzione a dove si specificano gli attributi!
Studenti Esami
 data e voto non sono proprietà né di uno studente né di un corso, ma del legame Studenti-Corsi che si crea
in occasione di un esame
voto data
Corsi
21
PROGETTAZIONE DATABASE
Attributi: dell’entità o dell’associazione?
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Osserviamo che CodCorso è la sola chiave di Corsi, e
quindi anche chiave primaria, e che Matricola è la
chiave primaria di Studenti.
 Possiamo pertanto dire, senza perdita di informazioni,
che :
“Lo studente con numero di matricola 29323 ha superato
con voto 28 il 12 Giugno 2003 l’esame del corso con
codice 483” .
e quindi per l’associazione di fatto dobbiamo
rappresentare solo:
Studenti Esami
voto data
Corsi
matricola codcorso
Matricola Voto Data CodCorso
29323 28 12/06/2003 483
35467 30 15/07/2003 729
39654 26 12/06/2003 913
22
PROGETTAZIONE DATABASE
Rappresentare un’associazione
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 min-card(Automobili,Proprietà) = 0: esistono automobili non possedute da alcuna persona
 max-card(Automobili,Proprietà) = 1: ogni automobile può avere al più un proprietario
 min-card(Persone,Proprietà) = 0: esistono persone che non posseggono alcuna automobile
 max-card(Persone,Proprietà) = n: ogni persona può essere proprietaria di un numero arbitrario di automobili
Si noti che i vincoli si possono stabilire correttamente solo se è ben chiaro cosa rappresentano le diverse entità (analisi della
realtà!)
Persone Proprietà Automobili
(0,n) (0,1)
23
PROGETTAZIONE DATABASE
Vincoli di cardinalità: un esempio
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Nella realtà presa in esame da rappresentare ci sono le
consulenze che fanno i professionisti con le aziende, il
sistema dovrà rilevare il numero di consulenze
effettuate dal professionista per ogni azienda con
relativo costo totale.
24
PROGETTAZIONE DATABASE
Esercizio di creazione di un modello E/R
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Professionista Consulenza Azienda
(0,n) (0,n)
Costo Tot.Numero
Nome Qualifica Indirizzo Nome
25
PROGETTAZIONE DATABASE
Soluzione Esercizio di creazione di un modello E/R
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Requisiti del
Sistema
Informativo
Progettazione
Concettuale
Schema Concettuale
Schema Logico
Progettazione Logica
Progettazione Fisica
Schema Fisico
Cosa si rappresenta
Come lo si rappresenta
26
PROGETTAZIONE DATABASE
Progettazione Logica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Obiettivo della fase di Progettazione Logica è pervenire, a partire dallo Schema Concettuale, a
uno Schema Logico che lo rappresenti in modo fedele e che sia, al tempo stesso, “efficiente”
 L’efficienza è legata alle prestazioni, ma poiché queste non sono valutabili precisamente a Livello
Concettuale e Logico si deve far ricorso a degli indicatori semplificati per poter confrontare tra loro
diverse alternative di traduzione
 Per quanto detto dividiamo il lavoro in due parti:
 Progettazione Logica “fedele”
 Progettazione Logica “efficiente”
 In ogni caso, a Livello Logico non introduciamo nuova informazione, con la possibile eccezione di
qualche ridondanza (ma questa non è informazione “nuova”)
27
PROGETTAZIONE DATABASE
Progettazione Logica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
PROGETTAZIONE DATABASE
 Si consideri il seguente schema E/R:
Persone Proprietà Automobili
(0,n) (0,1)
Data AcquistoCF Targa
 e lo Schema Relazionale:
Persone(CF)
Auto(Targa)
Proprieta(CF,Targa,DataAcquisto)
FK: CF REFERENCES Persone
FK: Targa REFERENCES Auto
 La traduzione preserva l’informazione, ma ….
CF Targa Data Acquisto
BLGSTR71B22 CT 001 MJ 12/08/2004
Proprietà
FDLNNR66M45 CT 001 MJ 15/07/2003
CF
BLGSTR71B22
FDLNNR66M45
Persone
BSZNTN82L27
28
Problemi nella Progettazione Logica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 La definizione data di equivalenza non è “operativa”, in quanto non dice nulla su come debba essere fatta una traduzione
che garantisca l’equivalenza degli schemi.
 Tuttavia può essere usata “localmente”:
In pratica, la traduzione avviene operando una sequenza di trasformazioni/traduzioni semplici, per ognuna delle quali è
altrettanto semplice dare delle Regole che garantiscono l’equivalenza.
 Per quanto visto, possiamo dividere queste Regole in:
 Regole che preservano l’informazione: Regole sulla Struttura.
 Regole aggiuntive che garantiscono l’equivalenza: Regole sui Vincoli.
 Vedremo che l’equivalenza può solo essere in parte garantita dal DDL di SQL, e quindi c’è bisogno di altro…
29
PROGETTAZIONE DATABASE
Progettazione Logica in Pratica
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Consideriamo il caso più semplice in cui:
 Abbiamo entità e associazioni.
 Ogni entità ha un singolo identificatore, ed è interno.
 Non abbiamo attributi ripetuti.
Studenti Esami
voto data
Corsi
matricola
codcorso
cognome
nome
email
titolo anno
(0,n) (0,n)
DocenzeProfessori
(1,1)
(1,n)
dipartimento
Num_ord
cognome
nome
30
PROGETTAZIONE DATABASE
Traduzione di schemi E/R semplici
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Matricola Cognome Nome DataNascita Email*
29323 Bianchi Giorgio 21/06/1978 gbianchi@alma.unibo.it
Studenti
35467 Rossi Anna 13/04/1978
39654 Verdi Marco 20/09/1979 mverdi@mv.com
Codice Titolo Anno
483 Analisi 1
Corsi
729 Analisi 1
815 Elettronica 2
913 Sistemi Inf. 3
Dip Num_ord Cognome Nome
DEIS 12 Bolzano Bernhard
Professori
DEIS 15 Codd Ted
DIE 12 Marconi Guglielmo
 Ogni entità è tradotta con una relazione con gli stessi attributi
 La chiave primaria coincide con l’identificatore dell’entità
 Se un attributo è opzionale permettiamo la presenza di valori nulli, e usiamo l’asterisco (*) per indicare
tale possibilità
31
PROGETTAZIONE DATABASE
Traduzione di base: entità
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Codice Dip Num_ord
483 DEIS 12
Docenze
729 DEIS 12
815 DIE 12
913 DEIS 15
Matricola Codice Voto Data
29323 483 28 12/06/2003
Esami
39654 729 30 15/07/2003
29323 913 30 20/09/2004
 Ogni associazione è tradotta con una relazione con gli stessi attributi, cui si aggiungono gli identificatori di tutte
le entità che essa collega.
 gli identificatori delle entità collegate costituiscono una superchiave.
 la chiave primaria dipende dalle cardinalità massime delle entità nell’associazione
32
PROGETTAZIONE DATABASE
Traduzione di base: associazioni
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 La chiave primaria coincide con l’unione degli identificatori delle entità collegate:
Esami(Matricola,CodCorso,Voto,Data)
FK: Matricola REFERENCES Studenti
FK: CodCorso REFERENCES Corsi
 Per le associazioni molti a molti la traduzione presentata, ovvero con una relazione a sé, è la sola alternativa
ragionevole.
33
PROGETTAZIONE DATABASE
Associazioni molti a molti
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 La chiave primaria coincide con l’identificatore dell’entità che partecipa con cardinalità massima 1 :
Docenze(CodCorso,Dip,Num_ordine)
FK: CodCorso REFERENCES Corsi
FK: (Dip,Num_ordine) REFERENCES Professori
 Perché?
 Poiché ogni corso c ha al massimo 1 docente, allora c può comparire al massimo una volta in Docenze.
34
PROGETTAZIONE DATABASE
Associazioni uno a molti
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 La chiave primaria è uno dei due identificatori, l’altro diventa una chiave alternativa
Rettori R_U Università
cognome nome
(1,1)
cittànome
cf
data_inizio
R_U(CF,NomeUniversita,DataInizio)
FK: CF REFERENCES Rettori
FK: NomeUniversita REFERENCES Universita
Unique(NomeUniversita)
35
PROGETTAZIONE DATABASE
Associazioni uno a uno
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
 Valgono le considerazioni già fatte, ad esempio:
Fornitori Forniture Prodotti
Dipartimenti
(0,n)
(1,n)
(1,n)
nome Partita IVA Quantità
Genere Codice
nome
Telefono
Fornitori(PartitaIVA, Nome)
Prodotti (Codice, Genere)
Dipartimenti (Nome, Telefono)
Forniture (Fornitore, Prodotto, Dipartimento, Quantità)
FK: …
36
PROGETTAZIONE DATABASE
Associazioni n-arie
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Una Forma Normale è una proprietà di una Base di Dati Relazionale che ne garantisce la Qualità.
Prima Forma Normale
 Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione:
 per ogni relazione contenuta nella base dati, una relazione è in 1NF se e solo se:
1. Ciascun attributo è definito su un dominio con valori atomici (indivisibili).
2. Ogni attributo contiene un singolo valore da quel dominio.
 Violazioni della 1NF (atomicità dei valori)
 Il seguente esempio viola la 1NF, perché pur esistendo una chiave primaria ({Matricola,Materia}),
l'attributo Voto non è definito su un dominio con valori atomici:
Matricola Studente Materia Voto
0000-000-01 Pietro Basi di Dati 1 sem, B ; 2 sem, F
0000-000-02 Pietro Basi di Dati 1 sem, A ; 2 sem, A
0000-000-03 Sara Basi di Dati 1 sem, B ; 2 sem, A
Voti
37
PROGETTAZIONE DATABASE
Normalizzazione Base Dati Relazionale: Database in Prima Forma Normale
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
È necessario ristrutturare la relazione come segue:
Voti Matricola Studente Materia Semestre Voto
0000-000-01 Pietro Basi di Dati 1 B
0000-000-01 Pietro Basi di Dati 2 F
0000-000-02 Pietro Basi di Dati 1 A
0000-000-02 Pietro Basi di Dati 2 A
0000-000-03 Sara Basi di Dati 1 B
0000-000-03 Sara Basi di Dati 2 A
38
PROGETTAZIONE DATABASE
Normalizzazione Base dati Relazionale – 1FN
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Seconda Forma Normale
Una base dati è invece in 2NF (seconda forma normale) quando è in 1NF e per ogni relazione tutti gli attributi non-chiave
dipendono funzionalmente dall'intera chiave composta (ovvero la relazione non ha attributi che dipendono funzionalmente da
una parte della chiave).
Come esempio supponiamo di avere una tabella con gli esami sostenuti dagli studenti universitari per diversi corsi di laurea. I
campi di interesse potrebbero quindi essere i seguenti:
"Codice corso di laurea"
"Codice esame"
"Matricola studente"
"Voto conseguito"
"Data superamento"
La tabella avrà quindi la seguente intestazione
Id_corso Id_esame Id_studente voto Data
39
PROGETTAZIONE DATABASE
Normalizzazione Base dati Relazionale – 2FN
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
La chiave candidata (tale terminologia è riservata alle superchiavi minimali, anche dette semplicemente chiavi) è rappresentata dalla tripla
evidenziata, ossia da:
"Codice corso di laurea"
"Codice esame"
"Matricola studente"
Essa infatti risulta essere l'insieme di chiavi minimale per poter identificare in modo univoco le tuple (i record) della tabella.
I campi "Voto conseguito" e "Data superamento", invece, sono campi non chiave, e fanno riferimento all'intera superchiave.
Difatti, se dipendessero solo da:
"Codice corso di laurea" non potrebbero essere inseriti o reperiti i valori legati a diversi studenti per diversi esami superati
"Codice esame" non potrebbero essere inseriti o reperiti i valori legati agli studenti ed al/ai corso di laurea
"Matricola studente" non potrebbero essere inseriti o reperiti i valori legati ai diversi esame superati e ai corsi di laurea a cui gli studenti sono
iscritti.
"Codice corso di laurea", "Codice esame" non potrebbero essere inseriti o reperiti i valori legati ai diversi studenti che hanno superato l'esame
per quel corso di laurea.
"Codice corso di laurea", "Matricola studente" non potrebbero essere inseriti o reperiti i valori legati ai diversi esami superati da uno studente
iscritto ad un corso di laurea.
"Matricola studente", "Codice esame" non potrebbero essere inseriti o reperiti i valori legati ai diversi Corsi di Laurea sostenuti dagli studenti cui
quell'esame può appartenere.
40
PROGETTAZIONE DATABASE
Normalizzazione Base dati Relazionale – 2FN
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Terza Forma Normale
Una base dati è in 3NF (terza forma normale) se è in 2NF e se tutti gli attributi non-chiave dipendono dalla chiave soltanto,
ossia non esistono attributi non-chiave che dipendono da altri attributi non-chiave. Tale normalizzazione elimina la dipendenza
transitiva degli attributi dalla chiave.
NomeImp Reparto TelefReparto
Impiegato
Chiave : NomeImp
TelefReparto dipende da Reparto, oltre che da NomeImp (si ha dipendenza transitiva dalla chiave).
Problemi :
 telefono del Reparto ripetuto per ogni Impiegato di quel Reparto
 se il telefono cambia, occorre modificare molte righe
 con errori di aggiornamento, si avrebbero telefoni differenti
 se un Reparto non ha impiegati, non si può conoscere il suo telefono.
41
PROGETTAZIONE DATABASE
Normalizzazione Base dati Relazionale – 3FN
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Terza Forma Normale
Soluzione : relazioni in 3FN:
NomeImp Reparto
Impiegato
Reparto TelefReparto
Reparto
42
PROGETTAZIONE DATABASE
Normalizzazione Base dati Relazionale – 3FN
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte
Questa presentazione è stata elaborata da :
http://www-db.deis.unibo.it/courses/SIL-B/
Questo materiale è principalmente tratto dal corso universitario di UniBo al seguente Link:
Roberto Belmonte
ASP.NET and Angular Developer
LinkedIn: https://it.linkedin.com/in/robertobelmonte
43
PROGETTAZIONE DATABASE
Crediti
Roberto Belmonte - LinkedIn:
https://it.linkedin.com/in/robertobelmonte

Mais conteúdo relacionado

Mais procurados

Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad RelaciónDamelys Bracho
 
Antecedentes de la tgs
Antecedentes de la tgsAntecedentes de la tgs
Antecedentes de la tgsjulianj
 
Los lenguajes controlados en la organización y recuperación de contenidos
Los lenguajes controlados en la organización y recuperación de contenidosLos lenguajes controlados en la organización y recuperación de contenidos
Los lenguajes controlados en la organización y recuperación de contenidosWilmer Arturo Moyano Grimaldo
 
Metadata an overview
Metadata an overviewMetadata an overview
Metadata an overviewrobin fay
 
ISO Knowledge Management standard
ISO Knowledge Management standardISO Knowledge Management standard
ISO Knowledge Management standardFernando Zeballos
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
SOFTWARE BIBLIOGRAFICO SIABUC
SOFTWARE BIBLIOGRAFICO SIABUCSOFTWARE BIBLIOGRAFICO SIABUC
SOFTWARE BIBLIOGRAFICO SIABUCordenadatos
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidademilio_ambrosio
 
Introducción a las bases de datos
Introducción a las bases de datosIntroducción a las bases de datos
Introducción a las bases de datosMaria Garcia
 
Aligner vos données avec Wikidata grâce à l'outil Open Refine
Aligner vos données avec Wikidata grâce à l'outil Open RefineAligner vos données avec Wikidata grâce à l'outil Open Refine
Aligner vos données avec Wikidata grâce à l'outil Open RefineGautier Poupeau
 

Mais procurados (20)

Banco de Dados - Conceitos Básicos
Banco de Dados - Conceitos BásicosBanco de Dados - Conceitos Básicos
Banco de Dados - Conceitos Básicos
 
Modelo Entidad Relación
Modelo Entidad RelaciónModelo Entidad Relación
Modelo Entidad Relación
 
Antecedentes de la tgs
Antecedentes de la tgsAntecedentes de la tgs
Antecedentes de la tgs
 
RDA(Recursos, Descripción y Acceso
RDA(Recursos, Descripción y AccesoRDA(Recursos, Descripción y Acceso
RDA(Recursos, Descripción y Acceso
 
Lenguaje SQL
Lenguaje SQLLenguaje SQL
Lenguaje SQL
 
Modelos de datos
Modelos de datosModelos de datos
Modelos de datos
 
Los lenguajes controlados en la organización y recuperación de contenidos
Los lenguajes controlados en la organización y recuperación de contenidosLos lenguajes controlados en la organización y recuperación de contenidos
Los lenguajes controlados en la organización y recuperación de contenidos
 
Base de datos ppt
Base de datos pptBase de datos ppt
Base de datos ppt
 
LRM: Library Reference Model (Ricardo Santos Muñoz)
LRM: Library Reference Model (Ricardo Santos Muñoz)LRM: Library Reference Model (Ricardo Santos Muñoz)
LRM: Library Reference Model (Ricardo Santos Muñoz)
 
Basi di dati
Basi di dati Basi di dati
Basi di dati
 
Metadata an overview
Metadata an overviewMetadata an overview
Metadata an overview
 
ISO Knowledge Management standard
ISO Knowledge Management standardISO Knowledge Management standard
ISO Knowledge Management standard
 
NoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradasNoSQL: Introducción a las Bases de Datos no estructuradas
NoSQL: Introducción a las Bases de Datos no estructuradas
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
RDA: Recursos, Descripción y Acceso
RDA: Recursos, Descripción y AccesoRDA: Recursos, Descripción y Acceso
RDA: Recursos, Descripción y Acceso
 
SOFTWARE BIBLIOGRAFICO SIABUC
SOFTWARE BIBLIOGRAFICO SIABUCSOFTWARE BIBLIOGRAFICO SIABUC
SOFTWARE BIBLIOGRAFICO SIABUC
 
Fundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidadFundamentos de base de datos 1a. unidad
Fundamentos de base de datos 1a. unidad
 
Introducción a las bases de datos
Introducción a las bases de datosIntroducción a las bases de datos
Introducción a las bases de datos
 
Aligner vos données avec Wikidata grâce à l'outil Open Refine
Aligner vos données avec Wikidata grâce à l'outil Open RefineAligner vos données avec Wikidata grâce à l'outil Open Refine
Aligner vos données avec Wikidata grâce à l'outil Open Refine
 

Semelhante a Progettazione database relazionali

Progettazione n
Progettazione nProgettazione n
Progettazione nimartini
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis nimartini
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...it Consult
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Massimo Cenci
 
G3 Web Skills Profiles Generation 3 European ICT Professional Profiles
G3 Web Skills Profiles Generation 3 European ICT Professional ProfilesG3 Web Skills Profiles Generation 3 European ICT Professional Profiles
G3 Web Skills Profiles Generation 3 European ICT Professional ProfilesPasquale Popolizio
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)Marco Pozzan
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & AnalyticsDavide Mauri
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning dataMarco Pozzan
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven DesignAndrea Saltarello
 
Ds Tech Business Analytics
Ds Tech Business AnalyticsDs Tech Business Analytics
Ds Tech Business Analyticsrecruite
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateManuel Scapolan
 
BigUD pitch - Working Capital
BigUD pitch - Working CapitalBigUD pitch - Working Capital
BigUD pitch - Working CapitalMarco Camilli
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in ActionDotNetMarche
 

Semelhante a Progettazione database relazionali (20)

Progettazione n
Progettazione nProgettazione n
Progettazione n
 
Basi di dati e gis n
Basi di dati e gis nBasi di dati e gis n
Basi di dati e gis n
 
PLM@NET
PLM@NETPLM@NET
PLM@NET
 
ORM - Introduzione
ORM - IntroduzioneORM - Introduzione
ORM - Introduzione
 
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
Modelli concettuali e architetture Object-Oriented per la progettazione e lo ...
 
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...La piattaforma josh - Scenario strategico della piattaforma software di it Co...
La piattaforma josh - Scenario strategico della piattaforma software di it Co...
 
3 database dbms
3 database dbms3 database dbms
3 database dbms
 
Corso access 2010
Corso access 2010Corso access 2010
Corso access 2010
 
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
Note di Data Warehouse e Business Intelligence - Tecniche di Naming Conventio...
 
G3 Web Skills Profiles Generation 3 European ICT Professional Profiles
G3 Web Skills Profiles Generation 3 European ICT Professional ProfilesG3 Web Skills Profiles Generation 3 European ICT Professional Profiles
G3 Web Skills Profiles Generation 3 European ICT Professional Profiles
 
Database relazionali
Database relazionaliDatabase relazionali
Database relazionali
 
Power bi Clean and Modelling (SQL Saturday #675)
Power bi Clean and Modelling  (SQL Saturday #675)Power bi Clean and Modelling  (SQL Saturday #675)
Power bi Clean and Modelling (SQL Saturday #675)
 
Sa framework
Sa frameworkSa framework
Sa framework
 
Business Intelligence & Analytics
Business Intelligence & AnalyticsBusiness Intelligence & Analytics
Business Intelligence & Analytics
 
Power B: Cleaning data
Power B: Cleaning dataPower B: Cleaning data
Power B: Cleaning data
 
Idiomatic Domain Driven Design
Idiomatic Domain Driven DesignIdiomatic Domain Driven Design
Idiomatic Domain Driven Design
 
Ds Tech Business Analytics
Ds Tech Business AnalyticsDs Tech Business Analytics
Ds Tech Business Analytics
 
Entity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernateEntity Framework 4.0 vs NHibernate
Entity Framework 4.0 vs NHibernate
 
BigUD pitch - Working Capital
BigUD pitch - Working CapitalBigUD pitch - Working Capital
BigUD pitch - Working Capital
 
Silverlight in Action
Silverlight in ActionSilverlight in Action
Silverlight in Action
 

Progettazione database relazionali

  • 2. Progettazione e modernizzazione database in ambiente "DB2 for i" – Contenuti:  Progettazione del Modello Concettuale di una Base Dati con l’utilizzo del metodo Entity-Relationship model (E/R).  Progettazione del Modello Logico di una Base Dati a partire dal Modello Concettuale.  Normalizzazione in Terza Forma Normale del modello Relazione di una Base Dati.  Modernizzazione di una Base Dati in ambiente IBM i e "DB2 for i" . 2 PROGETTAZIONE DATABASE Fasi e Metodologia Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 3. Progettazione Basi Dati - Ciclo di Vita di un Sistema Informativo : Studio di fattibilità Raccolta e analisi dei requisiti Realizzazione Validazione e collaudo Funzionamento Progettazione dei dati La Progettazione delle Base di Dati é una delle attività del processo di sviluppo dei Sistemi Informativi (SI), va quindi inquadrata in un contesto più generale del ‘Ciclo di Vita dei Sistemi Informativi’ che sono: • Insieme delle attività svolte da analisti, progettisti, manager, nello sviluppo e nell’uso dei sistemi informativi. • Attività iterativa, quindi Ciclo. 3 PROGETTAZIONE DATABASE Fasi e Metodologia Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 4. Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte requisiti del Sistema informativo progettazione concettuale progettazione logica progettazione fisica SCHEMA LOGICO SCHEMA CONCETTUALE SCHEMA FISICO applicazioniutenti interattivi DBMS Base Dati La metodologia introdotta prevede 3 fasi: Progettazione concettuale Progettazione logica Progettazione fisica La fase di raccolta e analisi dei requisiti in pratica viene ad essere svolta congiuntamente a quella di progettazione concettuale Ognuna delle fasi si basa su un modello, che permette di generare una rappresentazione formale (schema) della base di dati ad un dato livello di astrazione (concettuale, logico e fisico): Schema concettuale Schema logico Schema fisico 4 PROGETTAZIONE DATABASE Fasi e Metodologia
  • 5.  È la fase in cui si raccolgono e analizzano le specifiche informali ed eterogenee che i vari utenti danno delle procedure da automatizzare mediante un DBMS  requisitiinformativi: caratteristiche dei dati  requisiti sui processi: operazioni sui dati  requisiti sui vincoli di integrità: proprietà dei dati e delle operazioni  Attività principali:  Costruzione glossario dei termini  Eliminazione delle ambiguità (sinonimi, omonimi)  Raggruppamento dei requisiti “omogenei”  Fase solo apparentemente semplice, nella realtà è spesso la più complessa perché è difficilmente standardizzabile il processo che porta a capire cosa gli utenti vogliono! 5 PROGETTAZIONE DATABASE Fase di raccolta e analisi dei requisiti Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 6.  A partire dai requisiti informativi viene creato uno schema concettuale, cioè una descrizione formalizzata e integrata delle esigenze aziendali, espressa in modo indipendente dal DBMS adottato  A tale scopo si adotta un modello concettuale, che permette di fornire descrizioni ad alto livello indipendenti dall'implementazione  Lo schema concettuale è indipendente anche dal tipo di DBMS che sarà utilizzato (relazionale, gerarchico, ecc.) 6 PROGETTAZIONE DATABASE Fase di progettazione concettuale Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 7.  Consiste nella traduzione dello schema concettuale nel modello dei dati del DBMS  Il risultato è uno schema logico, espresso nel DDL del DBMS  In questa fase si considerano anche aspetti legati a:  integrità e consistenza (vincoli)  efficienza  La progettazione logica si articola in due sotto-fasi:  ristrutturazione dello schema concettuale  traduzione verso il modello logico 7 PROGETTAZIONE DATABASE Fase di progettazione logica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 8.  In questa ultima fase si operano scelte spesso strettamente dipendenti dallo specifico DBMS utilizzato  Ad esempio, lo stesso schema logico può essere fisicamente rappresentato in modo diverso in DB2 e in Oracle, al fine di meglio sfruttare le caratteristiche dei due DBMS  Il risultato è lo schema fisico, che descrive le strutture di memorizzazione e accesso ai dati (tablespace, clustering, indici, ecc.) 8 PROGETTAZIONE DATABASE Fase di progettazione fisica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 9. PROGETTAZIONE DATABASE Un modello dei dati è una collezione di concetti che vengono utilizzati per descrivere i dati, le loro associazioni, e i vincoli che questi devono rispettare. Un ruolo di primaria importanza nella definizione di un modello dei dati è svolto dai meccanismi che possono essere usati per strutturare i dati.  Modelli Logici: utilizzati nei DBMS esistenti per l’organizzazione dei dati utilizzati dai programmi, indipendenti dalle strutture fisiche.  Modelli Concettuali: permettono di rappresentare i dati in modo indipendente da ogni sistema.  cercano di descrivere i concetti del mondo reale  sono utilizzati nelle fasi preliminari di progettazione I l p i ù n o t o m o d e l l o C o n c e t t u a l e è : E n t i t y - R e l a t i o n s h i p m o d e l ( E / R ) ( C h e n 1 9 7 6 ) 9 Modelli dei dati: logici vs concettuali Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 10. PROGETTAZIONE DATABASE  La progettazione di un sistema informativo è guidata dai dati, e si avvale di una metodologia che consta di diverse fasi  Ogni fase produce uno schema, facendo uso di uno specifico modello  Per la progettazione concettuale si fa uso di un modello concettuale che, astraendo da aspetti specifici dei DBMS e dalla rappresentazione concreta dei dati, costituisce un valido compromesso tra ciò che si dovrà realizzare e la realtà che si deve modellare 10 Riassumiamo Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 11.  Cerchiamo quindi un livello di astrazione “intermedio” tra sistema e utenti, che sia al tempo stesso:  Flessibile  Intuitivo  Espressivo … tutte caratteristiche che mancano ai modelli logici  I modelli concettuali prevedono tipicamente una rappresentazione grafica, che risulta anche utile come strumento di documentazione e comunicazione Modello Schema 11 PROGETTAZIONE DATABASE Creare il Modello Concettuale dei Dati Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 12.  Uno “standard de facto” per la progettazione concettuale  Ha una rappresentazione grafica  Concetti fondamentali:  Entità (entity)  Associazione (relationship)  Attributo  Vincolo di cardinalità  Identificatore  Gerarchia 12 PROGETTAZIONE DATABASE Il Modello Entity-Relationship Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 13. Quando ragioniamo su un problema usiamo sempre, in funzione del tipo di problema da risolvere, dei procedimentali mentali di un certo tipo per arrivare alla soluzione, ovvero astraiamo dal caso specifico per ricondurci a un “pattern” più generale che conosciamo. Quindi l’Astrazione é il procedimento mentale che si adotta quando si concentra l’attenzione su alcune caratteristiche, trascurando le altre giudicate non rilevanti. Nel nostro caso i meccanismi fondamentali di astrazione sono:  Classificazione: identifica classi di oggetti del mondo reale aventi proprietà comuni  Aggregazione: definisce un nuovo concetto a partire da concetti componenti  Generalizzazione: definisce una classe astraendo dalle differenze esistenti tra due o più classi 13 PROGETTAZIONE DATABASE Meccanismi di astrazione Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 14.  Insieme (classe) di oggetti della realtà di interesse che possiedono caratteristiche comuni (es. persone, automobili, …) e che hanno esistenza “autonoma”  L’istanza (elemento) di un’entità è uno specifico oggetto appartenente a quella entità (es. io, la mia auto, …)  Graficamente un’entità si rappresenta con un rettangolo Persone Automobili Impiegati 14 PROGETTAZIONE DATABASE Modello E/R: Entità Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 15.  Data un’Entità, in prima approssimazione possiamo considerarla “equivalente” a una Relazione , di cui però non sappiamo ancora definire lo Schema: Studenti …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. …. Studenti https://it.wikipedia.org/wiki/Relazione_(matematica) 15 PROGETTAZIONE DATABASE Entità e Relazioni Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 16.  Definizione di un concetto (classe) a partire da un insieme di concetti componenti Studenti  La Matricola è una parte (part of) dello Studente  È la tipica astrazione che viene utilizzata quando si definiscono dei record (tuple) Matricola Cognome Email 16 PROGETTAZIONE DATABASE Astrazione di aggregazione Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 17.  Un caso particolarmente interessante è quando i concetti che vengono aggregati sono delle classi che rappresentiamo come delle entità Esami Studenti Corsi Lezioni Aule Corsi Orari 17 PROGETTAZIONE DATABASE Aggregazione di classi Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 18.  Rappresenta un legame logico tra entità, rilevante nella realtà che si sta considerando  Istanza di associazione: combinazione (aggregazione) di istanze delle entità che prendono parte all’associazione  Graficamente un’associazione si rappresenta con un rombo: Persone Risiedono Città  Se ‘p’ è un’istanza di Persone e ‘c’ un’istanza di Città, la coppia (p, c) è un’istanza dell’associazione Risiedono 18 PROGETTAZIONE DATABASE Modello E/R: Associazione Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 19.  Un atttributo è una proprietà elementare di un’entità o di un’associazione, graficamente : Persone nome cognome cod_fiscale  nome, cognome, cod_fiscale sono tutti Attributi di Persone  Ogni attributo è definito su un dominio di valori  Quindi un attributo associa ad ogni istanza di entità o associazione un valore del corrispondente dominio 19 PROGETTAZIONE DATABASE Attributi Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 20.  Ancora in modo approssimato, un entità con attributi possiamo considerarla “equivalente” a una Relazione, di cui ora possiamo definire lo schema : Matricola Cognome Nome DataNascita Email 29323 Bianchi Giorgio 21/06/1978 gbianchi@alma.unibo.it Studenti nome cognome data_nascita matricola email 35467 Rossi Anna 13/04/1978 anna.rossi@yahoo.it 39654 Verdi Marco 20/09/1979 mverdi@mv.com Studenti 20 PROGETTAZIONE DATABASE Entità con attributi e relazioni Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 21.  È importante fare attenzione a dove si specificano gli attributi! Studenti Esami  data e voto non sono proprietà né di uno studente né di un corso, ma del legame Studenti-Corsi che si crea in occasione di un esame voto data Corsi 21 PROGETTAZIONE DATABASE Attributi: dell’entità o dell’associazione? Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 22.  Osserviamo che CodCorso è la sola chiave di Corsi, e quindi anche chiave primaria, e che Matricola è la chiave primaria di Studenti.  Possiamo pertanto dire, senza perdita di informazioni, che : “Lo studente con numero di matricola 29323 ha superato con voto 28 il 12 Giugno 2003 l’esame del corso con codice 483” . e quindi per l’associazione di fatto dobbiamo rappresentare solo: Studenti Esami voto data Corsi matricola codcorso Matricola Voto Data CodCorso 29323 28 12/06/2003 483 35467 30 15/07/2003 729 39654 26 12/06/2003 913 22 PROGETTAZIONE DATABASE Rappresentare un’associazione Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 23.  min-card(Automobili,Proprietà) = 0: esistono automobili non possedute da alcuna persona  max-card(Automobili,Proprietà) = 1: ogni automobile può avere al più un proprietario  min-card(Persone,Proprietà) = 0: esistono persone che non posseggono alcuna automobile  max-card(Persone,Proprietà) = n: ogni persona può essere proprietaria di un numero arbitrario di automobili Si noti che i vincoli si possono stabilire correttamente solo se è ben chiaro cosa rappresentano le diverse entità (analisi della realtà!) Persone Proprietà Automobili (0,n) (0,1) 23 PROGETTAZIONE DATABASE Vincoli di cardinalità: un esempio Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 24. Nella realtà presa in esame da rappresentare ci sono le consulenze che fanno i professionisti con le aziende, il sistema dovrà rilevare il numero di consulenze effettuate dal professionista per ogni azienda con relativo costo totale. 24 PROGETTAZIONE DATABASE Esercizio di creazione di un modello E/R Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 25. Professionista Consulenza Azienda (0,n) (0,n) Costo Tot.Numero Nome Qualifica Indirizzo Nome 25 PROGETTAZIONE DATABASE Soluzione Esercizio di creazione di un modello E/R Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 26. Requisiti del Sistema Informativo Progettazione Concettuale Schema Concettuale Schema Logico Progettazione Logica Progettazione Fisica Schema Fisico Cosa si rappresenta Come lo si rappresenta 26 PROGETTAZIONE DATABASE Progettazione Logica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 27.  Obiettivo della fase di Progettazione Logica è pervenire, a partire dallo Schema Concettuale, a uno Schema Logico che lo rappresenti in modo fedele e che sia, al tempo stesso, “efficiente”  L’efficienza è legata alle prestazioni, ma poiché queste non sono valutabili precisamente a Livello Concettuale e Logico si deve far ricorso a degli indicatori semplificati per poter confrontare tra loro diverse alternative di traduzione  Per quanto detto dividiamo il lavoro in due parti:  Progettazione Logica “fedele”  Progettazione Logica “efficiente”  In ogni caso, a Livello Logico non introduciamo nuova informazione, con la possibile eccezione di qualche ridondanza (ma questa non è informazione “nuova”) 27 PROGETTAZIONE DATABASE Progettazione Logica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 28. PROGETTAZIONE DATABASE  Si consideri il seguente schema E/R: Persone Proprietà Automobili (0,n) (0,1) Data AcquistoCF Targa  e lo Schema Relazionale: Persone(CF) Auto(Targa) Proprieta(CF,Targa,DataAcquisto) FK: CF REFERENCES Persone FK: Targa REFERENCES Auto  La traduzione preserva l’informazione, ma …. CF Targa Data Acquisto BLGSTR71B22 CT 001 MJ 12/08/2004 Proprietà FDLNNR66M45 CT 001 MJ 15/07/2003 CF BLGSTR71B22 FDLNNR66M45 Persone BSZNTN82L27 28 Problemi nella Progettazione Logica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 29.  La definizione data di equivalenza non è “operativa”, in quanto non dice nulla su come debba essere fatta una traduzione che garantisca l’equivalenza degli schemi.  Tuttavia può essere usata “localmente”: In pratica, la traduzione avviene operando una sequenza di trasformazioni/traduzioni semplici, per ognuna delle quali è altrettanto semplice dare delle Regole che garantiscono l’equivalenza.  Per quanto visto, possiamo dividere queste Regole in:  Regole che preservano l’informazione: Regole sulla Struttura.  Regole aggiuntive che garantiscono l’equivalenza: Regole sui Vincoli.  Vedremo che l’equivalenza può solo essere in parte garantita dal DDL di SQL, e quindi c’è bisogno di altro… 29 PROGETTAZIONE DATABASE Progettazione Logica in Pratica Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 30.  Consideriamo il caso più semplice in cui:  Abbiamo entità e associazioni.  Ogni entità ha un singolo identificatore, ed è interno.  Non abbiamo attributi ripetuti. Studenti Esami voto data Corsi matricola codcorso cognome nome email titolo anno (0,n) (0,n) DocenzeProfessori (1,1) (1,n) dipartimento Num_ord cognome nome 30 PROGETTAZIONE DATABASE Traduzione di schemi E/R semplici Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 31. Matricola Cognome Nome DataNascita Email* 29323 Bianchi Giorgio 21/06/1978 gbianchi@alma.unibo.it Studenti 35467 Rossi Anna 13/04/1978 39654 Verdi Marco 20/09/1979 mverdi@mv.com Codice Titolo Anno 483 Analisi 1 Corsi 729 Analisi 1 815 Elettronica 2 913 Sistemi Inf. 3 Dip Num_ord Cognome Nome DEIS 12 Bolzano Bernhard Professori DEIS 15 Codd Ted DIE 12 Marconi Guglielmo  Ogni entità è tradotta con una relazione con gli stessi attributi  La chiave primaria coincide con l’identificatore dell’entità  Se un attributo è opzionale permettiamo la presenza di valori nulli, e usiamo l’asterisco (*) per indicare tale possibilità 31 PROGETTAZIONE DATABASE Traduzione di base: entità Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 32. Codice Dip Num_ord 483 DEIS 12 Docenze 729 DEIS 12 815 DIE 12 913 DEIS 15 Matricola Codice Voto Data 29323 483 28 12/06/2003 Esami 39654 729 30 15/07/2003 29323 913 30 20/09/2004  Ogni associazione è tradotta con una relazione con gli stessi attributi, cui si aggiungono gli identificatori di tutte le entità che essa collega.  gli identificatori delle entità collegate costituiscono una superchiave.  la chiave primaria dipende dalle cardinalità massime delle entità nell’associazione 32 PROGETTAZIONE DATABASE Traduzione di base: associazioni Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 33.  La chiave primaria coincide con l’unione degli identificatori delle entità collegate: Esami(Matricola,CodCorso,Voto,Data) FK: Matricola REFERENCES Studenti FK: CodCorso REFERENCES Corsi  Per le associazioni molti a molti la traduzione presentata, ovvero con una relazione a sé, è la sola alternativa ragionevole. 33 PROGETTAZIONE DATABASE Associazioni molti a molti Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 34.  La chiave primaria coincide con l’identificatore dell’entità che partecipa con cardinalità massima 1 : Docenze(CodCorso,Dip,Num_ordine) FK: CodCorso REFERENCES Corsi FK: (Dip,Num_ordine) REFERENCES Professori  Perché?  Poiché ogni corso c ha al massimo 1 docente, allora c può comparire al massimo una volta in Docenze. 34 PROGETTAZIONE DATABASE Associazioni uno a molti Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 35.  La chiave primaria è uno dei due identificatori, l’altro diventa una chiave alternativa Rettori R_U Università cognome nome (1,1) cittànome cf data_inizio R_U(CF,NomeUniversita,DataInizio) FK: CF REFERENCES Rettori FK: NomeUniversita REFERENCES Universita Unique(NomeUniversita) 35 PROGETTAZIONE DATABASE Associazioni uno a uno Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 36.  Valgono le considerazioni già fatte, ad esempio: Fornitori Forniture Prodotti Dipartimenti (0,n) (1,n) (1,n) nome Partita IVA Quantità Genere Codice nome Telefono Fornitori(PartitaIVA, Nome) Prodotti (Codice, Genere) Dipartimenti (Nome, Telefono) Forniture (Fornitore, Prodotto, Dipartimento, Quantità) FK: … 36 PROGETTAZIONE DATABASE Associazioni n-arie Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 37. Una Forma Normale è una proprietà di una Base di Dati Relazionale che ne garantisce la Qualità. Prima Forma Normale  Si dice che una base dati è in 1NF (prima forma normale) se vale la seguente relazione:  per ogni relazione contenuta nella base dati, una relazione è in 1NF se e solo se: 1. Ciascun attributo è definito su un dominio con valori atomici (indivisibili). 2. Ogni attributo contiene un singolo valore da quel dominio.  Violazioni della 1NF (atomicità dei valori)  Il seguente esempio viola la 1NF, perché pur esistendo una chiave primaria ({Matricola,Materia}), l'attributo Voto non è definito su un dominio con valori atomici: Matricola Studente Materia Voto 0000-000-01 Pietro Basi di Dati 1 sem, B ; 2 sem, F 0000-000-02 Pietro Basi di Dati 1 sem, A ; 2 sem, A 0000-000-03 Sara Basi di Dati 1 sem, B ; 2 sem, A Voti 37 PROGETTAZIONE DATABASE Normalizzazione Base Dati Relazionale: Database in Prima Forma Normale Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 38. È necessario ristrutturare la relazione come segue: Voti Matricola Studente Materia Semestre Voto 0000-000-01 Pietro Basi di Dati 1 B 0000-000-01 Pietro Basi di Dati 2 F 0000-000-02 Pietro Basi di Dati 1 A 0000-000-02 Pietro Basi di Dati 2 A 0000-000-03 Sara Basi di Dati 1 B 0000-000-03 Sara Basi di Dati 2 A 38 PROGETTAZIONE DATABASE Normalizzazione Base dati Relazionale – 1FN Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 39. Seconda Forma Normale Una base dati è invece in 2NF (seconda forma normale) quando è in 1NF e per ogni relazione tutti gli attributi non-chiave dipendono funzionalmente dall'intera chiave composta (ovvero la relazione non ha attributi che dipendono funzionalmente da una parte della chiave). Come esempio supponiamo di avere una tabella con gli esami sostenuti dagli studenti universitari per diversi corsi di laurea. I campi di interesse potrebbero quindi essere i seguenti: "Codice corso di laurea" "Codice esame" "Matricola studente" "Voto conseguito" "Data superamento" La tabella avrà quindi la seguente intestazione Id_corso Id_esame Id_studente voto Data 39 PROGETTAZIONE DATABASE Normalizzazione Base dati Relazionale – 2FN Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 40. La chiave candidata (tale terminologia è riservata alle superchiavi minimali, anche dette semplicemente chiavi) è rappresentata dalla tripla evidenziata, ossia da: "Codice corso di laurea" "Codice esame" "Matricola studente" Essa infatti risulta essere l'insieme di chiavi minimale per poter identificare in modo univoco le tuple (i record) della tabella. I campi "Voto conseguito" e "Data superamento", invece, sono campi non chiave, e fanno riferimento all'intera superchiave. Difatti, se dipendessero solo da: "Codice corso di laurea" non potrebbero essere inseriti o reperiti i valori legati a diversi studenti per diversi esami superati "Codice esame" non potrebbero essere inseriti o reperiti i valori legati agli studenti ed al/ai corso di laurea "Matricola studente" non potrebbero essere inseriti o reperiti i valori legati ai diversi esame superati e ai corsi di laurea a cui gli studenti sono iscritti. "Codice corso di laurea", "Codice esame" non potrebbero essere inseriti o reperiti i valori legati ai diversi studenti che hanno superato l'esame per quel corso di laurea. "Codice corso di laurea", "Matricola studente" non potrebbero essere inseriti o reperiti i valori legati ai diversi esami superati da uno studente iscritto ad un corso di laurea. "Matricola studente", "Codice esame" non potrebbero essere inseriti o reperiti i valori legati ai diversi Corsi di Laurea sostenuti dagli studenti cui quell'esame può appartenere. 40 PROGETTAZIONE DATABASE Normalizzazione Base dati Relazionale – 2FN Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 41. Terza Forma Normale Una base dati è in 3NF (terza forma normale) se è in 2NF e se tutti gli attributi non-chiave dipendono dalla chiave soltanto, ossia non esistono attributi non-chiave che dipendono da altri attributi non-chiave. Tale normalizzazione elimina la dipendenza transitiva degli attributi dalla chiave. NomeImp Reparto TelefReparto Impiegato Chiave : NomeImp TelefReparto dipende da Reparto, oltre che da NomeImp (si ha dipendenza transitiva dalla chiave). Problemi :  telefono del Reparto ripetuto per ogni Impiegato di quel Reparto  se il telefono cambia, occorre modificare molte righe  con errori di aggiornamento, si avrebbero telefoni differenti  se un Reparto non ha impiegati, non si può conoscere il suo telefono. 41 PROGETTAZIONE DATABASE Normalizzazione Base dati Relazionale – 3FN Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 42. Terza Forma Normale Soluzione : relazioni in 3FN: NomeImp Reparto Impiegato Reparto TelefReparto Reparto 42 PROGETTAZIONE DATABASE Normalizzazione Base dati Relazionale – 3FN Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte
  • 43. Questa presentazione è stata elaborata da : http://www-db.deis.unibo.it/courses/SIL-B/ Questo materiale è principalmente tratto dal corso universitario di UniBo al seguente Link: Roberto Belmonte ASP.NET and Angular Developer LinkedIn: https://it.linkedin.com/in/robertobelmonte 43 PROGETTAZIONE DATABASE Crediti Roberto Belmonte - LinkedIn: https://it.linkedin.com/in/robertobelmonte