Introdução a Banco de
Dados e Access
Isabel Harb Manssour
Porto Alegre, maio de 2007
Baseado no material das professoras Miriam Sayão, Adriana Beiler e Elisa Boff
Roteiro
1. Conceitos Básicos de Banco de
Dados
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Conceitos Básicos de Banco de Dados
Arquivos
Permitem o armazenamento permanente de
dados
Dados persistentes
Dispositivos de armazenamento secundários
Armazenam arquivos
Discos magnéticos, discos ópticos, fitas
magnéticas
Conceitos Básicos de Banco de Dados
Campo (Field)
Conjunto de caracteres com o mesmo significado
Exemplo: nome
Registro (Record)
Conjunto de campos relacionados
Exemplo: nome, endereço, idade, telefone de uma pessoa
Representado por uma instância de uma classe
Arquivo (File)
Conjunto de registros relacionados
Exemplo: informações sobre um grupo de pessoas
Conceitos Básicos de Banco de Dados
Ficha Registro
Nome: ____
Endereço: _____
Telefone: ______ Campos
CIC: ______
RG: _______
Campo
Nome Endereço Telefone CIC RG
Registro
Ana Silva Andradas 34 332.56.35 345.565/9 271646252
Arquivo
João Neto Siqueira 34 353.46.54 454.567/8 456546568
Maria Santos Ipiranga 67 223.66.51 028.480/8 873260269
: : : : :
Conceitos Básicos de Banco de Dados
Arquivo seqüencial
Todos os registros estão organizados na forma
de uma lista, um depois do outro.
Os registros podem estar dispostos
ordenadamente, obedecendo a seqüência
determinada pela chave primária.
É possível incluir, excluir, alterar e consultar os
registros.
Conceitos Básicos de Banco de Dados
Arquivo seqüencial
Exemplo:
Nome: João Nome: Maria Nome: José Nome: Ana Nome: Paulo
E
End: ____ End: ____ End: ____ End: ____ End: ____
Fone: ____ Fone: ____ Fone: ____ Fone: ____ Fone: ____
O
Válido: V Válido: V Válido: V Válido: V Válido: V F
Todos os registros possuem o mesmo tamanho e são
armazenados seqüencialmente na memória
Conceitos Básicos de Banco de Dados
Arquivo seqüencial
Pesquisa seqüencial
Nome: João Nome: Maria Nome: José Nome: Ana Nome: Paulo Nome: Rita
E
End: ____ End: ____ End: ____ End: ____ End: ____ End: ____
Fone: ____ Fone: ____ Fone: ____ Fone: ____ Fone: ____ Fone: ____
O
Válido: V Válido: V Válido: V Válido: V Válido: V Válido: V F
Conceitos Básicos de Banco de Dados
Arquivo de índice
Consiste em um arquivo que guarda o campo
chave e a posição do registro no disco
Exemplo:
E100 E101 E102 E103 E104 E105
Nome: João Nome: Maria Nome: José Nome: Ana Nome: Paulo Nome: Rita
E
End: ____ End: ____ End: ____ End: ____ End: ____ End: ____
O
Fone: ____ Fone: ____ Fone: ____ Fone: ____ Fone: ____ Fone: ____
F
Válido: V Válido: F Válido: V Válido: V Válido: V Válido: V
Arquivo de Dados
E
Chave: Ana Chave: João Chave: José Chave: Maria Chave: Paulo Chave: Rita
O
Posição: E103 Posição: E100 Posição: E102 Posição: E101 Posição: E104 Posição: E105
F
Arquivo de Índice
Conceitos Básicos de Banco de Dados
Arquivos de índice
Permitem o acesso rápido às dados
Vários podem ser criados
Índice por nome
Índice por idade
Índice por telefone
...
Conceitos Básicos 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 ordenações
Conceitos Básicos de Banco de Dados
Banco de Dados (ou base de dados - BD)
Conjunto de arquivos relacionados
Dados com uma estrutura regular que organizam a
informação
Normalmente agrupa informações utilizadas para
um mesmo fim.
Exemplo: folha de pagamento, controle de estoque,
controle de contas
http://pt.wikipedia.org/wiki/Banco_de_dados
Conceitos Básicos de Banco de Dados
SGBD - Sistema Gerenciador de Banco
de Dados
Conjunto de programas cujo objetivo principal
é gerenciar o acesso e a correta manutenção
dos dados armazenados no banco de dados
Exemplos: Microsoft Access, Oracle, Sybase,
etc.
Roteiro
1. Conceitos Básicos de Banco de Dados
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Microsoft Access
Microsoft Office Access (MSAccess)
Sistema relacional de administração de banco
de dados.
Incluído no pacote Microsoft Office Professional.
Permite o rápido desenvolvimento de aplicações
que envolvem:
Modelagem e estrutura de dados
Interface a ser utilizada pelos usuários
Microsoft Access
Trabalha com os seguintes objetos:
Tabela: armazenamentos dos dados.
Consulta: filtro sobre os dados armazenados
nas tabelas.
Formulários: como um formulário em papel que
se preenche a mão.
Relatório:
Informação que foi organizada e formatada
Meio de recuperação e apresentação dos dados
Microsoft Access
Trabalha com os seguintes objetos:
Macro
Executa automaticamente uma tarefa ou uma série
de tarefas
Tarefa=ação
Módulo
Procedimentos e funções que são escritos em uma
linguagem chamada de ACCESS BASIC, e que
podem ser chamadas dentro de uma consulta, de um
formulário ou de um relatório
Microsoft Access
Arquivos possuem extensão MDB.
Possui assistentes que facilitam a criação
dos bancos de dados.
Microsoft Access
Microsoft Access
Microsoft Access
Roteiro
1. Conceitos Básicos de Banco de Dados
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento 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 DescrTipoProd
1 Computador
2 Impressora
Produto
CodProd DescrProd PrecoProd CodTipoProd
1 PC desktop modelo x 2500 1
2 PC notebook ABC 3500 1
3 Impressora jato de tinta 600 2
4 Impressora laser 800 2
Modelo Entidade-Relacionamento
Arquitetura de um banco de dados relacional
Entidades
Atributos (coluna)
Relacionamentos
Restrições sobre relacionamentos
Modelo Entidade-Relacionamento
Entidades
Representam pessoas ou objetos que existem
no mundo real, e sobre os quais queremos
guardar informações
Exemplos: funcionário, obra, máquina, aluno
Representação:
nome da entidade
Modelo Entidade-Relacionamento
Atributos
Representam características ou informações
das entidades ou dos relacionamentos
Exemplos para entidades:
Funcionário: nome, matrícula, data de admissão,
número da carteira profissional
Obra: responsável, data de início, custo previsto
Máquina: material, tipo, responsável, custo
Aluno: nome, matrícula, curso, situação
Modelo Entidade-Relacionamento
Relacionamentos
Fato ou acontecimento que liga dois objetos do
mundo real (ou duas entidades do modelo)
Representação:
nome
Modelo Entidade-Relacionamento
Diagrama de Entidade-Relacionamento (DER)
Utilizado para:
Interagir com o usuário
Definir depósitos permanentes de dados
Focalizar relacionamentos entre entidades, tabelas ou
arquivos
Cliente Compra Livro Curso possui
Professor ministra Disciplinas
Modelo Entidade-Relacionamento
Cardinalidade: é o número 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)
1 N
Cliente Compra Item
M N
Professor ministra Disciplina
Modelo Entidade-Relacionamento
Exemplo 1:
N
Aluguel pertence Cliente
1
• um Aluguel pertence a no máximo um Cliente
• um Cliente pode ter mais de um aluguel
Exemplo 2:
N
Fornecedor fornece Produto
M
• um Fornecedor fornece vários Produtos
• um Produto pode ser fornecido vários Fornecedores
Modelo Entidade-Relacionamento
Chave
Usada para identificar linhas e estabelecer
relações 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 primária (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 operação de acesso
a um arquivo, facilitando a sua recuperação
Um campo pode ser escolhido como chave primária
Exemplo: código de um funcionário
Modelo Entidade-Relacionamento
Tipos de chave
Chave estrangeira (FK - Foreign Key)
Coluna ou combinação de colunas cujos valores
aparecem necessariamente na chave primária de
outra tabela
Define um relacionamento entre as tabelas e pode
ocorrer repetidas vezes
Exemplo:
Chave primária Chave estrangeira
Chave primária
NumPedido NumCliente Quantidade Valor
NumCliente Nome Endereço 1 2 5 R$ 25,00
1 Fulano Rua x 2 1 3 R$ 15,00
2 Beltrao Avenida y 3 2 2 R$ 10,00
Roteiro
1. Conceitos Básicos de Banco de Dados
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Planejamento de Banco de Dados
Com um BD você não pode fazer muitas
experiências 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 ações de entrada de dados eu realizo no dia-a-dia
de minha empresa? Isso determina os formulários de que você
precisará.
Quais informações eu quero saber sobre o estado da
empresa? Essa resposta indica que relatórios e consultas você
desejará.
Planejamento de Banco de Dados
Determinando as tabelas
Tecnicamente, você só precisa de uma tabela, o
mínimo para que um banco de dados funcione.
Mas o maior erro que a maioria das pessoas
comete é colocar muitas informações 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
Métodos de Entrega
Vendedores
Pedidos
Produtos
Detalhes do Pedido
Planejamento de Banco de Dados
Planejar as tabelas antes de criar seu banco
de dados é importante.
É difícil mudar a estrutura de uma tabela
depois que ela estiver preenchida com
dados (mas não impossível).
Planejamento de Banco de Dados
Normalização dos dados torna as tabelas o mais
eficientes e compactas possíveis, para eliminar
a possibilidade de confusão e erro.
Algumas regras, chamadas regras de
normalização, governam o modo como um BD
deve armazenar suas tabelas:
Evitar informações repetidas.
Evitar dados redundantes.
Planejamento de Banco de Dados
Evitar informações repetidas:
Suponha que você queira manter informações de
contato sobre seus clientes juntamente com um
registro de cada transação que eles efetuarem.
Se você mantivesse tudo em uma tabela, teria que
repetir o nome completo do cliente, o endereço e o
número de telefone toda vez que incluísse uma nova
transação.
Também teria que mudar o endereço em cada registro
de transação para esse cliente.
Planejamento de Banco de Dados
Evitar informações repetidas:
Uma maneira melhor é atribuir a cada cliente
um número de código.
Inclua esse número de código em uma tabela
contendo nomes e endereços.
Depois use o mesmo número de código como
um vínculo em uma tabela separada que
contenha as transações
Planejamento de Banco de Dados
Evitar informações repetidas
Exemplo com uma tabela:
Nome Endereço Telefone Data do Total do Pedido
Pedido
Bombeiros Av. Dr. Alberto (011)3021-8542 10/02/2001 R$ 155,90
ABC Seavre, 620
Bombeiros Av. Dr. Alberto (011)3021-8542 12/02/2001 R$ 230,90
ABC Seavre, 620
Bombeiros Av. Dr. Alberto (011)3021-8542 20/02/2001 R$ 35,98
ABC Seavre, 620
Drogaria Jacó Rua dos Amantes, 9978-7766 10/12/2000 R$ 34,90
465/980
Drogaria Jacó Rua dos Amantes, 9978-7766 10/02/2000 R$ 145,98
465/980
Pizza do Mile Rua Leste, 108 234-9922 20/02/2001 R$ 789,00
Planejamento de Banco de Dados
Exemplo após normalizar:
Tabela de Clientes
Tabela de Pedidos
Código do Nome Endereço Telefone
Cliente
1 Bombeiros ABC Av. Dr. Alberto Seavre, 620 (011)3021-8542
2 Drogaria Jacó Rua dos Amantes, 465/980 9978-7766
3 Pizza do Mile Rua Leste, 108 234-9922
Código do Cliente Data do Pedido Total do Pedido
1 10/02/2001 R$ 155,90
1 12/02/2001 R$ 230,90
1 20/02/2001 R$ 35,98
2 10/12/2000 R$ 34,90
2 10/02/2000 R$ 145,98
3 20/02/2001 R$ 789,00
Planejamento de Banco de Dados
Evitar dados redundantes
Suponha que você queira acompanhar quais funcionários
freqüentam certas aulas de treinamento. Existem muitos
funcionários e aulas.
Uma forma seria manter tudo em uma única tabela Pessoal,
da seguinte forma:
Nome do Endereço Telefone Data de Aula Horas Passou
Funcionário Treinamento Realizada de
Crédito
Filipe Soares R. 16, 221 234-9888 01/01/2000 Liderança 3 Sim
Betina Romão R. da Ponte, 345-9099 03/10/1999 Atendimento 2 Sim
40 ao cliente
Nelson Gomes Estr. Oeste, 233-9888 10/11/2000 Atendimento 2 Sim
40 ao cliente
Marta Donato R. Guerra, 234-2322 10/10/2000 Discurso 9 Não
720 Público
Planejamento de Banco de Dados
Evitar dados redundantes
E se um funcionário tiver mais de uma aula?
Você teria de incluir uma linha duplicada na tabela para
relacioná-lo e depois teria o problema descrito
anteriormente: vários registros com entradas de campo
praticamente idênticas.
E se o único funcionário que assistiu a uma determinada
aula sair da empresa?
Quando você excluir o registro desse funcionário, apagará
também as informações sobre as horas de crédito da aula.
Planejamento de Banco de Dados
Evitar dados redundantes
Uma maneira melhor seria criar tabelas separadas para
Funcionário, Aulas e Treinamento Realizado, da seguinte
forma:
Tabela Funcionários
Código Nome do Funcionário Endereço Telefone
1 Filipe Soares R. 16, 221 234-9888
2 Betina Romão R. da Ponte, 40 345-9099
3 Nelson Gomes Estr. Oeste, 40 233-9888
4 Marta Donato R. Guerra, 720 234-2322
Planejamento de Banco de Dados
Evitar dados redundantes
Tabela Aula
Código da Aula Aula Créditos
C1 Liderança 3
C2 Atendimento ao cliente 2
C3 Discurso Público 9
Tabela Treinamento
Código do Data Aula Passou?
Funcionário
1 01/01/2000 C1 Sim
2 03/10/1999 C2 Sim
3 10/11/2000 C2 Sim
4 10/10/2000 C3 Não