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

Страницы работы

Фрагмент текста работы

Определение отношения.   Языки манипулирования данными.

Домен - некоторое множество элементов. Например, D={d1, d2, ..., dn}, где di-числа; это может быть множество каких - то допустимых значений которые может принимать объект, по некоторому свойству; множество {0;1} - множество целых чисел и т.д.

Декартовое произведение доменов D1, D2, ..., Dk  обозначается D=D1´D2´...´Dk.

Декартовым произведением D доменов D1, D2, ..., Dk называется множество всех кортежей (dj1, dj2, ..., djk) длины k, таких, что dj1ÎD1, dj2ÎD2, ..., djkÎDk. Элемент декартова произведения dj= (dj1, dj2, ..., djk) называется кортежем.

Например определены два домена D1={0,1} и D2={a,b,c} тогда D=D1´D2 есть множество {(0,a), (0,b), (0,c), (1,a), (1,b), (1,c)}

Отношением R на доменах D1, D2, ..., Dk называется подмножество декартова произведения D1´D2´...´Dk. (RÍ D1´D2´...´Dk.). Поскольку отношение есть множество, то в нем не должны встречаться одинаковые кортежи и порядок кортежей несущественен. Для представления отношений удобны таблицы.

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

Запросы в общем случае представляют собой произвольные функции над отношениями. Часто для формирования запросов используют развитые языки высокого уровня.

Вся языки запросов для реляционных моделей можно разбить на два класса:

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

2. Языки исчисления предиката, которому должны удовлетворять требуемые картежи (домены). Языки этого класса делятся на два типа в зависимости от того, какие объекты являются переменными - картежи или домены.

Таким образом, для формулирования запросов разработаны три абстрактных теоретических языка:

1) реляционная алгебра;

2) реляционное исчисление с переменными - картежами;

3) реляционное исчисление с переменными - доменами.

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

По совей выразительности все три языка оказались эквивалентны между собой.

Реляционная алгебра.

При определении операций реляционной алгебры предполагается, что порядок столбцов в отношении фиксирован, а сами отношения конечны (это не противоречит теории БД, так как каждому атрибуту можно дать уникальное имя, что зафиксирует столбцы).

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

1. Объединение отношение R1 и R2:R=R1ÈR2. Операция применяется только к отношениям одинаковой арности. Отношение R имеет ту же арность.

Пример:

R1

a

b

c

R2

b

g

a

d

a

f

d

a

f

c

b

d

R= R1ÈR2

a

b

c

d

a

f

c

b

d

b

g

a

2. Разность отношений R1 и R2: R=R1-R2 . Разностью отношений называется множество кортежей, принадлежащих R!, но не принадлежащих R2. Отношения R1, R2 должны быть одинаковой арности, так же и результат R.

Пример:

R=R1-R2

a

b

c

c

b

d

3. Декартово произведение отношений R1 и R2 : R=R1´R2 . Если отношение R1 имеет арность k1, отношение R2 имеет арность k2, то декартово произведение и представляет собой множество кортежей арности (k1+k2), причем первые k1 элементов образуют кортеж из отношения R1, а последние k2 - из отношения R2:

R=R1´R2

a

b

c

b

g

a

a

b

c

d

a

f

d

a

f

b

g

a

d

a

f

d

a

f

c

b

d

b

g

a

c

b

d

d

a

f

4. Проекция отношения R1 на компоненты i1, i2, ..., ir: R=pi1, i2,..., ir (R1), где i1, i2, ..., ir - номера столбцов отношения R1. Существо этой операции заключается в том, что из отношения R1  выбирают указанные столбцы и компануются в указанном порядке.

Пример:

R=p3,1(R1)

c

d

f

d

d

c

Из каждого кортежа отношения R1 выбираются значения первого и третьего столбца и компанубтся в порядку (3,1). Если у отношения столбцы поименованы, то вместо номеров следует писать имена соответствующих атрибутов. Например для схемы отношения R (A,B,C,D) операцию p3,1(R) следует записать pC,A(R).

5. Селекция отношения R1 по формуле F: R=sF(R1), где F - формула, которая состоит из операндов (номеров столбцов или их имен), логических операторов (    - не) ,операторов сравнения (<,>,=,).Также в формуле могут быть использованы скобки. Результатом операции является множество картежей, таких

Похожие материалы

Информация о работе