close

Banco de dados relacional do sistema de gerenciamento

Ir para a navegação Ir para a pesquisa

Um sistema de gerenciamento de banco de dados relacional ( RDBMS ) é aquele que segue o modelo relacional .

Regras de um banco de dados relacional

Em 1985, Edgar F. Codd publicou doze regras - mais um 0 inicial - para avaliar se um sistema de gerenciamento de banco de dados pode ser considerado relacional.

Regra 0: Deve ser relacional, um banco de dados e um sistema de gestão

Para que o sistema seja considerado relacional, ele deve usar apenas seus recursos relacionais para gerenciar um banco de dados.

Regra 1: regra de informação

Todas as informações do banco de dados devem ser representadas explicitamente no esquema lógico. Ou seja, todos os dados estão nas tabelas.

Regra 2: regra de acesso garantido

Cada parte dos dados (valores atômicos) em um banco de dados relacional (RDB) é garantida para ser acessível no nível lógico usando uma combinação de table name , primary key value e column name .

  • Quaisquer dados armazenados em um BDR devem ser endereçáveis ​​exclusivamente. Para isso, é necessário
    indicar em qual tabela está, qual é a coluna e qual é a linha (usando a chave primária).
  • Portanto, é necessário o conceito de chave primária, que não é suportado em muitas implementações. Nesses casos, para obter um efeito semelhante, você pode fazer o seguinte:
    • Torne os atributos de chave primária não anuláveis ​​(NOT NULL).
    • Crie um índice exclusivo na chave primária.
    • Nunca deixe cair o índice.

Regra 3: tratamento sistemático de valores nulos

Valores nulos (que são diferentes de string vazia, espaços em branco, 0, ...) são suportados em SGBDs totalmente relacionais para representar informações desconhecidas ou inaplicáveis ​​de forma sistemática, independentemente do tipo de dados.

  • A necessidade da existência de valores nulos é reconhecida pelo seu tratamento sistemático.
  • Existem problemas de suporte a valores nulos em operações relacionais, especialmente operações lógicas.
  • Lógica trivalorada. Em uma possível solução. Existem três (não dois) valores de verdade: Verdadeiro, Falso e Desconhecido (nulo). As tabelas verdade são criadas para as operações lógicas:
    • nulo E nulo = falso
    • Verdadeiro E nulo = nulo
    • Falso E nulo = Falso
    • Verdadeiro OU nulo = Verdadeiro
    • etc.

Uma desvantagem é que para o usuário, lidar com linguagens relacionais é complicado porque é mais difícil de entender.

Regra 4: dicionário online dinâmico baseado no modelo relacional

A descrição do banco de dados é representada no nível lógico da mesma forma que os dados normais, para que os usuários autorizados possam aplicar a mesma linguagem relacional à sua consulta como fazem aos dados normais.

  • É uma consequência da regra 1 que se destaca por sua importância. Os metadados são armazenados usando o modelo relacional, com todas as consequências.

Regra 5: Regra de sublinguagem de dados completos

Um sistema relacional deve suportar vários idiomas e vários modos de uso do terminal (por exemplo: preenchimento de formulários). No entanto, deve haver pelo menos uma linguagem cujas declarações sejam exprimíveis, usando uma sintaxe bem definida, como cadeias de caracteres e que seja completa, suportando:

  • Definição de dados
  • Definição de visualizações
  • Manipulação de dados (interativa e programática)
  • Restrições de integridade
  • Restrições de transação (iniciar, executar, desfazer) (Iniciar, confirmar, reverter).
  • Além de poder ter interfaces mais amigáveis ​​para fazer consultas, etc. Sempre deve haver uma maneira de fazer tudo textualmente, ou seja, pode ser incorporado a um programa tradicional.
  • Uma linguagem que faz isso em grande medida é o SQL.

Regra 6: ver regra de atualização

Todas as visualizações teoricamente atualizáveis ​​devem ser atualizadas pelo sistema.

  • O problema é determinar quais são as visões teoricamente atualizáveis, já que não é muito claro.
  • Cada sistema pode fazer suposições exclusivas sobre quais visualizações são atualizáveis.

Regra 7: inserir, atualizar e excluir de alto nível

A capacidade de manipular um relacionamento base ou derivado como um único operando se aplica não apenas à recuperação de dados (consultas), mas também à inserção, atualização e exclusão de dados.

  • Ou seja, a linguagem de manipulação de dados também deve ser de alto nível (de conjuntos). Alguns bancos de dados inicialmente só podiam modificar as tuplas de banco de dados uma de cada vez (um registro por vez).

Regra 8: Independência física dos dados

Os programas de aplicativos e as atividades do terminal permanecem inalterados no nível físico sempre que são feitas alterações nas representações de armazenamento ou nos métodos de acesso.

  • O modelo relacional é um modelo lógico de dados e oculta as características de sua representação física.
  • É a capacidade de modificar o esquema interno sem ter que alterar o esquema conceitual (ou externo). Por exemplo, pode ser necessário reorganizar determinados arquivos físicos para melhorar o desempenho das operações de consulta ou atualização de dados. independência física refere-se apenas à separação entre aplicativos e estruturas de armazenamento físico.

A capacidade de modificar o esquema conceitual sem forçar os programas de aplicação a serem reescritos.

Regra 9: Independência de dados lógicos

Os programas aplicativos e as atividades do terminal permanecem inalterados no nível lógico sempre que são feitas alterações nas tabelas base que preservam a informação.

  • Quando o esquema lógico é modificado preservando informações (por exemplo, não valeria a pena remover um atributo) não é necessário modificar nada em níveis superiores.
  • Exemplos de alterações que preservam informações:
    • Adicione um atributo a uma tabela base.
    • Substitua duas tabelas base juntando-as. Usando visualizações de união, posso recriar as tabelas acima ...
    • depurar visualizações de layout e contê-lo estável.

Regra 10: independência de integridade

As restrições de integridade específicas de um determinado banco de dados relacional devem ser definíveis na sublinguagem de dados relacionais e armazenáveis ​​no catálogo, não em programas aplicativos.

  • O objetivo dos bancos de dados não é apenas armazenar os dados, mas também seus relacionamentos e evitar que estes (limitações) sejam codificados nos programas. Portanto, em um BDR deve ser possível definir restrições de integridade.
  • Os tipos de restrições de integridade que podem ser usados ​​no RGBMS estão se expandindo cada vez mais, embora até recentemente fossem muito poucos.
  • Como parte das limitações inerentes ao modelo relacional (fazem parte de sua definição) estão:
    • Um BDR tem integridade de entidade. Ou seja, toda tabela deve ter uma chave primária.
    • Um BDR tem integridade referencial. Ou seja, toda chave estrangeira não nula deve existir na relação em que é primária.

Regra 11: Independência de distribuição

Um banco de dados relacional tem independência de distribuição.

  • As mesmas ordens e programas são executados da mesma forma em um banco de dados centralizado e distribuído.
  • BDRs são facilmente distribuídos:
    • As tabelas são divididas em fragmentos que são distribuídos.
    • Quando tabelas inteiras são necessárias, elas são recombinadas usando operações relacionais com os estilhaços.
  • No entanto, a gestão interna da integridade, etc., é mais complicada.
  • Esta regra é responsável por três tipos de transparência de distribuição:
    • Transparência do local. O usuário tem a impressão de que trabalha com um banco de dados local. (aspecto da regra de independência física)
    • Transparência da fragmentação. O usuário não percebe que a relação com a qual trabalha é fragmentada. (aspecto da regra lógica de independência de dados).
    • Transparência de replicação. O usuário não percebe que cópias (réplicas) do mesmo relacionamento podem existir em lugares diferentes.

Regra 12: nenhuma regra de subversão

Se um sistema relacional possui uma linguagem de baixo nível (um registro por vez), esse baixo nível não pode ser usado para contornar (subverter) as regras de integridade e restrições expressas em linguagens relacionais de nível superior (uma relação ( conjunto de registros) de cada vez)

  • Alguns problemas não podem ser resolvidos diretamente com a linguagem de alto nível.
  • SQL incorporado em uma linguagem de host é normalmente usado para resolver esses problemas. O conceito de cursor é usado para tratar individualmente as tuplas de uma relação. De qualquer forma, não deve ser possível contornar as restrições de integridade impostas ao lidar com tabelas nesse nível.

Veja também