Hay un operador DISTINCT en SQL. Sin embargo, tengo una tarea en la que necesito obtener algunos valores distintos de una tabla, y solo puedo usar álgebra relacional. ¿Hay alguna manera?Selección de filas DISTINCT en álgebra relacional
Respuesta
Las proyecciones relacionales siempre devuelven distintas tuplas, por lo que nunca es necesario DISTINCT. Las tuplas duplicadas no están permitidas en la RA, siendo esta una diferencia importante entre el modelo relacional y el modelo SQL.
Sé que esta es una vieja pregunta, pero tengo que objetar, hay un operador similar en álgebra relacional, en mi edición de Ullmans Database Systems. El libro completo está en el siguiente capítulo: ,, 5.2.1 Duplicate Elimination ". Sí, claro, los duplicados no están permitidos en los juegos normales, pero hay varios, lo que les permite. –
Hola DDavid, creo que te puedes estar perdiendo el punto hecho por Molina, Ullman, Widom (excelente libro por cierto y uno a menudo consulte). Cita de la sección 5.2: "Cuando los DBMS que utilizaron el modelo relacional se desarrollaron por primera vez, sus lenguajes de consulta implementaron en gran medida el álgebra relacional. Sin embargo ... estos sistemas consideraban las relaciones como * bolsas *, no conjuntos. "(Énfasis mío) Continúan señalando que las operaciones de bolsa son diferentes a las operaciones establecidas soportadas por la RA. El" operador "DISTINTO de SQL toma una bolsa de tuplas y elimina duplicados. RA trata exclusivamente con conjuntos de tuplas. – sqlvogel
Relational Algebra se basa en la teoría de conjuntos. SQL es una implementación de la teoría de conjuntos múltiples. Set siempre tiene elementos distintos. Así que las tuplas son distintas por defecto en álgebra relacional.
- 1. Agregado álgebra relacional (máximo)
- 2. álgebra relacional en lugar de SQL
- 3. equivalente de álgebra relacional de SQL "NO EN"
- 4. Cómo recuperar valores distintos con arel/álgebra relacional
- 5. ¿Cómo SUMO Filas DISTINCT?
- 6. Características del lenguaje para implementar el álgebra relacional
- 7. función distinct() (no calificador de selección) en postgres
- 8. Álgebra relacional: ¿cuál es la forma correcta de representar una cláusula 'teniendo'?
- 9. ¿Qué podría ser esto: Nuevo lenguaje de consulta encadenable Active Record construido sobre álgebra relacional?
- 10. selección de filas aleatoria en I
- 11. Selección de filas aleatorias en MySQL
- 12. Selección de varias filas en UIPickerView
- 13. Separating excel selección de múltiples filas
- 14. Actualizar varias filas utilizando instrucción de selección
- 15. Selección de filas aleatorias con MySQL
- 16. Zend Framework - conteo de filas en la cláusula de selección?
- 17. evitar la selección de múltiples filas en WPF DataGrid
- 18. SlickGrid: anular la selección de todas las filas en
- 19. SELECCIONAR DISTINCT no funciona
- 20. Haskell álgebra lineal?
- 21. elementos ORDER BY deben aparecer en la lista de selección si no se especifica SELECT DISTINCT
- 22. Selección aleatoria en Data Frame, para filas únicas
- 23. Selección de tablas de datos por rango de filas C#
- 24. Cálculo relacional de Tuple
- 25. Usando DISTINCT en JPA
- 26. DISTINCT en varias columnas
- 27. Cláusula DISTINCT en SQLite
- 28. MySQL: Selección de filas ordenadas por contador de caracteres
- 29. Mysql select distinct
- 30. ¿Cómo puedo evitar que se seleccionen filas duplicadas en una consulta de selección?
Quizás pueda usar el operador de división Rel1 ÷ Rel1! –