COS’E’ UN
SISTEMA INFORMATIVO?
Un sistema informativo organizza e
gestisce tutte le informazioni
necessarie per eseguire gli scopi di una
organizzazione
Introduzione ai database relazionali
1
SISTEMA INFORMATICO
2
Dati e informazioni
Un sistema
informativo/informatico presenta
2 nozioni fondamentali che è
bene distinguere: il concetto di
dato e di informazione
SISTEMA INFORMATIVO
Quando viene
automatizzato
tramite strumenti
elettronici diventa un
SISTEMA INFORMATICO
3
4
1
Dato ed informazione
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.
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
5
6
ESEMPIO:
UNA INFORMAZIONE
ESEMPIO: UN DATO
02/03/2015
Che informazione ci da?
Data inizio lezioni studenti
02/03/2015
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
Il dato diventa una informazione
7
8
2
ESEMPIO: UN DATO
CONTESTO:
ASSOCIAZIONE DI 2 DATI
MANZONI ALESSANDRO
MANZONI ALESSANDRO
Che informazione ci da?
I PROMESSI SPOSI
Il dato messo in un certo contesto assume un certo
significato
9
CONTESTO:
10
FORMALMENTE
Manzoni Alessandro
Residente in Piazza Europa 26, 10110 Torino
Lo stesso dato in un contesto diverso assume un significato
diverso
11
Dato:
un valore
registrato
su un
supporto di
memoria
INFORMAZIONE
Associazione tra
dato e suo
significato
Significato
Cosa
rappresenta il
dato
memorizzato
12
3
Cos’è una BASE DI DATI
(DATABASE)?
I DATI E LE LORO CORRELAZIONI
FORNISCONO INFORMAZIONI
E’ una raccolta organizzata di informazioni.
Una collezione di dati opportunamente
raggruppati ed organizzati in modo da poter
rappresentare le informazioni di interesse
Informazione 2
Dato7
Dato8
Informazione 1
Dato1
Dato2
Dato3
13
Cos’è una BASE DI DATI
(DATABASE)?
14
DATABASE - DBMS
E’ un modello del mondo reale (una
rappresentazione informatica della realtà di
interesse) che permette l’utilizzo dei dati a
utenti diversi con applicazioni diverse e di
convertirli in informazioni utilizzabili
15
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
4
OBIETTIVI DI UN DATABASE
DATABASE DISTRIBUITI
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
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
17
18
ESEMPIO DI APPROCCIO
TRADIZIONALE NON INTEGRATO
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.
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 ?
19
20
5
DIFETTI NELLA ORGANIZZAZIONE
NON INTEGRATA DEI DATI
ESEMPIO DI APPROCCIO
TRADIZIONALE NON INTEGRATO
A
Matricola#
Nome
B
Dipendente# Nome
Età
Progetto#
Reparto
Badget
Ridondanza dei dati, cioè gli stessi dati compaiono in maniera duplicata
(inefficienza)
….
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
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
21
22
CORRETTA LOGICA DI UN DATABASE
Indipendenza dalla struttura fisica dei dati. I programmi applicativi sono
indipendenti dai dati fisici
Indipendenza dalla struttura logica dei dati. E’ possibile apportare modifiche alla
definizione delle strutture della base di dati senza modificare il software
applicativo.
Utilizzo da parte di più utenti. Garantisce che le operazioni svolte da utenti diversi
in modo concorrente non interferiscano una con l’altra e garantisce l’accesso
specifico ad alcune tabelle a seconda dell’utenza.
Eliminazione della ridondanza. Gli stessi dati non compaiono più volte in archivi
diversi.
Eliminazione della inconsistenza. Il database non può presentare campi uguali con
valori diversi in archivi diversi
Facilità di accesso. Il ritrovamento dei dati è facilitato e svolto con grandi velocità
Integrità dei dati. Vengono previsti controlli per evitare anomalie ai dati causate dai
programmi e dalle applicazioni degli utenti.
Sicurezza dei dati. Sono previste procedure di controllo per impedire accessi non
autorizzati ad dati contenuti nel database e i protezione da guasti accidentali.
23
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
24
6
Passi da seguire per la costruzione
di DBMS
Come costruire un database
REALTA’
(Problema
reale)
DATABASE LOGICO
REALTA’
Progettazione
DATABASE LOGICO
ANALISI
REALIZZAZIONE FISICA DEL
DATABASE
Entità (tabelle)
Associazioni (interconnessioni tra le
tabelle)
MODELLO LOGICO
CONCETTUALE
MODELLO
FISICO
Realizzazione
fisica del DBMS
(ad es. in
Access)
IMPLEMENTAZIONE
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
(Access: tabelle, relazioni, query,
maschere, report, ecc.)
25
IL LIVELLO CONCETTUALE:
IL METODO RELAZIONALE MODELLO E/R
26
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
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 (relazioni)
27
28
7
REQUISITI MODELLO RELAZIONALE
tutte le righe di una tabella contengono lo stesso numero di colonne,
corrispondente agli attributi;
gli attributi rappresentano informazioni elementari, non scomponibili
ulteriormente, cioè non ci sono campi che contengono per ogni riga un
insieme di valori anziché un solo valore;
i valori assunti da un campo appartengono al dominio dei valori possibili
per quel campo, e quindi sono valori omogenei tra loro, cioè sono dello
stesso tipo;
in una relazione, ogni riga è diversa da tutte le altre, cioè non ci possono
essere due righe con gli stessi valori dei campi: questo significa che esiste
un attributo o una combinazione di più attributi che identificano
univocamente la riga (n-upla), e che assumono perciò la funzione di chiave
primaria della relazione;
le n-uple compaiono nella tabella secondo un ordine non prefissato, cioè
non è rilevante il criterio con il quale le righe sono sistemate nella tabella.
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
29
ENTITA’ – istanze (individui)
30
ASSOCIAZIONE (Relazione)
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
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
8
ATTRIBUTI
ATTRIBUTI
Le caratteristiche di ogni attributo sono:
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à.
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
33
34
ATTRIBUTI
MODELLO LOGICO
Entità
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
Attributi (campi)
Tipi di dato
Chiave primaria
Associazione / Relazione
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
1a1
1aM
MaM
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
36
9
Rappresentazione grafica.
Schema E/R
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
La rappresentazione classica ERD = Entity-Relationship
Diagram
Attributi
Individuazione della chiave
Codice studente
STUDENTE
si compone degli
Fa parte della
Cognome
STUDENTE
CLASSE
Nome
....
37
38
ESEMPIO: REALTA’:
SCUOLA Istruzione superiore
ENTITA’
Vogliamo catalogare le
anagrafiche di una scuola
STUDENTI
INSEGNANTI
QUALI POTREBBERO ESSERE LE
NOSTRE ENTITA’?
CLASSI
39
40
10
ATTRIBUTI
ESEMPIO SCUOLA
Sono le caratteristiche di una entità che
desideriamo conservare, catalogare.
Sono le proprietà che caratterizzano una
entità o anche una associazione
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
41
42
TABELLE ↔ ENTITA’
TIPO DI DATO
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
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
Numerico
Intero lungo
Contatore
Float
Numero reale
Numerico
Numerico
Numerico
Precisione singola
Precisione doppia
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
11
CHIAVE PRIMARIA
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.
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
45
PROCEDENDO CON L’ANALISI
46
ASSOCIAZIONI
Una volta individuate entità, attributi, chiavi primarie si
deve procedere con l’individuare le ASSOCIAZIONI
(RELAZIONI) che intercorrono tra le varie entità.
Un’associazione tra le entità può essere:
obbligatoria quando il legame tra le entità deve
essere sempre presente
opzionale quando può essere presente
47
48
12
ASSOCIAZIONI
ASSOCIAZIONE 1 a 1
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:
1a1
1aM
MaM
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.
Biunivoca
Uno a molti
Molti a molti
49
ASSOCIAZIONE 1 a 1
ASSOCIAZIONE 1 a M
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
50
Associazione 1:M (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.
Nascita
Codice persona
Data nascita
Luogo nascita
Provincia
Nome padre
Cognome padre
Nome madre
Cognome madre
51
52
13
IMPIEGATI + FIGLI A CARICO
ASSOCIAZIONE 1 a M
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”.
L’entità impiegato in formato tabellare
Codice impiegato
Nome
Cognome
Impiegati
Codice impiegato
Nome
Cognome
…….
Come fare a catalogare i figli a carico?
53
54
SOLUZIONE ERRATA
Codice impiegato
Nome
Cognome …
Figlio 1
Figlio 2
Figlio 3
SOLUZIONE
C’è un errore di analisi: i figli a carico vanno visti come Entità
separata e non come attributi dell’entità impiegati.
…
IMPIEGATI
• Cosa succede se un impiegato ha più figli di quanto previsto? Quanto è
abbastanza? 3? 5? 20?
• Anche se prevediamo 20 figli, nel caso di 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
1
M
FIGLI A CARICO
La relazione che esiste tra gli impiegati ed i figli a carico è di tipo 1 a M
1 impiegato può avere M Figli a carico
1 IMPIEGATO
M FIGLI
1 figlio a carico può avere un solo padre che è impiegato e che lo tiene a
carico
1 IMPIEGATO
1 FIGLIO A CARICO
56
14
ASSOCIAZIONE M a M
ASSOCIAZIONE M a M
Entità: Libri e Autori
Associazione M:M (molti a molti) o
complessa
AUTORI
Codice autore
Nome
Cognome
Email
Ogni istanza (individuo) della prima entità si può
associare a una o più istanze (individui) della
seconda entità e viceversa
M
M
LIBRI
Codice libro
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Codice casa editrice
1 Autore
M Libri (Un Autore può scrivere più libri)
1 Libro
M Autori (Un libro può anche essere scritto da più autori)
57
ASSOCIAZIONE M a M
CHIAVI, ATTRIBUTI E RELAZIONI
Come si realizza una associazione 1 a 1 ?
Entità: Studenti universitari ed esami sostenuti
STUDENTI
Matricola
Nome
Cognome
……
M
M
58
ESAMI
Codice esame
Nome
…..
Tabella 1
1 Studente
M Esami (Uno Studente può avere sostenuto
più esami)
1 Esame
M Studenti (Un esame può essere stato effettuato
da più studenti)
59
1
1 Tabella 2
La chiave primaria della Tabella 1 è uguale
alla chiave primaria della tabella 2
60
15
ESEMPIO RELAZIONE 1 A 1
ESEMPIO RELAZIONE 1 A 1
(con l’asterisco sono indicati i campi che sono in chiave primaria)
Le chiavi primarie delle due tabelle sono uguali
Anagrafica
Codice persona *
Cognome
Nome
Indirizzo
Cap
Città
Provincia
Telefono
Cellulare
Email
1
Nascita
1
Codice persona *
Data nascita
Luogo nascita
Provincia
Nome padre
Cognome padre
Nome madre
Cognome madre
Cod. persona
Cognome
Nome
Indirizzo
1242
Rossi
Franco
Via Leopardi …
1318
Verdi
Alberto
Largo Umberto …
1
Data Nascita
Luogo Nascita
1 1242
Cod. persona
23/07/1961
Milano
1318
12/10/1980
Roma
61
RELAZIONE 1 A M
1 A M (PADRE – FIGLIO)
La chiave primaria della tabella 2 (figlia) contiene la chiave
primaria della tabella 1 (padre)
Come si realizza una associazione 1 a M?
Tabella 1
1
62
M Tabella 2
IMPIEGATI
Codice impiegato *
Cognome
Nome
…..
ESISTONO 2 MODI
• Padre-Figlio - La chiave primaria della tabella 1 (padre)
è contenuta nella chiave primaria della tabella 2 (figlia)
• Lookup - La chiave primaria della tabella 1 (padre) è un
attributo della tabella 2 (figlia)
63
1
M
FIGLI A CARICO
Codice impiegato *
Codice figlio *
Nome
Cognome
….
64
16
1 A M (LOOKUP)
RELAZIONE M A M (1)
La chiave primaria della tabella 1 (padre) è un attributo della
tabella 2 (figlia)
CASE EDITRICI
Come si realizza una associazione M a M?
1
Codice casa editrice *
M
M
Tabella 1
LIBRI
Codice libro *
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
Ragione sociale
Indirizzo
Cap
Città
Telefono
Fax
Provincia
URL
Email
M Tabella 2
Tramite una tabella aggiuntiva e 2 relazioni 1 a M
Codice casa editrice
65
66
RELAZIONE M A M (2)
RELAZIONE M A M (3)
La relazione N ad M viene spezzata tramite 2 relazioni 1 a M
AUTORI
Codice autore *
Nome
Cognome
Email
…..
M
M
LIBRI
Codice libro *
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
AUTORI
Codice autore *
1
1
Nome
Cognome
Email
…..
Codice casa editrice
Titolo
Sottotitolo
Descrizione
Anno pubblicazione
LIBRI AUTORI
Codice libro *
M Codice autore *
67
LIBRI
Codice libro *
Codice casa editrice
M
68
17
NORMALIZZAZIONE
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.
È 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
69
70
NORMALIZZAZIONE
DEFINIZIONI
Chiave (chiave primaria): l'insieme di uno o più attributi che
identificano in modo univoco una n-upla (riga della tabella)
Uno schema logico concettuale può
definirsi “corretto” se rispetta:
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)
• Prima forma normale
• Seconda forma normale
• Terza forma normale
Dipendenza transitiva: un attributo A2 dipende da A1 e l'attributo
A3 dipende da A2; allora A3 dipende transitivamente da A1
se A1
71
A2 e A2
A3 allora A1
A3 in modo transitivo
72
18
Prima forma normale 1FN
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
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).
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
In particolare gli attributi devono essere informazioni non
ulteriormente scomponibili, cioè non devono avere
sottoattributi, né essere gruppi di attributi ripetuti.
73
Esempio 1FN
Esempio 1FN
Con un processo di normalizzazione la tabella deve essere trasformata
in 2 tabelle
IMPIEGATI
Cod. impiegato Cognome
Nome
Data nascita Figli a carico
001242
Franco
09/11/1961
001318
74
Rossi
Verdi
Alberto
24/04/1963
Marco
Giuseppe
Sandra
Cod. impiegato
Cognome
Nome
001242
Rossi
Franco
09/11/1961
001318
Verdi
Alberto
24/04/1963
1
Sonia
Claudio
Una tabella di questo genere NON è in Prima forma
normale in quanto l’attributo figli a carico contiene più
valori.
M
75
Data nascita
Cod. impiegato Cod. Figlio
Nome
001242
01
Marco
001242
02
Giuseppe
001242
03
Sandra
001318
01
Sonia
001318
02
Claudio
76
19
Seconda forma normale 2FN
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 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.
La seconda forma normale elimina la dipendenza parziale degli
attributi dalla chiave. Esempio:
ESEMPIO: Inventario
La Tabella T1(A1,A2,A3,A4,A5) con
(A1, A2)
A3
A1
A4
A2
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
T2(A1,A2,A3)
T3(A1,A4)
T4(A2,A5)
A5
non è in 2FN, e può essere normalizzata in
2FN con le tabelle:
Chiave primaria: Codarticolo + CodMagazzino
77
Esempio 2FN
78
Esempio 2FN
Inventario
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
Chiave primaria CodArticolo + CodMagazzino
Dipendenze funzionali (CodArticolo, CodMagazzino)
CodMagazzino
CodArticolo
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Quantità
IndirizzoMagazzino
DescArticolo
Si ha dipendenza parziale dalla chiave: NON E’ in 2FN
79
80
20
Esempio 2FN
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
Inventario
CodArticolo CodMagazzino DescArticolo Quantità IndirizzoMagazzino
Soluzione: mettere in 2FN
Articolo
Magazzino
CodArticolo DescArticolo
CodMagazzino IndirizzoMagazzino
La terza forma normale elimina la dipendenza transitiva degli attributi
dalla chiave. Esempio:
1
1
M
Inventario
La Tabella T1(A1,A2,A3,A4) con A2
A4
non è in 3FN, e può essere normalizzata in
3FN con le tabelle:
M
T2(A1,A2,A3)
T3(A2,A4)
CodArticolo CodMagazzino Quantità
81
Terza forma normale 3FN
Esempio 3FN
Impiegato
La terza forma normale stabilisce che non esistano
dipendenze tra le colonne di una tabella se non basate
sulla chiave primaria.
CodImpiegato
Nome
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
ESEMPIO: Impiegati
CodImpiegato
82
Reparto TelefonoReparto
Chiave primaria CodImpiagato
Dipendenze funzionali CodImpiegato
Reparto
Soluzione: mettere in 3FN
Reparto
Impiegato
TelefonoReparto
CodImpiegato
83
Reparto
Nome
Reparto
Reparto TelefonoReparto
84
21
RIASSUMENDO
RIASSUMENDO
Prima forma normale
Con la normalizzazione:
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
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
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
85
Integrità referenziale
86
Integrità referenziale
Per ogni valore non nullo della chiave esterna, deve
esistere un valore corrispondente della chiave primaria
nella tabella associata
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.
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
87
88
22
Effetti integrità referenziale
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
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.
Esempio: Non è possibile eliminare un cliente dalla tabella dei
clienti se ci sono ordini assegnati a quel cliente nella tabella degli
ordini.
89
90
23