Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanabon & Jeremy Sproston _Torino
2 Le basi di dati
Scopo
• Gestione dell’informazione
• Informazione: difficile da definire ma a tutti è
chiara l’importanza della sua gestione in diversi
tipi di attività
• Esempi: aziende, banche, anagrafi, università,
compagnie aeree, ...
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
3 Le basi di dati
Sistema informativo
• Insieme delle risorse di un’organizzazione
dedicate alla gestione dell’informazione
• Gestione: acquisizione, elaborazione,
conservazione, produzione
• Il concetto di sistema informativo esiste da
secoli (es.: anagrafi)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
4 Le basi di dati
Sistema informatico
• Parte del sistema informativo che gestisce
l’informazione automaticamente (calcolatori,
reti, software, ...)
tivo
a
f o rm
a in
t em Sistema
Sis informatico
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
5 Le basi di dati
Dati e informazione
• Dati: stringhe di caratteri, numeri, immagini,
suoni, ...
• Informazione: veicolata dai dati
opportunamente interpretati
• Esempio:
“Paolo”, “Rossi”, 1100 dati
nome, cognome del direttore, stipendio
interpretazione
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Informazione e dati
Rappresentazione dell’informazione:
Basata su codifica (interpretata da
programma)
Dati = elementi di informazione, che di
per sé non hanno interpretazione
Mario Rossi Æ nome e cognome
2334455 Æ numero matricola
6
6 Le basi di dati
L’informazione nei
sistemi informatici
Sistema informatico
Informazione Informazione
DATI
Rappresentazione Interpretazione
7
7 Le basi di dati
• Problemi: inconsistenza
ridondanza
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
8 Le basi di dati
Soluzione ottimale
• Unica risorsa dati accessibile a più programmi
Prog1
Prog2
Prog3
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
9 Le basi di dati
DBMS
Data Base Management System
• Sistemi software per la gestione di collezioni di
dati che siano: grandi, condivise, persistenti
assicurando: affidabilità e privatezza
• I DBMS devono essere: efficenti e efficaci
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Caratteristiche dei DB e DBMS
Persistenza = dati sempre disponibili, non
“vivono” dentro una sola applicazione
Affidabilità = protezione dei dati, in caso di
guasto HW o SW capacità di ripristinare i dati
(almeno parzialmente)
Privatezza = abilitazioni diverse a seconda
dell’utente
Efficienza = tempi di risposta e occupazione
spazio accettabili (dipende molto dalla tecnica di
memorizzazione dei dati)
Efficacia = facilitare l’attività di organizzazione
12
10 Le basi di dati
Schema logico
Schema fisico
DATI
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
12 Le basi di dati
30
Progetto di un DB: Schema di una relazione
24
Schema e istanza di un DB
Schema = insieme degli schemi delle
relazioni (struttura)
Istanza (o stato) = valori dei dati
nelle tabelle (righe)
25
13 Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
14 Le basi di dati
I diagrammi E-R
• Entità: classi di oggetti rilevanti ENTITA’
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
15 Le basi di dati
data voto
matricola nome
nome STUDENTE ESAME MATERIA
cognome titolare
commissione
(se è unica!!)
codice fiscale
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
16 Le basi di dati
Identificatori
• Gruppi di attributi che identificano
univocamente le occorrenze di un’entità
identificatore identificatore
singolo multiplo
data voto
matricola nome
nome STUDENTE ESAME MATERIA
cognome titolare
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
17 Le basi di dati
N N
STUDENTE ESAME MATERIA
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
18 Le basi di dati
1 N
STUDENTE ISCR CdL
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
19 Le basi di dati
1 1
DIRETTORE DIRIGE DIPART
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
20 Le basi di dati
Il modello relazionale
• I dati vengono strutturati in tabelle
Tabella: STUDENTI(matr, nome, cognome)
STUDENTI
Campi: colonne della tabella
matr nome cognome
305011 Carlo Rossi
356433 Mario Verdi
345553 Franco Verdi Record: righe della tabella
345434 Daniele Rossi
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
21 Le basi di dati
Schema e istanze
STUDENTE(Matricola, Cognome, Nome, Data di Nascita),
CORSO(Codice, Titolo, Docente),
ESAME(Studente, Voto, Corso) Schema
STUDENTE ESAME
Matricola Cognome Nome Data di Nascita Studente Voto Corso
6554 Rossi Mario 5/12/1978 3456 30 04
8765 Neri Paolo 3/11/1976 3456 24 02
9283 Verdi Luisa 12/11/1979 9283 28 01
3456 Rossi Maria 1/2/1978 6554 26 01
MATERIA
Codice Titolo Docente
01 Analisi Neri
02 Chimica Bruni
04 Chimica Verdi
Istanza
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
22 Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
23 Le basi di dati
Vincoli di integrità
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
24 Le basi di dati
Esempi di vincoli
Studenti Matricola Cognome Nome Nascita
276545 Rossi Maria 23/04/1968 Vincolo su
276545 Neri Anna 23/04/1972 tabella
788854 Verdi Fabio 12/02/1972
Vincolo su
Esami Studente Voto Lode Corso record
Con tabella 276545 28 e lode 01
Studenti 276545 32 02
788854 23 03 Vincolo su
e lode campo
200768 30 03
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
25 Le basi di dati
Chiave
• Insieme minimale di attributi che identifica
univocamente i record di una tabella
Matr Nome Cognome STUDENTE
301 Carlo Rossi
302 Marco Neri
311 Guido Mauro
ESAME
Matricola Cognome Nome Esame Data Voto
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
26 Le basi di dati
Chiave esterna e
integrità referenziale
• Attributo/i che costituiscono la chiave di
un’altra tabella
Studenti Matricola Cognome Nome Nascita
276545 Rossi Maria 23/04/1968
276543 Neri Anna 23/04/1972
Vincolo di 788854 Verdi Fabio 12/02/1972
integrità
referenziale Esami Studente Voto Lode Corso
276545 28 Fisica
276545 18 Analisi
788854 23 Analisi
788854 30 e lode Algebra
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
27 Le basi di dati
cognome
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
28 Le basi di dati
cognome
cognome
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Pagina 1 di 1
studente
PK matricola
U2 ID_studente
U1 codice fiscale
I2 nome
I1 cognome
genere
indirizzo
NOTA città residenza
CAP
u: R e d: R
data nascita
indicano che non c'è effetto sui dati della tabella
"figlio" quando quelli della tabella "padre" luogo nascita
vengono aggiornati (u: update) oppure cancellati facoltà
(d: delete). Tutore didattico
Questa scelta può ovviamente essere cambiata
imponendo la propagazione dell'aggiornamento
dei record.
u:R
d:R
contatto
PK ID_contatto
materia
PK,FK1,I1 matricola
PK codice_materia
tipo_contatto
I1 ID_materia dato_contatto
denominazione
N_crediti
u:R
d:R
esame
PK,FK1,I1,I2 codice_materia
u:R
d:R PK,FK2,I3 matricola
data
domande
voto
lode
ALTRA POSSIBILE FORMA DELLO STESSO DIAGRAMMA ENTITA'-RELAZIONE
u:R
1..*
d:R
contatto
PK ID_contatto
materia
PK codice_materia tipo_contatto
dato_contatto
I1 ID_materia FK1,I1 matricola
denominazione
N_crediti
u:R
1..*
d:R
esame
PK,FK1,I1,I2 codice_materia
u:R
d:R PK,FK2,I3 matricola
1..*
data
domande
voto
lode
Ora, dopo aver controllato accuratamente il DER, si può passare alla realizzazione fisica, usando Access 2003
Le
Maschere
(in Access)
Sono utilizzate
• per presentare in modo
più attraente
• per visualizzare e
modificare i dati
• per aggiungere record
Possono essere
• a colonne
• tabellari
• foglio dati
Visualizzazione
Struttura
Le Maschere ….
La creazione delle maschere può essere
facilitata dalla Autocomposizione Maschera
scegliendo le opzioni che vengono via via
offerte:
• Tabelle o query
• Campi da introdurre
• Aspetto: colonne, tabellare, foglio dati
• Stile, con scelta sfondi e combinazioni
di colori
1
Il Report
Permette di avere un controllo molto più preciso per l’output
finale
Tipologie di Report
•Report a colonne
I nomi dei campi sono listati sul lato
sinistro mentre i il valore del campo è
listato a destra
•Report tabellare
I nomi dei campi sono listati affiancati in
alto mentre i valori dei campi sono
collocati sotto di essi
2
Creare un Report
La creazione di un report può essere facilitata
dalla Autocomposizione Report scegliendo tra
le opzioni che vengono via via offerte:
• Selezionare la Tabella
o la Query
• Raggruppare i dati
• Ordinare i dati
• Selezionare l’aspetto
• Scegliere lo stile e la
veste grafica
3
30 Le basi di dati
Query (interrogazioni)
• Query: estrazione da un data base di
informazioni che soddisfa certe proprietà
• Come esprimere le query:
SQL: Structured Query Language
QBE: Query by Example di Access
Algebra relazionale: un linguaggio formale
...
• In comune hanno un insieme di operatori
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
31 Le basi di dati
Operatori su tabelle
• Operatori insiemistici:
unione
intersezione binari
differenza
• Operatori relazionali:
proiezione
unari
selezione
join (naturale) binario
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
32 Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
33 Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
34 Le basi di dati
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
37 Le basi di dati
Operatori relazionali:
prodotto cartesiano
• Il prodotto di due tabelle produce una tabella
con l’unione degli attributi contenente le
concatenazioni dei record
STUDENTI Cognome Corso Nome Materia CdL
Rossi Fisica Fisica Meccanica
Bianchi Fisica Matematica Algebra
STUDENTI × CdL
Tutte le possibili Cognome Corso Nome Materia
concatenazioni Rossi Fisica Fisica Meccanica
tra record Rossi Fisica Matematica Algebra
Bianchi Fisica Fisica Meccanica
Bianchi Fisica Matematica Algebra
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
38 Le basi di dati
Esercitazione
• Consideriamo la seguente basi di dati per
l’archiviazione di noleggi di CD
CLIENTE NOLEGGIO
Cognome Nome ID-Cliente ID-Cliente ID-CD data
Rossi Paolo 10 10 1 23/7/2002
Bianchi Maria 11 9 1 11/9/2002
Verdi Carlo 9 11 3 15/2/2003
10 2 30/3/2003
CD
ID -C D T itolo A rtista
1 Up REM
CLIENTE(Cognome, Nome, ID-Cliente)
2 O cto ber U2 CD(ID-CD, Titlo, Artista)
3 S yncronicity P olice NOLEGGIO(ID-Cliente, ID-CD, data)
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
40 Le basi di dati
Esempi di query
• Eseguire le seguenti query:
a) Artista e titolo dei cd noleggiati dal signor
Paolo Rossi;
b) Nome e cognome dei clienti che hanno
noleggiato cd dei REM;
c) Titolo dei cd che sono stati noleggiati dal
cliente avente codice 10 oppure dal cliente
avente codice 11.
Gruppo di lavoro Alberti, Boldi, Gaito, Grossi, Malchiodi, Mereghetti, Morpurgo, Rosti, Palano, Zanaboni
Casi “semplici” di realizzazione di
DB biotecnologici
plasmid
pSYSA
chromosome
plasmid
pSYSX
Basic concepts: Homology
Homology: two genes are homologous if they
share a common ancestor.
homologous homologous
genes genes
Basic concepts: Homology (II)
Paralogous genes are two (or more) genes homologous in the same
organisms.
Orthologous genes are homologous genes belong to different
organisms.
paralogous
genes
organism1
organism2
orthologous
genes
Basic concepts: gene family
gene_id genome_id gene_category gene_product
replicons R1 R2 R3 R4 R5 Rp-1 Rp
Family1 Family2
Category
Attributes
– Replicon:
• id, genome_id, description, sequence
– Genes:
• id, replicon_id, start_pos, end_pos, gene_synonym,
orientation, product, name, gi, category
Conceptual model
Category
2
:
N
Genome
1..N
Replicon
1..N
Gene
N..N Gene
Family
1
:
N
BLAST Hits
Tables and relationships
gene_family_tbl family_tbl
converters of
data
Structured
DBMS DBMS DBMS
files FASTA
2 - Biological Databases
for Protein Sequence Analysis
Terri Attwood
School of Biological Sciences
University of Manchester, Oxford Road
Manchester M13 9PT, UK
http://www.bioinf.man.ac.uk/dbbrowser/
Tipi principali di errore nelle banche dati:
Sequence
Motif
Exact regex
(PROSITE) Full domain
alignment methods
Profiles
(PROFILE LIBRARY)
HMMs
(Pfam)
Identity matrices
(PRINTS)
The tetratricopeptide motif repeat (TPR) was first identified in the cell cycle division
proteins cdc16, cdc23, and cdc27 as a degenerate tandem repeat of 34 amino acid
residues encoding an a-helix-turn-a-helix motif (14).
Mutations within the TPR motifs of these proteins cause mitotic arrest at the metaphase-
to-anaphase transition. TPRs have now been identified in a wide diversity of organisms,
ranging from bacteria to humans.
In TPR-containing proteins, this repeat motif is often present in tandem arrays of 3–16
motifs, although individual TPR motifs or blocks of TPR motifs may be dispersed
throughout the protein sequence.
Da questo sito lo studente può anche ricavare dati per riempire il proprio
database e fare esercizio con proprie query e report personali
Diagramma ER per
il DB PRINTS-S
This diagram depicts the fingerprint data modelled using three entities: FINGERPRINT, MOTIF and SEQUENCE
(rectangular boxes). Each entity has a relationship with another, as represented by a solid connecting arrow. A single arrow-
head denotes a single relationship and a double arrow-head denotes a many relationship: e.g., one fingerprint has many
motifs, however, one motif is associated with one, and only one, fingerprint. The many-to-many relationship between entities
fingerprint and sequence is special, as highlighted by means of a diamond. The diamond represents a relationship with a
property and, in this case, it represents sequence assignment. Sequences are assigned an attribute dependent on their
relationship with the fingerprint: i.e., they may be true-positive (true positive), true-positive partial (true partial) or false-
positive partial (false partial). The dotted arrow represents a recursive property relation, since one fingerprint can be related
to another. Ellipses denote specific entity attributes.
Diagramma ER di “avvio” in Access 2003
Queste tabelle
realizzano una
possibile forma
del database
con le relative
cardinalità. Lo
studente è
invitato a
studiare anche
altre soluzioni.
Il file di
riferimento che
ho preparato
per il nostro
corso è:
PRINTS-S.mdb
Esempi di riempimento delle tabelle
1
PRINTS-S Schema
PRINTS-S Schema
The following tables provide a more detailed description of the attributes in each entity:
Table = fingerprint
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| identifier | varchar() | 15 |
| motifs | int2 | 2 |
| date | date | 4 |
| up_date | date | 4 |
| family_title | text | var |
| family_doc | varchar() | 18 |
| category | text | var |
| second_accn | varchar() | 15 |
| pseudo | bool | 1 |
+----------------------------------+----------------------------------+-------+
Table = motif
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 18 |
| motif | int2 | 2 |
| repeat | varchar() | 4 |
| seqn_accn | varchar() | 15 |
| seqn_fragment | varchar() | 35 |
| start_position | int4 | 4 |
| inter_motif_dist | int4 | 4 |
| initial | bool | 1 |
| final | bool | 1 |
+----------------------------------+----------------------------------+-------+
Table = inter_motif
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| motif_a | int2 | 2 |
| motif_b | int2 | 2 |
| minimum | int4 | 4 |
| maximum | int4 | 4 |
+----------------------------------+----------------------------------+-------+
Table = seqn
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| seqn_accn | varchar() | 15 |
| seqn_id | varchar() | 15 |
| seqn_title | text | var |
+----------------------------------+----------------------------------+-------+
Table = seqn_detection
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| seqn_accn | varchar() | 15 |
| repeats | int4 | 4 |
| detection | char() | 1 |
| automatic | bool | 1 |
+----------------------------------+----------------------------------+-------+
Table = history
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| dbase_version | varchar() | 15 |
| convergence | int2 | 2 |
| hit_list_length | int2 | 2 |
| scan_method | varchar() | 12 |
+----------------------------------+----------------------------------+-------+
Table = dbase_xrefn
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| dbase_name | varchar() | 15 |
| dbase_accn | varchar() | 15 |
| dbase_id | varchar() | 30 |
+----------------------------------+----------------------------------+-------+
Table = true_partial
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| seqn_accn | varchar() | 15 |
| matches | int2 | 2 |
| motif_diagram | varchar() | 15 |
| automatic | bool | 1 |
+----------------------------------+----------------------------------+-------+
Table = false_partial
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_accn | varchar() | 15 |
| seqn_accn | varchar() | 15 |
+----------------------------------+----------------------------------+-------+
Table = relation
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_one | varchar() | 15 |
| relationship | text | var |
| fprint_two | varchar() | 15 |
+----------------------------------+----------------------------------+-------+
Table = ancestry
+----------------------------------+----------------------------------+-------+
| Field | Type | Length|
+----------------------------------+----------------------------------+-------+
| fprint_id | varchar() | 15 |
| ancestors | text | var |
+----------------------------------+----------------------------------+-------+