Introdução a Banco de Dados e Access

Propaganda
Roteiro
Introdução a Banco de
Dados e Access
Isabel Harb Manssour
1.
Conceitos Bá
Básicos de Banco de
Dados
2.
Microsoft Access
3.
Modelo Entidade-Relacionamento
4.
Planejamento de Banco de Dados
Porto Alegre, maio de 2007
Baseado no material das professoras Miriam Sayão, Adriana Beiler e Elisa Boff
Conceitos Básicos de Banco de Dados
Conceitos Básicos de Banco de Dados
Campo (Field)
Arquivos
Conjunto de caracteres com o mesmo significado
Exemplo: nome
Permitem o armazenamento permanente de
dados
Dados persistentes
Registro (Record)
Dispositivos de armazenamento secundários
Armazenam arquivos
Discos magnéticos, discos ópticos, fitas
magnéticas
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: _______
Arquivo seqüencial
Registro
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.
Campos
Campo
Registro
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
:
:
:
:
:
Conceitos Básicos de Banco de Dados
Arquivo
Conceitos Básicos de Banco de Dados
Conceitos Básicos de Banco de Dados
Arquivo seqüencial
Arquivo seqüencial
Pesquisa 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: João
End: ____
Fone: ____
Válido: V
Nome: Paulo
E
End: ____
O
Fone: ____
F
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
Todos os registros possuem o mesmo tamanho e são
armazenados seqüencialmente na memória
Conceitos Básicos de Banco de Dados
Conceitos Básicos de Banco de Dados
Arquivo de índice
Arquivos de índice
Consiste em um arquivo que guarda o campo
chave e a posição do registro no disco
Exemplo:
E100
E101
E102
Nome: João
End: ____
Fone: ____
Válido: V
Nome: Maria
End: ____
Fone: ____
Válido: F
Nome: José
End: ____
Fone: ____
Válido: V
E103
Nome: Ana
End: ____
Fone: ____
Válido: V
E104
Nome: Paulo
End: ____
Fone: ____
Válido: V
Permitem o acesso rápido às dados
Vários podem ser criados
E105
Nome: Rita
End: ____
Fone: ____
Válido: V
E
O
F
Arquivo de Dados
Índice por nome
Índice por idade
Índice por telefone
...
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
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
E
O
F
Roteiro
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.
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:
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
1.
Conceitos Básicos de Banco de Dados
2.
Microsoft Access
3.
Modelo Entidade-Relacionamento
4.
Planejamento de Banco de Dados
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
Arquivos possuem extensão MDB.
Possui assistentes que facilitam a criação
dos bancos de dados.
Microsoft Access
Microsoft Access
Roteiro
Microsoft Access
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
1.
Conceitos Básicos de Banco de Dados
2.
Microsoft Access
3.
Modelo EntidadeEntidade-Relacionamento
4.
Planejamento de Banco de Dados
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
Modelo Entidade-Relacionamento
Relacionamentos
Representam características ou informações
das entidades ou dos relacionamentos
Exemplos para entidades:
Fato ou acontecimento que liga dois objetos do
mundo real (ou duas entidades do modelo)
Representação:
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
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
nome
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
Cliente
Compra
Livro
Professor
Curso
possui
ministra
Disciplinas
Professor
1
M
Compra
ministra
N
N
Item
Disciplina
Modelo Entidade-Relacionamento
Modelo Entidade-Relacionamento
Exemplo 1:
Aluguel
N
pertence
Chave
Cliente
1
•
um Aluguel pertence a no máximo um Cliente
•
um Cliente pode ter mais de um aluguel
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
Exemplo 2:
Fornecedor
N
fornece
M
Produto
• um Fornecedor fornece vários Produtos
• um Produto pode ser fornecido vários Fornecedores
Modelo Entidade-Relacionamento
Tipos de chave
Modelo Entidade-Relacionamento
Tipos de chave
Chave estrangeira (FK - Foreign Key)
Chave primária (PK - Primary 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:
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
Chave primária
NumCliente
Roteiro
1.
Conceitos Básicos de Banco de Dados
2.
Microsoft Access
3.
Modelo Entidade-Relacionamento
4.
Planejamento de Banco de Dados
Chave estrangeira
Chave primária
Nome
Endereço
NumPedido
NumCliente
Quantidade
1
2
5
R$ 25,00
Valor
1
Fulano
Rua x
2
1
3
R$ 15,00
2
Beltrao
Avenida y
3
2
2
R$ 10,00
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
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
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
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
Planejamento de Banco de Dados
Exemplo após normalizar:
Evitar informações repetidas
Tabela de Clientes
Tabela de Pedidos
Exemplo com uma tabela:
!
'
()
'
()
'
()
%
%
&7
7
" #$
(* % (#
'
+ *, (* % (#
'
+ *, (* % (#
'
+ *, 4 5 16
(
3 4 5 16
(
3 8# 16 9 , -
.
- /- 0
%
&
--
.
- /- 0
-
Código do
Cliente
1
2
3
" # &
-- 12
,
3-
-- 12 -,
3-
.
- /- 0
--
-- 12 ,
3
,
33
0
-
--- 12 ,
3-
,
33
0
--
--- 12
033
--
-- 12 3,
--
" #$
%
"
(6#
1 #
7
<
#
8
?
%
1 ,
1
&
@
1
?6
-
,
03
- - --- 9
03-33 - - 333 (
&
!
,
03
-
6
0
#
- - --- % 6
&A'#
+
+
#
,
--- (
Telefone
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
)=
:# +
1 >
Av. Dr. Alberto Seavre, 620 (011)3021-8542
Rua dos Amantes, 465/980 9978-7766
Rua Leste, 108
234-9922
,
3
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:
!
Bombeiros ABC
Drogaria Jacó
Pizza do Mile
1
1
1
2
2
3
Evitar dados redundantes
;
Endereço
Código do Cliente
Planejamento de Banco de Dados
:6
Nome
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.
+
3
>
Planejamento de Banco de Dados
Planejamento de Banco de Dados
Evitar dados redundantes
Evitar dados redundantes
Uma maneira melhor seria criar tabelas separadas para
Funcionário, Aulas e Treinamento Realizado, da seguinte
forma:
Tabela Funcionários
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
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
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