Uma breve introdução a Bases de dados -...

Preview:

Citation preview

Uma breve introdução a Bases de dados

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.

Bases de dados

Bases de dados

Bases de dados

Bases de dados

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.

Modelos de bases de dados

● Existem vários modelos para bases de dados.

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.

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.

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.

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.

Tabela

Tabela

Id username email

1 José Pedro jose@gmail.com

2 Matthias mfutschik@ualg.pt

3 Ravi ravi@gamil.com

4 Miguel mgr@hotmail.com

5 Pedro.P pedrpesc@hotmail.com

Tabela

● Linha – uma entrada na tabela.

Id username email

1 José Pedro jose@gmail.com

2 Matthias mfutschik@ualg.pt

3 Ravi ravi@gamil.com

4 Miguel mgr@hotmail.com

5 Pedro.P pedrpesc@hotmail.com

Tabela

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

Id username email

1 José Pedro jose@gmail.com

2 Matthias mfutschik@ualg.pt

3 Ravi ravi@gamil.com

4 Miguel mgr@hotmail.com

5 Pedro.P pedrpesc@hotmail.com

Tabela

● Chave primaria – identifica unicamente uma entrada da tabela.

Id username email

1 José Pedro jose@gmail.com

2 Matthias mfutschik@ualg.pt

3 Ravi ravi@gamil.com

4 Miguel mgr@hotmail.com

5 Pedro.P pedrpesc@hotmail.com

Modelo Relacional

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

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.

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.

Modelo Relacional

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

Modelo Relacional

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

Modelo Relacional

Porque não utilizar excel?

Bases de dados

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.

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.

SQL – Select

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

● Provavelmente a operação mais utilizada.

SQL – Select

SELECT * FROM user;

Id username email type

1 José Pedro jose@gmail.com Post-Doc

2 Matthias mfutschik@ualg.pt Professor

3 Ravi ravi@gamil.com Post-Doc

4 Miguel mgr@hotmail.com Post-Doc

5 Pedro.P pedrpesc@hotmail.com Professor

SQL – Select

SELECT username, email

FROM user;

username email

José Pedro jose@gmail.com

Matthias mfutschik@ualg.pt

Ravi ravi@gamil.com

Miguel mgr@hotmail.com

Pedro.P pedrpesc@hotmail.com

SQL – Select

SELECT type, COUNT(*) AS Number

FROM user

GROUP BY type;

Type Number

Post-Doc 3

Professor 2

SQL – JOIN

● É utilizados para combinar dados de varias tabelas.

● Existem quatro tipos de Join.

SQL – INNER JOIN

SELECT user.name, class.name

FROM user INNER JOIN class

ON user.Id=class.user_Id;

SQL – INNER JOIN

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

SQL – LEFT JOIN

SELECT user.name, class.name

FROM user LEFT JOIN class

ON user.Id=class.user_Id;

SQL – LEFT JOIN

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

SQL – RIGHT JOIN

SELECT user.name, class.name

FROM user RIGHT JOIN class

ON user.Id=class.user_Id;

SQL – RIGHT JOIN

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

SQL – OUTER JOIN

SELECT user.name, class.name

FROM user OUTER JOIN class

ON user.Id=class.user_Id;

SQL – OUTER JOIN

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

Alguns exercícios

SQL – exercícios

Um querry para obter apenas

o entrez id e genesymbols,

com o genesymbol primeiro.

SQL – exercícios

SELECT genesymbol, entrez

FROM gene;

SQL – exercícios

Associar cada proteína ao gene codificador.

SQL – exercícios

SELECT * FROM gene

INNER JOIN protein

ON protein.gene_idgene=gene.idgene

SQL – exercícios

Contar o numero de genes em cada organismo.

SQL – exercícios

SELECT species.name,

COUNT(*) AS numb FROM species

INNER JOIN gene

ON species.idspcies=gene.species_idspcies

GROUP BY species.name

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.

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.

SQL – Outros comandos importantes

DELETE FROM species

WHERE name='Mus musculus';

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.

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.

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

Referencias

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

databases.

Recommended