Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
nwpi233.pdf
Скачиваний:
107
Добавлен:
13.08.2013
Размер:
1.75 Mб
Скачать

Рассмотренная алгебра, безусловно, имеет преимущества, но требует от пользователя четкого представления (алгоритма) выполнения операций алгебры, возлагая тем самым на пользователя вопросы эффективности реализации запроса. Указанный недостаток в некоторой мере устранен в реляционном исчислении.

Четкость в последовательности действий при обработке запроса характеризует степень " процедурности " средств, используемых для его формулировки. Говорят, что алгебра отношений лежит в основе процедурных языков манипулирования данными в реляционной модели БД.

1.3. Предпосылки введения исчисления отношений

Реляционная алгебра определяет набор операций (алгебраических), которые должны быть реализованы системой для получения ответа на запрос.

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

Пусть, например, есть база данных (БД), состоящая из следующих отношений (рис.

1.7).

Запрос к базе:

Найти шифры цехов (N цеха), которые изготавливают все детали (Шифр изделия), выпускаемые на данном предприятии.

Для реализации данного запроса пользователь может построить несколько вариантов предложений на языке алгебры отношений.

Например, запрос типа:

1) Rrez(N цеха) = (R3[N цеха, Шифр изд.] х° R2[N цеха]) ÷ R1[Шифр изд.]

или

2) Rrez(N цеха)=(R3[N цеха, Шифр изд.] ÷ R1[Шифр изд.]) х° R2[N цеха]

Здесь х° - символ операции эквисоединения ÷ - символ операции деления

При реализации запроса типа 1 или 2 СУБД будет строго придерживаться порядку операций, предписанных в предложении. При этом существенна в данном случае операция ÷ (деление):

R [A ÷ O] S=R [Ã] \ ((R [Ã] × S [B]) \ R)[Ã],

так как она и будет определять время выполнения данного запроса.

Рассмотрим процесс выполнения запроса для предложения типа 1 и типа 2 для нашего примера. При этом атрибут N цеха обозначим "Nц", атрибут Шифр изделия обозначим как "Ш".

1.3.1. Пример исполнения запросов

ВЫПОЛНЕНИЕ ЗАПРОСА ТИПА 1.

Rrez(Nц)=(R3 [Nц, Ш] х° R2 [Nц]) ÷ R1 [Ш]

Первый шаг.

R4=R3 R2 R4 (Nц, Ш ) N1 Ш1 N1 Ш2 N2 Ш1 N2 Ш2 N2 Ш3

Второй шаг.

R4|R1 = R4 [Nц] \ ((R4 [Nц] × R1 [Ш]) \ R4)[Nц] a) R4 [Νц] = R5 [Nц]

N1

N2

б) R4 [Nц] × R1 [Ш] = R5 × R1 [Ш]=R6 R6(Nц, Ш)

N1 Ш1

N1 Ш2

N1 Ш3

N2 Ш1

N2 Ш2

N2 Ш3

в) R6 \ R4 = R7 R7(Nц, Ш )

N1 Ш3

г) R7 [Nц] = {N1} = R8(Nц)

д) R4 [Nц] \ R8 = Rrez = R5 \ R8

Rrez= Nц

R5(Nц) \ R8(Nц)

N2

N1

N1

 

N2

 

ВЫПОЛНЕНИЕ ЗАПРОСА ТИПА 2

Rrez (Nц) = (R3 [Nц, Ш)] ÷ R1 [Ш]) R2 [Nц]

R3 [Nц, Ш] ÷ R1 [Ш] = R3 [Nц] \ ((R3 [Nц] × R1 [Ш]) \ R3)[Nц]

a) R3 [Nц] = R4 [Nц] (промежуточное отношение) N1

N2

б) R3 [Nц] × R1 [Ш] = R4 × R3 [Ш] = R5(Nц, Ш ) N1 Ш1 N1 Ш2 N1 Ш3 N2 Ш1 N2 Ш2 N2 Ш3

в) R5 \ R3 = R6(Nц, Ш) N1 Ш3

г) R6 [Nц] = {N1}

д) R3 [Nц]\R6(Nц) = R7 = {N2}

e) Rrez = R7(Nц) R2 [Nц] = R7(Nц) R2 [Nц]

N2

N1

 

N2

Rrez=N2

Соседние файлы в предмете Информационные технологии