- •Введение
- •1.5. Задание
- •1.6. Ход работы
- •1.6.1. Создание базы данных
- •1.6.2. Регистрация базы данных
- •1.6.3. Подключение к базе данных
- •1.6.4. Удаление базы данных
- •1.6.5. Извлечение метаданных
- •1.6.6. Резервное копирование и восстановление
- •1.7. Отчет о выполнении работы
- •1.8. Контрольные вопросы
- •2.4.2. Домены (Domains)
- •2.5. Задание
- •2.6. Ход работы
- •2.7. Отчет о выполнении работы
- •2.8. Контрольные вопросы
- •3.4.2. Индексы
- •3.5. Задание
- •3.6. Ход работы
- •3.7. Отчет о выполнении работы
- •3.8. Контрольные вопросы
- •4.4.1. Ограничение первичного ключа (Primary key)
- •4.4.2. Ограничения уникальности (Unique)
- •4.4.3. Ограничения внешнего ключа (Foreign keys)
- •4.4.4. Контрольные ограничения (Checks)
- •4.5. Задание
- •4.6. Ход работы
- •4.7. Отчет о выполнении работы
- •4.8. Контрольные вопросы
- •5.4.2. Бизнес-правила
- •5.4.3. Триггеры (Triggers)
- •5.4.4. Исключения (Exceptions) и обработка ошибок
- •5.6. Ход работы
- •5.7. Отчет о выполнении работы
- •5.8. Контрольные вопросы
- •6.4.2. Удаление существующих данных
- •6.4.3. Обновление существующих данных
- •6.5. Задание
- •6.6. Ход работы
- •6.7. Отчет о выполнении работы
- •6.8. Контрольные вопросы
- •7.5. Задание
- •7.6. Ход работы
- •7.7. Отчет о выполнении работы
- •7.8. Контрольные вопросы
- •8.4.2. Модифицируемые представления
- •8.5. Задание
- •8.6. Ход работы
- •8.7. Отчет о выполнении работы
- •8.8. Контрольные вопросы
- •9.4.2. Виды хранимых процедур в InterBase
- •Returns (
- •9.5. Задание
- •9.6. Ход работы
- •9.7. Отчет о выполнении работы
- •9.8. Контрольные вопросы
- •10.4.2. Создание динамической библиотеки с udf
- •Exports
- •Interface
- •10.4.4. Использование udf в базе данных
- •10.5. Задание
- •10.6. Ход работы
- •10.8. Контрольные вопросы
- •11.4.4. Права
-
4.4.1. Ограничение первичного ключа (Primary key)
Это ограничение обозначает, какие поля в таблице единственным образом идентифицируют каждую строку. Добавление ограничения первичного ключа заставляет сервер базы данных гарантировать, что значения, вставленные в поля первичного ключа, будут уникальны внутри таблицы. У таблицы может быть только одно такое ограничение.
Первичные ключи выполняют следующие функции:
-
1. Они служат средством различения отдельных записей.
-
2. Используются в ссылочной целостности.
-
3. При создании первичного ключа автоматически создается индекс, поэтому они ускоряют поиск и сортировку.
Обычно первичные ключи рекомендуется создавать для всех таблиц. Все поля первичного ключа должны быть объявлены NOT NULL.
Пример задания ограничения первичного ключа:
ALTER TABLE Customer ADD CONSTRAINT PK_Customer PRIMARY KEY (Cust_No);
-
4.4.2. Ограничения уникальности (Unique)
Используются для гарантии уникальности одного или нескольких полей записи. Единственное отличие от ограничения первичного ключа – возможность задания для таблицы нескольких таких ограничений.
Пример задания ограничения уникальности:
ALTER TABLE Employee ADD CONSTRAINT Unique_Phone UNIQUE (Phone);
-
4.4.3. Ограничения внешнего ключа (Foreign keys)
Эти ограничения используются для определения связей между таблицами. Они гарантируют соответствие значений полей одной таблицы значениям ключевых полей в другой таблице. Такие ограничения могут предотвратить стирание данных из главной таблицы, на которые имеются ссылки в подчиненной таблице.
При определении внешнего ключа автоматически генерируется индекс.
Пример задания ограничения внешнего ключа:
ALTER TABLE Book ADD CONSTRAINT FK_Book FOREIGN KEY (B_PubNo) REFERENCES Publisher (B_NO);
В отличие от полей первичных ключей, в полях, которые являются внешним ключом, могут допускаться пустые значения. Эта возможность не-обходима для разрешения взаимных ссылок и возможности хранить в таблице иерархические структуры, когда корневые узлы содержат NULL.
-
4.4.4. Контрольные ограничения (Checks)
Это условия, налагаемые на возможные значения полей. Контрольные ограничения гарантируют истинность заданного правила для каждой записи в таблице.
В контрольных ограничениях можно использовать большой набор операторов для проверки вставляемых и изменяемых значений. Полный синтаксис создания контрольного ограничения здесь не приводится из-за своего большого размера. С ним можно ознакомиться в [9] (LangRef.pdf).
При использовании контрольных ограничений следует помнить, что сложные и очень большие условия проверки могут значительно замедлить операции вставки и обновления записей.
Пример контрольного ограничения, которое гарантирует, что значение поля "Num" будет иметь значение от 0 до 4:
ALTER TABLE Property ADD CONSTRAINT Check_Invalid_Number CHECK (Num >= 0 AND Num <= 4);
Контрольные ограничения реализованы при помощи системных триггеров.