
- •Базы данных
- •Вопрос 29 Основные функции систем управления базами данных
- •Вопрос 30 Реляционные базы данных
- •Базовые понятия реляционных баз данных
- •Фундаментальные свойства отношений
- •Недостатки реляционной модели баз данных
- •Вопрос 31 Реляционная модель данных
- •Вопрос 32 Манипулирование данными
- •Реляционная алгебра
- •Вопрос 33
- •Вопрос 34
- •Вопрос 36 Реляционное исчисление кортежей и доменов
- •Вопрос 38. Состав программного обеспечения информационно-управляющих систем
- •Вопрос 39. Программы организации и контроля вычислительного процесса
- •Вопрос 40. Особенности операционных систем реального времени
- •Вопрос 41. Операционная система реального времени qnx
- •Вопрос 42. Операционная система реального времени "Карусель"
- •Вопрос 43 Программа обработки прерываний
- •Вопрос 44. Программа включения оперативной задачи
- •Вопрос 45. Программа включения карусельной задачи
- •Вопрос 46 Программа start и подпрограмма zagr
Вопрос 31 Реляционная модель данных
Реляционная модель данных состоит из трёх частей: структурной, манипуляционной и целостной. Структурная часть модели представляет собой нормализованное ларное отношение. Выше были рассмотрены именно понятия и свойства структурной составляющей реляционной модели БД.
Манипуляционная часть построена с применением двух математических теорий - реляционной алгебры, основу которой составляет теория множеств, и реляционного исчисления, базирующегося на классическом логическом аппарате исчисления предикатов первого порядка. Манипуляционная часть более подробно будет рассмотрена ниже.
В целостной части реляционной модели данных имеется два требования: целостность сущностей и целостность по ссылкам. Конкретно целостность сущности заключается в том, что любое отношение должно иметь первичный ключ. Это требование автоматически удовлетворяется, если в системе не нарушаются базовые свойства отношений. Для соблюдения целостности сущности достаточно гарантировать отсутствие в любом отношении кортежей с одним и тем же значением первичного ключа.
Второе требование целостности (по ссылкам) является более сложным. Как говорилось раньше, атрибуты отношений должны быть атомарными. Это значит, что сложная сущность (сложный объект реального мира) описывается несколькими кортежами нескольких отношений. Изменения в одном из отношений должно вызвать корректировку записей и в других отношениях.
Например, имеются два отношения: "ФАКУЛЬТЕТ" и "СТИПЕНДИЯ". Первое отношение имеет атрибуты "НОМЕР ГРУППЫ", "ЧИСЛО СТУДЕНТОВ" (первичный ключ - "НОМЕР ГРУППЫ"), второе - "Ф.И.О. СТУДЕНТА", "НОМЕР ЗАЧЁТНОЙ КНИЖКИ", "РАЗМЕР СТИПЕНДИИ", НОМЕР ГРУППЫ" (первичный ключ - "НОМЕР ЗАЧЁТНОЙ КНИЖКИ"). При отчислении студента принадлежащий ему кортеж будет удалён из второго отношения. Корректировка первого отношения возможна благодаря имеющемуся во втором отношении атрибуту "НОМЕР ГРУППЫ". В данном случае атрибут "НОМЕР ГРУППЫ" является внешним ключом.
Требование целостности по ссылкам, или требование внешнего ключа состоит в том, что для каждого значения внешнего ключа, появляющегося в ссылающемся отношении, в отношении, на которое ведётся ссылка, должен существовать кортеж, имеющий такой же первичный ключ. В нашем приме ре в отношении "ФАКУЛЬТЕТ" должна быть указана группа, в которой учился этот студент.
С целостностью по ссылкам по сравнению с целостностью сущности дело обстоит несколько сложнее. Если обновляется ссылающееся отношение, надо следить только за тем, чтобы не появились некорректные значения внешнего ключа (в нашем примере необходимо следить за тем, чтобы в отношении "СТИПЕНДИЯ" не оказалось студентов несуществующих групп, например других факультетов). Проблемы возникают, если удаляется кортеж из отношения, на которое ведётся ссылка (например, расформировали группу). В этом случае существуют три подхода для поддержания целостности по ссылкам.
Первый подход заключается в том, что запрещается удалять кортеж, на который имеется ссылка (сначала нужно удалить ссылающиеся кортежи или изменить их внешние ключи). В рассматриваемом примере из отношения "ФАКУЛЬТЕТ" можно удалить номер расформированной группы только в том случае, если во всех отношениях, ссылающихся на данное отношение, будут указаны номера групп, в которых продолжат обучение студенты данной группы.
При втором подходе при удалении кортежа, на который имеются ссылки, в отношениях, ссылающихся на удалённый кортеж, внешние ключи автоматически становятся неопределёнными.
При третьем подходе при удалении кортежа, на который имеются ссылки, удаляются все кортежи других отношений, которые ссылаются на удалённый кортеж. Например, расформировали отдел и всех сотрудников этого отдела уволили.
В современных реляционных СУБД обычно можно выбрать способ поддержания целостности по ссылкам для каждой отдельной ситуации определения внешнего ключа.