Regras de Codd

Como definir (verificar se) um SGBD é ou não relacional ?

Codd estabeleceu uma lista de 12 regras que definem/avaliam um sistema de modelo relacional.

Vários autores (próprio Codd) reconhecem ser difícil encontrar implementações que, à luz das 12 regras, possam ser consideradas completamente relacional.

No entanto foram muito importantes para combater posicionamentos proprietários da indústria de SGBD.

Regras

  1. Representação da Informação

    1. Numa base de dados relacional, todos os dados, incluindo o próprio dicionário de dados, são representados de uma só forma, em tabelas bidimensionais.

  2. Acesso garantido

    1. Cada elemento de dados fica bem determinado pela combinação do nome da tabela onde está armazenado, valor da chave primária e respectiva coluna (atributo).

  3. Suporte sistemático de valores nulos (NULL)

    1. Valores NULL são suportados para representar informação não disponível ou não aplicável, independentemente do domínio dos respectivos atributos.

  4. Catálogo activo e disponível

    1. Os metadados são representados e acedidos da mesma forma que os próprios dados

  5. Linguagem completa

    1. Apesar de um sistema relacional poder suportar várias linguagens, deverá existir pelo menos uma linguagem com as seguintes características:

      1. Manipulação de dados, com possibilidade de utilização interativa ou em programas de aplicação.

      2. Definição de dados.

      3. Definição de views.

      4. Definição de restrições de integridade.

      5. Definição de acessos (autorizações).

      6. Manipulação de transações (commit, rollback, etc.).

  6. Regra da atualização de vistas (view)

    1. Numa vista, todos os dados modificados (em atributos actualizáveis) devem ver essas modificações traduzidas nas tabelas base.

  7. Operações de alto-nível

    1. Capacidade de tratar uma tabela (base ou virtual) como se fosse um simples operando (ou seja, utilização de uma linguagem set-oriented), tanto em operações de consulta como de atualização ou eliminação.

  8. Independência física dos dados

    1. Alterações na organização física dos ficheiros da base de dados ou nos métodos de acesso a esses ficheiros (nível interno) não devem afectar o nível lógico.

  9. Independência lógica dos dados

    1. Alterações no esquema da base de dados (nível lógico), que não envolvam remoção de elementos, não devem afectar o nível externo.

  10. Restrições de integridade

    1. As restrições de integridade devem poder ser especificadas numa linguagem relacional, independentemente dos programas de aplicação, e armazenadas no dicionário de dados.

  11. Independência da localização

    1. O facto de uma base de dados estar centralizada numa máquina, ou distribuída por várias máquinas, não deve repercutir-se ao nível da manipulação dos dados.

  12. Não subversão

    1. Se existir no sistema uma linguagem de mais baixo-nível (tipo record-oriented), ela não deverá permitir ultrapassar as restrições de integridade e segurança.

Last updated