Специальные реляционные операторы


К специальным реляционным операторам относятся:

  • Выбор
  • Проекция
  • Соединение
  • Деление

Оператор выбора, примененный к отношению R(A1, ..., An), возвращает новое отношение P с тем же набором атрибутов, кортежи которого составляют подмножество кортежей отношения R, удовлетворяющих некоторому условию C. Это записывается как . Условие Cпредставляет из себя булевскую формулу, которая построена из элементарных условий, включающих имена атрибутов R и константы. Примерами элементарных условий являются равенства вида Ai = Aj, Ai=aи неравенства вида Ai <= Aj, Ai <= a, Ai >= a. Тогда отношение Pзадается формулой , где формулаC' получена из условия C заменой имен атрибутов Ai на имена соответствующих переменных xi.

Например, оператору выбора , выбирающему сотрудников с окладом свыше 6000, соответствует формула , задающая отношение :

Номер ФИО Отдел Должность Оклад
Иванов А.А. торговый менеджер
Горев С.В. плановый зав.отделом

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

Например, оператору проекции , составляющему список окладов сотрудников, соответствует формула , задающая двуместное отношение :

ФИО Оклад
Иванов А.А.
Сидоров Н.П.
Сидорова М.И.
Ольгина Н.А.
Горев С.В.

Оператор соединения применяется к двум отношениям и позволяет соединять попарно их кортежи, удовлетворяющие определенным условиям. В реляционной алгебре он представлен в нескольких формах. Пусть Rи S - это отношения со схемами R(A1, ..., An, B1, ..., Bm) и S(B1, ..., Bm, C1, ..., Ck) с общимиатрибутами B1, ..., Bm. Тогда естественное соединение отношений R и S содержит кортежи, которые составлены из кортежей отношения R, продолженных кортежами отношения S. При этом соединяются лишь пары кортежей и , имеющих одинаковые значения всех общих атрибутов B1, ..., Bm. Так как значения общих атрибутов совпадают они входят в схему P по одному разу, т.е. P имеет схему P(A1, ..., An, B1, ..., Bm, C1, ..., Ck). Нетрудно понять, что естественному соединению соответствует формула .

Пусть в дополнение к отношениям Сотрудники и Комнаты в базу данных входит отношение Оборудование:

Оборудование
Этаж НомерКомнаты Название
компьютер
принтер
ксерокс
принтер

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

Доступ
НомерСотрудника Этаж НомерКомнаты Название
компьютер
принтер
компьютер
принтер
ксерокс

Здесь соединение производится по двум общим атрибута м Этаж и НомерКомнаты. При этом в соединение не попали сведения о сотрудниках с номерами 2 и 7, в комнатах которых нет оборудования, и о принтере в комнате 25, так как в ней нет сотрудников. Соответствующая формула имеет вид: .

Другой вариант оператора соединения - тета-соединение отношений R и S содержит кортежи, которые составлены из кортежей отношения R, продолженных кортежами отношения S, удовлетворяющими условию C. Синтаксис этого условия такой же, как и у оператора выбора. Так как в C могут входить не только равенства атрибутов, то атрибуты R и S с одинаковыми именами входят в схему P1 дважды (обычно, как и в случае декартова произведения, перед ними помещается через точку имя отношения ). Оператор тета-соединения выражается через операторы выбора и декартового произведения: . Ему соответствует формула , в которой C' - это формула C, где вместо имен атрибутов подставлены имена соответствующих переменных.

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

Результат его вычисления представлен в следующей таблице:

ФИО Название
Иванов А.А. компьютер
Иванов А.А. принтер
Сидорова М.И компьютер
Сидорова М.И принтер
Горев С.В. ксерокс

Ее строки соответствуют парам значений переменных f,c, на которых истинна формула .

Запросы

Пользователи извлекают информацию из баз данных с помощью запросов. Реляционная алгебра позволяет формулировать запросы в виде соответствующих выражений. Однако их синтаксис не очень удобен для непрофессиональных пользователей. Поэтому современные системы управления базами данных используют языки с более простым и понятным синтаксисом. Одним из самых популярных таких языков являетсяязык SQL (Structured Query Language - Структурный Язык Запросов). Сейчас он служит стандартным языком запросов для всех промышленных баз данных. Мы опишем здесь лишь простую форму основного оператора этого языка SELECT (ВЫБРАТЬ). Она имеет вид:

SELECT <список полей (атрибутов)>FROM <список таблиц>WHERE <условия выбора>,

где <список полей ( атрибутов )> - список тех полей (илиатрибутов ) таблиц, значения которых будут входить в результаты запроса, <список таблиц> - список таблиц, из которых берутся значения полей (если некоторые из них имеют поля с одинаковыми именами, то их именуют как <имя таблицы>.<имя поля>), <условия выбора> - условия, которым должны удовлетворять выбираемые значения полей, они представляют из себя бескванторную формулу, построенную из атомных формул, в которых логические знаки заменены на их английские аналоги NOT, AND, OR, соответственно. В качестве переменных используются имена полей, в качестве предикатов для числовых полей используются отношенияпорядка: >, <, <=. В термах для числовых полей можно применять арифметические функции +, -, *, /. В термах для полей других типов обычно бывает можно использовать некоторый набор стандартных функций соответствующих типов.

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

SELECT ФИОFROM Сотрудники, КомнатыWHERE Номер = НомерСотрудника AND Этаж = 2.

Нетрудно построить формулу логики предикатов, реализующую этот запрос:

В качестве переменных в этой формуле используются имена полей ( атрибутов ) таблиц. Свободными переменными являются выбираемые поля (в списке после SELECT ). Все остальные переменные связаны кванторами существования в кванторной приставке. Матрица формулы состоит из конъюнкции двух формул: первая представляет собой конъюнкцию предикатов-таблиц, а вторая - это формула из условий выбора. Построенная таким образом формула определяет множество состояний, на которых она истинна, а каждое из этих состяний задает набор значений свободных переменных формулы, т.е. тех полей, о которых задан запрос. Этот набор и является ответом на запрос (результатом запроса).

В нашем случае, истинна на состояниях со значениями ФИО Иванов А.А и Сидорова М.И., которые и являются ответом на исходный запрос.

Рассмотрим еще один пример. Пусть необходимо получить список сотрудников планового отдела и комнат, в которых они трудятся. Запрос на SQL выглядит так:

SELECT ФИО, НомерКомнаты FROM Сотрудники, Комнаты WHERE Номер = НомерСотрудника AND Отдел = "плановый".

По описанным выше правилам построим формулу логики предикатов, реализующую этот запрос. При этом заменим имена связанных переменных более короткими.

Эта формула истинна на состояниях со следующими парами свободных переменных (ФИО, НомерКомнаты) (мы представили их в виде новой таблицы):

ФИО НомерКомнаты
Сидоров Н.П.
Горев С.В.

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



Дата добавления: 2022-05-27; просмотров: 94;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.