View
220
Download
3
Category
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