Изменения

Перейти к: навигация, поиск

Неполные данные и null

854 байта добавлено, 12:50, 20 декабря 2021
м
Нет описания правки
== Что означает null ==
Представим себе таблицы студентов в БД университета ИТМО * ''Students(StudentId, StudentName, GroupId)'' и * ''Groups(GroupId, GroupName)''. Что может означать тот факт, что у студента '''null''' в столбце GroupId?
* Значение неизвестно (нет информации, из какой группы студент)
* Значение неверно (студент учится в какой-то группе, но эта группа не представлена в БД)
* Значение еще/уже не существует (например, студент был зачислен, но еще не распределен в группу или уже отчислен)
* Значение не имеет смысла (студент из другого университета, который пришел с какими-то целями в ИТМО)
* Значение недоступно (недостаточно прав узнать группу)
Вполне возможно, что возникнет необходимость различать разные виды того, что значение в том или ином смысле отсутствует
== Можно ли обойтись без null? ==
Как представить кортеж с неопределенными частями в нашем случае?
* Разбить на 2 группы и сделать необязательную связь 1:1. В таком случае, в дополнительной таблице будет запись ''(StudentId, GroupId)'' тогда и только тогда, когда у студента определена группа
=== Где еще появляется null ===
* Результаты внешних соединений
* Результаты множественных операций
Оказывается, что в некоторых случаях без null не обойтись и надо уметь с ним работать
== Операции с null ==
todo=== Тернарная логика ======= Логические операции ====
== Null и SQL ==
todo
71
правка

Навигация