Introdução a Banco de Dados e Access -...
Transcript of Introdução a Banco de Dados e Access -...
Introdução a Banco de
Dados e Access
Edson Ifarraguirre Moreno
Porto Alegre, maio de 2011
Baseado no material da professora Isabel Harb Manssour
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
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
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
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
End: ____
Fone: ____
Válido: V
Todos os registros possuem o mesmo tamanho e são
armazenados seqüencialmente na memória
E
O
F
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
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
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.
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
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
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
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:
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
Modelo Entidade-Relacionamento
Arquitetura de um banco de dados relacional
Entidades
Atributos (coluna)
Relacionamentos
Restrições sobre relacionamentos
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
LivroCliente Compra
Modelo Entidade-Relacionamento
Professor ministra Disciplinas
Curso possui
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
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
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
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:
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
1. Conceitos Básicos de BD
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4. Planejamento de Banco de Dados
Roteiro
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
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
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
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
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
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