¿Es el cálculo relacional de tuplas seguro un lenguaje completo?Cálculo relacional de Tuple
Respuesta
Olvidémonos de la seguridad. Por Codd's theorem, el cálculo relacional es equivalente a la lógica de primer orden. FOL es muy limitado, no puede expresar el hecho de que hay una ruta desde un punto A hasta un punto B en algún gráfico (puede expresar el hecho de que hay una ruta desde un punto A a un punto B de longitud limitada, por ejemplo ∃ x ∃y ∃z ∃t ruta (a, x) y ruta (x, y) y ruta (y, z) y ruta (z, t) y ruta (t, b) significa que hay una ruta de longitud 4).
Consulte descriptive complexity para obtener una descripción de la fuerza de las diferentes lógicas.
Parece que sabe más sobre esto que yo, sin embargo, ¿por qué los siguientes no pueden expresar que hay una ruta? borde (x, y) -> ruta (x, y) borde (x, y) y borde (y, z) -> ruta (x, z) si el gráfico se representa como un conjunto de hechos sobre bordes, es decir, borde (a, b) y borde (b, c) y borde (c, d) luego el borde de la consulta (a, d) será demostrable por un teorema FOL (por ejemplo, un intérprete de prólogo)) –
Usted dice que la ruta es la más mínima relación transitiva que satisface el borde (x, y) -> ruta (x, y). Esta definición requiere menos punto fijo. Para definir una nueva relación en cálculo de tuplas, puede usar intersección, unión, proyección ... pero no es posible decir "enrutar es una relación que cumple las siguientes condiciones ...". También puede cuantificar las relaciones, pero esa es una lógica de orden superior, y la cuantificación solo se permite en individuos en FOL. – sdcvvc
+1 gracias por la explicación sdcwc –
De acuerdo con Codd's Theorem, el álgebra relacional y el cálculo relacional son equivalentes. Es bien sabido que el álgebra relacional no es Turing completa, por lo que tampoco lo es el cálculo relacional.
[Editar] No puede, por ejemplo, hacer operaciones agregadas (como suma, máximo) o realizar consultas recursivas en álgebra relacional/cálculo. Ver here (cerca del final).
O estás equivocado o Larry Watanabe sí. No tengo idea del tema, pero ¡esto se está poniendo interesante! (va a buscar palomitas de maíz) –
Ahora el álgebra relacional no es Turing Complete es más conocido :) –
Sin embargo, al leer el enlace de otro póster al teorema de Codd, el álgebra relacional no es equivalente al cálculo relacional: el álgebra relacional es esencialmente equivalente a la lógica proposicional mientras que el álgebra relacional es equivalente a FOL. –
- 1. Boost tuple performance
- 2. Scala Tuple Deconstruction
- 3. scala tuple desempaquetado
- 4. F #. Tuple o no
- 5. Tuple en la cadena
- 6. Implementación de Java N-Tuple
- 7. Agregado álgebra relacional (máximo)
- 8. Características del lenguaje para implementar el álgebra relacional
- 9. std :: tuple y diseño estándar
- 10. ¿Cómo se implementa std :: tuple?
- 11. SQLAlchemy devuelve tuple no diccionario
- 12. Tuple vs TypeTuple en D
- 13. Return Tuple from EF select
- 14. Parámetro de función de Python: tuple/list
- 15. campo relacional y el desarrollo
- 16. Programación Relacional/Lógica en Python?
- 17. ¿Qué es la parametricidad relacional?
- 18. copia de tabla relacional de datos
- 19. Uso de boost :: tuple en tr1 :: hash
- 20. Extrayendo información de un Tuple (Python)
- 21. Python: ¿Convertir de Tuple a String?
- 22. N-Ary Versiones de funciones Tuple
- 23. accediendo a miembros de boost :: tuple
- 24. Erlang: Lista de Tuple en JSON
- 25. Inferencia de tipo Scala Tuple en Java
- 26. Tipo de retorno Scala para funciones tuple
- 27. desempaquetado de Tuple: variable ficticia vs índice
- 28. Modelado: Xml vs. Base de datos relacional
- 29. Esquema relacional para expresiones temporales de Fowler
- 30. Desventajas del mapeo relacional de objetos
¿Qué opinas? – avakar
goto mathoverflow.net; –
+1 buena pregunta –