¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

SQLScript: Completo em Turing como T-SQL e PL/SQL? Uma comparação detalhada

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

Em um fórum , li que o SQL92 não é completo em Turing, no entanto, linguagens como T-SQL e PL/SQL são (infelizmente, não há evidências fornecidas).

Então, eu estava me perguntando: O SQLScript também é completo em Turing? Intuitivamente, eu argumentaria que sim. No entanto, não encontrei nenhuma evidência ou prova formal sobre isso.

Outra ideia é que o SQLScript estende o SQL do HANA, então, se o SQL do HANA for completo em Turing, eu assumiria que o SQLScript também é.

Alguém pode confirmar ou refutar isso com uma boa explicação e (se possível) evidência?

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

2 Respuestas

0
Cargando...

Obrigado por essa resposta impressionante ? Na verdade, estou escrevendo minha tese de mestrado e me deparei com um ponto em que precisava raciocinar sobre a computabilidade de trechos de código SQLScript.

Por sua vez, essa pergunta veio à minha mente e achei que seria melhor colocá-la nesta plataforma. Acabou que eu estava certo ?

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

Vamos fazer isso! (embora eu não tenha ideia do porquê isso importaria de qualquer maneira...)

Então, não sou um cientista da computação, e estou apenas um terço através de " The Annotated Turing " (que parece ser um ótimo livro, aliás). Isso significa que o que segue é a abordagem de um leigo nisso.

Primeiramente, tive que entender o que é entendido por "totalmente turing" e como mostrar que uma linguagem possui essa característica.

Para isso, há algumas entradas na Wikipedia e discussões no SO disponíveis, e deixo que todos as leiam (por exemplo, aqui , aqui ). Uma dessas discussões vinculou a uma apresentação que afirmava provar que o PostgreSQL-SQL com expressões comuns de tabela recursivas (CTS) é totalmente turing. Para provar isso, o autor da apresentação ( aqui por sinal) disse que é suficiente demonstrar que uma linguagem pode emular outra linguagem que já foi demonstrada ser totalmente turing. Correto.
A escolha do autor foi um " sistema de etiquetas cíclicas " com um conjunto específico de regras ( Regra 110 ) que aparentemente foi demonstrado ser totalmente turing.
Em seguida, o autor continua e implementa esse sistema de etiquetas cíclicas com uma expressão comum de tabela recursiva e assim prova a afirmação.

Hurra!

Então, o que isso significa para o SAP HANA SQL? O SAP HANA SQL/SQLScript não suporta expressões comuns de tabela recursivas (muita decepção para todos que tentam lidar com hierarquias e não conhecem as visualizações e funções de hierarquia especiais do SAP HANA (veja aqui ) e também não suporta chamadas de procedimento recursivas.

Que pena, alguém poderia pensar.
Felizmente, cada recursão pode ser expressa como uma iteração (compare aqui ), então pensei, vamos tentar esse sistema de etiquetas cíclicas em SQLScript. Este é o resultado (HANA 1, rev.122.15, no meu 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;
    
    -- tabela falsa var para monitorar output
    tmp = select :runs as RUNS, :currProd as CURRPROD, :currWord as CURRWORD 
    from dummy;

    while (:runs < :maxruns) begin
        foreach select :currProd as CURRPROD from dummy where :currProdNo = :runs, :currWord as CURRWORD from dummy;
        :runs = :runs+1;
        :currProdNo = :currProdNo+1;
    end
end;
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?