IDUL 2012
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
(in basi di dati)
NON STRUTTURATI
(in archivi di testi)
PROSOPOGRAFIA
DELL’IMPERO BIZANTINO
Basilios 7
Sex
M
Floruit E/L IX
Dates 813 (n.) / 886 (ob.)
PmbZ No.
832
Variant Names Basileios
Ethnicity
Macedonian;Armenian
Locations:
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 tramite una “maschera”
Ritrovare questi dati anche combinandoli con altri
Visualizzare/stampare 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
Progetto
dello SCHEMA
MODELLAZIONE
Scelta
CONCETTUALE
LOGICA
della rappresentazione: TABELLE, ALBERI,
etc
PROGETTAZIONE
Utilizzando
FISICA
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 di:
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 dati specifici, ma loro
proprietà e/o relazioni)

Esprimibile tramite 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
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.
ATTRIBUTO
VALORE (o CAMPO)
RECORD
risultato_esame(IDUL,4/2/2010,112233,29)
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
VALORI CHIAVE MULTIPLI
A volte la chiave è definita da più campi insieme.
VALORI CHIAVE ARTIFICIALI
RISULTATO_ESAME
Tipicamente, numeri consecutivi, uno per record
VALORI NULLI
PERSONAGGI BIBLICI
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 in un DB)
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
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)
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.INSERT
INTO film VALUES (5, ‘Il sesto senso’, 1999, 107, ‘USA’);
2.INSERT INTO film(codice, titolo, anno) VALUES (5, ‘Il sesto senso’, 1999);
3.UPDATE film SET durata = 130 WHERE titolo = ‘Il senso senso’;
4.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
Clausole
FROM
di interrogazione: SELECT
piu’ usate:
(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.Creare
le tabelle usando ‘Create Table in Design
View’
2.Salvare
3.Cambiare a Datasheet view per inserire i dati
4.Continuare a creare altre tabelle
5.Linkare le tabelle
1. TABLE DESIGN VIEW
1. TABLE DESIGN VIEW
2. DATASHEET VIEW
LETTURE
Tomasi,
capitolo 3
Wikipedia:
http://it.wikipedia.org/wiki/Database
http://it.wikipedia.org/wiki/Modello_relazionale
ACCESS:
http://office.microsoft.com/