The Database Design Resource Center

NULLs have meaning, IMHO

by Tomislav Bijelonjic
(Zagreb, Croatia)

I'll give you just one example where NULL _IS_ a value (and has defined meaning):

Let's say you have a table "Order"
with columns: OrderID (int), CustomerID (int), OrderedOn (date), DeliveredOn (date)

If you allow DeliveredOn to be NULL, then you don't need another column "IsDelivered",
because if it is Null - that means it is NOT yet delivered, and you save database space,
because you WILL NEED Delivery date anyway, but you don't NEED "IsDelivered" field.

One field less - database is a little bit faster.

In computers, it is used Binary sistem (base 2), but ideal numeric base is "base e" (http://en.wikipedia.org/wiki/Natural_logarithm), which is aprox. 2,72 (almost 3!).
When being asked, someone can shortly answer: yes/no/maybe.

NULL's "uncertainty" is information for itself - "I don't know". If you say YES or NO, you would be lying.

So, NULL is mandatory, because it's information (value) is "something is missing".

Click here to read or post comments

Join in and write your own page! It's easy to do. How? Simply click here to return to On NULL values.


Exclusive interviews with:
Steven Feuerstein, PLSQL expert
Donald Burleson, Top IT consultant


Free eBook

Subscribe to my newsletter and get my ebook on Entity Relationship Modeling Principles as a free gift:


What visitors say...

"I just stumbled accross your site looking for some normalization theory and I have to say it is fantastic.

I have been in the database field for 10+ years and I have never before come across such a useful site. Thank you for taking the time to put this site together."

Mike, USA

Read more Testimonials

Database Normalization eBook:


Database Normalization eBook



Copyright © www.databasedesign-resource.com / Alf A. Pedersen
All rights reserved.
All information contained on this website is for informational purposes only.
Disclaimer: www.databasedesign-resource.com does not warrant any company, product, service or any content contained herein.

Return to top

Copyright acknowledgement note:

The name Oracle is a trademark of Oracle Corporation.
The names MS Access/MS SQL Server are trademarks of Microsoft Corporation.
Any other names used on this website may be trademarks of their respective owners, which I fully respect.