34
BC0005 Bases Computacionais da Ciência Santo André, Abril de 2009 Equipe de Professores de Bases Computacionais Aula 09 Consultas em Bancos de Dados Noções de Correlação entre Variáveis

Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Embed Size (px)

Citation preview

Page 1: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

BC0005Bases Computacionais da

Ciência

Santo André, Abril de 2009

Equipe de Professores de Bases Computacionais

Aula 09Consultas em Bancos de Dados

Noções de Correlação entre Variáveis

Page 2: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Roteiro da Aula 9

PARTE I – Consultas em Bancos de Dados

PARTE II – Noções de Correlação entre Variáveis

PARTE III – Parte Prática

Page 3: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Consultas em Bancos de Dados

Aprendemos que Bancos de Dados são úteis quando:

Precisamos armazenar e organizar grandes quantidades de dados Google: busca por conteúdo em milhões de páginas

Cadastro de pessoas: clientes de uma empresa, cidadãos etc.

Bases de dados científicos: genoma, aceleradores de partícula etc.

Mas bancos de dados só são úteis se pudermos realizar buscas nos

dados armazenados!

A busca por informações específicas no banco de dados é denominada consulta

3

Page 4: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Que tipos de consulta podemos fazer?

Seja uma empresa com diversos departamentos:

Você pode querer saber:• O nome de todos os funcionários do Departamento de Informática• O nome dos funcionários alocados na Sala 1 e que são de Compras• O Ramal e a Sala onde encontrar o Bruno

4

Nome Departamento Sala RamalAndré Compras 1 1900Bruno Informática 2 2001Camila Marketing 1 1782Danilo Informática 2 1984Fabíola Informática 2 1492

Page 5: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Que tipos de consulta podemos fazer?

Ou podemos buscar informações em um genoma hipotético:

Você pode querer saber:• Nome e Sequência dos genes que atuam no ciclo celular• Se um dado gene tem Função Molecular• Qual gene possui a Sequência GATACA... e para que ele serve5

Gene Categoria Função SequênciaAAC15 Função Molecular Quebra de proteínas AGTTAGAC...BAD17 Componente Celular Membrana GATACA...ENV7 Função Molecular Ligação de proteínas GCCACT...DIB21 Processo Biológico Metabolismo dos Carboidratos ATGCAATG...

HSE13 Processo Biológico Ciclo celular CGAAGT...IFI10 Processo Biológico Ciclo celular AGTTGGA...

Page 6: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

E como fazemos as consultas?Crie a seguinte tabela “Departamentos” emseu OpenOffice Base e coloque os seguintes dados:

Iremos agora determinar:• O nome de todos os funcionários do Departamento de Informática• O nome dos funcionários alocados na Sala 1 e que são de Compras• O Ramal e a Sala onde encontrar o Bruno

6

Nome Departamento Sala RamalAndré Compras 1 1900Bruno Informática 2 2001Camila Marketing 1 1782Danilo Informática 2 1984Fabíola Informática 2 1492

Page 7: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Consultas da Exibição de Design

A primeira maneira que veremos para fazer consultas é utilizar o modo gráfico do Base:

Clique em Consultas → Criar consulta na exibição de design ...Selecione a tabela desejada na aba Tabelas e clique em adicionar

As consultas são criadas preenchendo as células da planilha inferior com informações sobre o que você deseja procurar

7

Page 8: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Consultas na Exibição de Design

Utilizaremos a Exibição de Design para preparar 3 consultas:Consulta 1) Informações de todos os funcionários do Departamento de Informática

A primeira coluna indica que queremos obter todos os campos da tabela DepartamentosA segunda coluna indica que desejamos utilizar apenas as entradas cujo campo Departamento seja Informática

8

Page 9: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Consultas na Exibição de Design

Consulta 2) Informações dos funcionários alocados na Sala 1 e que são do departamento de Compras

Consulta 3) O Ramal e a Sala onde encontrar o Bruno

9

Page 10: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Existe como automatizar as consultas?

Sim, utilizando uma linguagem de consulta denominada SQL (Structured Query Language)

Realizar uma consulta em SQL significa escrever comandos do tipo:SELECT * FROM Tabela1

“Selecione todos os campos da Tabela1”

Se eu quiser procurar todos os funcionários da área de Compras:SELECT * FROM Tabela1 WHERE Departamento='Compras'

“Selecione todos os campos da Tabela1das entradas onde Departamento = Compras”

10

Page 11: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Quais as vantagens de utilizar SQL?• A sintaxe é bastante intuitiva Linguagem simples e estruturada

• É mais rápido escrever uma consulta em SQL do que selecionar campos e valores de tabelas Quem tem prática escreve as consultas em poucos segundos

• Comandos SQL podem ser incluídos em programas de computador Uma página na internet que permite consultar os álbuns do Queen

• Consultas mais complexas podem ser realizadas Consultas podem envolver múltiplas tabelas

• Funciona em qualquer programa Gerenciador de Bancos de Dados OpenOffice Base, MySQL, SQL Server, Oracle, HSQLBD etc11

Page 12: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

E como ficam as consultas em SQL?

• Informações de todos os funcionários do departamento de informáticaSELECT * FROM Departamentos WHEREDepartamento='Informática'

• Informações dos funcionários alocados na Sala 1 e que são do departamento de ComprasSELECT * FROM Departamentos WHERESala='1' AND Departamento='Compras'

• O Ramal e a Sala onde encontrar o Bruno SELECT Nome,Sala,Ramal FROM Departamentos WHERENome='Bruno'

12

Page 13: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Consultas SQL no Base

• Basta clicar em Tarefas C→ riar consulta na exibição SQL ...

• Crie e salve cada uma das consultas abaixoSELECT * FROM Departamentos WHEREDepartamento='Informática'

SELECT * FROM Departamentos WHERESala='1' AND Departamento='Compras'

SELECT Nome,Sala,Ramal FROM Departamentos WHERENome='Bruno'

13

Page 14: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

O que mais podemos fazer com SQL?

Praticamente tudo que esteja envolvido com a manipulação de Bancos de Dados

• Criação de Bancos de Dados• Criação de Tabelas• Buscas em uma ou mais Tabelas• Inserção e remoção de Dados• Atualização de Dados• etc.

Quem tiver mais interesse no assunto, aguarde pela disciplina de Banco de Dados

14

Page 15: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Roteiro da Aula 9

PARTE I – Consultas em Bancos de Dados

PARTE II – Noções de Correlação entre Variáveis

PARTE III – Parte Prática

Page 16: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Análise Estatística de Dados

Vimos na última aula diversas maneiras de analisar um conjunto de dados

• Média, Mediana, Moda• Variância, Desvio Padrão, Erro Padrão

Todas estas análises tinham uma característica em comum:São realizadas sobre os valores de uma única variável

– Altura de indivíduos– Capacidade cognitiva– Número de carros que passam por ciclo do semáforo– etc.

16

Page 17: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação entre Variáveis

Na aula de hoje veremos como fazer para relacionar duas variáveis distintas

Queremos descobrir se existe alguma correlação entre os valores das duas variáveis, isto é:

Se mudanças no valor de uma variável são acompanhadas de mudanças no valor de uma segunda variável

Existem diversos exemplos de mudanças correlacionadas:– Idade x Altura– IDH x Renda per Capita– Salário x Escolaridade– etc.

17

Page 18: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Visualização Gráfica

Uma maneira simples de avaliar a correlação entre duas variáveis é construir um gráfico de dispersão

Construa os gráficos de dispersão de:- Idade vs Altura- Altura vs Peso

18

Idade Altura Peso Taxa Pulsação

Pressão Sistólica

Pressão diastólica

Colesterol IMC

(anos) (m) (Kg) bat/min mmHg mmHg mg

58 1,8 76,1 68 125 78 522 23,5

22 1,68 64,9 64 107 54 127 23

32 1,82 80,7 88 126 81 740 24,3

31 1,74 79,1 72 110 68 49 26

28 1,72 68,7 64 110 66 230 23,3

46 1,76 75,1 72 107 83 316 24,3

41 1,69 60,8 60 113 71 590 21,3

56 1,71 90,7 88 126 72 466 31,1

20 1,73 78,8 76 137 85 121 26,2

54 1,67 62,6 60 110 71 578 22,5

17 1,6 70,3 96 109 65 78 27,5

73 1,73 84 72 153 87 265 27,9

52 1,86 86 56 112 77 250 24,9

25 1,72 68,1 64 119 81 265 23,1

29 1,73 94,2 60 113 82 273 31,6

17 1,8 106,7 64 125 76 272 32,8

41 1,56 79,5 84 131 80 972 32,8

52 1,94 99,3 76 121 75 75 26,5

32 1,68 74,7 84 132 81 138 26,4

20 1,77 61,8 88 112 44 139 19,7

18 1,67 74,1 60 118 68 113 26,7

44 1,73 76,5 64 115 75 656 25,4

20 1,68 68 72 115 65 172 24

Page 19: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação entre Variáveis

19

10 20 30 40 50 60 70 800

0,5

1

1,5

2

2,5

Altura

1,5 1,6 1,7 1,8 1,9 20

20

40

60

80

100

120

Peso

Altura

Analisando os gráficos vemos que existe uma certa correlação entre Altura e Peso, mas não entre Idade e AlturaMas como podemos medir essa correlação?

Idade

Page 20: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Covariância entre Variáveis

Como vimos na última aula, podemos estimar o valor esperado de uma variável por:

Já a covariância entre duas variáveis é estimada por:

20

X= 1N∑ X i

cov X ,Y =X−X Y−Y

Page 21: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Covariância entre Variáveis

Analisando a equação acima, vemos que:- Se valores X acima de seu valor esperado E(X) corresponderem a valores de Y acima de E(Y), a covariância será positiva

- Se valores de X acima de E(X) corresponderem a valores de Y abaixo de E(Y), ou vice-versa, a covariância será negativa

- Finalmente, se X e Y forem variáveis independentes, a covariância entre X e Y será próxima de zero

Além disso, vemos que o valor da covariância é influenciada pela escala dos valores de X e Y

21

cov X ,Y =X−X Y−Y

Page 22: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação Linear entre Variáveis

A correlação entre duas variáveis equivale à covariância normalizada, isto é, com valores no intervalo [-1.0, 1.0]

Quando a correlação for próxima a 1.0 ou a -1.0, significa que a correlação é praticamente perfeita

A partir de Xi, é possível determinar o Yi correspondente

Quando o valor for próximo de 0,significa que as variáveis são linearmente independentes

A partir de Xi, não é possível saber nada sobre Yi

22

corr X ,Y = cov X ,Y X Y

Page 23: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Alguns Gráficos de Correlação Linear

23

Fonte: http://en.wikipedia.org/Correlation

Page 24: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Cálculo de Correlações

Agora podemos utilizar o BrCalc para fazer o cálculo das correlações entre as variáveis desta tabela

24

Idade Altura Peso Taxa Pulsação

Pressão Sistólica

Pressão diastólica

Colesterol IMC

(anos) (m) (Kg) bat/min mmHg mmHg mg

58 1,8 76,1 68 125 78 522 23,5

22 1,68 64,9 64 107 54 127 23

32 1,82 80,7 88 126 81 740 24,3

31 1,74 79,1 72 110 68 49 26

28 1,72 68,7 64 110 66 230 23,3

46 1,76 75,1 72 107 83 316 24,3

41 1,69 60,8 60 113 71 590 21,3

56 1,71 90,7 88 126 72 466 31,1

20 1,73 78,8 76 137 85 121 26,2

54 1,67 62,6 60 110 71 578 22,5

17 1,6 70,3 96 109 65 78 27,5

73 1,73 84 72 153 87 265 27,9

52 1,86 86 56 112 77 250 24,9

25 1,72 68,1 64 119 81 265 23,1

29 1,73 94,2 60 113 82 273 31,6

17 1,8 106,7 64 125 76 272 32,8

41 1,56 79,5 84 131 80 972 32,8

52 1,94 99,3 76 121 75 75 26,5

32 1,68 74,7 84 132 81 138 26,4

20 1,77 61,8 88 112 44 139 19,7

18 1,67 74,1 60 118 68 113 26,7

44 1,73 76,5 64 115 75 656 25,4

20 1,68 68 72 115 65 172 24

Page 25: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Cálculo de Correlações

No Calc, existem comandos para calcular diretamente o valor da covariância e correlação entre duas variáveis

- CovariânciaCOVAR(A$3:A$38; B$3:B$38)

- CorrelaçãoCORREL(A$3:A$38; B$3:B$38)

Calcule as correlações de:- Idade vs Altura- Altura vs Peso

25

Page 26: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação entre Variáveis

26

10 20 30 40 50 60 70 800

0,5

1

1,5

2

2,5

Altura

1,5 1,6 1,7 1,8 1,9 20

20

40

60

80

100

120

Peso

Altura

Aplicando a fórmula da correlação podemos calcular:- Idade vs Altura correlação 0,25→- Altura vs Peso correlação 0,50→

Idade

Page 27: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação e CausalidadeApesar de tentador, devemos tomar cuidado para não

concluir que uma correlação alta entre duas variáveis signifique uma relação causal entre elas. Veja o gráfico:

27

Page 28: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Roteiro da Aula 9

PARTE I – Consultas em Bancos de Dados

PARTE II – Noções de Correlação

PARTE III – Parte Prática

Page 29: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Correlação entre Dados de um BD

Nesta aula vimos dois conceitos diferentes:

- Como realizar uma consulta em um Banco de Dados

- Como calcular a correlação entre duas variáveis

Veremos agora como unir os dois conceitos:

Iremos extrair Dados de um Banco de Dados de modo a

descobrir correlações entre os dados lá contidos

Page 30: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Exercício em Sala 1) Neste exercício você irá obter os dados a serem analisados a partir do conteúdo de um Banco de Dados

Abra o arquivo infoMedicas.odb, que pode ser baixado do CoL

a) Iremos fazer a correlação entre Altura vs Peso utilizando 2 grupos de pacientes

Crie 2 consultas, uma para obter a Altura e o Peso dos pacientes com IMC ≤ 25 e outra para os com IMC > 25. Para tal, utilize como condição as expressões:

WHERE IMC <= 25 e WHERE IMC > 25

Agora que você criou as consultas, clique com o botão direito do mouse sobre cada consulta, selecione 'copiar' e, no programa Calc, clique em 'editar' 'colar'. →

Gere os gráficos, calcule a correlação e discuta os resultados obtidos, comparando o caso em que não havia separação por IMC

Page 31: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Exercício em Salab) Agora iremos verificar se existe uma correlação entre o nível de colesterol e o IMC de uma pessoa. Para tal, realize uma consulta em que você deve obter o IMC e o nível de colesterol de todos os pacientesEm seguida, gere o gráfico e calcule a correlação entre IMC e colesterol c) Realize as seguintes consultas no Banco de Dados- Pacientes com mais de 50 anos e colesterol acima de 200Dica: usar AND entre as duas condições- Pacientes cuja diferença entre a "Pressão Sistólica" e a "Pressão Diastólica" seja maior do que 50 Dica: Você pode subtrair o valor de um campo de outro em uma condição

Copie os resultados obtidos nas consultas para o arquivo do Calc onde você gerou os gráfico.

Page 32: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Exercícios para Casa1) Neste exercício você irá determinar diversas informações relativas à lista dos 100 computadores mais rápidos do mundo, retirada de http://www.top500.org/list/2008/11/100

Abra o arquivo top500.odb, que pode ser baixado do CoL:

a) Copie os Dados do Banco de Dados para o Calc. Para tal, clique com o botão direito do mouse sobre a tabela Top500 na janela Tabelas e selecione 'copiar'. Basta agora abrir o Calc e 'colar' o conteúdo do Banco de Dados no Calc

Page 33: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Exercícios para Casab) Agora gere os gráficos e calcule as correlações entre:- Cores e Rmax- Rmax e Rpeak- Cores e Power- Rmax e Poweronde Cores é o número de núcleos, Rmax o desempenho máximo medido, Rpeak o desempenho máximo teórico e Power o consumo de energia

c) Realize consultas no Banco de Dados de modo a pegar 2 subconjuntos de máquinas, aquelas com mais de 10.000 cores e aquelas com menos de 10.000 cores - Faça agora os gráficos e cálculos da correlação entre Cores e Rmax. Compare os resultados com aqueles obtidos com todas as máquinas e discuta os resultados

Page 34: Bc0005 aula 09_consultas_e_correlacoes_2009-1c - bases computacionais da ciencia - ufabc

Exercícios para Casa2) Você decidiu criar um Banco de Dados com os livros de sua casa Título – Autor – Assunto – Editora – Ano de Publicação

a) Crie o Banco de Dados em seu computador contendo pelo menos 10 livros. Como assunto utilize termos como: “Literatura”, “Computação” etc

b) Escreva consultas para realizar as seguintes tarefas

- Obter a lista com todos os autores de livros- Obter informações dos livros escritos por um autor de sua escolha- Obter informações dos livros publicados a partir do ano 2000 - Obter o título e autor de todos os livros sobre um tema de sua escolha

c) Teste as consultas acima em seu banco de dados utilizando o programa Base. Em seguida, gere um relatório com os dados obtidos