Цель операции – добавить один кортеж с данными <d1,…,dn> в отношение r со схемой (A1,A2,…,An).
ADD(r; A 1= d1, …, A n= dn).
Когда фиксирован порядок имен атрибутов, допустима более короткая запись:
ADD(r; d1, …, dn).
Операция может быть не выполнена по следующим причинам:
1. Добавляемый кортеж не соответствует схеме отношения r.
2. Некоторые значения кортежа не принадлежат соответствующим доменам.
3. Добавляемый кортеж совпадает по ключу с кортежем, уже находящимся в отношении.
Примеры для отношения Студент, определенного в разделе 3.1:
a). ADD(Студент; Дубов, 1980, 1996, 134742, 2, 100.00).
b). ADD(Студент; Фамилия = Марков, Имя = Сергей, Отчество = Петрович, Курс_обучения = 2) – не будет выполнена по причине 1, в схеме отношения Студент нет атрибутов Фамилия, Имя, Отчество.
c). ADD(Студент; Колобков, 1976, 1996, 122454, 8, 90.00) – не будет выполнена по причинам 2 и 3. Ключом отношения Студент является атрибут { Номер_билета }. Отношение уже содержит кортеж с номером билета 122454 у студента Соколова (причина 3), и значением атрибута Курс_обучения не может быть число 8 (причина 2).
|
|
Удаление
Цель операции – удаление одного кортежа с данными <d1,…dn> из отношения r.
DEL(r; A 1=d1, …, A n=dn).
В действительности нет необходимости перечислять значения всех атрибутов удаляемого кортежа. Чтобы однозначно определить кортеж, который надо удалить, достаточно указать значение первичного ключа:
DEL(r; <ключ> = <d>),
<ключ> – содержит только те атрибуты, которые входят в ключ,
<d> – содержит только те значения удаляемого кортежа, которые соответствуют ключевым атрибутам.
Операция может быть не выполнена по следующим причинам:
1. Удаляемый кортеж не соответствует схеме отношения r.
2. Удаляемого кортежа нет в отношении r.
Примеры для отношения Студент, определенного в разделе 3.1:
a). DEL(Студент; 122454).
b). DEL(Студент; 555556) – не будет выполнена, так как такого кортежа в отношении Студент нет.