apostila banco de dados - etb

Upload: juuharagao

Post on 15-Jul-2015

185 views

Category:

Documents


0 download

TRANSCRIPT

APOSTILA DE BANCO DE DADOS I

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

BANCO DE DADOS IINTRODUO1. O QUE BANCO DE DADOS?Para responder a esta pergunta vamos primeiro refletir:

O que so dados? O que informao? Dados so arquivos que podem ser texto, imagens, vdeos e diversas outras coisas. Quando organizamos estes dados com um objetivo eles passam a ser informaes, pois servem a um propsito. Bancos de dados um conjunto coerente e lgico de dados relacionados que possuem significncia intrseca. Esses dados representam aspectos do mundo real e devem ser mantidos para atender os requisitos da entidade em questo[OLIVEIRA,2002]. como se os dados estivessem dentro de uma caixa, porm, organizados de uma maneira que facilite sua busca no momento oportuno. Imagine a seguinte situao: Temos um ba com todas as fotos da famlia desde que voc era um beb. Esto todas espalhadas dentro do ba sem qualquer organizao.

O ba nosso banco de dados e os dados que temos disponveis so as fotos. A medida que o tempo passa, colocamos novas fotos no ba. Dependendo do quanto a pessoa gosta de tirar fotos, logo vai se tornar difcil achar uma foto especfica. Exemplo: achar em meio a mais de mil fotos a foto do aniversrio de 5 anos em que estava soprando a velinha. uma tarefa difcil no acha?Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Por isso foram criadas diversas tcnicas para organizar os dados no banco de dados visando a facilitar a tarefa de recuperar dados que so inseridos de maneira organizada. Vamos conhecer agora um pouco da histria dos bancos de dados.

2. HISTRICO

Como em muitas tecnologias na computao industrial, os fundamentos de bancos de dados relacionais surgiram na empresa IBM, nas dcadas de 1960 e 1970, atravs de pesquisas de funes de automao de escritrio. Foi durante um perodo da histria na qual empresas descobriram que estava muito custoso empregar um nmero grande de pessoas para fazer trabalhos como armazenar e indexar (organizar) arquivos. Por este motivo, valia a pena os esforos e investimentos em pesquisar um meio mais barato e ter uma soluo mecnica eficiente. Em 1970 um pesquisador da IBM - Ted Codd - publicou o primeiro artigo sobre bancos de dados relacionais. Este artigo tratava sobre o uso de clculo e lgebra relacional para permitir que usurios no tcnicos armazenassem e recuperassem grande quantidade de informaes. Codd visionava um sistema onde o usurio seria capaz de acessar as informaes atravs de comandos em ingls, onde as informaes estariam armazenadas em tabelas. Devido natureza tcnica deste artigo e a relativa complicao matemtica, o significado e proposio do artigo no foram prontamente realizados. Entretando ele levou a IBM a montar um grupo de pesquisa conhecido como System R (Sistema R). O projeto do Sistema R era criar um sistema de banco de dados relacional o qual eventualmente se tornaria um produto. Os primeiros prottipos foram utilizados por muitas organizaes, tais como MIT Sloan School of Management (uma escola renomada de negcios norte-americana). Eventualmente o Sistema R evoluiu para SQL/DS, o qual posteriormente tornou-se o DB2. A linguagem criada pelo grupo do Sistema R foi a Structured Query Language(SQL - Linguagem de Consulta Estruturada). Esta linguagem tornou-se um padro na indstria para bancos de dados relacionais e hoje em dia um padro ISO (International Organization for Standardization). A ISO a Organizao Internacional de Padronizao.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Saiba mais sobre ISOhttp://www.iso.org

Mesmo a IBM sendo a companhia que inventou o conceito original e o padro SQL, eles no produziram o primeiro sistema comercial de banco de dados. O feito foi realizado pela Honeywell Information Systems Inc., cujo sistema foi lanado em junho de 1976. O sistema era baseado em muitos princpios do sistema que a IBM concebeu, mas foi modelado e implementado fora da IBM. O primeiro sistema de banco de dados construdo baseado nos padres SQL comearam a aparecer no incio dos anos 80 com a empresa Oracle atravs do Oracle 2 e depois com a IBM atravs do SQL/DS, servindo como sistema e repositrio de informaes de outras empresas. O software de banco de dados relacionais foi sendo refinado durante a dcada de 80. Isso deveu-se ao feedback (retorno) que os usurios destes sistemas faziam, devido ao desenvolvimento de sistemas para novas indstrias e ao aumento do uso de computadores pessoais e sistemas distribudos. Desde sua chegada, os bancos de dados tm tido aumento nos dados de armazenamento, desde os 8 MB (Megabytes) at centenas de Terabytes de dados em listas de e-mail, informaes sobre consumidores, sobre produtos, vdeos, informaes geogrficas, etc.. Com este aumento de volume de dados, os sistemas de bancos de dados em operao tambm sofreram aumento em seu tamanho. O padro SQL passou da IBM para a ANSI (American National Standards Institute) - Insituto Nacional Americano para Padres - e para a ISO, os quais formaram um grupo de trabalho para continuar o desenvolvimento. Este desenvolvimento ainda acontece com outras novas verses dos padres definidos.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

3. TIPOS DE BANCOS DE DADOSH cinco tipos de banco de dados: Hierrquico, Um gerenciador desse tipo representa dados como uma estrutura em rvore, composto de uma hierarquide registros de dados.

Rede, representa os dados como registros vinculados uns aos outros formando conjuntos comuns de dados. Existe uma similaridade muito grande entre o modelo hierrquico e o modelo em rede, pode-se entender o modelo em rede como uma generalizao do modelo hierrquico.

Relacional, Representa os dados como uma simples coleo de linhas e colunas em tabelas bidimensionais, porm elas se relacionam entre si, e dependendo desse relacionamento carregam dados de outras tabelas consigo como referncia a tabela que se relaciona.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Orientado a objetos, representa os dados em um nico objeto, dentro de propriedades que so acessadas com mtodos.

Objeto-relacional, combina o modelo orientado a objeto com o modelo relacional. Isso feito mapeando banco de dados e classes seguindo a mesma lgica. H frameworks que fazem esse trabalho, como o Hibernate para Java. Saiba mais sobre Frameworkhttp://www.oficinadanet.com.br/artigo/683/o_que_e_um_framework

4. GERENCIADOR DE BANCO DE DADOS DBMS ( Database management System ) so programas que permitem criar estruturas, manter dados e gerencias as transaes efetuadas no banco de dados, alm de permitir o acesso ao banco e a recuperao de informaes de maneira rpida, organizada e segura. Algumas das principais caractersticas de banco gerenciadores de banco de dados, tambm conhecidos como SGBD ( Softwares gerenciadores de banco de dados ): Controle de redundncia informaes devem contr um mnimo de redundncia visando a estabelecer estabilidade ao modelo.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Compartilhamento de dados os dados devem estar disponveis para qualquer nmero de usurios de forma concomitante e segura. Controle de acesso controle de quem pode realizar qual funo dentro do banco de dados e garantir a autenticao desse usurio. Esquematizao Os relacionamentos devem estar armazenados no banco para garantir a facilidade entendimento e aplicao do modelo. Isso garante a integridade dos dados. Backup deve conter rotinas especficas para realizar a cpia de segurana dos dados armazenados.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

BANCO DE DADOS RELACIONAL

O tipo de banco de dados que estudaremos neste curso o banco de dados relacional por ser o mais usado na atualidade. O objetivo de um banco de dados relacional armazenar um grupo de objetos em um dicionrio de dados, de forma a se tornar rpida e segura a manipulao das informaes contidas nesses objetos. A abordagem relacional a utilizao de conceitos de entidade e relacionamento para recriar as estruturas que iro compor o banco de dados. importante criar uma representao grfica que permita identificar as entidades do sistema e seus relacionamentos. A essa representao grfica damos o nome de Modelo de Dados. O modelo de dados a base para a construo de toda a aplicao na empresa. Ele ser composto de Entidades e Relacionamentos, da o fato de ser conhecido como Modelo Entidade-Relacionamento ( MER ). Objetivos da modelagem de dados desenvolver um modelo que, contendo entidades e seus relacionamentos, seja capaz de representar os requisitos das informaes do negcio.

Muito bem, mas o que Entidade? Relacionamento? Vamos ver a partir de agora os conceitos que iro nortear nossos estudos de banco de dados relacionais.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Tabelas Uma tabela pode ser entendida como um conjunto de linhas e colunas. As colunas de tabela qualificam cada elemento ( linha ) com informaes relacionadas ao objeto. Ento todos os dados de um banco conceitualmente so organizados em tabelas, onde cada linha um registro e cada coluna um campo.CODIGO 1 2 NOME WALDEYR MENDES ANA CLARA IDADE 27 5

Registro ou tupla As linha da tabela so os registros ( tuplas ), cada registro formado por um conjunto de campos que tm uma relao entre si: carregam dados de um registro em comum. Campos ou atributos Os campos podem ser reconhecido pelas colunas da tabela e tm a responsabilidade de armazenar os dados conforme o tipo previamente especificado ( nmero, texto, data, etc.. ). Podem ainda conter controles sobre valores nulos ou invlidos entre outras propriedades. Entidade um agrupamento lgico de informaes inter-relacionadas que so necessrias para execuo de atividades do sistema. Uma entidade normalmente representa um objeto do mundo real, ou quando no, guarda informaes relevantes para operaes de um objeto do mundo real. A entidade como um modelo, uma descrio geral de um tem que pode ser especificado. Alguns autores dizem que entidades so tabelas, e na prtica so, porm pode haver divergncias quando o banco de dados no relacional. Exemplos de entidades: CD, estado, cidade, cliente. As entidades podem ser de 2 tipos: Fundamentais contm dados bsicos que alimentam ou so resultados de operaes. Associativas formada pelo relacionamento entre entidades fundamentais, como Aluno X Curso.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Chave um atributo para indexar dados. H 3 tipos de chave: primria, secundria e estrangeira. A chave primria o atributo que permite que o registro seja nico. Assim, seu contedo deve ser exclusivo e imutvel.CODIGO 1 2 NOME ANA CLARA ANA CLARA 38 5 IDADE

Neste caso, a chave primria o cdigo. Podemos ter vrias Anas Claras no nosso banco de dados, mas cada uma uma pessoa diferente, identificada pelo cdigo. A chave secundria utilizada como meio de classificao e pesquisas em entidades. Pode ser encontrada tambm como chave composta. A diferena bsica reside no fato de que as chaves compostas podem no ser valores nicos, mas quando unidas a outra coluna de indexao produz resultado nico.CPF 111.111.111.11 111.111.111.11 ANA CLARA NOME WALDEYR MENDES SITUAO TITULAR DEPENDENTE

Neste caso, a chave secundria NOME juntamente com o CPF formam um registro nico. O que no seria possvel com um desses campos apenas. A chave estrangeira uma chave primria que migra para outra entidade quando h relacionamento entre elas. Ela quem estabelece essa relao entre as tabelas.CLIENTE CODIGO 1 2 NOME WALDEYR MENDES ANA CLARA VENDAS NOTA FISCAL 12345 1 CLIENTE PRODUTO Livro PostgreSQL

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Relacionamentos

Sempre que duas entidade apresentarem interdependncia indica-se relacionamento entre elas. Exemplo: musica-CD. Existem 3 tipos de relacionamento: 1:1 1:n n:n Se a linha estiver tracejada significa que o relacionamento opcional. Relacionamento um para um ( 1:1 ) diz respeito s ligaesentre tabelas em que para cada registro da primeira tabela s possa existir um registro na segunda tabela. Relacionamento um para muitos ( 1:n ) permitem que possam existir mais de um registro na segunda tabela para cada registro da primeira tabela. Relacionamento muitos para muitos ( n:n ) - Neste caso pode haver mais de um registro na segunda tabela ligado a primeira, como pode hevar mais de um resgistro na primeira tabela ligado a um registro da segunda.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Normalizao de dados

A ordem com que os dados so armazenados e a forma como so estruturados varia bastante. Uma m estruturao pode gerar muitos problemas para a aplicao e a lgica do negcio, o que pode acarretar um sistema incoerente, redundante, lento, impreciso e at inconfivel. Vamos ento conhecer esse problemas a fundo para sabermos como lidar com eles. ANOMALIAS DE INSERO

Ocorrem quando o sistema fica impedido de realizar a criao de um registro devido falta de dados. Exemplo:SOCIOS_E_PLANOS CODIGO 1 2 3 NOME WALDEYR ANA CLARA JOAO PLANO BASICO BASICO ESPECIAL 199 199 159 VALOR

Neste caso, a equipe de marketing resolveu criar um plano chamado especial que d desconto de R$30,00 para pessoas com menos de 25 anos. Porm, enquanto no houver ningum cadastrado nesse plano, ele no existir oficialmente. A soluo para essa anomalia de insero separar o gerenciamento de usurios do gerenciamento de planos. Assim, mesmo que o scio 3 no existisse no sistema o plano poderia estar disponvel numa tabela de planos.

SOCIOS CODIGO 1 2 3 NOME WALDEYR ANA CLARA JOAO PLANO BASICO BASICO ESPECIAL PLANO BASICO ESPECIAL

PLANOS VALOR 199 159

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

ANOMALIAS DE ALTERAO

Esse tipo de anomalia impede a alterao de um registro devido ao relacionamento mal-planejado entre duas tabelas. Para este caso considere as tabelas corrigidas anteriormente: Suponhamos que o plano especial est gerando dvidas na hora do cadastro, pois o nome sugere que seja mais caro e no mais barato, ento resolveu-se mudar o nome do plano para menor de 25. Caso existam clientes utilizando este plano, ser necessrio mudar o nome em todos os campos referentes ao plano de ambas as tabelas. Imagine que hajam 10 mil usurios do novo plano. Que confuso hein?! Para resolver esta situao podemos inserir um novo campo na tabela planos que ser a chave primria, um cdigo de planos.SOCIOS CODIGO 1 2 3 NOME WALDEYR ANA CLARA JOAO 1 1 2 PLANO CODIGO 1 2 PLANOS PLANO BASICO MENOR DE 25 VALOR 199 159

Desta forma, basta mudar o nome do plano na tabela planos que a referncia do plano ser nica em todas as tabelas com as quais ele se relacionar. ANOMALIAS DE EXCLUSO

Quando o sistema exclui um determinado registro que ainda est vinculado a outro atravs de algum relacionamento acontece uma anomalia de excluso. Neste caso o sistema fica com uma informao inconsistente. Imagine que haja uma locadora de filmes onde a tabela do banco de dados esteja assim:

LOCADORA CLIENTE WALDEYR MENDES ANA CLARA JOAO FILME JURASSIC PARK SEXTO SENTIDO VELOCIDADE MXIMA FICO SUSPENSE AVENTURA GENERO

Caso o cliente Joo queira ser excludo do banco de dados, o filme Jurassic Park tambm o ser ( bem que podia mesmo, j t velhinho... ). Ao excluir Joo est se perdendo o registro do flime e do gnero. Para resolver esse problema separamos os dados em 3 tabelas: filme, cliente e locao.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

LOCACOES CODIGO_LOCACAO 1 2 3 CLIENTES NOME WALDEYR ANA CLARA JOAO COD 1 2 3 CLIENTE WALDEYR ANA CLARA JOAO 1 2 3 FILMES FILME JURASSIC PARK SEXTO SENTIDO GENERO FICO SUSPENSE FILME

VELOCIDADE MXIMA AVENTURA

1 FORMA NORMAL Para resolver as anomalias descritas anteriormente e garantir uma melhor estrutura para o banco de dados, existem alguns mtodos que podem ser seguidos, garantindo assim, o que chamamos de normalizao do banco de dados. Essa normalizao composta por algumas etapas denominadas formas normais (Fns). A primeira forma normal ir traduzir os dados de um sistema qualquer para tabelas. Garantir que os dados estejam dispostos em linha e colunas que so os registros e campos. As regras bsicas para a primeira forma normal so: Cada clula deve conter apenas um nico valor. Cada coluna deve conter registros nicos a menos que esteja referenciando outras tabelas por relacionamento ( chave estrangeira ).

Exemplo de tabela no normalizada:LOCADORA CLIENTE WALDEYR ANA CLARA LOCACOES TELEFONE 8 4 SALDO SEXTO SENTIDO, 9999-9999 JURASSIC PARK VELOCIDADE MAXIMA 9999-9999

Neste exemplo, h um campo com mltiplos valores ( locaes ) e um campo com valores repetidos ( telefone ) .

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

A soluo para este problema incluir um registro para cada locao e separar os dados dos clientes desta tabela. Ento, abaixo as tabelas na 1 FN:LOCACOES SALDO 8 4 4 CLIENTES COD 1 2 3 NOME WALDEYR ANA CLARA JOAO TELEFONE 9999-9999 9999-9999 8888-8888 COD 1 2 3 1 2 3 FILME 1 2 3 FILMES FILME JURASSIC PARK SEXTO SENTIDO GENERO FICO SUSPENSE CLIENTE

VELOCIDADE MXIMA AVENTURA

2 FORMA NORMAL A segunda forma normal trata a fundo a relao entre os atributos de uma tabela, para tanto preciso antes atender aos requisitos da 1 FN. Cada atributo no-chave da tabela dever depender excusivamente das chaves da tabela. No exemplo acima, o campo SALDO s tem vnculo com a chave estrangeira CLIENTE e no possui qualquer relao com a chave FILME. A soluo ento aplicar a 2 FN, transferindo o campo saldo para a tabela CLIENTE, assim, haver apenas um registro de saldo para cada cliente:CLIENTES COD 1 2 3 CLIENTE WALDEYR ANA CLARA JOAO LOCACOES FILME 1 2 3 1 2 3 CLIENTE COD 1 2 3 TELEFONE 9999-9999 9999-9999 8888-8888 8 4 4 FILMES FILME JURASSIC PARK SEXTO SENTIDO GENERO FICO SUSPENSE SALDO

VELOCIDADE MXIMA AVENTURA

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

3 FORMA NORMAL Para aumentar ainda mais a integridade do banco de dados aplica-se a 3FN, onde cada tabela deve estar na 2FN e cada atributo dependa exclusivamente da chave primria da tabela onde se encontra. uma regra muito semelhante a 2FN, normalmente seguida intuitivamente pelos administradores de bancos de dados (DBA Data base Administrator). O exemplo acima est na 3FN tambm. Vejamos outro exemplo na 2FN para aplicarmos a 3FN.PRODUTOS COD 1 2 3 LAPIS LAPIS LAPIS VENDAS COD_VENDA 1234 5678 1 1 CLIENTE 1 2 PRODUTO AZUL VERDE COR PRODUTO AZUL VERDE PRETO COR

Como o campo COR pode ser obtido atravs da sua tabela de origem, a tabela PRODUTOS, no convm que ele esteja na tabela de vendas pois no depende da chave primria da tabela que COD_VENDA. Assim, se retirarmos o campo COR da tabela VENDAS, teremos as tabelas na 3FN. Saiba mais sobre DBAhttp://www.microsoft.com/brasil/certifique/carreira/tipo/cardbaa.aspx

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Transaes com banco de dados

Uma transao um conjunto de operaes realizadas no banco de dados, que deve ter sua integridade garantida por meio de 4 propriedades: 1. Atomicidade Execuo da transao por completo ou o aborto da mesma. Impede que a transao seja executada pela metade. o famoso Tudo ou nada. 2. Consistncia Validao dos dados usados na transao, ou seja, no final da transao, cada campo deve ter valores vlidos dentro de seu domnio de dados ( tipo de dados nmero, texto, data, etc... ), assim como vlidos tambm para seus relacionamentos. 3. Isolamento Cada transao deve ter acesso privado aos dados que necessita para acontecer. Imagine que uma tranao A esteja alterando o valor de um campo e uma transao B faa a leitura do valor desse campo nesse momento. Neste intervalo de tempo o valor do campo pode variar prejudicando a operao B. 4. Durabilidade Garante que, no caso de erro na execuo da transao, os campos voltaro ao estado inicial. Essas propriedades so comumente chamadas de ACID.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

SQLA sigla SQL representa Structure Query Language, uma linguagem padronizada (ISO), que largamente utilizada em todos os bancos de dados relacionais para executar consultas e operaes em geral. Nesta apostila sero apresentados os comando bsicos da SQL, no prximo mdulo Banco de Dados II voc ver detalhadamente o uso da SQL. Informe-se sobre a prxima inscrio http://www.etb.com.br, profissionalizese! CREATE Comando para criar uma tabela. Exemplo: CREATE TABLE GRAVADORA ( Codigo_Gravadora Nome_Gravadora Endereco Telefone Contato URL ); ALTER Comando para alterar uma tabela. Exemplo: ALTER TABLE GRAVADORA ( MODIFY Telefone ); VARCHAR2(100) NOT NULL NUMBER(3) NOT NULL, VARCHAR2(60) NULL, VARCHAR2(60) NULL, VARCHAR2(20) NULL, VARCHAR2(20) NULL, VARCHAR2(80) NULL,

PRIMARY KEY (Codigo_Gravadora)

SELECT Consulta em uma tabela. Exemplo: SELECT * FROM GRAVADORA SELECT Nome_Gravadora, Telefone FROM GRAVADORA

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

INSERT Inclui dados em uma tabela. Exemplo: INSERT INTO GRAVADORA VALUES (' 0001 ', ' SONY ') (Codigo_Gravadora,Nome_Gravadora,)

UPDATE Atualiza dados em uma tabela. Exemplo: UPDATE GRAVADORA SET Nome_Gravadora=' SONY MUSIC ' WHERE Codigo_Gravadora = ' 0001 ' DELETE Excluir registros da tabela. Exemplo: DELETE FROM GRAVADORA WHERE Codigo_Gravadora = ' 0001 ' PARMETRO WHERE Filtra o conjunto de registros afetados pela instruo. Com o uso do where podemos limitar ou especializar nossas consultas usando operadores lgicos e matemticos (, =, etc...). Exemplo, aqui obteramos apenas as pessoas do banco de dados que fossem menores de 18 anos. SELECT * FROM PESSOAS WHERE Idade < 18;

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

ModelagemUsaremos a ferramenta DBDesigner para nos auxiliar na modelagem do banco de dados por ser uma ferramenta fcil de usar e ser de uso livre. DBDesigner pode ser baixado no site: http://www.fabforce.net Aps baixar e instalar o software a tela inicial a seguinte:

A paleta de ferramentas a sua esquerda ser Trabalharemos nesse curso com as seguintes ferramentas: Cria Cria Cria Cria Cria uma uma uma uma uma

a

mais

usada.

regio, que onde colocaremos nossas tabelas. nova tabela relao do tipo 1 : N relao do tipo 1 : 1 relao do tipo N : N

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Vamos ento criar nossa primeira tabela, que ser a tabela de Contatos, onde teremos os campos: Cod_Contato, Nome, Endereco, Telefone, Email. Clicando na ferramenta para criar tabelas e logo aps clicando no espao em branco a direita das ferramentas, surgir a seguinte tabela: Table_01 a tabela criada inicialmente,

D um clique duplo sobre a tabela criada para preenchermos os campos segundo o proposto anteriormente. Dever aparecer a tela seguinte, onde preencheremos Table Name com o nome da tabela, que ser Contatos.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Em seguida, preencheremos os campos da tabela. Deve ficar tudo como a figura imediatamente posterior.

Preenchendo os nomes dos campos e os tipos de dados para cada campo, depois s clicar no cone para confirmar, ento estar criado o modelo da tabela.

Criaremos outra tabela chamada Bens, onde colocaremos os campos: Cod_Bem, Nome_Bem, Valor_Bem. Aps o processo de criao, que anlogo ao anterior os resultado deve ser o seguinte:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Agora faremos o relacionamento entre as tabelas, neste caso, cada Contato pode ter um ou mais bens, caracterizando, portanto, uma relao de 1:N. Clicando na ferramenta correspondente, clique na primeira tabela e em seguida na segunda tabela para obter o seguinte resultado:

Desta maneira, a chave primria da tabela Contatos se transporta tambm para a tabela Bens como chave estrangeira. O losango na relao se divide em duas cores, onde branca significa 1, e preta significa Muitos. Faremos agora o tipo de relao N:N, onde quando a ligao for feita entre as tabelas, ser criada automaticamente uma outa tabela chamada tabela associativa que conter as chaves primrias das duas tabelas que se relacionam. Ento criando as tabelas Clientes e Produtos, faremos a relao N:N e veremos o resultado seguinte:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Bem, aps modelarmos o banco de dados segundo as regras de normalizao podemos aproveitar a ferramenta para nos auxiliar na criao da SQL para o banco em questo.

Acessando a opo SQL Create Script, obteremos a tela seguinte:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Voc pode copiar o Script para rea de transferncia e colar em qualquer lugar, por exemplo no Bloco de Notas, clicando no cone Ou, pode ainda salvar em um arquivo clicando no cone: O script o seguinte: CREATE TABLE Clientes ( cod_cliente INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_cliente TEXT NULL, PRIMARY KEY(cod_cliente) ); CREATE TABLE Clientes_has_Produtos ( Clientes_cod_cliente INTEGER UNSIGNED NOT NULL, Produtos_cod_produto INTEGER UNSIGNED NOT NULL, PRIMARY KEY(Clientes_cod_cliente, Produtos_cod_produto), INDEX Clientes_has_Produtos_FKIndex1(Clientes_cod_cliente), INDEX Clientes_has_Produtos_FKIndex2(Produtos_cod_produto) ); CREATE TABLE Produtos ( cod_produto INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, nome_produto TEXT NULL, valor_produto DECIMAL NULL, PRIMARY KEY(cod_produto) ); Esse script capaz de criar as tabelas no banco de dados conforme modelamos visualmente usando a ferramenta DBDesign. Todos esses cdigos SQL podem ser executados em qualquer banco de dados relacional, eles so capazes de compreend-los, pois a SQL uma linguagem comum para todos. Veremos a seguir como usar o ACCSESS para criar tabelas, inserir dados atravs de formulrios e gerar relatrios.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

MS - ACCESS 2003Vamos ento aprender a criar um banco de dados e manipul-lo usando o Microsoft Access. A verso utilizada neste tutorial foi a verso 2003. A tela inicial do MS-ACCESS esta:

Clicando em Arquivo->Novo... ou no cone

a seguinte tela se abrir:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Optaremos por criar um banco de dados em branco, a tela que surge em seguida para que voc salve seu trabalho previamente em um local do seu computador. Escolha este local e d um nome para seu arquivo, neste exemplo, usaremos o nome MeuBanco. Quando tiver salvo seu arquivo, imediatamente se abrir a seguinte tela:

Onde:Menu para criao e manipulao das tabelas Menu para criao e manipulao de consultas Menu para criao e manipulao de formulrios Menu para criao e manipulao de relatrios

Trabalharemos inicialmente criando nossas tabelas, pois sem elas no podemos atingir os outros recursos. Vamos modelar 2 tabelas, uma chamada Contatos e outra chamada Bens, onde cada contato pode ter vrios bens, esse relacionamento ser definido posteriormente. Para criar uma tabela usaremos o modo assistente at que nos familiarizemos com o ACCESS. Escolha portanto, no menu de tabelas, a opo:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

A tela que surge nos proporciona exemplos de tabelas com sugestes de campos para usar, mas nada impede-nos de usar outros. Vamos ento criar primeiramente a tabela contatos.

Vamos escolher para trabalhar, os campos conforme a figura acima. Depois clique em Avanar >

Nesta etapa o assistente pede que escolhamos o nome da tabela e pede tambm para que escolhamos quem deve definir a chave primria da tabela. Vamos ser ns mesmos. Faa-o e clique em Avanar >Esp. Engenharia de Software - Waldeyr Mendes [email protected]

O campo que ser a nossa chave primria ser o campo CdigoDoContato e optaremos pelo auto-incremento, ou seja, no precisaremos nos preocupar com os nmeros que sero chaves de cada registros, os mesmo sero criados automaticamente pelo ACCESS.

Nesta etapa vamos criar automaticamente um formulrio para inserir dados na tabela que estamos prestes a criar. Assim agilizamos o processo de criao de formulrios. Clique em ConcluirEsp. Engenharia de Software - Waldeyr Mendes [email protected]

Seu formulrio inicialmente ter esse aspecto:

Vamos ento preencher os dados para criarmos registros de contatos dentro das nossas tabelas. No necessrio preencher o cdigo do contato, pois como feito antes no momento da criao da tabela, foi definido que o ACCESS se encarregaria de atribuir valores consecutivos a esse ccampo.

Preencha os dados e ao final, clique no cone ou tecle ENTER. Pronto o seu registro estar gravado e o fomulrio estar em branco novamente para que voc possa inserir novos registros. Insira pelo menos 3 registros para fazermos outros exerccios posteriores usando esses registros. Por exemplo;

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Aps inseridos os registros, clique no cone aparecer:

pra fechar o formulrio,

Responda que Sim, e salve com o nome formularioContatos conforme a figura abaixo:

Agora, pelo mesmo processo de antes, no menu tabelas, vamos criar a tabelas de Bens.

Assim, criaremos a tabelas de bens com esses trs campos escolhidos acima, se quiser renomear qualquer campo, s selecion-lo e clicar no boto

Clique em Avanar >

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Como antes, escolhemos o nome da tabela e escolhemos a opo que nos possibilitar definir pessoalmente sua chave primria.

Agora teremos uma novidade: como a tabela bens, no a nica do nosso banco, criamos anteriormente a tabela Contatos, a partir da segunda tabela j h possibilidade de haver relacionamentos entre as tabelas o que vamos fazer agora. Clicando no cone da tela seguinte:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Como dito anteriormente, cada Contato poder ter 1 ou mais bens ento escolheremos a opo correspondente a essa afirmativa, Um registro da tabela Contatos ir coincidir com vrios registros da tabela Bens.

Clique em OK, voc ento retornar para a tela anterior, ento clique em Avanar para obter a tela seguinte:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Como feito na tabela de Contatos pea para que seja criado o formulrio para insero de dados na tabela de bens.

Neste formulrio poderemos cadastrar bens, com a ressalva de dizer quem o dono desses bens, afinal, quando fizemos o relacionamento a chave primria de Contatos migrou para a tabela de Bens dando ao Bem um Dono que referenciado pela chave desse Dono, previamente cadastrado no banco de dados. No nosso caso, inserimos os registros 1-Waldeyr Mendes e 2-Ana Clara. Ento para que cadastremos um bem preciso sempre dizer de quem esse bem colocando a chave primria do dono no campo CdigoDoConttato como abaixo:

Assim, a caneta azul de R$1.00, pertencer a Waldeyr Mendes cujo cdigo 1.Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Salve o formulrio com o nome conforme mostrado acima. Veremos agora como fazer para gerar relatrios para os dados das tabelas que criamos, assim, os dados passam a ser informaes, pois tero um propsito. Com as informaes em mos poderemos adquirir conhecimento. Ento no menu relatrio escolheremos a opo criar relatrio usando assistente.

Aqui escolhemos a(s) tabela(s) que queremos que faa(m) parte do relatrio.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Escolhemos a tabela Contatos, e antes de clicar em avanar, escolhemos tambm a tabela Bens. Neste caso deixamos de fora apenas os campos CdigoDoBem e CdigoDoContato, assim estes campos no aparecero no relatrio.

Em seguida escolhemos como os dados sero exibidos na tela:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Em seguida podemos separa por nvel nosso relatrio, neste caso vamos separar por nome, ento selecionamos o campo nome e com a setinha transferimos-o para o quadro ao lado direito.

Assim, teremos um relatrio onde os dados aparecero separados por nome, ou seja, do Fulano de Tal teremos apresentados na tela todos os dados inclusive de seus bens, pois os campos relativos a esses dados foram selecionados no incio da criao do relatrio. Na tela seguinte poderemos escolher a ordem pela qual ser classificado o relatrio, exemplo ordem alfabtica crescente;

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Em seguida ajuste do layout de organizao:

Voc pode optar pelo que mais lhe agrade ou mais lhe seja til, a escolha deste ou aquele layout no interfere nos dados que sero apresentados, somente em como sero apresentados.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Depois pode-se escolher o estilo de cores entre os disponveis.

Logo aps, damos um nome ao nosso relatrio e clicando em Concluir, poderemos visualiz-lo.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

A aparncia do relatrio a seguinte:

Aqui ficou um pouco apertado para todos os campos, seria melhor se usasse o papel no estilo paisagem assim poderamos ter mais largura na folha, porm, como demonstrao podemos ver claramente os dados de nossas tabelas aqui apresentados segundo as especificaes que pedimos. Algumas melhorias podem ser apresentadas para este banco de dados, clicando com o boto direito na tabela Contatos, poderemos acessar seus detalhes e modific-los:

selecione o Modo Design, a seguinte tela se abrir para que possamos editar a estrutura da nossa tabela.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Perceba que podemos acessar informaes de cada campo com o menu:

Ele nos informa quem a chave primria, o nome do campo, o tipo de dados que aceito por esse campo e uma descrio do campo. Porm, detalhes como dizer se um determinado campo obrigatrio no foram disponibilizados pelo assistente, mas podemos inserir esses detalhes agora. Clicando sobre um campo qualquer como por exemplo nome, logo abaixo surgem opes de preenchimento para este campo:

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Editando por exemplo o tamanho do campo, e se ele um campo Requerido (obrigatrio) podemos obter mais segurana ou acessibilidade para o campo.

Formatos como o campo data de nascimento, pode ter outras opes, inicialmente ele estava como data abreviada.

Bem, isso a, o ACCESS uma ferramenta muito til na modelagem de dados e pode se fazer grandes coisas com esse banco de dados com interface acoplada criado pela Microsoft. de grande utilidade principalmente acadmica e para bancos de dados de pequeno porte. Aprendemos aqui a estrutura e os benefcios de um banco de dados do Microsoft Access familiarizado-nos com as formas de inserir e extrair os dados de um banco de dados.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

SAIBA MAIS A prpria Microsoft disponibiliza diversos cursos on-linehttp://office.microsoft.com/pt-br/training/FX100565001046.aspx

Esta apostila uma iniciativa da ETB Escola Tcnica de Braslia. www.etb.com.br

Lembre-se: Muitas oportunidades esto escondidas atrs de trabalho duro, por isso muitos as deixam passar.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]

Referncias e BibliografiaSites acessados: URL http://www.fabforce.net acessado em 06/01/2009 URL http://www.apachefriends.org acessado em 06/01/2009 OLIVEIRA, Celso H. P. de. SQL Curso Prtico, Novatec Editora Ltda, 2002, So Paulo-SP. MILANI, Andr. PostgreSQL Guia do programador, Novatec Editora Ltda, 2008, So Paulo-SP.

Esp. Engenharia de Software - Waldeyr Mendes [email protected]