ESEMPIO DI PROGETTAZIONE DI UN DB
Nella lezione di oggi vedremo un semplice esempio di
progettazione e implementazione di un database MySQL.
Ricapitoliamo le fasi che tipicamente conducono dal mondo reale al suo
modello informatico, supponendo di utilizzare come modello un database SQL
Analisi di un particolare
aspetto del mondo reale
BIOINFO3 - Lezione 07
Schema concettuale
Schema logico
(entità e relazioni)
(tabelle)
1
COSA VOGLIAMO GESTIRE?
Supponiamo di voler creare e gestire un DB (molto semplice e
ridotto al minimo) di ENZIMI DI RESTRIZIONE.
Gli enzimi di restrizione stanno alla base della
tecnologia del DNA-ricombinante.
Enzimi di tipi I e II: riconoscono una sequenza e
tagliano lontano dal sito di riconoscimento.
Enzimi di tipo II: tagliano all`interno del sito di
riconoscimento.
Supponiamo però che questa risorsa (REBASE) non esista e a noi serva
assolutamente sviluppare un database di questo aspetto (ENZIMI DI
RESTRIZIONE DI TIPO II) del mondo reale
BIOINFO3 - Lezione 07
2
ANALISI (SCHEMA CONCETTUALE)
Cerchiamo di capire quali entità
dobbiamo
considerare
e
come
eventualmente esse siano in relazione tra
loro
Ovviamente una entità è sicuramente quella degli ENZIMI stessi (ad esempio
chiamiamola enzimir)
enzimir
Una soluzione più complessa potrebbe considerare anche i produttori degli
enzimi, associando ogni enzima a tutti i suoi produttori (è una relazione
molti:molti tipicamente rappresentata in una tabella intermedia tra le due, in
quanto ogni enzima può avere più produttori ed ogni produttore più enzimi)
BIOINFO3 - Lezione 07
3
CONSIDERAZIONI
In REBASE il problema di associare ogni enzima a tutti i suoi
produttori è stato risolto in modo poco formale e non molto
flessibile (ma pratico!).
E’ stato associato un codice di una lettera a ciascun produttore e
sono state inserite in un campo “vendor” le lettere corrispondenti
a tutti i produttori che vendono l’enzima memorizzato in quel
record
(es. acefghijkmnoqrsuvx  enzima venduto da a, da c, da e,….)
In questo esempio però non vogliamo gestire il problema dei
produttori perciò consideriamo come entità da gestire solo quella
degli enzimi!
BIOINFO3 - Lezione 07
4
ANALISI (SCHEMA LOGICO)
Quali attributi (che poi diventeranno i campi di una tabella)
riusciamo ad individuare per gli enzimi di restrizione?
Innanzitutto il nome (che potrebbe fungere da
chiave!). Di solito è una stringa di caratteri di
lunghezza variabile (ma meno di 20)
Ovviamente poi ci interessa sapere la
sequenza
specifica
riconosciuta
dall’enzima (piccola stringa caratteri )
E’ essenziale sapere anche in quale posizione avviene il taglio.
Essa potrà essere rappresentata da un piccolo numero intero con
segno. (EcoRI, nella figura, taglia in posizione 1)
BIOINFO3 - Lezione 07
5
IL MODELLO DEI DATI
Ricapitolando:
L’analisi effettuata ci ha permesso di costruire uno schema
concettuale dei dati semplicissimo, formato da una sola entità,
con il seguente schema logico. Allo schema fisico ci pensa SQL!
DB ? (bisognerebbe anche scegliere un nome per il DB!)
Tabella (Entità):
enzimir
Campi (Attributi) della tabella:
nome di tipo varchar(20) (chiave)
sequenza di tipo varchar (50)
sitotaglio di tipo tinyint
BIOINFO3 - Lezione 07
6
TRADUZIONE IN SQL
Lo schema logico è immediatamente traducibile in un comando
create di MySQL che scriviamo per comodità dentro ad un file
(chiamato ad esempio enzimir.mysql).
BIOINFO3 - Lezione 07
7
CREAZIONE EFFETTIVA DELLA TABELLA
A questo punto si deve decidere in che database inserire la nostra
tabella.
Una volta disponibile un DB si può finalmente chiedere al client
mysql di UNIX di leggere il nostro file di comandi enzimir.mysql
per creare effettivamente la tabella enzimir all’interno del DB
Come?
BIOINFO3 - Lezione 07
8
VERIFICA
A questo punto desideriamo controllare che la tabella sia stata
realmente creata e vorremmo verificare l’esattezza dei campi.
Che comando usiamo?
BIOINFO3 - Lezione 07
9
INSERIMENTO DATI
Vogliamo inserire manualmente il record per EcoRI.
BIOINFO3 - Lezione 07
10
INSERIMENTO DATI
Vogliamo ora inserire altri enzimi, ma questa volta da file.
Creiamo un file (ad esempio insertenzimi.mysql) con un editor e
poi lo passiamo al client mysql
BIOINFO3 - Lezione 07
11
VISUALIZZAZIONE DEI DATI
Vorremmo vedere tutta la tabella ordinata per nome dell’enzima
Ci accorgiamo che abbiamo sbagliato il sito di taglio per
l’enzima AcrI! Modificarlo da 1 a -1
BIOINFO3 - Lezione 07
12
VISUALIZZAZIONE DEI DATI
Vorremmo vedere ora le sequenze ordinate per lunghezza ed, a
parità di lunghezza, per ordine alfabetico
Questo non ve l’ho detto però provateci lo stesso. Ci interessa
sapere la lunghezza media delle sequenze degli enzimi!
BIOINFO3 - Lezione 07
13
QUERY
... e la lunghezza massima e minima delle sequenze riconosciute?
BIOINFO3 - Lezione 07
14
Scarica

bioinfo3