Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_АКОБМИ.pdf
Скачиваний:
176
Добавлен:
17.05.2015
Размер:
1.95 Mб
Скачать

Рис 2.7 Множественные и тренарные связи

2.3.1.1Целостность данных

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

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

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

Теперь поговорим о внешних ключах. Стоит иметь в виду, что если отношение С связывает отношения А и В, то оно должно включать внешние ключи, соответствующие первичным ключам отношений А и В, что представлено на рис. 2.8. Таким образом, при рассмотрении проблемы выбора способа связи отношений в БД возникает вопрос о том, каковы же должны быть внешние клю-

107

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

Рис. 2.8. Внешние ключи

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

операция каскадируется - то есть удаление кортежей в отношении приводит к удалению соответствующих кортежей в связанном отношении. Например, удаление информации о фамилии, имени и т. п. сотрудника в одном отношении приводит к удалению информации о его заработной плате в другом;

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

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

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

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

оего заработной плате;

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

108