2. Принципы построения реляционной БД. Состав реляционной СУБД.

Реляционная база данных - набор отношений, имена которой совпадают с именами схем отношений, определенных в базе данных.

При проектировании базы данных необходимо решить 3 основные задачи:

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

2. Установить необходимый состав запросов, выполняемых в базе и разрабатывать эффективный метод их реализации. При этом необходимо учитывать особенности конкретной СУБД, наличие дополнительных данных хранимых процедур, и т.д.

3. Разработать интерфейс. Удобный для пользователя: выполнения запросов, отчеты. Эта задача не является непосредственной задачей проектирования базы данных, однако её решение обеспечит эффективное использование ресурсов данных.

Согласно Дейту [1], реляционная модель баз данных состоит из трех частей:

1. В структурной части

2. В манипуляционной части

3. В целостной части

В структурной части модели фиксируется, что единственной структурой данных является реализованное n-арное отношение.

Манипуляционная часть включает механизмы манипулирования реляционными базами данных: реляционная алгебра и реляционное исчисление.

Реляционная алгебра основана на теории множеств и включает операции теории множеств.

Реляционное исчисление основано на аппарате алгебры логики и его раздела предикатного исчисления.

Целостная часть фиксирует 2 требования целостности, которые должны поддерживается в любой реляционной СУБД:

Требования целостности сущности. Данное требование соответствует первому свойству отношения - отсутствия кортежа дубликатов.

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

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

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

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

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

3. При удалении кортежа из отношения, на которое ведет ссылка, из ссылающегося отношения удаляются все ссылающиеся на удаляемый кортеж кортежи.

Hosted by uCoz