IDUL 2010 BASI DI DATI. USO DI STRUMENTI INFORMATICI PER LA GESTIONE DI INFORMAZIONI Forse la piu...

Preview:

Citation preview

IDUL 2010

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 7Sex MFloruit E/L IXDates 813 (n.) / 886 (ob.)PmbZ No. 832Variant Names BasileiosEthnicity Macedonian;ArmenianLocations: 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 FarmerTitles 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 Progetto dello SCHEMA

MODELLAZIONE LOGICA 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

RISULTATI_ESAMI

MatricolaMateriaDataVoto

STUDENTE

MatricolaCognome, NomeData di Nascita

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)

Diagramma Entità-Relazione (Chen 1970)

Entità

Relazioni tra entità

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

Materia Data Matr. Voto Lode?

IDUL 4/2/10 112233 29 no

IUC 4/2/10 114422 30 si

RECORD

ATTRIBUTO

risultato_esame(IDUL,4/2/2010,112233,29)

VALORE (o CAMPO)SCHEMA della RELAZ.

UN ALTRO ESEMPIO

MATRICOLA COGNOME NOME DATA NASCITA

….

112233 Rossi Mario 11/11/1973

….

STUDENTE

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

MATRICOLA COGNOME NOME DATA NASCITA

….

112233 Rossi Mario 11/11/1973

….

STUDENTE

VALORI CHIAVE MULTIPLI

NOME COGNOME ESAME APPROVATO?

Carlo Rossi IUB si

Mario Rossi IUB no

Carlo Bianchi IUC si

A volte la chiave è definita da più campi insieme.

VALORI CHIAVE ARTIFICIALI

ID MATERIA DATA MATRICOLA VOTO

1 ….

2 IUB 4/2/2008 112233 29

3 ….

RISULTATO_ESAME

Tipicamente, numeri consecutivi, uno per record

VALORI NULLI

NOME Età PADRE

Matusalemme 968 Enoch

Eva NULL NULL

….

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

ID MATERIA DATA MATRICOLA VOTO

….

456789 IUB 4/2/2008 112233 29

….

MATRICOLA COGNOME NOME DATA NASCITA

….

112233 Rossi Mario 11/11/1973

….

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_nascitaFROM personaWHERE nazione = ‘Italia’;

CREARE UNA TABELLE CON SQL

CREATE TABLE persona (Codice integer PRIMARY KEY,

Titolo varchar(50), NOT NULL,

Anno varchar(4),

Durata integer,

Nazionevarchar(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 di interrogazione: SELECT Clausole piu’ usate:

FROM (specifica la tabella) WHERE (specifica restrizioni)

INTERROGAZIONESELECT Materia, Data, Matricola

FROM Esami;

SQL: ESEMPIO DI USO DI ATTRIBUTI

SELECT Nome, CognomeFROM StudentiWHERE 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.CognomeFROM Studenti INNER JOIN Esami ON Studenti.Matricola=Esami.MatricolaWHERE 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/

Recommended