--- El vie 25-jul-08, Alvaro Herrera <[EMAIL PROTECTED]> escribió:
> De: Alvaro Herrera <[EMAIL PROTECTED]>
> Asunto: Re: [pgsql-es-ayuda] normalizacion
> A: "José Fermín Francisco Ferreras" <[EMAIL PROTECTED]>
> 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 >¡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