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 B
Conceitos B
á
á
sicos de Banco de
sicos de Banco de
Dados
Dados
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
: : : : : 873260269 028.480/8 223.66.51 Ipiranga 67 Maria Santos 456546568 454.567/8 353.46.54 Siqueira 34 João Neto 271646252 345.565/9 332.56.35 Andradas 34 Ana Silva RG CIC Telefone Endereço Nome 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: VTodos 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 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 FConceitos 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ãoPosição: E100 Chave: JoséPosição: E102 Chave: MariaPosição: E101 Chave: PauloPosição: E104 Chave: RitaPosiçã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
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 Access
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 Banco de Dados
2.
Microsoft Access
3.
3.
Modelo Entidade
Modelo Entidade
-
-
Relacionamento
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: Impressora 2 Computador 1 DescrTipoProd CodTipoProd 2 800 Impressora laser 4 2 600
Impressora jato de tinta 3 1 3500 PC notebook ABC 2 1 2500 PC desktop modelo x 1 CodTipoProd PrecoProd DescrProd CodProd 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
Livro
Cliente 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 1 Compra N Item
Professor M ministra N Disciplina
Exemplo 1:
• um Aluguel pertence a no máximo um Cliente • um Cliente pode ter mais de um aluguel
1 N
Aluguel pertence Cliente
• um Fornecedor fornece vários Produtos
• um Produto pode ser fornecido vários Fornecedores M N
Fornecedor 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 Beltrao 2 Fulano 1 Nome NumCliente R$ 10,00 2 2 3 R$ 15,00 3 1 2 R$ 25,00 5 2 1 Valor Quantidade NumCliente NumPedido Chave 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 Dados
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ê
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 PedidoPlanejamento 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 redundantesSuponha 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 redundantesE 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 redundantesUma 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