uma breve introdução a bases de dados -...

58
Uma breve introdução a Bases de dados

Upload: buidung

Post on 13-May-2018

218 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Uma breve introdução a Bases de dados

Page 2: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

● Uma base de dados é só informação organizada de forma a facilitar a sua consulta.

● Todos vocês já tiveram algum contacto com bases de dados.

● Se trabalharem numa área em que há uma grande quantidade de dados vão ter que usar bases de dados.

Page 3: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

Page 4: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

Page 5: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

Page 6: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

Page 7: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

● Hoje em dia o nome base de dados é associado a database management system (DBMS).

● Os DBMS são aplicações que definem como os dados são armazenados e acedidos.

Page 8: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelos de bases de dados

● Existem vários modelos para bases de dados.

Page 9: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelos de bases de dados

● Existem vários modelos para bases de dados.

● Mas quase todas usam o modelo relacional.

● Excepções: NoSQL e NewSQL.

Page 10: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● Inventado nos anos 70 por Edgar Codd na IBM.

● Aperfeiçoado pela pequena (na altura) companhia de Larry Ellison, actualmente chamada Oracle Corp.

● Hoje em dia o modelo relacional tão comum que muitos que trabalham com bases de dados não sabem que outros modelos existem.

Page 11: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

“Future users of large data banks must be protected from having to know how the data is organized in the machine (the internal representation).”

● Antes do modelo relacional era necessário conhecer organização da base de dados para extrair informação.

● O modelo relacional resolveu este problema através da separação da estrutura das base de dados da informação contida nelas.

Page 12: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● O básico:– A informação esta organizada em tabelas.

– É possível definir relações entre as tabelas utilizando os valores de uma coluna como referencia para outra.

Page 13: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Tabela

Page 14: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Tabela

Id username email

1 José Pedro [email protected]

2 Matthias [email protected]

3 Ravi [email protected]

4 Miguel [email protected]

5 Pedro.P [email protected]

Page 15: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Tabela

● Linha – uma entrada na tabela.

Id username email

1 José Pedro [email protected]

2 Matthias [email protected]

3 Ravi [email protected]

4 Miguel [email protected]

5 Pedro.P [email protected]

Page 16: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Tabela

● Colunas – pedaços de informação presentes em todas as entradas.

Id username email

1 José Pedro [email protected]

2 Matthias [email protected]

3 Ravi [email protected]

4 Miguel [email protected]

5 Pedro.P [email protected]

Page 17: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Tabela

● Chave primaria – identifica unicamente uma entrada da tabela.

Id username email

1 José Pedro [email protected]

2 Matthias [email protected]

3 Ravi [email protected]

4 Miguel [email protected]

5 Pedro.P [email protected]

Page 18: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● Chave estrangeira – define uma relação com outra tabela, é a chave primaria da tabela referenciada.

Page 19: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● Chave estrangeira – define uma relação com outra tabela, é a chave primaria da tabela referenciada.

● IMPORTANTE: a integridade relacional deve ser sempre mantida.

Page 20: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● A schema é organização de todas as a tabelas e relações de uma base de dados, pode ser considerada o esqueleto da base de dados.

Page 21: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

● A schema afecta o desempenho e espaço ocupado pela base de dados.

Page 22: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

Como é que deveria ser organizada uma base de dados para manter informação relativa a genes de varias espécies ?

Page 23: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Modelo Relacional

Page 24: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Porque não utilizar excel?

Page 25: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Bases de dados

Page 26: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL

● O SQL é a linguagem utilizada para aceder a bases de dados.

● Também foi desenvolvida nos anos 70 ao mesmo tempo que o modelo relacional.

● Muito simples.

Page 27: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL

● DBMS diferentes utilizam versões de SQL ligeiramente diferentes.

● Existem varias operações SQL para criar, manipular e aceder a bases de dados.

● Todas as versões de SQL suportam os mesmos comandos principais de forma semelhante.

Page 28: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Select

● A operação utilizada para extrair informação de uma base de dados.

● Provavelmente a operação mais utilizada.

Page 29: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Select

SELECT * FROM user;

Id username email type

1 José Pedro [email protected] Post-Doc

2 Matthias [email protected] Professor

3 Ravi [email protected] Post-Doc

4 Miguel [email protected] Post-Doc

5 Pedro.P [email protected] Professor

Page 30: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Select

SELECT username, email

FROM user;

username email

José Pedro [email protected]

Matthias [email protected]

Ravi [email protected]

Miguel [email protected]

Pedro.P [email protected]

Page 31: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Select

SELECT type, COUNT(*) AS Number

FROM user

GROUP BY type;

Type Number

Post-Doc 3

Professor 2

Page 32: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – JOIN

● É utilizados para combinar dados de varias tabelas.

● Existem quatro tipos de Join.

Page 33: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – INNER JOIN

SELECT user.name, class.name

FROM user INNER JOIN class

ON user.Id=class.user_Id;

Page 34: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – INNER JOIN

Page 35: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – INNER JOIN

SELECT user.name, class.name

FROM user INNER JOIN class

ON user.Id=class.user_Id;

user.name class.name

Matthias Biologia

Matthias Genética

Pedro.P Bioinformatica

Page 36: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – LEFT JOIN

SELECT user.name, class.name

FROM user LEFT JOIN class

ON user.Id=class.user_Id;

Page 37: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – LEFT JOIN

Page 38: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – LEFT JOIN

SELECT user.name, class.name

FROM user LEFT JOIN class

ON user.Id=class.user_Id;

user.name class.name

José Pedro

Matthias Biologia

Matthias Genética

Ravi

Miguel

Pedro.P Bioinformatica

Page 39: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – RIGHT JOIN

SELECT user.name, class.name

FROM user RIGHT JOIN class

ON user.Id=class.user_Id;

Page 40: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – RIGHT JOIN

Page 41: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – RIGHT JOIN

SELECT user.name, class.name

FROM user RIGHT JOIN class

ON user.Id=class.user_Id;

user.name class.name

Matthias Biologia

Matthias Genética

Anatomia

Pedro.P Bioinformatica

Page 42: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – OUTER JOIN

SELECT user.name, class.name

FROM user OUTER JOIN class

ON user.Id=class.user_Id;

Page 43: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – OUTER JOIN

Page 44: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – OUTER JOIN

SELECT user.name, class.name

FROM user OUTER JOIN class

ON user.Id=class.user_Id;

user.name class.name

José Pedro

Matthias Biologia

Matthias Genética

Anatomia

Ravi

Miguel

Pedro.P Bioinformatica

Page 45: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Alguns exercícios

Page 46: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

Um querry para obter apenas

o entrez id e genesymbols,

com o genesymbol primeiro.

Page 47: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

SELECT genesymbol, entrez

FROM gene;

Page 48: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

Associar cada proteína ao gene codificador.

Page 49: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

SELECT * FROM gene

INNER JOIN protein

ON protein.gene_idgene=gene.idgene

Page 50: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

Contar o numero de genes em cada organismo.

Page 51: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – exercícios

SELECT species.name,

COUNT(*) AS numb FROM species

INNER JOIN gene

ON species.idspcies=gene.species_idspcies

GROUP BY species.name

Page 52: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Outros comandos importantes

● INSERT – Para acrescentar novas entradas a uma tabela.

● UPDATE – Modificar tabelas existentes.● DELETE – Apaga entradas numa tabela.● ALTER – Modifica a tabela.● DROP – Apaga uma tabela.● CREATE TABLE – Cria uma tabela.● CREATE DATABASE – Cria uma base de dados.

Page 53: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Outros comandos importantes

● Os comandos para tabelas geralmente tem uma sintaxe semelhante ao select.

● Mas tem tendência a serem mais simples uma vez que condições complexas normalmente não são usadas.

Page 54: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

SQL – Outros comandos importantes

DELETE FROM species

WHERE name='Mus musculus';

Page 55: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Porque bases de dados

● Uma expulsão de dados biológicos.

● Ajudam a estandardizar os dados.

● Facilitam a partilha de informação.

● Permitem comparar dados de vários projectos.

● A quantidade de dados só vai aumentar por isso temos que começar a organizar o que temos.

Page 56: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Quando usar uma base de dados

● Quando se esta a trabalhar com dados de vários projectos.

● Quando o projecto envolve múltiplas experiências ao longo de um grande período de tempo.

● Quando se quer compara múltiplas experiências complexas.

● Em suma quando os dados se torna demasiados para usar outra alternativa.

Page 57: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Algumas bases de dados

● KEGG - http://www.genome.jp/kegg/

● PubMed - http://www.ncbi.nlm.nih.gov/pubmed

● StemCellNet - http://stemcellnet.sysbiolab.eu/

● HomoMINT -http://mint.bio.uniroma2.it/HomoMINT/Welcome.do

Page 58: Uma breve introdução a Bases de dados - w3.ualg.ptw3.ualg.pt/~pmartel/cadeiras/biocomp/bases_de_dados.pdf · SQL – exercícios Um querry para obter apenas o entrez id e genesymbols,

Referencias

● vídeo criado por djdates.● Imagem de http://vvvnt.com/media/history-of-

databases.