Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arquitetura dos Sistemas Gerenciadores de Banco de Dados Conceitos Básicos Banco de Dados Sistema Gerenciador de Banco de Dados (SGBD) Sistema de Banco de Dados (SBD) Banco de Dados versus Processamento de Arquivos Vantagens e Desvantagens do uso de um SGBD Papéis Humanos em um Sistema de Banco de Dados Esquemas e Instâncias Níveis de Abstração e Arquitetura em 3 Camadas Independência de Dados Linguagens de Banco de Dados Arquitetura Interna do Banco de Dados (Visão Reduzida) Arquitetura Interna do Banco de Dados (Visão Expandida) 1 Conceitos Básicos Bancos de dados tornaram-se essenciais em nosso dia a dia. São inúmeras as aplicações que utilizam sistemas de banco de dados: 1. Bancos financeiros: armazenam todas as transações bancárias; 2. Empresas aéreas: reservas de assentos em vôos, agendamentos de vôos; 3. Vendas: clientes, produtos, estoques, compras; 4. Revendedores online: registro de pedidos, recomendações personalizadas; 5. Industria: produção, estoque, pedidos, fornecedores; 6. Recursos humanos: registro de empregados, salários, dedução de taxas; 7. Universidades: registros de alunos, disciplinas, salas, notas; 8. Bibliotecas: registro de acervo, registro de usuário, registro de empréstimo. 1.1 Banco de Dados É uma coleção de dados inter-relacionados, representando informações sobre um domínio de interesse específico. Propriedades: 1. Representa aspectos do mundo real (chamado minimundo ou universo do discurso) e mudanças no minimundo devem ser refletidas no banco de dados; 2. É uma coleção lógica e coerente de dados com algum significado inerente; 3. É projetado, construído e populado por dados que atendem a um propósito específico e dirigido a um grupo de usuários. Um banco de dados pode ser gerado e mantido manualmente ou pode ser computadorizado. Exemplos: lista telefônica, controle do acervo de uma biblioteca, etc. 1.2 Sistema Gerenciador de Banco de Dados (SGBD) É um programa (software) com recursos específicos para facilitar a manipulação das informações dos bancos de dados e o desenvolvimento de programas aplicativos. Funções do componente de software 1. Acesso; 2. Controle de Concorrência; 3. Recuperação; 4. Armazenamento. Um SGBD permite aos usuários criarem e manipularem bancos de dados para propósitos gerais. Exemplos: Oracle, SQLServer, MySQL, Postgree. 1.3 Sistema de Banco de Dados (SBD) É uma coleção de dados inter-relacionados (BD) e um conjunto de programas (SGBD) que permitem aos usuários acessar e modificar esses dados. É um sistema de manutenção de registros por computador, envolvendo quatro componentes principais: DADOS, HARDWARE, SOFTWARE e USUÁRIOS. 1.4 Banco de Dados versus Processamento de Arquivos No processamento de arquivos, cada usuário define e implementa os arquivos necessários para uma aplicação específica, como parte da programação da aplicação. Mesmo que mais de uma aplicação necessite trabalhar com o mesmo conjunto de dados, cada aplicação mantém suas informações em arquivos separados. Isso implica em redundâncias indesejadas, tanto em termos de definição e armazenamento de dados quanto em esforço para manter os dados comuns atualizados. Utilizando um banco de dados, um único repositório de dados é construído e mantido para ser acessado por vários usuários. As principais características da abordagem utilizando-se banco de dados são: 1. Natureza autodescritiva do banco de dados; 2. Separação entre os programas e os dados; 3. Abstração dos dados; 4. Suporte para as múltiplas visões dos dados (subconjuntos); 5. Compartilhamento de dados e processamento de transações. 1.5 Vantagens e Desvantagens do uso de um SGBD Vantagens: 1. Controle de Redundância; 2. Compartilhamento de Dados; 3. Restrição a Acesso não Autorizado; 4. Representação de Relacionamentos Complexos entre Dados; 5. Tolerância a Falhas. Desvantagens: 1. Alto investimento inicial na compra de software e hardware adicionais; 2. Custo de pessoal relacionado às funções de DBA e AD; 3. Má administração do BD pode causar comprometimento da segurança e da integridade dos sistemas. 1.6 Papéis Humanos em um Sistema de Banco de Dados 1. Administrador de Banco de Dados (DBA) a. Definição da estrutura de armazenamento e estratégia de acesso; b. Concessão de autorização para acesso a dados; c. Definição de controles de integridade; d. Definição de estratégias para cópia de segurança e recuperação; e. Monitoramento do desempenho; f. Modificação da organização física. 2. Administrador de Dados (AD) a. Identificação dos dados que devem ser armazenados; b. Avaliar as necessidades de cada grupo de usuários; c. Definir as visões de dados necessárias para atender as necessidades dos usuários; d. Definir e atualizar o esquema do banco de dados. 1.6 Papéis Humanos em um Sistema de Banco de Dados 3. Usuários Finais a. Usuários ingênuos: utilizam partes pré-definidas do banco de dados, fazendo consultas preestabelecidas que já foram exaustivamente testadas; b. Usuários especializados: acessam o banco de dados casualmente, mas necessitam de diferentes tipos de informações. Utilizam linguagens de consulta para especificar suas necessidades; c. Usuários sofisticados: são usuários que estão familiarizados com o SGBD e realizam consultas complexas. 4. Analistas de Sistemas/Negócios e Programadores de Aplicações a. Os analistas determinam os requisitos dos usuários finais e desenvolvem especificações para transações que atendam estes requisitos; b. Programadores implementam estas especificações como programas, testando, depurando, documentando e dando manutenção no mesmo. 1.7 Esquemas e Instâncias Esquema O projeto geral do banco de dados é chamado de “esquema do banco de dados”. Os sistemas de banco de dados podem possuir vários esquemas, particionados de acordo com o nível de abstração. Quando a qualidade de um projeto é boa, poucas mudanças ocorrem no esquema do banco de dados. Instância Os dados armazenados em um banco de dados em um determinado instante do tempo formam um conjunto chamado “instância do banco de dados”. O SGBD é responsável por garantir que toda instância do banco de dados satisfaça ao esquema do banco de dados, respeitando sua estrutura e suas restrições. 1.8 Níveis de Abstração e Arquitetura em 3 Camadas A arquitetura em “três camadas” (também conhecida como arquitetura ANSI/SPARC) para sistemas de banco de dados foi proposta para auxiliar a realização e visualização de importantes características do uso de banco de dados: 1. Independência entre dados e programas; 2. Suporte a múltiplas visões de usuários; 3. Uso de catálogo (ou dicionário de dados) para armazenar a descrição do banco. Pode -se observar três níveis de abstração: 1. Nível Interno ou Físico; 2. Nível Conceitual ou Lógico; 3. Nível Externo ou de Visão. 1.8 Níveis de Abstração e Arquitetura em 3 Camadas Nível Interno: Descreve como os dados estão fisicamente armazenados. Ex: organização do arquivo, alocação em disco, tipo de registro. Nível Conceitual: Descreve todo o modelo conceitual dos dados que estão armazenados no BD com seus respectivos relacionamentos. Nível Externo: Descreve somente a parte do banco de dados que cada grupo de usuários tem interesse, ocultando o restante. Simplifica a visão do usuário (“ver” só o que é necessário) e estabelece regras de segurança (views). 1.8 Níveis de Abstração e Arquitetura em 3 Camadas 1.9 Independência de Dados É a capacidade de se alterar o esquema em um nível em umbanco de dados sem ter que alterar um nível superior. Existem dois tipos de independência de dados: independência de dados lógica: é a capacidade de alterar o esquema conceitual sem ter que alterar o esquema externo ou as aplicações do usuário; independência de dados física: é a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual, o esquema externo ou as aplicações do usuário. Alterações no esquema externo incluem: adicionar ou remover um item de dados e variar restrições que são impostas aos dados. Alterações em nível físico podem ser necessárias quando arquivos físicos precisam ser reorganizados para aperfeiçoar o desempenho do banco em ler e atualizar dados. O catálogo ou dicionário de dados inclui informações de como mapear os dados entre níveis. 1.10 Linguagens de Banco de Dados O SQL (Structured Query Language) é a linguagem de consulta mais usada em SGBDs relacionais. Ela se divide em três tipos de instruções: 1. Data Definition Language (DDL): Criação de tabelas, restrições de integridade, etc; 2. Data Manipulation Language (DML): Consulta, inclusão, exclusão e alteração de dados. 3. Data Control Language (DCL): Autorização de acesso para ver e manipular objetos (GRANT e REVOKE). A DDL e DCL são usadas pelo DBA e pelos projetistas do banco de dados para definir ambos os esquemas conceitual e interno. O SGBD terá um compilador DDL/DCL cuja função é processar estes comandos e armazenar a descrição do esquema no catálogo do SGBD (metadados). Quando os esquemas do banco de dados estiverem compilados e o banco populado com os dados, os usuários devem possuir algum meio para manipular esses dados. As manipulações típicas são a recuperação, inserção, remoção e modificação dos dados. A linguagem de manipulação de dados (DML) é fornecida pelo SGBD para essa finalidade. 1.11 Arquitetura Interna do Banco de Dados (Visão Reduzida) Inicialmente o SBD pode ser dividido em módulos com responsabilidades definidas: 1. Processador de Consulta; 2. Gerenciador de Armazenamento. 1.11 Arquitetura Interna do Banco de Dados (Visão Reduzida) Processador de Consulta: 1. Maneiras alternativas de avaliar uma consulta submetida: a) Expressões equivalentes; b) Diferentes algoritmos para cada operação. 2. A diferença de custo entre um bom e um mau método de avaliar uma consulta pode ser enorme. 3. Necessidade de estimar o custo das operações: a) Depende das informações sobre as relações que o banco de dados precisa manter; b) Necessidade de estimar estatísticas para calcular custo de expressões complexas. 1.11 Arquitetura Interna do Banco de Dados (Visão Reduzida) Gerenciador de armazenamento: 1. Módulo que fornece a interface entre os dados de baixo nível armazenados no banco de dados e os programas de aplicação e consultas submetidas ao sistema; 2. O gerenciador de armazenamento é responsável pelas seguintes tarefas: a) Interagir com o gerenciador de arquivos; b) Armazenar, recuperar e atualizar dados eficientemente; 3. Problemas: a) Acesso ao armazenamento; b) Organização de arquivos; c) Indexação e hashing. 1.12 Arquitetura Interna do Banco de Dados (Visão Expandida) 1.12 Arquitetura Interna do Banco de Dados (Visão Expandida) Processador de Consultas 1. Compilador DML: a) Analisa sintaticamente e semanticamente comandos DML expressos em uma linguagem de consulta (ex. SQL); b) Traduz estes comandos para uma das formas de representação interna de consultas (álgebra relacional). 2. Pré-compilador DML: a) Extrai os comandos DML dos programas escritos em uma linguagem de programação hospedeira. 3. Interpretador DDL: a) Interpreta comandos de definição de esquema e os armazena no catálogo; b) Altera a descrição do banco de dados (esquema); c) O catálogo (metadados) inclui informações como nomes e tamanhos dos arquivos, nomes e tipos de itens de dados, informações de mapeamento entre os esquemas e restrições, etc. 4. Mecanismo de Consultas: a) Responsável pela otimização e geração dos planos de execução de consultas. 1.12 Arquitetura Interna do Banco de Dados (Visão Expandida) Sistema de Armazenamento 1. Gerenciador de Transação: a) Controle de concorrência; b) Recuperação do banco de dados após falhas. 2. Gerenciador de Buffer: a) Responsável por recuperar objetos em discos e carregá-los na memória principal em forma de páginas de dados. O SGBD possui uma área de buffer na memória principal; b) Realiza o mapeamento entre disco e memória; c) Definição da política de alocação de buffer (ex.: MRU, LRU, FIFO, etc). 3. Gerenciador de Arquivo (Filesystem): a) Responsável pelo armazenamento físico em disco; b) Gerencia a alocação de espaço em disco. 1.12 Arquitetura Interna do Banco de Dados (Visão Expandida) Banco de Dados 1. Arquivo de Dados: Armazena os dados do banco. 2. Índices: Estruturas de índices para os arquivos de dados. 3. Catálogo: a) Armazena esquema do banco de dados (metadados): - Nomes de tabelas; - Atributos de cada tabela; - Definição dos índices para uma tabela; - Stored Procedures, Triggers, etc. b) Armazena informações estatísticas utilizadas na otimização de consultas: - Cardinalidade da tabela; - Tipos de índices; - Número de página de dados, etc.
Compartilhar