Ana tiene un poco más claro el concepto de relación y las características de los atributos. Sabe que éstos se definen en un dominio. Pero ¿qué ocurre si no conozco algún valor de un dato? ¿Si en la tabla de usuarios estoy pidiendo que se guarde el sexo y el jugador no quiere decirlo? ¿Qué puede ocurrir? Si se permite que ese dato no sea obligatorio lo que me quedaría sería un dato vacío de información.
Vamos a ver que eso es posible y que ese valor tiene una denominación propia.
¿Qué sucede si al guardar los datos de los Usuarios hay algún dato que no tengo o no necesito guardarlo porque no corresponde?
Independientemente del dominio al que pertenezca un campo, éste puede tomar un valor especial denominado NULO (NULL en inglés) que designará la ausencia de dato.
Cuando por cualquier motivo se desconoce el valor de un campo, por ejemplo, desconocemos el teléfono del usuario, o bien ese campo carece de sentido (siguiendo con el mismo ejemplo, puede que el usuario no tenga teléfono), podemos asignar a ese campo el valor especial NULO.
Cuando trabajamos con claves secundarias el valor nulo indica que la tupla o fila no está relacionada con ninguna otra tupla o fila. Este valor NULO es común a cualquier dominio.
Pero ten en cuenta una cosa, no es lo mismo valor NULO que ESPACIO EN BLANCO.
Tampoco será lo mismo valor NULO que el valor CERO.
Un ordenador tomará un espacio en blanco como un carácter como otro cualquiera. Por tanto, si introducimos el carácter "espacio en blanco" estaríamos introduciendo un valor que pertenecería al dominio texto y sería distinto al concepto "ausencia de valor" que sería no incluir nada (nulo).
Este valor se va a utilizar con frecuencia en las bases de datos y es imprescindible saber cómo actúa cuando se emplean operaciones lógicas sobre ese valor. En la lógica booleana tenemos los valores VERDADERO y FALSO, pero un valor NULO no es ni verdadero ni falso.
Cuando necesitemos comparar dos campos, si ambos son nulos no podremos obtener ni verdadero ni falso. Necesitaremos definir la lógica con este valor. Veamos los operadores lógicos más comunes y sus resultados utilizando el valor nulo:
VERDADERO Y (AND) NULO daría como resultado NULO.
FALSO Y (AND) NULO daría como resultado FALSO.
VERDADERO O (OR) NULO daría como resultado VERDADERO.
FALSO O NULO daría como resultado NULO.
NO (NOT) NULO daría como resultado NULO.
En todas las bases de datos relacionales se utiliza un operador llamado IS NULL (ES NULO) que devuelve VERDADERO si el valor con el que se compara es NULO.
Es una lógica de conjuntos y nos sirve, principalmente, para definir formas de intersección entre conjuntos
Para saber más
El
uso del valor nulo es un tema que da mucho que hablar, aquí puedes
leer sobre ello: