
09/07/2009, 17:54
|
 | Moderador criollo | | Fecha de Ingreso: noviembre-2007 Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 2 meses Puntos: 2658 | |
Respuesta: Algebra relacional y SQL dudas.. Porque en realidad una operación completa de álgebra relacional, con todos sus componentes de proyección y selección, componen una sentencia completa de SQL.
Cuando realizas una operación algebraica relacional primero puedes hacer una selección, y sobre el resultado se aplica una proyección; luego puede haber una junta natural, que es el producto del resultado de estas operaciones previas. ¿No es así?
Bueno, la sentencia SELECT hace exactamente los mismos pasos, pero los implementa internamente dentro del código del DBMS. Esa es la parte que tu no ves, pero que se realiza. No hay que confundir lógica con implementación.
Es muy posible que en las clases en que te explicaron el álgebra relacional, alguien haya hecho la pregunta (siempre alguien lo hace) de si existe un software que aplique eso y contestaron que el SQL lo implementa, pero que no existe forma de aplicar directamente los conceptos del álgebra relacional al software. Y es cierto. De la misma forma no se puede pasar de un diagrama de dominio de POO a un código programado sin traducirlo. Eso es lo mismo que pasa con el SQL y el AR: El SQL es la traducción de lo que se prepara en AR, según un estándar desarrollado para ello.
Cuando escribes SELECT a, b, c, d FROM T1 WHERE a = 1, estás declarando cuál es el conjunto de datos que quieres recibir, y cómo lo quieres obtener y de dónde. Lo que no se ve, es que en realidad la primera operación realizada no es el SELECT sino el FROM (con sus JOIN) y el WHERE, con lo que en realidad lo que el DBMS aplica es la selección algebraica... no la proyección. Esta es la operación final.
¿Se entiende?
Finalmente, no estoy de acuerdo en que hay una sola forma de resolver un problema de tablas. Lo que existe es un lenguaje principal y evolucionado que implementa las soluciones de bases de datos, aunque no es el único. Pero es el más eficiente y versátil cuando lo conoces en profundidad.
__________________ ¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente... "El problema es la interfase silla-teclado." (Gillermo Luque) |