Могут ли простые атрибуты иметь нулевые значения?
Я понимаю, что ключ-кандидат не может иметь значения NULL. Но ключ-кандидат сам по себе может быть комбинацией многих атрибутов, которые называются простыми атрибутами. Могут ли эти простые атрибуты иметь значение NULL?
С Уважением,
2 ответа
Основной атрибут Атрибут, который отображается как атрибут для некоторого ключа-кандидата. (Это не должен быть первичный ключ или даже какой-либо интересующий ключ.)
Простые атрибуты являются частью ключа-кандидата. Ключ-кандидат, как следует из названия, является кандидатом на первичный ключ. Это означает, что ключ-кандидат может стать первичным ключом, если требуется.
Теперь, если вы помните, любой первичный ключ не может быть нулевым. Таким образом, по определению, простой атрибут не может быть нулевым. Если он нулевой, он перестает быть основным атрибутом.
Вот объяснение.
Если у вас есть составной ключ кандидата, скажем
CK1(P1, P2)
P1 и P2 являются основными атрибутами. Вы можете установить P1 или P2 как ноль, потому что нет никаких ограничений на простые атрибуты, кроме атрибутов первичного ключа.
Так,
CK1(P1, P2=null)
Теперь CK1 не может быть первичным ключом, следовательно, больше не является ключом-кандидатом и, следовательно, P2 больше не является основным атрибутом.
Я считаю, что это зависит от базы данных, которую вы используете.
Например, вам не нужно делать это явно в MySQL. Это определено в руководстве:
PRIMARY KEY - это уникальный индекс, в котором все ключевые столбцы должны быть определены как NOT NULL. Если они явно не объявлены как NOT NULL, MySQL объявляет их так неявно (и молча).