À propos de l'algorithme de réduction de Codd

12

L'algorithme de Codd convertit une expression dans le calcul relationnel de tuple en algèbre relationnelle.

  1. Existe-t-il une implémentation standard de l'algorithme?
  2. Cet algorithme est-il utilisé n'importe où? (Il semble que l'industrie n'ait besoin que de SQL et de variantes, je ne suis pas sûr des théoriciens des bases de données dans le monde universitaire.)
  3. Quelle est la complexité de la réduction?

Cela a été publié sur SO il y a plus d'un an, mais il n'a pas reçu de bonne réponse.

PKG
la source

Réponses:

8

Cette réduction est la technique de preuve constructive pour montrer qu'un sous-ensemble (nommé sûr) Tuple Relational Calculus (TRC) est moins expressif que l'algèbre relationnelle (RA). L'autre façon étant également vraie, Safe-TRC et RA ont une puissance expressive équivalente. Voir le théorème 5.3.10 par exemple. La restriction syntaxique de "sécurité" garantit la propriété indépendante du domaine du calcul et est nécessaire.

Dans R-DBMS, SQL peut être considéré comme le langage concret (déclaratif) pour TRC. L'homologue RA est le plan procédural (une séquence d'opérations) dans lequel une expression SQL est compilée. Ainsi, la conversion est en fait la description formelle du processus de compilation. Notez que SQL introduit des extensions comme DISTINCT, ORDER BY, GROUP BY qui sont clairement en dehors du champ d'application de la théorie TRC et RA.

Je ne connais pas la complexité théorique précise de la conversion, mais elle doit clairement être "bon marché". Le photon Kolaitis déclare qu'il est linéaire.

Je ne suis pas au courant d'une implémentation de preuve de concept de cet algorithme.

Romuald
la source