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
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
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
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
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...
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Alguns Gráficos de Correlação Linear
23
Fonte: http://en.wikipedia.org/Correlation
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
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
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
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
Roteiro da Aula 9
PARTE I – Consultas em Bancos de Dados
PARTE II – Noções de Correlação
PARTE III – Parte Prática
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
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
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.
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
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
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