--- El jue 18-sep-08, Gunnar Wolf <gwolf@gwolf.org> escribió:
> De: Gunnar Wolf <gwolf@gwolf.org>
> Asunto: Re: [pgsql-es-ayuda] Hola
> Para: "marcelo Cortez" <jmdc_marcelo@yahoo.com.ar>
> Cc: pgsql-es-ayuda@postgresql.org, "Danier Marante Jacas" <djacas@estudiantes.uci.cu>
> Fecha: jueves, 18 de septiembre de 2008, 1:50 pm
> 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
Si pero yo me referia a que en una base de objetos no hace falta ni tiene sentido un id.
dije bien , no tiene el menor sentido. pero claro eso es dificil de digerir :( .
Lo que pasa es que los que conocemos como objetos en verdad son aproximaciones, en objetos verdaderos deberiamos hacermos la pregunta, de que clase seria el id ?..
Tampoco tienen sentido las validaciones, porque?
tengo un combobox o cualquier otra forma de presentacion de la informacion, por ejemplo seleccione una calle ...
Cuando eligen una y me devuelve el "resultado" lo que obtengo es una calle.
no un string. que sentido tiene preguntar ,,, es una callle?
tiene altura? que localidad?
no lo tiene porque YA ES .., es una calle.
del mismo modo los objetos no disponen de un campo id. en los ambientes de objetos los objetos no exponen su "id" lo tienen dentro de ellos es posible preguntar por algo "similar" al id pero en gral tiene poco sentido.
salvo en casos muy particulares y para las bases donde estos objetos se guardan no , no necesitan eso.
en las bases relacionales o sistemas de mapeos la UNICA manera de que no se desarme todo es usar el id , tiene un costo..
Hay que administrarlo.. para mi esto responde mas a razones historicas que verdaderas necesidades, en verdad crean mas problemas de los que solucionan OJO hablo del punto de vista de los objetos mapeos y bases de objetos ... desde este punto de vista lo digo.
Grandes problemas de ingenieria trae aparejado esto , y vuelvo a repetir
en objetos..
Para saber si hablamos de lo mismo cuando hablamos de objetos deberiamos ser capaces de responder estas sencillas preguntas todas afirmativamente para poder decir .. SI! es de objetos..
a) es la clase un objeto ?
b) son los procesos un objeto?
c) son los numeros objetos?
d) son todos objetos??
a) es re importante pero no me extendere sobbre ello.
b) c) son solo ejemplos de d) que es el meollo de la situacion.
leer d) pero afirmando , SI SON TODOS OBJETOS!!
si responde a todo eso si
Congratulaciones !!!! ud si esta hablando de objetos!!! :)
saludos a todos
mdc
para los amantes de los links
http://en.wikipedia.org/wiki/Gemstone_Database_Management_System
http://workshop99.ircache.net/Papers/rodriguez-abstract.html
> (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 - gwolf@gwolf.org - (+52-55)5623-0154 /
> 1451-2244
> PGP key 1024D/8BB527AF 2001-10-23
> Fingerprint: 0C79 D2D1 2C4E 9CE4 5973 F800 D80E F35A 8BB5
> 27AF
Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
--
TIP 4: No hagas 'kill -9' a postmaster
No comments:
Post a Comment