Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по курсу ИСиТ.docx
Скачиваний:
6
Добавлен:
07.02.2024
Размер:
1.07 Mб
Скачать

Лекция № 15 Ограничения целостности данных Назначение

Ограничения позволяют задать метод, с помощью которого компонент Database Engine автоматически обеспечивает целостность базы данных. Microsoft SQL Server предоставляет два механизма для реализации бизнес-правил и обеспечения целостности данных: ограничения и триггеры.

Типы ограничений целостности данных

Планирование и создание таблиц требует указания допустимых значений для столбцов и определения способов принудительного обеспечения целостности данных в них. SQL Server предоставляет следующие механизмы для принудительного обеспечения целостности данных в столбце.

  • Определения DEFAULT значений

  • Разрешение значений NULL

  • Ограничения PRIMARY KEY

  • Ограничения FOREIGN KEY

  • Ограничения UNIQUE

  • Ограничения CHECK

Ограничения задают правила допустимости определенных значений в столбцах и представляют собой стандартный механизм обеспечения целостности. Оптимизатор запросов также использует определения ограничений для построения высокопроизводительных планов выполнения запросов.

Определение default значений

Задает значение по умолчанию, которым Database Engine будет заполнять столбец, если при вставке строки для этого столбца значение не указано. Значение по умолчанию могут быть любым выражением, результат которого является константой, например собственно константой соответствующего типа или встроенной функцией.

Значения по умолчанию создаются с помощью ключевого слова DEFAULT инструкции CREATE TABLE. При этом константное выражение будет присвоено столбцу как значение по умолчанию.

В следующем примере создается таблица, в которой используются различные типы выражений по умолчанию. Здесь объект по умолчанию, назначенный столбцу, создается и связывается со столбцом. Затем производится тестовая вставка данных без указания значений для столбцов со значениями по умолчанию, а также выборка этой тестовой строки для проверки того, что были использованы все значения по умолчанию.

CREATE TABLE test_defaults

(date_ins datetime DEFAULT getdate(), --Preferred default definition

mathcol smallint DEFAULT 10 * 2, --Preferred default definition

char2 char(3) DEFAULT 'xyz') --Preferred default definition;

Ограничение not null

Указывает, что в столбце недопустимы значения NULL.

Допустимость значения NULL в столбце определяет, могут ли строки таблицы содержать значения NULL для этого столбца. Значение NULL отличается от нуля (0), пробела или символьной строки нулевой длины, например "". Значение NULL обозначает, что поле не было заполнено. Присутствие NULL, как правило, подразумевает, что значение неизвестно или неопределенно.

Когда в таблицу вставляется строка без указания значения для столбца, допускающего значения NULL, компонент Database Engine присваивает ему значение NULL, если отсутствует определение DEFAULT или объект по умолчанию. Столбец, определенный с помощью ключевого слова NULL, также поддерживает явно заданное пользователем значение NULL, независимо от типа данных и наличия соответствующего значения по умолчанию. Значение NULL не следует заключать в кавычки, так как в этом случае оно будет рассматриваться как символьная строка "NULL".

Запрет значений NULL в столбце обеспечивает целостность данных, гарантируя, что столбец в строке будет всегда содержать данные. Если значения NULL запрещены, то пользователь, заполняя таблицу данными, должен ввести значения в столбцы, иначе строка таблицы не будет записана в базу данных.

Соседние файлы в предмете Информатика