Introduzione ai database
Parleremo di …..

La storia

Cos’è una base di dati?

In altre parole …

A cosa serve una base di dati ?

Quali problemi provocano gli archivi
tradizionali?

Cosa deve garantire un database?

Il DBMS

Database o DBMS?


Come può il DBMS superare i limiti
della gestione tradizionale?
Come si realizza l’integrazione
degli archivi?
• Dov’è collocato un
•
•
•
•
•
•
database?
I modelli per il database
Il modello gerarchico
Il modello reticolare
Il modello relazionale
I database orientati agli
oggetti
Il modello relazionale:
•
•
•
•
•
concetti fondamentali
requisiti fondamentali
la chiave primaria
le regole di derivazione
gli operatori relazionali
Parleremo di …..
 Il modello relazionale:








la selezione
la proiezione
congiunzione
operazioni sugli insiemi
Normalizzazione
1FN
2FN
3FN
 L’integrità referenziale
 Osservazioni sul modello
relazionale
 La gestione del database
 La gestione del database:
funzioni del DBMS
• La gestione del database: il
dizionario
• I linguaggi per le basi di
dati:
•
•
•
•
•
•
DDL (Data Definition
Language)
DMCL (Device Media
Control Language)
DML (Data Manipulation
Language)
DCL (Data Control
Language)
Query Languages
Relational DBMS (RDBMS)
• Gli utenti
La storia
La storia dei database inizia, parallelamente a
quella dell'elaborazione elettronica, negli anni
'50.
A
partire
dagli
anni
'60,
grazie
all'introduzione della distinzione tra il valore
fisico dei dati ed il loro significato logico, si
è lentamente passati da una modellizzazione
focalizzata sui processi aziendali ad una
modellizzazione basata sui dati aziendali, che
sono entità meno soggette a variazioni
rispetto ai processi.
La storia
Negli anni ’70:
il modello reticolare ha una discreta
diffusione
soprattutto
nei
sistemi
di
elaborazione di grandi dimensioni;
nel 1970 nasce il modello relazionale,
proposto da Edward E.Codd, ricercatore IBM,
come idea di un modello logico molto semplice
e nello stesso tempo in grado di superare i
limiti degli altri modelli utilizzati.
La storia
Negli anni '80:
viene introdotto nell’uso corrente il modello
relazionale.
Si inizia a parlare di un nuovo software il
database management systems (DBMS). Un
DBMS controlla tutte le funzioni di input,
immagazzinamento, elaborazione e recupero
dei dati da un database e genera, basandosi
sulle relazioni, vari tipi di informazione.
La storia
Lo sviluppo dei prodotti DBMS è stato
possibile grazie all'introduzione di supporti di
memorie di massa, magnetici e soprattutto
ma
recentemente
anche
ottici,
che
consentono grandi capacità oltre che tempi di
accesso e di trasferimento in memoria
centrale molto bassi.
Cos’è una base di dati (database)?
E’ un insieme di archivi di dati:
 organizzati in modo integrato
attraverso tecniche di modellazione
dei dati
 gestiti sulle memorie di massa dei
computer
attraverso
appositi
software
In altre parole …
Un database è una collezione di archivi di
dati ben organizzati e ben strutturati, in
modo che possano costituire una base di
lavoro per utenti diversi con programmi
diversi.
A cosa serve una base di dati ?
O
b
i
e
t
t
i
v
o
?
 Raggiungere una grande efficienza
trattamento e nel ritrovamento dei dati,
nel
 Superare i limiti presenti nelle organizzazioni
tradizionali degli archivi quali:



mancanza di integrazione fra gli archivi;
legame fra l'accesso ai dati ed il tipo di
organizzazione assegnata agli archivi.
legame fra gli archivi ed i programmi,
Quali problemi provocano gli archivi
tradizionali?
Ridondanza
Produce
Incongruenza
Produce
Inconsistenza
I dati sono ridondanti se
compaiono in maniera duplicata
(questo è un aspetto di
inefficienza nella gestione).
Un dato è incongruente se può
essere aggiornato in un archivio
e non in un altro, oppure possono
essere presenti valori diversi
per lo stesso dato.
I dati sono inconsistenti se non
sono più affidabili, perché non si
sa in modo certo quale dei
diversi valori sia quello corretto.
Quali problemi provocano gli archivi
tradizionali?
L'accesso ai dati è determinato dall’organizzazione
assegnata agli archivi
L ’ organizzazione assegnata agli archivi, le chiavi
stabilite per i record e l'ordine con cui i campi
compaiono nella struttura del record.
Influisce su
 Accesso ai dati
 Operazioni che si possono
effettuare sugli archivi
I dati contenuti negli archivi possono inoltre essere
trattati solo elaborando i file record per record.
Quali problemi provocano gli archivi
tradizionali?
I programmi sono legati agli archivi che gestiscono
Tutti i linguaggi di programmazione tradizionali (per
esempio il Pascal o il Cobol) richiedono la
specificazione, all'interno del programma, degli archivi
utilizzati e della struttura dei loro record.
Implica che
Qualsiasi modifica alla struttura del record,
richiede la modifica di tutti i programmi che
utilizzano quel tipo di record.
Cosa deve garantire un database?
Efficienza
Produttività
Un database deve
consentire di
ritrovare
facilmente le
informazioni
desiderate anche
a fronte di una
velocità nell'elaborazione,
mole di dati
sicurezza dei dati,
rilevante.
integrità delle
registrazioni.
Cosa deve garantire un database?
Deve essere garantita la consistenza
degli archivi.
I dati in essi contenuti devono essere:
 significativi,
 effettivamente utilizzabili nelle
applicazioni dell'azienda.
Cosa deve garantire un database?
I dati devono quindi essere protetti
per impedire perdite accidentali
dovute a:
 cadute del sistema,
 guasti hardware,
 interventi dannosi da parte di:


utenti,
ad
esempio
interventi dolosi sui dati
dovuti ad accessi non
autorizzati,
programmi.
Impedire
la
perdita
di
integrità
Il DBMS (Data Base Management
System)
Il superamento dell ’ uso tradizionale degli archivi
basato su accessi esplicitati nel percorso da parte del
programmatore con comandi di apertura, chiusura,
lettura, scrittura e posizionamento.
È garantito
dal
Software per la gestione di database
denominato
DBMS (Database Management System).
Il DBMS (Data Base Management
System)
Il DBMS consente all'utente
collocarsi in una posizione:
di
 più lontana dall'hardware, dalle memorie di
massa e dal Sistema Operativo
 più vicina all'applicazione che utilizza i dati
contenuti negli archivi.
Il DBMS (Data Base Management
System)
Accresce la differenza tra:
 struttura concettuale: modo attraverso
il quale l'utente pensa all'organizzazione
e al ritrovamento dei dati,
 struttura fisica dei dati: tecniche
utilizzate dal Sistema Operativo per
registrare e leggere negli archivi.
Database o DBMS ?
Nell’uso dei database
…
Database
… come nell'uso degli
archivi tradizionali
Archivi di dati
Insieme di dati
DBMS
Sistema per la gestione
del database
File System
Come può il DBMS superare i limiti
della gestione tradizionale?
Indipendenza dalla struttura fisica dei
dati
I programmi applicativi sono indipendenti
dai dati fisici.
Possibile modificare i supporti con cui i
dati sono registrati e le modalità di
accesso alle memoria di massa senza
modifiche alle applicazioni.
Come può il DBMS superare i limiti
della gestione tradizionale?
Indipendenza dalla struttura logica dei
dati
I programmi applicativi sono indipendenti
dalla struttura logica con cui i dati sono
organizzati negli archivi
Possibile modificare la definizione delle
strutture della base di dati senza
modificare il software applicativo.
Come può il DBMS superare i limiti
della gestione tradizionale?
Utilizzo da parte di più utenti
 I diversi utenti del database possono avere
anche una visione parziale del database.
 Le operazioni svolte da utenti diversi in
modo concorrente non interferiscano una
con l'altra.
Come può il DBMS superare i limiti
della gestione tradizionale?
Eliminazione di:
Ridondanza
Inconsistenza
Gli stessi dati non
compaiono più volte in
archivi diversi, cioè il
database è costituito da
archivi integrati di dati.
Il database non può
presentare
campi
uguali
con
valori
diversi
in
archivi
diversi.
Come può il DBMS superare i limiti
della gestione tradizionale?
Facilità d’uso
Il ritrovamento dei dati è facilitato e svolto
con grandi velocità, anche nel caso di
richieste provenienti contemporaneamente
da più utenti.
Come può il DBMS superare i limiti
della gestione tradizionale?
Sono previste procedure di controllo per:
Integrità
dei dati
Sicurezza
dei dati
Consentire che le operazioni
sui dati richieste dagli utenti
vengono eseguite fino al loro
completamento in modo da
assicurare la consistenza dei
dati.
Impedire
accessi
non
autorizzati ai dati contenuti nel
database e di protezione da
guasti accidentali.
Come può il DBMS superare i limiti
della gestione tradizionale?
Uso di linguaggi per la gestione del
database
Il database viene gestito attraverso
 comandi per la manipolazione
comandi per l’interrogazioni
I comandi non agiscono su un singolo record per
volta, ma su gruppi di record per volta.
Come operano gli utenti del
database ?
Gli utenti della base di dati:
 elaborano in modo locale gli
archivi
che
hanno
a
disposizione nel proprio
sistema
 accedono in modo remoto a
sistemi centrali attraverso
le linee di comunicazione
database
locali
database
remoti
Come si realizza l’integrazione degli
archivi ?
L'integrazione degli archivi è realizzata
quindi a livello logico, nella visione che di
essi hanno gli utenti finali, anche se i dati
fisicamente possono risiedere su sistemi
distanti.
Dov’è collocato un database ?
Gli archivi integrati che costituiscono la base
di dati aziendale possono:
dati
 risiedere su un unico
accentrati
computer;
 essere distribuiti sulle
memorie di massa di
database
computer diversi facenti
distribuiti
parte
di
una
rete
aziendale.
I modelli per il database
Il database è un modello della realtà
considerata:
i
contenuti
della
base
di
dati
rappresentano gli stati in cui si trova la
realtà da modellare.
gli eventi che avvengono nell'ambiente in
cui opera l'azienda rappresentano i
cambiamenti che vengono apportati alla
base di dati
I modelli per il database
Il progetto è indipendente:
dal computer,
dai supporti fisici destinati a contenere le
informazioni,
dalle caratteristiche del DBMS.
Contrariamente quanto accadeva
nell’organizzazione convenzionale degli
archivi.
I modelli per il database
Dallo schema concettuale entità/associazioni
Progetto e realizzazione
del database
passando al modello logico
cioè alle strutture di dati che consentono di
organizzare i dati per consentire le
operazioni di manipolazione e di
interrogazione.
I modelli per il database
Clienti
N
possiede
1
Conto
1
 ogni conto deve essere posseduto da uno o più
clienti
ogni cliente deve possedere uno ed un solo conto
ogni conto può essere variato da uno o più
movimenti e ci possono essere conti non
movimentati
ogni movimento deve variare uno ed un solo conto
variare
N
Movimento
I modelli per il database
Nello sviluppo della teoria dei database, dal 1960 in
poi, sono emersi tipi diversi di modelli per le basi di
dati:
 gerarchico,
 reticolare,
 relazionale,
 database orientati agli oggetti.
Il modello gerarchico
Il modello gerarchico è particolarmente
adatto per rappresentare situazioni nelle
quali è possibile fornire all'insieme dei dati
una struttura nella quale ci sono entità che
stanno in alto ed entità che stanno in basso.
Il modello gerarchico
Il modello gerarchico rappresenta le entità
secondo uno schema ad albero, nel quale:
 i nodi rappresentano le entità
 gli archi rappresentano le associazioni.
Il modello gerarchico è particolarmente
adatto a rappresentare le associazioni 1:N
(uno a molti) ed ha avuto in passato una
larga diffusione.
Il modello gerarchico
Nella pratica:
 l'entità è un file,
 l'istanza è un record,
 gli attributi sono i campi del record.
Il modello gerarchico: esempio
La caratteristica del modello gerarchico di ammettere un solo genitore
per ogni nodo, crea un problema nel descrivere l'associazione tra i record
di Clienti e i record di Conti a causa del record relativo al numero di conto
5100.
Questo record ha due genitori: il record dei clienti di nome Gialli e quello
di nome Verdi.
Il modello gerarchico: esempio
Per rispettare l'unicità del genitore del record di
Conti si deve costruire l' albero:
Il modello gerarchico: esempio
La rigidità del modello
gerarchico della
struttura di dati
creata non riesce ad
evitare la ridondanza
dei dati.
Ridondanza provoca solo
l'aumento dello spazio
occupato dal database ed
è una possibile causa di
incongruenza dei dati
Nonostante questi limiti, il modello gerarchico ha avuto in
passato una larga diffusione, per il grande numero di
implementazioni su modelli diversi di computer, e anche perché
molte situazioni presentano in modo naturale una struttura di
dati di tipo gerarchico.
Il modello reticolare
Questo modello è un ’ estensione del
modello di albero gerarchico, essendo
consentite anche associazioni tra entità
che stanno in basso, e non solo
dall'alto verso il basso come avviene nel
modello gerarchico.
Il modello reticolare
Nel modello reticolare:
 Le entità rappresentano i nodi,
 Le associazioni rappresentano gli archi
di uno schema a grafo orientato.
Esempio di grafo orientato
Avere simpatia per…
Il modello reticolare
Un database reticolare
consiste di due insiemi di
dati:
 un insieme di record,
 un insieme di legami.
I
legami
sono
realizzati
memorizzando le coppie di
chiavi delle entità associate.
I tipi record
sono fatti di
campi tra i
quali ci deve
essere anche
un
campo
chiave.
Il modello reticolare: esempio
Non esiste una gerarchia predefinita tra le entità quindi si
evita la ridondanza dei dati perché un record figlio può
avere un numero qualsiasi di padri.
Il modello reticolare
Nel database costruiti secondo il modello reticolare:
 risulta più complessa:
 la gestione delle informazioni in quanto deve
essere utilizzata una struttura a grafo;
 l'implementazione;
 la costruzione del software applicativo.
 risultano più elevate:
 prestazioni perché è più vicino alla struttura
fisica delle memorie di massa.
Il modello relazionale
 Rappresenta il database
insieme di tabelle.
come
un
 Viene considerato attualmente il
modello più semplice ed efficace,
perché è più vicino al modo consueto di
pensare i dati, e si adatta in modo
naturale alla classificazione e alla
strutturazione dei dati.
Il modello relazionale: esempio
Clienti
N
possiede
1
Conto
1
variare
N
Movimento
Confronto…..
Le operazioni sui database gerarchici e reticolari
sono complesse, agiscono su singoli record e non
su gruppi di record.
 I modelli non relazionali sono fondamentalmente
basati sulla programmazione di applicazioni, l'utente
deve specificare i percorsi per ritrovare i dati e la
velocità nel ritrovare le informazioni dipende dal
software di gestione;
 nel modello relazionale invece i percorsi per le
interrogazioni sono a carico del sistema.
Il modello OODB (Object Oriented
DataBase)
I database orientati agli
oggetti sono stati introdotti
nel tentativo di superare
alcune caratteristiche dei
database
relazionali
che
apparivano inadeguate per la
gestione di dati complessi in
modo
vicino
alla realtà
(testi, grafici, audio, video,
documenti
e
risorse
Internet).
Il modello OODB (Object Oriented
DataBase)
Il modello è basato sulla programmazione ad
oggetti e consente di utilizzare:
 tecnologie più avanzate;
 prestazioni tipiche della programmazione
ad oggetti (C++ etc.).
E’ in grado di gestire:
concetti quali il metodo e l'ereditarietà;
oggetti e classi.
Il modello OODB (Object Oriented
DataBase)
Il modello object-oriented offre la
possibilità di:
 usare tipi di dati definiti
Viene
applicato
dall'utente (cosa che non è
al
possibile
nel
database
database
il concetto
relazionale),
 poter
associare
ai
dati
routine
di
codice
che
rappresentano le modalità di
accesso ai dati.
di oggetto,
con i dati
e i metodi.
Il modello relazionale: concetti
fondamentali
Il modello relazionale si basa su alcuni
concetti
fondamentali
tipicamente
matematici e assegna grande importanza
all'uso rigoroso del linguaggio matematico,
con due obiettivi importanti:
 utilizzare un linguaggio conosciuto a livello
universale,
quale
è
il
linguaggio
matematico,
 eliminare i problemi di ambiguità nella
terminologia e nella simbologia.
Il modello relazionale: concetti
fondamentali
Il modello relazionale si chiama così perché
è basato sul concetto matematico di
relazione tra insiemi di oggetti:
dati n insiemi A1, A2, A3, ..., An, si dice
relazione un sottoinsieme dell'insieme di
tutte le n-uple a1, a2, a3, ..., an che si possono
costruire prendendo nell'ordine un elemento
a1 dal primo insieme A1, a2 dal secondo
insieme A2, e così via
Il modello relazionale: concetti
fondamentali
Rn
Relazione
Tabella
Entità
Numero n
Grado
Numero
colonne
Numero degli
attributi
Insieme Ai
Dominio
Una
colonna
Insieme dei
valori di un
attributo
Insieme
n-upla
o tupla
Riga
Istanza
dell’entità
Cardinalità
Numero
righe
Istanze
dell’entità
{a1, a2, a3, ..., an}
Numero
n-uple
Il modello relazionale: concetti
fondamentali
a1
tupla
Relazione
Rn
A1
Domini
a2
rosso
verde
Tipo
Colore
Mela
Rosso
Kiwi
Verde
Cocomero
Rosso
Banana
Giallo
Limone
Giallo
Grado
giallo
A2
bianco
….
C
a
r
d
i
n
a
l
i
t
à
Il modello relazionale: concetti
fondamentali
 La chiave o chiave primaria è l'insieme di uno o
più attributi che identificano in modo univoco una
riga della tabella;
 La chiave candidata è l'insieme di uno o più
attributi che possono svolgere la funzione di
chiave;
 L’attributo non-chiave è un campo che non fa
parte della chiave primaria;
Il modello relazionale: concetti
fondamentali
 La dipendenza funzionale tra attributi si ha
quando il valore di un attributo A1 determina un
singolo valore dell'attributo A2 si indica con
A1 -> A2
 la dipendenza transitiva si ha quando un
attributo A2 dipende da A1 e l'attributo A3
dipende da A2; allora A3 dipende transitivamente
da A1 si indica con
A1 ->A2
A2 -> A3
allora A1 -> A3 in modo transitivo
Il modello relazionale: concetti
fondamentali
1. Tutte le righe della tabella contengono lo stesso
numero di colonne, corrispondenti agli attributi,
2. Gli attributi rappresentano informazioni
elementari (o atomiche), non scomponibili
ulteriormente,
3. I valori assunti da un campo appartengono al
dominio dei valori possibili per quel campo, e
quindi sono dello stesso tipo;
Il modello relazionale: concetti
fondamentali
4. Non ci possono essere due righe con gli
stessi valori dei campi,
5. Le n-uple presenti nella tabella non seguono
un ordine prefissato.
Il modello relazionale: la chiave
primaria
 Se non ci sono due righe con gli stessi valori dei
campi esiste un attributo (combinazione di più
attributi) che identifica univocamente ogni tupla e
che assume funzione di chiave primaria della
relazione.
 Per il modello relazionale sussiste la prima regola
d’integrità sull'entità (entity integrity), secondo
la
quale
nessuna
componente
primaria può avere valore nullo
della
chiave
Il modello relazionale: le regole di
derivazione
Le tabelle vengono ricavate dal modello concettuale
E/R applicando semplici regole di derivazione del
modello logico:
1.
ogni entità diventa una relazione;
2. ogni attributo di un'entità diventa un attributo della
relazione, cioè il nome di una colonna della tabella;
3. ogni attributo della relazione eredita le caratteristiche
dell'attributo dell'entità da cui deriva;
4. l ‘ identificatore univoco di un'entità diventa la chiave
primaria della relazione derivata;
Il modello relazionale: le regole di
derivazione
5. l'associazione uno a uno diventa un'unica relazione che
contiene gli attributi della prima e della seconda entità;
6. l ‘ identificatore
univoco
dell'entità
di
partenza
nell'associazione uno a molti diventa chiave esterna
(foreign key) dell'entità di arrivo associata, cioè i suoi
attributi identificatori univoci diventano attributi della
seconda relazione;
7. l'associazione con grado molti a molti diventa una nuova
relazione (in aggiunta alle relazioni derivate dalle entità)
composta dagli identificatori univoci delle due entità e
dagli eventuali attributi dell'associazione.
Il modello relazionale: le operazioni
relazionali
Gli operatori relazionali agiscono su una relazione
per ottenere una nuova relazione.
Le operazioni relazionali consentono di effettuare le
interrogazioni alla base di dati per:
 ottenere le informazioni desiderate estraendo da
una tabella una sottotabella,
 combinare tra loro due o più tabelle generando
nuove relazioni.
Il modello relazionale: la selezione
Genera una nuova relazione costituita solo dalle
n-uple della relazione di partenza che soddisfano a
una determinata condizione.
 Grado La relazione ha lo stesso grado di quella
originaria.
 Cardinalità. La cardinalità può essere minore o
uguale alla tabella di partenza, ma è ragionevole
pensare che sia solitamente minore.
Il modello relazionale: esempio
Selezione: Città = “Roma”
Cognome Nome
Indirizzo
Verdi
Andrea
Via Milano, 99 Roma
Rossi
Mario
Via Verdi, 10
Roma
Rossi
Mario
Via Verdi, 10
Firenze
Verdi
Andrea
Via Rossi, 25
Palermo
Bianchi
Maria
Via Rossi, 25
Cagliari
…….
………
…….
…..
R4: Grado = 4 - Cardinalità = 6
R’4: Grado = 4 - Cardinalità = 2
Città
Il modello relazionale: la proiezione
Genera una nuova relazione estraendo dalla tabella
iniziale due o più colonne corrispondenti agli
attributi prefissati.
 Grado. Il grado è minore o uguale al grado della
relazione di partenza.
 Cardinalità. La cardinalità di norma è uguale a
quella di partenza, è minore quando sono presenti
righe uguali che vengono ridotte a una.
Il modello relazionale: esempio
R4 :
Grado = 4
Proiezione: Cognome, Nome
Delle righe
uguali ne viene
conservata una
sola perché il
modello
relazionale non
consente righe
uguali tra loro.
Cardinalità = 6
Cognome Nome
Indirizzo
Verdi
Andrea
Via Milano, 99 Roma
Rossi
Mario
Via Verdi, 10
Roma
Rossi
Mario
Via Verdi, 10
Firenze
Verdi
Andrea
Via Rossi, 25
Palermo
Bianchi
Maria
Via Rossi, 25
Cagliari
…….
………
…….
…..
R’4: Grado = 2 Cardinalità = 3
Città
Il modello relazionale: natural join e
equijoin
Serve a combinare due relazioni aventi uno o più
attributi in comune, generando una nuova
relazione che contiene le righe della prima e della
seconda tabella, che possono essere combinate
secondo i valori uguali (equijoin) dell'attributo
comune.
 Grado. Se i gradi sono rispettivamente N1 e N2, il
grado della relazione generata è uguale a
N1+N2-1, perché l'attributo comune compare una
sola volta (natural join).
 Cardinalità. Non è prevedibile a priori.
Il modello relazionale: outer join
L’outer join può avere varie forme:
 join esterno Congiunzione che restituisce le righe
dell'una e dell'altra tabella anche se non sono
presenti valori uguali per l'attributo comune.
Di tutte queste vengono combinate solo le righe
per le quali il valore dell'attributo comune nella
prima tabella trova un valore uguale nella
colonna
tabella.
dell'attributo
comune
nella
seconda
Il modello relazionale: esempio
 left join Elenca comunque tutte le righe della
prima tabella congiungendo tra le righe della
seconda solo quelle per le quali si trovano valori
corrispondenti per l'attributo comune.
 right join Elenca tutte le righe della seconda
tabella e di queste congiunge con le righe della
prima tabella solo quelle per le quali si possono
trovare
comune.
valori
corrispondenti
per
l'attributo
Il modello relazionale: self-join
Il self-join è una congiunzione con la quale
vengono combinate righe di una tabella con le
righe della stessa tabella quando sono presenti
valori corrispondenti per attributi, cioè due
attributi con lo stesso dominio.
Il modello relazionale: operazioni sugli
insiemi
Se le tabelle su cui si opera hanno una struttura
tabellare omogenea (colonne con lo stesso
numero di attributi, dello stesso tipo e nello
stesso ordine):
 l'unione consente di ottenere una nuova
tabella, che contiene le righe della prima e
della seconda tabella con riduzione a una di
quelle ripetute;
Il modello relazionale: operazioni sugli
insiemi
 l'intersezione genera, a partire da due tabelle
omogenee, una nuova tabella che contiene
soltanto le righe comuni;
 la differenza genera una nuova tabella che
contiene soltanto le righe della prima tabella
che non sono contenute nella seconda tabella.
Il modello relazionale:
normalizzazione
Nella definizione della struttura di una relazione
occorre evitare la ripetizione e la ridondanza dei
dati.
Per evitare queste anomalie, a partire da una data
relazione, vengono create altre relazioni, secondo un
processo detto normalizzazione.
La normalizzazione di una relazione avviene a livelli
crescenti
normali.
a
cui
corrispondono
diverse
forme
Il modello relazionale: 1FN
Una relazione è in prima forma normale (1FN)
quando rispetta i
requisiti fondamentali del modello relazionale ed in
particolare
gli
attributi
devono
informazioni:
 semplici ovvero non strutturati,
 non multivalore,
Attributo multivalore: un
valore può essere costituito
da un insieme di valori.
essere
Attributo
strutturato:
un possibile
valore è una
tupla di
valori.
Il modello relazionale: esempio 1FN
Dipendenti(Matricola, Nominativo, Indirizzo, FamiliariACarico)
E’ possibile ritrovare le
informazioni
originarie
attraverso un'operazione
di congiunzione tra la
relazioni
Attributi
strutturati
Attributo
multivalore
sull'attributo
comune.
Dipendenti(Matricola, Nome, Cognome, Via, Città)
FamiliariACarico(MatricolaDip, CodiceFam, NomeFam, Età)
Il modello relazionale: 2FN
Una relazione è in seconda forma normale (2FN)
quando è:
 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.
Per le relazioni con chiavi composte la 2FN elimina
la dipendenza parziale degli attributi dalla chiave.
Il modello relazionale: esempio 2FN
Merci (Codice, Magazzino, Quantità, LocalitàMagazzino)
La soluzione consiste nel costruire nuove relazioni, togliendo
dalla relazione di partenza gli attributi che dipendono solo
parzialmente dalla chiave primaria.
Merci (Codice, Magazzino, Quantità)
Depositi (Magazzino, LocalitàMagazzino)
Il modello relazionale: esempio 2FN
Se la relazione R1(A1,A2,A3,A4,A5) con:
 (A1,A2)  A3
 (A1,A2)  A4
 A2  A5
non è in 2FN.
Può essere trasformata nelle relazioni in 2NF:
 R21(A1,A2,A3, A4)
 R22(A2,A5)
Non ci deve essere perdita
complessiva delle informazioni. I dati
possono essere ritrovati attraverso
operazioni di congiunzione
Il modello relazionale: 3FN
Una relazione è in terza forma normale (3FN)
quando è:
 in seconda forma normale
 tutti
gli
attributi
non-chiave
dipendono
direttamente dalla chiave, cioè non possiede
attributi non-chiave
che
dipendono
da altri
attributi non-chiave.
La 3FN elimina la dipendenza transitiva degli
attributi dalla chiave.
Il modello relazionale: esempio 3FN
Studente (Nome,Scuola, TelefonoScuola)
La normalizzazione in 3FN si ottiene scomponendo la relazione
di partenza in due nuove relazioni, nelle quali tutti gli attributi
dipendono direttamente dalla chiave, togliendo gli attributi
non-chiave che dipendono da un altro attributo non-chiave.
Studente (Nome, Scuola)
Istituti (Scuola, TelefonoScuola)
Il modello relazionale: esempio 3FN
Se la relazione R2(A1,A2,A3,A4) con:
 A1  A2
 A1  A3
 A2  A4
non è in 3FN.
Può essere trasformata nelle relazioni in 3NF:
 R31(A1,A2,A3)
 R32(A2,A4)
Non ci deve essere perdita
complessiva delle informazioni. I dati
possono essere ritrovati attraverso
operazioni di congiunzione
Osservazioni sulla normalizzazione
Nella progettazione del modello relazionale
non sempre è conveniente arrivare a gradi
elevati di normalizzazione, anche perché
nella realtà è raro trovare situazioni che
vengono tradotte con tabelle normalizzate
con
ordine
normale.
superiore
alla
terza
forma
L’integrità referenziale
Il modello relazionale possiede due regola di integrità:
 integrità sull’entità (entity integrity):
che non consente valori nulli per la chiave;
 integrità referenziale (referential integrity):
per ogni valore non nullo della chiave esterna,
esiste un valore corrispondente della chiave
primaria nella tabella associata.
Questa regola garantisce l'integrità dei dati
quando si hanno relazioni associate tra loro
attraverso la chiave esterna.
L’integrità referenziale: esempio
In un database relazionale che contiene la tabella:
Clienti (Codice, RagioneSociale, Indirizzo)
Ordini (NumOrdine, Data, CodiceCliente)
si applica l’integrità referenziale per garantire che
per ogni valore presente nella tabella Ordini per la
chiave
esterna
CodiceCliente
abbia
un
corrispondente valore di Codice in una delle righe
della tabella Clienti.
Osservazioni sul modello
relazionale
Il modello relazionale ha portato poi benefici
nel lavoro di progettazione del database.
Il progettista del database può costruire il
modello dei dati considerando con attenzione
le entità, le associazioni e le dipendenze tra
gli attributi nel modello della realtà.
La gestione del database
Il DBMS (Database Management System) è
il software che consente di costruire e
gestire una base di dati, realizzandola nella
pratica su memoria di massa, a partire da
un progetto e da uno schema dei dati
definiti a livello concettuale e tradotto poi
in un modello logico dei dati.
La gestione del database
La gestione del database: funzioni del
DBMS
Implementazione del modello logico sul sistema di
elaborazione
 Definizione dei dati e delle strutture dati
derivate dallo schema logico (le tabelle del
modello
relazionale),
con
documentazione sul modello.
produzione
della
La gestione del database: funzioni del
DBMS
Implementazione del modello logico
sul sistema di elaborazione
 Definizione dei sottoschemi (viste), cioè visioni
del database legate alle particolari applicazioni dei
singoli utenti e che consentono agli utenti di
accedere ai dati che servono, ottenute attraverso
proiezioni o congiunzioni; la vista si chiama anche
tabella virtuale, rispetto alle tabelle del database,
dette anche tabelle primarie.
Le viste sono finestre dinamiche sulle tabelle del
database, in quanto ogni modifica ai dati sulla
tabella primaria si riflette sulla vista e viceversa.
La gestione del database: funzioni del
DBMS
Implementazione del modello logico sul sistema di
elaborazione
 Organizzazione fisica dei dati sui supporti di
memorizzazione, utilizzando le tecniche che
ottimizzano l'occupazione della memoria di massa
e i tempi di accesso alle registrazioni.
La gestione del database: funzioni del
DBMS
Manipolazione e interrogazione sulla base di dati
 Inserimento dei dati nel database e
trattamento dei dati già registrati con
operazioni di modifica o cancellazione;
La gestione del database: funzioni del
DBMS
Manipolazione e interrogazione sulla base di dati
 Interfaccia tra i programmi
degli utenti (scritti con i
tradizionali
linguaggi
di
programmazione) e la base di
dati, utilizzando le funzionalità
del
DBMS
per
migliorare
l'organizzazione dei dati e le
prestazioni dei programmi nelle
operazioni di ritrovamento dei
dati;
La gestione del database: funzioni del
DBMS
Manipolazione e interrogazione sulla base di dati
 Accesso ai dati contenuti nel
database
per
le
interrogazioni,
attraverso
interfacce o comandi semplici
che facilitano soprattutto
l'utente finale non specialista.
La gestione del database: funzioni del
DBMS
Controllo dell'integrità dei dati
 integrità sulle entità;
 integrità referenziale;
 integrità definite dall'utente.
Vincoli specifici per un particolare
database,
come
conseguenza
di
politiche
commerciali
dell'azienda
oppure di norme legislative e fiscali.
La gestione del database: funzioni del
DBMS
Sicurezza e protezione
 garanzia di sicurezza dei dati contro i danni
causati da malfunzionamenti di componenti
hardware o software o da interventi dolosi;
 protezione dei dati da eventuali danneggiamenti
per garantire l'integrità dei dati, offrendo
anche la possibilità di attivare procedure di
recovery in caso di perdita dei dati;
La gestione del database: funzioni del
DBMS
Sicurezza e protezione
 autorizzazione degli utenti che accedono alla
base di dati e protezione dei dati dagli accessi
non autorizzati;
 controllo degli accessi in modo concorrente al
database da parte di più utenti.
La gestione del database:
il dizionario
Inoltre il DBMS si occupa della gestione del
dizionario (o catalogo del database), contenente le
informazioni su:
 nomi delle tabelle e delle colonne,
 associazioni,
 viste,
 vincoli di integrità,
 utenti e proprietari,
 autorizzazioni degli accessi.
La gestione del database:
il dizionario
Il dizionario contiene i metadati, cioè i dati che
descrivono i dati organizzati nel database.
Anche
le
informazioni
del
dizionario
sono
organizzate in modo relazionale, cioè come valori
in tabelle.
Gli utenti autorizzati possono quindi accedere alle
informazioni del dizionario con le stesse modalità
con le quali operano per ritrovare i dati nel
database.
I linguaggi per le basi di dati
Le prestazioni del DBMS vengono attivate
dall'utente usando appositi comandi, che
costituiscono a tutti gli effetti un linguaggio,
attraverso il quale l'utente può comunicare
con il sistema di elaborazione che gestisce il
database.
I linguaggi per le basi di dati
Unificando in un unico linguaggio le funzioni
dei numerosi linguaggi per le basi di dati si
parla di linguaggio per basi di dati,
intendendo un insieme completo di comandi
che:
consente e facilita le operazioni di
definizione del database (DDL),
di manipolazione dei dati (DMCL, DML, DCL),
di interrogazione da parte degli utenti
(Query Language).
I linguaggi per le basi di dati
I linguaggi per database relazionali si basano sulla
visione tabellare dei dati che facilita l'utente in
quanto non contiene nessuna informazione sul
percorso per l'accesso fisico ai dati.
Database
La formulazione delle richieste di dati viene quindi
semplificata, perché libera l'utente dagli aspetti
riguardanti la navigazione all'interno della base di dati.
I linguaggi per le basi di dati
I comandi che il DBMS mette a disposizione possono
essere classificati nelle seguenti categorie di linguaggi:
 DDL (Data Definition Language)
 DMCL (Device Media Control Language)
 DML (Data Manipulation Language)
 DCL (Data Control Language)
 Query Language
 Relational DBMS
I linguaggi per le basi di dati: DDL
Il linguaggio per la descrizione dei dati, delle tabelle
e delle viste, detto DDL (Data Definition Language),
consente all'utente, facendo riferimento al proprio
schema logico, ordina al DBMS la creazione della
struttura fisica del database e la definizione dei
sottoschemi relativi alle applicazioni contenute nei
programmi dei singoli utenti.
I linguaggi per le basi di dati: DMCL
Il linguaggio di controllo dei supporti di
memorizzazione dei dati, detto DMCL (Device
Media Control Language), permette di riferire la
struttura fisica del database alle specifiche
unità di memoria di massa utilizzate dal sistema
di elaborazione.
I linguaggi per le basi di dati: DML
Il linguaggio per il trattamento (o manipolazione) dei
dati contenuti nel database, detto DML (Data
Manipulation Language), consente le usuali operazioni
di accesso per inserimenti, modifiche o cancellazioni
I linguaggi per le basi di dati: DCL
Il linguaggio per fissare i vincoli di integrità, per
stabilire le autorizzazioni agli accessi e i tipi di
permessi consentiti agli utenti (inserimento di nuovi
dati, sola lettura, modifica dei dati) è detto DCL
(Data Control Language).
I linguaggi per le basi di dati: QL
Il linguaggio per le interrogazioni alla base di dati,
detto Query Language, consente il ritrovamento dei
dati che interessano, sulla base dei criteri di ricerca
richiesti dall'utente.
I moderni DBMS mettono a disposizione dell ’ utente
interfacce, a menu o grafiche, che facilitano l'interazione.
I linguaggi per le basi di dati:
RDBMS
Lo sviluppo e il raffinamento delle tecniche di
gestione delle basi di dati hanno dato vita a
linguaggi formati da comandi specifici, per
consentire agli utenti un facile uso delle
prestazioni del DBMS per basi di dati relazionali
(detti RDBMS, cioè Relational DBMS).
I linguaggi per le basi di dati:
RDBMS
Questi comandi possono essere richiamati:
 dall'interno (Embedded SQL)
di un programma scritto con i
tradizionali
linguaggi
di
programmazione (Cobol, Pascal,
C), detto host language;
 tramite linguaggi orientati alla
gestione delle basi di dati con
caratteristiche di linguaggi a
sé stanti.
Gli utenti
L’accresciuta differenza fra struttura concettuale e
struttura fisica aumenta la distinzione tra le diverse
figure degli utenti del computer:
DBA (Database
Administrator)
Programmatore
Utente
finale
Gli utenti: DBA (Database
Administrator)
E ’ il responsabile della gestione del
database e utilizza, per svolgere le sue
funzioni, le prestazioni e i linguaggi del
DBMS.
Gli utenti: DBA (Database
Administrator)
 sistemista,
Collabora
con le altre
figure:
 analista,
 responsabile dello
sviluppo software,
 programmatore
 progettazione del database,
Nelle
diverse
fasi:
 costruzione delle applicazioni,
 traduzione dello schema del
database nel modello fisico da
creare su memoria di massa,
 manutenzione dei dati nel tempo
Gli utenti: DBA (Database
Administrator)
Il DBA ha i seguenti compiti:
 implementazione del modello logico del database nel
sistema di elaborazione sui supporti fisici delle
memorie di massa;
 gestione e trattamento dei dati
inserimenti, modifiche, cancellazioni);
(controllo
di
 autorizzazione degli accessi;
 definizione delle viste per accessi parziali di utenti
alla base di dati;
Gli utenti: DBA (Database
Administrator)
… ed inoltre:
 controllo dei programmi applicativi che richiedono
l'uso del database;
 manutenzione del database nel tempo, in termini di
efficienza e di ottimizzazione delle risorse;
 controllo sugli interventi di recupero, nel caso di
cattivi funzionamenti, e sulle copie di salvataggio
periodiche;
 controllo della disponibilità degli spazi su memoria di
massa.
Gli utenti: programmatori
Con i loro programmi operano sui dati organizzati in
un database, utilizzando:
 un linguaggio DML (Data Manipulation Language),
 comandi che sono un'estensione dei tradizionali
linguaggi di programmazione,
 un linguaggio specifico per basi di dati.
Agiscono sotto il controllo del gruppo di progetto e di
produzione del software applicativo a cui partecipa
anche il DBA.
Gli utenti: utenti finali
Usano le informazioni contenute nel
database. Accedono alla base di dati
attraverso:
i
comandi
di
un
linguaggio
di
interrogazione (Query Language), se sono
utenti esperti,
 interfacce software che presentano sul
video il menu o le icone, se, al contrario,
sono utenti poco esperti
Fine
Scarica

Introduzione ai database - Villaggio del Fanciullo