Le Basi di Dati
per i Beni culturali
Fabio Cavulli
• Database: “Una base di dati è una
collezione di dati correlati creata con lo
scopo specifico di rappresentare
adeguatamente e memorizzare le
informazioni relative a una realtà di
interesse”
• Dato: “La descrizione di una caratteristica
della realtà costituita da simboli, che ne
garantiscono la comprensione, e registrata
su un supporto, che ne garantisce la
conservazione”
• Informazione: interpretazione di un dato
in grado di arricchire la nostra conoscenza
(p. 2)
DBMS
• Database Management System
software per la definizione e la manipolazione
della base di dati. Offre:
– Visione ad alto livello (nascondendo il basso livello)
– Sicurezza dei dati
– Assicura coerenza dei dati
– Visioni personalizzate
– Salvataggio e ripristino
– Accessi contemporanei
Associazioni (relazioni tra tabelle)
Insiemi di oggetti (tabelle)
oggetti (records)
Domini (attributi)
modelli di DATABASE
Alcuni tipi di DB:
· gerarchico: i record sono strutturati per livelli gerarchici di accesso. Gli
ordini superiori sono definiti "parents", mentre quelli inferiori "children". Il
record posto all'inizio è definito "root". Ogni record può avere parecchie
relazioni con gli elementi gerarchici inferiori, ma uno solo con quello
superiore.
Sono di facile creazione e gestione. È una struttura di database adatta a
relazioni del tipo "uno a molti"
· reticolare: ogni record può avere più di un “genitore”. Consentono di
gestire relazioni plurime che comportano relazioni fra record dello stesso
livello. Sono di difficile creazione e gestione perché richiedono un elenco
di "puntatori" per collegare tra di loro i diversi record, impegnando una
maggiore quantità di memoria.
· relazionale: i dati sono organizzati in serie di matrici bidimensionali,
strutturate in modo da evitare ridondanza di dati. Le diverse tabelle sono
tra loro collegate da "chiavi" comuni. Sono molto flessibili, si basano su
files ad accesso sequenziale che rendono agevoli le operazioni di
inserimento, cancellazione ed aggiornamento dei dati. Consentono di
gestire anche relazioni di tipo plurimo. Le tabelle di un DB relazionale
comprendono per riga l'insieme dei diversi records e per colonna i vari
campi.
Modello di dati
Descrive la struttura dei dati che caratterizza la
realtà di interesse a cui si riferisce la BD
– Schema della base di dati - struttura dei dati
(componente intensionale)
– Stato corrente - dati inseriti
(componente estensionale)
Livelli di astrazione (p. 4)
• Schema logico: descrive l’intera BD
• Schema fisico: record che descrivono gli
oggetti sottoforma di files sequenziali
• Schemi esterni: viste esterne come
sottoinsieme di dati
Esempio di tabella in un DB relazionale
Esempio di relazioni tra le tabelle in
un DB relazionale
Gerarchie di generalizzazione (p. 20)
Rappresentano un particolare tipo di legame
che intercorre fra entità
legame di specializzazione
Insieme
sottoinsieme
Entità padre
entità figlio
Gerarchie di generalizzazione
Totale - sovrapposta
Donna
Distributore
Uomo
Persone
produttore
Società cinematografiche
Parziale - esclusiva
Auto
Distributore e
produttore
Totale esclusiva
Moto
Parziale - sovrapposta
velocista
v.
&
f.
fondista
Né auto né moto
né velocista né fondista
Veicoli
Atletica
Modello relazionale (p. 25)
tabella/relazione: nome
schema
della relazione
campo
riga/
record/
tupla
Vincoli
Vincoli di dominio: il campo accetta solo certi
attributi (txt, #, data, … , # caratteri, duplicati, indice, …)
Vincoli di chiave: IDentificativo univoco, Chiave
primaria (primary key) ed esterna (foreign key), chiave
semplice o condivisa (superchiave), chiavi primarie
naturali (cod. fiscale, # di matricola, …)
Vincoli di integrità referenziale: Riguardano le
associazioni di tabelle e garantiscono che i valori
logici fra righe di tabelle diverse siano coerenti
UNIONE: TUTTI DATI DI X e Y
x
Y
X+Y
id
#
id
id
B
1
A
A
D
2
B
B
F
3
C
C
D
D
E
E
=
F
CHIAVE PRIMARIA = A, B, C, …
#
1
2
3
INTERSEZIONE:
SOLO DATI DI X CORRISPONDENTI A Y
X
X=Y
Y
B
1
A
D
2
B
F
3
C
DATI DI Y + CORRISPONDENTI IN X
X
Y
B
1
B
1
A
D
2
D
2
B
F
3
C
C
D
D
D
E
E
E
=
A
=
B
1
2
DIFFERENZA: DATI DI X
X
NON CORRISPONDENTI IN Y
Y
X-Y
B
1
D
2
F
3
A
-
B
C
D
E
=
DIVERSO DA Y-X !!!!
F
3
Base di Dati relazionale = insieme di relazioni (relazioni
tra attributi)
Associazioni (relazioni) tra tabelle
permettono di archiviare una sola volta una serie di
attributi (tabella) e richiamarla n volte in altre tabelle
orientamento ai valori
Cardinalità:
relazione 1/n
relazione n/1
relazione n/n
Uno a molti (1/n)
Manuf. litico
+
Tipo di ritocco
Autore
+
Pubblicazione
Descrizione del Manufatto
e di tutti i tipi di ritocco
Pubblicazioni dell’autore X
Pubblicazione
+
Autore
Pubblicazione X con gli autori
Molti a molti (n/n)
Attore
Film
Partecipazione
Autore
Pubblicazione
Film dell’attore X
rapporto
Film X con lista degli attori
Pubblicazioni dell’autore X
Pubblicazione X con gli autori
Comando
Descrizione
Between #01/01/2000# and #31/12/2000# Restituisce i dati compresi tra il
01/01/2000 ed 31/12/2000 inclusi
In (“Roberto”, “Mario”,
Restituisce i record che contengono le
“Marco”)
parole tra virgolette
IsNull
Restituisce i record vuoti
?????
Cinque caratteri qualsiasi
< 100
Inferiore a 100
100
Uguale a 100
Like “r*”
Restituisce i record che iniziano per r
(seguita da qualunque altro carattere)
Like “*r”
Restituisce i record che finiscono per r
Like “[a – d]*”
Restituisce I record che iniziano per a – b
– c – d seguiti da qualunque altro carattere
Like “[a – d]?”
Restituisce I record che iniziano per a – b
– c – d seguiti da un solo carattere
Like “Ma?co”
Restituisce I record che cominciano per
Ma seguiti da un solo carattere e finiscono
per co