Определение. Даны два отношения r1(R1) и r2(R2), для которых R2 ⊆ R1 и R2 не пусто

Даны два отношения r1(R1) и r2(R2), для которых R2 ⊆ R1 и R2 не пусто. Частным от деления отношения r1 на отношение r2 называется отношение s(R) = r1 ÷ r2, для которого:

• схема отношения R = R1 – R2,

• реализация отношения есть множество кортежей t таких, что для всех ui ∈ r2 существует vj ∈ r1 такой, что vj(R1 – R2) = t и vj(R2) = ui.

Формальная запись:

Даны r1(R1), r2(R2), R2 ⊆ R1, R2 ≠ 0.

s(R) = r1 ÷ r2, R = R1 – R2, s = {tj | ∀ u ∈ r2 (tju ∈ r1)}

Другими словами, s × r2 ∈ r1.

Пример:

r1 (A B C D   r2 (C D)   s = r1 ÷ r2 (A B)
  a b c d     c d     b c
  a b c f     e f     e d
  b c e f                
  b c c d                
  e d e f                
  e d c d                
  e d c f                

Действительно, кортежи <bccd>, <bcef>, <edcd> и <edef> есть в отношении r1. Кортеж <abcd> есть в отношении r1, но кортежа <abed> нет, поэтому в s нет кортежа <ab>.

Можно написать выражение реляционной алгебры, эквивалентное операции деления:

r1 ÷ r2 = πR1-R2(r1) – πR1-R2((πR1-R2(r1) × r2) – r1)

Примеры

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

Пусть дана следующая схема базы данных:

S(S#, SN, SC) – ПОСТАВЩИК (Номер поставщика, Имя, Город)

P(P#, PN, PC) – ДЕТАЛЬ (Номер детали, Название, Цена)

SP(S#, P#, QTY) – ПОСТАВКА ( Номер поставщика, Номер детали, Количество)

1. Получить имена поставщиков, поставляющих деталь с номером P1.

πSNP# = P1(S SP))

1. Получить имена поставщиков, не поставляющих деталь с номером P1.

πSN(S) – πSNP# = P1(S SP))

2. Получить имена поставщиков, поставляющих только деталь с номером P1.

πSNP# =P1(S SP)) – πSNP# ≠’ P1(S SP))

3. Получить имена поставщиков, поставляющих все детали.

πSN((πS#,P#(SP) ÷ πP#(P)) S)

Реляционное исчисление

Общие определения

Реляционное исчисление лежит в основе декларативного подхода к формулировке запроса к базе данных, суть которого заключается в следующем:

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

Ответом на запрос служит множество объектов из области интерпретации (которой является база данных), на котором истинна формула, соответствующая запросу.

В качестве такой формально-логической теории используется теория исчисления предикатов первого порядка, в которой формула задается в виде предиката.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: