Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
37
Добавлен:
13.03.2015
Размер:
135.17 Кб
Скачать

Реляционные языки

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

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

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

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

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

Выборка (или ограничение)

предикат(R) - Операция выборки работает с одним отношением R и определяет результирующее отношение, которое содержит только те кортежи (строки) отношения R, которые удовлетворяют заданному усло­вию (предикату).

Более сложные предикаты могут быть созданы с помощью логических операторов (AND), (OR) и (NOT).

Проекция

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

Декартово произведение

R

S

RxS

RxS - Операция декартового произведения определяет новое отношение, которое является результатом конкатенации (т.е. сцепления) каждого кортежа из отношения R с каждым кортежем из отношения S.

a

х

1

a

1

b

2

=

a

2

b

1

b

2

Операторы выборки и проекции извлекают информацию только из одного отно­шения. Оператор декартового произведения умножает два отношения, что в результате приводит к созданию другого отношения, состоящего из всех возможных пар кортежей обоих отношений. Следовательно, если одно отношение имеет I кортежей и N атрибутов, а другое — J кортежей и М атри­бутов, то отношение с их декартовым произведением будет содержать (IxJ) кортежей и (NxМ) атрибутов. Исходные отношения могут содержать атрибуты с одинаковыми именами. В таком случае имена атрибутов будут содержать названия отношений в виде префиксов для обеспечения уникальности имен атрибутов в отношении, полу­ченном как результат выполнения операции декартового произведения.

Объединение

RS - Объединение отношений R и S с кортежами I и J соответственно можно получить в результате их конкатенации с образованием одного от­ношения с максимальным количеством кортежей (I+J), если корте­жи-дубликаты исключены. При этом отношения R и S должны быть совместимы по объединению.

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

Разность

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

Операции соединения

T

U

T  U

TBU

TCU

A

B

B

C

A

B

C

A

B

A

B

C

a

1

1

x

a

1

x

a

1

a

1

x

b

2

1

y

a

1

y

a

1

y

3

z

b

2

Естественное Полусоедениение Левое открытое

соединение соединение

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

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

  • Тета-соединение (-join);

  • Соединение по эквивалентности (equi-join), которое является частным ви­дом тета-соединения;

  • Естественное соединение (natural join);

  • Внешнее соединение (outer join);

  • Полусоединение (semi-join).

Teтa-соединение (-join)

R FS - Операция тета-соединения определяет отношение, которое содержит кортежи из декартового произведения отношений R и S, удовлетворяю­щие предикату F. Предикат F имеет вид R.aiS.bi, где вместо может быть указан один из операторов сравнения (<, <=, >, >=, = или ~=).

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

R FS =F(RxS)

Так же, как и в случае с декартовым произведением, степенью тета-соединения называется сумма степеней операндов-отношений R и S. Если предикат F содержит только оператор равенства (=), то соединение называется соединением по эквива­лентности (equi-join). Еще раз обратимся к запросу, описанному в примере 3.3.

Соседние файлы в папке Новые лекции