Introdução a Banco de Dados e Access Edson Ifarraguirre Moreno Porto Alegre, maio de 2011 Baseado no material da professora Isabel Harb Manssour
Roteiro 1. Conceitos Básicos de BD 2. Microsoft Access 3. Modelo Entidade-Relacionamento 4. Planejamento de Banco de Dados
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 Ficha Nome: Endereço: Telefone: CIC: RG: Registro 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 : : : : : Arquivo
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 E O F Todos os registros possuem o mesmo tamanho e são armazenados seqüencialmente na memória
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 F Acesso direto Contar os bytes...
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: E100 E101 E102 E103 E104 E105 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 Arquivo de Dados Nome: Paulo End: Fone: Válido: V Nome: Rita End: Fone: Válido: V 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 Arquivo de Índice
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.
Roteiro 1. Conceitos Básicos de BD 2. Microsoft Access 3. Modelo Entidade-Relacionamento 4. Planejamento de Banco de Dados
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
Roteiro 1. Conceitos Básicos de BD 2. Microsoft Access 3. Modelo Entidade-Relacionamento 4. Planejamento de Banco de Dados
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: Tipo de Produto Produto 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
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 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 Cliente Compra Livro Curso possui Professor ministra Disciplinas
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) 1 N Cliente Compra Item M N Professor ministra Disciplina
Modelo Entidade-Relacionamento Exemplo 1: N Aluguel pertence Cliente 1 um Aluguel pertence a no máximo um Cliente um Cliente pode ter mais de um aluguel Exemplo 2: N Fornecedor fornece Produto M um Fornecedor fornece vários Produtos um Produto pode ser fornecido vários Fornecedores
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 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) Chave primária 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 Chave primária Chave estrangeira NumPedido NumCliente Quantidade Valor 1 2 5 R$ 25,00 2 1 3 R$ 15,00 3 2 2 R$ 10,00
Roteiro 1. Conceitos Básicos de BD 2. Microsoft Access 3. Modelo Entidade-Relacionamento 4. Planejamento de Banco de Dados
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 diaa-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 Total do Pedido Pedido Bombeiros Av. Dr. Alberto (011)3021-8542 10/02/2001 R$ 155,90 ABC Seavre, 620 Bombeiros Av. Dr. Alberto (011)3021-8542 12/02/2001 R$ 230,90 ABC Seavre, 620 Bombeiros Av. Dr. Alberto (011)3021-8542 20/02/2001 R$ 35,98 ABC Seavre, 620 Drogaria Jacó Rua dos Amantes, 9978-7766 10/12/2000 R$ 34,90 465/980 Drogaria Jacó Rua dos Amantes, 9978-7766 10/02/2000 R$ 145,98 465/980 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 Nome Endereço Telefone Cliente 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, 345-9099 03/10/1999 Atendimento 2 Sim 40 ao cliente Nelson Gomes Estr. Oeste, 233-9888 10/11/2000 Atendimento 2 Sim 40 ao cliente Marta Donato R. Guerra, 234-2322 10/10/2000 Discurso 9 Não 720 Público
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 Código da Aula Aula Créditos C1 Liderança 3 C2 Atendimento ao cliente 2 C3 Discurso Público 9 Tabela Treinamento Código do Data Aula Passou? Funcionário 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