¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

SQLScript: ¿Completo en Turing como T-SQL y PL/SQL? Una comparativa detallada

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 1 Vistas
0
Cargando...

En un foro , leí que SQL92 no es completo en Turing, sin embargo, lenguajes como T-SQL y PL/SQL sí lo son (desafortunadamente no se proporciona evidencia).

Entonces me preguntaba: ¿SQLScript también es completo en Turing? Intuitivamente, argumentaría que sí. Sin embargo, no he encontrado ninguna evidencia o prueba formal al respecto.

Otro pensamiento es que SQLScript extiende el SQL de HANA, por lo que si el SQL de HANA fuera completo en Turing, asumiría que SQLScript también lo es.

¿Alguien puede confirmar o rechazar esto con una buena explicación y (si es posible) evidencia?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

2 Respuestas

0
Cargando...

Gracias por esa respuesta impresionante 🙂 De hecho, estoy escribiendo mi tesis de maestría y me encontré con un punto en el que necesitaba razonar sobre la computabilidad de fragmentos de código SQLScript.

A su vez, esta pregunta vino a mi mente y pensé que sería mejor colocarla en esta plataforma. Resultó que tenía razón 😛

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

¡Vamos a hacer esto! (aunque no tengo idea de por qué importaría en absoluto...)

Entonces, no soy un científico de la computación, y solo estoy un tercio a través de " The Annotated Turing " (que parece ser un gran libro, por cierto). Esto significa que lo que sigue es el enfoque de un lego en esto.

En primer lugar, tuve que entender qué se entiende por "completamente turing" y cómo mostrar que un lenguaje tiene esa característica.

Para eso, hay un par de entradas en Wikipedia y discusiones en SO disponibles y dejo que todos las lean (p. ej., aquí , aquí ). Una de esas discusiones enlazó a una presentación que afirmaba probar que PostgreSQL-SQL con expresiones comunes de tabla recursivas (CTS) es completamente turing. Para probar esto, el autor de la presentación ( aquí por cierto) dijo que es suficiente demostrar que un lenguaje puede emular a otro lenguaje que ya se ha demostrado que es completamente turing. Justo.
La elección del autor fue un " sistema de etiquetas cíclicas " con un conjunto de reglas específico ( Regla 110 ) que aparentemente se ha demostrado que es completamente turing.
Luego el autor continúa e implementa este sistema de etiquetas cíclicas con una expresión común de tabla recursiva y así demuestra la afirmación.

¡Hurra!

Entonces, ¿qué significa esto para SAP HANA SQL? SAP HANA SQL/SQLScript no admite expresiones comunes de tabla recursivas (mucho disgusto para todos los que intentan manejar jerarquías y no conocen las vistas y funciones de jerarquía especiales de SAP HANA (mira allí ) y tampoco admite llamadas de procedimiento recursivas.

Qué lástima, uno podría pensar.
Afortunadamente, cada recursión se puede expresar como una iteración (compara aquí ), así que pensé, intentemos este sistema de etiquetas cíclicas en SQLScript. Este es el resultado (HANA 1, rev.122.15, en mi NUC):

do begin
declare prods VARCHAR(4) ARRAY;
declare currProd, initWord, currWord VARCHAR(300);
declare runs, maxruns bigint = 0;
declare currProdNo integer = 0;
    initWord :='11001';
    maxruns := 100;
    runs := 0;
    prods = ARRAY ('010', '000', '1111');
    currWord := :initWord;
    
    -- tabla falsa var para monitorear output
    tmp = select :runs as RUNS, :currProd as CURRPROD, :currWord as CURRWORD 
    from dummy;

    while (:runs 
            
Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?