11 de julio de 2011

¿Que es un valor NULL entre amigos?

Versión original: What's a NULL amongst friends?
http://weblogs.foxite.com/jimbooth/archive/2007/03/16/3458.aspx
Autor: Jim Booth
Traducido por: Luis María Guayán

NULL, ese valor de datos que sigue estando en el camino. ¿Cómo me libero de lo valores NULL? ¿Cómo es que NULL no es igual a NULL? ¿Suenan familiares estas preguntas?

NULL es un concepto muy importante en bases de datos relacionales, pero también es una molestia en el trasero cuando es permitido y/o usado inadecuadamente.

Simplemente decir NULL significa que "no sé cual es este valor". Si hace la pregunta si el valor de no sé es igual el valor de no sé, la única respuesta lógica es no sé.

¿Por qué NULL es tan molesto? Porque es permitido en lugares donde no debería ser permitido. El valor real de los NULL está en la situación donde es importante saber cuando el valor de un campo es desconocido, a diferencia de sólo 0 ó una cadena vacía.

Tome el ejemplo de un campo de código postal. Si el campo es una cadena vacía, entonces es obvio que el valor del código postal es desconocido, así que no hay realmente ninguna razón de permitir NULL en un campo de código postal. Uno puede simplemente proveer como valor por defecto una cadena vacía y terminar con esto. Esto quita la necesidad de ocuparnos de los valores NULL en ese campo, porque estos valores no estarán nunca allí.

Por otra parte imagine una aplicación de seguimientos de condiciones meteorológicas por un período de tiempo. Hay un campo para la temperatura y ese valor realmente puede ser 0. También puede haber una entrada en la tabla donde la temperatura no fue registrada y por lo tanto su valor es desconocido. ¿Cómo puede observar la diferencia entre una temperatura de 0 y una temperatura desconocida? Uso NULL. NULL significa que no sé (la temperatura no fue registrada). Hábilmente NULL evitará que los cálculos de la temperatura media sean incorrectos tratando una temperatura no medida como si fuera medida como 0. Por supuesto una vez que permite NULL en el campo, debe ocuparse de la posibilidad de que este valor esté allí. Si suma un campo en una tabla de 1.000.000 de registros donde solo un registro tiene NULL, la suma será NULL, entonces tiene que asegurarse de excluir los valores NULL en la suma.

De esta manera, al final ¿Es malo tener un valor NULL en un campo? No si es necesario por el diseño de aplicación, pero sí, si está allí simplemente porque no se tomó el tiempo para no permitirlo y proporcionar un valor por defecto.


No hay comentarios. :

Publicar un comentario