Banco Banco de de Dados Dados // 11 Banco Banco de de Dados Dados // 22 Conceitos Bá Básicos Engenharia da Computaç Computação UNIVASF BANCO DE DADOS Aula 1 Introduç Introdução a Banco de Dados Campo – representaç representação informatizada de um dado real / menor unidade de informaç informação com valor significativo para o usuá usuário Dado – conteú conteúdo do campo Registro – conjunto de campos Arquivo – conjunto de registros Banco de Dados – armazenamento fí físico dos arquivos Sistema Gerenciador de Banco de Dados (SGBD) – software responsá responsável pelo armazenamento e recuperaç recuperação dos dados do BD. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 33 Banco Banco de de Dados Dados // 44 Breve Histó Histórico Probl Problemas dos Sistemas de Arquivos Tradicionais Computadores com capacidade de armazenamento surgimento de Sistemas Operacionais mais completos Redundância Inconsistência Dificuldade no acesso a dados Isolamento dos dados Múltiplos usuá usuários Seguranç Segurança Integridade Atomicidade SO contendo sistemas de arquivos armazenamento e recuperaç recuperação de informaç informações mais otimizados. Necessidade de maior eficiência (tempo e espaç espaço) SGBD Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 55 Banco Banco de de Dados Dados // 66 Probl Problemas dos Sistemas de Arquivos Tradicionais Probl Problemas dos Sistemas de Arquivos Tradicionais 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. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Dificuldade no acesso aos dados – Necessidade de construir programas para obter qualquer informação solicitada. Exemplo Uma empresa precisa dos nomes de todos os clientes que fazem aniversá aniversário no mês de fevereiro, mas esta solicitaç solicitação não foi prevista no projeto do sistema existe somente uma aplicaç aplicação para gerar a relaç 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á necessário. Ambas alternativas são insatisfató insatisfatórias. ...Mais tarde a empresa precisa saber os clientes que têm saldo negativo. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 1 Banco Banco de de Dados Dados // 77 Banco Banco de de Dados Dados // 88 Probl Problemas dos Sistemas de Arquivos Tradicionais Probl Problemas dos Sistemas de Arquivos Tradicionais 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. Múltiplos usuá usuários – Atualizações concorrentes podem resultar em inconsistências. Exemplo Conta corrente com saldo = R$500,00 Dois clientes debitam da conta A simultaneamente ($50 e $100, respectivamente) Na execuç 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á será $450 ou $400, ao invé invés do valor correto de $350. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 99 Banco Banco de de Dados Dados // 10 10 Probl Problemas dos Sistemas de Arquivos Tradicionais Probl Problemas dos Sistemas de Arquivos Tradicionais Seguranç Segurança – Definir autorizações de acesso a diferentes usuários. Atomicidade – Algumas operações devem ser feitas de forma única, atômica, a fim de assegurar a integridade e consistência dos dados. 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. 10. Os programadores determinam o cumprimento desta restriç restrição atravé através da adiç adição de có código apropriado aos vá vários Exemplo programas aplicativos. • Entretanto, quando aparecem novas restriç restrições, é difí difícil alterar todos os programas para incrementá incrementá-las. O problema é ampliado quando as restriç restrições atingem diversos itens de dados em diferentes arquivos. ♦ um programa para transferir R$50,00 da conta A para uma conta B. Se ocorrer falha no sistema durante sua execuç execução, é possí possível que os 50 reais sejam debitados da conta A sem Exemplo 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é débito e cré crédito ocorram, ou nenhum deles seja efetuado. Isto é, a transferência de fundos deve ser uma operaç operação atômica – deve ocorrer por completo, ou não ocorrer. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 11 11 Banco Banco de de Dados Dados // 12 12 Regras para que um sistema de manipulaç manipulação de dados seja um SGBD Caracterí Características de um SGBD AutoAuto-contenç contenção – conter dados, suas descriç descrições, relacionamentos e formas de acesso. Independência dos Dados – aplicaç aplicações imunes a mudanç mudanças na estrutura de armazenamento e à estraté estratégia de acesso a dados. Abstraç Abstração dos Dados – usuá usuário não precisa saber detalhes sobre armazenamento real. Visões – formas diferentes de ver os dados de acordo com necessidade dos usuá usuários. Transaç Transações – gerenciar integridade sem precisar de aplicativos. Controle automá automático de acesso – vários usuá usuários, travamento eficiente. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Controle de Redundâncias – informaç informações armazenadas em um único lugar. Compartilhamento dos Dados – garantir concorrência ao acesso dos dados, sem erro. Controle de Acesso – seleç seleção de permissões por usuá usuário. Interfaceamento – facilidade para recuperaç recuperação de informaç informação. Esquematizaç Esquematização – mecanismos que possibilitem a compreensão do relacionamento entre as tabelas e sua manutenç manutenção. Controle de Integridade – aplicaç aplicações e acessos não podem comprometer integridade dos dados. Backups – facilidade para recuperar falhas de hardware e software. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 2 Banco Banco de de Dados Dados // 13 13 Banco Banco de de Dados Dados // 14 14 Abstraç Abstração de Dados Abstraç Abstração de Dados SGBD: estruturas complexas para a representaç representação dos dados no banco de dados. Complexidade precisa ser escondida dos usuá usuários. Níveis de abstraç abstração: grande vantagem dos SGBD Visão 1 Visão 2 ... Visão N Nível Conceitual – 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. Nível Fí Físico Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 15 15 Banco Banco de de Dados Dados // 16 16 Abstraç Abstração de Dados Abstraç Abstração de Dados Analogia com o conceito de tipos de dados em linguagens de programaç programação Além de cliente, BD pode ter diversos tipos de registro, como: Type cliente = record cliente-nome: string; cliente-CPF: string; Exemplo cliente-endereco: string; cliente-cidade: string end; Este có código define um novo registro chamado cliente com quatro campos. Cada campo tem um nome e um tipo a ele associado. • 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. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 17 17 Banco Banco de de Dados Dados // 18 18 Instâncias e Esquemas Instâncias e Esquemas instância conjunto de informaç informações contidas em determinado BD em um dado momento. esquema projeto geral do BD mudados com pouca freqü freqüência. Sistemas de BD possuem diversos esquemas, referentes aos níveis de abstraç abstraçã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í físico, um esquema ló lógico e vá vários subesquemas. subesquemas. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Analogia: definiç definição do registro cliente na declaraç declaração de seu tipo, não definimos qualquer variá variável. Definiç Definição de variá variável: var clientenovo: clientenovo: cliente; 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. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 3 Banco Banco de de Dados Dados // 19 19 Banco Banco de de Dados Dados // 20 20 Independência de Dados Modelos de Dados capacidade de modificar a definiç definição dos esquemas em determinado ní nível, sem afetar o esquema do ní nível superior Coleç Coleção de ferramentas conceituais para descriç descrição dos dados, dados, relacionamento entre os dados, semântica e restriç restrições dos dados. Independência de dados fí física: 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ó lógica: gica: modifica o esquema lógico sem que, com isso, qualquer programa aplicativo precise ser reescrito (sempre que uma estrutura ló lógica do BD é alterada) mais díficil de ser atingida. Três grupos: Modelos lógicos baseados em objetos Modelos lógicos baseados em registros Modelos de dados físicos Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 21 21 Banco Banco de de Dados Dados // 22 22 Modelos Ló Lógicos Baseados em Objetos Exemplo: Modelo EntidadeEntidadeRelacionamento Usados na descriç descrição dos dados nos ní níveis Visão Visão ... conceitual e visão. 1 2 Visão N rua Exemplos: Ní vel Conceitual nome número cidade Modelo Entidade-Relacionamento saldo Modelo Orientado a Objeto Modelo Semântico de Dados cliente conta cliente Ní vel Físico conta Modelo Funcional de Dados Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 23 23 Banco Banco de de Dados Dados // 24 24 Modelos Ló Lógicos Baseados em Registros Modelo Relacional També Também usados na descriç descrição dos dados nos ní níveis conceitual e visão. Dados e relacionamentos representados por uma coleç coleção de tabelas. Usados para especificar a estrutura ló lógica do BD. Tabelas com uma quantidade de colunas (atributos)e nomes únicos. BD estruturado atravé através de registros de formato fixo de todos os tipos Cada registro define nú número fixo de campos (atributos), e cada campo possui tamanho fixo (simplifica a implementaç implementação do BD no ní nível fí físico) modelo relacional modelo de rede modelo hierárquico Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Exemplo Nome Endereço Cidade Luís Marília Número Conta 900 Heitor Av. Antonio, 865 Bauru 556 Heitor Av. Antonio, 865 Bauru 647 Rua X, 123 Joana Rua da Curva, 89 São Paulo 801 Joana Rua da Curva, 89 São Paulo 647 Número Conta 900 Saldo 556 458,98 647 561,89 801 654,12 678,00 Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 4 Banco Banco de de Dados Dados // 25 25 Banco Banco de de Dados Dados // 26 26 Modelo de Rede Modelo Hierá Hierárquico Dados representados por coleç coleções de registros. Relacionamentos representados por ligaç ligações (ponteiros). Registros organizados como coleç coleções arbitrá arbitrárias de grafos. Dados representados por coleç coleções de registros. Relacionamentos representados por ligaç ligações. Registros organizados como coleç coleções arbitrá arbitrárias de árvores. Exemplo Exemplo Luís Rua X, 123 Marília Heitor Av. Antonio, 865 Adamantina Joana Rua da Curva, 89 São Paulo 900 6 7 8 ,0 0 556 4 5 8 ,9 8 647 5 6 1 ,8 9 801 6 5 4 ,1 2 Luís Rua X, 123 Marília Heitor 900 6 7 8 ,0 0 556 4 5 8 ,9 8 Joana Av. Antonio, 865 647 647 Rua da Curva, 89 5 6 1 ,8 9 801 Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 27 27 Banco Banco de de Dados Dados // 28 28 Diferenç Diferenças entre os modelos Linguagem de Definiç Definição de Dados (DDL) relaciona os registros por valores pró próprios a eles. conseqü conseqüência possibilidade do desenvolvimento de fundamentos matemá matemáticos para sua definiç definição e manipulaç manipulação. 6 5 4 ,1 2 5 6 1 ,8 9 Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques modelo relacional não usa ponteiros e links São Paulo Adamantina datadata-definition language (DDL) Especificaç Especificação do esquema de dados resultado da compilaç compilação de instruç instruções DDL conjunto de tabelas que constituem o dicioná dicionário de dados ou diretó ó rio de dados diret dicioná dicionário de dados: dados: arquivo de metadados (dados a respeito de dados) no SGBD o diretó diretório é consultado antes que o dado real seja modificado Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 29 29 Banco Banco de de Dados Dados // 30 30 Linguagem de Definiç Definição de Dados (DDL) Linguagem de Manipulaç Manipulação de Dados (DML) datadata-manipulation language (DML) Exemplos manipulaç manipulação de dados: create table alter table drop table create view, view, drop view 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ç interação humana com o sistema. DML viabiliza o acesso (manipulaç (manipulação) dos dados organizados por um modelo de dados apropriado. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 5 Banco Banco de de Dados Dados // 31 31 Banco Banco de de Dados Dados // 32 32 Linguagem de Manipulaç Manipulação de Dados (DML) Gerenciador do Banco de Dados (SGBD) Dois tipos bá básicos: – 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 BD grandes quantidades de espaç espaço de armazenamento Dados transportados entre discos e memó memória principal, conforme a necessidade Sistema de BD deve minimizar necessidade de movimentaç movimentação Performance (tempo de resposta) depende da eficiência das estruturas de dados usadas e das operaç operações entre elas. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 33 33 Banco Banco de de Dados Dados // 34 34 Gerenciador do Banco de Dados Administrador do Banco de Dados (DBA) controle centralizado dos dados e dos programas que acessam os dados Responsá Responsável administrador de dados Funç Funções: 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 • • • • • 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 Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Banco Banco de de Dados Dados // 35 35 Banco Banco de de Dados Dados // 36 36 Usuá Usuários do Banco de Dados Estrutura Geral do Sistema Programadores de aplicaç aplicações interagem com o sistema atravé através de chamadas DML, envolvidas por programas escritos na linguagem hospedeira (por exemplo, Pascal, C, Delphi). Delphi). USUÁRIOS Usuários simples Programadores de aplicação Usuários ocasionais Administrador do BD Programas de aplicação Chamadas de rotinas Consultas Esquema de Banco de Dados Usuá Usuários ocasionais sofisticados, que interagem sem escrever programas. Formulam suas solicitaç solicitações ao BD atravé através de linguagens de consultas. Usuá Usuários simples interagem com o sistema atravé através de programas de aplicaç aplicação. Usuá Usuários especializados escrevem aplicaç aplicações especializadas de BD que não podem ser classificadas como aplicaç aplicações tradicionais em processamento de dados esquemas CAD, bases de conhecimento, sistemas especialistas, que armazenam dados com tipos complexos (grá (gráficos e som, por exemplo) Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques Pré-compilador da linguagem de manipulação de dados Código objeto dos programas de aplicação Processador de consultas Gerenciador do Banco de Dados Compilador da linguagem de definição de dados Sistema gerenciador do banco de dados Gerenciador de arquivos memória de disco Arquivos de dados Dicionário de dados Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 6 Banco Banco de de Dados Dados // 37 37 Exercí Exercí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. Prof. ª FFátima átima Nunes Prof Prof.Edmundo Edmundo Spoto Spoto ee Profª Profª Nunes Marques Marques 7