introdução a banco de conceitos básicos de banco de dados...
TRANSCRIPT
�
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
1.1. Conceitos BConceitos Báásicos de Banco de sicos de Banco de DadosDados
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
:::::
873260269028.480/8223.66.51Ipiranga 67Maria Santos
456546568454.567/8353.46.54Siqueira 34João Neto
271646252345.565/9332.56.35Andradas 34Ana Silva
RGCICTelefoneEndereçoNome
Campo
RegistroArquivo
FichaNome: ____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ãoEnd: ____Fone: ____Válido: V
Nome: MariaEnd: ____Fone: ____Válido: V
Nome: JoséEnd: ____Fone: ____Válido: V
Nome: AnaEnd: ____Fone: ____Válido: V
Nome: PauloEnd: ____Fone: ____Válido: V
Todos os registros possuem o mesmo tamanho e são armazenados seqüencialmente na memória
EOF
Conceitos Básicos de Banco de Dados
� Arquivo seqüencial� Pesquisa seqüencial
Nome: JoãoEnd: ____Fone: ____Válido: V
Nome: MariaEnd: ____Fone: ____Válido: V
Nome: JoséEnd: ____Fone: ____Válido: V
Nome: AnaEnd: ____Fone: ____Válido: V
Nome: PauloEnd: ____Fone: ____Válido: V
Nome: RitaEnd: ____Fone: ____Válido: V
EOF
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ãoEnd: ____Fone: ____Válido: V
Nome: MariaEnd: ____Fone: ____Válido: F
Nome: JoséEnd: ____Fone: ____Válido: V
Nome: AnaEnd: ____Fone: ____Válido: V
Nome: PauloEnd: ____Fone: ____Válido: V
Nome: RitaEnd: ____Fone: ____Válido: V
E100 E101 E102 E103 E104 E105
Arquivo de Dados
Arquivo de Índice
EOF
Chave: AnaPosição: E103
Chave: JoãoPosição: E100
Chave: JoséPosição: E102
Chave: MariaPosição: E101
Chave: PauloPosição: E104
Chave: RitaPosição: E105
EOF
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
������������� �������������� �� � ��
�
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 Banco de Dados
2.2. Microsoft AccessMicrosoft Access3. 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 Banco de Dados
2. Microsoft Access
3.3. Modelo EntidadeModelo Entidade--RelacionamentoRelacionamento4. 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:
Impressora2
Computador1
DescrTipoProdCodTipoProd
2800Impressora laser4
2600Impressora jato de tinta3
13500PC notebook ABC2
12500PC desktop modelo x1
CodTipoProdPrecoProdDescrProdCodProd
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:
Avenida y
Rua x
Endereço
Beltrao2
Fulano1
NomeNumCliente
R$ 10,00223
R$ 15,00312
R$ 25,00521
ValorQuantidadeNumClienteNumPedidoChave primária
Chave primária Chave estrangeira
1. Conceitos Básicos de Banco de Dados
2. Microsoft Access
3. Modelo Entidade-Relacionamento
4.4. Planejamento de Banco de DadosPlanejamento 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:
����� � ���!��� "�#�$����� %���� ��&� ��
"���#� ��&� ��
���'�����(�)�
(*��%���(#'�����+��*��,���-�
.-��/�-��0����� �-�-���--�� 12����,3-�
���'�����(�)�
(*��%���(#'�����+��*��,���-�
.-��/�-��0����� ���-���--�� 12���-,3-�
���'�����(�)�
(*��%���(#'�����+��*��,���-�
.-��/�-��0����� �-�-���--�� 12���,3��
%�������4��5� 16�� ���(������,�����3�-�
33��0����� �-�����---� 12���,3-�
%�������4��5� 16�� ���(������,�����3�-�
33��0����� �-�-���---� 12����,3��
&77�� ��8#�� 16��9����,��-�� ���033��� �-�-���--�� 12���3,--�
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:
����� ��:6����;���
� ���!�� "�#�$���� %���� ��"����������
(6#��1��#7� ��
<����� ��)�= ���
&����6�
:#���+������ 1����,����� ���03���� -��-���---� 9 ����!�� �� +��������1��>�� 1�� �� &����,�
�-����03-33� -���-��333� (��� ������
����#������� +��
��#����?����� ����� @����,��-�
���03���� �-�����---� (��� �����������#�����
�� +��
8�����%������ 1�� ?6����,���-�
���0����� �-��-��---� %��6����&A'#���
3� �>��
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