idul 2012 basi di dati. uso di strumenti informatici per la gestione di informazioni forse la piu...
TRANSCRIPT
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 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 STORICIPROSOPOGRAPHY 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 praticoLo 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 discoUna base di dati permette di
Definire degli oggetti (‘concetti’) e delle relazioniInserire nuovi dati tramite una “maschera”Ritrovare questi dati anche combinandoli con altriVisualizzare/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 CONCETTUALEProgetto dello SCHEMA
MODELLAZIONE LOGICAScelta della rappresentazione: TABELLE, ALBERI, etc
PROGETTAZIONE FISICAUtilizzando 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 particolariTipicamente, questa analisi si articola attorno ad una definizione di:
gli OGGETTI che si vogliono rappresentarei loro ATTRIBUTIle 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 dati specifici, ma loro proprietà e/o relazioni)
Esprimibile tramite 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
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
RECORD
ATTRIBUTO
risultato_esame(IDUL,4/2/2010,112233,29)
VALORE (o CAMPO)SCHEMA della RELAZ.
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 univoconon deve dunque esserci un altro record con lo stesso valore per quell’attributo, anche se il valore può apparire in altri attributiTale 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 sonodistinti 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 oggettiPer 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 relazionaleRITROVARE un sottoinsieme delle righePossibilmente restringendo il ritrovamento ad un sottoinsieme delle colonneAGGIUNGERE datiDEFINIRE nuove tabelle e nuove relazioniVISUALIZZARE 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 INTERROGAZIONIIn 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,
Nazione varchar(50), DEFAULT ‘Italia’
);
CREARE UNA ASSOCIAZIONE TRA TABELLE CON SQLCREATE 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: SELECTClausole 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 concettualeRichiede 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 3Wikipedia:http://it.wikipedia.org/wiki/Databasehttp://it.wikipedia.org/wiki/Modello_relazionaleACCESS: http://office.microsoft.com/