DATABASE
Introduzione ai database
relazionali
1
COS’E’ UN
SISTEMA INFORMATIVO?

Un sistema informativo organizza e
gestisce tutte le informazioni
necessarie per eseguire gli scopi di
una organizzazione
2
SISTEMA INFORMATICO
SISTEMA INFORMATIVO
Quando viene
automatizzato
tramite strumenti
elettronici diventa un
SISTEMA INFORMATICO
3
Dati e informazioni

Un sistema
informativo/informatico
presenta 2 nozioni
fondamentali che è bene
distinguere: il concetto di
dato e di informazione
4
Dato ed informazione


Dato: valore in sé (un numero, una
data, una frase)
Informazione: conoscenza dei fatti,
significato del dato, associazione tra
uno o più dati.
5
Dato ed informazione


I dati da soli potrebbero non avere alcun
significato, e generalmente non forniscono
informazione
I dati assumono un significato quando
vengono interpretati in un contesto e/o
correlati in maniera opportuna
6
ESEMPIO: UN DATO
08/05/2013
Che informazione ci da?
Sicuramente rappresenta un giorno, ma di
per sé non significa nulla.
Ma associando a tale dato un contesto
che gli dà significato questo diventa una
informazione
7
ESEMPIO:
UNA INFORMAZIONE
Data inizio lezioni studenti
12/09/2013
Il dato diventa una informazione
8
ESEMPIO: UN DATO
MANZONI ALESSANDRO
Che informazione ci da?
9
CONTESTO:
ASSOCIAZIONE DI 2 DATI
MANZONI ALESSANDRO
I PROMESSI SPOSI
Il dato messo in un certo contesto assume un certo
significato
10
CONTESTO:
Manzoni Alessandro
Residente in Piazza Europa 26, 10110 Torino
Lo stesso dato in un contesto diverso assume un significato
diverso
11
FORMALMENTE
Dato:
un valore
registrato
su un
supporto di
memoria
INFORMAZIONE
Associazione tra
dato e suo
significato
Significato
Cosa
rappresenta il
dato
memorizzato
12
I DATI E LE LORO CORRELAZIONI
FORNISCONO INFORMAZIONI
Informazione 2
Dato7
Dato8
Informazione 1
Dato1
Dato2
Dato3
13
Cos’è una BASE DI DATI
(DATABASE)?
E’ una raccolta organizzata di
informazioni.
Una collezione di dati opportunemente
raggruppati ed organizzati in modo da
poter rappresentare le informazioni di
interesse
14
Cos’è una BASE DI DATI
(DATABASE)?


E’ un modello del mondo reale (una
rappresentazione informatica della
realtà di interesse)
E’ un modello del mondo reale che
permette l’utilizzo dei dati a utenti
diversi con applicazioni diverse e di
convertirli in informazioni utilizzabili
15
DATABASE - DBMS
La sigla DBMS (Data Base Management
System) indica il software utilizzato per
la gestione di un database
I programmi per la realizzazione di
database (come ACCESS) esistono per
permettere la catalogazione, la modifica
e la facile estrazione delle informazioni
16
OBIETTIVI DI UN DATABASE



Consistenza: i dati in essa contenuti devono
essere significativi ed essere effettivamente
utilizzabili nelle applicazioni dell'azienda
Sicurezza: impedire che il data base venga
danneggiato da interventi accidentali o non
autorizzati
Integrità: garantire che le operazioni effettuate
sul data base da utenti autorizzati non
provochino una perdita di consistenza ai dati
17
DATABASE DISTRIBUITI



Gli archivi che compongono una base di
dati possono risiedere sulle memorie di
massa di computer diversi, facenti parte di
una rete aziendale, i cui nodi possono
essere anche fisicamente lontani
Quando si verifica questo siamo di fronte
ad un database distribuito
In tal caso gli archivi sono integrati da un
punto di vista logico
18
DATABASE DISTRIBUITI - VANTAGGI




è possibile gestire archivi di dimensioni limitate
laddove vengono creati
facilitano il lavoro di manutenzione
si può effettuare maggior controllo sulla
sicurezza
si può garantire comunque la disponibilità dei
dati aggiornati a tutti gli utenti del sistema
informativo aziendale, qualunque sia la loro
posizione geografica o il computer da essi usato
per l’attività di elaborazione
19
ORGANIZZAZIONE DEI DATI



L’organizzazione dei dati è un aspetto di
fondamentale importanza.
Aver organizzato i dati in maniera corretta
evita di doverli riorganizzare
successivamente con grave dispendio di
risorse.
Un database ben strutturato consente di
avere una organizzazione INTEGRATA
dei dati.
20
ESEMPIO DI APPROCCIO
TRADIZIONALE NON INTEGRATO
Un'azienda utilizza in uffici diversi due diversi archivi A e B
A) Informazioni sui dipendenti che lavorano nei reparti di un’azienda
Matricola#
Nome
Età
Reparto
Badget
….
B) Informazioni sui dipendenti per i diversi progetti
Dipendente#
Nome
Progetto#
Nome Progetto Tempo %
….
Ognuno dei due modelli soddisfa le esigenze specifiche.
Ma cosa succede se vogliamo sapere quali sono i reparti che hanno
dipendenti che lavorano al progetto X ?
21
ESEMPIO DI APPROCCIO
TRADIZIONALE NON INTEGRATO
A
Matricola#
Nome
B
Dipendente# Nome
Età
Progetto#
Reparto
Badget
….
Nome Progetto Tempo %
….
Difetti nella gestione non integrata:
• Sinonimi: gli stessi dati hanno codici differenti (Matricola# in A e Dipendente#
in B)
• Lo stesso nome per dati differenti: Nome in A per dipendente e Nome in B per
Dipendente
• Ridondanza dei dati: Reparto e Budget del reparto ripetuto per ogni dipendente;
Progetto# e Nome Progetto ripetuti per ogni dipendente
• Rischio di anomalie negli aggiornamenti: una modifica effettuata sui valori dei
dati in un archivio, ma non nell’altro, provoca inconsistenza dei dati
22
Difetti nella organizzazione non
integrata dei dati
Ridondanza dei dati, cioè gli stessi dati compaiono in maniera
duplicata (inefficienza)
La ridondanza può portare all’incongruenza, nel caso in cui un dato
venga aggiornato in un archivio e non in un altro, oppure siano presenti
valori diversi per lo stesso dato
L’incongruenza porta all’inconsistenza dei dati, cioè i dati aziendali non
sono più affidabili, perché non si sa in modo certo quale dei diversi valori
sia quello corretto
Tutto ciò deriva dal fatto che i dati sono organizzati in archivi
diversi, in modo non integrato tra loro
23
VANTAGGI DI UNA CORRETTA
LOGICA NEI DATABASE
•
•
•
•
•
•
•
•
Indipendenza delle applicazioni dalla struttura fisica
dei dati
Indipendenza delle applicazioni dalla struttura logica
dei dati
Utilizzo da parte di più utenti con applicazioni diverse
Facilità di accesso
Eliminazione della ridondanza
Eliminazione della inconsistenza
Integrità dei dati
Sicurezza dei dati
24
VANTAGGI DEI DATABASE
Il vero vantaggio di un database sono le
operazioni sui dati organizzati
•
•
manipolazione o trattamento dei dati, cioè la
possibilità di inserire, modificare e cancellare i
dati
interrogazione, cioè la possibilità di ritrovare i
dati, richiesti da un’applicazione, in modo
semplice e veloce
25
Come costruire un database
REALTA’
(Problema
reale)
ANALISI
REALIZZAZIONE FISICA
DEL DATABASE
DATABASE LOGICO
Entità (tabelle)
Associazioni (interconnessioni tra le
tabelle)
IMPLEMENTAZIONE
(Access: tabelle, relazioni,
query, maschere, report, ecc.)
26
Passi da seguire per la
costruzione di DBMS
REALTA’
Progettazione
DATABASE LOGICO
MODELLO LOGICO
CONCETTUALE
MODELLO
FISICO
Realizzazione
fisica del
DBMS (ad es.
in Access)
Implementazione
Si rappresenta la realtà dei
dati e le associazioni tra
essi attraverso uno schema
Si definisce
l’organizzazione, la
composizione ed il formato
dei dati negli archivi
elettronici
27
Il livello concettuale: il metodo relazionale
modello entità/associazioni
Il modello entità/associazioni (in inglese E/R =
Entity/Relationship), introdotto nel 1976
da Peter P. Chen, permette di costruire un
modello concettuale dei dati indipendente
dalle applicazioni
Gli elementi di un modello E/R sono:

Entità e attributi

Associazioni
28
MODELLO RELAZIONALE



I dati vengono catalogati in tabelle
dette Entità
Le Entità vengono correlate tramite
Associazioni (Relazioni)
Le proprietà di entità e associazioni
vengono descritte tramite gli
Attributi
29
ENTITA’

Cos’è?


E’ una qualsiasi cosa che può essere
distintamente identificata
Cioè un oggetto che


Ha una propria individualità (sia
distinguibile concettualmente da altri
oggetti)
Abbia per noi rilevanza
30
ENTITA’ – istanze (individui)
L’entità è un oggetto (concreto o astratto) utile per
descrivere la realtà che si vuole rappresentare
Ad esempio una persona, un modello di automobile, un
movimento contabile, una prova sostenuta da uno
studente, possono essere considerate entità
Infatti gli studenti sono classificabili nel tipo entità Studente,
i diversi modelli di automobile sono classificabili nel tipo
entità Automobile
Ciascuno studente rappresenta un’istanza (un individuo)
del tipo entità Studente, ciascuna automobile
rappresenta un’istanza (un individuo) del tipo entità
Automobile
31
ASSOCIAZIONE (Relazione)

Cos’è?
 L’associazione (in inglese relationship) è un
legame che stabilisce un’interazione tra le entità
Per esempio tra l’entità Persona e l’entità Automobile esiste
un’associazione che può essere descritta nel linguaggio
naturale secondo due versi: una persona possiede una o
più automobili e un’automobile è posseduta da una
persona
Quindi si può dire che tra l’entità Persona e l’entità
Automobile esiste l’associazione Possiede; tra l’entità
Automobile e l’entità Persona esiste l’associazione
Posseduta da.
32
ATTRIBUTI

Cos’è?
 Un attributo è una proprietà di una entità
o di una associazione
Rimanendo all’esempio precedente delle autovetture, per
l’entità automobile possiamo avere i seguenti attributi:
Modello, Produttore, Cilindrata, PrezzoListino.
Notare che Modello e Produttore potrebbero essere
individuate come Entità e non come attributi e ciò
dipenderà esclusivamente da ciò che si deve fare, cioè
dalla nostra analisi della realtà.
33
ATTRIBUTI

Le caratteristiche di ogni attributo sono:



Il formato cioè il tipo di valori che può
assumere; per esempio: il tipo carattere,
numerico o data/ora
La dimensione cioè la quantità massima di
caratteri o cifre che possono essere inseriti
L'opzionalità cioè la possibilità di non essere
sempre valorizzato: l’attributo è obbligatorio se
deve avere valore non nullo, facoltativo se
sono accettabili valori nulli
34
ATTRIBUTI
Valore Nullo: Il valore nullo, in inglese Null, (da non
confondere con la stringa di caratteri blank o con un numero di
valore
zero)
rappresenta
un’informazione
mancante,
inapplicabile o sconosciuta
Dominio: I diversi valori assunti dagli attributi determinano le
diverse istanze dell’entità. L'insieme dei possibili valori assunti
da un attributo si chiama dominio dell'attributo
Chiave: Si indica con il termine chiave o chiave primaria
(primary key) l'insieme di uno o più attributi che consentono di
distinguere un’istanza dall'altra: esempi di chiavi sono il codice
di un prodotto o la matricola di un dipendente
35
MODELLO LOGICO

Entità




Attributi (campi)
Tipi di dato
Chiave primaria
Associazione / Relazione



1a1
1aN
NaM
36
Rappresentazione grafica.
Schema E/R
La rappresentazione classica ERD = Entity-Relationship
Diagram
Entità: si rappresenta con un rettangolo contenente
all'interno il nome dell'entità
Associazione: è rappresentata da una linea, che unisce
le due entità interessate
Versi dell’associazione: la descrizione compare a fianco
della linea e dell’entità di partenza del verso
STUDENTE
si compone degli
Fa parte della
CLASSE
37
Rappresentazione grafica.
Schema E/R
La rappresentazione classica ERD = EntityRelationship Diagram
Attributi
Individuazione della chiave
Codice studente
Cognome
STUDENTE
Nome
....
38
ESEMPIO: REALTA’: SCUOLA
Istruzione superiore
Vogliamo catalogare le
anagrafiche di una scuola
QUALI POTREBBERO ESSERE LE
NOSTRE ENTITA’?
39
ENTITA’
STUDENTI
INSEGNANTI
CLASSI
40
ATTRIBUTI


Sono le caratteristiche di una entità
che desideriamo conservare,
catalogare.
Sono le proprietà che
caratterizzano una entità o anche
una associazione
41
ESEMPIO SCUOLA
STUDENTI
INSEGNANTI
Cognome
Nome
Indirizzo
Cap
Città
Provincia
Telefono
Data nascita
Luogo nascita
….
Cognome
Nome
Indirizzo
Cap
Città
Provincia
Telefono
Materia
CLASSI
Nome classe
Aula
42
TABELLE  ENTITA’

Una entità è per noi una tabella dove le righe
sono le istanze, gli individui (i record)
dell’entità e le colonne sono gli Attributi
ENTITA’
Record
Attributo (campo)
Nome
Cognome Data nascita
Luogo Nascita
Mario
Rossi
02/04/1975
Milano
Francesca
Alberto
Verdi
Bianchi
24/11/1974
14/12/1974
Prato
Roma
…
…
…
…
43
TIPO DI DATO

Ogni attributo deve avere un tipo di dato definito. Ovvero
ogni colonna della tabella deve avere valori dello stesso
tipo
NOME
DESCRIZIONE
ACCESS
Byte
Intero da 0 a 255
Numerico  Byte
Smallint
Intero da -32.768 a 32.768
Numerico  Intero
Integer
Intero da -2.147.483.648 a 2.147.483.647
Numerico  Intero lungo
Numerico  Contatore
Float
Numero reale
Numerico  Precisione singola
Numerico  Precisione doppia
Numerico  Valuta
Datetime
Data/ora
Data/Ora
Char
Testo fino a 255 caratteri
Testo
Memo
Testo esteso fino a più di 64.000 caratteri
Memo
Boolean
True e false
Si/No
44
CHIAVE PRIMARIA

Una chiave primaria è la colonna (o
l’insieme di più colonne) che
definisce un individuo (una riga) di
una entità (tabella) in modo
univoco.
45
CHIAVE PRIMARIA


Alcune entità (poche) hanno una chiave
primaria naturale altre hanno bisogno di una
chiave artificiale (il “codice”)
Addirittura per catalogare una persona si ha
bisogno del “Codice Fiscale” che non è
nient’altro che un attributo artificiale
UNIVOCO che garantisce che la persona sia
individuata in maniera univoca
46
Procedendo con l’analisi

Una volta individuate entità, attributi,
chiavi primarie si deve procedere con
l’individuare le ASSOCIAZIONI
(RELAZIONI) che intercorrono tra le
varie entità.
47
ASSOCIAZIONI
Un’associazione tra le entità può
essere:
 obbligatoria quando il legame tra le
entità deve essere sempre presente
 opzionale quando può essere
presente
48
ASSOCIAZIONI
Il grado del verso dell'associazione
indica quante istanze dell'entità di
arrivo si associano all'istanza
dell'entità di partenza. Il grado può
essere:



1 a 1 Biunivoca
1 a N Uno a molti
N a M Molti a molti
49
ASSOCIAZIONE 1 a 1
Associazione 1:1 (uno a uno) o biunivoca
Ogni istanza (ogni individuo) della prima entità si
deve associare ad una sola istanza (ad un solo
individuo) della seconda entità e viceversa.
50
ASSOCIAZIONE 1 a 1
Ad un elemento di una entità corrisponde uno ed un
solo elemento della seconda entità
Anagrafica
Codice persona
Nome
Cognome
Indirizzo
Cap
Città
Provincia
Telefono
Cellulare
Email
1
1
Nascita
Codice persona
Data nascita
Luogo nascita
Provincia
Nome padre
Cognome padre
Nome madre
Cognome madre
51
ASSOCIAZIONE 1 a N
Associazione 1:N (uno a molti) o semplice
Ogni istanza (individuo) della prima entità si può
associare a una o più istanze (individui) della
seconda entità, mentre ogni istanza della seconda
entità si deve associare ad una sola istanza della
prima.
52
ASSOCIAZIONE 1 a N
Supponiamo di voler catalogare gli impiegati della nostra
azienda con eventuali figli a carico.
Nella nostra analisi dobbiamo individuare le entità per
questa realtà.
L’entità che individuiamo immediatamente è la tabella
“Impiegati”.
Impiegati
Codice impiegato
Nome
Cognome
…….
53
Impiegati + figli a carico
L’entità impiegato in formato tabellare
Codice impiegato
Nome
Cognome
Come fare a catalogare i figli a carico?
54
Soluzione ERRATA
Codice impiegato
Nome
Cognome
…
Figlio 1
Figlio 2
Figlio 3
…
• Cosa succede se un impiegato ha più figli di quanto previsto? Quanto è
abbastanza? 3? 5? 20?
• Anche se prevediamo 20 figli, nel caso della media 1/2/3 figli tutti gli
altri campi rimarranno vuoti: abbiamo spreco di spazio
• Come fare per esempio a trovare tutti i figli di nome Michele? Su quale
campo cercare? Figlio 1? Figlio 2? …. Figlio 20?
• Come fare se in un futuro vogliamo aggiungere ulteriori informazioni
riguardanti i figli?
55
Soluzione
C’è un errore di analisi: i figli a carico vanno visti come Entità
separata e non come attributi dell’entità impiegati.
IMPIEGATI
1
N
FIGLI A CARICO
La relazione che esiste tra gli impiegati ed i figli a carico è di tipo 1 a N
1 impiegato può avere N Figli a carico
1 IMPIEGATO  N FIGLI
1 figlio a carico può avere un solo padre che è impiegato e che lo tiene a
carico
1 FIGLIO A CARICO  1 IMPIEGATO
56
ASSOCIAZIONE N a M
Associazione N:M (molti a molti) o complessa
Ogni istanza (individuo) della prima entità si può
associare a una o più istanze (individui) della
seconda entità e viceversa
57
ASSOCIAZIONE N a M
Entità: Libri e Autori
AUTORI
Codice autore
Nome
Cognome
Email
N
M
LIBRI
Codice libro
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Codice casa editrice
1 Autore  N Libri (Un Autore può scrivere più libri)
1 Libro  N Autori (Un libro può anche essere scritto da più autori)
58
ASSOCIAZIONE N a M
Entità: Studenti universitari ed esami sostenuti
STUDENTI
Matricola
Nome
Cognome
……
N
M
ESAMI
Codice esame
Nome
…..
1 Studente  N Esami (Uno Studente può avere sostenuto
più esami)
1 Esame  N Studenti (Un esame può essere stato effettuato
da più studenti)
59
CHIAVI, ATTRIBUTI E RELAZIONI

Come si realizza una associazione 1 a 1 ?
Tabella 1
1
1 Tabella 2
La chiave primaria della Tabella 1 è uguale
alla chiave primaria della tabella 2
60
Esempio Relazione 1 a 1
(con l’asterisco indichiamo i campi che sono in
chiave primaria)
Anagrafica
Codice persona *
Cognome
Nome
Indirizzo
Cap
Città
Provincia
Telefono
Cellulare
Email
1
1
Nascita
Codice persona *
Data nascita
Luogo nascita
Provincia
Nome padre
Cognome padre
Nome madre
Cognome madre
61
Esempio Relazione 1 a 1
Le chiavi primarie delle due tabelle sono uguali
Cod. persona
Cognome
Nome
Indirizzo
1242
Rossi
Franco
Via Leopardi …
1318
Verdi
Alberto
Largo Umberto …
1
Cod. persona
Data Nascita
Luogo Nascita
1 1242
23/07/1961
Milano
1318
12/10/1980
Roma
62
Relazione 1 a N

Come si realizza una associazione 1 a N?
Tabella 1
1
N Tabella 2
ESISTONO 2 MODI
• La chiave primaria della tabella 1 (padre) è contenuta
nella chiave primaria della tabella 2 (figlia)
• La chiave primaria della tabella 1 (padre) è un attributo
della tabella 2 (figlia)
63
1 a N (Padre – Figlio)

La chiave primaria della tabella 2 (figlia) contiene la
chiave primaria della tabella 1 (padre)
IMPIEGATI
Codice impiegato *
Cognome
Nome
…..
1
N
FIGLI A CARICO
Codice impiegato *
Codice figlio *
Nome
Cognome
….
64
1 a N (Lookup)

La chiave primaria della tabella 1 (padre) è un attributo
della tabella 2 (figlia)
CASE EDITRICI
Codice casa editrice *
Ragione sociale
Indirizzo
Cap
Città
Telefono
Fax
Provincia
URL
Email
1
N
LIBRI
Codice libro *
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Codice casa editrice
65
Relazione N a M

Come si realizza una associazione N a M?
Tabella 1
N
M Tabella 2
Tramite una tabella aggiuntiva e 2 relazioni 1 a N
66
Relazione N a M
AUTORI
Codice autore *
Nome
Cognome
Email
…..
N
M
LIBRI
Codice libro *
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Codice casa editrice
67
Relazione N a M
La relazione N ad M viene spezzata tramite 2 relazioni 1 a N
AUTORI
Codice autore *
Nome
Cognome
Email
…..
1
1
N
N
LIBRI AUTORI
Codice libro *
Codice autore *
LIBRI
Codice libro *
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Codice casa editrice
68
NORMALIZZAZIONE
Una volta creata una prima bozza di uno schema logico
relazionale, è necessario effettuare una serie di verifiche
sulla correttezza del procedimento svolto.
Queste potranno portare a modificare la struttura dello
schema al fine di renderlo corretto ed evitare il verificarsi,
nella gestione dei dati, di errori difficilmente ovviabili a
posteriori.
Tale processo è detto normalizzazione ed è effettuabile
mediante procedimenti di tipo algebrico matematico, basati
sul concetto di dipendenza funzionale.
Vediamone in maniera informale le regole principali.
69
NORMALIZZAZIONE
È un processo con il quale le tabelle vengono
trasformate in altre tabelle in modo che ognuna di
esse corrisponda a un singolo oggetto della realtà
rappresentata
Le regole della normalizzazione sono definite per
evitare inconsistenza dei dati e anomalie nelle
operazioni di aggiornamento
70
NORMALIZZAZIONE
Uno schema logico concettuale può
definirsi “corretto” se rispetta:
• Prima forma normale
• Seconda forma normale
• Terza forma normale
71
DEFINIZIONI
Chiave (chiave primaria): l'insieme di uno o più attributi che
identificano in modo univoco una n-upla (riga della tabella)
Attributo non-chiave: un campo che non fa parte della chiave
primaria
Dipendenza funzionale tra attributi: il valore di un attributo A1
determina un singolo valore dell'attributo A2 (in simboli A1 è A2)
Dipendenza transitiva: un attributo A2 dipende da A1 e l'attributo
A3 dipende da A2; allora A3 dipende transitivamente da A1
se A1  A2 e A2 A3 allora A1  A3 in modo transitivo
72
Prima forma normale 1FN
Requisiti della Prima forma normale
 tutte le righe della tabella contengono lo stesso numero
di colonne
 gli attributi rappresentano informazioni elementari
 i valori che compaiono in una colonna appartengono allo
stesso dominio
 ogni riga è diversa da tutte le altre
 l’ordine con il quale le righe compaiono nella tabella è
irrilevante
In particolare gli attributi devono essere informazioni non
ulteriormente scomponibili, cioè non devono avere
sottoattributi, né essere gruppi di attributi ripetuti.
73
Prima forma normale 1FN
La prima forma normale stabilisce che in una tabella non
possono esistere colonne definite per contenere una
molteplicità di valori. Una tabella quindi non può contenere una
struttura vettoriale (array), al contrario di quanto consentito in
linguaggi di programmazione come il Pascal, il C.
Le tabelle che contengano una colonna non rispondente a
questa condizione vanno trasformate, creando per ciascuna
riga della tabella di partenza tante righe quanti sono i valori
multipli presenti nella colonna considerata
74
Esempio 1FN
IMPIEGATI
Cod. impiegato Cognome
Nome
Data nascita Figli a carico
001242
Rossi
Franco
09/11/1961
Marco
Giuseppe
Sandra
001318
Verdi
Alberto
24/04/1963
Sonia
Claudio
Una tabella di questo genere NON è in Prima forma
normale in quanto l’attributo figli a carico contiene più
valori.
75
Esempio 1FN
Con un processo di normalizzazione la tabella deve essere
trasformata in 2 tabelle
Cod. impiegato
Cognome
Nome
Data nascita
001242
Rossi
Franco
09/11/1961
001318
Verdi
Alberto
24/04/1963
1
N
Cod. impiegato Cod. Figlio
Nome
001242
01
Marco
001242
02
Giuseppe
001242
03
Sandra
001318
01
Sonia
001318
02
Claudio
76
Seconda forma normale 2FN
Requisiti della Seconda forma normale
 E’ in prima forma normale
 tutti i suoi attributi non-chiave dipendono dall’intera
chiave, cioè non possiede attributi che dipendono
soltanto da una parte della chiave
La seconda forma normale elimina la dipendenza parziale degli
attributi dalla chiave. Esempio:
La Tabella T1(A1,A2,A3,A4,A5) con
(A1, A2)  A3
A1  A4
A2  A5
non è in 2FN, e può essere normalizzata in
2FN con le tabelle:
T2(A1,A2,A3)
T3(A1,A4)
T4(A2,A5)
77
Seconda forma normale 2FN
La seconda forma normale riguarda quindi le tabelle in
cui la chiave primaria sia composta da più attributi e
stabilisce che, in questo caso, tutte le colonne
corrispondenti agli altri attributi dipendano dall’intera
chiave primaria.
ESEMPIO: Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Chiave primaria: Codarticolo + CodMagazzino
78
Esempio 2FN
Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Chiave primaria CodArticolo + CodMagazzino
Dipendenze funzionali (CodArticolo, CodMagazzino)  Quantità
CodMagazzino  IndirizzoMagazzino
CodArticolo  DescArticolo
Si ha dipendenza parziale dalla chiave: NON E’ in 2FN
79
Esempio 2FN
Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Problemi
• indirizzo del magazzino ripetuto per ogni prodotto (ridondanza)
• Descrizione dell’articolo ripetuto per ogni magazzino (ridondanza)
• se cambia l’indirizzo magazzino, occorre modificare molte righe
• con errori nell’aggiornamento si avrebbero indirizzi diversi per lo stesso
magazzino o descrizioni diverse per lo stesso articolo(inconsistenza)
• se non ci sono prodotti in un magazzino, non si può conoscere il suo indirizzo
o la descrizione dell’articolo
• se l’articolo non è presente in nessun magazzino, non si può conoscere la sua
descrizione esatta
80
Esempio 2FN
Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Soluzione: mettere in 2FN
Articolo
Magazzino
CodArticolo DescArticolo
CodMagazzino IndirizzoMagazzino
1
1
N
Inventario
N
CodArticolo CodMagazzino Quantità
81
Terza forma normale 3FN
Requisiti della Terza forma normale
 E’ in Seconda forma normale
 tutti gli attributi non-chiave dipendono direttamente dalla
chiave, cioè non possiede attributi che dipendono da
altri attributi che non sono in chiave
La terza forma normale elimina la dipendenza transitiva degli attributi
dalla chiave. Esempio:
La Tabella T1(A1,A2,A3,A4) con A2  A4
non è in 3FN, e può essere normalizzata in
3FN con le tabelle:
T2(A1,A2,A3)
T3(A2,A4)
82
Terza forma normale 3FN
La terza forma normale stabilisce che non esistano
dipendenze tra le colonne di una tabella se non basate
sulla chiave primaria.
ESEMPIO: Impiegati
CodImpiegato
Nome
Reparto TelefonoReparto
Chiave primaria CodImpiagato
Dipendenze funzionali CodImpiegato  Reparto
Reparto  TelefonoReparto
83
Esempio 3FN
Impiegato
CodImpiegato
Nome
Reparto TelefonoReparto
Problemi
• telefono del Reparto ripetuto per ogni Impiegato di quel Reparto (ridondanza)
• 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
Soluzione: mettere in 3FN
Impiegato
CodImpiegato
Reparto
Nome
Reparto
Reparto TelefonoReparto
84
RIASSUMENDO
Con la normalizzazione:






la tabella iniziale viene scomposta in più tabelle
complessivamente forniscono le stesse informazioni
di partenza
mantengono le dipendenze tra gli attributi
in ciascuna di esse ogni attributo dipende
direttamente dalla chiave
vengono evitati problemi di ridondanza e di
inconsistenza dei dati
non ci deve essere perdita complessiva delle
informazioni
85
RIASSUMENDO
Prima forma normale
possiede i requisiti fondamentali del modello relazionale, in
particolare ogni attributo è elementare, non ci sono righe uguali,
non ci sono attributi di gruppo o ripetuti
Seconda forma normale
è in prima forma normale e non ci sono attributi non-chiave che
dipendono parzialmente dalla chiave
Terza forma normale
è in seconda forma normale e non ci sono attributi non-chiave
che dipendono transitivamente dalla chiave
86
Integrità referenziale
Per integrità referenziale si intende l’insieme di
regole che garantiscono l’integrità dei dati di un
modello relazionale rendendo valide le
associazioni tra le tabelle ed eliminando gli
eventuali errori di inserimento, cancellazione o
modifica di dati collegati tra loro.
87
Integrità referenziale
Per ogni valore non nullo della chiave esterna, deve
esistere un valore corrispondente della chiave primaria
nella tabella associata
Tabella 1
Chiave1
ChiaveE2
Tabella 2
Chiave2
Ogni valore di ChiaveE2 della Tabella 1
deve avere un valore presente nella
Chiave2 della tabella 2 oppure il
valore di ChiaveE2 deve essere nullo
88
Effetti integrità referenziale
Non è possibile immettere un valore nella chiave esterna
di una tabella associata, se tale valore non esiste tra le
chiavi della tabella primaria
Esempio: Se esiste una integrità referenziale (Foreign key) tra
l’ordine ed il cliente: un ordine non può essere assegnato ad un
cliente che non esiste nella tabella dei clienti.
Non è possibile eliminare una riga dalla tabella primaria,
se esistono righe legate ad essa attraverso la chiave
esterna nella tabella correlata
Esempio: Non è possibile eliminare un cliente dalla tabella dei
clienti se ci sono ordini assegnati a quel cliente nella tabella degli
ordini.
89
Effetti integrità referenziale
Non si può modificare il valore assegnato ad una chiave
nella tabella primaria, se essa compare in qualche riga
della tabella correlata
Esempio: Non è possibile modificare il valore alla chiave di un
cliente se si sono ordini per quel cliente già registrati nella
tabella degli ordini.
90
Scarica

DB_ANALISI_LOGICA_RELAZIONI