Você está na página 1de 48

Introduo a Banco de Dados e Access

Humberto Lopes Betim, Janeiro de 2010


Baseado no material das professoras Miriam Sayo, Adriana Beiler e Elisa Boff

Roteiro

1.
2. 3. 4.

Conceitos Bsicos de Banco de Dados


Microsoft Access Modelo Entidade-Relacionamento Planejamento de Banco de Dados

Conceitos Bsicos de Banco de Dados Arquivos


Permitem o armazenamento permanente de dados Dados persistentes

Dispositivos de armazenamento secundrios


Armazenam arquivos Discos magnticos, discos pticos, fitas magnticas

Conceitos Bsicos de Banco de Dados


Campo (Field)
Conjunto de caracteres com o mesmo significado Exemplo: nome

Registro (Record)
Conjunto de campos relacionados Exemplo: nome, endereo, idade, telefone de uma pessoa Representado por uma instncia de uma classe

Arquivo (File)
Conjunto de registros relacionados Exemplo: informaes sobre um grupo de pessoas

Conceitos Bsicos de Banco de Dados


Ficha Nome: ____ Endereo: _____ Telefone: ______ CIC: ______ RG: _______ Registro Campos

Campo Nome Ana Silva Joo Neto : Endereo Andradas 34 Siqueira 34 : Telefone 332.56.35 353.46.54 223.66.51 : CIC 345.565/9 454.567/8 028.480/8 : RG 271646252 456546568 873260269 : Arquivo

Registro

Maria Santos Ipiranga 67

Conceitos Bsicos de Banco de Dados Arquivo seqencial


Todos os registros esto organizados na forma de uma lista, um depois do outro. Os registros podem estar dispostos ordenadamente, obedecendo a seqncia determinada pela chave primria. possvel incluir, excluir, alterar e consultar os registros.

Conceitos Bsicos de Banco de Dados Arquivo seqencial


Exemplo:
Nome: Joo End: ____ Fone: ____ Vlido: V Nome: Maria End: ____ Fone: ____ Vlido: V Nome: Jos End: ____ Fone: ____ Vlido: V Nome: Ana End: ____ Fone: ____ Vlido: V Nome: Paulo E End: ____ O Fone: ____ F Vlido: V

Todos os registros possuem o mesmo tamanho e so armazenados seqencialmente na memria

Conceitos Bsicos de Banco de Dados Arquivo seqencial


Pesquisa seqencial
Nome: Joo End: ____ Fone: ____ Vlido: V Nome: Maria End: ____ Fone: ____ Vlido: V Nome: Jos End: ____ Fone: ____ Vlido: V Nome: Ana End: ____ Fone: ____ Vlido: V Nome: Paulo End: ____ Fone: ____ Vlido: V Nome: Rita End: ____ Fone: ____ Vlido: V

E O F

Conceitos Bsicos de Banco de Dados Arquivo de ndice


Consiste em um arquivo que guarda o campo chave e a posio do registro no disco Exemplo:
E100
Nome: Joo End: ____ Fone: ____ Vlido: V

E101
Nome: Maria End: ____ Fone: ____ Vlido: F

E102
Nome: Jos End: ____ Fone: ____ Vlido: V

E103
Nome: Ana End: ____ Fone: ____ Vlido: V

E104
Nome: Paulo End: ____ Fone: ____ Vlido: V

E105
Nome: Rita End: ____ Fone: ____ Vlido: V E O F

Arquivo de Dados
E Chave: Ana Chave: Joo Chave: Jos Chave: Maria Chave: Paulo Chave: Rita O Posio: E103 Posio: E100 Posio: E102 Posio: E101 Posio: E104 Posio: E105 F

Arquivo de ndice

Conceitos Bsicos de Banco de Dados Arquivos de ndice


Permitem o acesso rpido s dados Vrios podem ser criados
ndice por nome ndice por idade ndice por telefone ...

Conceitos Bsicos de Banco de Dados Programas que trabalham com arquivos devem permitir
Incluir, excluir, consultar e alterar registros Incluir novos campos nos registros Excluir campos dos registros Gerar listagens com diferentes ordenaes

Conceitos Bsicos de Banco de Dados

Banco de Dados (ou base de dados - BD)


Conjunto de arquivos relacionados
Dados com uma estrutura regular que organizam a informao

Normalmente agrupa informaes utilizadas para um mesmo fim. Exemplo: folha de pagamento, controle de estoque, controle de contas
http://pt.wikipedia.org/wiki/Banco_de_dados

Conceitos Bsicos de Banco de Dados SGBD - Sistema Gerenciador de Banco de Dados


Conjunto de programas cujo objetivo principal gerenciar o acesso e a correta manuteno dos dados armazenados no banco de dados Exemplos: Microsoft Access, Oracle, Sybase, etc.

Roteiro

1.

Conceitos Bsicos de Banco de Dados

2.
3. 4.

Microsoft Access
Modelo Entidade-Relacionamento Planejamento de Banco de Dados

Microsoft Access Microsoft Office Access (MSAccess)


Sistema relacional de administrao de banco de dados. Includo no pacote Microsoft Office Professional. Permite o rpido desenvolvimento de aplicaes que envolvem:
Modelagem e estrutura de dados Interface a ser utilizada pelos usurios

Microsoft Access Trabalha com os seguintes objetos:


Tabela: armazenamentos dos dados. Consulta: filtro sobre os dados armazenados nas tabelas. Formulrios: como um formulrio em papel que se preenche a mo. Relatrio:
Informao que foi organizada e formatada Meio de recuperao e apresentao dos dados

Microsoft Access Trabalha com os seguintes objetos:


Macro
Executa automaticamente uma tarefa ou uma srie de tarefas Tarefa=ao

Mdulo
Procedimentos e funes que so escritos em uma linguagem chamada de ACCESS BASIC, e que podem ser chamadas dentro de uma consulta, de um formulrio ou de um relatrio

Microsoft Access Arquivos possuem extenso MDB. Possui assistentes que facilitam a criao dos bancos de dados.

Microsoft Access

Microsoft Access

Microsoft Access

Roteiro

1. 2.

Conceitos Bsicos de Banco de Dados Microsoft Access

3.
4.

Modelo Entidade-Relacionamento EntidadePlanejamento de Banco de Dados

Modelo Entidade-Relacionamento Banco de Dados Relacional


Segue o Modelo Relacional Define maneiras de armazenar, manipular e recuperar dados estruturados unicamente na forma de tabelas

Modelo Entidade-Relacionamento SGBD Relacional


Exemplo de dados organizados na forma de tabelas:
Tipo de Produto
CodTipoProd 1 2 DescrTipoProd Computador Impressora

Produto
CodProd DescrProd 1 PC desktop modelo x 2 PC notebook ABC 3 Impressora jato de tinta 4 Impressora laser PrecoProd 2500 3500 600 800 CodTipoProd 1 1 2 2

Modelo Entidade-Relacionamento Arquitetura de um banco de dados relacional


Entidades Atributos (coluna) Relacionamentos Restries sobre relacionamentos

Modelo Entidade-Relacionamento Entidades


Representam pessoas ou objetos que existem no mundo real, e sobre os quais queremos guardar informaes Exemplos: funcionrio, obra, mquina, aluno Representao:
nome da entidade

Modelo Entidade-Relacionamento Atributos


Representam caractersticas ou informaes das entidades ou dos relacionamentos Exemplos para entidades:
Funcionrio: nome, matrcula, data de admisso, nmero da carteira profissional Obra: responsvel, data de incio, custo previsto Mquina: material, tipo, responsvel, custo Aluno: nome, matrcula, curso, situao

Modelo Entidade-Relacionamento Relacionamentos


Fato ou acontecimento que liga dois objetos do mundo real (ou duas entidades do modelo) Representao:
nome

Modelo Entidade-Relacionamento Diagrama de Entidade-Relacionamento (DER)


Utilizado para:
Interagir com o usurio Definir depsitos permanentes de dados Focalizar relacionamentos entre entidades, tabelas ou arquivos
Cliente Compra Livro

Curso

possui

Professor

ministra

Disciplinas

Modelo Entidade-Relacionamento
Cardinalidade: o nmero de objetos de cada tipo que participa no relacionamento Pode ser.
1:1 (um para um); 1:N (um para muitos); N:1 (muitos para um); M:N (muitos para muitos)
Cliente 1 Compra N Item

Professor

ministra

Disciplina

Modelo Entidade-Relacionamento
Exemplo 1:
Aluguel N pertence 1 Cliente

um Aluguel pertence a no mximo um Cliente um Cliente pode ter mais de um aluguel

Exemplo 2:
Fornecedor N fornece M Produto

um Fornecedor fornece vrios Produtos um Produto pode ser fornecido vrios Fornecedores

Modelo Entidade-Relacionamento Chave


Usada para identificar linhas e estabelecer relaes entre linhas de tabelas Conjunto de um ou mais atributos que determinam a unicidade de cada registro Permite o relacionamento entre tabelas

Modelo Entidade-Relacionamento Tipos de chave


Chave primria (PK - Primary Key):
Apresenta um valor diferente para cada registro do arquivo Permite identificar um nico registro no arquivo
Identifica o registro desejado em uma operao de acesso a um arquivo, facilitando a sua recuperao

Um campo pode ser escolhido como chave primria


Exemplo: cdigo de um funcionrio

Modelo Entidade-Relacionamento Tipos de chave


Chave estrangeira (FK - Foreign Key)
Coluna ou combinao de colunas cujos valores aparecem necessariamente na chave primria de outra tabela Define um relacionamento entre as tabelas e pode ocorrer repetidas vezes Exemplo:
Chave primria Chave primria NumPedido NumCliente 1 2 Nome Fulano Beltrao Endereo Rua x Avenida y 1 2 3 NumCliente 2 1 2 Quantidade 5 3 2 Valor R$ 25,00 R$ 15,00 R$ 10,00 Chave estrangeira

Roteiro

1. 2. 3.

Conceitos Bsicos de Banco de Dados Microsoft Access Modelo Entidade-Relacionamento

4.

Planejamento de Banco de Dados

Planejamento de Banco de Dados


Com um BD voc no pode fazer muitas experincias na base da tentativa e erro. Antes que voc crie seu BD, dever fazer as seguintes perguntas:
Quais dados eu desejo armazenar, e qual a melhor maneira de organiz-los? Isso determina as tabelas que voc precisar. Quais as aes de entrada de dados eu realizo no dia-a-dia de minha empresa? Isso determina os formulrios de que voc precisar. Quais informaes eu quero saber sobre o estado da empresa? Essa resposta indica que relatrios e consultas voc desejar.

Planejamento de Banco de Dados Determinando as tabelas


Tecnicamente, voc s precisa de uma tabela, o mnimo para que um banco de dados funcione. Mas o maior erro que a maioria das pessoas comete colocar muitas informaes em uma nica tabela. O Access um programa de gerenciamento de banco de dados relacional: ele trata de muitas tabelas e cria relacionamentos entre elas.

Planejamento de Banco de Dados Por exemplo, em um banco de dados que registra pedidos de clientes, voc pode ter as seguintes tabelas:
Clientes Mtodos de Entrega Vendedores Pedidos Produtos Detalhes do Pedido

Planejamento de Banco de Dados Planejar as tabelas antes de criar seu banco de dados importante. difcil mudar a estrutura de uma tabela depois que ela estiver preenchida com dados (mas no impossvel).

Planejamento de Banco de Dados


Normalizao dos dados torna as tabelas o mais eficientes e compactas possveis, para eliminar a possibilidade de confuso e erro. Algumas regras, chamadas regras de normalizao, governam o modo como um BD deve armazenar suas tabelas:
Evitar informaes repetidas. Evitar dados redundantes.

Planejamento de Banco de Dados


Evitar informaes repetidas:
Suponha que voc queira manter informaes de contato sobre seus clientes juntamente com um registro de cada transao que eles efetuarem. Se voc mantivesse tudo em uma tabela, teria que repetir o nome completo do cliente, o endereo e o nmero de telefone toda vez que inclusse uma nova transao. Tambm teria que mudar o endereo em cada registro de transao para esse cliente.

Planejamento de Banco de Dados Evitar informaes repetidas:


Uma maneira melhor atribuir a cada cliente um nmero de cdigo. Inclua esse nmero de cdigo em uma tabela contendo nomes e endereos. Depois use o mesmo nmero de cdigo como um vnculo em uma tabela separada que contenha as transaes

Planejamento de Banco de Dados Evitar informaes repetidas


Exemplo com uma tabela:
Nome Bombeiros ABC Bombeiros ABC Bombeiros ABC Drogaria Jac Drogaria Jac Pizza do Mile Endereo Av. Dr. Alberto Seavre, 620 Av. Dr. Alberto Seavre, 620 Av. Dr. Alberto Seavre, 620 Rua dos Amantes, 465/980 Rua dos Amantes, 465/980 Rua Leste, 108 Data do Total do Pedido Pedido (011)3021-8542 10/02/2001 R$ 155,90 (011)3021-8542 12/02/2001 R$ 230,90 (011)3021-8542 20/02/2001 R$ 35,98 9978-7766 9978-7766 234-9922 10/12/2000 R$ 34,90 10/02/2000 R$ 145,98 20/02/2001 R$ 789,00 Telefone

Planejamento de Banco de Dados


Exemplo aps normalizar:
Tabela de Clientes Tabela de Pedidos
Cdigo do Cliente 1 2 3 Nome Bombeiros ABC Drogaria Jac Pizza do Mile
Cdigo do Cliente 1 1 1 2 2 3

Endereo Av. Dr. Alberto Seavre, 620 Rua dos Amantes, 465/980 Rua Leste, 108
Data do Pedido 10/02/2001 12/02/2001 20/02/2001 10/12/2000 10/02/2000 20/02/2001

Telefone (011)3021-8542 9978-7766 234-9922

Total do Pedido R$ 155,90 R$ 230,90 R$ 35,98 R$ 34,90 R$ 145,98 R$ 789,00

Planejamento de Banco de Dados


Evitar dados redundantes
Suponha que voc queira acompanhar quais funcionrios freqentam certas aulas de treinamento. Existem muitos funcionrios e aulas. Uma forma seria manter tudo em uma nica tabela Pessoal, da seguinte forma:
Nome do Funcionrio Filipe Soares Betina Romo Nelson Gomes Marta Donato Endereo Telefone Data de Aula Treinamento Realizada Horas de Crdito Liderana 3 Atendimento 2 ao cliente Atendimento 2 ao cliente Discurso 9 Pblico Passou

R. 16, 221 R. da Ponte, 40 Estr. Oeste, 40 R. Guerra, 720

234-9888 01/01/2000 345-9099 03/10/1999 233-9888 10/11/2000 234-2322 10/10/2000

Sim Sim Sim No

Planejamento de Banco de Dados


Evitar dados redundantes
E se um funcionrio tiver mais de uma aula? Voc teria de incluir uma linha duplicada na tabela para relacion-lo e depois teria o problema descrito anteriormente: vrios registros com entradas de campo praticamente idnticas. E se o nico funcionrio que assistiu a uma determinada aula sair da empresa? Quando voc excluir o registro desse funcionrio, apagar tambm as informaes sobre as horas de crdito da aula.

Planejamento de Banco de Dados


Evitar dados redundantes
Uma maneira melhor seria criar tabelas separadas para Funcionrio, Aulas e Treinamento Realizado, da seguinte forma:
Tabela Funcionrios

Cdigo 1 2 3 4

Nome do Funcionrio Filipe Soares Betina Romo Nelson Gomes Marta Donato

Endereo R. 16, 221 R. da Ponte, 40 Estr. Oeste, 40 R. Guerra, 720

Telefone 234-9888 345-9099 233-9888 234-2322

Planejamento de Banco de Dados Evitar dados redundantes


Tabela Aula
Cdigo da Aula C1 C2 C3 Aula Crditos Liderana 3 Atendimento ao cliente 2 Discurso Pblico 9

Tabela Treinamento
Cdigo do Funcionrio 1 2 3 4 Data 01/01/2000 03/10/1999 10/11/2000 10/10/2000 Aula C1 C2 C2 C3 Passou? Sim Sim Sim No