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:

  1. Tabular: Suporta a estrutura tabular, mas não os operadores relacionais;
  2. Minimamente relacional: Suporta a estrutura tabular e os operadores de restrição, projeção e junção(apenas estes);
  3. Relacional: Suporta a estrutura tabular e todos os operadores da álgebra relacional;
  4. 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:

  1. Informação em tabelas
  2. Garantia de acesso
  3. Tratamento sistemático de valores nulos
  4. Catálogo on-line e ativo baseado no modelo relacional
  5. Sub linguagem de manipulação de dados compreensível
  6. Atualização de views
  7. Insert, Update e Delete de alto nível: tratamento de conjuntos
  8. Independência física dos dados
  9. Independência lógica dos dados
  10. Independência da integridade
  11. Independência da distribuição
  12. 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.
4. Restrições de Integridade
  • 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

http://pt.scribd.com/doc/61074359/Apostila-Banco-Dados

Comentários

Postagens mais visitadas