Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материалы к БД по дисциплине.docx
Скачиваний:
19
Добавлен:
21.04.2019
Размер:
1.3 Mб
Скачать

Теоретические языки запросов.

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

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

Кодд определил следующий набор операций над отношениями. Все операции можно разделить на две группы:

1. Теоретико – множественные операции реляционной алгебры – это традиционные операции над множествами, определяемые теорией множеств (объединение, вычитание, пересечение, декартово произведение).

2. Специальные операции (проекция, выбор или селекция, соединение, деление).

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

1. Теоретико – множественные операции

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

Пример. Даны два отношения C и D, совместимые по типу:

С

S

Название завода

Рейтинг

Город

S1

3BU

20

Москва

S4

Салют

20

Москва

D

S

Название завода

Рейтинг

Город

S1

3BU

20

Москва

S2

Динамо

10

Тула

  1. Объединение - если даны отношения С и D одного и того же типа, то объединение этих отношений (С UNION D) является отношение того же типа с телом, состоящим из всех кортежей t, присутствующих в С или D или в обоих отношениях.

(С UNION D)

S

Название завода

Рейтинг

Город

S1

3BU

20

Москва

S2

Динамо

10

Тула

S4

Салют

20

Москва

Повторяющиеся кортежи удаляются по определению.

  1. Разность – если даны два отношения С и D одного и того же типа, то разность этих отношений С MINUS D является отношение того же типа с телом состоящим из всех кортежей t таких, что t присутствует в С, но не в D.

С MINUS D

S

Название завода

Рейтинг

Город

S4

Салют

20

Москва

D MINUS С

S

Название завода

Рейтинг

Город

S2

Динамо

10

Тула

  1. Пересечение – если даны отношения С и D одного и того же типа, то пересечением этих отношений С INTERSECT D является отношение того же типа с телом, состоящих из всех кортежей t таких, что t присутствует одновременно в С и D. Повторяющиеся кортежи удаляются по определению отношения.

С INTERSECT D

S

Название завода

Рейтинг

Город

S1

3BU

20

Москва

  1. Декартово произведение. Здесь отношения могут иметь разные схемы, необязательно совместимые по типу. Перед выполнением декартова произведения необходимо переименовать атрибуты отношений С и D так, чтобы отношения не имели одноименных атрибутов.

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

Даны отношения С и D:

S

S1

S2

S3

D C

Р

Р1

Р2

Р3



Декартово произведение отношений С и D:

С TIMES D

S

Р

S1

Р1

S1

Р2

S1

Р3

S2

Р1

S2

Р2

S2

Р3

S3

Р1

S3

Р2

S3

Р3

Кардинальное число полученного отношения равно произведению кардинальных чисел отношений С и D –девяти, а степень равна сумме степеней отношений С и D – двум.