Sobre o algoritmo de redução do Codd


12

O algoritmo de Codd converte uma expressão no cálculo relacional da tupla em Álgebra relacional.

  1. Existe uma implementação padrão do algoritmo?
  2. Esse algoritmo é usado em algum lugar? (Parece que o setor precisa apenas de SQL e variantes, não tenho certeza sobre os teóricos de banco de dados na academia.)
  3. Qual é a complexidade da redução?

Isso foi publicado na SO há mais de um ano, mas não recebeu uma boa resposta.

Respostas:


8

Essa redução é a técnica de prova construtiva para mostrar que um subconjunto (denominado seguro) de cálculo relacional de tupla (TRC) é menos expressivo que álgebra relacional (AR). Por outro lado, o Safe-TRC e o RA têm poder expressivo equivalente. Veja o Teorema 5.3.10, por exemplo. A restrição sintática de "segurança" garante a propriedade independente do domínio do cálculo e é necessária.

No R-DBMS, o SQL pode ser visto como a linguagem concreta (declarativa) do TRC. A contraparte do RA é o plano processual (uma sequência de operações) no qual uma expressão SQL é compilada. Portanto, a conversão é realmente a descrição formal do processo de compilação. Observe que o SQL introduz extensões como DISTINCT, ORDER BY, GROUP BY que estão claramente fora do escopo da teoria TRC e RA.

Não conheço a complexidade teórica exata da conversão, mas claramente deve ser "barata". Photon Kolaitis afirma que é linear.

Não estou ciente de uma implementação de prova de conceito desse algoritmo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.