Ir al contenido principal

Normalizar o no normalizar, he ahí el dilema

Vía debugmodeon llego a un articulo que habla acerca de si se debe normalizar o no, aquí mis impresiones al respecto.

Creo que la normalización le proporciona elegancia y cohesión a nuestras entidades.
Resguarda la integridad de las entidades y proporciona seguridad a la hora de actualizar o eliminar entidades.

Pero que pasa con el bendito asunto de los joins, si una tabla la descompongo en 5 y luego tengo que hacer 3 consultas con 3 joins cada una, en vez de solo una pinche consulta, algo se nos esta complicando, no?
Una solución comúnmente adoptada por los DBA's es crear vistas que una virtualmente esas entidades, para realizar las consultas, pero lo malo es que estas vistas decrementan el desempeño del servidor, pues son mas pesadas tanto en memoria como en disco y su gestión puede ser un poco dolor de cabeza. (que pasa si agrego o elimino campos o entidades?)

En la minería de datos o en entornos distribuidos donde tengo una tabla en una base de datos y alguna tabla relacionada en otra base de datos distinta en un diferente servidor, resulta inútil o tan siquiera posible realizar la normalización.

Parece que en grandes cantidades de datos o en altísima recurrencia, desnormalizar un poco, puede ser útil.

A mi me parece que la normalización va de la mano con el sentido común, quiero decir, no todas las bases de datos tienen que ir hasta la ultima norma, a veces con cumplir 1 o 2, pueden obtenerse beneficios de ambos enfoques.

Saludos y por cierto feliz año 2009

Comentarios

Entradas más populares de este blog

Pasos para remover Postgresql 8.3 en MAC OS

Tomado de: http://forums.enterprisedb.com/posts/list/1437.page In Mac OSX: (Assuming Default Locations) Via uninstaller: 1) In the installation directory, there will be a uninstall-postgresql.app file will be there, executing (double clicking) that will uninstall the postgresql installation. Manual Uninstallation: 1) Stop the server sudo /sbin/SystemStarter stop postgresql-8.3 2) Remove menu shortcuts: sudo rm -rf /Applications/PostgreSQL 8.3 3) Remove the ini file sudo rm -rf /etc/postgres-reg.ini 4) Removing Startup Items sudo rm -rf /Library/StartupItems/postgresql-8.3 5) Remove the data and installed files sudo rm -rf /Library/PostgreSQL/8.3 6) Delete the user postgres sudo dscl . delete /users/postgres

Enrique Bunbury - 3 de Octubre 2009 - Heredia CR

Via periodico la nacion, me entero de este conciertazo: http://www.nacion.com/viva/2009/julio/29/viva2042768.html Ah esperar mas detalles y la venta de la entradas, "Para solo si me perdonas ..." EDIT ..... Via http://www.enriquebunbury.com/hellville.aspx (gracias a andres por su post) venta anticipada: Entradas a la venta a partir del 13 de agosto en: www.costaricaticket.com Por ahi estare anunciando, el 13 si las estan vendiendo!

Impensando acerca de las referencias en Java

Fue hace ya algún tiempo que pase un rato discutiendo con algunos compañeros acerca de si existe o no el paso por referencia; el discurso fue mucho hacia que en Java el comportamiento, en el supuestamente pasamos por referencia un objeto y por valor los objetos primitivos creo mucha polémica. Para ubicarnos en contexto veamos el siguiente ejemplo. public static void main(String[] args) { int value = 10; changeValue(value); System.out.println("value = " + value); User user = new User(); Name name = new Name(); user.setName(name); name.setName("jsanca"); name.setLastName("XXX"); user.setPassword("123queso"); System.out.println("user: " + user.getName().getName() + ", " + user.getName().getLastName() + ", " + user.getPassword()); changeValue1(user); System.out.println("user: " + user.getName().getName() + ", " + user.getName().getLastName() + ", " + user.ge...