IDUL 09
BASI DI DATI
USO DI STRUMENTI INFORMATICI
PER LA GESTIONE DI INFORMAZIONI

Forse la piu’ importante applicazione di
metodi informatici nelle materie umanistiche
è per gestire grandi quantita’ di dati


STRUTTURATI
NON STRUTTURATI
(in basi di dati)
(in archivi di testi)
PROSOPOGRAFIA
DELL’IMPERO BIZANTINO
Basilios 7
Sex
Floruit
Dates
PmbZ No.
Variant Names
Ethnicity
Locations:
M
E/L IX
813 (n.) / 886 (ob.)
832
Basileios
Macedonian;Armenian
Kepoi (Thrakesioi); Macedonia (property); Peloponnesos; Hagios Diomedes (Monastery of, Constantinople) (topographical);
Constantinople (officeplace); Adrianoupolis (Macedonia) (residence); Bulgaria (residence); Constantinople (residence);
Adrianoupolis (Macedonia); Bulgaria; Constantinople; Adrianoupolis (Macedonia) (birthplace)
Occupation
Farmer
Titles
Patrikios (dignity); Augustus (office); Basilikos protostrator (office); Basilikos strator (office); Emperor (office);
Parakoimomenos (office); Protostrator (office)
Textual SourcesBar Hebraeus, Chronographia, tr. E. A. W. Budge, The Chronography of Abu 'l-Faraj (London, 1932; repr. Amsterdam, 1976) (history);
Chronicon Anonymi ad annum 1234 pertinens, ed. and tr. J.-B. Chabot, I = CSCO 81-82 (Paris, 1916-20), II = CSCO 109 (Louvain,
1937) (chronicle);
Genesii, Josephi, Regum Libri Quattuor, eds. A. Lesmüller-Werner and I. Thurn, CFHB 14 (Berlin, 1978) (history);
Georgius Monachus Continuatus, in Theophanes Continuatus, ed I Bekker (Bonn, 1839), pp. 761-924 (history);
Leo Grammaticus, Chronographia, ed. I. Bekker (Bonn, 1842) (chronicle);
Pseudo-Symeon, Chronographia, ed. I. Bekker (Bonn, 1838), pp. 603-760 (history);
Theophanes Continuatus, ed. I. Bekker (Bonn, 1838) (history);
Vita Ignatii Patriarchae, by Nicetas (BHG 817), PG 105.488-574) (hagiography);
Vita Irenae Chrysobalanton, The Life of St Irene Abbess of Chrysobalanton, ed. with introd., tr., notes and indices, J. O. Rosenqvist,
Acta Universitatis Upsaliensis (hagiography);
Vita Nicolai Studitae (BHG 1365), PG 105. 863-925 (hagiography);
Zonaras = Ioannis Zonarae Epitome Historiarum, libri XIII-XVIII, ed. Th. Büttner-Wobst, (Bonn, 1897) (history)
Basilios 7 is the emperor Basil I (867-886). The history of his life and reign was written by his grandson, the emperor Constantine VII Porphyrogenitus (=
Theophanes Continuatus, Book V); Constantine described him as of great benefit to the empire and composed his history in order to inform posterity of
the origins of the ruling dynasty and to provide a model of conduct to be followed by future descendants of Basilios 7 (in particular, no doubt,
Constantine's own son, the future emperor Romanos II): Theoph. Cont. V 1.
DATABASE STORICI:PROSOPOGRAPHY
OF THE BIZANTYNE EMPIRE




Prosopografia: un registro di tutti gli individui
vissuti in un certo periodo
In questo caso: tutti gli individui vissuti a
Bisanzio tra il 641 ed il 1261
Costruita a partire dalle loro menzioni in
documenti dell’epoca
Informazioni su 8500 individui, dimensioni
equivalenti a 11 000 pagine di testo
STRUTTURE DATI TEMPORANEE
E PERMANENTI


Per potere rappresentare informazioni in
modo duraturo occorre sviluppare delle
tecniche per mantenerle in memoria
secondaria e poterle consultare in modo
pratico
Lo strumento informatico utilizzato per questo
scopo sono le BASI DI DATI (Data-Base)
BASI DI DATI


Una base di dati e’ una collezione di dati
immagazzinati in modo PERMANENTE su disco
Una base di dati permette di





Definire degli oggetti (‘concetti’) e delle relazioni
Inserire nuovi dati
Ritrovare questi dati anche combinandoli con altri
Visualizzare i dati in modi particolari
Il tipo di base di dati più comune sono le basi di dati
RELAZIONALI
PROGETTAZIONE DI UNA
BASE DATI

MODELLAZIONE CONCETTUALE


MODELLAZIONE LOGICA


Progetto dello SCHEMA
Scelta della rappresentazione: TABELLE,
ALBERI, etc
PROGETTAZIONE FISICA

Utilizzando il DBMS scelto
MODELLI CONCETTUALI


Un modello concettuale e’ un’analisi del tipo
di dati che si vogliono rappresentare, che
prescinde dalla realizzazione fisica dei dati
particolari
Tipicamente, questa analisi si articola attorno
ad una definizione de



Gli OGGETTI che si vogliono rappresentare
I loro ATTRIBUTI
Le RELAZIONI tra questi oggetti
UN SEMPLICE MODELLO
CONCETTUALE
STUDENTE
Matricola
Cognome, Nome
Data di Nascita
RISULTATI_ESAMI
Matricola
Materia
Data
Voto
MODELLAZIONE LOGICA


Una volta decisi quali sono i concetti
importanti da rappresentare e quali sono i
loro attributi, occorre pensare come e’
possibile rappresentare questa informazione
usando una base di dati
Questo è il compito della modellazione logica
(attenzione: questa non esprime ancora proprietà di dati
specifici, ma delle loro proprietà e/o relazioni)

Esprimibile in diagrammi
SCHEMA LOGICO (FILM)
Entità
Relazioni tra entità
Diagramma Entità-Relazione (Chen 1970)
Attributi di entità
SCHEMA LOGICO (FILM)
Con cardinalità delle relazioni (MIN,MAX)
SCHEMA LOGICO
(GERARCHIE)
SCHEMA LOGICO
(GERARCHIE)
SCHEMA LOGICO
(COMPLETO)
MODELLI DI
RAPPRESENTAZIONE DATI


A partire dagli anni Settanta il modello
dominante è stato il quello RELAZIONALE,
proposto da Edgard F. Codd nel 1970
Per certi tipi di applicazioni (in particolare per
basi di dati accessibili via Web) si fa molto
uso di XML (vedi prossime lezioni)
IL MODELLO RELAZIONALE


L’informazione e’ rappresentata nelle basi di
dati sotto forma di RELAZIONI
r(x,y,z,w)
Due tipi di relazioni rappresentate


Relazioni rappresentate con TABELLE che
rappresentano un OGGETTO ed i suoi attributi
risultato_esame(IUB,4/2/2008,112233,29)
Relazioni tra le tabelle

Per esempio, tra tabella studente e tabella
risultato_esame
TABELLE CHE
RAPPRESENTANO RELAZIONI
RECORD
ATTRIBUTO
RECORDS

I records sono strutture dati usate per
rappresentare oggetti che hanno ATTRIBUTI
ESEMPIO: RISULTATO ESAME
SCHEMA della RELAZ.
RECORD
ATTRIBUTO
VALORE (o CAMPO)
Materia Data
Matr.
Voto
IDUL
4/2/10
112233 29
no
IUC
4/2/10
114422 30
si
risultato_esame(IDUL,4/2/2010,112233,29)
Lode?
UN ALTRO ESEMPIO
STUDENTE
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
studente(112233,Rossi,Mario,11/11/1973)
VALORI CHIAVE



Ogni riga di ogni tabella (cioe’ ogni
rappresentazione di un oggetto) deve avere
almeno un campo che permetta di identificare
quella riga in modo univoco
non deve dunque esserci un altro record con
lo stesso valore per quell’attributo, anche se il
valore può apparire in altri attributi
Tale attributo è chiamato CHIAVE
VALORI CHIAVE
STUDENTE
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
VALORI CHIAVE MULTIPLI
A volte la chiave è definita da più campi insieme.
NOME
COGNOME
ESAME
APPROVATO?
Carlo
Rossi
IUB
si
Mario
Rossi
IUB
no
Carlo
Bianchi
IUC
si
VALORI CHIAVE ARTIFICIALI
RISULTATO_ESAME
ID
MATERIA
1
….
2
IUB
3
….
DATA
MATRICOLA VOTO
4/2/2008
112233
Tipicamente, numeri consecutivi, uno per record
29
VALORI NULLI
PERSONAGGI BIBLICI
NOME
Età
PADRE
Matusalemme
968
Enoch
Eva
NULL
NULL
….
Il valore NULL può essere dato a campi il cui valore non si conosce, o per casi
in cui il valore non è definito (a volte i due casi sono distinti)
RELAZIONI TRA TABELLE


Una base di dati relazionale permette di
specificare, oltre che informazioni su attributi
di oggetti, informazioni sulle relazioni tra
oggetti
Per esempio, che un particolare risultato di
esame e’ stato ottenuto dallo studente Mario
Rossi
RELAZIONI TRA TABELLE
ID
MATERIA
DATA
MATRICOLA
VOTO
4/2/2008
112233
29
….
456789
IUB
….
MATRICOLA
COGNOME
NOME
DATA
NASCITA
Rossi
Mario
11/11/1973
….
112233
….
DATABASE MANAGEMENT
SYSTEMS RELAZIONALI

Praticamente tutti i DATABASE
MANAGEMENT SYSTEMS (DBMS) moderni
sono basati sul modello relazionale


E.g., Oracle, Access, MySQL, PostgreSLQ (open
source)
Disponibili per i principali sistemi operativi
(Windows, UNIX)
UNA TABELLA IN ACCESS
RELAZIONI TRA TABELLE
OPERAZIONI SU UN
DATABASE RELAZIONALE

Operazioni tipiche su un database relazionale

RITROVARE un sottoinsieme delle righe




Possibilmente restringendo il ritrovamento ad un
sottoinsieme delle colonne
AGGIUNGERE dati
DEFINIRE nuove tabelle e nuove relazioni
VISUALIZZARE un sottoinsieme dei dati per scopi
particolari
PROIEZIONE E SELEZIONE


PROIEZIONE (πtest): estrazione di una serie di
colonne (attributi) da un DB
SELEZIONE (σtest): estrazione di una serie di
righe (record)

Dove test è un test che, se ha successo, aggiunge
la colonna/riga sotto esame alla
proiezione/selezione (rispettivamente)
ESEMPIO: DATABASE FILM
Selezione su titolo ed anno
Proiezione su selezione per
valore dell’attributo “nazione”
ESEMPIO: DATABASE FILM
Intersezione (⋂) tra gli attori di film diversi
attori NON presenti in un film (differenza, - )
DA ER AL DB RELAZIONALE

La progettazione nello schema ER contiene
costrutti che vanno “tradotti” nel sistema
relazionale. Ciò comporta:



La eliminazione delle gerarchie, riportando le
informazioni su nodo padre.
La traduzione delle entità come tabelle, i cui valori
saranno i valori dei singoli individui appartenenti a
quella entità
La connessione tra le tabelle così stabilite
Gerarchie come relazioni
Gerarchie come relazioni
“Distribuzione o Produzione"
ENTITA’ COME RELAZIONI

In un diagramma ER, le entità sono collezioni
di individui, ciascuno dotato di attributi con
valori. Rese come tabelle:
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)
FILM(codice, titolo, durata, anno, nazione)
COLLEGARE TABELLE

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)
FILM(codice, titolo, durata, anno, nazione)

Come specificare che una edizione è l’edizione di un certo film?


Aggiungendo alla tabella EDIZIONE una chiave esterna (qui, il numero di
codice del film).
La chiave si specifica aggiungendo ai valori di EDIZIONE il nome della
relazione che contiene la chiave:
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato, film)

Impossibile fare il contrario, visto che un film ha tipicamente molte
edizioni: un campo può contenere un solo valore!
FILM(codice, titolo, durata, anno, nazione, edizione)
COLLEGARE TABELLE CON
RELAZIONI N-a-N

Come specificare che un film ha la relazione di CAST con molti
attori, ed una PERSONA ha spesso recitato in molti FILM?

E’ necessario indicarlo in maniera indiretta, tramite una nuova relazione (qui,
CAST), che conterrà DUE chiavi esterne:
PERSONA(nome, nazione, data_di_nascita)
FILM(codice, titolo, durata, anno, nazione)
CAST(persona, film, personaggio)
RITROVAMENTO
INFORMAZIONI CON SQL


Le informazioni in una base di dati possono
essere ritrovate mediante INTERROGAZIONI
In un database relazionale moderno le
interrogazioni sono fatte utilizzando un
linguaggio di interrogazione chiamato SQL
(Simple Query Language)
SINTASSI DI SQL

Diversi tipi di comandi:


DDL (Data Definition Language: comandi per la
creazione e l’update del DB)
DML (Data Manipulation Language: comandi per
la interrogazione del DB)
Create TABLE persona (
Nome
varchar(50) PRIMARY KEY,
Nazione
varchar(50),
Data_Nascita
date
);
SELECT nome, nazione, data_nascita
FROM persona
WHERE nazione = ‘Italia’;
CREARE UNA TABELLE CON
SQL

CREATE TABLE persona (
Codice
Titolo
Anno
Durata
Nazione
);
integer PRIMARY KEY,
varchar(50), NOT NULL,
varchar(4),
integer,
varchar(50), DEFAULT ‘Italia’
CREARE UNA ASSOCIAZIONE
TRA TABELLE CON SQL

);
CREATE TABLE cast (
persona
varchar(50), REFERENCES persona(nome),
film
integer, REFERENCES film(codice)
personaggio
varchar(50)
PRIMARY KEY (persona, film)
POPOLAMENTO DI UN DB
Comandi INSERT, UPDATE, DELETE
1.
2.
3.
4.
INSERT INTO film VALUES (5, ‘Il sesto senso’, 1999, 107, ‘USA’);
INSERT INTO film(codice, titolo, anno) VALUES (5, ‘Il sesto senso’,
1999);
UPDATE film SET durata = 130 WHERE titolo = ‘Il senso senso’;
DELETE FROM persona WHERE nazione = ‘Italia’;
2 inserisce valori NULL per gli attributi non specificati; 4 distrugge un’intera
tupla (record) della tabella persona se sono verificate le condizioni
INTERROGAZIONI DI UN DB

Comando di interrogazione: SELECT

Clausole piu’ usate:


FROM (specifica la tabella)
WHERE (specifica restrizioni)
INTERROGAZIONE
SELECT Materia, Data, Matricola
FROM Esami;
SQL: ESEMPIO DI USO DI
ATTRIBUTI
SELECT Nome, Cognome
FROM Studenti
WHERE Matricola=‘112233’;
INTERROGAZIONI CHE
COINVOLGONO PIU’ TABELLE
AGGIUNGERE TABELLE
INTERROGAZIONE A
TABELLE MULTIPLE
SQL VIEW
SQL: ESEMPIO DI INTERROGAZIONE
DA TABELLE LINKATE
SELECT Studenti.Nome, Studenti.Cognome
FROM Studenti INNER JOIN
Esami
ON Studenti.Matricola=Esami.Matricola
WHERE Esami.Materia='IUB' And
Esami.Voto>25;
CREARE UNA BASE DATI


Creare una base di dati realizza un modello
concettuale
Richiede tradurre oggetti e relazioni in tabelle
e legami tra tabelle
CREARE UNA BASE DI DATI
IN ACCESS
1.
2.
3.
4.
5.
Creare le tabelle usando ‘Create Table in
Design View’
Salvare
Cambiare a Datasheet view per inserire i
dati
Continuare a creare altre tabelle
Linkare le tabelle
1. TABLE DESIGN VIEW
1. TABLE DESIGN VIEW
2. DATASHEET VIEW
PASSI SUCCESSIVI



Dati non strutturati
XML e TEI
ONTOLOGIE e SEMANTIC WEB
DATI NON STRUTTURATI

Molto spesso i dati da gestire non sono
organizzati in tabelle:


Archivi di testi ed immagini
Discuteremo di archivi di testi ed immagini e
del ritrovamento in questo caso la prossima
lezione
DARE STRUTTURA A DATI
NON STRUTTURATI


I linguaggi di markup come SGML o XML
permettono di ‘imporre una struttura’ su
documenti non strutturati
Vedremo la lezione successiva
RAPPRESENTAZIONE DELLA
CONOSCENZA ED ONTOLOGIE




La ricerca sul modo ‘ideale’ per rappresentare le
informazioni ha portato alla nascita di ricerca sulla
KNOWLEDGE ENGINEERING o rappresentazione
della conoscenza anche in senso non applicato
Particolarmente interessante per domini piu’
complessi che ‘studenti’ e gli ‘esami’?
L’area della KNOWLEDGE ENGINEERING
raggruppa ricercatori da database, Intelligenza
Artificiale, e nell’area del SEMANTIC WEB
Un area molto legata allo studio delle ONTOLOGIE
LETTURE


Tomasi, capitolo 3
Wikipedia:



http://it.wikipedia.org/wiki/Database
http://it.wikipedia.org/wiki/Modello_relazionale
ACCESS: http://office.microsoft.com/