BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not...

18
BIOINFO3 - Lezione 08 1 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255), sequenza text ); insert into est values(‘’,’BU275994’,’ Cr_Emb_01B02_TEXF1’,’’,’ GGGGAATAATGCTC’);

Transcript of BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not...

Page 1: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 11

create table est(

gi int unsigned primary key auto_increment,

acc char(8)not null,

nome varchar(20),

descrizione varchar(255),

sequenza text

);

insert into est values(‘’,’BU275994’,’ Cr_Emb_01B02_TEXF1’,’’,’ GGGGAATAATGCTC’);

Page 2: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 22

QUERYQUERY

Ci interessano tutti i nomi degli enzimi ordinati alfabeticamente

Vogliamo vedere i nomi degli enzimi, ordinati per lunghezza del nome e, a parità di lunghezza, alfabeticamente

Page 3: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 33

QUERYQUERY

Vorremmo vedere tutti i nomi degli enzimi e la corrispondente lunghezza della sequenza, ordinati per lunghezza decrescente e, a parità di lunghezza, in ordine alfabetico

Page 4: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 44

QUERYQUERY

Ci interessa sapere il numero degli enzimi che tagliano in posizione 1

Page 5: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 55

QUERYQUERY

Ci interessa sapere il nome e la posizione di taglio degli enzimi che tagliano fuori della sequenza

Page 6: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 66

QUERYQUERY

Come si chiama l’enzima che riconosce la sequenza GGATCC

Ci interessano i nomi e le sequenze riconosciute degli enzimi che riconoscono sequenze contenenti basi indefinite, ordinati alfabeticamente secondo il nome

Page 7: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 77

BACKUPBACKUP

Per sicurezza, vogliamo effettuare un dump del database

Page 8: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 88

Tabella “orfconsensus”

Tabella “orfannotation”

Page 9: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 99

Vogliamo selezionare il campo name dalla tabella “orfconsensus” e il campo description dalla tabella “orfannotation” relativo ai geni sul chromosoma 1 che vanno dalla base 100 alla base 5000

select orfconsensus.name, orfannotation.description, orfconsensus.chromStart, orfconsensus.chromEndfrom orfconsensus,orfannotation where orfconsensus.chromStart>=100 and orfconsensus.chromEnd<=5000 and orfconsensus.name=orfannotation.name and orfconsensus.chrom='chr1';

Page 10: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1010

Vogliamo selezionare il campo name, chromStat, chromEnd dalla tabella “orfconsensus” e il campo description dalla tabella “orfannotation” relativo ai primi 10 geni sul chromosoma 1 che hanno una descrizione che contiene la parola “transporter”, ordinati per posizione sul cromosoma.

select orfconsensus.name, orfannotation.description, orfconsensus.chromStart, orfconsensus.chromEnd from orfconsensus,orfannotationwhere orfannotation.description like '% transporter %' and orfconsensus.name=orfannotation.name and orfconsensus.chrom='chr1' order by orfconsensus.chromStart limit 10;

Page 11: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1111

REQUISITI UTENTEREQUISITI UTENTE

Parallelamente (ma spesso è la prima cosa da fare!) bisogna pensare allo schema esterno, cioè al progetto di una interfaccia che permetta agli utenti finali di interagire (tipicamente attraverso INTERNET) in modo intuitivo e semplice (non di certo attraverso SQL!) con il database e la tabella enzimir in particolare.

E’ importante che siano chiare quali saranno le esigenze degli utenti (REQUISITI UTENTE)

Nel nostro esempio, tipicamente un utente vorrà poter visualizzare i record del database impostando dei criteri di ricerca. Si potrebbe poi decidere che gli utenti possano anche cancellare o modificare i record oppure inserirne di nuovi

Page 12: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1212

SCHEMA ESTERNOSCHEMA ESTERNO

Query

Inserimento

Inserimento da file

ENZIMI RENZIMI R. nome

sequenza

posiz. sito

RICERCA

nome

sequenza

posiz. sito

INSERISCI

nome

sequenza

posiz. sito

MODIFICA

nome

sequenza

posiz. sito

CANCELLA

file

INSERISCI

TROVA

nome sequenza posiz. sito

Form per l’inserimento di un record

Form per l’inserimento di un file di

record

Form per la modifica di un record

Form per la cancellazione di un record

Pagina WEB

iniziale (MENU)

Form di ricerca

Tabella con i record selezionati

Page 13: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1313

SCHEMA ESTERNOSCHEMA ESTERNO•Pagina WEB iniziale (MENU)Funziona da menu, cioè permette all’utente di scegliere quale operazione eseguire tra quelle disponibili

•Form di ricerca

Permette di inserire in alcune caselle di input, corrispondenti ai vari campi, i valori richiesti per i record da visualizzare (o di selezionare i valori da un insieme già predisposto)

•Tabella con i record selezionati

Elenca, sotto forma tabellare, i record selezionati dalla query

•Form per la modifica di un record

Permette di modificare un record selezionato, sostituendo direttamente il valore dei campi

•Form per la cancellazione di un record

Permette di cancellare un record selezionato

•Form per l’inserimento di un record

Permette di inserire un record, digitando direttamente i valori dei campi nelle corrispondenti caselle

•Form per l’inserimento di un file di record

Permette di inserire più record, leggendoli da un file, il cui nome è inserito in una casella di input

Page 14: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1414

ESERCIZIO SQLESERCIZIO SQL

Supponiamo che esista una tabella di sequenze EST creata con il seguente comando

create table est(

gi int unsigned primary key,

acc char(8),

nome varchar(20),

descrizione varchar(255),

sequenza text

)

Page 15: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1515

ESERCIZI SQLESERCIZI SQL

Selezionare tutti i nomi delle est in ordine alfabetico

select nome from est order by nome

Selezionare le sequenze delle est che non contengono nucleotidi indefiniti (N)

select sequenza from est

where not (sequenza like ‘%N%’)

OPPURE

select sequenza from est where sequenza not like ‘%N%’

Selezionare tutte le sequenze est e la loro lunghezza ordinate per lunghezza crescente

select sequenza,length(sequenza) from est

order by length(sequenza)

Page 16: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1616

ESERCIZI SQLESERCIZI SQL

Selezionare gi e sequenza delle est che non contengono N e sono di lunghezza superiore a 200 basi, ordinate per gi

select gi, sequenza from est

where sequenza not like ‘%N%’

and length(sequenza)>200

order by gi

Page 17: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1717

LE PROSSIME LEZIONILE PROSSIME LEZIONI

Nelle prossime lezioni impareremo a progettare delle pagine web contenenti delle form in grado di ricevere degli input dall’utente

Impareremo successivamente anche a scrivere dei semplici programmi per interpretare gli input ricevuti, interagire con il database e restituire all’utente delle pagine web con i risultati opportunamente formattate

Page 18: BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),

BIOINFO3 - Lezione 08 1818

RIEPILOGORIEPILOGO

•Progettazione di un database di enzimi di restrizione (creazione di un modello informatico di un aspetto ben preciso e limitato del mondo reale)

•Analisi

•Schema concettuale

•Schema logico

•Implementazione

•Schema esterno

•Query a volontà...