Notes - MIECT
Bases De Dados
Notes - MIECT
Bases De Dados
  • Bases de Dados
  • Introdução
    • Conceitos
    • Sistema de Gestão de Ficheiros (SGBD)
      • Vantagens e Desvantagens
      • Utilizadores
      • Dicionários
      • Interfaces (Aplicações)
      • Arquitetura ANSI/ SPARC
        • Independência dos Dados
      • Arquitetura Típica
    • Modelo de Base de Dados
      • Modelos NoSQL
      • Modelo Hierárquico
      • Modelo de Rede
  • Desenho de Base de Dados - Diagramas E/R
    • Desenho Base de Dados
    • Análise de Requisitos
    • Desenho Conceptual
    • Modelo Entidade/Relacionamento (E/R)
      • Entidade
      • Atributo
      • Relacionamento
        • Classificação
      • Restrições de Integridade
    • DER - Agregação
    • DER – Opções de Desenho
    • Generalização versus Especialização
      • Especialização
      • Generalização
    • Outras Notações DER
    • Casos de Estudo
      • Clínica Médica
      • Empresa
  • Modelo Relacional
    • Introdução
    • Conceitos
    • Relação
    • SuperChaves e Chaves Candidatas
    • Chave Primária
    • Restrições de Integridade
      • Regras de Codd
    • Conversão do DER em Modelo Relacional
      • Especialização
      • Agregação
      • Exemplo
  • Linguagem SQL - DDL
    • Linguagem SQL
    • Hierarquia de Objetos
    • Criar e Eliminar uma Base de Dados
    • Schema
    • Tipo de Dados
    • Definição de Domínio
    • Definição de Novo Tipo
    • Criar uma Tabela
    • Atributos
      • CHECK
      • PRIMARY KEY
      • UNIQUE
      • FOREIGN KEY
    • Tabela
    • Considerações Práticas
  • Álgebra Relacional
    • Operações Básicas
      • Seleção
      • Projeção
      • Encadeamento de Operações
      • Renomeação
      • União
      • Interseção
      • Diferença
      • Produto Cartesiano
      • Junção θ
      • Divisão
    • Operações Estendidas
      • Semi Join
      • Inner Vs. Outer Join
      • Outer Join
      • Agregação
    • Caso de Estudo
  • Linguagem SQL - DML
    • Projeção
    • Seleção
    • Inserção
    • Eliminação
    • Actualização
    • Renomeação
    • Queries
    • Operações com Conjuntos
      • Projeção
    • Renomeação
    • UNION
    • Produto Cartesiano
    • Junção de Relações
    • Queries
  • SQL DML - Consulta Simples
    • Operações com Conjuntos
    • Projeção
    • Seleção
    • Renomeação – Relação, Atributo e Aritmética
    • Reunião, Intersecção e Diferença
    • Produto Cartesiano
    • Junção de Relações
    • Junção
    • Queries
  • Consultas Avançadas
    • Tratamento dos NULL
    • NATURAL JOIN
    • OUTER JOIN
    • Encadeamento
    • Agregações
    • SubQueries
    • Pertença a Conjunto
    • Comparação de Conjuntos
    • EXISTS
    • UNIQUE
    • SubConsultas Não Correlacionadas
  • Linguagem SQL – View
    • View
    • Utilização
    • Query Modification
    • Alterar e Eliminar
    • Update de Dados
    • WITH CHECK OPTION
  • Normalização
    • Desenho de BD - Esquemas de Relação
    • Semântica dos atributos da relação
    • Redução dos NULLs nos tuplos
    • Junção de Relações baseada em PK e FK
    • Dependências Funcionais (DP)
    • Normalização
      • Primeira Forma Normal (1NF)
      • Segunda Forma Normal (2FN)
      • Terceira Forma Normal (3FN)
      • Boyce-Codd Normal Form (BCNF)
      • Ponto de Equilíbrio
      • 4FN e 5FN
      • Dependências de Junção
  • Indexação e Optimização
    • Introdução
    • Índices
      • Single-Level Ordered
      • Multilevel Index
    • Árvore de Pesquisa
    • SQL - Index
    • Seleção de Índices
      • Caso de Estudo
    • SQL Server - Indexing
    • SQL Server: Clustered index
    • SQL Server: Non-clustered index
    • B-Tree Page Split
    • Opções de Especialização
    • Heap vs Clustered Table
    • Escolha de um Clustered Index
    • Escolha de um Non-Clustered Index
    • B-Tree Tuning
    • Desfragmentação de Índices
  • SQL Programming
    • Script & Batch
    • Variáveis
    • PRINT
    • Instruções de Controlo de Fluxo
    • Tabelas Temporárias
    • Tabelas como Variáveis
    • Cursor
    • Stored Procedures
      • SQL Statement vs. Stored Procedure
      • Create
      • Update e Drop
      • Tipos
      • Execução
      • Parâmetros de Saída
      • Cifragem
    • T-SQL Error Handling
    • T-SQL RAISERROR
    • T-SQL: Try … Catch
    • User Defined Functions (UDF)
      • Tipos
    • Trigger
      • After
      • Instead of
      • Inserted e Deleted – Logical Tables
      • Colunas Alteradas
      • Limitações
      • Funcionalidades Úteis
  • Transações
    • Introdução
    • Transação – Operações de Leitura e Escrita
    • Transações em SQL Standard
    • Estado de uma Transação
    • Propriedades
  • Controlo de Concorrência
    • Transações
    • Escalonamento Concorrente
    • Métodos
  • Recuperação de Falhas
    • Introdução
    • Falhas de um SGBD
    • Escalonamento vs Recuperação de Falhas
    • Backups
    • Transactions Logs
    • Rollback – até que ponto?
    • Custos
  • SQL Server
    • Resumo da Sintaxe
    • Transações Encadeadas
    • Stored Procedures e Rollbacks
    • Transações
  • Aspectos de Segurança
    • Modelo de Segurança
    • Login e User
    • Segurança na Base de Dados
    • DB - Grant Access
    • Segurança dos Objetos da BD
    • Objetos
    • Stored Procedure
    • Cifragem de Atributos
    • SQL INJECTION
Powered by GitBook
On this page
  1. Modelo Relacional
  2. Restrições de Integridade

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.

PreviousRestrições de IntegridadeNextConversão do DER em Modelo Relacional

Last updated 3 years ago