NULL y NO NULL

10/07/2008 - 18:10 por juan | Informe spam
Hola como podeis observar por la pregunta novato % aparte de int y money que
no admiten NULL, que es lo mejor para diferenciar en admitir NULL o NO NULL.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
10/07/2008 - 18:57 | Informe spam
Juan,

No entiendo tu pregunta.

aparte de int y money que no admiten NULL



create table #t (
c1 int NULL,
c2 money NULL
)

insert into #t default values

select * from #t

drop table #t
GO

Usar una restriccion para que cierta columna acepte o null o no, es un
requerimiento que debe venir de parte de el negocio. Por ejemplo, supongamos
que quieres guardar la informacion sobre el genero de una persona, "F-
femenino", "M - masculino", que pasa si no tienes esa informacion, pues si el
negocio esta de acuerdo en que se use 'U - no conocido' entonces esta bien,
pero si no desea ningun valor predefinido, entonces podemos hacer que la
columna acepte valor null para esos casos, y tambien esta bien. En otras
palabras, no existe una regla que aplica a todo caso, cuando hablamos de
nullabilidad (disculpen la palabra si es que esta no existe en nuestro
diccionario).


AMB


"juan" wrote:

Hola como podeis observar por la pregunta novato % aparte de int y money que
no admiten NULL, que es lo mejor para diferenciar en admitir NULL o NO NULL.



Respuesta Responder a este mensaje
#2 Alfredo Novoa
10/07/2008 - 21:57 | Informe spam
Hola Alejandro,

El Thu, 10 Jul 2008 09:57:00 -0700, Alejandro Mesa escribió:

Usar una restriccion para que cierta columna acepte o null o no, es un
requerimiento que debe venir de parte de el negocio.



Todo lo contrario. Es una decisión del diseñador de la base de datos
independiente de las especificaciones funcionales.

Por ejemplo, supongamos
que quieres guardar la informacion sobre el genero de una persona, "F-
femenino", "M - masculino", que pasa si no tienes esa informacion, pues si el
negocio esta de acuerdo en que se use 'U - no conocido' entonces esta bien,



Pero "el negocio" no tiene por que saber lo que usan internamente los
sistemas informáticos. A los usuarios les trae sin cuidado como organices
la base de datos siempre que las aplicaciones muestren lo que ellos
esperan.

pero si no desea ningun valor predefinido, entonces podemos hacer que la
columna acepte valor null para esos casos,



Los nulos no son valores por que no pertenecen a ningún tipo y no son
iguales a si mismos.

y tambien esta bien. En otras
palabras, no existe una regla que aplica a todo caso, cuando hablamos de
nullabilidad (disculpen la palabra si es que esta no existe en nuestro
diccionario).



Hablamos de anulabilidad que si viene en el diccionario.

http://buscon.rae.es/draeI/SrvltCon...ulabilidad


Saludos
Alfredo
Respuesta Responder a este mensaje
#3 Alejandro Mesa
11/07/2008 - 01:09 | Informe spam
Alfredo,

Si, si viene de el negocio. Cuando "el negocio" dice que se debe de entrar /
almacenar / guardar el numero de la factura y que sin este no se debe
almacenar ninguna otra informacion relacionada, este esta de una forma u
otra, indicando parte de el dominio que esa columna tendra en la base de
datos. Te esta diciendo que no acepta "null value", ni "u- no definido", etc.

Que si cierta informacion o data no es conocida, que se guarde lo que sea
mientras ese valor sea concistente, entonces te dice que la columna puede
tener "null value", "u - indefinido", o lo que el diseñador le de la gana de
poner.

No me refiero al valor null de forma textual, sino que diseñamos basados en
algo desde donde tomamos las reglas y las expresamos de acuerdo al lenguaje,
base de datos, programa, etc que usemos.

Que sea null, nothing, nil, o lo que sea que la base de datos con la que
trabajamos use, me es indiferente. Que "null" no es un valor porque no
pertenece a un tipo en especifico y ademas no es igual a si mismo, tambien me
es indiferente, que la palabra "nullabilidad" no existe en el diccionario de
la lengua española, tambien me es indiferente.


AMB


"Alfredo Novoa" wrote:


Hola Alejandro,

El Thu, 10 Jul 2008 09:57:00 -0700, Alejandro Mesa escribió:

> Usar una restriccion para que cierta columna acepte o null o no, es un
> requerimiento que debe venir de parte de el negocio.

Todo lo contrario. Es una decisión del diseñador de la base de datos
independiente de las especificaciones funcionales.

> Por ejemplo, supongamos
> que quieres guardar la informacion sobre el genero de una persona, "F-
> femenino", "M - masculino", que pasa si no tienes esa informacion, pues si el
> negocio esta de acuerdo en que se use 'U - no conocido' entonces esta bien,

Pero "el negocio" no tiene por que saber lo que usan internamente los
sistemas informáticos. A los usuarios les trae sin cuidado como organices
la base de datos siempre que las aplicaciones muestren lo que ellos
esperan.

> pero si no desea ningun valor predefinido, entonces podemos hacer que la
> columna acepte valor null para esos casos,

Los nulos no son valores por que no pertenecen a ningún tipo y no son
iguales a si mismos.

> y tambien esta bien. En otras
> palabras, no existe una regla que aplica a todo caso, cuando hablamos de
> nullabilidad (disculpen la palabra si es que esta no existe en nuestro
> diccionario).

Hablamos de anulabilidad que si viene en el diccionario.

http://buscon.rae.es/draeI/SrvltCon...ulabilidad


Saludos
Alfredo

Respuesta Responder a este mensaje
#4 Maxi Accotto
11/07/2008 - 01:39 | Informe spam
Hola, bueno creo que por tu pregunta se vendran unos 200 post :-S. Lo mio
sera corto, la definicion de un null lo debes tomar en medida de la logica
del negocio, como bien explico Ale, no es malo usar nulos, de hecho estan y
no hacen las cosas mas lentas ni nada por el estilo, solo hay que tener
cuidado como se los maneja ya que tienen un tratado especial


Saludos
Maxi Accotto
Microsoft MVP en SQLServer
SQltotalconsulting
-

"juan" escribió en el mensaje de
noticias:g55c9u$733$
Hola como podeis observar por la pregunta novato % aparte de int y money
que no admiten NULL, que es lo mejor para diferenciar en admitir NULL o NO
NULL.

Respuesta Responder a este mensaje
#5 Alfredo Novoa
11/07/2008 - 01:51 | Informe spam
Hola Alejandro,

El Thu, 10 Jul 2008 16:09:00 -0700, Alejandro Mesa escribió:

Si, si viene de el negocio. Cuando "el negocio" dice que se debe de entrar /
almacenar / guardar el numero de la factura y que sin este no se debe
almacenar ninguna otra informacion relacionada, este esta de una forma u
otra, indicando parte de el dominio que esa columna tendra en la base de
datos. Te esta diciendo que no acepta "null value", ni "u- no definido", etc.



Lo que quiero decir es que cualquier información que representes usando
nulos la puedes representar de forma relacional sin usar nulos. Si yo no
quiero usar nulos me da igual lo que diga "el negocio", no los uso y punto.
De hecho casi nunca los uso por muy opcionales que sean los datos.

Que si cierta informacion o data no es conocida, que se guarde lo que sea
mientras ese valor sea concistente, entonces te dice que la columna puede
tener "null value", "u - indefinido", o lo que el diseñador le de la gana de
poner.



Estás completamente equivocado. Lo único que te dice es que tienes que
representar de alguna forma que esa información puede faltar, pero no te
dice como debes hacerlo. Estás confundiendo la especificación con el
diseño, el "que" con el "como".

Que sea null, nothing, nil, o lo que sea que la base de datos con la que
trabajamos use, me es indiferente. Que "null" no es un valor porque no
pertenece a un tipo en especifico y ademas no es igual a si mismo, tambien me
es indiferente, que la palabra "nullabilidad" no existe en el diccionario de
la lengua española, tambien me es indiferente.



Es decir, que dar respuestas completamente incorrectas a las dudas de los
compañeros del foro te es indiferente.


Saludos
Alfredo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida