Banco de Dados // 1 Banco de Dados // 2 Conceitos BásicosB Engenharia da Computação UNIVASF BANCO DE DADOS Aula 1 Introdução a Banco de Dados Campo representação informatizada de um dado real / menor unidade de informação com valor significativo para o usuário Dado conteúdo do campo Registro conjunto de campos Arquivo conjunto de registros Banco de Dados armazenamento físico f dos arquivos Sistema Gerenciador de Banco de Dados (SGBD) software responsável pelo armazenamento e recuperação dos dados do BD. Banco de Dados // 3 Breve Histórico Computadores com capacidade de armazenamento surgimento de Sistemas Operacionais mais completos SO contendo sistemas de arquivos armazenamento e recuperação de informações mais otimizados. Necessidade de maior eficiência (tempo e espaço) SGBD Banco de Dados // 4 Redundância Inconsistência Dificuldade no acesso a dados Isolamento dos dados Múltiplos usuários Segurança Integridade Atomicidade Banco de Dados // 5 Redundância Arquivos e aplicações criados e mantidos por diferentes programadores arquivos com formatos diferentes e programas escritos em diversas linguagens de programação. Informação repetida em diversos lugares (arquivos). Inconsistência Decorrência da redundância. Várias cópias dos dados poderão divergir ao longo do tempo. Banco de Dados // 6 Dificuldade no acesso aos dados Necessidade de construir programas para obter qualquer informação solicitada. Uma empresa precisa dos nomes de todos os clientes que fazem aniversário rio no mês de fevereiro, mas esta solicitação não foi prevista no projeto do sistema existe somente uma aplicação para gerar a relação de todos os clientes da empresa. Alternativas: 1) separar manualmente da lista de todos os clientes aqueles que necessita 2) requisitar um programador para escrever o programa necessário. Ambas alternativas são insatisfatórias....mais tarde a empresa precisa saber os clientes que têm saldo negativo. 1
Banco de Dados // 7 Isolamento dos dados Dados dispersos em vários arquivos e arquivos em diferentes formatos difícil escrever novas aplicações para recuperação apropriada dos dados. Banco de Dados // 8 Múltiplos usuários Atualizações concorrentes podem resultar em inconsistências. Conta corrente com saldo = R$500,00 Dois clientes debitam da conta A simultaneamente ($50 e $100, respectivamente) Na execução dos programas, ambos lêem o saldo antigo, retiram, cada um seu valor correspondente, sendo o resultado armazenado. Dependendo de qual deles registre seu resultado primeiro, o saldo da conta A será $450 ou $400, ao invés s do valor correto de $350. Banco de Dados // 9 Segurança Definir autorizações de acesso a diferentes usuários. Integridade Valores dos dados armazenados devem satisfazer a certas restrições para manutenção da consistência. O valor da nota final de um aluno deve estar entre 0 e 10.. Os programadores determinam o cumprimento desta restrição através s da adição de código c apropriado aos vários v programas aplicativos. Entretanto, quando aparecem novas restrições, é difícil alterar todos os programas para incrementá-las. O problema é ampliado quando as restrições atingem diversos itens de dados em diferentes arquivos. Banco de Dados // 10 Atomicidade Algumas operações devem ser feitas de forma única, atômica, a fim de assegurar a integridade e consistência dos dados. um programa para transferir R$50,00 da conta A para uma conta B. Se ocorrer falha no sistema durante sua execução, é possível que os 50 reais sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados. É essencial para a consistência do banco de dados que ambos, débito d e crédito ocorram, ou nenhum deles seja efetuado. Isto é,, a transferência de fundos deve ser uma operação atômica deve ocorrer por completo, ou não ocorrer. Banco de Dados // 11 Regras para que um sistema de manipulação de dados seja um SGBD Auto-conten contenção conter dados, suas descrições, relacionamentos e formas de acesso. Independência dos Dados aplicações imunes a mudanças as na estrutura de armazenamento e à estratégia de acesso a dados. Abstração dos Dados usuário não precisa saber detalhes sobre armazenamento real. Visões formas diferentes de ver os dados de acordo com necessidade dos usuários. Transações gerenciar integridade sem precisar de aplicativos. Controle automático tico de acesso vários usuários, travamento eficiente. Banco de Dados // 12 Características de um SGBD Controle de Redundâncias informações armazenadas em um único lugar. Compartilhamento dos Dados garantir concorrência ao acesso dos dados, sem erro. Controle de Acesso seleção de permissões por usuário. Interfaceamento facilidade para recuperação de informação. Esquematização mecanismos que possibilitem a compreensão do relacionamento entre as tabelas e sua manutenção. Controle de Integridade aplicações e acessos não podem comprometer integridade dos dados. Backups facilidade para recuperar falhas de hardware e software. 2
Banco de Dados // 13 SGBD: estruturas complexas para a representação dos dados no banco de dados. Complexidade precisa ser escondida dos usuários. Níveis de abstração: grande vantagem dos SGBD Nível físico: mais baixo descreve como os dados são armazenados Nível conceitual ou lógico: quais dados são armazenados e quais relacionamentos entre eles. Nível visão: se expõe apenas parte do banco de dados. Banco de Dados // 14 Visão 1 Visão 2... Visão N Nível Conceitual Nível FísicoF Banco de Dados // 15 Analogia com o conceito de tipos de dados em linguagens de programação Type cliente = record cliente-nome: string; cliente-cpf: string; cliente-endereco: string; cliente-cidade: string end; Este código c define um novo registro chamado cliente com quatro campos. Cada campo tem um nome e um tipo a ele associado. Banco de Dados // 16 Além de cliente, BD pode ter diversos tipos de registro, como: conta, com os campos numero-conta e saldo empregado, com campos numero-empregado e salário nível físico registro cliente é um bloco consecutivo de memória (por exemplo, palavra ou bytes). O compilador esconde este nível de detalhes dos programadores. nível conceitual ou lógico registro é descrito por um tipo definido, como ilustrado no segmento de código visto. É definida também inter-relação entre estes tipos de registros. nível de visão usuários do computador vêem um conjunto de programas de aplicação que escondem os detalhes dos tipos de dados. Banco de Dados // 17 Instâncias e Esquemas instância conjunto de informações contidas em determinado BD em um dado momento. esquema projeto geral do BD mudados com pouca freqüência. Sistemas de BD possuem diversos esquemas, referentes aos níveis de abstração ão. nível mais baixo = esquema físico nível intermediário = esquema lógico nível mais alto = subesquemas. sistemas de BD dão suporte a um esquema físico, f um esquema lógico l e vários v subesquemas. Banco de Dados // 18 Instâncias e Esquemas Analogia: definição do registro cliente na declaração de seu tipo, não definimos qualquer variável. vel. Definição de variável: vel: var clientenovo: : cliente; clientenovo área de memória que contém um registro tipo cliente. esquema de BD definição do tipo em linguagem de programação. instância do esquema variável de um dado tipo tem um valor em particular em dado instante. Assim, este valor corresponde a uma instância do esquema do BD. 3
Banco de Dados // 19 Independência de Dados capacidade de modificar a definição dos esquemas em determinado nível, n sem afetar o esquema do nível n superior Independência de dados físicaf sica: : modifica o esquema físico sem que, com isso, qualquer programa aplicativo precise ser reescrito (ocasionais para aumento de desempenho). Independência de dados lógical gica: modifica o esquema lógico sem que, com isso, qualquer programa aplicativo precise ser reescrito (sempre que uma estrutura lógica l do BD é alterada) mais díficil de ser atingida. Banco de Dados // 20 Modelos de Dados Coleção de ferramentas conceituais para descrição dos dados, relacionamento entre os dados, semântica e restrições dos dados. Três grupos: Modelos lógicos baseados em objetos Modelos lógicos baseados em registros Modelos de dados físicos Banco de Dados // 21 Modelos Lógicos L Baseados em Objetos Usados na descrição dos dados nos níveis n Visão Visão... conceitual e visão. 1 2... Visão N Banco de Dados // 22 : Modelo Entidade- Relacionamento s: Modelo Entidade-Relacionamento Modelo Orientado a Objeto Modelo Semântico de Dados Modelo Funcional de Dados Nível Conceitual Nível Físico nome rua cliente cidade cliente conta número conta saldo Banco de Dados // 23 Modelos Lógicos L Baseados em Registros Também m usados na descrição dos dados nos níveis n conceitual e visão. Usados para especificar a estrutura lógica l do BD. BD estruturado através s de registros de formato fixo de todos os tipos Cada registro define número n fixo de campos (atributos), e cada campo possui tamanho fixo (simplifica a implementação do BD no nível n físico) f modelo relacional modelo de rede modelo hierárquico Banco de Dados // 24 Modelo Relacional Dados e relacionamentos representados por uma coleção de tabelas. Tabelas com uma quantidade de colunas (atributos)e nomes únicos. Nome Endereço Cidade Número Conta Luís Rua X, 123 Marília 900 Heitor Av. Antonio, 865 Bauru 556 Heitor Av. Antonio, 865 Bauru 647 Joana Rua da Curva, 89 São Paulo 801 Joana Rua da Curva, 89 São Paulo 647 Número Saldo Conta 900 678,00 556 458,98 647 561,89 801 654,12 4
Banco de Dados // 25 Modelo de Rede Dados representados por coleções de registros. Relacionamentos representados por ligações (ponteiros). Registros organizados como coleções arbitrárias rias de grafos. Banco de Dados // 26 Modelo Hierárquico rquico Dados representados por coleções de registros. Relacionamentos representados por ligações. Registros organizados como coleções arbitrárias rias de árvores. Luís Rua X, 123 Marília 9 0 0 6 7 8, 0 0 Luís Rua X, 123 Marília Joana Rua da Curva, 89 São Paulo Heitor Av. Antonio, 865 Adamantina Joana Rua da Curva, 89 São Paulo 5 5 6 4 5 8, 9 8 6 4 7 5 6 1, 8 9 8 0 1 6 5 4, 1 2 9 0 0 6 7 8, 0 0 Heitor Av. Antonio, 865 Adamantina 6 4 7 5 6 1, 8 9 8 0 1 6 5 4, 1 2 5 5 6 4 5 8, 9 8 6 4 7 5 6 1, 8 9 Banco de Dados // 27 Diferenças entre os modelos modelo relacional não usa ponteiros e links relaciona os registros por valores próprios prios a eles. conseqüência possibilidade do desenvolvimento de fundamentos matemáticos ticos para sua definição e manipulação. Banco de Dados // 28 Linguagem de Definição de Dados (DDL) data-definition definition language (DDL) Especificação do esquema de dados resultado da compilação de instruções DDL conjunto de tabelas que constituem o dicionário de dados ou diretório rio de dados dicionário de dados: : arquivo de metadados (dados a respeito de dados) no SGBD o diretório rio é consultado antes que o dado real seja modificado Banco de Dados // 29 Linguagem de Definição de Dados (DDL) s create table alter table drop table create view, drop view Banco de Dados // 30 Linguagem de Manipulação de Dados (DML) data-manipulation language (DML) manipulação de dados: recuperação das informações armazenadas no BD inserção de novas informações no BD remoção de informações do BD modificação das informações do BD Objetivo proporcionar eficiente interação humana com o sistema. DML viabiliza o acesso (manipulação) dos dados organizados por um modelo de dados apropriado. 5
Banco de Dados // 31 Linguagem de Manipulação de Dados (DML) Dois tipos básicos: b Procedimental o usuário deve especificar quais dados são desejados e como chegar até eles. Não Procedimental o usuário deve especificar quais dados são desejados, sem especificar como chegar até eles geralmente mais fácil, mas menos eficiente. Linguagens de consulta (query( query) SQL Banco de Dados // 32 Gerenciador do Banco de Dados (SGBD) BD grandes quantidades de espaço o de armazenamento Dados transportados entre discos e memória principal, conforme a necessidade Sistema de BD deve minimizar necessidade de movimentação Performance (tempo de resposta) depende da eficiência das estruturas de dados usadas e das operações entre elas. Banco de Dados // 33 Gerenciador do Banco de Dados Responsabilidades do Gerenciador: Interação com o gerenciador de arquivos (tradução instruções DML para baixo nível) Garantia de integridade Garantia de segurança Recuperação e backup Controle de concorrência Banco de Dados // 34 Administrador do Banco de Dados (DBA) controle centralizado dos dados e dos programas que acessam os dados Responsável administrador de dados Funções: ões: Definição do esquema Definição da estrutura de dados e método de acesso Modificações da organização física do esquema Concessão de autorização para acesso aos dados Especificação de regras de integridade Banco de Dados // 35 Usuários do Banco de Dados Programadores de aplicações ões interagem com o sistema através s de chamadas DML, envolvidas por programas escritos na linguagem hospedeira (por exemplo, Pascal, C, Delphi). Usuários ocasionais sofisticados, que interagem sem escrever programas. Formulam suas solicitações ao BD através s de linguagens de consultas. Usuários simples interagem com o sistema através s de programas de aplicação. Usuários especializados escrevem aplicações especializadas de BD que não podem ser classificadas como aplicações tradicionais em processamento de dados - esquemas CAD, bases de conhecimento, sistemas especialistas, que armazenam dados com tipos complexos (gráficos e som, por exemplo) Banco de Dados // 36 Estrutura Geral do Sistema Usuários simples Programas de aplicação Código objeto dos programas de aplicação Programadores de aplicação Pré-compilador da linguagem de manipulação de dados Gerenciador de arquivos Chamadas de rotinas USUÁRIOS Gerenciador do Banco de Dados memória de disco Processador de consultas Arquivos de dados Usuários ocasionais Consultas Dicionário de dados Administrador do BD Esquema de Banco de Dados Compilador da linguagem de definição de dados Sistema gerenciador do banco de dados 6
Banco de Dados // 37 Exercícios cios 1. Quais são as principais diferenças entre um sistema de processamento de arquivos e um SGBD? 2. Foram listadas algumas vantagens mais importantes de um sistema de banco de dados. Há alguma desvantagem? 3. Explique a diferença entre a independência de dados física e lógica. 7