Transcript Capitulo01
Sistema de Banco de Dados, 5/E © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Capítulo 1: Introdução • • • • • • • • • • • • Finalidade dos sistemas de banco de dados Visão dos dados Linguagens de banco de dados Bancos de dados relacionais Projeto de banco de dados Bancos de dados semiestruturados e baseados em objeto Armazenamento e consulta de dados Gerenciamento de transação Arquitetura do banco de dados Usuários e administradores de banco de dados Estrutura geral História dos sistemas de banco de dados © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Sistema de gerenciamento de banco de dados (DBMS) • Um DBMS contém informações sobre uma determinada empresa. Coleção de dados inter-relacionados Conjunto dos programas para acessar os dados Um ambiente que é conveniente e eficiente de usar • Aplicações de banco de dados: Banco: todas as transações Linhas aéreas: reservas, horários Universidades: matrículas, registros, notas Vendas: clientes, produtos, compras Revendedores on-line: acompanhamento de pedidos, recomendações personalizadas Indústria: produção, estoque, pedidos, cadeia de suprimento Recursos humanos: registros de empregados, salários, deduções de impostos • Os bancos de dados tocam todos os aspectos das nossas vidas © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Finalidade dos sistemas de banco de dados Antigamente, as aplicações de banco de dados eram construídas diretamente sobre os sistemas de arquivo. Desvantagens de usar sistemas de arquivo para armazenar dados: Redundância e inconsistência de dados Múltiplos formatos de arquivo, duplicação de informações em diferentes arquivos Dificuldade de acessar os dados Necessidade de escrever um novo programa para realizar cada nova tarefa Isolamento dos dados — vários arquivos e formatos Problemas de integridade Restrições de integridade (por exemplo, saldo de conta > 0) se tornam “enterrados” no código do programa em vez de serem declarados explicitamente • Difícil de acrescentar novas restrições ou modificar as existentes © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Finalidade dos sistemas de banco de dados (cont.) Desvantagens de usar sistemas de arquivo (cont.) Atomicidade das atualizações Falhas podem deixar o banco de dados em um estado inconsistente com atualizações parciais realizadas Exemplo: A transferência de fundos de uma conta para outra deve ser completa ou não deve ocorrer Acesso concorrente por vários usuários Acesso concorrente necessário para o desempenho Acessos concorrentes não controlados podem levar a inconsistências – Exemplo: Duas pessoas lendo um saldo e atualizando-o ao mesmo tempo Problemas de segurança Difícil de fornecer ao usuário o acesso a alguns, mas nem todos, os dados • Os sistemas de banco de dados oferecem soluções para todos os problemas acima © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Níveis de abstração Nível físico: descreve como um registro (por exemplo, cliente) é armazenado. Nível lógico: descreve os dados armazenados no banco de dados e as relações entre eles. • type cliente = registro id_cliente : string; nome_cliente : string; rua_cliente : string; cidade_cliente : string; end; • Nível de view: os programas de aplicação ocultam detalhes dos tipos de dados. As views também podem ocultar informações (como o salário de um funcionário) por motivos de segurança. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Visão dos dados © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Instâncias e esquemas Semelhantes aos tipos e variáveis nas linguagens de programação Esquema – a estrutura lógica do banco de dados Exemplo: O banco de dados consiste nas informações sobre um conjunto de clientes e contas e na relação entre eles Análogo às informações de tipo de uma variável em um programa Esquema físico: projeto de banco de dados no nível físico Esquema lógico: projeto de banco de dados no nível lógico Instância – o conteúdo real do banco de dados em um determinado ponto no tempo Análogo ao valor de uma variável Independência de dados física – a capacidade de modificar o esquema físico sem mudar o esquema lógico Aplicações dependem do esquema lógico Em geral, as interfaces entre os vários níveis e componentes devem ser bem- definidas de modo que as mudanças em algumas partes não influenciem seriamente outras. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Modelos de dados Uma coleção de ferramentas conceituais para descrever Dados Relacionamentos de dados Semântica de dados Restrições de dados Modelo relacional Modelo de relação de entidade (principalmente para projeto de banco de dados) Modelo de dados baseado em objeto (orientado a objeto e relacional de objeto) Modelo de dados semiestruturado (XML) Outros modelos mais antigos: Modelo de rede Modelo hierárquico © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Linguagens de manipulação de dados (DML) Linguagem para acessar e manipular os dados organizados pelo modelo de dados apropriado A DML também é conhecida como linguagem de consulta Duas classes de linguagem Procedurais – usuário especifica que dados são necessários e como obter esses dados Declarativas (não procedurais) – usuário especifica que dados são necessários sem especificar como obter esses dados SQL é a linguagem de consulta mais utilizada © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Linguagem de definição de dados (DDL) Notação de especificação para definir o esquema de banco de dados • Exemplo: • create table conta ( número_conta saldo char(10), integer) O compilador DDL gera um conjunto de tabelas armazenado em um dicionário de dados O dicionário de dados contém metadados (ou seja, dados sobre os dados) Esquema de banco de dados Linguagem de armazenamento e definição de dados Especifica a estrutura de armazenamento e os métodos de acesso usados Restrições de integridade Registros de domínio Integridade referencial (restrição de referências na SQL) Afirmações Autorização © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Modelo relacional Exemplo de dados tabulares no modelo relacional Atributos © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Exemplo de banco de dados relacional © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Exemplo de banco de dados relacional (Cont.) © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E SQL SQL: linguagem não procedural amplamente usada Exemplo: encontre o nome do cliente com id_cliente 192-83-7465 select cliente.nome_cliente from cliente where cliente.id_cliente = ‘192-83-7465’ Exemplo: encontre os saldos de todas as contas pertencentes ao cliente com id_cliente 192-83-7465 select conta.saldo from depositante, conta where depositante.id_cliente = ‘192-83-7465’ and depositante.número_conta = conta.número_conta Os programas de aplicação geralmente acessam banco de dados através de Extensões de linguagem para permitir SQL embutida Interface de programa de aplicação (por exemplo, ODBC/JDBC), que permite que consultas SQL sejam enviadas a um banco de dados. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Projeto de banco de dados O processo de projetar a estrutura geral do banco de dados. Projeto lógico – Decidir sobre o esquema de banco de dados. O projeto de banco de dados exige encontrar uma “boa” coleção de esquemas de relação. Decisão empresarial – Que atributos devemos registrar no banco de dados? Decisão de ciência da computação – Que esquemas de relação devemos ter e como os atributos devem ser distribuídos entre os vários esquemas de relação? Projeto físico – Decidir sobre o layout físico do banco de dados. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E O modelo entidade-relacionamento Modela uma empresa como uma coleção de entidades e relacionamentos Entidade: uma “coisa” ou “objeto” na empresa que é distinguível dos outros objetos Descrito por um conjunto de atributos Relacionamento: uma associação entre várias entidades Representado graficamente por um diagrama entidade-relacionamento: © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Modelos de dados relacionais de objeto Estendem o modelo de dados relacional incluindo orientação a objeto e construções para lidar com tipos de dados inseridos. Permitem que atributos de tuplas tenham tipos complexos, incluindo valores não atômicos como relações aninhadas. Preservam as fundações relacionais, em especial o acesso declarativo aos dados, enquanto estendem a capacidade de modelagem. Fornecem compatibilidade com linguagens relacionais posteriores existentes. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E XML: Extensible Markup Language Definida pelo WWW Consortium (W3C) Originalmente criada como uma linguagem de marcação de documento, não como uma linguagem de banco de dados A capacidade de especificar novas tags e criar estruturas de tag aninhadas tornaram a XML uma excelente maneira de trocar dados, não apenas documentos. A XML se tornou a base para todos os formatos de intercâmbio de dados da nova geração. Uma ampla variedade de ferramentas está disponível para análise, navegação e consulta de dados/documentos XML. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Gerenciamento de armazenamento Gerenciador de armazenamento é um módulo de programa que fornece a interface entre os dados de baixo nível armazenados no banco de dados e os programas de aplicação e consultas submetidos ao sistema. O gerenciador de armazenamento é responsável pelas seguintes tarefas: Interagir com o gerenciador de arquivos Armazenar, recuperar e atualizar dados eficientemente. Problemas: Acesso ao armazenamento Organização de arquivos Indexação e hashing © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Processamento de consulta 1. Análise e tradução 2. Otimização 3. Avaliação © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Processamento de consulta (cont.) Maneiras alternativas de avaliar uma consulta dada Expressões equivalentes Diferentes algoritmos para cada operação A diferença de custo entre um bom e um mau método de avaliar uma consulta pode ser enorme Necessidade de estimar o custo das operações Depende profundamente das informações sobre relações que o banco de dados precisa manter Necessidade de estimar estatísticas para resultados intermediários para calcular custo de expressões complexas © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Gerenciamento de transação Uma transação é um conjunto de operações que realiza uma única função lógica em uma aplicação de banco de dados. O componente de gerenciamento de transação garante que o banco de dados permanece em um estado consistente (correto) apesar de falhas do sistema (por exemplo, interrupções de energia e falhas do sistema operacional) e falhas de transação. O gerenciador de controle de concorrência controla a interação entre as transações concorrentes para assegurar a consistência do banco de dados. © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Arquitetura do banco de dados A arquitetura de um sistema de banco de dados é bastante influenciada pelo sistema de computador subjacente em que o sistema de banco de dados é executado: Centralizado Cliente-servidor Paralelo (multiprocessador) Distribuído © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Usuários de banco de dados Os usuários são diferenciados pela forma como esperam interagir com o Sistema Programadores de aplicação – interagem com o sistema através de chamadas de DML Usuários avançados — interagem com o sistema formulando suas requisições em uma linguagem de consulta de banco de dados Usuários especializados — interagem com o sistema escrevendo aplicações de banco de dados especializadas que não se encaixam na estrutura de processamento de dados tradicional Usuários leigos — interagem com o sistema chamando um dos programas de aplicação previamente escritos Exemplos, pessoas acessando bancos de dados através da Web, caixas bancários, equipe de contabilidade © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Administrador de banco de dados Coordena todas as atividades do sistema de banco de dados; o administrador de banco de dados tem um bom conhecimento dos recursos e necessidades de informação da empresa. As responsabilidades do administrador de banco de dados incluem: Definição de esquema Estrutura de armazenamento e definição de método de acesso Modificação de esquema e de organização física Concessão de autorização para acesso ao banco de dados Especificar restrições de integridade Agir como ligação com os usuários Monitorar o desempenho e responder a mudanças em requisições © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Estrutura geral do sistema © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E História dos sistemas de banco de dados Década de 1950 e início da década de 1960: Processamento de dados usando fitas magnéticas para armazenamento Fitas fornecem apenas acesso seqüencial Cartões perfurados para entrada Final da década de 1960 e década de 1970: Discos rígidos permitem acesso direto aos dados Modelos de dados de rede e hierárquico em largo uso Ted Codd define o modelo de dados relacional Ganharia o ACM Turing Award por este trabalho IBM Research inicia o protótipo do System UC Berkeley inicia o protótipo do Ingres Processamento de transação de alto desempenho (para a época) © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E História (cont.) Década de 1980: Protótipos relacionais de pesquisa evoluem para sistemas comerciais SQL se torna o padrão do setor Sistemas de banco de dados paralelos e distribuídos Sistemas de banco de dados orientados a objeto Década de 1990: Grandes aplicações de suporte a decisão e exploração de dados Grandes data warehouses de vários terabytes Surgimento do comércio Web Década de 2000: Padrões XML e XQuery Administração de banco de dados automatizada © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Final do Capítulo 1 © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Figura 1.4 © Korth • Silberschatz • Sundarshan Sistema de Banco de Dados, 5/E Figura 1.7 © Korth • Silberschatz • Sundarshan