Cap. 5-2 Bases de Dados - MsAccess Filipe Caldeira - 2001 1 Introdução Porquê a utilização de Sistemas de Bases de Dados (SBD)? Armazenamento dos dados de uma forma consistente ( a informação não deve conter informação divergente sobre o mesmo facto), de fácil acesso usando linguagens de consultas e com mecanismos de segurança para o acesso à informação 2 1
DadosvsInformação Dados só se transformam em informação quando relacionados ou interpretados de alguma forma. As pessoas, ao tomarem decisões, utilizam a informação e não os dados. A informação é uma necessidade diária em qualquer acto de gestão e tem um papel fundamental na previsão de actividades e resultados futuros de uma empresa. 3 Sistemas de Bases de Dados Funções de um SGBD Aplicação A Aplicação B Aplicação C Descrição Manipulação Consulta Inserção Actualização Controlo Confidencialidade Segurança SGDB Base de Dados SGBD Sistema de Gestão de Bases de Dados 4 2
Funcionalidades de um SGBD Conjunto de programas para aceder aos dados Evitar redundâncias e inconsistências Facilitar o acesso aos dados Permitir acesso simultaneo à informação Garantir a segurança dos dados Garantir integridade da informação, de acordo com restrições pré-definidas 5 Exemplo Um banco quer guardar a informação dos seus clientes e das contas. Para além de guardar a informação, o banco precisa de programas para Fazer débitos e créditos numa conta Abrir e fechar contas Ver o saldo de uma conta Fazer os estratos das contas 6 3
Vantagens Facilidade de partilha dos dados Diminuição dos custos de utilização e de pesquisa Diminuição dos custos de manutenção e de exploração Prevenção da redundância e da ambiguidade dos dados Consistência na formatação dos dados Suporte à criação de múltiplas formas de visualização da informação 7 Tabelas Os dados estão armazenados em forma de tabelas nas diferentes bases de dados, como o ORACLE e o ACCESS. Para o desenho e a construcção de SBDs são utilizados modelos conceptuais, como o modelo Entidade-Relações O objectivo principal é o de providenciar um modelo independente do método de armazenamento e acesso de dados. 8 4
Modelo Entidade-Relação (ER) Identificação das coisas de maior importância num dado sistema do mundo real: as entidades, as propriedades das entidades (os atributos), e a forma como se relacionam entre si (as relações) São fácilmente compreendidos pelos nãoespecialistas O diagrama ER é o ponto de partida para o desenho da base de dados. 9 Conceitos do modelo ER (1) Entidades Um conjunto de objectos que se podem distinguir (identificar) Exemplo: O conjunto de todos os clientes do banco. O conjunto de todas as contas do banco. Atributos Propriedades de um entidade Exemplos: Nome, telefone e morada dos cliente 10 5
Relações Conceitos do modelo ER (2) Conjunto de associações entre várias entidades Cliente 33 193710 22 Maria Lisboa 3847101 11 Manuel Beja 168389 Conta 11111 100.000$00 11112 50.000$00 11113 60.000$00 relação entidade conjunto entidade 11 Tipos de relações Relação um para um (1:1) Uma pessoa só tem um nº de bilhete de identidade. Relação um para muitos (1:N) Uma turma tem vários alunos, mas um aluno só pertence a uma turma. Relação muitos para muitos (N:M) Uma conta bancária pode pertencer a vários clientes e vice-versa. 12 6
Chaves Como distinguir entidades? Um ou mais atributos que permitem distinguir entre entidades, i.e permitem identificar (inequivocamente) cada uma das entidades de um conjunto de entidades. Exemplo: O atributo nº de cliente da entidade clientes. Nas relações a chave corresponde à união das chaves das entidades associadas à relação 13 Exemplo de um modelo ER data nº saldo nº clientes M:N contas nome morada telefone clientes/contas 14 7
Modelo Relacional /Tabelas Como implementar o modelo ER? No modelo relacional em forma de tabelas Dado um diagrama ER, que tabelas se devem criar? A cada conjunto entidade, e a cada conjunto relação, vai corresponder um tabela. Com que atributos? 15 Elaborar um modelo de dados Determinar o alcance (suas fronteiras) da análise Identificar as entidades Identificar as relações entre as entidades Identificar os atributos das entidades e das relações Identificar a chave de cada entidade 16 8
Entidades Conjunto entidade E com n atributos a 1,,a n Deve criar-se uma tabela com n colunas, uma para cada atributo. nome morada telefone clientes... clientes nome morada telefone 17 Relações Conjunto relação R entre entidades E 1,,E m com k atributos adicionais a 1,,a k. Então os atributos da relação correspondem às chaves das entidades mais os k atributos adicionais a 1,,a k. clientes nome morada telefone clientes/conta data M:N clientes/contas nº cliente data chave(e ) 1 chave(e ) 2 atributo(r) contas saldo 18 9
Tabelas Clientes número nome morada telefone 141 João Évora 12635 142 Maria Lisboa 61623918 Conta número saldo 100 200.000$00 200 50.000$00 300 100.000$00 Conta/ Clientes Número Número Data cliente Conta 141 100 21.10.1998 142 100 22.10.1998 142 200 27.11.1998 19 Criação de Tabelas em Access Criar uma Base de Dados nova, em que se irá inserir as tabelas. Ficheiro > Nova > Base de Dados -> Dar nome ao ficheiro e especificar a pasta onde ficará Criar tabela Criar tabela 20 10
Criação de Tabelas em Access Cria-se uma nova tabela em Vista de Estrutura Zonas no ecrã para a construcção de tabelas Nome do Campo Poderão ser 64 caracteres incluindo espaços Tipo de Dados Texto (alfanumérico), Número (dados numéricos que podem ser utilizados para cálculos), Data/Hora, Moeda, Númeração Automática (para as chaves, autoincrementável), Sim/Não (booleana) Descrição (Descrição do campo) Propriedades do Campo (Geral ou Pesquisa) Para permitir alterar tamanho dos campos, controlos de verificação, buscas em outras tabelas, etc. 21 Nome da tabela gravar com Ficheiro > Guardar como Chave Se não fôr indicada nenhuma chave primária, então o Access propõe a criação de uma chave. Tabelas 22 11
Lookup Lists (Listas de Pesquisa) - 1 Automatização a nível da tabela para a selecção de informação de um atributo (coluna) Criar tabela auxiliar para armazenar as actividades económicas 23 Lookup Lists (Listas de Pesquisa) - 2 Regressar à tabela Clientes e aceder às propriedades Pesquisa do campo Actvidade Económica e alterálas como se mostra ao lado Agora não é mais preciso inserir os conteudos deste campo, mas sim seleccioná-los. 24 12
Inserção de mais duas tabelas Tabela auxiliar Tipos de Cursos Tabela Cursos Facturados 25 Como é feita a inserção com Pesquisa na Tabela 26 13
Definir Relações entre as Tabelas Aceder ao menu Ferramentas e seleccionar Relações ou botão Criar ligação Em mostrar tabela, adicioná-las todas Arrastar e largar o rato do campo na tabela um para o resp. campo na tabela muitos 27 Criar Relações entre Tabelas 28 14
Tabelas Criadas 29 Estruturação de bases de dados Access Determinar as tabelas necessárias à base de dados Determinar os atributos de cada tabela Determinar os atributos com valores exclusivos, i.e., os atributos chaves Determinar as relações entre as tabelas Aperfeiçoar a estrutura Adicionar os dados 30 15
Consultas Não basta armazenar os dados. Há que, pelo menos, poder consultar os dados armazenados. O que são consultas? Analisar a informação nas tabelas para obter um conjunto filtrado de informação Que tipo de consultas existem? Selecção, Projecção, Junção,... 31 Consultas assistidas em Access Consultas mais usadas seleccionar um conjunto de campos de uma ou várias tabelas (projecção) criar condições que permitam filtrar um conjunto de registos (selecção) operações estatísticas sobre os registos 32 16
Consulta de Selecção Seleccionar Consultas > Criar consulta na vista de estrutura Seleccionar quais as tabelas necessárias à consulta pretendida 33 Selecção de Campos Arrastar os campos pretendidos para as colunas da consulta p/ a zona (QBE) Zona Query-by- Example (QBE) onde são especificadas características específicas da consulta 34 17
Executar Consulta Activar a consulta seleccionando no menu Consulta > Executar ou através do botão 35 Assistente de Consulta 36 18
Consultas com Condição Simples Exemplo: Seleccionar as empresas com actividades em Informática Indicar critério Resultado 37 Consultas com Condição Múltipla Exemplo: Seleccionar as empresas com actividades em Indústria ou estejam em Cascais Utilizar o LIKE para a selecção de substrings 38 19
Consultas entre Tabelas Obter um conjunto de registos constituídos por dados provenientes de várias tabelas, havendo a necessidade de relacioná-las. A relação tem por base um campo comum (p.e. o Nº de Cliente) 39 Exemplo: Junção das Tabelas Clientes e Cursos Facturados 40 20
Consultas com Campos Calculados Calcular Total Curso, ou seja multiplicar o Nº de Participantes e o Custo por Participante Ao criar uma Query seleccionar ambas as tabelas Clientes e Cursos Facturados Seleccionar os registos (veja em baixo) Inserir no campo Total Curso: [Nº de participantes] * [Custo por Participante] 41 Operações Estatísticas Como, por exemplo, o somatório ou a média Exemplo: Total gasto por cada cliente em cursos Total Curso: Soma([Nº de participantes]*[custo por Participante]) Agrupar pela empresa (Group By) Seleccionar Σ para agrupar 42 21
Consultas em SQL Linguagem comercial padrão para consultas no modelo relacional As consultas em SQL são feitas sempre segundo um esquema Uma pergunta típica em SQL tem a forma select A 1, A 2,..., A m from E 1, E 2,..., E n where condition atributos Entidades (tabelas) 43 Selecção selecção de tuplos, ou linhas, com as seguintes condições {=,, <,, >, } Exemplo: select * from Clientes where Nº de Clientes > 2 44 22
Projecção selecção de colunas Exemplo: select Clientes.Empresa from Clientes 45 Junção De mais de uma tabela, por exemplo as tabelas Clientes e Cursos Facturados select Clientes.Nº de Cliente, Clientes.Empresa, Cursos Facturados.Designação from Clientes, Cursos Facturados where Designação = Access 2000 46 23
Mais Exemplos Nº de Cliente, Empresa em Lisboa select Nº de Cliente, Empresa from Clientes where Morada like Access 2000 Total do Curso agrupado pelas empresas select c.empresa, cf. Nº de participantes, Nº de participantes * Custo por Participante from Clientes c, Cursos Facturados cf group by c.empresa 47 24