Você está na página 1de 65

Ministrio da Educao - MEC Secretaria de Educao Profissional e Tecnolgica (SETEC) Instituto Federal de Educao, Cincia e Tecnologia do Cear

Administrador de Banco de Dados


Francisco Edmar Vasconcelos Pereira

Ministrio da Educao - MEC Secretaria de Educao Profissional e Tecnolgica (SETEC) Instituto Federal de Educao, Cincia e Tecnologia do Cear

CURSO ADMINISTRADOR DE BANCO DE DADOS PROF. FRANCISCO EDMAR VASCONCELOS PEREIRA CURSO FIC

CRDITOS
Presidente Dilma Vana Rousseff Ministro da Educao Aloizio Mercadante Oliva Secretaria de Educao Profissional e Tecnolgica Marco Antonio de Oliveira Reitor do IFCE Cludio Ricardo Gomes de Lima Pr-Reitor de Extenso Gutenberg Albuquerque Filho Pr-Reitor de Ensino Gilmar Lopes Ribeiro Pr-Reitor de Administrao Virgilio Augusto Sales Araripe Diretor Geral Campus Fortaleza Antonio Moises Filho de Oliveira Mota Diretor de Ensino Campus Fortaleza Jos Eduardo Souza Bastos Coordenador Geral Reitoria Jose Wally Mendona Menezes Coordenador Adjunto - Reitoria Armnia Chaves Fernandes Vieira Superviso - Reitoria Daniel Ferreira de Castro Andr Monteiro de Castro Coordenador Adjunto - Campus Fortaleza Fabio Alencar Mendona Elaborao do contedo Francisco Edmar Vasconcelos Pereira Equipe Tcnica Manuela Pinheiro dos Santos Marciana Matos da Costa Kaio Lucas Ribeiro de Queiroz Vanessa Barbosa da Silva Dias Edmilson Moreira Lima Filho Vitor de Carvalho Melo Lopes Rogers Guedes Feitosa Teixeira Orientadora Barbara Luana Sousa Marques

O QUE O PRONATEC? Criado no dia 26 de Outubro de 2011 com a sano da Lei n 12.513/2011 pela Presidenta Dilma Rousseff, o Programa Nacional de Acesso ao Ensino Tcnico e Emprego (Pronatec) tem como objetivo principal expandir, interiorizar e democratizar a oferta de cursos de Educao Profissional e Tecnolgica (EPT) para a populao brasileira. Para tanto, prev uma srie de subprogramas, projetos e aes de assistncia tcnica e financeira que juntos oferecero oito milhes de vagas a brasileiros de diferentes perfis nos prximos quatro anos. Os destaques do Pronatec so: Criao da Bolsa-Formao; Criao do FIES Tcnico; Consolidao da Rede e-Tec Brasil; Fomento s redes estaduais de EPT por intermdio do Brasil Profissionalizado; Expanso da Rede Federal de Educao Profissional Tecnolgica (EPT). A principal novidade do Pronatec a criao da Bolsa-Formao, que permitir a oferta de vagas em cursos tcnicos e de Formao Inicial e Continuada (FIC), tambm conhecidos como cursos de qualificao. Oferecidos gratuitamente a trabalhadores, estudantes e pessoas em vulnerabilidade social, esses cursos presenciais sero realizados pela Rede Federal de Educao Profissional, Cientfica e Tecnolgica, por escolas estaduais de EPT e por unidades de servios nacionais de aprendizagem como o SENAC e o SENAI. Objetivos Expandir, interiorizar e democratizar a oferta de cursos de Educao Profissional Tcnica de nvel mdio e de cursos e programas de formao inicial e continuada de trabalhadores; Fomentar e apoiar a expanso da rede fsica de atendimento da Educao Profissional e Tecnolgica; Contribuir para a melhoria da qualidade do Ensino Mdio Pblico, por meio da Educao Profissional; Ampliar as oportunidades educacionais dos trabalhadores por meio do incremento da formao profissional. Aes Ampliao de vagas e expanso da Rede Federal de Educao Profissional e Tecnolgica; Fomento ampliao de vagas e expanso das redes estaduais de Educao Profissional; Incentivo ampliao de vagas e expanso da rede fsica de atendimento dos Servios Nacionais de Aprendizagem; Oferta de Bolsa-Formao, nas modalidades: Bolsa-Formao Estudante; Bolsa-Formao Trabalhador. Atendimento a beneficirios do Seguro-Desemprego;

Sumrio
Sistema operacional Microsoft Windows XP ................................................................................. 4 Inicando o Windows XP .............................................................................................................4 Desligar o computador ............................................................................................................... 5 rea de trabalho .......................................................................................................................... 5 Menu Iniciar ................................................................................................................................ 7 Menu todos os programas ....................................................................................................... 9 Abrindo programas ...................................................................................................................... 9 Janelas....................................................................................................................................... 11 Exerccios ...................................................................................................................................... 12 Trabalhando com mltiplas janelas ........................................................................................... 13 Organizando a rea de trabalho ................................................................................................. 14 Organizando cones na rea de trabalho ................................................................................... 15 Planilha de Clculo Microsoft Microsoft Office Excel ............................................................ .....16 Iniciando o Documento .............................................................................................................15 Inserindo e Excluindo Planilhas ................................................................................................25 Renoameando Planinhas ......................................................................................................26 Trabalhando com Linhas e Colunas............................................................................................26 Inserindo e Excluindo Linhas e Colunas ..............................................................................26 Alterando a Altura e Largura de Linhas e Colunas ................................................................27 Formatando a Tabela ....................................................................................................................27 Seo Fonte ................................................................................................................................27 Seo Alinhamento ....................................................................................................................27 Seo Nmero ............................................................................................................................28 Inserindo e Excluindo Grficos.....................................................................................................28 Banco de Dados e SQL ................................................................................................................. 30 Introduo...................................................................................................................................30 Banco de Dados ....................................................................................................................30 SGBD x GA ...........................................................................................................................32 Consideraes Finais .............................................................................................................34 Caractersticas Gerais de um SGBD ......................................................................................34 Componentes de um Banco de Dados .......................................................................................36 Banco de Dados Relacional .......................................................................................................37 Relacionamentos entre Tabelas ............................................................................................38 Modelagem de Dados ..............................................................................................................41 Cardinalidade do Relacionamento ...........................................................................................43 SQL - Structured Query Language ...............................................................................................46 Introduo ..................................................................................................................................46 Parte I - Comandos de Modificao do Esquema e Criao de Banco de Dados .......................47 Comando Create ....................................................................................................................47 Comando Drop .......................................................................................................................49 Comando Alter .......................................................................................................................50 Prtica ....................................................................................................................................50 Parte II - Comandos de Consulta ao Esquema .........................................................................51 Operadores Lgicos ................................................................................................................51 Demais Operadores ................................................................................................................54 Operadores Negativos ............................................................................................................54 Funes de Caracteres ............................................................................................................55 Funes Agregadas (ou de Agrupamento) .............................................................................56 2

Agrupamentos ........................................................................................................................56 Having ....................................................................................................................................57 Equi-Juno (Juno por igualdade) ......................................................................................58 As sub-consultas......................................................................................................................59 Unies .....................................................................................................................................60 Inseres, Alteraes e Excluses ..........................................................................................60 Transaes ..............................................................................................................................61 Vises .....................................................................................................................................62

Sistema operacional Microsoft Windows XP


Iniciando o Windows XP
O Windows XP iniciado logo aps o computador ter sido ligado, a primeira tela que aparece ento a tela de logon, onde se seleciona o usurio que ir utilizar a mquina.

Quando o usurio selecionado, atravs de um clique no boto correspondente, o sistema operacional passa imediatamente para outra tela, chamada de rea de trabalho:

Desligar o computador
Sempre que se utiliza o computador, deve-se adotar procedimentos corretos para o seu desligamento, caso contrrio danos podero ocorrer, ou at perda de informaes. Ao clicar no boto iniciar, no canto inferior esquerdo da rea de trabalho, aparecero as opes: desligar e fazer logoff.

Clicando em desligar, a figura acima aparece, e nela novas opes so mostradas: - Em espera: salva no disco rgido todos os programas em execuo e desliga o computador. Ao relig-lo, sero exibidas exatamente as mesmas informaes existentes no momento em que o mesmo foi desligado; - Desativar: desliga corretamente o computador; - Reiniciar: desliga e imediatamente inicia novamente o sistema operacional. A opo fazer logoff, apresentada na figura abaixo, proporciona a troca de usurio ou o fechamento de todos os programas em execuo sem, no entanto, desligar a mquina.

rea de trabalho
Na rea de Trabalho ou Desktop so exibidos janelas, cones, menus e caixas de dialogo, que so elementos bsicos para se iniciar uma atividade dentro do Windows XP. Nela encontram-se: - cones - Barra de tarefas - Boto iniciar

CONES ou Botes so figuras que representam recursos do computador, um cone pode representar um texto, msica, programa, fotos, etc., e pode ser acionado por um clique de mouse. Voc pode adicionar cones na rea de Trabalho, assim como pode excluir. Alguns cones so padres do Windows, como Meu Computador, Meus Documentos, Meus locais de Rede, Internet Explorer e Lixeira:

A Barra de tarefas localizada na parte inferior da rea de trabalho e nela se encontram o Boto Iniciar, a Barra de Inicializao Rpida, a Barra de Ferramentas, a Barra de Idiomas e a rea de Notificao. Voc pode personalizar a barra de tarefas, ocult-la e mov-la para os lados ou para a parte superior da rea de trabalho. Barra de Ferramentas

O Boto Iniciar localiza-se no canto direito da Barra de tarefas e tem como funo acessar o Menu Iniciar aps ser acionado por um clique do mouse.

Menu Iniciar
O Menu Iniciar surge quando damos um nico clique sobre o boto Iniciar, apresentando por sua vez, vrios outros menus. Cada menu pode tambm ser subdividido em outros. No jargo da informtica a palavra Menu reporta lista de opes ou entradas, postas disposio do usurio, que aparece no vdeo de um terminal de computador. Nesta lista esto contidas as funes que o computador poder realizar por meio de um programa.

Na figura acima destacam-se os seguintes subitens: - Meus Documentos: abre a pasta meus documentos onde voc pode armazenar cartas, relatrios, anotaes, planilhas, e outros tipos de documentos. - Documentos Recentes: exibe documentos que foram anteriormente abertos pelo usurio. - Minhas Imagens: abre a pasta Minhas imagens, onde possvel armazenar fotos digitais, imagens e arquivos grficos. - Minhas Msicas: abre a pasta Minhas msicas onde possvel armazenar msicas e outros arquivos de udio. - Meu Computador: fornece acesso e informaes sobre unidades de disco, cmaras, scanners e outros itens de hardware conectado ao computador. - Painel de Controle: Acessa o Painel de Configuraes do Windows. - Definir Acesso e Padres do Programa: personaliza programas padres para certas atividades, tais como, navegar pela Web ou enviar e-mail. - Conectar-se: oferece um atalho para conectar-se a um provedor. - Impressoras e Aparelhos de Fax: mostra impressoras, impressoras de fax instaladas, e ajuda a instalar novas impressoras. - Ajuda e Suporte: oferece ajuda e informaes sobre o Windows. - Pesquisar: Localiza arquivos no sistema ou, se estiver conectado em rede, localiza outros computadores na sua organizao, ou na Internet. - Executar...: executa um programa, um arquivo, uma pasta, etc.

Menu todos os programas


Um Programa, que o mesmo que Software ou Aplicativo, compreende um conjunto de instrues de computador e utilizado para a realizao de uma tarefa especfica, como por exemplo, a digitao de um trabalho escolar. Ao clicar com o mouse em Todos os Programas, no menu Iniciar, aberta uma lista dos programas instalados no computador que so bsicos do Windows XP. Para acessar o menu Todos os programas, clique no menu Iniciar e arraste o mouse em linha reta para a direo em que este menu foi aberto, assim, possvel selecionar qualquer programa desse menu ou um de seus subitens.

Abrindo programas
Os prximos passos demonstraro como se abre um programa do pacote Microsoft Office: a) Clique sobre o menu Iniciar; b) Direcione o ponteiro do mouse para a guia Todos os programas; c) Aberto o menu Todos os programas, arraste o mouse atravs deste at que se destaque a opo Microsoft Office; d) Um novo menu se apresentar, nele clique com o mouse sobre o programa Microsoft Office Word.

Desta forma, o programa Microsoft Word ser aberto em uma nova janela:

Outra forma de se executar programas a utilizao do comando Executar, conforme descrevem os passos a seguir; - Clique no Boto Iniciar, depois, clique na opo Executar do menu Iniciar; - Abre-se a caixa de dilogo do comando Executar, onde aparece um cursor intermitente no campo Abrir; 10

- Digite no campo Abrir o nome do programa ou arquivo que deseja executar e, em seguida, clique no boto OK, ou pressione a tecla Enter no teclado; - Se preferir, clique em Procurar nesta mesma caixa de dilogo e procure o arquivo, pasta ou programa que deseja abrir.

Finalmente, um programa tambm pode ser executado atravs da utilizao de atalhos. Um atalho a referencia dada via de entrada mais rpida em um sistema, um programa, uma pasta, uma unidade de disco, uma pgina na Web etc. No sistema Windows pode ser feito pelo teclado ou por cones. Voc pode colocar atalhos em vrios locais, como na rea de trabalho, no menu Iniciar ou em pastas especficas. Exemplos de atalhos:

Observao: Quando um programa aberto, o Windows o exibe, automaticamente no menu Iniciar e um boto representando esse programa ser exibido na Barra de tarefas.

Janelas
Janela o trecho retangular da tela do computador no qual um documento, arquivo, mensagem, imagem etc., exibido por um programa ou sistema operacional.

11

A Barra de Ttulo a barra horizontal na parte superior de uma janela que contm: a) o smbolo que representa o respectivo programa; b) o ttulo (nome) do documento ativo; c) o ttulo do aplicativo que est sendo executado na janela; d) e os botes Minimizar, Restaurar/Maximinar e Fechar. A Barra de Menu (ilustrao abaixo) a barra horizontal na parte superior da tela, abaixo da Barra de Ttulo, que contm uma srie de opes escolha do usurio, dispostas em seqncia e indicadas por palavras. Se o arquivo que estiver sendo criado ou modificado dentro da janela no foi salvo antes de fechar o aplicativo, o Windows emitir uma tela de alerta perguntando se queremos ou no *salvar o arquivo, ou cancelar a operao antes de sair do aplicativo.

Salvar o mesmo que gravar, isto , transferir dados digitalizados para um meio de armazenamento (CDs, disquetes, HD, Pen drive, etc.) de modo a poder recuper-los posteriormente.

Exerccios
Minimizar/ restaurar/ maximizar uma janela: a) Abra o Microsoft Word, b) Clique sobre o boto em para reduzir a janela a um boto da Barra de Tarefas; c) Clique no cone na Barra de Tarefas para restaurar a janela minimizada ao tamanho anterior; d) Com a janela ocupando toda a tela, clique em para reduzi-la a um tamanho menor, de maneira que poder ser visualizada na rea de Trabalho; e) Com a janela reduzida a um tamanho menor na rea de Trabalho, clique sobre o boto para maximizar a janela de forma que se estenda tela inteira. f) Clique duas vezes na Barra de Ttulo da janela para restaurar a janela a um tamanho menor e ser visualizada na rea de Trabalho ou maximiz-la ao tamanho anterior. Alternar entre programas: 1. Abra o aplicativo Paint e o Bloco de Notas; 2. Alterne entre estes dois programas clicando hora no cone do aplicativo Paint, hora no cone do aplicativo Bloco de Notas na Barra de Tarefas e veja o resultado. Reduzindo as janelas abertas a botes da Barra de Tarefas: 1. Abra as janelas dos respectivos aplicativos e objetos: a) Bloco de Notas, b) Paint, c) Word, 12

d) Excel e) Meu Computador; f) Lixeira. 2. Mantenha todas as janelas acima maximizadas; 3. Clique no boto na Barra de Inicializao rpida que se localiza no canto esquerdo da Barra de Tarefas para reduzir todas as janelas abertas a um boto da Barra de Tarefas. 4. Clique novamente no boto na Barra de Inicializao rpida para restaurar todas as janelas ao tamanho anterior.

Trabalhando com mltiplas janelas


O Microsoft Windows XP permite executar mais de um aplicativo ao mesmo tempo e cada aplicativo suporta vrias janelas de documento. Por exemplo, um usurio pode trabalhar com vrios documentos do Microsoft Word ou outros aplicativos enquanto navega na internet, usa a impressora ou ouve uma msica.

13

Quando tarefas simultneas esto sendo conduzidas no computador, uma janela aberta para cada uma das atividades. Vrias janelas abertas ao mesmo tempo podem causar desordem na rea de Trabalho. Uma forma de se trabalhar de modo organizado manter uma nica janela maximizada por vez, e as demais reduzidas a um boto da Barra de Tarefas, isto , minimizadas.

Organizando a rea de trabalho


Quando for necessrio trabalhar visualizando o contedo de diversos aplicativos ao mesmo tempo, pode-se organizar as janelas dos respectivos programas de muitas formas, viabilizando a cpia do contedo de uma janela para outra ou a realizao de outras atividades. Para arrumarmos as janelas na rea de Trabalho, pode-se arranj-las manualmente ou se utilizar do comando que o Windows dispe para esta tarefa: - Para mover uma janela manualmente, deve-se manter o boto esquerdo do mouse pressionado sobre a barra de ttulos, arrastando-a para a posio desejada; - Para dispor as janelas abertas em uma organizao especfica, utilizando o comando do Windows, siga o exemplo: Abra os programas Paint e WordPad que esto na pasta Acessrios; Abertos estes programas, clique com o boto direito do mouse sobre uma rea vazia da Barra de Tarefas; Escola a opo desejada: Janelas em cascata, Janelas lado a lado horizontalmente ou Janelas lado a lado verticalmente.

Para restaurar as janelas ao estado anterior, clique com o boto direito do mouse em uma rea vazia da Barra de Tarefas e, em seguida, clique em Desfazer Em Cascata ou Desfazer Lado a lado. Tambm possvel alterar o tamanho das janelas, posicionando-se o mouse em uma de suas bordas e, mantendo o boto esquerdo pressionado, arrastando-o at que a janela fique do tamanho desejado.

14

Organizando cones na rea de trabalho


Para organizar os cones da rea de trabalho, deve-se posicionar o mouse em uma parte vazia da mesma e clicar com o seu boto direito, o que far surgir uma janela de menu. Selecionando-se a opo Organizar cones, sero encontradas algumas opes de organizao que podem ser selecionadas conforme a convenincia do usurio.

15

Planilha de Clculo Microsoft Microsoft Office Excel


PARA EXECUTAR O MICROSOFT OFFICE EXCEL clique em Iniciar _Todos os programas _ Microsoft Office _ Microsoft Office Excel.

INICIANDO O DOCUMENTO
Quando voc cria uma planilha nova, a tela do computador dividida em linhas e colunas, formando uma grade. A interseo de uma linha e de uma coluna chamada de clula. As linhas so numeradas seqencialmente, as colunas. so identificadas por letras tambm seqenciais e cada clula pela linha e coluna que a forma. Uma clula pode conter nmeros, texto ou frmulas. Por exemplo, a clula A4 (na tela abaixo) contm o valor 10 e a clula D2 contm o texto Valor total.

Em geral, informaes da mesma categoria so digitadas em uma coluna (no exemplo, a coluna B a descrio do produto vendido; a coluna C o valor unitrio), mas essa 16

estrutura no rgida: voc pode agrupar as informaes por linha ou por outras formas mais convenientes para o seu caso. A possibilidade de usar frmulas o que diferencia um programa de planilha de uma calculadora. Quando colocamos uma frmula em uma clula, dizemos que o contedo dessa clula deve ser calculado em funo dos valores contidos em outras clulas. Na planilha abaixo, o preo total de uma venda calculado multiplicando- se o preo unitrio pela quantidade vendida de produtos do mesmo tipo. Em nosso exemplo, a coluna A registra a quantidade de produtos e a coluna C traz o preo unitrio do produto. A coluna D mostra o preo total. O contedo de cada clula calculado multiplicando-se os valores da coluna A pelos valores da coluna C. Para que esse clculo seja feito automaticamente, devemos digitar a frmula =A4*C4 na clula D4. Quando modificamos o valor de A4, o valor de D4 recalculado automaticamente de acordo com a frmula registrada na clula.

Normalmente, uma planilha criada em duas etapas. Primeiro voc determina os itens que deseja calcular e as frmulas a serem usadas para fazer esse clculo. Depois, na fase de utilizao da planilha, preciso digitar os valores correspondentes a cada item; os resultados sero calculados automaticamente. Aqui mostraremos como criar uma planilha, usando o programa Microsoft Office Excel, mas o procedimento descrito aplica-se a qualquer programa de planilha. Como exemplo, vamos fazer uma planilha para controlar o faturamento de uma empresa que vende apenas quatro produtos. Embora as frmulas sejam diferentes para cada planilha, o procedimento ser sempre o mesmo.

17

Quando abrimos o Microsoft Office Excel, j aparece um desenho bsico de planilha na tela. Precisamos, ento, organizar as informaes em linhas e colunas e determinar uma regio para cada tipo de informao. No layout, apenas definimos onde cada informao ser colocada, mas ainda no a digitamos. No nosso exemplo, vamos registrar o faturamento de cada um dos quatro produtos, ms a ms. A partir dessas informaes, calcularemos: _ O faturamento mensal de cada produto. _ O faturamento anual de cada produto. A planilha tem espaos reservados tanto para as informaes que sero digitadas quanto para as que sero calculadas automaticamente. As informaes sero digitadas da clula B4 at a clula E15. Por exemplo, na clula B4 digitaremos o faturamento do ms de janeiro correspondente a engrenagens; na clula C4, o faturamento de janeiro de parafusos; na clula B5, o faturamento de fevereiro de engrenagens, e assim por diante, at o faturamento de dezembro de arruelas na clula E15. As informaes da coluna F, sobre faturamento mensal total, e as informaes da linha 17, sobre o faturamento anual por produto, sero calculadas automaticamente. 18

Primeiro, vamos escrever as frmulas para calcular o faturamento total mensal (coluna F). Esse faturamento a soma dos valores vendidos de cada produto. Assim, o faturamento total de janeiro (clula F4) ser a soma do faturamento de cada produto nesse ms (da clula B4 at a E4). Portanto, na clula F4 digitaremos a seguinte frmula: Clula Frmula Clula Frmula F4 =B4+C4+D4+E4 Isso indica para o programa de planilha que o valor de F4 ser a soma dos valores das clulas B4, C4, D4 e E4.

19

A frmula da clula F5 muito parecida com a frmula da clula F4 e o mesmo acontece com todas as clulas, at F15.

Clula Frmula F4 =B4+C4+D4+E4 F5 =B5+C5+D5+E5 F6 =B6+C6+D6+E6 F7 =B7+C7+D7+E7 F8 =B8+C8+D8+E8 F9 =B9+C9+D9+E9 F10 =B10+C10+D10+E10 F11 =B11+C11+D11+E11 F12 =B12+C12+D12+E12 F13 =B13+C13+D13+E13 F14 =B14+C14+D14+E14 20

F15 =B15+C15+D15+E15 Como seria bastante trabalhoso digitar essa mesma frmula 12 vezes, vamos copi-la. Posicione o cursor sobre a clula F4. Abra a guia Incio e escolha o comando Copiar (CTRL + C); o computador copiar o contedo de F4. Selecione da clula F5 F15. Para isso, clique sobre a clula F5 e, mantendo o boto do mouse pressionado, arraste-o at a clula F15. Pressione a tecla ENTER. O programa percebe que a frmula mudou de linha e altera o seu contedo: em vez de copiar =B4+C4+D4+E4 para todas as linhas, ele adequar a frmula para cada linha. Assim, na clula F5 ser escrito =B5+C5+D5+E5; na clula F6, =B6+C6+D6+E6 e assim por diante. O procedimento para calcular o faturamento anual de cada produto bastante parecido com o anterior: o faturamento anual de engrenagens a soma do seu faturamento em cada ms. Na clula B17, poderamos digitar a seguinte frmula:

Clula Frmula B17 =B4+B5+B6+B7+B8+B9+B10+B11+B12+B13+B14+B15

21

Quando a frmula for muito grande, usaremos a funo SOMA do Microsoft Office Excel, que facilita o clculo, somando todas as clulas especificadas. Na clula B17, a frmula ser: Clula Frmula B17 =Soma(B4:B15) A notao B4:B15 indica que devem ser utilizadas todas as clulas no intervalo de B4 at B15. Assim, essa frmula ir somar os valores em todas essas clulas e exibir o resultado na clula B17.

22

Agora, precisamos copiar essa frmula para as clulas de C17, D17 e E17. Podemos usar o mesmo procedimento que foi descrito acima. O programa perceber que elas foram colocadas em outra coluna e ajustar as referncias das colunas

automaticamente. Assim, aps copiar a frmula para a coluna C17, teremos =Soma(C4:C15); na clula D17 aparecer =Soma(D4:D15), e assim por diante. Agora, nossa planilha est completa e basta digitar os valores unitrios relativos a cada ms e a cada tipo de produto, das linhas 4 a 15, das colunas B a E. O programa nos dar, automaticamente, os valores da linha 17 e da coluna F. A rapidez uma das grandes vantagens dos programas de planilha. Se voc cometer um erro ou quiser modificar o valor de uma clula, basta digitar o valor correto e todos os outros valores sero atualizados automaticamente. Funes de uma planilha so comandos mais compactos e rpidos para se executar frmulas. Com elas possvel fazer operaes complexas com uma nica frmula. As funes so agrupadas em categorias, para ficar mais fcil a sua localizao. As funes tambm facilitam o trabalho com planilhas especializadas.

23

Um engenheiro pode utilizar funes matemticas para calcular a resistncia de um material. Um contador usar funes financeiras para elaborar o balano de uma empresa. Entre as diversas funes, destacam-se: Funes financeiras - Para calcular juros, rendimento de aplicaes, depreciao de ativos etc. Funes matemticas e trigonomtricas - Permite calcular raiz quadrada, fatorial, seno, tangente etc. Funes estatsticas - Para calcular a mdia de valores, valores mximos e mnimos de uma lista, desvio padro, distribuies etc. Funes lgicas - Possibilitam comparar clulas e apresentar valores que no podem ser calculados com frmulas tradicionais. A escolha de um ou outro tipo de funo depende do objetivo da planilha. Por isso, a Ajuda do programa de planilha um valioso aliado. Ela contm a lista de todas as funes do programa, normalmente com exemplo. Para ilustrar, usaremos a funo estatstica MDIA e a funo lgica SE em uma planilha que controla a nota dos alunos de uma escola. Se a mdia for superior a 5, o aluno aprovado; caso contrrio, reprovado. Na tela abaixo, as notas foram digitadas nas colunas de B at E e suas mdias colocadas na coluna F, com o auxlio da funo MDIA. Essa funo calcula a mdia das clulas indicadas. Para aplic-la:

Digite a frmula =Mdia(B3:E3) na clula F3. Ela indica o prximo passo a ser dado: o clculo da mdia das clulas de B3 a E3 (a mdia de B3, C3, D3 24

e E3).

Clula Frmula

F3 =Mdia(B3:E3)

Para que o programa indique se um aluno foi aprovado ou no, a mdia obtida por esse aluno deve ser comparada com 5. Isso feito digitando-se a frmula =Se(F3<5;Reprovado;Aprovado) na clula G3.

O contedo da clula G3 determinado pela condio de teste F3<5. Ela exibir o Reprovado caso a condio F3<5 seja verdadeira, ou seja, se o aluno obtiver mdia inferior a 5. Mostrar o valor Aprovado no caso de a condio F3<5 ser falsa, ou seja, se o aluno obtiver uma mdia igual ou maior que 5.

Clula Frmula G3 =Se(F3<5;Reprovado;Aprovado)

25

INSERINDO E EXCLUINDO PLANILHAS


Uma pasta de trabalho padro apresenta, inicialmente, 3 planilhas. Caso necessite de mais planilhas, voc pode inclu-las, utilizando o seguinte comando: Inserir Planilha (SHIFT + F11).

Uma pasta de trabalho padro apresenta, inicialmente, 3 planilhas. Caso no necessite de todas, voc pode excluir as desnecessrias, selecionando-as e utilizando os comandos: Clique com o boto direito do mouse sobre a planilha e clique na opo Excluir.

26

RENOMEANDO PLANILHAS
No Microsoft Office Excel, um arquivo, ou seja, uma pasta, pode conter vrias planilhas diferentes, sendo, portanto, fundamental nome-las de maneira a distingui-las. A nomeao no grava a planilha, por isso necessrio utilizar o comando Salvar (CTRL + B). Para nomear a planilha, utilize um dos seguintes comandos: Clique duplamente na guia da planilha que deseja renomear. Digite o nome da planilha e pressione a tecla ENTER.

TRABALHANDO COM LINHAS E COLUNAS


INSERINDO E EXCLUINDO LINHAS E COLUNAS

Imagine que, durante a digitao de uma seqncia de dados, alguns dados foram esquecidos, ficando a tabela incompleta. Os dados podem ser introduzidos posteriormente nos locais corretos, bastando para isso fazer a escolha adequada entre as opes de insero, encontradas na guia Incio: Selecione o local adequado e clique na ferramenta Inserir, Inserir Linhas na Planilha ou Inserir Colunas na Planilha.

27

De modo semelhante possvel fazer a excluso de colunas ou linhas que tenham sido introduzidas equivocadamente ou que no sejam mais necessrias. O comando de excluso de linhas ou colunas pode ser encontrado na guia Incio, na ferramenta Excluir, Excluir Linhas da Planilha ou Excluir Colunas da Planilha.

ALTERANDO A ALTURA E LARGURA DE LINHAS E COLUNAS


A definio de tamanho extremamente comum para as linhas e colunas. Para alterar a altura de uma linha ou largura de uma coluna, faa o seguinte: aponte o mouse entre as linhas 1 e 2, clique e arraste para alterar a altura da linha ou aponte o mouse entre as colunas A e B, clique e arraste para alterar a largura da coluna.

FORMATANDO A TABELA
Seo Fonte

Voc pode mudar o visual das letras, nmeros ou outros caracteres digitados das clulas selecionadas.

Seo Alinhamento

Voc pode modificar o alinhamento das letras, nmeros ou outros caracteres digitados das clulas selecionadas. 28

Seo Nmero

Voc pode formatar os nmeros das clulas selecionadas.

INSERINDO E EXCLUINDO GRFICOS


Para inserir um grfico, selecione a rea com os dados que deseja apresentar nele. Selecione, inclusive, os dados que sero apresentados como legenda e como grfico.

Lembrasse: antes de fazer qualquer tipo de grfico necessrio selecionar pelo menos um grupo de textos para servir como legenda e um ou mais grupos de nmeros para servir como grfico. Selecione os meses que vo servir como legenda, mantenha a tecla CTRL pressionada e selecione os valores que vo servir como grficos, clique na guia Inserir e escolha um modelo de grfico mais adequado

29

Para apagar um grfico selecionado, tecle DELETE.

LEMBRETE:
Nas formulas usamos os operadores (+ - * /) Nas funes, escrevemos as operaes (soma, mximo, mnimo, media, se) Toda formula ou funo comea a ser escrita com o sinal (=)

30

Banco de Dados e SQL


Introduo
Devido carncia de literatura destinada ao ensino de Banco de Dados e SQL para estudantes, elaboramos a presente apostila, que no possui o intento de esgotar to abrangente volume de informaes, servindo to somente para estabelecer um mnimo de conhecimentos destinados a introduzir o estudante no mundo dos Gerenciadores de Banco de dados e da Linguagem SQL.

Banco de Dados
Todos ns sabemos existirem gigantescas bases de dados gerenciando nossas vidas. De fato sabemos que nossa conta bancria faz parte de uma coleo imensa de contas bancrias de nosso banco. Nosso Ttulo Eleitoral ou nosso Cadastro de Pessoa Fsica, certamente esto armazenados em Bancos de Dados colossais. Sabemos tambm que quando sacamos dinheiro no Caixa Eletrnico de nosso banco, nosso saldo e as movimentaes existentes em nossa conta bancria j esto nossa disposio. Nestas situaes sabemos que existe uma necessidade em se realizar o armazenamento de uma srie de informaes que no se encontram efetivamente isoladas umas das outras, ou seja, existe uma ampla gama de dados que se referem a relacionamentos existentes entre as informaes a serem manipuladas. Estes Bancos de Dados, alm de manterem todo este volume de dados organizado, tambm devem permitir atualizaes, incluses e excluses do volume de dados, sem nunca perder a consistncia. E no podemos esquecer que na maioria das vezes estaremos lidando com acessos concorrentes a vrias tabelas de nosso banco de dados, algumas vezes com mais de um acesso ao mesmo registro de uma mesma tabela! O fato de montarmos uma Mala Direta em um micro PC-XT com um drive j faz de ns um autor de um Banco de Dados? Claro que no! Um Banco de Dados antes de mais nada uma coleo logicamente coerente de dados com determinada significao intrnseca. Em outras palavras um arquivo contendo uma srie de dados de um cliente, um arquivo com dados aleatoriamente gerados e dois arquivos padro dbf (dBase) que tem uma relao definida entre ambos, no pode ser considerada uma Base de Dados Real. Um Banco de Dados contm os dados dispostos numa ordem pr-determinada em funo de um projeto de sistema, sempre para um propsito muito bem definido. Um Banco de Dados representar sempre aspectos do Mundo Real. Assim sendo uma Base de Dados (ou Banco de Dados, ou ainda BD) uma fonte de onde poderemos extrair uma vasta gama de informaes derivadas, que possui um nvel de interao com eventos como o Mundo Real que representa. A forma mais comum de interao 31

Usurio e Banco de Dados, d-se atravs de sistemas especficos que por sua vez acessam o volume de informaes geralmente atravs da linguagem SQL. Os Administradores de Banco de Dados (DBA) so responsveis pelo controle ao acesso aos dados e pela coordenao da utilizao do BD. J os projetistas de Banco de Dados (DBP) so analistas que identificam os dados a serem armazenados em um Banco de Dados e pela forma como estes sero representados. Os Analistas e Programadores de Desenvolvimento, criam sistemas que acessam os dados da forma necessria ao Usurio Final, que aquele que interage diretamente com o Banco de Dados.

SGBD x GA Um SGBD - Sistema de Gerenciamento de Banco de Dados uma coleo de programas que permitem ao usurio definir, construir e manipular Bases de Dados para as mais diversas finalidades. Um conceito que dever ficar bastante claro inicialmente o que envolve a separao clara entre os Gerenciadores de Base de Dados dos Gerenciadores de Arquivo. Sistemas baseados em "Banco de Dados" baseados em Btrieve e dBase (Fox e Clipper), podem no mximo simular as caractersticas tpicas de um ambiente de Banco de Dados. As linguagens Delphi (utiliza opcionalmente o padro dBase) e o VB (que utiliza o Access), recomendam a utilizao de Banco de Dados reais, porm utilizam queles "Banco de Dados" que possuem algumas caractersticas de Bancos de Dados, mas possuem caractersticas tpicas de Gerenciadores de Arquivo. Vamos definir algumas regras bsicas e claras para um sistema de manipulao de dados ser considerado um SGBD. Fica implcito que se ao menos uma das caractersticas abaixo no estiver presente no nosso "candidato" a SGBD, este poder ser um GA (Gerenciador de Arquivo) de altssima qualidade, "quase" um SGBD, mas no um SGBD. Regra 1: Auto-Conteno- Um SGBD no contm apenas os dados em si, mas armazena completamente toda a descrio dos dados, seus relacionamentos e formas de acesso. Normalmente esta regra chamada de Meta-Base de Dados. Em um GA, em algum momento ao menos, os programas aplicativos declaram estruturas (algo que ocorre tipicamente em C, COBOL e BASIC), ou geram os relacionamentos entre os arquivos (tpicos do ambiente xBase). Por exemplo, quando voc obrigado a definir a forma do registro em seu programa, voc no est lidando com um SGBD. Regra 2: Independncia dos Dados- Quando as aplicaes estiverem realmente imunes a mudanas na estrutura de armazenamento ou na estratgia de acesso aos dados, podemos dizer que esta regra foi atingida. Portanto, nenhuma definio dos dados dever estar contida nos programas da aplicao. Quando voc resolve criar uma nova forma de acesso, um novo ndice, se precisar alterar o cdigo de seu aplicativo, voc no est lidando com um SGBD.

32

Regra 3: Abstrao dos Dados - Em um SGBD real fornecida ao usurio somente uma representao conceitual dos dados, o que no inclui maiores detalhes sobre sua forma de armazenamento real. O chamado Modelo de Dados um tipo de abstrao utilizada para fornecer esta representao conceitual. Neste modelo, um esquema das tabelas, seus relacionamentos e suas chaves de acesso so exibidas ao usurio, porm nada afirmado sobre a criao dos ndices, ou como sero mantidos, ou qual a relao existente entre as tabelas que dever ser mantida ntegra. Assim se voc desejar inserir um pedido em um cliente inexistente e esta entrada no for automaticamente rejeitada, voc no est lidando com um SGBD. Regra 4: Vises- Um SGBD deve permitir que cada usurio visualize os dados de forma diferente daquela existente previamente no Banco de Dados. Uma viso consiste de um subconjunto de dados do Banco de Dados, necessariamente derivados dos existentes no Banco de Dados, porm estes no devero estar explicitamente armazenados. Portanto, toda vez que voc obrigado a replicar uma estrutura, para fins de acesso de forma diferenciada por outros aplicativos, voc no est lidando com um SGBD. Regra 5: Transaes - Um SGBD deve gerenciar completamente a integridade referencial definida em seu esquema, sem precisar em tempo algum, do auxlio do programa aplicativo. Desta forma exige-se que o banco de dados tenha ao menos uma instruo que permita a gravao de uma srie modificaes simultneas e uma instruo capaz de cancelar um srie modificaes. Por exemplo, imaginemos que estejamos cadastrando um pedido para um cliente, que este deseje reservar 5 itens de nosso estoque, que esto disponveis e portanto so reservados, porm existe um bloqueio financeiro (duplicatas em atraso) que impede a venda. A transao dever ser desfeita com apenas uma instruo ao Banco de Dados, sem qualquer modificaes suplementares nos dados. Caso voc se obrigue a corrigir as reservas, atravs de acessos complementares, voc no est lidando com um SGBD. Regra 6: Acesso Automtico - Em um GA uma situao tpica o chamado DeadLock, o abrao mortal. Esta situao indesejvel pode ocorrer toda vez que um usurio travou um registro em uma tabela e seu prximo passo ser travar um registro em uma tabela relacionada primeira, porm se este registro estiver previamente travado por outro usurio, o primeiro usurio ficar paralisado, pois, estar esperando o segundo usurio liberar o registro em uso, para que ento possa trav-lo e prosseguir sua tarefa. Se por hiptese o segundo usurio necessitar travar o registro travado pelo primeiro usurio (!), afirmamos que ocorreu um abrao mortal, pois cada usurio travou um registro e precisa travar um outro, justamente o registro anteriormente travado pelo outro! Imaginemos um caso onde o responsvel pelos pedidos acabou de travar o Registro Item de Pedido, e, necessita travar um registro no Cadastro de Produtos, para indicar uma nova reserva. Se concomitantemente estiver sendo realizada uma tarefa de atualizao de pendncias na Tabela de Itens, e para tanto, previamente este segundo usurio travou a Tabela de Produtos, temos a ocorrncia do abrao mortal. Se a responsabilidade de evitar esta ocorrncia for responsabilidade da aplicao, voc no est lidando com um SGBD. Concluso: Um SGBD deve obedecer INTEGRALMENTE as seis regras acima. Em caso contrrio estaremos diante de um GA ou de um "quase" SGBD.

33

Consideraes Finais Atualmente, existe uma tendncia de mercado em se dizer que qualquer problema ser resolvido, caso a empresa adquira um Banco de Dados. Naturalmente, em um ambiente com acesso constante ao Banco de Dados (acesso concorrente, obviamente), onde a segurana seja de vital importncia e que o desempenho da aplicao escrita estiver comprometendo a empresa, considerando-se logicamente uma aplicao bem escrita, sem dvida a aquisio de um Banco de Dados poder ser o primeiro passo na soluo do problema. Analogamente ao que ocorreu com o aparecimento das primeiras linguagens de programao voltadas ao Windows, onde estas foram apresentadas como capazes de alavancar os negcios da empresa, e no geral causaram mais frustrao do que soluo, a aquisio do Banco de Dados, pode gerar o mesmo tipo de problema. fundamental que a empresa candidata a utilizar um Banco de Dados, normatize totalmente, pois solues quebra-galho, tpicas do ambiente que dispe de um Gerenciador de Arquivo, tendem a ser impossveis em um ambiente estruturado sobre o Banco de Dados. Portanto, sob pena de se realizar um grande investimento, e no se colher fruto algum, muito conveniente, que a empresa antes de adquirir um Banco de Dados, passe por um processo de adaptao, preferencialmente contando com pessoal especializado, geralmente consultores, que no tenham qualquer ligao com fabricantes de Bancos de Dados. Caractersticas Gerais de um SGBD

Os SGBD tem sete caractersticas operacionais elementares sempre observadas, que passaremos a listar: Caracterstica 1: Controle de Redundncias - A redundncia consiste no armazenamento de uma mesma informao em locais diferentes, provocando inconsistncias. Em um Banco de Dados as informaes s se encontram armazenadas em um nico local, no existindo duplicao descontrolada dos dados. Quando existem replicaes dos dados, estas so decorrentes do processo de armazenagem tpica do ambiente Cliente-Servidor, totalmente sob controle do Banco de Dados. Caracterstica 2: Compartilhamento dos Dados - O SGBD deve incluir software de controle de concorrncia ao acesso dos dados, garantindo em qualquer tipo de situao a escrita/leitura de dados sem erros. Caracterstica 3: Controle de Acesso - O SGDB deve dispor de recursos que possibilitem selecionar a autoridade de cada usurio. Assim um usurio poder realizar qualquer tipo de acesso, outros podero ler alguns dados e atualizar outros e outros ainda podero somente acessar um conjunto restrito de dados para escrita e leitura. Caracterstica 4: Interfaceamento - Um Banco de Dados dever disponibilizar formas de acesso grfico, em linguagem natural, em SQL ou ainda via menus de acesso, no sendo uma "caixa-preta" somente sendo passvel de ser acessada por aplicaes. 34

Caracterstica 5: Esquematizao - Um Banco de Dados dever fornecer mecanismos que possibilitem a compreenso do relacionamento existentes entre as tabelas e de sua eventual manuteno. Caracterstica 6: Controle de Integridade - Um Banco de Dados dever impedir que aplicaes ou acessos pelas interfaces possam comprometer a integridade dos dados. Caracterstica 7: Backups - O SGBD dever apresentar facilidade para recuperar falhas de hardware e software, atravs da existncia de arquivos de "pr-imagem" ou de outros recursos automticos, exigindo minimamente a interveno de pessoal tcnico. Existe a possibilidade de encontramos Bancos de Dados que no satisfaam completamente todas as caractersticas acima, o que no o invlida como Banco de Dados. Na prtica podemos encontrar situaes onde a primeira caracterstica no seja importante, pois podemos ter o Banco de Dados baseado totalmente em um nico servidor, e as redundncias podem ser aceitas em algumas situaes sob controle da aplicao (algo no muito recomendado, mas passvel de aceitao, em situaes onde a existncia do nome do cliente em um arquivo contendo duplicatas emitidas, possibilita o acesso a apenas uma tabela sem relacionamentos, e sabe-se de antemo que uma duplicata depois de emitida, no pode ter seu cliente alterado). A segunda caracterstica (Compartilhamento dos Dados) pode ser desconsiderada principalmente em ambiente de desenvolvimento, ou ainda em aplicaes remotas. O Controle de Acesso pode ser descartado em pequenas empresas, sendo que o aplicativo em questo, mais o software de rede, podem facilmente se incumbir desta caracterstica, no caso de pequenas empresas, com reduzido nmero de pessoas na rea operacional. O Interfaceamento e a Esquematizao so caractersticas sempre disponveis, o que varia neste caso qualidade destes componentes, que vai desde o sofrvel at o estado da arte. muito conveniente que esta caracterstica seja muito boa em um Banco de Dados, onde estiverem em atuao mais de um Administrador de Banco de Dados e tivermos um nmero relativamente alto de sistemas desenvolvidos ou em desenvolvimento neste ambiente. De fato, quanto maior o nmero de pessoas envolvidas no desenvolvimento de aplicaes e gerenciamento do Banco de Dados, mais importante tornam-se estas duas caractersticas, pois cada novo sistema desenvolvido precisar sempre estar adequado ao Banco de Dados da Empresa e aderente aos padres de acesso utilizados nos sistemas concorrentes. As interfaces ISQL e WinSQL devem deixar muito claro ao estudante como uma interface pobre (no caso a existente no ISQL) perde muito, quando comparada a uma interface mais recursiva. A esquematizao existente no Banco de Dados muito melhor do que aquela mantida em alguma pasta, em algum arquivo do CPD, que sempre est um pouquinho desatualizada. O Controle de Integridade, outra caracterstica sempre presente nos Bancos de Dados, mas existem diferenas quando da implementao desta caracterstica. Assim, 35

comum encontrarmos Bancos de Dados que suportam determinado acesso, enquanto outros no dispe de recurso equivalente. O Backup em tempo de execuo, outra caracterstica sempre disponvel, porm temos aplicaes que invariavelmente so comprometidas por falhas de hardware, e outras, que o mesmo tipo de falha no causa perda alguma de dados ou de integridade. Novamente, cada Banco de Dados tem esta caracterstica melhor ou pior implementada, cabendo ao Administrador de Banco de Dados escolher aquele que lhe oferecer mais segurana. Devemos ressaltar ainda, que podemos ter um Banco de Dados Modelo A, que respeite integralmente as regras bsicas e disponha de todas as caractersticas apresentadas, enquanto um Modelo B que apesar de respeitar as regras bsicas, no suporte uma ou outra caracterstica desejvel, mas tenha um desempenho excelente, enquanto o Modelo A seja apenas razovel no quesito desempenho, nos levar seguramente a escolher o Modelo B como sendo o ganhador para nossa instalao! Isto ocorre pois, na prtica, todo usurio deseja um tempo de resposta muito pequeno. O chamado prazo de entrega muito comum em Bancos de Dados operando nos limites de sua capacidade, ou nos casos onde o hardware est muito desatualizado, fonte de inmeros problemas para o pessoal de informtica. Neste caso melhor abrirmos mo de uma Interface Amigvel, de um Gerenciamento Automtico de Backups ou ainda de outras caractersticas que no julgarmos fundamentais, para nos livrarmos do problema tpico de ambiente extremamente comprometido, por m performance do Banco de Dados. A escolha do Banco de Dados da empresa, portanto uma deciso muito delicada, na medida em que est ir acarretar troca de aplicativos e troca de hardware. Os investimentos diretamente aplicados no Banco de Dados, costumam ser infinitamente menores do que aqueles a serem aplicados na empresa, visando sua perfeita adequao ao novo SGBD. Esta deciso, sempre que possvel, deve ser tomada por especialistas em Banco de Dados, com profundos conhecimentos de Anlise de Sistemas, de Banco de Dados e de Software de Gerenciamento de Bases de Dados, de forma a evitar que a empresa escolha um Banco de Dados inadequado aos seus propsitos, e que pouco tempo depois, seja obrigada a perder todos investimento realizado em Software e Hardware. Componentes de um Banco de Dados Um Banco de Dados composto pelas seguintes partes: renciador de Acesso ao Disco: O SGBD utiliza o Sistema Operacional para acessar os dados armazenados em disco, controlando o acesso concorrente s tabelas do Banco de Dados. O Gerenciador controla todas as pesquisas queries) solicitadas pelos usurios no modo interativo, os acessos do compilador DML, os acessos feitos pelo Processador do Banco de Dados ao Dicionrio de Dados e tambm aos prprios dados.

O Compilador DDL (Data Definition Language) processa as definies do esquema do Banco de Dados, acessando quando necessrio o Dicionrio de Dados do Banco de Dados. 36

O Dicionrio de Dados contm o esquema do Banco de Dados, suas tabelas, ndices, forma de acesso e relacionamentos existentes.

O Processador do Banco de Dados manipula requisies prpria Base de Dados em tempo de execuo. o responsvel pelas atualizaes e integridade da Base de Dados.

O Processador de Pesquisas (queries) dos usurios, analisa as solicitaes, e se estas forem consistentes, aciona o Processador do Banco de Dados para acesso efetivo aos dados.

As aplicaes fazem seus acessos ao pr-compilador DML da linguagem hospedeira, que os envia ao Compilador DML (Data Manipulation Language) onde so gerados os cdigos de acesso ao Banco de Dados. Banco de Dados Relacional

O Modelo de Dados relacional representa os dados contidos em um Banco de Dados atravs de relaes. Estas relaes contm informaes sobre as entidades representadas e seus relacionamentos. O Modelo Relacional, claramente baseado no conceito de matrizes, onde as chamadas linhas (das matrizes) seriam os registros e as colunas (das matrizes) seriam os campos. Os nomes das tabelas e dos campos so de fundamental importncia para nossa compreenso entre o que estamos armazenando, onde estamos armazenando e qual a relao existente entre os dados armazenados. Cada linha de nossa relao ser chamada de TUPLA e cada coluna de nossa relao ser chamada de ATRIBUTO. O conjunto de valores passveis de serem assumidos por um atributo, ser intitulado de DOMNIO.

Toda a Informao de um banco de dados relacional armazenada em Tabelas, que na linguagem do modelo relaciona, tambm so chamadas de Entidades. Por exemplo, posso ter uma Tabela "Clientes", onde seriam armazenadas informaes sobre os diversos clientes. Essas diversas caractersticas de cada Cliente so os "Atributos" da entidade Cliente, tambm chamados de campos da tabela Cliente. Com isso temos uma Tabela que constituda por um conjunto de Registros (uma linha completa com informaes sobre o cliente) e cada Registro formado por um conjunto de atributos (Nome, Endereo, etc). Um dos grandes desafios em se projetar um Banco de Dados com sucesso a correta Determinao das Entidades que existiro no Banco de Dados, bem como dos Atributos de Cada Entidade. 37

Chave Primria - O Conceito de "Chave Primria" fundamental para o correto entendimento de como funciona um Banco de Dados baseado no modelo relacional. Vamos entender o que significa um campo ser a Chave Primria de uma Tabela e como tornar um Campo a Chave Primria de uma Tabela. "Ao Definirmos um Campo como sendo uma Chave Primria, estamos informando ao SGBD que no podem existir dois registros com o mesmo valor no campo que a Chave Primria, ou seja, os valores no campo Chave Primria precisam ser nicos". Por exemplo, se defino um campo "Nmero da Identidade", da tabela Clientes, como sendo um campo do tipo Chave Primria, estou dizendo que no podem ser cadastrados dois clientes com o mesmo valor no campo "Nmero da Identidade". Na prtica estou garantindo que no possam ser cadastrados dois clientes com o mesmo Nmero de Identidade". Exemplos de Chaves primrias . Campo CPF. . Campo CNPJ. . Matrcula do aluno. . Cdigo da Pea. . Matrcula do funcionrio. . Nmero do pedido. Aps ter definido um campo como sendo a Chave Primria da tabela, o prprio banco de dados (quer seja Access, SQL Server, ORACLE ou qualquer outro), garante que no sejam inseridos dados duplicados no campo que a chave primria. Um ltimo detalhe importante para lembrarmos que a Chave Primria pode ser formada pela combinao de Mais de Um Campo. Podem existir casos em que um nico campo no capaz de atuar como chave primria, pelo fato deste apresentar valores repetidos. Nestes casos podemos definir uma combinao de 2 ou mais campos para ser a nossa chave primria.No podemos definir 2 chaves primrias em uma tabela. Chave Composta - aquela chave que contm mais de um atributo (Por exemplo um cadastro ordenado alfabeticamente por Estado, Cidade e Nome do Cliente, necessitaria de uma chave composta que contivesse estes trs atributos). Chave Estrangeira - aquela chave que permitir a ligao lgica entre uma tabela (onde ela se encontra) com outra na qual ele chave primria. Relacionamentos entre Tabelas relacionamentos entre as tabelas. Por exemplo: Um Pedido feito por um Cliente e neste Pedido podem existir diversos itens, itens que so gravados na tabela Detalhes do Pedido. Alm disso cada Pedido possui um nmero nico (Cdigo do pedido), mas um mesmo Cliente pode fazer diversos pedidos e assim por diante. Em um banco de dados, precisamos de alguma maneira para representar estes relacionamentos da vida Real, em termos das tabelas e de seus atributos. Isto 38

possvel com a utilizao de "Relacionamentos entre tabelas", os quais podem ser de trs tipos: . Um para Um (1:1) . Um para Vrios (1:N) . Vrios para Vrios (N:N) Relacionamento do Tipo Um para Um: Esta relao existe quando os campos que se relacionam so ambos do tipo Chave Primria, em suas respectivas tabelas. Cada um dos campos no apresenta valores repetidos. Na prtica existem poucas situaes onde utilizaremos um relacionamento deste tipo. Um exemplo poderia ser o seguinte: Imagine uma escola com um Cadastro de Alunos na tabela Alunos, destes apenas uma pequena parte participa da Banda da Escola. Por questes de projeto do Banco de Dados, podemos criar uma Segunda Tabela "Alunos da Banda", a qual se relaciona com a tabela Alunos atravs de um relacionamento do tipo Um para Um. Cada aluno somente cadastrada uma vez na Tabela Alunos e uma nica vez na tabela Alunos da Banda. Poderamos utilizar o Campo Matrcula do Aluno como o Campo que relaciona as duas Tabelas. Importante: O campo que relaciona duas tabelas deve fazer parte, ter sido definido, na estrutura das duas tabelas. Na Figura a seguir vemos o exemplo de um Relacionamento do tipo Um para Um entre as tabelas Alunos e Alunos da Banda.

Figura 1: Relacionamento Um para Um entre as Tabelas Alunos e Alunos da Banda Com a criao deste relacionamento estamos evitando a repetio desnecessria de informaes em diferentes tabelas. Relacionamento do Tipo Um para Vrios: Este , com certeza, o tipo de relacionamento mais comum entre duas tabelas. Uma das tabelas (o lado um do relacionamento) possui um campo que a Chave Primria e a outra tabela (o lado vrios) se relaciona atravs de um campo cujos valores relacionados podem se repetir vrias vezes. Considere o exemplo entre a tabela Clientes e Pedidos. Cada Cliente somente cadastrado uma nica vez na tabela de Clientes (por isso o campo Cdigo do Cliente, na tabela Clientes, uma chave primria, indicando que no podem ser cadastrados dois clientes com o mesmo cdigo), portanto a tabela Clientes ser o lado um do 39

relacionamento. Ao mesmo tempo cada cliente pode fazer diversos pedidos, por isso que o mesmo Cdigo de Cliente poder aparecer vrias vezes na tabela Pedidos: tantas vezes quantos forem os pedidos que o Cliente tiver feito. Por isso que temos um relacionamento do tipo Um para Vrios entre a tabela Clientes e Pedidos, atravs do campo Cdigo do Cliente, indicando que um mesmo Cliente pode realizar diversos (vrios) pedidos. Na prxima figura vemos um exemplo de um Relacionamento Um para Vrios entre as Tabelas Clientes e Pedidos do banco de dados Pedidos.mdb, atravs do campo cdigo do cliente:

Figura 2: Relacionamento Um para Vrios entre as Tabelas Clientes e Pedidos

Relacionamento do tipo Vrios para Vrios: Este tipo de relacionamento "aconteceria" em uma situao onde em ambos os lados do relacionamento os valores poderiam se repetir. Vamos considerar o caso entre Produtos e Pedidos. Posso ter Vrios Pedidos nos quais aparece um determinado produto, alm disso vrios Produtos podem aparecer no mesmo Pedido. Esta uma situao em que temos um Relacionamento do Tipo Vrios para Vrios. Na prtica no possvel implementar um relacionamento deste tipo, devido a uma srie de problemas que seriam introduzidos no modelo do banco de dados. Por exemplo, na tabela Pedidos teramos que repetir o Nmero do Pedido, Nome do Cliente, Nome do Funcionrio, Data do Pedido, etc. para cada item do Pedido. Para evitar este tipo de problema bastante comum "quebrarmos" um relacionamento do tipo Vrios para Vrios em dois relacionamentos do tipo Um para Vrios. Isso feito atravs da criao de uma nova tabela, a qual fica com o lado, Vrios dos relacionamentos. No nosso exemplo vamos criar a tabela Detalhes do Pedido, onde ficam armazenadas as informaes sobre os diversos itens de cada pedido, a ao invs de termos um relacionamento do tipo Vrios para Vrios, teremos dois relacionamentos do tipo um para vrios, conforme descrito pela prxima tabela: 40

Na figura abaixo temos a representao dos dois relacionamentos Um para Vrios, resultantes da quebra do relacionamento vrios-para-vrios:

Tabela Detalhes do Pedido ficou com o lado, Vrios dos Relacionamentos.

Integridade Referencial A Integridade Referencial utilizada para garantir a Integridade dos dados entre as tabelas relacionadas. Por exemplo, considere um relacionamento do tipo Um-paraVrios entre a tabela Clientes e a tabela Pedidos (um cliente pode fazer vrios pedidos). Com a Integridade Referencial, o banco de dados no permite que seja cadastrado um pedido para um cliente que ainda no foi cadastrado. Em outras palavras, ao cadastrar um pedido, o banco de dados verifica se o cdigo do cliente que foi digitado j existe na tabela Clientes. Se no existir, o cadastro do pedido no ser aceito. Com o uso da Integridade Referencial possvel ter as seguintes garantias (ainda usando o exemplo entre as tabelas Clientes e Pedidos): . Quando o Cdigo de um cliente for alterado na Tabela Clientes, podemos configurar para o banco de dados atualizar, automaticamente, todos os Cdigos do Cliente na Tabela Pedidos, de tal maneira que no fiquem Registros rfos, isto , registros de Pedidos com um Cdigo de Cliente para o qual no existe mais um correspondente na Tabela Clientes. Essa ao conhecida como "Propagar atualizao dos campos relacionados". . Quando um Cliente for excludo da Tabela Clientes, podemos configurar para que o banco de dados exclua, automaticamente, na tabela Pedidos, todos os Pedidos para o Cliente que est sendo Excludo. Essa opo conhecida como "Propagar excluso dos registros relacionados". Modelagem de Dados Um banco de dados representa uma coleo de dados que possui algum significado e objetiva atender a um conjunto de usurios. Por exemplo , um catlogo telefnico pode ser considerado um BD, sendo assim um BD no necessariamente est informatizado. Quando resolvemos informatizar um BD, utilizamos um programa especial para essa tarefa, o denominado SGBD ( Sistema de Gerenciamento de Banco de Dados ). 41

Podemos citar como exemplos o SQL Server, Access, Oracle, MySql, InterBase, FireBord, entre outros. Estes programas em geral armazenam os dados em uma estrutura chamada Tabela. Nesse modelo, as tabelas so relacionadas, permitindo assim que possamos recuperar informaes envolvendo vrias delas. Observe o exemplo abaixo : Tabela Clientes Cdigo 1 2 3 Tabela Telefones Cdigo 1 1 3

Nome Marcio Marcos Luciane

DataNascimento 1/6/1975 5/8/1980 10/5/1970

Fone 22548954 88512547 26539955

Tipo Residencial Celular Residencial

Neste caso, a Tabela Clientes est relacionada com a tabela Telefones. Note que o cliente Marcio tem 2 telefones : um Residencial e outro Celular. Entretanto, para que possamos implementar, de forma correta, um BD utilizando um SGBD , temos que passar por uma fase intermediria e no menos importante, chamada modelagem de dados. Est etapa dividida em 3 partes : - Entendendo o problema; - Construo do MER Modelagem de Dados e Relacionamento - Implementao ( SGBD )

Entender determinado problema nem sempre uma tarefa fcil, principalmente se voc no est familiarizado com a rea de atuao de seu cliente. O profissional de informtica precisa dominar a tecnologia, e alm disso precisa saber ouvir o cliente e ao mesmo tempo entender o que realmente ele precisa. Antes da implementao em um SGBD, precisamos de uma descrio formal da estrutura do banco de dados ( MER ).

42

Entidade Pode ser entendida como uma coisa ou algo da realidade onde se deseja manter informaes no banco de dados. Por exemplo, em um colgio, algumas entidades podem ser os alunos, horrios, professores, matrias e avaliaes. Note que uma entidade pode ser tanto objetos concretos ( Alunos ) como abstratos ( Horrios ). A entidade representada por um retngulo. Relacionamento um conjunto de associaes entre entidades. O relacionamento representado por um losango. Esse losango ligado por linhas aos retngulos que representam as entidades participantes do relacionamento.

Cardinalidade do relacionamento

Empregado

Possui

Dependente

Estamos diante de um relacionamento (possui) entre as entidades Empregado e Dependente. Considere as seguintes perguntas : - Um empregado pode no ter dependentes ? Pode - Um dependente pode ter mais de um empregado associado ? Pode Pai e Me - Determinado empregado pode ter mais de um dependente ? Pode 2 filhos - Pode existir dependentes sem algum empregado associado ? No Na realidade, as respostas dessas perguntas dependem do problema sendo modelado. Entretanto , para que possamos expressar essas idias no modelo, necessrio definir uma propriedade importante a cardinalidade. A Cardinalidade um nmero que expressa o comportamento ( nmero de ocorrncias ) de determinada entidade associada a uma ocorrncia da entidade em questo atravs do relacionamento. Existem dois tipos de cardinalidade : mnima e mxima. A cardinalidade mxima expressa o nmero mximo de ocorrncias de uma determinada entidade, associada a uma ocorrncia da entidade em questo, atravs do relacionamento. A cardinalidade mnima, expressa o nmero mnimo de ocorrncias de determinada entidade associada a uma ocorrncia da entidade em questo atravs do relacionamento. Usaremos a seguinte conveno para expressar a cardinalidade:

43

Nmero ( mnimo, mximo )

Empregado

(1,1)

Possui

(0,N)

Dependente

Para fazermos a leitura do modelo, partimos de determinada entidade e a cardinalidade correspondente representada do lado oposto. Em nosso exemplo , a cardinalidade (0,N) faz referencia a entidade Empregado, j a cardinalidade (1,1) faz referencia a entidade Dependente. Na Prtica , para as cardinalidades mximas , costumamos usar dois tipos : 1 e N, j para a mnima costumamos usar : 0 e 1 Atributo uma caracterstica relevante associada a cada ocorrncia de entidade ou relacionamento. Observe no modelo abaixo a notao utilizada para atributos :

Telefone

Nome Cdigo

Cardinalidade do atributo : Observe que no modelo acima no informa se determinado aluno pode ter vrios telefones, ou mesmo se algum aluno pode no ter telefones. Para deixar o modelo mais preciso, costumamos expressar cardinalidade para atributos. Observe a cardinalidade do atributo telefone no modelo abaixo :

44

Telefone (0,N)

Nome Cdigo

Dessa forma, podemos concluir que determinado aluno pode no ter telefone ou pode ter vrios. A cardinalidade dos atributos cdigo e nome (1,1). Por conveno , ela foi omitida do diagrama. No caso de cardinalidade mnima = 1 indica que o atributo obrigatrio e 0 que ele opcional. Para deixarmos o modelo de entidade e relacionamento mais preciso, necessrio distinguir uma ocorrncia da outra. Sendo assim, cada entidade deve possuir um identificador. H vrias formas de identificarmos entidades:

Aluno

Nome Cdigo

Neste caso, a entidade aluno possui um nico identificador (cdigo). Em outras palavras, cada aluno deve possuir um cdigo diferente. Existem situaes onde necessrio mais de um atributo para identificar determinada entidade:

45

Fabricante Prateleira Nmero do Corredor

Nmero da prateleira

Imagine uma biblioteca onde os livros ficam armazenados em prateleiras. Estas prateleiras encontram-se organizadas em corredores. Desta forma, para identificar uma prateleira necessrio conhecer seu nmero, alm do nmero do corredor correspondente.

SQL - Structured Query Language

Introduo Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas sua manipulao. O Departamento de Pesquisas da IBM, desenvolveu a SQL como forma de interface para o sistema de BD relacional denominado SYSTEM R, incio dos anos 70. Em 1986 o American National Standard Institute ( ANSI ), publicou um padro SQL. A SQL estabeleceu-se como linguagem padro de Banco de Dados Relacional. SQL apresenta uma srie de comandos que permitem a definio dos dados, chamada de DDL (Data Definition Language), composta entre outros pelos comandos Create, que destinado criao do Banco de Dados, das Tabelas que o compe, alm das relaes existentes entre as tabelas. Como exemplo de comandos da classe DDL temos os comandos Create, Alter e Drop. Os comandos da srie DML (Data Manipulation Language), destinados a consultas, inseres, excluses e alteraes em um ou mais registros de uma ou mais tabelas de maneira simultnea. Como exemplo de comandos da classe DML temos os comandos Select, Insert, Update e Delete. Uma subclasse de comandos DML, a DCL (Data Control Language), dispe de comandos de controle como Grant e Revoke. A Linguagem SQL tem como grandes virtudes sua capacidade de gerenciar ndices, sem a necessidade de controle individualizado de ndice corrente, algo muito comum nas linguagens de manipulao de dados do tipo registro a registro. Outra caracterstica muito importante disponvel em SQL sua capacidade de construo de vises, que so formas de visualizarmos os dados na forma de listagens independente das tabelas e organizao lgica dos dados. Outra caracterstica interessante na linguagem SQL a capacidade que dispomos de cancelar uma srie de atualizaes ou de as gravarmos, depois de iniciarmos uma 46

seqncia de atualizaes. Os comandos Commit e Rollback so responsveis por estas facilidades. Devemos notar que a linguagem SQL consegue implementar estas solues, somente pelo fato de estar baseada em Banco de Dados, que garantem por si mesmo a integridade das relaes existentes entre as tabelas e seus ndices.

PARTE I - Comandos de Modificaes do Esquema e Criao de Banco de Dados Comando Create Este comando permite a criao de tabelas no banco de dados ou mesmo de sua criao. Sintaxe: CREATE DATABASE < nome_db >; onde: nome_db - indica o nome do Banco de Dados a ser criado.

Sintaxe: CREATE TABLE < nome_tabela > ( nome_atributo1 < tipo > [ NOT NULL ], nome_atributo2 < tipo > [ NOT NULL ], ...... nome_atributoN < tipo > [ NOT NULL ] ) ; onde: nome_table indica o nome da tabela a ser criada. nome_atributo indica o nome do campo a ser criado na tabela. tipo indica a definio do tipo de atributo ( integer(n), char(n), real(n,m), date... ). n- nmero de dgitos ou de caracteres m- nmero de casas decimais Agora vamos criar uma tabela. Use o editor para salvar em um arquivo ou digite na linha de comando do ISQL. CREATE DATABASE TRABALHO; O comando acima criou um Banco de Dados, porm este na verdade no passa de uma abertura no diretrio, pois no conta com nenhuma tabela. Agora criaremos as tabelas que estaro contidas no Banco de Dados TRABALHO. A primeira Tabela ser a de Departamentos (DEPT). Esta tabela conter alm dos campos tambm sua chave primria, suas chaves estrangeiras e tambm seus ndices. A segunda tabela ser a de Empregados (EMP), que tambm ser criada. No devemos esquecer de primeiramente abrirmos o Banco de Dados. Diferentemente do que ocorre em alguns aplicativos, em SQL o fato de criarmos um Banco de Dados, 47

no significa que o banco recm criado j est preparado para utilizao. A instruo a seguir, providencia a abertura do Banco de Dados criado. OPEN DATABASE TRABALHO; Agora estamos prontos para criarmos as tabelas necessrias. Lembramos aos Estudantes, que o Arquivo TABS.SQL, contm todas as instrues necessrias para criao do Banco de Dados Trabalho e de suas tabelas. J o Arquivo DADOS.SQL ir popular estas tabelas. Para efeitos didticos, criamos as tabelas de forma que sua populao, em outras palavras os dados, sejam facilmente referenciveis pelos estudantes. Assim sendo, na tabela de departamentos, contamos com 5 departamentos, cada um deles tendo seu gerente. Todos os gerentes tem nomes de cantoras brasileiras (Gal Costa, Marina Lima, etc), todos os operrios tem nomes de jogadores de futebol, todas as vendedoras tem nomes de jogadoras de vlei, todas as balconistas tem nome de jogadoras de basquete e o presidente da empresa exemplo, tem o mesmo nome do presidente do Brasil. Desta forma os testes devem resultar em grupos bastante definidos. Assim se voc estiver listando Gerentes e aparecer um homnimo da Ana Paula (jogadora de vlei), verifique sua query atentamente, pois muito provavelmente a mesma estar errada. A seguir cdigo necessrio criao da tabela Departamento e seu ndice: create table Dept (DepNume integer(4) not null, DepNome char(20) not null, DepLoca char(20) not null, DepOrca integer(12,2), primary key (DepNume) ); create unique index DepNum on Dept (DepNume asc); Note-se que a chave primria j est definida juntamente com o registro da tabela. A criao do ndice, que por razes bvias deve ser criado aps a tabela, naturalmente um comando totalmente independente do primeiro create, que serviu para criar a tabela e suas caracterstica bsicas. Vamos analisar o cdigo necessrio para a criao da tabela de empregados, apresentado a seguir: create table Emp (EmpNume integer(5) not null, EmpNome char(30) not null, EmpGere integer(5) , EmpServ char(20) , DepNume integer(4) not null, EmpAdmi date not null, EmpSala integer(10,2), EmpComi integer(10,2), primary key (EmpNume), foreign key has (DepNume) 48

references Dept on delete restrict on update cascade ); create unique index EmpNum on Emp (EmpNume asc); create index EmpDep on Emp (DepNume asc); A Tabela de Empregados no poderia ter sido criada antes da Tabela de Departamento, pois contm uma referncia direta quela tabela. Quando declaramos que DepNume chave estrangeira, promovemos de fato a ligao do cadastro de empregados como o cadastro de departamentos. Ao restringirmos as excluses, permitimos a existncia de funcionrios no alocados a nenhum departamento. Apesar desta prtica ser contrria a tese de que devemos possuir apenas tuplas perfeitamente relacionveis em nossas tabelas, podemos deixar esta pequena abertura, pois um usurio que excluisse inadvertidamente determinado departamento, acabaria por excluir tambm uma grande quantidade de funcionrios, que estivessem ligados a este departamento. J a atualizao em cascata dos cdigos de departamento uma boa providncia, na medida em que teremos, uma vez alterado algum cdigo de departamento, a atualizao imediata de todos os funcionrios pertencentes ao departamento cujo cdigo foi modificado. Observaes: 1 - Observar que os ndices so parte intrnseca das tabelas. 2 - A integridade relacional garantida pelo Banco de Dados e no pelo aplicativo. 3 - Excluses ou Alteraes em Chaves Primrias, podem acarretar excluses, anulaes ou at mesmo perda de integridade nas tabelas onde esta chave primria existir como chave estrangeira. Portanto imprescindvel muito cuidado quando da elaborao do Banco de Dados. Uma tentao muito comum ao estudante comear criando as tabelas do Banco de Dados sem prvia Normalizao. Este talvez seja o melhor caminho para perder-se tempo em vo, pois quando voc terminar de projetar suas telas de entrada de dados, notar "que nada funciona!". Esta ser a senha para usar o velho comando DEL do DOS e depois comear tudo de novo... Comando Drop Este comando elimina a definio da tabela, seus dados e referncias. Sintaxe: DROP TABLE < nome_tabela > ; Ex: DROP TABLE EMP;

49

Comando Alter Este comando permite inserir/eliminar atributos nas tabelas j existentes. Comando: ALTER TABLE < nome_tabela > ADD / DROP ( nome_atributo1 < tipo > [ NOT NULL ], nome_atributoN < tipo > [ NOT NULL ] ) ; No existe nenhum comando SQL que permita eliminar algum atributo de uma relao j definida. Assim caso voc desejar eliminar uma chave primria devidamente referenciada em outra tabela como chave estrangeira, ao invs de obter a eliminao do campo, obter apenas um erro. Alm do comando DROP que poder eliminar uma tabela e suas relaes, tambm podemos criar uma relao que tenha os atributos que se deseja, copiar-se a relao antiga sobre a nova e apagando-se ento a relao que originalmente desejvamos eliminar. Ex: ALTER TABLE DEPT ( ADD DEPSALA DECIMAL (10,2) ); Exerccio: Criar o Banco de Dados Mundo. Observar que se um continente for excludo, todos os pases contidos em tal continente tambm o sero. Esta situao conhecida como excluso em Cascata. Observar tambm que a excluso de um Pas eliminar todas as Cidades contidas no mesmo. Prtica O Exemplo Trabalho j possui pequeno programa destinado a construo das tabelas contidas no Banco de Dados TRABALHO. Execute "trabalho.sql" de forma a obter as tabelas acima sem necessidade de digitar as instrues SQL de maneira interativa. Para tanto, voc dever copiar para seu diretrio de trabalho o arquivo "trabalho.sql" do diretrio \IDEO\SQL. Execute: "@trabalho;" que dever: - Criar o banco de dados Trabalho. - Abrir o banco de dados Trabalho. - Criar as Tabelas, ndices e Relaes contidas neste Banco de Dados. Posteriormente execute o comando "show tables", que dever exibir as tabelas "dept" e "emp". E ao executar "show fields dept" sero exibidos os campos da tabela "dept". Copie e execute enchetra.sql do diretrio \IDEO\SQL de forma a obter um conjunto de dados preparados para os testes a seguir apresentados. Na prxima etapa de nosso curso, estaremos realizando pesquisas utilizando a instruo Select. Julgamos conveniente que os estudantes populem seu exerccio e realizem exerccios anlogos aos apresentados na Base de Dados Trabalho no Banco de Dados Mundo.

50

Parte II - Comandos de Consulta ao Esquema


Devemos ressaltar que a linguagem SQL utilizada tanto pelos profissionais responsveis pelos dados, onde ressaltada a figura do Administrador do Banco de Dados e dos Analistas de Dados, como tambm pelos desenvolvedores de Aplicaes. Enquanto queles esto preocupados com o desempenho, integridade do Banco de Dados e utilizam toda gama de recusos disponveis no SQL, estes esto preocupados apenas em "transformar dados em informaes", portanto para os desenvolvedores costuma-se dizer que conhecer o "select" j basta. Em nosso curso enfatizaremos a importncia de TODOS os comandos do SQL, mas sabemos de antemo que os professores responsveis pelas linguagens IDEO, VB e Delphi, ressaltaro a preponderncia da instruo "select", que ser apresentada a seguir e no no final do curso de SQL como geralmente acontece, pelo fato de que diversas disciplinas necessitam especificamente deste comando, que passaremos a apresentar: 1) Seleo de todas os campos (ou colunas) da tabela de Departamentos. Resp: SELECT * FROM DEPT; O exemplo utiliza o coringa "*" para selecionar as colunas na ordem em que foram criadas. A instruo Select, como pudemos observar seleciona um grupo de registros de uma (ou mais) tabela(s). No caso a instruo From nos indica a necessidade de pesquisarmos tais dados apenas na tabela Dept. Where como base das Restrio de tuplas. A clusula "where" corresponde ao operador restrio da lgebra relacional. Contm a condio que as tuplas devem obedecer a fim de serem listadas. Ela pode comparar valores em colunas, literais, expresses aritmticas ou funes. A seguir apresentamos operadores lgicos e complementares a serem utilizados nas expresses apresentadas em where. Operadores lgicos operador = > >= < <= significado igual a maior que maior que ou igual a menor que menor que ou igual a

Exemplos: SELECT EMPNOME, EMPSERV FROM EMP WHERE DEPNUME > 10; SELECT EMPNOME, EMPSERV 51

FROM EMP WHERE EMPSERV = 'GERENTE'; O conjunto de caracteres ou datas devem estar entre apstrofes () "where". na clusula

2) Selecione todos os departamentos cujo oramento mensal seja maior que 100000. Apresente o Nome de tal departamento e seu oramento anual, que ser obtido multiplicando-se o oramento mensal por 12. Resp: Neste problema precisamos de uma expresso que a combinao de um ou mais valores, operadores ou funes que resultaro em um valor. Esta expresso poder conter nomes de colunas, valores numricos, constantes e operadores aritmticos. SELECT DEPNOME, DEPORCA * 12 FROM DEPT WHERE DEPORCA > 100000;

3) Apresente a instruo anterior porm ao invs dos "feios" DepNome e DepOrca, os Ttulos Departamento e Oramento. Resp: Neste exemplo deveremos denominar colunas por apelidos. Os nomes das colunas mostradas por uma consulta, so geralmente os nomes existentes no Dicionrio de Dado, porm geralmente esto armazenados na forma do mais puro "informatiqus", onde "todo mundo" sabe que CliCodi significa Cdigo do Cliente. possvel (e provvel) que o usurio desconhea estes smbolos, portanto devemos os apresentar dando apelidos s colunas "contaminadas" pelo informatiqus, que apesar de fundamental para os analistas, somente so vistos como enigmas para os usurios. SELECT DEPNOME "DEPARTAMENTO", DEPORCA * 12 "ORCAMENTO ANUAL" FROM DEPT WHERE DEPORCA > 100000;

4) Apresente todos os salrios existentes na empresa, porm omita eventuais duplicidades. Resp: A clusula Distinct elimina duplicidades, significando que somente relaes distintas sero apresentadas como resultado de uma pesquisa. SELECT DISTINCT EMPSERV FROM EMP; 5) Apresente todos os dados dos empregados, considerando sua existncia fsica diferente de sua existncia lgica (ou seja devidamente inicializado). Resp: Desejamos um tratamento diferenciado para valores nulos. Qualquer coluna de uma tupla que no contenha informaes denominada de nula, portanto informao no existente. Isto no o mesmo que "zero", pois zero um nmero como outro 52

qualquer, enquanto que um valor nulo utiliza um "byte" de armazenagem interna e so tratados de forma diferenciada pelo SQL. SELECT EMPNOME, EMPSALA + EMPCOMI FROM EMP; SELECT EMPNOME, NVL(EMPSALA,0) + NVL(EMPCOMI,0) FROM EMP; Obs: a funo "NVL" utilizada para converter valores nulos em zeros. 6) Apresente os nomes e funes da cada funcionrio contidos na tabela empresa, porm classificados alfabeticamente (A..Z) e depois alfabeticamente invertido (Z..A). Resp: A clusula Order By modificar a ordem de apresentao do resultado da pesquisa (ascendente ou descendente). SELECT EMPNOME, EMPSERV FROM EMP ORDER BY EMPNOME; SELECT EMPNOME, EMPSERV FROM EMP ORDER BY EMPPNOME DESC; Nota: Tambm possvel fazer com que o resultado da pesquisa venha classificado por vrias colunas. Sem a clusula "order by" as linhas sero exibidas na seqncia que o SGBD determinar.

7) Selecione os Nomes dos Departamentos que estejam na fbrica. Resp: SELECT DEPNOME FROM DEPT WHERE DEPLOCA = "SAO PAULO"; O exemplo exigiu uma restrio (So Paulo) que nos obrigou a utilizar da instruo Where. Alguns analistas costumam afirmar em tom jocoso que SQL no passa de "Selecione algo De algum lugar Onde se verificam tais relaes" Acreditamos que esta brincadeira pode ser til ao estudante, na medida em que facilita sua compreenso dos objetivos elementares do SQL.

53

Demais Operadores Operador Significado between ... and ... entre dois valores ( inclusive ) in ( .... ) lista de valores like com um padro de caracteres is null um valor nulo Exemplos: SELECT EMPNOME, EMPSALA FROM EMP WHERE EMPSALA BETWEEN 500 AND 1000; SELECT EMPNOME, DEPNUME FROM EMP WHERE DEPNUME IN (10,30); SELECT EMPNOME, EMPSERV FROM EMP WHERE EMPNOME LIKE 'F%'; SELECT EMPNOME, EMPSERV FROM EMP WHERE EMPCOMI IS NULL; O smbolo "%" pode ser usado para construir a pesquisa ("%" = qualquer seqncia de nenhum at vrios caracteres). Operadores Negativos operador <> not nome_coluna = not nome_coluna > not between not in not like is not null descrio diferente diferente da coluna no maior que no entre dois valores informados no existente numa dada lista de valores diferente do padro de caracteres informado no um valor nulo

8) Selecione os Empregados cujos salrios sejam menores que 1000 ou maiores que 3500. Resp: Necessitaremos aqui a utilizao de expresso negativas. A seguir apresentamos operadores negativos.

SELECT EMPNOME, EMPSALA FROM EMP WHERE EMPSALA NOT BETWEEN 1000 AND 3500; 54

9) Apresente todos os funcionrios com salrios entre 200 e 700 e que sejam Vendedores. Resp: Necessitaremos de consultas com condies mltiplas. Operadores "AND" (E) e "OR" (OU). SELECT EMPNOME, EMPSALA, EMPSERV FROM EMP WHERE EMPSALA BETWEEN 700 AND 2000 AND EMPSERV = 'VENDEDOR';

10) Apresente todos os funcionrios com salrios entre 200 e 700 ou que sejam Vendedores. Resp: SELECT EMPNOME, EMPSALA, EMPSERV FROM EMP WHERE EMPSALA BETWEEN 700 AND 2000 OR EMPSERV = 'VENDEDOR'; 11) Apresente todos os funcionrios com salrios entre 200 e 700 e que sejam Vendedores ou Balconistas. Resp: SELECT EMPNOME, EMPSALA, EMPSERV FROM EMP WHERE EMPSALA BETWEEN 700 AND 2000 AND ( EMPSERV = 'BALCONISTA' OR EMPSERV = 'VENDEDOR' );

Funes de Caracteres Lower Upper Concat(x,y)Substring(x,y,str)"y". To_Char(num)To_Date(char,fmt)^Q fora caracteres maisculos aparecerem em minsculos. fora caracteres minsculos aparecerem em maisculos. concatena a string "x" com a string "y". extrai um substring da string "str", comeando em "x", e termina em converte um valor numrico para uma string de caracteres. converte uma string caracter em uma data. converte data para o formato apresentado.

12) Apresente o nome de todos os empregados em letras minsculas. Resp: SELECT LOWER( EMPNOME ) FROM EMP; 55

13) Apresente o nome de todos os empregados (somente as 10 primeiras letras). Resp: SELECT SUBSTRING (1,10,EMPNOME) FROM EMP;

14) Apresente o nome de todos os empregados admitidos em 01/01/80. Resp: SELECT * FROM EMP WHERE EMPADMI = ^Q"DD-AAA-YYYY"("01-JAN-1980"); ou SELECT * FROM EMP WHERE EMPADMI = ^Q("01-JAN-1980"); Funes Agregadas (ou de Agrupamento) funo avg(n) count(expr) max(expr) min(expr) sum(n) retorno mdia do valor n, ignorando nulos vezes que o nmero da expr avalia para algo no nulo maior valor da expr menor valor da expr soma dos valores de n, ignorando nulos

15) Apresente a Mdia, o Maior, o Menor e tambm a Somatria dos Salrios pagos aos empregados. Resp: SELECT AVG(EMPSALA) FROM EMP; SELECT MIN(EMPSALA) FROM EMP; SELECT MAX(EMPSALA) FROM EMP; SELECT SUM(EMPSALA) FROM EMP; Agrupamentos As funes de grupo operam sobre grupos de tuplas(linhas). Retornam resultados baseados em grupos de tuplas em vez de resultados de funes por tupla individual. A clusula "group by" do comando "select" utilizada para dividir tuplas em grupos menores. A clusula "GROUP BY" pode ser usada para dividir as tuplas de uma tabela em grupos menores. As funes de grupo devolvem uma informao sumarizada para cada grupo. 56

16) Apresente a mdia de salrio pagos por departamento. Resp: SELECT DUPNUME, AVG(EMPSALA) FROM EMP GROUP BY DEPNUME; Obs.: Qualquer coluna ou expresso na lista de seleo, que no for uma funo agregada, dever constar da clusula "group by". Portanto errado tentar impor uma "restrio" do tipo agregada na clusula Where. Having A clusula "HAVING" pode ser utilizada para especificar quais grupos devero ser exibidos, portanto restringindo-os. 17) Retome o problema anterior, porm apresente resposta apenas para departamentos com mais de 10 empregados. Resp: SELECT DEPNUME, AVG(EMPSALA) FROM EMP GROUP BY DEPNUME HAVING COUNT(*) > 3; Obs.: A clusula "group by" deve ser colocada antes da "having", pois os grupos so formados e as funes de grupos so calculadas antes de se resolver clusula "having". A clusula "where" no pode ser utilizada para restringir grupos que devero ser exibidos. Exemplificando ERRO tpico - Restringindo Mdia Maior que 1000: SELECT DEPNUME, AVG(EMPSALA) FROM EMP WHERE AVG(SALARIO) > 1000 GROUP BY DEPNUME; ( Esta seleo est ERRADA! ) SELECT DEPNUME, AVG(EMPSALA) FROM EMP GROUP BY DEPNUME HAVING AVG(EMPSALA) > 1000; ( Seleo Adequada )

57

Seqncia no comando "Select": SELECT FROM WHERE GROUP BY HAVING ORDER BY coluna(s) tabela(s) condio(es) da(s) tupla(s) condio(es) do(s) grupo(s) de tupla(s) condio(es) do(s) grupo(s) de tupla(s) coluna(s);

A "sql" far a seguinte avaliao: a) WHERE, para estabelecer tuplas individuais candidatas (no pode conter funes de grupo) b) GROUP BY, para fixar grupos. c) HAVING, para selecionar grupos para exibio.

Equi-Juno ( Juno por igualdade ) O relacionamento existente entre tabelas chamado de equi-juno, pois os valores de colunas das duas tabelas so iguais. A Equi-juno possvel apenas quando tivermos definido de forma adequada a chave estrangeira de uma tabela e sua referncia chave primria da tabela precedente. Apesar de admitir-se em alguns casos, a equijuno de tabelas, sem a correspondncia Chave Primria-Chave Estrangeira, recomendamos fortemente ao estudante no utilizar este tipo de construo, pois certamente em nenhum momento nos exemplos propostos em nossa disciplina ou nas disciplinas de Anlise e Projeto de Sistemas, sero necessrias tais junes. 18) Listar Nomes de Empregados, Cargos e Nome do Departamento onde o empregado trabalha. Resp: Observemos que dois dos trs dados solicitados esto na Tabela Emp, enquanto o outro dado est na Tabela Dept. Deveremos ento acessar os dados restringindo convenientemente as relaes existentes entre as tabelas. De fato sabemos que DEPNUME chave primria da tabela de Departamentos e tambm chave estrangeira da Tabela de Empregados. Portanto, este campo ser o responsvel pela equi-juno. SELECT A.EMPNOME, A.EMPSERV, B.DEPNOME FROM EMP A, DEPT B WHERE A.DEPNUME = B.DEPNUME; Obs.: Note que as tabelas quando contm colunas com o mesmo nome, usa-se um apelido "alias" para substituir o nome da tabela associado coluna. Imagine que algum tivesse definido NOME para ser o Nome do Empregado na Tabela de Empregados e tambm NOME para ser o Nome do Departamento na Tabela de Departamentos. Tudo funcionaria de forma adequada, pois o alis se encarregaria de evitar que uma ambigidade fosse verificada. Embora SQL resolva de forma muito elegante o problema da nomenclatura idntica para campos de tabelas, recomendamos que o estudante fortemente evite tal forma de nomear os campos. O SQL nunca confundir um A.NOME com um B.NOME, porm podemos afirmar o mesmo de ns mesmos? 58

19) Liste os Cdigos do Cada Funcionrio, seus Nomes, seus Cargos e o nome do Gerente ao qual este se relaciona. Resp: Precisamos criar um auto-relacionamento, ou seja, juntar uma tabela a ela prpria. possvel juntarmos uma tabela a ela mesma com a utilizao de apelidos, permitindo juntar tuplas da tabela a outra tuplas da mesma tabela. SELECT A.EMPNUME, A.EMPNOME, A.EMPSERV, B.EMPNOME FROM EMP A, EMP B WHERE A.EMPGERE = B.EMPNUME;

As Sub-Consultas
Uma sub-consulta um comando "select" que aninhado dentro de outro "select" e que devolve resultados intermedirios.

20) Relacione todos os nomes de funcionrios e seus respectivos cargos, desde que o oramento do departamento seja igual a 300000. Resp: SELECT EMPNOME, EMPSERV FROM EMP A WHERE 300000 IN ( SELECT DEPORCA FROM DEPT WHERE DEPT.DEPNUME = A.DEPNUME ); Nota: Observe que a clusula IN torna-se verdadeira quando o atributo indicado est presente no conjunto obtido atravs da subconsulta.

21) Relacione todos os departamentos que possuem empregados com remunerao maior que 3500. Resp: SELECT DEPNOME FROM DEPT A WHERE EXISTS (SELECT * FROM EMP WHERE EMPSALA > 3500 AND EMP.DEPNUME = A.DEPNUME'); Nota: Observe que a clusula EXISTS indica se o resultado de uma pesquisa contm ou no tuplas. Observe tambm que poderemos verificar a no existncia (NOT EXISTS) caso esta alternativa seja mais conveniente.

59

Unies
Podemos eventualmente unir duas linhas de consultas simplesmente utilizando a palavra reservada UNION.

22) Liste todos os empregados que tenham cdigos > 10 ou Funcionrios que trabalhem em departamentos com cdigo maior que 10. Resp: Poderamos resolver esta pesquisa com um nico Select, porm devido ao fato de estarmos trabalhando em nosso exemplo com apenas duas tabelas no conseguimos criar um exemplo muito adequado para utilizao deste recurso. (Select * From Emp Where EmpNume > 10) Union (Select * From Emp Where DepNume > 10);

Inseres, Alteraes e Excluses

Uma linguagem direcionada a extrao de informaes de um conjunto de dados, em tese no deveria incorporar comandos de manipulao dos dados. Devemos observar contudo que a mera existncia de uma linguagem padronizada para acesso aos dados "convidava" os desenvolvedores a aderirem a uma linguagem "padro" de manipulao de tabelas. Naturalmente cada desenvolvedor coloca "um algo mais" em seu SQL (SQL PLUS, SQL *, ISQL, e toda sorte de nomenclaturas), por um lado desvirtuando os objetivos da linguagem (padronizao absoluta), mas em contrapartida otimiza os acessos ao seu banco de dados e por maior que sejam estas mudanas, jamais so to importantes que impeam que um programador versado em SQL tenha grandes dificuldades em se adaptar ao padro de determinada implementao. De fato as diferenas entre o SQL da Sybase, Oracle, Microsoft, so muito menores dos que as existentes entre o C, o BASIC e o Pascal, que so chamadas de linguagens "irms", pois todas se originam conceitualmente no FORTRAN. Podemos observar que todas as trs linguagens mencionadas possuem estruturas de controle tipo "para" (for), "enquanto" (while) e repita (do..while, repeat..until). Todas trabalham com blocos de instruo, todas tem regras semelhantes para declarao de variveis e todas usam comandos de tomada deciso baseadas em instrues do tipo "se" ou "caso", porm apesar de tantas semelhanas (sic), praticamente impossvel que um programador excelente em uma linguagem consiga rapidamente ser excelente em outra linguagem do grupo. Poderamos arriscar a dizer que um excelente programador C que utilize a implementao da Symantech ter que passar por um breve perodo de adaptao para adaptar-se ao C da Microsoft. O que ocorreria ento se este programador tiver que se adaptar ao Delphi (Pascal) da Borland? 60

De forma alguma o mesmo ocorrer com o especialista em SQL ao ter que migrar do Banco de Dados X para o Banco de Dados Y. Naturalmente existir a necessidade de aprendizado, mas este programador poder ir adaptando-se aos poucos sem precisar ser retreinado, o que um aspecto extremamente vantajoso para as empresas.

Inserir (Insert) INSERT INTO <tabela> [<campos>] [VALUES <valores>] Ex: INSERT INTO DEPT; Possibilita a insero de registros de forma interativa. INSERT INTO DEPT (DEPNUME,DEPNOME,DEPLOCA) (70,"PRODUCAO","RIO DE JANEIRO"); Possibilita a insero de registros em tabelas sem digitao dos dados.

VALUES

Atualizar (Update) UPDATE <tabela> SET <campo> = <expresso> [WHERE <condio>]; Ex: UPDATE EMP SET EMPSALA = EMPSALA* 1.2 WHERE EMPSALA< 1000;

Excluir (Delete) DELETE FROM <tabela> [WHERE <condio>]; Ex: DELETE FROM emp WHERE EMPSALA > 5000;

Transaes

Muitas vezes gostaramos que determinado processo, caso fosse abortado por qualquer motivo, pudesse ser inteiramente cancelado. Imaginemos por exemplo um usurio digitando um pedido. Imaginemos ainda que o sistema possa reservar cada item solicitado de maneira "on line", ou seja ao mesmo tempo em que estou digitando a quantidade o sistema j "empenhe" uma quantidade equivalente no estoque. Imaginemos ainda que o sistema deve cancelar todas as operaes se apenas um dos itens no puder ser atendido. Grande problema, caso no pudssemos anular todos os processos a partir de determinada condio.

61

Vamos simular tal ocorrncia com nosso banco de dados EMP. Imaginemos que ao invs de digitarmos DELETE FROM emp WHERE salrio > 5000; tivssemos digitado DELETE FROM emp WHERE salrio > 500; Ao invs de eliminarmos 2 registros, praticamente teramos eliminado o banco de dados todo. Para evitarmos que um erro de digitao, ou um processo iniciado porm sem condio de ser completado integralmente comprometa todos nossos dados podemos criar uma transao que nos assegurar que nossos testes sejam bem sucedidos ou cancelados sem comprometer nossos dados. begin transaction; delete from emp where salrio > 500; if SQL_RECORDCOUNT > 20 THEN; ROLLBACK TRASACTION; else COMMIT; endif; end transaction;

Vises Uma viso consiste basicamente de uma tabela derivada de outras tabelas. Considerando o exemplo TRABALHO, poderamos criar uma viso baseada na Tabela de Empregados (EMP) e na Tabela de Departamentos (DEPT) onde tivssemos somente os Nomes dos Funcionrios e os Departamentos nos quais estes trabalhassem. Teramos algo assemelhado ao abaixo representado CREATE VIEW EMP_DEP AS SELECT E.EMPNOME, D.DEPNOME FROM EMP E, DEPT D WHERE E.DEPNUME = D.DEPNUME;

Devemos observar que: 1- Uma viso definida sobre uma nica tabela somente ser atualizvel se os atributos da tal viso contiverem a chave primria de tal tabela. 2- Vises sobre vrias tabelas no so passveis de atualizaes. 3- Vises que se utilizam de funes de agrupamentos, tambm no podero ser atualizadas.

62

Você também pode gostar