Операции реляционной алгебры

Основные операции над реляционными структурами определенные в работах Э. Коддом. Ниже приведены описания этих операций в интерпретации табличного представления:

· Объединение (UNION) – формирует одну таблицу из двух исходных, причем обе исходные и результирующая таблицы имеют одинаковые заголовки, а тело результирующей таблицы состоит из строк обеих исходных таблиц.

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

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

· Декартово произведение (TIMES) – формирует таблицу, заголовок которой содержит все столбцы обеих исходных таблиц, а тело содержит число строк, равное произведению числа строк исходных таблиц. Строки формируются путем объединения каждой строки первой таблицы со всеми строками второй таблицы.

· Переименование атрибута (RENAME) – формирует таблицу с измененным именем столбца, но с тем же количеством и типом полей в заголовке и телом, что и исходная таблица.

· Ограничение (WHERE) – формирует таблицу с тем же заголовком, что и исходная таблица, но включающую только те строки исходной таблицы, которые удовлетворяют заданному условию. Формируется усеченная по строкам таблица.

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

· Соединение отношений – формирует новую таблицу по двум исходным и условию. Первоначально выполняется операция декартова произведения и для его результата выполняется операция ограничения.

Неопределенные значения

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

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

В реляционном подходе для неопределенных значений любых типов данных введен специальный заменитель – NULL-значение. Для обработки таких значений используются специальные операции.

Ограничения целостности

Целостность понимается как правильность хранимых данных в любой момент времени. Задача контроля правильности хранимых данных решается частично. Системы управления базами данных обеспечивают контроль непротиворечивости вводимых значений, связанности данных и их принципиальную корректность. Так можно проверить, чтобы сотрудник был обязательно принят в существующий отдел, но нельзя проверить, что в связи указан именно тот отдел из существующих, которому реально принадлежит сотрудник. Или можно проверить, что вводимый номер дня недели, при составлении учебного расписания должен быть в диапазоне от 1 до 7. Однако проверить, что в данной записи должен быть четверг, а не вводимая пятница невозможно.

Основные ограничения целостности, определенные Э. Коддом:

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

· Ограничение ссылочной целостности или ограничение внешнего ключа – значение внешнего ключа для любой строки дочерней таблицы должно либо в точности соответствовать значению первичного ключа одной из строк родительской таблицы, либо быть полностью неопределенным. Полностью неопределенное означает, что все поля внешнего ключа принимают неопределенное значение NULL.

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

Ограничения целостности, определяемые пользователем:

· принадлежность значения заданному диапазону значений;

· принадлежность значения заданному множеству значений.

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

Наши рекомендации