Introduzione
ESEMPI DI ARCHIVI DI DATI
•
•
•
•
•
Elenco telefonico
Conti correnti
Catalogo libri di una biblioteca
Orario dei treni – aerei
……….
Introduzione
• Più utenti con ognuno il proprio archivio da
gestire.
• Riportare le modifiche (inserimenti,
aggiornamenti, cancellazioni, interrogazioni,…) in
ogni archivio
• Rischio di:
–
–
–
–
Dimenticanze
Controlli incrociati per evitare inconsistenze
Sovraccarico (duplicazione) inutile di lavoro
Difficoltà nel condurre ricerche sui dati
• La soluzione è un archivio (base di dati)
centralizzato e condiviso
Ferie
Che cosa è una Base di dati?
Base di Dati (data base): una collezione di
informazioni,
generalmente
non
omogenee,
organizzate in una struttura che ne rende efficiente la
ricerca e l'accesso automatici.
Caratteristiche di un DB:
• la persistenza della memorizzazione dei dati,
usualmente suddivisi su più file e memorizzati su
dispositivi di memoria secondaria di grandi capacità
• funzioni per il recupero delle informazioni (data
retrieval), per l'introduzione di nuove informazioni (data
entry) e per l'aggiornamento o modifica di quelle già
presenti (data editing).
Il DBMS
Le funzionalità di un DB sono realizzate da un sistema
software chiamato Data Base Management System (DBMS),
che integra al suo interno più moduli:
- alcuni destinati ad interagire con gli utenti
- altri alla definizione ed al mantenimento della struttura
- altri alla elaborazione delle informazioni
- altri ancora al coordinamento con il sistema di gestione dei
file ovvero col sistema operativo che ospita il DBMS.
I tre livelli di un DB
• livello fisico: riguarda l’organizzazione
delle informazioni nei file;
• livello logico: è il modo in cui il sistema
rappresenta l’insieme delle informazioni
che contiene
• livello esterno (viste): è il modo in cui la
struttura concettuale del DB appare agli
utenti.
Struttura di un DB:
i tre livelli di astrazione
Livello fisico
Livello logico
Livello esterno
(viste)
Il livello fisico per l’OS
Fisicamente un DB è una collezione di file, memorizzati in
dispositivi di memoria di massa (dischi, nastri, ecc.).
Questi dispositivi organizzano le informazioni secondo una
struttura che dipende dalla loro tipologia.
Nel caso dei dischi si parla di record fisici per indicare i settori in
cui sono suddivise le tracce.
Questo livello non è di pertinenza del DB ma del sistema
operativo.
Il livello fisico per il DB
Logicamente ciascun file è suddiviso in record e campi:
record: una collezione finita di campi
campo: una coppia nome-valore
Vi sono record con campi di lunghezza fissa, meno compatti ma
più facili da indirizzare, e con campi di lunghezza variabile che
richiedono opportune tecniche di indirizzamento.
Campi, record e file
Scheda socio
record
Cognome
campi
Nome
Indirizzo
tel
n. sedute
file
Il livello logico
Al livello logico si situa il modo in cui il sistema
rappresenta l'universo delle informazioni che contiene
o che potrà contenere. Questo livello viene definito in
fase progettuale, stabilendo lo schema concettuale di
cui le informazioni concrete sono istanza.
Un metodo largamente impiegato per descrivere
questo livello è il cosiddetto modello
ENTITÀ/RELAZIONE.
Il modello
ENTITÀ/RELAZIONE
Consiste in una descrizione diagrammatica i cui concetti base
sono:
ENTITÀ
Classi di oggetti omogenei
RELAZIONE
Classi di fatti omogenei che
correlano istanze di
ENTITÀ
attributi
Proprietà di ENTITÀ o
RELAZIONE
Esempio di modello
ENTITÀ-RELAZIONE
studente
sostiene
Matricola
Cognome
esame
Voto
Data
Corso
Docente
Materia
Nome
RELAZIONE molti-a-uno
Una RELAZIONE si dice molti-a-uno se ad ogni istanza
della seconda ENTITÀ corrispondono una o più istanze della
prima.
massimo
1,n
città
1,1
Residente
minimo
persona
RELAZIONE uno-a-uno
Una RELAZIONE è uno-a-uno se ad ogni istanza della
prima ENTITÀ corrisponde esattamente un’istanza della
seconda e viceversa
0,1
uomo
0,1
sposato
donna
RELAZIONE molti-a-molti
Una RELAZIONE si dice molti-a-molti se per ogni istanza
di una delle ENTITÀ coinvolte possono esservi più di
un’istanza dell’altra.
0,n
studente
0,n
sostiene
esame
I modelli dei dati
Una specifica basata su ENTITÀ e RELAZIONE è astratta e
deve essere realizzata utilizzando una struttura dati. Ve ne sono
di diversi tipi:
• gerarchico: molto usato per i DB di tipo testuale
• reticolare: si interrga navigando; oggi riscoperto come
“orientato agli oggetti”
• relazionale: basato sul concetto di relazione (tabella).
NOTAZIONE
• Con il termine “RELAZIONE” denotiamo il
concetto di relazione nel modello
ENTITÀ/RELAZIONE mentre con il
termine “relazione” (tutto in minuscolo)
denoteremo il concetto di relazione
insiemistica.
Il modello relazionale
Dati due insiemi A e B (esempio: A=Nomi, B=numeri
telefonici) il prodotto cartesiano A  B di A e B è
l’insieme:
A  B = {<a,b> | aA, bB}
es. Nomi  NumTel = {<Filippo, 011 56 …>,
<Caterina, 095 78 …>, ….}
Una relazione insiemistica R su A e B è un sottoinsieme di
AB
Un data-base di tipo relazionale è una collezione di
relazioni insiemistiche. Queste relazioni si rappresentano
come tabelle.
Una tabella
schema
tuple
nomi dei campi
COGNOME
NOME
TEL.
Tanzi
Rosario
095 89 ...
Federici
Susanna
011 55 ...
De Bernardi
Silvio
06 44 ...
Implementazione
Modello logico ENTITÀ-RELAZIONE
DB relazionale
ENTITÀ
tabella
attributo
campo
RELAZIONE
campi in comune
Studente  Nome  Corso  Matricola
Esame  Materia  Data  Voto  Matricola
schemi
studente
sostiene
Matricola
Cognome
esame
Voto
Data
Corso
Docente
Materia
Nome
Studente
Nom e
Filippo
C aterina
…
Esam e
Materia
Inorganica
Lett. G reca
O rganica
C orso
C him ica
Lettere
Matricola
9723456
8745666
…
D ata
Voto
23/02/00 24/30
15/12/99 28/30
08/07/99 22/30
Matricola
9723456
8745666
9723456
Nota: la RELAZIONE “sostiene” è implementata mediante la
ripetizione del campo “Matricola”
Vincoli di integrità
I vincoli di integrità sono condizioni che debbono essere
soddisfatte dalle istanze di una relazione (dagli elementi
di una tabella) per evitare incoerenze e prevenire errori.
valore fuori
dominio
Iscrizioni
Studente
Matricola
Età
Verdi
10345
25
Prodi
76890
230
Salemi
76890
21
replica scorretta
Le chiavi
Una chiave è un insieme di attributi i cui valori identificano
univocamente le tuple (le righe di una tabella).
Cognome
Nome
eMail
Cognome
Conoscenti
Telefono
Indirizzo
Nome
Tel …..
Rossi
Andrea 02 78 ...
Rossi
Paolo
Sorbi
Andrea 081 43 ...
Valentini
ø
0347 17 ...
06 85 ...
Una relazione (tabella) può avere più chiavi; una chiave i
cui valori non siano mai nulli e quindi individuino tutte le
tuple si dice primaria.
Operazioni sulle relazioni (tabelle)
Il recupero dei dati e le operazioni di incrocio con cui un
linguaggio di interrogazione permette di rispondere alle
richieste dell’utente si basano su operazioni sulle relazioni
(tabelle), tra le quali consideriamo:
• la proiezione (p)
• la selezione (s)
• il join naturale (incrocio)
Proiezione
La proiezione di una tabella è una tabella con un sottoinsieme
delle colonne della prima.
Proiezione su A, C
A
B
a
b
a’
b’
T
A
C
c
a
c
c’
a’
c’
C
pA,C(T)
Selezione
La selezione sP(T) costruisce una nuova tabella scegliendo le
tuple della tabella T che soddisfano il criterio (predicato) P.
A
B
N
A
B
N
a
b
3
a
b
3
a’
b’
4
a”
b”
9
a”
b” 9
sP(T)
T
P = N multiplo di 3
Criteri non atomici
Un criterio è un predicato sui valori degli attributi: questo
predicato può essere “atomico”:
Nome = “Pippo”
oppure essere composto di parti atomiche collegate con
operatori booleani:
Nome = “Pippo” OR Cognome = “Rossi”
Nome = “Pippo” AND Cognome = “Rossi”
Connettivi booleani: tavole di verità
Negazione
Congiunzione
Disgiunzione
A
Not A
Vero Falso
Falso Vero
A
B
A A nd B
V e ro
V e ro
V e ro
V e ro
F a ls o
F a ls o
F a ls o
V e ro
F a ls o
F a ls o
F a ls o
F a ls o
A
B
A Or B
V e ro
V e ro
V e ro
V e ro
F a ls o
V e ro
F a ls o
V e ro
V e ro
F a ls o
F a ls o
F a ls o
Join naturale
Il join naturale di due relazioni (tabelle) che abbiano coordinate
(nomi dei campi) in comune e una relazione (tabella) le cui
coordinate sono l’unione delle coordinate delle relazioni
(tabelle) date, e le cui tuple sono quelle i cui valori nelle
coordinate comuni sono eguali
A
B
a
b
a’
b’
B
C
b
c
b”
c”
A
B
C
a
b
c
Le interrogazioni (query)
Le interrogazioni sono espresse in una forma opportuna:
• attraverso un linguaggio di interrgazione, ad es. SQL:
SELECT COGNOME,ANNO
FROM GIOCATO IN
WHERE GOL>30 AND SQUADRA = JUVENTUS
• attraverso schemi di risposta (query by example), come ad
esempio in Access.
In entrambi i casi il modulo di esecuzione della query
compone opportunamente le operazioni proprie del DB su
cui lavora (es. proiezione, selezione, join,…) per calcolare
la risposta.
Interrogazioni su DB relazionali
Studente
Nom e
Filippo
C aterina
…
Esam e
Materia
Inorganica
Lett. G reca
O rganica
C orso
C him ica
Lettere
Matricola
9723456
8745666
tabelle
…
D ata
Voto
23/02/00 24/30
15/12/99 28/30
08/07/99 22/30
Matricola
9723456
8745666
9723456
SELEC T Materia FR O M Esam e W HER E Matricola IN
SELEC T Matricola FR O M Studente W HER E Nom e = Filippo
Materia
Inorganica
O rganica
risultato
Interrogazione
Scarica

Base di Dati - Sardegna2007