Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Неделя 04 Лекция 1 (6).doc
Скачиваний:
1
Добавлен:
13.11.2019
Размер:
160.77 Кб
Скачать

6.3. Целостность сущностей.

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

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

По определению, первичный ключ — это минимальный идентификатор, который используется для уникальной идентификации кортежей. Это значит, что никакое подмножество первичного ключа не может быть достаточным для уникальной идентификации кортежей. Если допустить присутствие определителя NULL в любой части первичного ключа, это равноценно утверждению, что не все его атрибуты необходимы для уникальной идентификации кортежей, что противоречит определению первичного ключа. Например, поскольку Code является первичным ключом отношения BookAuthors, то нельзя допустить вставку в отношение BookAuthors кортежа с определителем NULL в атрибуте Code.

6.4. Ссылочная целостность.

Второе ограничение целостности касается внешних ключей.

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

Например, атрибут AuthorCode в отношении Books является внешним ключом, который ссылается на атрибут Code базового отношения BookAuthors. Система должна предотвращать любые попытки создать запись с информацией об авторе книги до тех пор, пока в отношении BookAuthors не будет создана запись, содержащая сведения о нем.

6.5. Корпоративные ограничения целостности.

Корпоративные ограничения целостности – это дополнительные правила поддержки целостности данных, определяемые пользователями или администраторами базы данных.

Например логично сделать так, чтобы читатели имели доступ только к списку книг которые имеются в библиотечных фондах и к информации о том, когда и какие книги они брали. С другой стороны читатель не может смотреть информацию о том какие книги брали другие читатели библиотеки. Библиотекари же в данной редакции базы данных ограничений к информации не имеют. Данные аспекты будут рассмотрены подробнее, когда пойдет речь о защите данных, в том числе и от несанкционированного доступа.

6.6. Хранимые процедуры в субд InterBase.

6.6.1. Понятие хранимой процедуры.

Хранимая процедура - это модуль, написанный на процедурном языке InterBase и хранящийся в базе данных как метаданные (то есть как данные о данных). Хранимую процедуру можно вызывать из приложения.

Существует две разновидности хранимых процедур:

  • процедуры выбора;

  • процедуры действия.

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

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

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

Преимущества использования хранимых процедур:

  • способность одной процедуры, расположенной на сервере, совместно использоваться многими приложениями;

  • разгрузка приложений клиента путем переноса части кода на сервер и вследствие этого – упрощение клиентских приложений;

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

  • улучшенные характеристики выполнения, связанные с тем, что хранимые процедуры выполняются сервером, что приводит, в частности, к уменьшению сетевого трафика.