Buscar

Arquitetura dos Sistemas Gerenciadores de Banco de Dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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.

Outros materiais