Basi di dati - Dipartimento di Matematica e...

41
Basi di dati Alberto Policriti Dpt. of Mathematics and Informatics, University of Udine. Applied Genomics Institute 17 gennaio 2010 A. Policriti Basi di dati

Transcript of Basi di dati - Dipartimento di Matematica e...

Page 1: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Basi di dati

Alberto Policriti

Dpt. of Mathematics and Informatics, University of Udine.

Applied Genomics Institute

17 gennaio 2010

A. Policriti Basi di dati

Page 2: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Informazioni

A. Policriti Basi di dati

Page 3: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Attivita di un’organizzazione

Raccolta delle informazioni

Rappresentazione delle informazioni (dati)

Organizzazione dei dati

Conservazione dei dati

Reperimento/interrogazione dei dati

. . . per il perseguimento degli scopi dell’organizzazione

Sistema informativo

A. Policriti Basi di dati

Page 4: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Sistema informativo vs sistema informatico

http://www.gutenberg.org/

A. Policriti Basi di dati

Page 5: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Base di dati

Collezione strutturata di dati. . .

di dimensioni arbitrarie

persistente

condivisa

A. Policriti Basi di dati

Page 6: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

DBMS

DataBase Management System (Sistema di gestione di basi di dati)

strumento software (collezione di programmi)

per la creazione e manipolazione di basi di dati

di qualunque dimensione e per qualunque scopo

Esempi:

Oracle

PostgreSQL

MySQL

. . .

A. Policriti Basi di dati

Page 7: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

File + programmi

A. Policriti Basi di dati

Page 8: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

File + programmi: problemi

Ridondanza e inconsistenza dei dati

Difficolta di accesso ai dati (programmi ad hoc)

Disomogeneita dei dati

Anomalie causate da accessi concorrenti ai dati

Problemi di sicurezza/protezione dei dati

Problemi di integrita dei dati

A. Policriti Basi di dati

Page 9: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Tecnologia delle BdD

A. Policriti Basi di dati

Page 10: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Tecnologia delle BdD: vantaggi

Integrazione di tutta l’informazione

Persistenza

Accesso concorrente

Indipendenza dei dati (dalle applicazioni)

Viste parziali sui dati

Integrita dei dati

Affidabilita

Sicurezza

Efficienza

Efficacia

A. Policriti Basi di dati

Page 11: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Modello dei dati

Collezione di concetti e regole per la descrizione dei dati, dellerelazioni tra i dati e dei vincoli di consistenza sui dati.

Proprieta statiche:

oggetti di informazione, entitaproprieta degli oggetti (attributi)relazioni tra gli oggettivincoli su oggetti e relazioni

Proprieta dinamiche:

operazioni su oggetti e relazionirelazioni tra operazioni (transazioni)vincoli sull’evoluzione degli oggetti e delle relazioni

A. Policriti Basi di dati

Page 12: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Modelli dei dati

Modelli dei dati primitivi (ma vedi i “flat file”. . . )

basati sulla gestione diretta di fileOperazioni sui dati ≡ operazioni sui file

Modelli dei dati classici

Fondamento dei DBMS attualiObiettivo: indipendenza dei datiModello relazionale

Modelli dei dati semantici

Strumenti per la progettazioneModello entita-relazione (ER)

A. Policriti Basi di dati

Page 13: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Modello gerarchico

Strutture dati: segmento e albero

oggetto ↔ nodo; relazione tra oggetti ↔ arco

Rappresentazione diretta di relazioni “uno a molti”

Sequenza

BLAST Annot.

GenomaDatabase = GenomiSegmento = Genoma, padre = null,Campo = specie, . . .Campo = genere, . . .Campo = dimensione, . . .Segmento = Sequenza, padre = Genoma,Campo = accession, . . .etc. . .

Linguaggi di interrogazione “navigazionali”

Cf. XML

A. Policriti Basi di dati

Page 14: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Modello entita-relazione

Volo Cittàcod

oraatterra a

decolla da

abitantiNome Paese

temp.

A. Policriti Basi di dati

Page 15: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Il modello relazionale

Storia:

Proposto da E. Codd nel 1970Acquista popolarita negli anni OttantaAttualmente, il modello piu diffuso

Caratteristiche:

Semplicita: l’utente percepisce la base di dati come un insiemedi tabelleLe relazioni tra le tabelle sono implicitamente rappresentatedai valoriLinguaggi di manipolazione dichiarativi

specificano che risultato ottenere, non le modalita perottenere il risultato)

Prospettiva algebrica: insieme di strutture dati e operatoriProspettiva logica: SQL

A. Policriti Basi di dati

Page 16: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Schema di relazione

R(A1, . . . ,An)

Nome di relazione: R

Attributi: A1, . . . ,An

A ciascun Ai e associato un dominio.

Lo schema di una base di dati e un insieme di schemi di relazione

A. Policriti Basi di dati

Page 17: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Esempio

Genoma(organismo, dimensione)

Sequenza(accession, seq grezza, specie)

Blast(database, data, risultato, seq id)

Rappresentazione tabulare:

Genomaorganismo dimensione

Sequenzaaccession seq grezza specie

Blastdb data risultato seq id

A. Policriti Basi di dati

Page 18: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Istanza di base di dati

Genomaorganismo dimensione

Homo Sapiens 3000Arabidopsis Thaliana 100

Sequenzaaccession seq grezza specie

1234 ATGCT. . . Homo Sapiens567 GTCCGT. . . Arabidopsis890 TGGGGA. . . Homo Sapiens

Blastdb data risultato seq id

nr 12-03-05 . . . 567

A. Policriti Basi di dati

Page 19: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Relazioni e tabelle

Concetto relazionale:

relazione

attributo

grado

tupla

cardinalita

Equivalente informale:

tabella

colonna

numero di colonne

riga

numero di righe

Differenze tra tabelle e relazioni:

in una tabella le colonne e le righe sono ordinate

nelle relazioni non sussistono tali ordinamenti

in una tabella possono esistere righe ripetute

una relazione e un insieme, pertanto non ci possono esseretuple ripetute

A. Policriti Basi di dati

Page 20: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Mappe biologiche: schema

!"#$

!%&' (

)!"*#+,)-./

01,2),)

34%"+4)

054626"7

82+2))

94+4)#)

3"%*+:"

3"%*+:4

3#%#+6

3"%"+*

9*+4)))

9*+4"#)

;%"*44

36%4+4"

<4)+4#))

36%:+6

=")+47)

;24"+4

34%4+"

34%7+,

;3=>?"+4

34:+7))

8#+7))

;%@A"#)4

>=;%6)

;%@A""7:

;+-BCDEFGHCI

;+-BCDEFGHCI-!-;>;"

;B-JGKL&'C-@MFNO-555-;>;"

G P % 9 <

9C&ENMC-QROCIS

T9J;

@CKCMG.UU=-;MG/CM

%CKN-UR/VFDIS

G %&O-UCE-5KWF

P %&O-BCE&GDI

% %&EMGX-YGCZ

? BCDCEC-%&O

9 9DGO-%&O

< <CZ-%&O-YGCZ

A%&O-[)+4:

Mappa(id, specie, nome, tipo, unita, start,stop)

Marker(id, mappa, tipo, nome, start, stop)

A. Policriti Basi di dati

Page 21: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Mappe: un’istanza

Mappaid specie nome tipo unita start stop

1 F1 LG I gen cM 0 70.62 F1 LG II gen cM 0 122.43 D2 Chr IV seq bp 0 1437893

Markerid mappa tipo nome start stop

0 1 SSR PM1234 36.8 null1 1 SSR PM3245 18.4 null2 3 SSR PM334 748876 7489673 1 AFLP E5M1.3 8.3 null

A. Policriti Basi di dati

Page 22: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Vincoli d’integrita

Proprieta, associate a uno schema di base di dati, che devonoessere soddisfatte da tutte le istanze che rappresentanoinformazioni corrette della base di dati.

Si specificano insieme allo schema della base di dati

il DBMS verifica la consistenza dei dati rispetto ai vincoli

Vincoli intrarelazionali

coinvolgono una o piu tuple di una stessa relazione

Vincoli interrelazionali

coinvolgono tuple di relazioni diverse

A. Policriti Basi di dati

Page 23: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Esempio

Mappa(id, specie, nome, tipo, u, start, stop)Marker(id, mappa, tipo, nome, start, stop)

I valori di start e stop devono essere non negativi

Non ci possono essere id ripetuti

Il valore di mappa in Marker deve corrispondere a qualchemappa

I nomi dei marcatori devono essere sempre noti

. . .

A. Policriti Basi di dati

Page 24: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Chiavi

Tupla ≡ entita del mondo reale

Identificabile mediante un sottoinsieme di valori

univocisempre noti

Chiavi: sottoinsiemi minimali con tali caratteristiche

Chiave primaria: scelta dal progettista tra le chiavi candidate

A. Policriti Basi di dati

Page 25: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Esempio

Esame(matricola, corso, data, voto, lode)

Quali sono le chiavi? L’unica e {matricola, corso}Visita(data, ora, stanza, medico, paziente, referto)

Quali sono le chiavi?1 {data, ora, stanza}

A una data ora di un certo giorno ci puo essere solo una visitaper stanza

2 {data, ora,medico}A una data ora di un certo giorno un medico non puo fare piudi una visita

3 {data, ora, paziente}A una data ora di un certo giorno un paziente non puo esseresottoposto a piu visite

A. Policriti Basi di dati

Page 26: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Integrita referenziale

I valori di uno o piu attributi di una relazione devono occorrere inattributi corrispondenti di un’altra relazione (e.g., specie →organismo)

Chiave esterna

Genomaorganismo dimensione

Homo Sapiens 3000Arabidopsis T. 100

Sequenzaaccession seq grezza specie

1234 ATGCT. . . Homo Sapiens1235 GTCCGT. . . Arabidopsis T.

A. Policriti Basi di dati

Page 27: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Esempio

Corsocodice nome CFU periodo

BDD Basi di dati 5 IINF Informatica 5 IIIING Inglese 2 III

Studentematr nome

728 Glauco928 Jone

Iscrizionecorso matr

BDD 728BDD 928ING 728INF 928

A. Policriti Basi di dati

Page 28: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Notazione

R(A1,A2,A3,A4)UNI: {A2,A3}

S(B1,B2,B3,B4,B5)CE: (B3,B4)→ R(A2,A3)VNN: {B5}

La chiave primaria e sottolineata

CE: chiave esterna

VNN: vincolo di valor non nullo

UNI: vincolo d’unicita

A. Policriti Basi di dati

Page 29: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Basi di dati: raffinamento della definizione

Uno schema di base di dati e composto da

un insieme di schemi di relazione con nomi diversi

le definizioni delle chiavi primarie di ciascuno schema

un insieme di ulteriori vincoli d’integrita

Ogni istanza valida della base di dati deve soddisfare tutti i vincolid’integrita.

A. Policriti Basi di dati

Page 30: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Esercizi

1 Definire uno schema relazionale completo per rappresentarel’informazione relativa ai libri letti dai soci di una biblioteca.

2 Definire uno schema relazionale completo per rappresentarel’informazione relativa ai voli internazionali di una compagniaaerea. Ciascun volo e identificato da un codice e da una data,e decolla e atterra in determinati aeroporti (che devono esseresempre noti), che si trovano in determinate citta, di cuiinteressa sapere il numero di abitanti. Si tenga conto che:

una citta puo avere diversi aeroporti;citta di stati diversi possono avere lo stesso nome.

A. Policriti Basi di dati

Page 31: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Beh, perche non usare un foglio elettronico?

File + programmi?!

Assenza di linguaggi d’interrogazione ≡ limitate possibilita diestrarre le informazioni desiderate

Inconsistenze, assenza di condivisione e concorrenza, etc. . .

A. Policriti Basi di dati

Page 32: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Ensembl

Joint project to develop a software system which produces andmaintains automatic annotation on selected eukaryotic genomes.

Many databases, even for the same organism

All data sets in the Ensembl system are stored in relationaldatabases (MySQL)

Data can be obtained by FTP(ftp://ftp.ensembl.org/pub/)

Data can be queried directly (the database schema is public)

mysql -u anonymous -h ensembldb.ensembl.org

A. Policriti Basi di dati

Page 33: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Ensembl Home Page

A. Policriti Basi di dati

Page 34: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Protein Data Bank

PDB (http://www.rcsb.org/pdb/home/home.do) provides avariety of tools and resources for studying the structures ofbiological macromolecules and their relationships to sequence,function, and disease.

Single database (MySQL): 461 tables

The database schema is public, but the db can be queriedonly through the web interface

Complex queries through “Advanced search”

Experimental and theoretical models are kept distinct

Integrates also data from Swiss-Prot, Genbank, PubMed.

A. Policriti Basi di dati

Page 35: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Protein Data Bank Home Page

A. Policriti Basi di dati

Page 36: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

PDB Database: Reference

A. Policriti Basi di dati

Page 37: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Entrez

Entrez (http://www.ncbi.nlm.nih.gov/Entrez/) integrates

the scientific literature

DNA and protein sequence databases

3D protein structure and protein domain data

population study datasets

expression data

assemblies of complete genomes

taxonomic information

It is a retrieval system designed for searching its linked databases.

A. Policriti Basi di dati

Page 38: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

Entrez Global Query

A. Policriti Basi di dati

Page 39: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

PubMed

PubMed is a service of the U.S. National Library of Medicine thatincludes over 17 million citations from MEDLINE and other lifescience journals for biomedical articles back to the 1950s.PubMed Central is the U.S. National Institutes of Health (NIH)free digital archive of biomedical and life sciences journal literature.

One of the literature databases of Entrez

Number of records in PubMed: 17.505.726 (8/11/07, 12:40)

Search can be done by author, title, journal

Makes extensive use of XML technology

A. Policriti Basi di dati

Page 40: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

A PubMed record

A. Policriti Basi di dati

Page 41: Basi di dati - Dipartimento di Matematica e Informaticausers.dimi.uniud.it/~alberto.policriti/home/sites/default/files/... · per la creazione e manipolazione di basi di dati ...

A PubMed XML record

A. Policriti Basi di dati