Saturday, July 26, 2008

Re: [pgsql-es-ayuda] normalizacion

--- El vie 25-jul-08, Alvaro Herrera <alvherre@alvh.no-ip.org> escribió:

> De: Alvaro Herrera <alvherre@alvh.no-ip.org>
> Asunto: Re: [pgsql-es-ayuda] normalizacion
> A: "José Fermín Francisco Ferreras" <josefermin54@hotmail.com>
> Cc: "foro postgresql" <pgsql-es-ayuda@postgresql.org>
> Fecha: viernes, 25 julio, 2008, 10:55 am
> José Fermín Francisco Ferreras escribió:
> >
> > Hola, quisiera saber su opinión sobre el asunto q
> hacen muchos
> > programadores (los cuales tambien diseñan las base d
> datos) y es q en
> > la tabla factura guardan tanto el codigo de cliente,
> como el nombre y
> > apellidos del cliente. Cómo todos ustedes saben eso
> rompen con las
> > reglas d normalización.
> >
> > Q opinan uds. sobre ese asunto, a q se deberá esto??
>
> A que la mayoría de los programadores no tiene idea de
> diseñar
> correctamente una base de datos :-)
>
> --
> Alvaro Herrera


Quiero expresar mi humilde opinion en este theread.

Digo humilde, por que me considero un Pato, no por aquello de un paso una caga..., si no por el hecho de que el Pato no es un crack en el Agua en eso le gana un pez, pero el pato nada y vuela, no como un aguila, pero tambien anda en la tierra, no como la libre, ahora todos son crack en su medio, pero lo sacan de el y no sobreviven.

Yo como el pato, oficio de DBA, Programador, trabajo en redes y salvo en hardware en lo demas creo tener solidos conocimiientos. NO soy un crack.

Alvaro me parece que lo que hace a un buen programador es justamente lo contrario, por lo menos yo que soy unipersonal en mi empresa, para mi lo mas importante es un buen MER, el otro es un escupe codigo, pero no un progamador.

Y lo que dice mi amigo solo lo explico por tres motivos.

1 El programador que hace eso POR IGNORANCIA, ese que deberia dedicarse a tomar un curso de carpintero, mecanica automotirz o cualquier otra cosa que lo aleje de su profesion.

Si me decis que en visual fox con DBF haces esto por que la herramienta es mala, no es escusa cambia de herramienta y almacena tus datos en una base de datos y si queres programa en Visual Fox, pero no uses DBF, por lo menos no para algo serio que para sacar buen rendimiento tenes que ser chancho.

2 Repite esos datos, en tablas que le sirven como vistas materializadas, para usarlas quiza despues de manera eficiente en consultas cartesianas o referencias cruzadas como gusten llamarlas. Bien pero eso lo hacen en tablas que no son operativas en el sistema funcional, si no que son reservadas para tareas de consulta estadistica o con otros propositos posteriores a las funciones basicas del sistema.

3 Un mal entendimiento de la desnormalizacion, puesto que para desnormalizar algo, primero hay que saber mucho de normalizacion, y desnormalizar es el ultimo recurso para dar una solucion ultima, requiere mas estudio que la anterior normalizacion. por que si no no estamos desnormalizando, si no que estamos haciendo cosas anormales.

Para que usamos PostgreSQL que es una excelente herramienta para no tener que hacer chanchadas, si lo que vamos hacer son chanchadas.

Una cosa que me encanta de PostgreSQL, es justamente su solvencia que me permite con buen rendimiento, mantener en excelente estado la integridad referencial, sin obviar nada. Incluso algo que me parece genial, no tiene vistas actualizables, cosa que en principio critique ya que en SQL Server si la tienen, pero me da la ventaja de crear una vista que se pueda borrar un registro o insertarlo, pero no permitir un update, cosa que resuelve uno de los puntos del theread donde alguien expresa que no quiere modificar los datos de una factura emitida, bueno que use un tipo de vista asi en sus sistemas y nadie va a poder modificar ese dato.

Otra cuestion que toca el theread es que en una universidad estan educando a sus alumnos en el sentido de que no importa el modelo de datos si no el de negocios.

Esto me parece que esta planeteado como una contradiccion absurda, puesto que el modelo de datos debe representar el modelo de negocio y del modelo de datos el negocio debe aprender.

Creo que realizando un MER, se pueden detectar procedimientos ineficientes en los negocios.

Ademas los procedimientos son mas peregnes que los datos, si uno se basa para programar en la necesidad que de los procedimientos de un determinado comercio, seguro que va a repetir con su sistemas los mismos errores con mayor velocidad y ademas va a tener que reprogramar cuando un procedimiento del comercio cambia, en cambio los datos que se manejan en una empresa son mas duraderos que sus procedimientos, por eso es mejor basarse en el MER y despues si se quiere enfrentarlo al diagrama de fuljo, antes de iniciar el desarrollo.

No hay modelo de datos que bien elaborado tenga que dejar la normalizacion para cumplir con algo, lo que lleva a la desnormalizacion son otras consideraciones, consideraciones que no deberian partir de los escasos recursos que tengo, o del lenguaje que decidi utilizar.

Espero que me perdonen la chachara, pero el hilo me intereso bastante y me parece que para usar PostgreSQL con malas practicas, mejor usen mysql, access o dbf que por lo menos tendran una justificacion, pero no usen cosas serias como PostgreSQL, Oracle o el mismo SqlServer.

Atte.
Gabriel Colina

____________________________________________________________________________________
Yahoo! MTV Blog & Rock &gt;¡Cuéntanos tu historia, inspira una canción y gánate un viaje a los Premios MTV! Participa aquí http://mtvla.yahoo.com/
--
TIP 4: No hagas 'kill -9' a postmaster

No comments: