Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Организация баз данных (Курс лекций).doc
Скачиваний:
2
Добавлен:
04.05.2019
Размер:
724.99 Кб
Скачать

4.3.2. Операции обновления отношений

В зависимости от изменений, происходящих на объекте реального мира в предметной области, происходит изменение состояния отношений в БД. Для реализации этих изменений используются операции обновления отношений.

Замечание: Приведенные далее имена операций ADD, DEL, CH не соответствуют именам в реальных СУБД. а приведены только для обозначения операций.

Добавление ADD новых кортежей в отношение

ADD ( r; A1 = d1, ... , AK = dK) - если порядок атрибутов в отношении может быть изменен.

ADD ( r; d1, ... , dK) - если порядок атрибутов не меняется.

Пример: r - группа датчиков

ADD (группа_датчиков; номер=100, назначение = измерение температур, тип = t - резисторный, подсистема = контроль аварийной ситуации)

При выполнении добавления возможно возникновение следующих ситуаций:

1) добавляемый кортеж не соответствует схеме указанного отношения (то есть имеются ошибки в атрибутах);

2) некоторые значения в кортеже не принадлежат соответствующим им доменам;

3) описанный кортеж совпадает (по ключу) с кортежем, уже имеющемся в отношении.

В этом случае операция ADD оставляет отношение без изменения и выдает признак ошибки.

Удаление DEL кортежа из отношения

DEL ( r; A1 = d1, ... , AK = dK ) - если порядок атрибутов в отношении может быть изменен.

DEL ( r; d1, ... , dK) - если порядок атрибутов не меняется.

Если в отношении указан ключ К=( В1, ... , Вm ), то удаление может выполняться только с указанием атрибутов ключа:

DEL( r; В1 = С1, ... , Вm = Cm).

Удаление выполняется успешно всегда, если удаляемый кортеж идентифицирован в отношении. Таким образом, в результате выполнения операции удаления отношение может оказаться пустым. Пустое отношение допускается в БД.

Изменение части кортежа CH

Если в отношении r со схемой R [A1 , ... , AK] изменяется атрибут кортежа t { С1, ... , Ср }, то это выполняется с помощью оператора

СН ( r; A1 = d1, ... , AK = dK; С1 = С1, ... , Ср = Cр)

Если К =( В1, ... , Вm ) - ключ отношения, то

СН ( r; В1 = d1, ... , Bm = dm; С1 = С1, ... , Ср = Cр)

Операция СН может быть выполнена помощью последовательности операций удаления и добавления. Все ошибочные ситуации, связанные с этими операциями, присущи и операции изменения части кортежа.

4.3.3. Другие операции над отношениями

Кроме операторов реляционной алгебры используют операторы, играющие существенную роль с практической точки зрения.

Оператор расщепления

r(R),  (t) - предикат на кортеже t , t  r

 Тогда расщеплением r по  (t) будет

SPLIT (r) = (S, S) таких, что

S ={ t  r ,  (t) = 1}

S= { t  r ,  (t) = 0}, S = r - S.

На предикат  (t) не накладывается никаких ограничений, за исключением одного, заключающегося в том, что  (t) зависит только от одного кортежа и не зависит от состояния отношения r(R). Например, предикат  (t) не должен зависеть от количества кортежей в отношении.

П

 (t) =( t (Тип_дат = T1)  t (Тип_дат = T4)

SPLIT (r) = (S, S)

ример:

Тип

Дат

Имя

пар-ра

T1

P1

T1

P2

T2

P2

T2

P3

T3

P2

T4

P2

T4

P4

S

S

Тип

Дат

Имя

пар-ра

T1

P1

T1

P2

T4

P2

T4

P4

Тип

Дат

Имя

пар-ра

T2

P2

T2

P3

T3

P2

Оператор “фактор”

В качестве аргумента оператора берется отношение r, а результатом являются два отношения.

FACTOR (r) = (S, L)

При выполнении операции “фактор” в исходном отношении выделяется некоторое количество атрибутов и соответствующие им столбцы отделяются от исходного отношения. Задается новый атрибут, который добавляется к схеме исходного отношения. Выделенные атрибуты вместе с новым атрибутом составляют схему результирующего отношения L. Добавленный атрибут является ключевым в отношении L.

П

S

L

r

ример:

Шифр

Дат

Тип

Дат

Имя

п/сист

А1

T1

P1

А2

T1

P2

А3

T2

P2

А4

T1

P1

А5

T2

P1

А6

T2

P2

А7

T1

P1

Шифр

Дат

Метка

А1

1

А2

2

А3

3

А4

1

А5

4

А6

3

А7

1

Тип

Дат

Имя

п/сист

Метка

T1

P1

1

T1

P2

2

T2

P2

3

T2

P1

4