Sistema de Gerenciamento de Banco de Dados

Propaganda
Sistema de Gerenciamento de Banco de Dados
1. Introdução
Definição de uma base de dados:
a) Em essência uma base de dados nada mais é que uma coleção de informações que
persiste por longos períodos (Jeffrey Ullman )
b) conjunto de dados que contém informações de uma empresa em particular (Abraham
Silberschatz)
c) é uma coleção de dados que descreve as atividades de uma ou mais organizações
(setores) relacionadas entre si (Raghu Ramakrishnan)
d) conjunto de dados devidamente relacionados, tendo sido projetado, construído para
manipular dados com propósito específico.
Um Sistema de Gerenciamento de Banco de Dados (SGBD) pode ser definido como um
software projetado para auxiliar a criar, manter e atualizar os dados do banco de dados
(Raghu Ramakrishnan);
Um sistema de banco de dados deve:
a) permitir que o usuário crie novas bases de dados e especifique seu esquema ( estrutura
lógica dos dados), usando uma linguagem especializada chamada data definition
language - DDL.
b) oferecer ao usuário a capacidade de consultar (query) os dados de uma base de dados e
modificá-los, usando uma linguagem apropriada frequentemente chamada de query
language ou data manipulation language.
c) suportar o armazenamento de grande quantidade de dados por longos períodos de
tempo, mantendo os dados seguros de acidentes e acesso não autorizado e garantindo
acesso eficiente aos dados através de consultas e modificações à base de dados.
d) Controlar os acessos simultâneos aos dados de tal forma a evitar que ações de um
usuário afete outros e que haja corrupção acidental dos dados.
1.2
Arquitetura de um SGBD
modificação dos consultas
esquemas
modificações dos dados
processador de
consultas
gerenciador de
transações
gerenciador de
armazenamento
Dados e
Metadados
1.2.1 Processador de consultas
É responsável por transformar uma consulta ou modificação solicitados pelo usuário em
uma sequência de operações a serem executadas sobre os dados de uma base de dados. O
processador de consultas é responsável por:
a) executar consultas
b) modificar os dados da base de dados (inserir, remover, modificar) ou metadados (num
SGBD relacional inclui nome das relações, nomes dos atributos, tipos de atributos)
c) fazer um planejamento (query plan) para obter a melhor maneira de executar uma
consulta (ex: usar índice, reordenar as operações, etc)
1.2.2 Gerenciador de Transações
Consultas e outras ações são agrupadas em transações, que são unidades que devem ser
executadas atomicamente e de forma isolada. A execução de uma transação deve ser
durável, ou seja o efeito de uma transação que foi completada deve ser preservada mesmo
após uma falha do sistema.
uma transação é uma coleção de operações que desempenha uma função
lógica única dentro de uma aplicação do sistema de banco de dados
requisitos fundamentais para a execução de uma transação:
a) atomicidade: toda a transação é executada ou nada é feito;
b) consistência: após uma transação ter sido completada a base de dados
satisfaz as condições de consistencias previamente assumidas;
c) isolamento: se duas transações estão sendo executadas
simultâneamente seus efeitos devem ser isolados uma da outra;(locking
– controle de concorrência)
d) durabilidade: uma vez que o sistema tenha informado que uma
transação ocorreu com sucesso, seu efeito não deve ser perdido em
caso de falha;(logging – recuperação de falhas)
e) consiteência – uma transação, uma vez executada, deve garantir a
consistência do banco de dados ( ex: atributo a tem valor sempre menor
que atributo B).
1.2.3 Gerenciador de Armazenamento
Tem como função:
(i)
gerenciar os acessos feitos à base de dados de acordo com as solicitações feitas
pelos níveis mais altos do SGBD;
(ii)
gerenciar os recursos de disco e de memória.
Estas funções poderiam ser executadas pelos sistemas operacionais convencionais. No
entanto, seria muito difícil garantir os requisitos fundamentais de uma transação além da
manutenção de redundância dos dados.
1.3 Arquitetura de um sistema de armazenamento
motor de
execução
(execution engine)
memória
gerenciador de
buffer pool
gerenciador
de espaço
em disco
disco
1.3.1 Gerenciador de espaço em disco
O gerenciador de espaço em disco tem como função:
- gerenciar os espaços livres e ocupados na área reservada para a base de dados;
- suportar o conceito de páginas como unidade de dados;
- transferir páginas da (para) a memória.
1.3.2 Gerenciador de Buffer Pool
O gerenciador de buffer pool tem como função:
-
gerenciar a memória principal alocada para o SGBD;
alocar e desalocar área de memória para suportar os dados as serem processados.
1.3.3 Motor de Execução ( Execution Engine)
O Motor de execução tem como função executar cada uma das etapas.do plano de consulta
definido pelo processador de consultas. Interage com a maioria dos componentes do SGBD,
seja diretamente ou através dos buffers. Suas funções incluem:
-
liberar e requisitar espaço livre em disco ;
-
manter informações sobre as páginas alocadas para cada tabela;
organizar os registros dentro de uma página;
ser capaz de identificar a página no disco que contém o registro sendo solicitado;
suportar estruturas de dados auxiliares para garantir acesso mais rápido à página que
contém a informação solicitada;
gerenciar o catálogo do sistema, que são estruturas de dados que mantêm informações
sobre todas as relações, índices e visões de uma base de dados.
Download