Операція q - обмеження

Нехай задана реляція R(aR), де aR - множина імен атрибутів;

M1 = {A1, …, Am} Í aR; і

M2 = {B1, …, Bm} Í aR - списки атрибутів з властивістю N(Ai) = N(Bi); i = 1,m;

q - обмеження реляції R по спискам M1 і M2 : R[M1 q M2] = {r | (r Î R) &(r[M1] q r[M2])}.

Операція ділення.

Нехай задана реляція R(A1, …, Ak) і два взаємнодоповнюючі списки атрибутів

M1 = {A1, …, An}; M2 = {An+1, …, Ak}

Нехай є С1 = D1´…´Dn; С2 = Dn+1´…´Dk; де Di = N(Ai), i = 1,k;

Якщо візьмемо деякий елемент x Î С1, то образом x по реляції R буде називатись множина підкортежів:

imRx = {y Î С2 | (x, y) Î R}

Розглянемо реляції R(aR), S(aS) і списки атрибутів {A1, …, An}ÍaR ; {B1, …, Bn}ÍaS;

Необхідно, щоб реляції R[A1, …, An] і S[B1, …, Bn] були сумісними, тоді операція R[A ¸ B]S називається діленням R на S по спискам {A1, …, An} і {B1, …, Bn}

Результатом є множина підкортежів по атрибутам, що доповнюють список {A1, …, An}.

R[A ¸ B]S = {r[An+1, …, Ak] | (r Î R) & (S[B1, …, Bn] Í imR(r[An+1, …, Ak]))}

Приклад використання операції ділення.

Нехай задана таблиця R з двома атрибутами (мова програмування і прізвище програміста, який цією мовою володіє)

Знайти прізвища програмістів, які знають мови А і Ф одночасно. Для виконання такого запиту утворимо допоміжну реляцію S з одним атрибутом і двома кортежами з відповідними значеннями кодів мов програмування {А,Ф}.

R[мова ¸ мв]S

R Мова Прізв   S мв
  А І     А
  А П     Ф
  ПЛ С      
  Ф Ф      
  Ф І      
  Ф С      
  ПЛ П      
  П Ф      
  П І      

Образом І буде {А, Ф, П}, що є надмножиною відносно{А, Ф}, тому І проходить у результуючу таблицю; а П, С, Ф – не проходять у результуючу таблицю, бо їх образи не накривають {А, Ф}. Це означає, що програміст І знає мови {А,Ф} (можливо ще щось), а інші не знають цих мов одночасно.


Інформаційні технології та інформаційні системи


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



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