русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

NULL-значение


Дата добавления: 2013-12-24; просмотров: 1005; Нарушение авторских прав


 

Иногда требуется возможность обозначить отсутствие информации, которая является необязательной в данном отношении. Например, для отношения Students таким необязательным атрибутом может являться Height (рост студента). Проблему можно решить двумя способами.

1. Использовать специальные значения того же типа данных, что и сам атрибут. Например, атрибут Height имеет тип int, тогда можно использовать –1 для обозначения отсутствия информации о росте студента, а любое другое число будет указывать сам рост.

2. Использовать специальные универсальные маркеры – NULL-значения.

Эдгар Кодд[1] предложил второй вариант, главным преимуществом которого является то, что NULL-значение некоторого атрибута свидетельствует именно о его отсутствии, т.е. это не то же самое, что и число ноль или пустая строка. Однако такие неопределённые значения могут вызвать осложнения при обеспечении целостности БД.

Среди специалистов разделились мнения относительно необходимости этих меток. Э. Кодд считает, что они должны быть неотъемлемой частью БД, а К. Дейт[2], наоборот, полагает, что они даже вредны.

В общем случае в БД для каждого атрибута можно задать, разрешено или не разрешено содержать NULL-значение.

Рассмотрим влияние NULL-значения на различные ключи. С использованием этого значения вводится правило целостности объектов: ни один элемент первичного ключа базового отношения не может быть NULL‑значением. Это правило объясняется следующим: кортежи отношений соответствуют объектам реального мира, следовательно, эти объекты различны, т.е. некоторым образом опознаваемы, а первичные ключи выполняют функцию уникальной идентификации.

Правило обеспечения целостности применимо только:

1) к базовым отношениям, а не вычисляемым (производным);

2) к первичным ключам, а для альтернативных может быть разрешено или запрещено использование NULL-значения.



NULL-значения могут использоваться либо при вставке и изменении записи (для обозначения отсутствия информации) или при каскадном удалении. Например, мы хотим удалить группу, но при этом не удалять студентов этой группы. В этом случае в поле GroupID отношения Students мы можем указать NULL-значение для всех студентов, которые принадлежат удаляемой группе.

 

StudentID Name GroupID BirthDate
Казаков Петр 23.04.1990
Васильев Иван 11.05.1991
Шишкина Дарья 23.09.1991

 

GroupID Name
ПМ-41
ПМ-51

 

После удаления группы ПМ-51, получим следующее состояние отношения Students:

 

StudentID Name GroupID BirthDate
Казаков Петр NULL 23.04.1990
Васильев Иван 11.05.1991
Шишкина Дарья NULL 23.09.1991

 

Краткие итоги. Рассмотрены основные элементы реляционных баз данных, а также вопросы целостности данных. Даны определения первичных и внешних ключей.


[1] Эдгар Ф. Кодд (Edgar F. Codd) (1923-2003) – американский ученый английского происхождения. Долгое время работал в корпорации IBM. Создал основы теории реляционных баз данных. Сформулировал 12 законов аналитической обработки данных и ввел термин OLAP (On-Line Analytical Processing – оперативная аналитическая обработка).

[2] Кристофер Дж. Дейт (Christopher J. Date) (р.1941) – английский ученый, работавший над теорией реляционных баз данных совместно с Э.Коддом.



<== предыдущая лекция | следующая лекция ==>
Правила внешних ключей | Анализ рисков


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.05 сек.