Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2. Рел_модель.doc
Скачиваний:
8
Добавлен:
04.06.2015
Размер:
220.67 Кб
Скачать

4 Запросы на данные

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

В общем случае алгебра определяется двойкой:

<N, S>

где N – носитель, S – сигнатура.

В качестве носителя в реляционной алгебре выступает множество отношений, в качестве сигнатуры множество операций, состоящее из

 Стандартных теоретико-множественных операций;

 Операции декартова произведения отношений;

 Специальных операций.

Пусть база данных состоит из отношений

R1, R2, … , Rm

Ответ на запрос представляется в виде производного отношения Rω (вычисляемой таблицы), определяемого алгебраическим выражением A над исходными отношениями (таблицами):

Rω=A(R1, R2, … , Rm)

Схема производного отношения Rω определяется правилами определения схемы результата каждой операции.

4.1 Стандартные теоретико-множественные операции

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

Такие отношения характеризуются одинаковым числом атрибутов и соответствующие атрибуты определены на одних и тех же доменах. Например, схемы

R1 (A1, A2, … , Am) и R2 (B1, B2, … , Bm)

соответственны, если атрибуты R1.Ai и R2. Bi (i = 1,m) определены на одном и том же домене, например, Dj.

Рассмотрим эти операции на примерах.

Пусть имеется список студентов досрочно сдававших экзамены:

Таблица Досрочно_сдавали

Nз

Фио

Nгр

Курс

121

Иванов А.И.

К2-221

Физика

121

Иванов А.И.

К2-221

Математика

121

Иванов А.И.

К2-221

Геометрия

123

Петрова Т.В.

К2-281

Математика

125

Крутов И.И.

К2-223

Физика

125

Крутов И.И.

К2-223

Математика

Кроме того, имеется список студентов, сдававших экзамены в срок:

Таблица Сдавали_в_срок

Nз

Фио

Nгр

Курс

121

Иванов А.И.

К2-221

Физика

123

Петрова Т.В.

К2-281

Математика

125

Крутов И.И.

К2-223

Математика

127

Скоркин О.И.

К2-221

Физика

127

Скоркин О.И.

К2-221

Математика

129

Доренко Е.С.

К2-221

Математика

Тогда запрос «Кто сдавал экзамены?» можно выразить операцией объединения ():

Сдавали_экзамены(Nз,Фио,Nгр,Курс) =

Досрочно_сдавали(Nз,Фио,Nгр,Курс) Сдавали_в_срок(Nз,Фио,Nгр,Курс)

Таблица Сдавали_экзамены

Nз

Фио

Nгр

Курс

121

Иванов А.И.

К2-221

Физика

121

Иванов А.И.

К2-221

Математика

121

Иванов А.И.

К2-221

Геометрия

123

Петрова Т.В.

К2-281

Математика

125

Крутов И.И.

К2-223

Физика

125

Крутов И.И.

К2-223

Математика

127

Скоркин О.И.

К2-221

Физика

127

Скоркин О.И.

К2-221

Математика

129

Доренко Е.С.

К2-221

Математика

Запрос «Кто пересдавал экзамены?» можно выразить операцией пересечения ():

Пересдавали(Nз,Фио,Nгр,Курс) =

Досрочно_сдавали (Nз,Фио,Nгр,Курс) Сдавали_в_срок(Nз,Фио,Nгр,Курс)

Таблица Пересдавали

Nз

Фио

Nгр

Курс

121

Иванов А.И.

К2-221

Физика

123

Петрова Т.В.

К2-281

Математика

125

Крутов И.И.

К2-223

Математика

Запрос «Кто сдал досрочно?» можно выразить операцией разности (\):

Досрочно_сдали(Nз,Фио,Nгр,Курс) =

Досрочно_сдавали(Nз,Фио,Nгр,Курс) \ Сдавали_в_срок(Nз,Фио,Nгр,Курс)

Таблица Досрочно_сдали

Nз

Фио

Nгр

Курс

121

Иванов А.И.

К2-221

Математика

121

Иванов А.И.

К2-221

Геометрия

125

Крутов И.И.

К2-223

Физика

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]