Introdução a Banco de Dados e Access -...
Transcript of Introdução a Banco de Dados e Access -...
![Page 1: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/1.jpg)
Introdução a Banco de
Dados e Access
Edson Ifarraguirre Moreno
Porto Alegre, maio de 2011
Baseado no material da professora Isabel Harb Manssour
![Page 2: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/2.jpg)
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
![Page 3: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/3.jpg)
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
![Page 4: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/4.jpg)
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
![Page 5: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/5.jpg)
Conceitos Básicos de Banco de Dados
Nome 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
: : : : :
Campo
Registro
Arquivo
Ficha
Nome: ____
Endereço: _____
Telefone: ______
CIC: ______
RG: _______
Registro
Campos
![Page 6: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/6.jpg)
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
![Page 7: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/7.jpg)
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
End: ____
Fone: ____
Válido: V
Todos os registros possuem o mesmo tamanho e são
armazenados seqüencialmente na memória
E
O
F
![Page 8: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/8.jpg)
Conceitos Básicos de Banco de Dados
Arquivo seqüencial
Pesquisa seqüencial
Acesso direto
Contar os bytes...
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
![Page 9: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/9.jpg)
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:
Nome: João
End: ____
Fone: ____
Válido: V
Nome: Maria
End: ____
Fone: ____
Válido: F
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
E100 E101 E102 E103 E104 E105
Arquivo de Dados
Arquivo de Índice
E
O
F
Chave: Ana
Posição: E103
Chave: João
Posição: E100
Chave: José
Posição: E102
Chave: Maria
Posição: E101
Chave: Paulo
Posição: E104
Chave: Rita
Posição: E105
E
O
F
![Page 10: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/10.jpg)
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
...
![Page 11: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/11.jpg)
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
![Page 12: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/12.jpg)
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
![Page 13: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/13.jpg)
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.
![Page 14: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/14.jpg)
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
![Page 15: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/15.jpg)
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
![Page 16: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/16.jpg)
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
![Page 17: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/17.jpg)
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
![Page 18: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/18.jpg)
Microsoft Access
Arquivos possuem extensão MDB
Possui assistentes que facilitam a criação
dos bancos de dados
![Page 19: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/19.jpg)
Microsoft Access
![Page 20: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/20.jpg)
Microsoft Access
![Page 21: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/21.jpg)
Microsoft Access
![Page 22: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/22.jpg)
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
![Page 23: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/23.jpg)
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
![Page 24: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/24.jpg)
Modelo Entidade-Relacionamento
SGBD Relacional
Exemplo de dados organizados na forma de
tabelas:
CodTipoProd DescrTipoProd
1 Computador
2 Impressora
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
Tipo de Produto
Produto
![Page 25: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/25.jpg)
Modelo Entidade-Relacionamento
Arquitetura de um banco de dados relacional
Entidades
Atributos (coluna)
Relacionamentos
Restrições sobre relacionamentos
![Page 26: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/26.jpg)
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
![Page 27: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/27.jpg)
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
![Page 28: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/28.jpg)
Relacionamentos
Fato ou acontecimento que liga dois objetos do
mundo real (ou duas entidades do modelo)
Representação:
nome
Modelo Entidade-Relacionamento
![Page 29: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/29.jpg)
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
LivroCliente Compra
Modelo Entidade-Relacionamento
Professor ministra Disciplinas
Curso possui
![Page 30: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/30.jpg)
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 Compra Item1 N
Professor ministra DisciplinaM N
Modelo Entidade-Relacionamento
![Page 31: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/31.jpg)
Exemplo 1:
• um Aluguel pertence a no máximo um Cliente
• um Cliente pode ter mais de um aluguel
1
NAluguel pertence Cliente
• um Fornecedor fornece vários Produtos
• um Produto pode ser fornecido vários Fornecedores
M
NFornecedor fornece Produto
Exemplo 2:
Modelo Entidade-Relacionamento
![Page 32: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/32.jpg)
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
![Page 33: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/33.jpg)
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
![Page 34: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/34.jpg)
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:
NumCliente Nome Endereço
1 Fulano Rua x
2 Beltrao Avenida y
NumPedido NumCliente Quantidade Valor
1 2 5 R$ 25,00
2 1 3 R$ 15,00
3 2 2 R$ 10,00
Chave primária
Chave primária Chave estrangeira
![Page 35: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/35.jpg)
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
![Page 36: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/36.jpg)
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á.
![Page 37: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/37.jpg)
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.
![Page 38: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/38.jpg)
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
![Page 39: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/39.jpg)
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).
![Page 40: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/40.jpg)
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
![Page 41: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/41.jpg)
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.
![Page 42: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/42.jpg)
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
![Page 43: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/43.jpg)
Planejamento de Banco de Dados
Evitar informações repetidas
Exemplo com uma tabela:
Nome Endereço Telefone Data do
Pedido
Total do Pedido
Bombeiros ABC
Av. Dr. Alberto Seavre, 620
(011)3021-8542 10/02/2001 R$ 155,90
Bombeiros ABC
Av. Dr. Alberto Seavre, 620
(011)3021-8542 12/02/2001 R$ 230,90
Bombeiros ABC
Av. Dr. Alberto Seavre, 620
(011)3021-8542 20/02/2001 R$ 35,98
Drogaria Jacó Rua dos Amantes,
465/980
9978-7766 10/12/2000 R$ 34,90
Drogaria Jacó Rua dos Amantes, 465/980
9978-7766 10/02/2000 R$ 145,98
Pizza do Mile Rua Leste, 108 234-9922 20/02/2001 R$ 789,00
![Page 44: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/44.jpg)
Planejamento de Banco de Dados
Exemplo após normalizar:
Tabela de Clientes
Tabela de Pedidos
Código do Cliente
Nome Endereço Telefone
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
![Page 45: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/45.jpg)
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 Data de
Treinamento
Aula
Realizada
Horas
de Crédito
Passou
Filipe Soares R. 16, 221 234-9888 01/01/2000 Liderança 3 Sim
Betina Romão R. da Ponte, 40
345-9099 03/10/1999 Atendimento ao cliente
2 Sim
Nelson Gomes Estr. Oeste, 40
233-9888 10/11/2000 Atendimento ao cliente
2 Sim
Marta Donato R. Guerra, 720
234-2322 10/10/2000 Discurso Público
9 Não
![Page 46: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/46.jpg)
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.
![Page 47: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/47.jpg)
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
![Page 48: Introdução a Banco de Dados e Access - inf.pucrs.bremoreno/undergraduate/MISC/ferrcomp/class_files/... · Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto](https://reader031.fdocuments.net/reader031/viewer/2022022109/5c4d822493f3c317607486f7/html5/thumbnails/48.jpg)
Planejamento de Banco de Dados
Evitar dados redundantes
Tabela Aula
Tabela Treinamento
Código da Aula Aula Créditos
C1 Liderança 3
C2 Atendimento ao cliente 2
C3 Discurso Público 9
Código do Funcionário
Data Aula Passou?
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