Лекция Основы реляционной алгебры и реляционного исчисления




НазваниеЛекция Основы реляционной алгебры и реляционного исчисления
страница1/9
Дата публикации24.02.2013
Размер0.76 Mb.
ТипЛекция
uchebilka.ru > Математика > Лекция
  1   2   3   4   5   6   7   8   9

Лекция 6. Основы реляционной алгебры и реляционного исчисления



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

^ Список ключевых терминов. Реляционная алгебра. Объединение отношений. Пересечение отношений. Вычитание отношений. Декартово произведение отношений. Выборка. Проекция. Соединение. Деление. Отношения, совместимые по типу. Реляционное исчисление. Исчисление кортежей. Исчисление доменов.

^ Цель лекции. Познакомить студентов с реляционной алгеброй и реляционным исчислением, как совокупной манипуляционной составляющей реляционной модели данных. Рассмотреть примеры построения операторов реляционной алгебры и формул реляционного исчисления. Показать, каким образом реляционная алгебра и реляционное исчисление становятся основой языков манипулирования данными в реляционных базах данных, в частности, языка SQL.
Третья часть реляционной модели, манипуляционная часть, включает реляционную алгебру и реляционное исчисление. При этом доступ к реляционным данным осуществляется только при помощи операций реляционной алгебры или эквивалентного ей реляционного исчисления.

В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал структурированный язык запросов язык SQL (Structured Query Language). Язык SQL представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями, отсутствующими в реляционной алгебре и реляционном исчислении. Язык SQL является реляционно полным, т.к. любой оператор реляционной алгебры или формула реляционного исчисления могут быть выражены средствами этого языка.

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

^ 6.1. Обзор реляционной алгебры
Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор f выглядит как функция с отношениями в качестве аргументов R = f(R1, R2, …, Rn).

Традиционно, вслед за Коддом [52-54], определяют восемь реляционных операторов, объединенных в две группы. Первую группу составляют теоретико-множественные операторы:

1) объединение отношений;

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

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

4) декартово произведение отношений.

Вторую группу образуют специальные реляционные операторы:

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

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

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

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

Иногда к этим операциям добавляют еще вспомогательные операции переименования и присваивания.

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

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

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

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

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

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

При соединении (JOIN) двух отношений по некоторому условию образуется результирующее отношение, кортежи которого производятся путем объединения кортежей первого и второго отношений и удовлетворяют этому условию.

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

^ Операция переименования (RENAME) производит отношение, тело которого совпадает с телом операнда, но имена атрибутов изменены.

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

Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу R = f(f1(R11, R12, …), f1(R21, R22, …), …). Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры. В построении реляционного выражения могут участвовать все реляционные операции, кроме операции присваивания. Вычислительная интерпретация реляционного выражения диктуется установленными приоритетами операций:

RENAME ^ WHERE = PROJECT TIMES = JOIN = INTERSECT = DIVIDE BY UNION = MINUS

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

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

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

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

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

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

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

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

^ R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2, … ,

где

R – отношение;

Atr1, Atr2, – исходные имена атрибутов;

NewAtr1, NewAtr2, … – новые имена атрибутов.
В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов.
Пример 6.1. Следующий оператор возвращает неименованное отношение, в котором атрибут City_Num переименован в CityId:

City RENAME City_Num AS CityID.

^ 6.2 Теоретико-множественные операторы реляционной алгебры
К теоретико-множественным операторам реляционной алгебры относятся операторы объединения, пересечения, вычитания (разности), декартова произведения отношений.
^ 6.2.1 Объединение совместимых по типу отношений
Определение 6.3. Объединением двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. Синтаксис операции объединения: A UNION B.
Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение A, и отношение B, то в объединение он входит один раз.
Пример 6.2. Пусть даны два отношения A и B с информацией о сотрудниках, представленные в таблицах 6.1–6.2.
Таблица 6.1 – Отношение A

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Петров

2000

3

Сидоров

3000


Таблица 6.2 – Отношение B

^ Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Михайлов

2500

4

Сидоров

3000


Объединением отношений A и B будет отношение A UNION B, представленное в таблице 6.3.
Таблица 6.3 – Отношение A UNION B

Табельный номер

Фамилия

Зарплата

1

Иванов

1000

2

Петров

2000

3

Сидоров

3000

2

Михайлов

2500

4

Сидоров

3000


Как видно из приведенного примера, потенциальные ключи, которые были в отношениях A и B не наследуются объединением этих отношений. Поэтому, в объединении отношений A и B атрибут «Табельный номер» может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как «объединение множеств». Конечно, объединение отношений A и B имеет, как и любое отношение, потенциальный ключ, например, состоящий из всех атрибутов.
^ 6.2.2 Пересечение совместимых по типу отношений
Определение 6.4. Пересечением двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. Синтаксис операции пересечения ^ A INTERSECT B.
Пример 6.3. Для отношений A и B из предыдущего примера 6.2 пересечение имеет вид, представленный в таблице 6.4.
Таблица 6.4 – Отношение A INTERSECT B

Табельный номер

Фамилия

Зарплата

1

Иванов

1000


Казалось бы, что в отличие от операции объединения, потенциальные ключи могли бы наследоваться пересечением отношений. Однако это не так. Вообще, никакие реляционные операторы не передают результирующему отношению никаких данных о потенциальных ключах. В качестве причины этого можно было бы привести тривиальное соображение, что так получается более просто и симметрично – все операторы устроены одинаково. На самом деле причина более глубока, и заключается в том, что потенциальный ключ – семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут «знать» о смысле данных. Трактовка результата реляционных операций – дело пользователя.
  1   2   3   4   5   6   7   8   9

Добавить документ в свой блог или на сайт

Похожие:

Лекция Основы реляционной алгебры и реляционного исчисления iconОсобенности теоретико-множественных операций реляционной алгебры
Хотя в основе теоретико-множественной части реляционной алгебры лежит классическая теория множеств, соответствующие операции реляционной...

Лекция Основы реляционной алгебры и реляционного исчисления iconВопросы: Обзор реляционной алгебры Кодда
Лекция: Базисные средства манипулирования реляционными данными: реляционная алгебра Кодда

Лекция Основы реляционной алгебры и реляционного исчисления iconСвойства реляционного каркаса на множестве семантически атомарных предикатов
Ключевые слова: реляционный каркас, семантически атомарный предикат, схема реляционной базы данных, кортеж, домен

Лекция Основы реляционной алгебры и реляционного исчисления iconО полноте и единственности универсального каркАса в реляционной модели даннЫх
В работе введено представление о путях нормализации в универсальном каркасе реляционных баз данных и о топологии этих путей. Сформулирована...

Лекция Основы реляционной алгебры и реляционного исчисления iconРешается проблема модифицируемости схемы реляционного хранилища данных. © Панченко Б. Е., 2012
Предложен алгоритм синтеза новой модели данных – реляционного каркаса на основе многозначных зависимостей ключевых атрибутов. Использованы...

Лекция Основы реляционной алгебры и реляционного исчисления iconИсчисление доменов Эта лекция завершает цикл лекций, посвященных...
Лекция: Базисные средства манипулирования реляционными данными: реляционное исчисление

Лекция Основы реляционной алгебры и реляционного исчисления iconБ. Б. Нестеренко, М. А. Новотарский Программный комплекс для моделирования...
Основы построения программного комплекса, базирующегося на расширенной алгебре процессов. Описаны принципы организации препроцессорного...

Лекция Основы реляционной алгебры и реляционного исчисления iconБ. Е. Панченко Институт кибернетики им. В. М. Глушкова нану, 03187,...
Доказана лемма о безаномальности особого реляционного отношения и теорема о безаномальности актуальной части реляционного каркаса....

Лекция Основы реляционной алгебры и реляционного исчисления iconПерелік електронних освітніх видань з фундаментальних дисциплін
...

Лекция Основы реляционной алгебры и реляционного исчисления iconЦель: научить использовать операторы sql для вставки, изменения и...
Торной работы рекомендуется изучить лекцию №4 «Выборка данных», из которой требуются знания оператора select, необходимого для вставки...


Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


don