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

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

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

2.3.2 Реляционная алгебра

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

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

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

Рис.2.9. Основные операторы реляционной алгебры

109

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

Основная идея реляционной алгебры состоит в том, что средства манипулирования отношениями, рассматриваемыми как множества, основаны на традиционных множественных операциях, дополненных некоторыми специфичными операциями для БД.

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

Опишем вариант алгебры, который был предложен Коддом. В этом варианте, как уже было показано выше, набор алгебраических операций состоит из восьми основных:

выборка отношения;

проекция отношения;

объединения отношений;

пересечение отношений;

вычитание отношений;

произведение отношений.

соединение отношений;

деление отношений.

Эти операции можно объяснить следующим образом:

результатом выборки отношения по некоторому условию является отношение, которое включает только те кортежи первоначального отношения, которые удовлетворяют этому условию;

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

при выполнении операции объединения двух отношений будет получено отношение, включающее все кортежи, входящие хотя бы в одно из участвующих в операции отношений;

при выполнении операции пересечения двух отношений получается отношение, включающее все кортежи, входящие в оба первоначальные отношения;

при выполнении операции вычитания одного отношения из другого получается отношение, которое включает все кортежи, входящие во второе отношение но не входящие в отношение, являющееся первым;

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

110

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

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

Помимо вышеперечисленных, есть ряд особых операций, характерных для работы с БД:

переименование отношения;

присваивание

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

Операция присваивания позволяет сохранить результат вычисления реляционного выражения в существующем отношении БД.

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

Приведенные выше объяснения 8 основных операций являются общими с точки зрения теории множеств. В реляционной алгебре эти операции имеют некоторые специфические ограничения. Кратко рассмотрим их.

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

Операция взятия проекции также требует наличия двух операндов - про-

ецируемого отношения А и списка имен атрибутов, входящих в заголовок от-

ношения А. Результатом проекции отношения А по списку атрибутов а,, а2,

..., ап будет отношение, заголовком которого является множество атрибутов а1,

а2,...., аn. Тело результата будет состоять из кортежей, для которых в отношении

А имеется кортеж, атрибут аi, которого имеет значение vi, атрибут а2 имеет значение v2, ..., атрибут ап имеет значение vn,По сути, при выполнении операции проекции определяется "вертикальная" вырезка отношения-операнда с удалением возникающих кортежей-дубликатов.

При выполнении операции объединения результатом должно являться отно-

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

111

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

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

Операция прямого произведения двух отношений вызывает новые пробле-

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

ведения -расширенное прямое произведение отношений При взятии расширен-

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

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

Операция соединения, называемая иногда соединением по условию, требует наличия двух операндов - соединяемых отношений и третьего операнда - простого условия. Пусть соединяются отношения А и В. Как и в случае операции выборки, условие соединения С имеет вид либо (a comp-op b), либо (а comp -ор const), где а и b - имена атрибутов отношений А и В, const - литерально заданная константа, а comp -ор - допустимая в данном контексте операция сравне-

112