Основные понятия реляционной модели данных. Потенциальные ключи отношений, страница 9

S#

SNAME

STATUS

CITY

S2

Jones

10

Paris

S3

Blake

30

Paris

S5

Adams

30

Athens

SA UNION SB

(S6,Smith,50,Rome) – он вставлен в SA.

(S7,Jones,50,Paris) – он удовлетворяет A и B -> он может быть вставлен и в A и в В.

(S3,Green,50,Paris) – ошибка – не удовлетворяет ни А ни В.

DELETE. Если удаляемый кортеж принадлежит отношению А,  то он удаляется из А, если принадлежит отношению В, то удаляется из В. Если он имеется в обоих отношениях, то он удаляется из обоих отношений.

UPDATE. Обновляемый кортеж должен быть таким, чтобы его обновленная версия удовлетворяла предикату отношения А или предикату отношения В или обоим предикатам отношения. Если обновленная версия кортежа удовлетворяет отношению А, то кортеж должен быть вставлен в отношение А и если удовлетворяет отношению В – то в отношение В.

(S5,ADAMS,30,Athens)→(S5,Adams,15,Paris)

После модификации кортежа, кортеж должен быть перемещен в отношение SB. Подобное явление – иммиграция.

2.  INTERSELECT. A INTERSELECT B.

INSERT – вставляемый кортеж должен удовлетворять предикатам обоих отношений А и В. Вставляемый кортеж должен удовлетворять предикату отношения А и предикату отношения В. При вставке, вставляемый кортеж должен записываться в оба кортежа.

DELETE – кортеж, который удаляется из представления, должен быть удален из обоих отношений.

UPDATE – при выполнении операции обновления, обновляемый кортеж должен быть таким, что бы его обновляемая версия удовлетворяла предикату отношения А и предикату отношения В.

3.  MINUS. A MINUS B. Предполагается, что из отношения А вычитается отношение В. Кортежи в отношении должны удовлетворять следующему условию: (PA) AND NOT (PB) – удовлетворять предикату отношения А, и не удовлетворять предикату отношения В.

INSERT – должен удовлетворять предикату отношения А, и не должен удовлетворять предикату отношения В.  Кортеж вставляется в А.

DELETE – кортеж, который необходимо удалить из представления, удаляется из отношения А.

UPDATE – обновляемый кортеж должен удовлетворять предикату отношения А, и не должен удовлетворять предикату отношения В.

4.  Выборка. A WHERE условие. Из А выбираются кортежи, удовлетворяющими некоторому условию. (PA) AND (условие).

INSERT – вставляемый кортеж должен удовлетворять предикату отношения А и условию. Вставляется кортеж в отношение А.

DELETE – при удалении, кортеж, удаляемый из представления, должен удаляться из отношения А.

UPDATE – обновленная версия кортежа должна удовлетворять предикату отношения А и условию выбора.

Пример:

S#

SNAME

STATUS

CITY

S1

Smith

20

London

S4

Clark

20

London

(PS) AND (CITY=’London’)

INSERT (S6,Green,20,London) (OK)

INSERT(S1,Green,20,London) (Error)

UPDATE(S1,Smith,20,London)→(S4,Smith,20,London) (Error)

5.  Проекция. Пусть атрибуты отношения А разделены на две несвязанные группы X и Y (некоторые подмножества атрибутов, но не пересекающиеся). Будем рассматривать X и Y, как составные атрибуты. В проекции А[X] (по атрибуту Х) некоторый кортеж появиться тогда и только тогда, когда существуют значения атрибута Y, такое, что пара этих значений X и Y входит в отношение А.

Рассмотрим проекцию отношения S(S#,SNAME,STATUS,CITY) по атрибутам S#,SNAME,CITY. Для каждого кортежа (S,N,C), который входит в проекцию существует значение t (STATUS), такое, что кортеж (S,N,t,C) принадлежит отношению S.