Основне призначення баз даних полягає в тому, щоб зберігати і надавати інформацію про реальний світ. Для представлення цієї інформації в базі даних використовуються звичні для програмістів типи даних - стрічкові, чисельні, логічні і т.п. Однак у реальному світі часто зустрічається ситуація, коли дані невідомі. Наприклад, місце проживання або дата народження людини можуть бути невідомі (база даних розшукуваних злочинців). Якщо замість невідомої адреси доречно було б вводити порожній рядок, то що вводити замість невідомої дати? Відповідь - порожня дата - не цілком задовільна, тому що найпростіший запит "видати список людей у порядку зростання дат народження" дасть зазделегідь неправильну відповідь.
Для того щоб обійти проблему неповних або невідомих даних, у базах даних можуть використовуватися типи даних, поповнені так називаним null-значенням. Null-значення - це, власне, не значення, а якийсь маркер, який показує, що значення невідоме.
Таким чином, у ситуації, коли можлива поява невідомий або неповний даних, розроблювач має на вибір два варіанти.
Перший варіант полягає в тому, щоб обмежитися використанням звичайних типів даних і не використовувати null-значення, а замість невідомих даних вводити або нульові значення, або значення спеціального виду - наприклад, домовитися, що рядок "АДРЕСА НЕВІДОМА" і є ті дані, які потрібно вводити замість невідомої адреси. У будь-якому випадку на користувача (або на розроблювача) лягає відповідальність за правильне трактування таких даних. Зокрема, може знадобитися написання спеціального програмного коду, що у потрібних випадках "виловлював" би такі дані. Проблеми, що виникають при цьому очевидні - не всі дані стають рівноправні, потрібен додатковий програмний код, що "відслідковує" цю нерівноправність, у результаті чого ускладнюється розробка і супровід додатків.
Другий варіант полягає у використанні null-значень замість невідомих даних. Хоча цец підхід проглядається як більш природніший, однак зобумовлює менш очевидні і більш глибокі проблеми. Проблемою, що найбільш кидається в очі є необхідність використання тризначної логіки при оперуванні з даними, що можуть містити null-значення. У цьому випадку при неакуратному формулюванні запитів, навіть самі природні запити можуть давати неправильні відповіді. Є більш фундаментальні проблеми, зв'язані з теоретичним обґрунтуванням коректності введення null-значень, наприклад, незрозуміло взагалі, чи входять null-значення в домени чи ні.
Докладне обговорення проблем використання null-значень виходить за межі даної роботи. Можна тільки сказати про те, що це питання в теорії реляційних баз даних остаточно не вирішене. Основоположник реляційного підходу Кодд вважав null-значення невід'ємною частиною реляційної моделі. К. Дейт, один з найбільших теоретиків реляційної моделі виступає категорично проти null-значень.