Учебное пособие: Тема 6. Математические основы реляционных баз данных

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
background image

Тема 6. Математические основы реляционных баз данных 

Языки  запросов  позволяют  задавать  операции  над  РБД  и  указывать 

предикаты для искомых данных.  

Языки запросов делятся на два класса: 

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

над отношениями; 

Языки  исчисления  предикатов,  в  которых  запрос  является 

описанием искомых записей, задаваемым в форме предиката. 

Рассмотрим  реляционную  алгебру.  Будем  предполагать,  что  доступ  к 

компонентам  кортежей  возможен  как  по  номерам  компонентов,  так  и  по 

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

отношения  конечны.  Операндами  реляционной  алгебры  являются  постоянные 

или переменные отношения фиксированной арности.  

Основные операции 

1.  Объединение 

Объединение  отношений  R  и  S  (обозначается  R S)  есть  множество 

кортежей, которые принадлежат либо R, либо S, либо им обоим. Арность R и S 

одинакова. В символической форме объединение записывается так: 

R S = { t |  t R   t S}. 

2.  Разность 

Разностью  отношений  R  и  S  (обозначается  R-S)  называется  множество 

кортежей,  принадлежащих  R,  но  не  принадлежащих  S.  Арность  R  и  S 

одинакова. Символически: R-S = { t |  t R & t S}. 

3.  Декартово произведение 

Пусть R и S – отношения арности r и s соответственно. Тогда декартовым 

произведением R S отношений R и  S называется множество кортежей длины 

r+s,  первые  r  компонентов  которых  образуют  кортежи  из  R,  а  последние  s 

компонентов - кортежи из S. 

R S = {(a

1

,a

2

,…a

r

,

ar+1

,

ar+2

…a

r+s

) | (a

1

,a

2

,…a

r

) R & (a

r+1

,a

r+2

…a

r+s

) S}. 

4.  Проекция 

background image

Пусть  R  -  отношение  арности  r.  Проекцией  R  на  компоненты  i

1

,i

2

,…i

m

называется множество кортежей вида (a

1

,a

2

,…a

m

) таких, что существует кортеж 

(b

1

,b

2

,…b

r

) R,  удовлетворяющий  условию  a

j

  =  b

ij

  (j=1  ..  m).  Проекция 

обозначается 

)

(

2

1

R

m

i

i

i

))}

,

1

(

(

)

,

,

(

|

)

,

,

{(

)

(

2

1

2

1

2

1

m

j

b

a

R

b

b

b

a

a

a

R

j

m

i

j

r

m

i

i

i

Существо  этой  операции  состоит  в  том,  что  из  каждого  кортежа 

отношения  R  формируется  новый  кортеж,  состоящий  из  перечисленных 

компонентов в указанном порядке. Например, для построения 

)

(

1

,

2

R

 нужно из 

каждого кортежа t R сформировать кортеж t , состоящий из второго и первого 

компонентов кортежа t в указанном порядке. 

Если  отношение  имеет  именованные  столбцы  (атрибуты),  то  вместо 

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

отношения  R  со  схемой  R(A,B,C,D)  проекция 

)

(

,

R

A

B

  есть  то  же  самое,  что  и 

)

(

1

,

2

R

5.  Селекция 

Пусть F - формула, операндами которой являются константы или номера 

компонентов, а операциями – сравнения и логические операции «&», « », « ». 

Селекция  отношения  R  по  формуле  F  (обозначается 

)

(R

F

)  есть  множество 

кортежей  t  таких,  что  при  подстановке  i–го  компонента  t  вместо  каждого 

вхождения  номера  i  в  формулу  F  для  всех  i  она  станет  истинной.  Например, 

)

(

3

2

R

  обозначает  множество  кортежей  из  R,  второй  компонент  которых 

больше третьего. Селекция 

)

(

1

1

R

Вася

Петя

есть множество кортежей из R, первый 

компонент которых имеет значение Петя или Вася. Формулы могут ссылаться 

на компоненты по именам атрибутов: 

)}

(

&

|

{

)

(

t

F

R

t

t

R

F

Примеры: 

background image

 
 
 
 
 
 
 
 

Дополнительные алгебраические операции 

1.  Пересечение. 

R S = R- (R-S). 

2.  Частное. 

Пусть  R  и  S  отношения  арности  r  и  s  соответственно,  r>s  и  S 0.  Тогда 

частное  R  и  S  (записывается  R S)  есть  множество  кортежей  длины  r-s  таких, 

что для всех кортежей u S кортеж tu принадлежит R. 

3.  Соединение.   

-соединение  R  и  S  по  столбцам  i  и  j  (записывается 

S

R

j

i



),  где    - 

операция  сравнения,  есть  краткая  запись  для 

)

(

)

(

S

R

j

r

i

  (r  –  арность  R).  –

        R S 

        R-S 

     

B=b

(R) 

                   R S 

… 

… 

… 

… 

… 

… 

  

A,C

(R) 

background image

соединение R и S есть множество таких кортежей в декартовом произведении R 

и S, что i–ый компонент R находится в отношении   с j–ым компонентом S. 

4.  Естественное соединение. 

Естественное  соединение  R  и  S  обозначается 

S



,  требует 

именованных атрибутов. Вычисляется следующим образом: 

Вычисляется R S; 

Для каждого атрибута A, имеющегося и в отношении R и в отношении S, 

выбираются  те кортежи  R S,  у  которых  совпадают  значения  в  столбцах 

R.A и S.A; 

Для каждого указанного A удаляется S.A. 

Формально,  если  A

1

,A

2

,…A

k

  имеются  и  в  R  и  в  S,  то 

S



  есть 

))

(

.

.

&

...

&

2

,

1

2

.

&

.

1

.

(

2

1

S

R

k

A

S

k

A

R

A

S

A

R

A

S

A

R

m

i

i

i

где 

m

i

i

i

2

1

упорядоченный  список  всех  компонентов  R S,  за  исключением  компонентов 

S.A

1

,…S.A

k

Примеры: 

 
 
 
 

                   R 

        S 

R S 

        S 

background image

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

Исчисление с переменными-кортежами 

Выражение реляционного исчисления с переменными-кортежами {t|  (t)} 

представляет множество кортежей t, удовлетворяющих условию  (t). Формула 

 строится из атомов и операций. 

Атомы: 

1.  R(s), где R - отношение, s - переменная-кортеж. Атом утверждает, что 

s - кортеж отношения R. 

2.  s[i]   u[j], где s,u - переменные кортежи,   - операция сравнения. Атом 

утверждает,  что  i–ый  компонент  s  находится  в  отношении    с  j–ым 

компонентом  u.  Например,  s[1]<u[3]  означает,  что  1-ый  компонент  s 

меньше 3-го компонента u. 

3.  s[i] a и a s[i], где a – константа. 

Формулы: 

                  

S

R

D

B



             R 

              R 

             S 

              

S



Источник: https://files.student-it.ru/previewfile/165