Banco de Dados - Abordagem Relacional
O modelo relacional tornou-se disponível na década de 70. Desde então este modelo tem sido implementado em um grande número de SGBDs comerciais e livres, como: DB2,Informix(IBM), Oracle, SQL Server, PostgreSQL, entre outros.
Segundo Codd(1985b) um SGBD pode ser considerado minimamente relacional se satisfaz as seguintes condições:
- Estrutura: Ao usuário são apresentadas apenas tabelas e nada mais do que tabelas.
- Manipulação: Suporta operações de restrição, projeção e junção natural, sem necessidade e definição de caminhos físicos de acesso para estas operações.
A partir da definição de Codd, Date(2004) sugere uma classificação para SGBDs relacionais:
- Tabular: Suporta a estrutura tabular, mas não os operadores relacionais;
- Minimamente relacional: Suporta a estrutura tabular e os operadores de restrição, projeção e junção(apenas estes);
- Relacional: Suporta a estrutura tabular e todos os operadores da álgebra relacional;
- Completamente relacional: Suporta todos os aspectos do modelo relacional(estrutura tabular e domínios, todos os operadores da álgebra relacional e a integridade de entidades e referencial).
Segundo um artigo posterior de Codd(1985a) um SGBD completamente relacional(fully relational) se gerencia o banco de dados utilizando apenas e só as possibilidades oferecidas pelo modelo relacional. Assim sendo, o SGBD relacional, tem de satisfazer as seguintes 12 regras:
- Informação em tabelas
- Garantia de acesso
- Tratamento sistemático de valores nulos
- Catálogo on-line e ativo baseado no modelo relacional
- Sub linguagem de manipulação de dados compreensível
- Atualização de views
- Insert, Update e Delete de alto nível: tratamento de conjuntos
- Independência física dos dados
- Independência lógica dos dados
- Independência da integridade
- Independência da distribuição
- Não subversão: instruções de baixo nível não podem quebrar regras de integridade.
Detalhamento dos objetos (estruturas) que compõem um BD relacional
Um banco de dados relacional é composto de tabelas ou relações. A terminologia tabela é mais comum nos produtos comerciais e na prática. Já a terminologia relação foi utilizada na literatura original sobre a abordagem relacional.
1. Tabelas
- Uma tabela é um conjunto não ordenado de linhas (tuplas) onde cada linha é composta por uma série de campos (atributos).
- Cada campo é identificado por um nome e o conjunto de campos homônimos de todas as linhas de uma tabela formam uma coluna.
1.1. Diferenças entre Arquivos e Tabelas
- As linhas das tabelas não tem ordenação, não podendo selecionar as linhas por posição, como na referência por registros.
- Os valores de campo de uma tabela são atômicos e mono-valorados. Em arquivos convencionais, campos podem ser compostos por outros campos e campos podem ser multivalorados ("arrays" de Pascal).
- As linguagens de consulta a base de dados relacionais permitem o acesso por quaisquer critérios envolvendo os campos de uma ou mais linhas. Em arquivos convencionais, para buscar registros com base em valores de seus campos de forma rápida é usualmente necessário que exista algum tipo de caminho de acesso ou arquivo de índice.
2 Chaves
A chave é o conceito básico para identificar linhas e estabelecer relações entre linhas de uma tabela de um banco de dados relacional.
2.1. Chave Primária
- É a coluna ou a combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela.
- A chave primária tem como regra ser obedecida em todos os estados válidos do BD, no caso, a regra é a de unicidade de valores nas colunas que compõem a chave.
- A chave primária é uma restrição de integridade.
- Chave composta é quando mais de um campo é necessário para identificar a linha na tabela. Exemplo: Quando um empregado possui vários dependentes, na tabela de dependente existirá uma chave para identificar o empregado e outra para diferenciar cada um dos dependentes deste empregado.
2.2. Chave Estrangeira
- A chave estrangeira é uma coluna ou combinação de colunas, cujo valores aparecem necessariamente na chave primária de uma tabela.
- É um mecanismo que permite a implementação de relacionamentos em um banco de dados relacional.
- A existência de uma chave estrangeira impõe restrições que devem ser garantidas ao executar diversas operações de alteração do banco de dados:
- Quando na inclusão de uma linha que contenha chave estrangeira, deve ser garantido que o valor da chave estrangeira esteja na coluna da chave primária referenciada.
- Quando na alteração de uma chave estrangeira, deve ser garantido que o valor da nova chave estrangeira esteja na coluna da chave primária referenciada.
- Quando na exclusão de uma linha que contenha uma chave que é estrangeira em outra tabela, deve ser garantido que a linha não será excluída enquanto alguma linha que a referencie na outra tabela, ainda exista. No exemplo abaixo, deve ser garantido que não se exclua um departamento X, se existe ainda algum empregado que faça parte deste departamento.
- Quando na alteração de uma chave, que seja referenciada em outra tabela como estrangeira, deve ser garantido que a outra tabela não permaneça com o valor antigo da chave.
- Pode existir uma chave estrangeira que referencie uma chave na mesma tabela. Como por exemplo a Chave Estrangeira CodEmpGer (Código Empregado Gerente), que faz referência a chave primária da própria tabela de empregados (denominado auto-relacionamento)
3. Domínios e Valores Vazios
- Quando uma tabela é definida, para cada coluna deve ser especificado o conjunto de valores que os campos podem assumir. Este conjunto de valores é chamado de domínio.
- Deve ser especificado se os campos da coluna podem estar vazios ou não. Um campo vazio significa que não recebeu nenhum valor de seu domínio.
- Normalmente, nos SGBDs relacionais exigem que todas as colunas que compõem a chave primária sejam obrigatórias. A mesma exigência não ocorre para as demais chaves.
- Um dos objetivos primordiais de um SGBD é a integridade de dados.
- Dizer que um banco de dados está íntegro, significa dizer que ele reflete corretamente a realidade representada pelo banco de dados e que é consistente entre si.
- Restrições de integridade:
- Integridade de domínio: especifica que um campo deve obedecer a definição de valores admitidos para a coluna (domínio).
- Integridade de vazio: especifica se os campos de uma coluna podem ou não ser vazios.
- Integridade de chave: define que os valores da chave primária deve ser único.
- Integridade referencial: define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada.
- Estas restrições devem ser garantidas automaticamente por um SGBD relacional, não deve ser exigido que o programador escreva procedimentos para garanti-las.
.Fonte:
http://www.gsigma.ufsc.br/~popov/aulas/bd1/abordagem_relacional.html
Comentários
Postar um comentário