Historias
Slashboxes
Comentarios
 

Login Barrapunto

Login

[ Crear nueva cuenta ]

mig21 (7781)

mig21
  reversethis-{moc.liamg} {ta} {pb12gim}
https://twitter.com/yapw

Hola, soy Miguel. Algo que pueda ser relevante aquí... Uhmm... Me gusta escribir en mi bitácora de BP [barrapunto.com] y en su clon en blogspot: Yet Another Programming Weblog [blogspot.com]
Me gustaría que Barrapunto fuese un sitio con más discusiones técnicas y trato de hacer lo que está en mi mano. De todos modos, también me gusta leer flames ;)

No creo que te interese, pero en Lecturas aleatorias [blogspot.com] dejo registro de los libros que voy leyendo...

Esta es toda mi información de usuario :)

Down Kill Up Publicidad

Bitácora de mig21 (7781)

Miércoles, 08 de Febrero 2006

Objetos y bases de datos relacionales

09:12h.
Tecnología

Este tema da para mucho (seguro que para muchos libros y/o ríos de bytes) pero bueno, trataré de ser breve. Me he encontrado una noticia en The Server Side sobre Amber, un mapeador de objetos en bases de datos relacionales que, al contrario de el resto de estos sistemas, se centra más en las características de la base de datos, con lo que permite olvidarse de las configuraciones en XML y además dejar del lado de la base de datos, mediante procedimientos almacenados, la configuración de dicho mapeo. (Más información en Lightweight R/O Mapping y Java and the Empowered Database)

Como el tema me parece muy relevante (¿quién no programa hoy en día en un lenguaje que no soporte OO? ¿quién no usa bases de datos relacionales?) y sin embargo creo el tema no es un tema demasiado "popular" voy a tratar aportar lo que tengo a mano para aumentar la popularidad y con suerte algún lector será capaz de aportar algo más.

En la wikipedia hay una entrada acerca del mapeo O/R, que apunta a lo que me parecen dos artículos extensos y muy muy jugosos: Mapping Objects to Relational Databases: O/R Mapping In Detail y uno un poco más breve: The Object-Relational Impedance Mismatch, ambos de Scott W. Ambler. En este último se pone de relevancia algo que sospecha todo aquel que piensa detenidamente en ambos paradigmas, OO y relacional, y es que no son directamente "enchufables" y por ello se genera lo que llama impedance mismatch ("desajuste de impedancia", al parecer una analogía con la electrónica) De este desajuste se deduce que tenemos que pensar detenidamente en los mecanismos y herramientas de mapeo, no vaya a ser que nos encontremos con sutilezas desagradables en un punto más avanzado del desarrollo...

Actualización de poco interés: Technorati Profile

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • mi opinion

    (Puntos:2)
    por sammael (16347) el Miércoles, 08 Febrero de 2006, 10:19h (#693030)
    ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
    mi opinion acerca de estas cosas es que casi es mejor usar la base de datos para lo que es (almacenar y organizar datos) y la logica de negocio en los lenguajes de programacion...

    con un rapido vistazo por el articulo que comentas sobre amber, veo que coincido con bastante gente y ademas me entero de otros posibles problemas en los que no habia pensado...

    lo primero, no soy administrador de bbdd ni mucho menos, mis conocimientos terminan en el SQL, un poco de PL/SQL y un poquito sobre optimizacion (sobre todo de querys), asi que mis opiniones pueden estar equivocadas y seguramente diga alguna burrada, si es asi, agradeceria que alguien que sepa mas me corrija.

    el primer problema que le veo a usar la bbdd como sitio donde se hace la logica de negocio es la dificultad para saber que se esta haciendo exactamente, en proyectos mas o menos pequenios la cosa puede ser facil de seguir, pero en un proyecto grande con cientos de tablas, se complica bastante...

    el segundo, el rendimiento, ya he estado en algun proyecto donde el principal cuello de botella estaba en la base de datos (normalmente, al intentar optimizar una aplicacion, intento empezar por la base de datos y terminar en el gui), recuerdo sobre todo una pagina que presentaba informes (relativamente sencillos) y que tuvimos que hacer maravillas para que la cosa fuera mas o menos rapida (al principio, las querys tardaban una media hora, las redujimos a unos 5 minutos de media), el meter mas logica de negocio alli creo que lo unico que haria seria empeorar esta situacion.

    tercero, hay cosas bastante comunes que creo que serian bastante dificiles de implementar (sistemas de cache, transacciones distribuidas en varias bbdd...) no creo que sean imposibles, sin embargo complicarian mucho tanto la logica como el proceso, afectando, otra vez, al rendimiento.

    cuarto, el pl/sql, o al menos lo que conozco de el, me parece bastante limitado, le faltan funcionalidades que te ofrece un lenguaje de programacion, en cuanto a meter codigo en base de datos (conozco el caso de oracle y java), mis pruebas dieron como resultado que ese codigo tardaba mas en ejecutarse que en la maquina virtual (esto puede ser algo puntual de la aplicacion que estuvimos analizando, sin embargo, yo personalmente lo dudo)

    en cuanto a la impedancia de la que hablas, alguna vez me he encontrado que un modelo muy simple en orientacion a objetos, en modelo relacional tiene una complejidad excesiva, afortunadamente no parece ocurrir muy a menudo, pero en este caso especifico al final resulto mas facil y sencillo usar una base de datos orientada a objetos (usamos db40 [db4o.com])

    en cualquier caso, el ORM me parece un gran avance y desde que descubri Torque [apache.org] hace ya unos anitos, siempre he intentado usar soluciones de ese tipo (primero Torque y luego iBatis [apache.org] o Hibernate [hibernate.org] dependiendo de las necesidades y la aplicacion)
    --

    Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
    • ORM y db4o de mig21 (Puntos:1) Miércoles, 08 Febrero de 2006, 10:38h
      • Re:ORM y db4o de sammael (Puntos:2) Miércoles, 08 Febrero de 2006, 11:54h
  • ¿Y para python?

    (Puntos:2)
    por strider2003 (11627) el Miércoles, 08 Febrero de 2006, 11:46h (#693075)
    ( http://condottierigame.net/ | Última bitácora: Lunes, 23 Mayo de 2011, 19:00h )

    Precisamente estoy teniendo muchos problemas con este tema, y por eso agradezco especialmente el enlace a db4o en el comentario de arriba.

    En mi caso, quiero rediseñar una aplicación y quisiera hacerlo con Python, ya que se Python pero no Java. Para Python he encontrado un par de frameworks para mapear objetos, pero ninguna base de datos orientada a objetos. ¿Conoceis alguna oodb para python? ¿Conoceis algún proyecto sencillo correctamente escrito en python que use una base de datos y que pueda estudiar?

    Tengo la impresión de que la solución será aprender Java, que tampoco viene mal.

    --
    "La ilusión es el primero de los placeres." Voltaire.
    • Re:¿Y para python?

      (Puntos:4, Interesante)
      por sammael (16347) el Miércoles, 08 Febrero de 2006, 12:12h (#693090)
      ( http://barrapunto.com/ | Última bitácora: Lunes, 24 Febrero de 2014, 10:03h )
      lo que a ti te pasa con java, a mi me pasa con python, es decir, se que existe, he visto algunas cosas, pero nada mas ;)

      sin embargo, una breve busqueda [google.ie] da varios links que parecen interesantes para lo que preguntas, precisamente el primer resultado [python.org] parece una respuesta justo a lo que preguntas

      alli hablan de la base de datos de plone, que al parecer se puede usar sin el resto de el... tambien dice que por alli estan los creadores de python, asi que supongo que si hay algun programa bien escrito, sera este :D

      en cualquier caso, suerte!
      --

      Dale fuego a un hombre y estara caliente un dia, prendele fuego y estara caliente el resto de su vida.
      [ Padre ]