Gerenciadores de Banco de Dados - SGBD's
Conceito
Um SGBD é uma coleção de dados inter-relacionados mais um conjunto de programas para acessar e manipular esses dados.(SILBERSCHATZ,2006).
É um Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco de dados.
SGBD é um conjunto de programas responsáveis pelo gerenciamento do banco de dados.
Funções
Um SGBD auxilia no projeto, construção e povoamento de um Banco de Dados.
O SBBD deve garantir:
Métodos de acesso – possibilitam a criação e a manipulação de um Banco de Dados.
– DDL (Data Definition Language) especificação do esquema do BD (dados e seus tipos de dados, índices, ...).
– DML (Data Manipulation Language) manipulação de dados (I, A, E, C) .
– processamento eficaz de consultas considera relacionamentos, predicados de seleção, volume de dados, índices, ...
Integridade Semântica - garantia de dados sempre corretos com relação ao domínio de aplicação
Exemplos:
- estados válidos para os dados (I sexo; A salário);
-relacionamentos válidos entre os dados.
Segurança - evitar violação de consistência dos dados e garantir a segurança de acesso (usuários e aplicações).
Exemplos:
– segurança contra falhas (recovery).
Exemplos:
– Transação, conjunto de operações a serem realizadas no BD.
– Transação, sistema e meio de armazenamento.
Concorrência - evita conflitos de acesso simultâneo a dados por transações (scheduler).
– principais técnicas:
Independência – garante a transparência da organização dos dados.
– níveis de independência:
– transparência de organização (esquema) física dos dados.
Exemplos: organização dos arquivos, indexação, distribuição, agrupamento.
– transparência do esquema lógico do BD.
Exemplo: visões (vários esquemas externos).
Objetivo
Fornecer um ambiente que seja tanto conveniente como eficiente para recuperação e armazenamento de informações.
Gerência dos Dados
O SGBD precisa garantir a segurança apesar de falhas de sistema ou tentativas de acesso não autorizado.
Arquitetura
Ações
Um SBBD possibilita:
Importância
“Embora as interfaces de usuário ocultem os detalhes de acesso a um banco de dados, e a maioria das pessoas nem mesmo tenha consciência de estar lidando com um banco de dados, acessar banco de dados é uma parte essencial da vida de quase todo mundo hoje.” (SILBERSCHATZ,2006)
Regras de Codd
Em 1985, Edgard F. Codd estabeleceu Doze Regras para determinar o quanto um banco de dados é Relacional ou não.
1. Regra das informações em tabelas:
As informações a serem apresentadas no banco de dados devem ser apresentadas como relações (tabelas formadas por linhas e colunas) e o vínculo de dados entre as tabelas deve ser estabelecido por meio de valores de campos comuns.
Isso se aplica tanto aos dados quanto aos metadados (descrições dos objetos do banco de dados).
2. Regra de acesso garantido:
Para que o usuário possa acessar às informações contidas no banco de dados, o método de referência deve ser o nome da tabela, o valor da chave primária e o nome do campo.
A ordem de apresentação dos dados não tem importância no contexto.
3. Regra de tratamento sistemático de valores nulos:
Os valores nulos (diferente do zero, da string vazia, da string de caracteres em brancos e outros valores não nulos) existem para representar dados não existentes de forma sistemática e independente do tipo de dado.
4. Regra do catálogo relacional ativo:
Toda a estrutura do banco de dados (tabelas, campos, índices, etc.) deve estar disponível em tabelas (catálogo).
Essas tabelas são manipuladas pelo próprio sistema, quando o usuário efetua alterações na estrutura do banco de dados.
5. Regra da atualização de alto nível:
O usuário deve ter capacidade de manipular as informações do banco de dados em grupos de registros, ou seja, ser capaz de inserir, alterar e excluir vários registros ao mesmo tempo.
6. Regra da sublinguagem de dados abrangente:
Um sistema relacional pode suportar várias linguagens e formas de uso, porém deve possuir ao menos uma linguagem com sintaxe bem definida e expressa por cadeia de caracteres e com habilidade de apoiar a definição de dados, a definição de visões, a manipulação de dados, as restrições de integridade, a autorização e a fronteira de transações.
7. Regra da independência física:
Quando for necessária alguma modificação na forma como os dados são armazenados fisicamente, nenhuma alteração deve ser necessária nas aplicações que fazem uso do banco de dados.
Devem também permanecer inalterados os mecanismos de consulta e manipulação de dados utilizados pelos usuários finais.
8. Regra da independência lógica:
Qualquer alteração efetuada na estrutura do banco de dados, como inclusão e exclusão de campos de uma tabela ou alteração no relacionamento entre tabelas não deve afetar o aplicativo que o usa. O aplicativo deve manipular visões das tabelas. Visões são uma espécie de tabela virtual, que agrupam dados de uma ou mais tabelas físicas e apresentam ao usuário os dados.
9. Regra da atualização de visões:
Toda visão que for teoricamente atualizável será também atualizável pelo sistema.
10. Regra da independência de integridade:
As várias formas de integridade do banco de dados (integridade de entidade, referencial, restrição e obrigatoriedade de valores, etc.) precisam ser estabelecidas dentro do catálogo do sistema ou dicionário de dados, e ser totalmente independente da lógica dos aplicativos.
11. Regra da independência de distribuição:
Sistemas de banco de dados podem estar distribuídos em diversas plataformas, interligados em rede e podem inclusive estar fisicamente distantes entre si. Essa capacidade de distribuição não pode afetar a funcionalidade do sistema e dos aplicativos que fazem uso do banco de dados.
12. Regra não subversiva:
O sistema deve ser capaz de impedir que qualquer usuário ou programador de passar por cima de todos os mecanismos de segurança, regras de integridade do banco de dados e restrições, utilizando algum recurso ou linguagem de baixo nível que eventualmente possam ser oferecidas pelo próprio sistema.
Exemplos de SGBD