marcelo Cortez dijo [Wed, Sep 17, 2008 at 10:33:15AM -0700]: > Hola > > Para mi el tema de las bases de datos de objetos y los otros metodos de > mapear objetos tiene un eje de diferencia muy grande y conceptual > que termina siendo por donde pasa todo. la identidad. > En el paradigmade objetos esta asegurada la identidad todo objeto es identico > a si mismo y esa identidad es unica,( perdon por la redundancia). > (...) > la diferencia entre mapear en una base de objetos y una base relacional es > como si por ejemplo , > todas las mañanas tomara mi auto para ir al trabajo y luego al llegar a casa > lo desarmo todo en cajitas numeradas y a la mañana siguiente lo volviera a > ensamblar y asi ... siempre ... > Volviendo al tema , creo que el pivot esta en la identidad.
No exactamente. Todo objeto en un lenguaje limpiamente OO tiene también un ID. Veamos el siguiente ejemplo, en Ruby (estoy usando la consola interactiva, irb): Vamos a crear dos objetos con información aparentemente idéntica: >> cadena1 = "una cadena" => "una cadena" >> cadena2 = "una cadena" => "una cadena" Verificamos si, a nivel comparación, son iguales: >> cadena1 == cadena2 => true Y vemos sus respectivos IDs: >> cadena1.object_id => 69996972347440 >> cadena2.object_id => 69996972340800 Entonces, claramente, estos dos objetos son iguales, mas no son el mismo objeto. ¿Cómo puedo hablar de lo mismo en un modelo relacional como el de PostgreSQL? Voy a crear una tabla muy sencilla, con solamente una columna, y poblarla de datos del mismo modo: test=# CREATE TEMP table cadena (datos text); CREATE TABLE solserv_test=# INSERT INTO cadena (datos) VALUES ('una cadena'); INSERT 0 1 solserv_test=# INSERT INTO cadena (datos) VALUES ('una cadena'); INSERT 0 1 Si consulto esta tabla, tengo -del mismo modo que en el ejemplo anterior- dos registros independientes, aunque casualmente idénticos (cosa que, obviamente, no quieres ver en una BD de producción ;-) test=# SELECT * from cadena; datos ------------ una cadena una cadena (2 rows) No me meto en este momento en más detalles - Cada registro sigue siendo únic, tiene un identificador interno, tan interno como el object_id de Ruby (que en realidad no es muy utilizable más que para propósitos demostrativos para el usuario común). -- Gunnar Wolf - [EMAIL PROTECTED] - (+52-55)5623-0154 / 1451-2244 PGP key 1024D/8BB527AF 2001-10-23 Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5 27AF -- TIP 7: no olvides aumentar la configuración del "free space map"