View
114
Download
5
Category
Preview:
Citation preview
Genômica e Proteômica
Sistema Operacional,
Linguagem de Programação Perl
e Banco de Dados
Agosto / 2004LABINFO – LNCC / MCT
Introdução
Sistemas operacionais, linguagem de programação e banco de dados: O que são ? Para que servem ? Precisamos entender como funcionam e / ou
como os utilizamos ?
??
??
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional
Introdução Classificação dos sistemas operacionais Estrutura do sistema operacional
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – introdução
Coleção de programas que controla a operação de um computador
Facilitar o acesso aos recursos do sistema Compartilhar os recursos de forma
organizada e protegida
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – introdução
Sistema operacional
Aplicativos Utilitários
Dispositivos físicos
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – introdução
Organização genérica de um computador
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – classificação
Monoprogramáveis / monotarefa Recursos são dedicados a execução de um único
programa Subutilização dos recursos Implementação simples Monousuário
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – classificação
Multiprogramáveis / multitarefa Compartilhamento dos recursos entre diferentes
programas A CPU é utilizada por cada programa em
intervalos de tempo (time sharing) Implementação mais complexa Monousuário ou multiusuário Controle de entrada e saída Níveis de proteção do sistema
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – classificação
Múltiplos processadores Duas ou mais CPUs interligadas CPUs executam programas diferentes ou o
mesmo programa Implementação complexa Tipicamente multiusuário
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – estrutura
O núcleo do sistema deve realizar: Criação e eliminação de processos Tratamento de interrupções Sincronização e comunicação entre processos Escalonamento e controle de processos Gerência de memória Operações de entrada e saída Gerência de dispositivos Contabilização e segurança
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – processos
É o ambiente onde se executa um programa O SO mantém informações sobre os processos:
Contexto de hardware Contexto de software (identificação do processo e do
usuário, quotas de recursos e privilégios) Espaço de endereçamento (área da memória onde estão o
código do programa e os dados utilizados
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – processos
Um processo assume diferentes estados Execução: Quando o processo está sendo
processado pela CPU Pronto: Quando o processo está aguardando a
CPU para ser processado Espera: Quando aguarda algum evento externo
ou por algum recurso para prosseguir o seu processamento
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – processos
Tipos: CPU-bound Quando o processo passa a maior
parte do tempo utilizando o processador I/O-bound Quando o processo passa a maior
parte do tempo no estado de espera, pois realiza um elevado número de operações de entrada e a saída
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – gerência de memória
Memória principal É a área onde estão armazenados as instruções
e o dados de um programa Pode ser volátil ou não volátil
Memória secundária É a área onde ficam armazenados, de forma
perene, os programas e arquivos. É uma memória não volátil.
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – gerência de memória
Memória virtual Técnicas que, através do uso de partes da memória secundária, simulam a memória principal
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – entrada e saída
Realiza as funções que são comuns a todos os dispositivos Aspectos específicos de cada dispositivo ficam a
cargo dos respectivos drivers
Garante que os programas possam se comunicar com qualquer dispositivo conectado ao computador
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – entrada e saída
Subsistemas de E/SOperações de E/S
Processos
Device driversControladoresDispositivos
Software
Independente dodispositivo
Dependente dodispositivo
Hardware
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – sistema de arquivos
Arquivo: Conjunto de informações logicamente relacionadas, podendo representar programas ou dados
O sistema de arquivos oferece um conjunto de chamadas ao sistema operacional que permitem a realização de operações de entrada e saída
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – sistema de arquivos
Atributos: São as informações de controle sobre o arquivo Nome Tamanho Proteção (privilégios para usuário, grupo e
outros) Dono e o grupo Data de criação e modificação
Agosto / 2004LABINFO – LNCC / MCT
Sistema operacional – referências
Arquitetura de Sistemas Operacionais Francis B. Machado e Luiz Paulo Maia.
Livros Técnicos e Cientifícos Editora S.A.ISBN 85-216-1097-1
Sistemas Operacionais Modernos Andrew S. Tanenbaum
Prentice Hall do BrasilISBN 85-7054-059-0
Agosto / 2004LABINFO – LNCC / MCT
Linguagem
Linguagem É o uso da palavra articulada e escrita como meio de expressão e comunicação
Léxico Conjunto de palavras de uma língua Sintaxe Estudo da disposição das palavras na
frase e a das frases no discurso, bem como a relação lógica das frases entre si
Semântica O significado do discurso
Agosto / 2004LABINFO – LNCC / MCT
Linguagem de programação
Conjunto de instruções e regras de composição e encadeamento, por meio do qual se expressam ações executáveis por um computador, seja diretamente, seja por meio de processo de compilação, interpretação ou montagem
Agosto / 2004LABINFO – LNCC / MCT
Linguagem de programação
Montagem Conversão de um programa fonte, escrito em linguagem assembly, para o código de máquina
Compilação Conversão de um programa fonte em um programa executável
Interpretação Conversão, em tempo de execução, de um programa fonte em um programa executável
Agosto / 2004LABINFO – LNCC / MCT
Perl
Interpretada Alto nível Suporte a várias plataformas Unix,
Windows, Mac OS, BeOS ... Modular e orientada o objetos
Agosto / 2004LABINFO – LNCC / MCT
Perl
Tipo de dados variáveis
Operadores Declarações
de controle e de laço
Funções Manipulação de arquivos e E/S Expressões regulares
Agosto / 2004LABINFO – LNCC / MCT
Perl – tipo de dados
Tipos de dados Define que tipo de valores podem ser utilizados no do programa Valores escalares Lista de valores
arrays hashes
Agosto / 2004LABINFO – LNCC / MCT
Perl – tipo de dados
Scalars Armazena uma cadeia de caracteres ou números.
Ex.: Cadeia de caracteres “perl” Números 2, 3.14
Agosto / 2004LABINFO – LNCC / MCT
Perl – tipo de dados
Array de scalars É uma lista ordenada de scalars acessados
através de um índice. Ex.: array1 = (“c”, “c++”, “perl”) array2 = (1, 3, 5, 7, 9)
O índice sempre começa com o número “0” array1[0] = “c” array2[3] = 7
Agosto / 2004LABINFO – LNCC / MCT
Perl – tipo de dados
Hash de scalars É um conjunto não ordenados de pares
chave/valor que podem ser acessados usando uma cadeia de caracteres, que é a chave, como índice, para recuperar um scalar que é o valor correspondente para esta chave. Ex.:
hash = (ling1 => “c”, ling2 => “perl”)
Agosto / 2004LABINFO – LNCC / MCT
Perl – variáveis
Variável Porção de memória que contém um valor de determinado tipo de dado
Variável do tipo scalar $x = “perl” $y = 3.14 $x = 1.41 $y = “c++” $y = 2
$x = 10/$y $x = 5 $y = “teste” $x = 10/$y $x = ???
Erro em tempo de execução (Illegal division by zero at line nnn)
Agosto / 2004LABINFO – LNCC / MCT
Perl – variáveis
Variável do tipo array @x = (“a”, “b”, “c”) @y = (1, 2, 4) $a = $x[0]
O conteúdo de $a é igual a “a” $b = $y[1]
O conteúdo de $b é igual a 2
Agosto / 2004LABINFO – LNCC / MCT
Perl – variáveis
Variável do tipo hash %tabela = (Jan => 31 , Fev => 28) $par1 = $tabela{‘Jan’}
O conteúdo de $par1 é igual a 31 $par2 = $tabela{‘Fev’}
O conteúdo de $par2 é igual a 28
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Operadores Símbolos que representam as operações possíveis sobre variáveis e arquivos. Podem ser classificados: de acordo com o número de operandos
unários, binários, ternários
ou pelo tipo de operação aritmética, lógica etc
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Unário e aritmético $a = 5 ++$a incrementa $a e retorna 6
$a = $a + 1
$a++ retorna 6 e incrementa $a --$a $a--
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Binário e aritmético $a + $b, adição $a - $b, subtração $a * $b, multiplicação $a / $b, divisão $a % $b, resto da divisão $a ** $b, potenciação
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Binário e string $a . $b, concatenação
$a = “abc” $b = “cde” $c = $a . $b $c = “abccde”
$a x $b, multiplicação $a = “abc” $b = 3 $c = $a x $b $c = “abcabcabc” $b = “c” $c = $a x $b $c = ???
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Atribuição $a = 5 $b = $a $b = 5 $a *= 3 $a = 15 $a .= $a $a = “1515” $a x= 3 $a = “151515151515” $a -= 1000000 $a=151514151515
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Lógicos$a && $b (and)
falso e falso = falso falso e verdadeiro = falso verdadeiro e falso = falso verdadeiro e verdadeiro = verdadeiro
$a || $b (or) falso ou falso = falso falso ou verdadeiro = verdadeiro verdadeiro ou falso = verdadeiro verdadeiro ou verdadeiro = verdadeiro
!$a (not)
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Comparação (números) == igual != diferente < menor > maior <= menor ou igual >= maior ou igual <=> comparação
retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Comparação (string) eq igual ne diferente lt menor gt maior le menor ou igual ge maior ou igual cmp comparação
retorna: 0 se igual, 1 se operando 1 é maior, -1 se operando 2 é maior
Agosto / 2004LABINFO – LNCC / MCT
Perl – operadores
Teste de arquivos -e existe -r permissão de leitura -w permissão de escrita -d verifica se é diretório -f verifica se é um arquivo -T verifica se é um arquivo texto
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
Declarações representam ações que desejamos realizar. Podem ser: Simples sempre finalizada com um “;”
print “teste”; Composta um seqüência de declarações
dentro de um mesmo bloco {$a =5; $b = 6; $c = $a*$b; print $c}Obs.: a) Um bloco é delimitado por “{ }” b) A última declaração de um bloco não precisa ser
finalizada com “;”
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
Declarações de controle Declarações utilizadas para decidir a seqüência de comandos a ser executada pelo programa if Avalia se uma condição é verdadeira e
executa um bloco de comandos unless Avalia se uma condição é falsa e
executa um bloco de comandos
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
if ($a == $b) { print “$a é igual a $b”; $a-- }else { print “$a é diferente de $b” }
interpolação de variáveis
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
unless ($a == $b)
{
print “$a é diferente que $b\n”
}
Caractere especial de quebra de linha
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
if (($a == $b) && ($c == $d)) { print “Todos os números são
iguais\n” }elsif ($a != $b) { print “$a é diferente de $b\n” }elsif ($c != $d) { print “$c é diferente de $d\n” }
if ($a == 1) { print “$a é igual a 1\n” }elsif ($a == 2) { print “$a é igual a 2\n” }else { print “$a é diferente de 1\n”; print “e diferente de 2\n”; }
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
Declarações de laço (loop) Utilizadas para decidir quantas vezes um bloco de comandos será executado while Avalia se a condição é verdadeira e executa um
bloco de comandos until Avalia se a condição é falsa e executa um bloco de
comandos
No while e no until uma condição inicial é determinada antes do início do loop e é modificada dentro do bloco de comandos
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
for Avalia se a condição é verdadeira e executa um bloco de comandos. A condição inicial é determinada e modificada na declaração do for
foreach Executa um bloco de comandos para cada elemento de uma lista de scalars
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
while ($i < 10)
{
print “$i\t”;
$i++
}
print “\n”caracter especial de tabulação
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
open FILE, “<teste.txt” if (-e “teste.txt”);
while (<FILE>)
{
print “$_”
}
abertura de arquivo atribuindo-o para o filehandle “FILE”
faz o loop enquanto não chegar ao final do arquivo
variável predefinida, que recebe a linha corrente do arquivo
Agosto / 2004LABINFO – LNCC / MCT
Perl – declarações
for ($i = 0; $i <= 10; $i++) { print $b[$i].”\n” }
foreach $a (@b) { print $a.”\n” }
foreach $a (keys %b) { print $a.”\n” }
operador de concatenação
Agosto / 2004LABINFO – LNCC / MCT
Perl – funções
Comandos predefinidos no Perl ou construídos pelo programador Exemplos:
print, open, shift predefinidos somar construído pelo programador
sub somar { $a = shift; $b = shift; $c = $a + $b;return $c }$resultado = somar(5,6);
Agosto / 2004LABINFO – LNCC / MCT
Perl – manipulação de arquivos e E/S
Existem funções predefinidas para a manipulação de arquivos e E/S open Abre arquivo close Fecha arquivo opendir Abre diretório closedir Fecha diretório readdir Lê o conteúdo do diretório symlink Cria um link chdir Troca de diretório chmod Troca os privilégios de um arquivo print Imprime para uma saída
Agosto / 2004LABINFO – LNCC / MCT
Perl – manipulação de arquivos e E/S
open FILEIN, “<teste.txt” or die “Erro: $!\n”;open FILEOUT, “>teste.out” or die “Erro: $!\n”;while (<FILEIN>) { chomp; $a = $_ % 2; if ($a = = 0) { print FILEOUT “$_\n” } }close FILEIN; close FILEOUT
variável predefinida, que recebe a mensagem de errofunção que
retira o caracter “\n”
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
É o meio de descrever um conjunto de strings sem conhecer a lista de todas as strings disponíveis, através de um padrão definido pelo programador / usuário, a partir de um conjunto de operadores e caracteres especiais
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Operadores m// Verifica a ocorrência do padrão que está entre as
barras Exemplo
while (<FILE>) { if ($_ =~ m/ACGTAGTGT/) if ($_ =~ /ACGTAGTGT/) { print “$_” } }
operador de ligação
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Operadores s/PADRÃO_1/ PADRÃO_2/ Verifica a ocorrência do
PADRÃO_1 e o substitue pelo PADRÃO_2 Exemplo
while (<FILE>) { if ($_ =~ s/ACG/TGC/) { print “$_” } }
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Operadores tr/LISTA_1/ LISTA_2/ Substitue cada elemento da
LISTA_1 pelos elementos correspondentes na LISTA_2 Exemplo
while (<FILE>) { if ($_ =~ tr/ACGT/acgt/) { print “$_” } }
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Metacaracteres \ Para representar caracteres não alfanuméricos | Alternação entre diferentes padrões ( ) Agrupamento. Trata o padrão como um grupo [ ] Cria uma classe de caracteres { } Define o número de ocorrências de um padrão ^ Determina que o padrão deve estar no início da string $ Determina que o padrão deve estar no final da string * O padrão deve ocorrer 0 ou mais vezes + O padrão deve ocorrer uma ou mais vezes ? O padrão deve ocorrer 0 ou uma vez . Qualquer caracter, com exceção do caracter de nova
linha
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Metacaracteres Exemplos
m/\t\t/ procura por dois caracteres de tabulação m /[Aa]/ procura por “A” ou “a” m /(TGA)(TGT)/ procura e agrupa por “TGA” e “TGT”.
Agrupar significa que estes valores serão retornados nas variáveis $1 e $2
s/(TGA)(TGT)/$2$1/
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Metacaracteres Exemplos
m/TGA|TGT/ procura por “TGA” ou “TGT” m/^TGA / procura por “TGA” no início da string m/TGA$/ procura por “TGA” no final da string m/T.A/ procura por “T”, qualquer caracter e “A”
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Metacaracteres Exemplos
m/T*GT/ procura por 0 ou mais “T’s” seguidos de “GT” “TGT”, “TTTTGT” e “GT” satisfazem a esta expressão regular
m/(T+)GT / procura por um ou mais “T’s” seguidos de “GT” e retorna na variável $1 a ocorrência dos “T”
“TGT” ou “TTTTGT” satisfazem a esta expressão regular $1 receberá “T” ou “TTTT”
m/T?GT/ procura por 0 ou um “T” seguido de “GT” “TGT” e “GT” satisfazem a esta expressão regular
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
Metasímbolos \w qualquer alfanumérico e o caracter “_” \W qualquer caracter diferente de alfanumérico \d qualquer caracter numérico (0..9) \D qualquer caracter diferente de numérico \s qualquer caracter espaço em branco \S qualquer caracter diferente de espaço em
branco \t caracter de tabulação
Agosto / 2004LABINFO – LNCC / MCT
Perl – expressões regulares
MetasímbolosExemplos
$nomeSequencia = “XL1010A01.g”$nomeSequencia =~ /\w\w\d\d\d\d\w\d\d\.\w/
$nomeSequencia =~ /\D+\d+\w\d+\.\w/ $nomeSequencia =~ /\w{2}\d{4}\w\d{2}\.\w/
$organ = “XL”;$nomeSequencia =~ /$organ\d{4}\w\d{2}.\w/
Agosto / 2004LABINFO – LNCC / MCT
Perl – módulos
Módulos É a unidade fundamental para reuso de código no Perl
O Perl vem com um conjunto padrão de módulos Exemplo:
CGI Módulo para implementar CGI (Commom Gateway Interface – Interface padrão para a criação de programas para serem executados através da internet)
Math::Complex Módulo com funções de manipulação de números complexos
CPAN Módulo para automatizar o acesso ao CPAN(Comprehensive Perl Archive Network – Repositório de módulos e documentação para Perl)
Agosto / 2004LABINFO – LNCC / MCT
Perl – módulos
No CPAN (e em outros repositórios) encontram-se vários módulos disponíveis para a execução de diversas tarefas Exemplo:
DBI Para implementar o acesso a banco de dados GD Para manipulação de imagens libwww Para implementar diversos serviços de e
para web bioperl Conjunto de módulos que implementam
diversas ferramentas para bioinformática
Agosto / 2004LABINFO – LNCC / MCT
Perl – documentação
man perl perldoc
Agosto / 2004LABINFO – LNCC / MCT
Perl – referências
Programming Perl Larry Wall, Tom Christiansen, Jon Orwant
O’Reilly & Associates, Inc.
ISBN: 0-596-00027-8
www.perl.org ... Bioperl.org Bioperl-l, cascavel-l
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados
Banco de dados Coleção de dados inter-relacionados, projetada para atender às necessidades de um grupo específico de aplicações e usuários
Sistema Gerenciador de Banco de Dados Conjunto de programas, de propósito geral, que facilita o processo de construção e manipulação de banco de dados para servir a diversas aplicações
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados
SGBD
AplicaçãoAdministrador
BD
Usuário
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Modelo de dados Conjunto de conceitos utilizados para descrever a estrutura de um banco de dados Modelo de dados de alto nível
Entidade Relacionamento
Modelo de dados de implementação Tabelas (relações)
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Entidades Representa um conjunto de elementos de um mesmo tipo que se deseja representar em um banco de dados, e é caracterizada pelos seus atributos. Ex.: a) Gene (nome, produto, seqüência de
nucleotídeos, seqüência de aminoácidos
b) Categoria (nome, descrição)
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Relacionamento Representa associações entre elementos de duas ou mais entidades. É caracterizada pelas entidades participantes, pela sua cardinalidade e por seus atributos Ex.: Gene Categoria
Um gene tem uma categoria e uma categoria caracteriza vários genes
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Desenho com um MER
Gene Categoriatem
nomeprodutoseq
nome
descrição
atributos entidades
relacionamento
N 1
cardinalidade
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Tabelas (relações) Os dados são organizados em tabelas. As tabelas são formadas por colunas e linhas. As colunas são os atributos definidos para as entidades e relacionamentos. As linhas contêm os valores que os atributos podem assumir.
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Chave É um atributo, ou conjunto de atributos, que identifica univocamente uma relação. Ou seja, um atributo chave não apresenta valores duplicados. Se um atributo chave for definido como chave primária não poderá conter o valor nulo
Chave estrangeira Uma chave de uma relação R que referencia a chave primária de uma relação S é chamada de chave estrangeira.
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Mapeamento Lógico-Relacional Transforma o modelo de dados de alto nível (Modelo Entidade-Relacionamento – MER) no modelo de dados de implementação (Relacional). A transformação é o mapeamento de cada entidade, relacionamento, e seus respectivos atributos em tabelas.
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
nome produto seqüênciadnaA ... ...
recA ... ...
Gene
nome descrição... ...
... ...
Categoria
Criando as tabelas
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
nome produto seqüência cat_nomednaA ... ...
recA ... ...
Gene
nome descrição... ...
... ...
Categoria
Criando os relacionamentos
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
Mapeamento de entidade Mapeamento de relacionamento
N:1 Se o relacionamento não tem atributos, é inserido na tabela com cardinalidade “N” a chave primária da entidade com cardinalidade “1”
N:1 Se o relacionamento tem atributos, é criada uma nova tabela, com as chaves das tabelas do relacionamento, mais os atributos
N:M O mesmo procedimento acima
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SQL (Structured Query Language) Linguagem de definição e manipulação de dados padrão do modelo relacional
Comandos de definição CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP ...
Comandos de manipulação SELECT, UPDATE, INSERT, DELETE ...
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
CREATE DATABASE genoma; USE genoma; CREATE TABLE Gene (
id INT(9) NOT NULL,nome CHAR(7) NOT NULL,produto VARCHAR(100) NOT NULL,PRIMARY KEY (id),UNIQUE(nome)
);
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
DROP TABLE Gene; DROP DATABASE genome;
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
Tipo de dados Define os diferentes valores que um atributo em
uma tabela pode assumir Ex.: INT -2.147.483.648 a 2.147.483.647
CHAR(n) Cadeia de caracteres de tamanho “n”
VARCHAR(n) Cadeia de caracteres de tamanho até “n”
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
Comando de consulta SELECT FROM Recupera os dados contidos em tabelas
SELECT Nome, Seqüência FROM Gene
Recupera todos os Nomes e Seqüências contidos na tabela Gene
SELECT * FROM Gene Recupera todos os dados contidos na tabela Gene
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT DISTINCT Nome FROM Gene Recupera os nomes dos genes sem repetição
Resultado
nome produto seqüência organismodnaA ... ... p. aeroginosa
dnaA ... ... m. genitalium
recA ... ... m. genitalium
Gene
nomednaA
recA
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT Nome, TamAA*3 FROM Gene Novas colunas podem ser derivadas a partir de
expressões aritméticas
nome produto seqüência TamAAdnaA ... ... 343
dnaA ... ... 349
recA ... ... 173
Gene
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT DISTINCT Nome, TamAA*3
FROM Gene
ORDER BY Nome DESC A cláusula ORDER BY define um critério de
ordenação do resultado Resultado nome TamAA*3
recA 519
dnaA 1029
dnaA 1047
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT * FROM Gene
WHERE TamAA > 200 A cláusula WHERE define as condições que
selecionam os dados a serem recuperados Resultado
nome produto seqüência TamAAdnaA ... ... 343
dnaA ... ... 349
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – projeto
nome produto seqüência cat_nomednaA ... ...
recA ... ...
Gene
nome descrição... ...
... ...
Categoria
Criando os relacionamentos
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT Gene.Nome, Descrição FROM Gene, Categoria
WHERE cat_nome = Categoria.Nome Recupera o nome do gene e a descrição da
categoria quando o nome da categoria em ambas as tabelas são iguais
A junção é realizada para todas as tabelas listadas
na cláusula FROM. As condições na cláusula
WHERE restringem os dados recuperados
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT count(*)
FROM Gene
WHERE Organism = “p. aeroginosa” Retorna o número de registros que existem na
tabela Gene que correspondem ao organismo p. aeroginosa
Existem outras funções: SUM, AVG, MAX, MIN
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT Nome, count(*) AS num_genes
FROM Gene
GROUP BY Nome Retorna o nome e o número de ocorrências de
cada gene. A cláusula GROUP BY organiza o resultado em grupos lógicos. A palavra AS cria “apelidos” para o nome das colunas
Resultado nome num_genesrecA 1
dnaA 2
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
SELECT Nome, count(*) AS num_genes FROM Gene
GROUP BY Nome HAVING count(*) > 1
Retorna o nome e o número de ocorrências de cada gene, onde num_genes for maior que “1”. A cláusula HAVING define quais grupos farão parte da resposta
Resultado nome num_genesdnaA 2
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
Forma geral do SELECT
SELECT [DISTINCT] <atributos>
FROM <tabelas>
[WHERE <condição>]
[GROUP BY <atributos>]
[HAVING <condição>]
[ORDER BY <atributos>]
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
UPDATE <tabela>
SET <atribuição>
[WHERE <condição>] UPDATE Gene
SET Nome = ‘DNAA’
WHERE Nome = ‘dnaA’
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
INSERT
INTO <tabela> [<atributos>]
VALUES <constantes> INSERT
INTO Gene (Nome, TamAA)
VALUES (‘girA’, 493)
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – implementação
DELETE
FROM <tabela>
[WHERE <condição>] DELETE
FROM Gene
WHERE Nome = ‘girA’
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados – referências
Date Sylberchatz Manual do MySQL
Agosto / 2004LABINFO – LNCC / MCT
Programas para acesso a BD
Perl, CGI, DBI (Database interface) www.lncc.br/~lgonzaga/gp2004
Agosto / 2004LABINFO – LNCC / MCT
Banco de dados
SGBD
AplicaçãoAdministrador
BD
Usuário
Agosto / 2004LABINFO – LNCC / MCT
Programas para acesso a BD
SGBD MySQL
AplicaçãoScript em Perl + DBI
BD MySQL
Usuário
driver MySQL
Agosto / 2004LABINFO – LNCC / MCT
Referências
Perl DBI man DBI man CGI
Recommended