Planejamento de Banco de Dados

Propaganda
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)



Registro (Record)




Conjunto de caracteres com o mesmo significado
Exemplo: nome
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
Nome: ____
Endereço: _____
Telefone: ______
CIC: ______
RG: _______
Registro
Campos
Campo
Nome
Registro
Endereço
Telefone
CIC
RG
Ana Silva
Andradas 34
332.56.35
345.565/9
271646252
João Neto
Siqueira 34
353.46.54
454.567/8
456546568
Maria Santos Ipiranga 67
223.66.51
028.480/8
873260269
:
:
:
:
:
Arquivo
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
End: ____
Fone: ____
Válido: V
Nome: Maria
End: ____
Fone: ____
Válido: V
Nome: José
End: ____
Fone: ____
Válido: V
Nome: Ana
End: ____
Fone: ____
Válido: V
Nome: Paulo
E
End: ____
O
Fone: ____
F
Válido: V
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
End: ____
Fone: ____
Válido: V
Nome: Maria
End: ____
Fone: ____
Válido: V
Nome: José
End: ____
Fone: ____
Válido: V
Nome: Ana
End: ____
Fone: ____
Válido: V
Nome: Paulo
End: ____
Fone: ____
Válido: V
Nome: Rita
End: ____
Fone: ____
Válido: V
E
O
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
Nome: João
End: ____
Fone: ____
Válido: V
Nome: Maria
End: ____
Fone: ____
Válido: F
E102
Nome: José
End: ____
Fone: ____
Válido: V
E103
Nome: Ana
End: ____
Fone: ____
Válido: V
E104
Nome: Paulo
End: ____
Fone: ____
Válido: V
E105
Nome: Rita
End: ____
Fone: ____
Válido: V
E
O
F
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
Professor
Curso
possui
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)
Cliente
Professor
1
M
Compra
ministra
N
N
Item
Disciplina
Modelo Entidade-Relacionamento
Exemplo 1:
Aluguel
N
pertence
Cliente
1
•
um Aluguel pertence a no máximo um Cliente
•
um Cliente pode ter mais de um aluguel
Exemplo 2:
Fornecedor
N
fornece
M
Produto
• 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
NumCliente
Nome
Endereço
NumPedido
NumCliente
Quantidade
Valor
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
Bombeiros
ABC
Bombeiros
ABC
Bombeiros
ABC
Drogaria Jacó
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
Drogaria Jacó
Pizza do Mile
Telefone
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
10/12/2000 R$ 34,90
9978-7766
10/02/2000 R$ 145,98
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
Cliente
1
2
3
Nome
Endereço
Telefone
Bombeiros ABC
Drogaria Jacó
Pizza do Mile
Av. Dr. Alberto Seavre, 620
Rua dos Amantes, 465/980
Rua Leste, 108
(011)3021-8542
9978-7766
234-9922
Código do Cliente
1
1
1
2
2
3
Data do Pedido
Total do Pedido
10/02/2001
12/02/2001
20/02/2001
10/12/2000
10/02/2000
20/02/2001
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 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
Funcionário
Endereço
Telefone
Filipe Soares
Betina Romão
R. 16, 221
R. da Ponte,
40
Estr.
Oeste,
40
R.
Guerra,
720
234-9888 01/01/2000
345-9099 03/10/1999
Nelson Gomes
Marta Donato
Data de
Aula
Treinamento Realizada
233-9888 10/11/2000
234-2322 10/10/2000
Horas
de
Crédito
Liderança
3
Atendimento
2
ao cliente
Atendimento
2
ao cliente
Discurso
9
Público
Passou
Sim
Sim
Sim
Não
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
1
2
3
4
Nome do Funcionário
Filipe Soares
Betina Romão
Nelson Gomes
Marta Donato
Endereço
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
Código da Aula
C1
C2
C3

Aula
Créditos
Liderança
3
Atendimento ao cliente
2
Discurso Público
9
Tabela Treinamento
Código do
Funcionário
1
2
3
4
Data
Aula
Passou?
01/01/2000
03/10/1999
10/11/2000
10/10/2000
C1
C2
C2
C3
Sim
Sim
Sim
Não
Download