Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы к ГОСу -общий текст.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
428.47 Кб
Скачать

13. Реляционная алгебра. Отношения, кортежи, атрибуты, домены.

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

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

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

Отношение — фундаментальное понятие реляционной модели данных. По этой причине модель и называется реляционной.

N-арным отношением R называют подмножество декартового произведения множеств , не обязательно различных. Исходные множества D1,D2,...,Dn называют в модели доменами.

(Другое определение: Отношением называется некоторое подмножество декартового произведения одного или нескольких доменов)

Под доменом будем понимать некоторое множество значений.

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

Такая таблица обладает рядом свойств:

1)В таблице нет двух одинаковых строк.

2)Таблица имеет столбцы, соответствующие атрибутам отношения.

3)Каждый атрибут в отношении имеет уникальное имя.

4) Порядок строк в таблице произвольный.

Под атрибутом здесь понимается вхождение домена в отношение. Строки отношения называются кортежами.

Пример:

Допустим, содержание доменов следующее:

D1 = {Иванов, Петров, Сидоров}

D2 = {Физика, Химия}

D3 = {3,4,5}

Тогда полное декартово произведение состоит из 18 троек, где первый элемент тройки - одна из фамилий, второй элемент - учебная дисциплина, а третий - оценка.

Тогда отношение R может моделировать реальную ситуацию и содержать пять строк, которые соответствуют результатам сессии (Петров экзамен по Физике не сдавал):

R

Фамилия

Предмет

Оценка

Иванов

Физика

4

Иванов

Химия

3

Петров

Химия

5

Сидоров

Физика

5

Сидоров

Химия

4


ß------- Кортежи

ß-------

Фамилия, предмет, оценка - домены

14. Реляционная алгебра. Операции реляционной алгебры.

Были предложены Коддом.

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

1.Выборка (селекция); 2. Проекция; 3. Соединение; 4. Деление

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

Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. c представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения. Синтаксис: A WHERE c

Проекция

Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов. Синтаксис: A[X, Y, …, Z] или PROJECT A {x, y, …, z}

Соединение

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. Синтаксис: (A TIMES B) WHERE c

Деление

Отношение с заголовком (X1, X2, …, Xn) и телом, содержащим множество кортежей (x1, x2, …, xn), таких, что для всех кортежей (y1, y2, …, ym) ∈ B в отношении A(X1, X2, …, Xn, Y1, Y2, …, Ym) найдется кортеж (x1, x2, …, xn, y1, y2, …, ym). Синтаксис: A DIVIDEBY B