Informazioni sull'algoritmo di riduzione di Codd


12

L'algoritmo di Codd converte un'espressione nel calcolo relazionale tupla in Algebra relazionale.

  1. Esiste un'implementazione standard dell'algoritmo?
  2. Questo algoritmo è usato da qualche parte? (Sembra che l'industria abbia bisogno solo di SQL e varianti, non sono sicuro dei teorici del database in ambito accademico.)
  3. Qual è la complessità della riduzione?

Questo è stato pubblicato su SO più di un anno fa, ma non ha ricevuto una buona risposta.

Risposte:


8

Questa riduzione è la tecnica di dimostrazione costruttiva per dimostrare che un sottoinsieme (denominato sicuro) Tuple Relational Calculus (TRC) è meno espressivo di Relational Algebra (RA). Anche in questo caso, Safe-TRC e RA hanno un potere espressivo equivalente. Vedi Teorema 5.3.10 per esempio. La restrizione sintattica di "sicurezza" garantisce la proprietà indipendente dal dominio del calcolo ed è necessaria.

In R-DBMS, SQL può essere visto come il linguaggio (dichiarativo) concreto per TRC. La controparte RA è il piano procedurale (una sequenza di operazioni) in cui viene compilata un'espressione SQL. Quindi, la conversione è in realtà la descrizione formale del processo di compilazione. Si noti che SQL introduce estensioni come DISTINCT, ORDER BY, GROUP BY che sono chiaramente al di fuori dell'ambito della teoria TRC e RA.

Non conosco la precisa complessità teorica della conversione, ma chiaramente deve essere "economica". La colaite fotonica afferma che è lineare.

Non sono a conoscenza di un'implementazione di prova di concetto di questo algoritmo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.