Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_po_MIUS_gotov_2.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
441.86 Кб
Скачать

Вопрос 31 Реляционная модель данных

Реляционная модель данных состоит из трёх частей: структурной, манипуляционной и целостной. Структурная часть модели представляет собой нормализованное ларное отношение. Выше были рассмотрены именно по­нятия и свойства структурной составляющей реляционной модели БД.

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

В целостной части реляционной модели данных имеется два требова­ния: целостность сущностей и целостность по ссылкам. Конкретно цело­стность сущности заключается в том, что любое отношение должно иметь первичный ключ. Это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений. Для соблюдения цело­стности сущности достаточно гарантировать отсутствие в любом отношении кортежей с одним и тем же значением первичного ключа.

Второе требование целостности (по ссылкам) является более сложным. Как говорилось раньше, атрибуты отношений должны быть атомарными. Это значит, что сложная сущность (сложный объект реального мира) описывает­ся несколькими кортежами нескольких отношений. Изменения в одном из отношений должно вызвать корректировку записей и в других отношениях.

Например, имеются два отношения: "ФАКУЛЬТЕТ" и "СТИПЕНДИЯ". Первое отношение имеет атрибуты "НОМЕР ГРУППЫ", "ЧИСЛО СТУДЕН­ТОВ" (первичный ключ - "НОМЕР ГРУППЫ"), второе - "Ф.И.О. СТУДЕН­ТА", "НОМЕР ЗАЧЁТНОЙ КНИЖКИ", "РАЗМЕР СТИПЕНДИИ", НОМЕР ГРУППЫ" (первичный ключ - "НОМЕР ЗАЧЁТНОЙ КНИЖКИ"). При от­числении студента принадлежащий ему кортеж будет удалён из второго от­ношения. Корректировка первого отношения возможна благодаря имеюще­муся во втором отношении атрибуту "НОМЕР ГРУППЫ". В данном случае атрибут "НОМЕР ГРУППЫ" является внешним ключом.

Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведётся ссылка, должен существовать кортеж, имеющий такой же первичный ключ. В нашем приме ре в отношении "ФАКУЛЬТЕТ" должна быть указана группа, в которой учился этот студент.

С целостностью по ссылкам по сравнению с целостностью сущности дело обстоит несколько сложнее. Если обновляется ссылающееся отношение, надо следить только за тем, чтобы не появились некорректные значения внешнего ключа (в нашем примере необходимо следить за тем, чтобы в от­ношении "СТИПЕНДИЯ" не оказалось студентов несуществующих групп, например других факультетов). Проблемы возникают, если удаляется кортеж из отношения, на которое ведётся ссылка (например, расформировали груп­пу). В этом случае существуют три подхода для поддержания целостности по ссылкам.

Первый подход заключается в том, что запрещается удалять кортеж, на который имеется ссылка (сначала нужно удалить ссылающиеся кортежи или изменить их внешние ключи). В рассматриваемом примере из отношения "ФАКУЛЬТЕТ" можно удалить номер расформированной группы только в том случае, если во всех отношениях, ссылающихся на данное отношение, будут указаны номера групп, в которых продолжат обучение студенты дан­ной группы.

При втором подходе при удалении кортежа, на который имеются ссыл­ки, в отношениях, ссылающихся на удалённый кортеж, внешние ключи авто­матически становятся неопределёнными.

При третьем подходе при удалении кортежа, на который имеются ссылки, удаляются все кортежи других отношений, которые ссылаются на удалённый кортеж. Например, расформировали отдел и всех сотрудников этого отдела уволили.

В современных реляционных СУБД обычно можно выбрать способ поддержания целостности по ссылкам для каждой отдельной ситуации опре­деления внешнего ключа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]