Лекция № 5а Операции над отношениями
Гибкость реляционной базы данных определяется легкостью, с которой можно манипулировать отношениями. Пользователь за терминалом или прикладной программист часто будет работать с отношениями, отличающимися от имеющихся в схеме.
С помощью математического аппарата можно определить различные операторы для манипулирования отношениями с целью получения любых желаемых форм табличного представления данных.
Рис. 5.1.
Домены |
D1 |
D2 |
... |
Dn |
Значения |
d1 |
d2 |
dn |
Рис. 5.2.
В дальнейшем для иллюстраций будем использовать следующие отношения
ORG (O, N, CITY, R)
POST (O, D, Q)
DET(D, DN, U, S)
Здесь первичные ключи отношений подчеркнуты.
Операции обновления отношений.
Теперь, когда у нас имеются отношения, возникает вопрос: как могут отношения изменятся во времени. Для этого используются операции добавления, удаления и изменения кортежей.
Операция добавление.
ADD (r; A1 = d1, A2 =d2, ..., An = dn)
Например для отношения POST оператор добавления может иметь вид:
ADD (POST; 0 =6, D =3, K =100)
Цель операции добавления ясна - добавить описанный кортеж в определенное отношение. Результат операции может быть не согласован с целями операции по следующим причинам:
n добавленный кортеж не соответствует схеме определенного отношения;
n некоторые значения кортежа не принадлежат соответствующим доменам;
n описанный кортеж совпадает по ключу с кортежем, уже находящимся в отношении.
ADD (POST; 0 = MMM, D = 3, Q =5)
Операция удаление выполняется для того, чтобы уничтожить некоторые элементы отношения.
DEL (r; A1 = d1, A2 = d2; ..., An = dn)
Например, для отношения POST может быть реализована операция удаления
DEL (POST; 0 = 6, D = 3, Q = 100)
В действительности нет необходимости задавать так много информации, чтобы однозначно определить кортеж. Достаточно определить значение некоторого ключа. В предыдущем примере запись может быть сокращена следующим образом
DEL (ORG; 0 = 6)
Из отношения будут удален кортеж (6, БББ, Благовещенск, 1200).
Вместо того, чтобы удалять и затем добавлять какой-либо кортеж отношения, можно изменять только часть кортежа:
СН (r; A1 = d1; A2 = d2; ..., An = dn; A1 = e1; A2 = e2; Ap = ep)
Если известен ключ отношения, то запись может быть сокращена:
СН(POST; 0 =3; D = 2; Q = 500)
Операция изменения является наиболее удобной. Тот же результат может быть получен с помощью операции удаления, следующей за операцией добавляя. Таким образом всё изменение ошибки операции удаления и добавления присущи и операции изменения.
Упражнение: определить результат операций:
ADD (ORG; 0 = 3, N = R; CITY = БАКУ; R = 7000)
DEL (POST; 0 = 2; D = 2)
CH (DET; D = 3; V = 4)
Рассмотрим теперь операции, позволяющие формировать отношения, удовлетворяющими данному запросу.
Например, для каждой поставленной детали найти наименование детали D и название всех городов из которых она поставляется.
REZ
D |
CITY |
DN |
1 |
Москва |
|
2 |
Москва |
|
2 |
Хабаровск |
|
2 |
Киев |
|
3 |
Москва |
|
4 |
Хабаровск |
Результат должен быть получен ЭВМ с использованием операций над отношениями.
Рассмотрим здесь три наиболее употребительные операции:
SELECT ( ) - выбирать
PROJECT ( ) - проектировать
JOIN () - соединение.
Выбор - операция над отношениями r, результатом которой является другое отношение, которое представляет собой подмножество кортежей отношений r c определенным значением в выделенном атрибуте.
Например,
W = 0=3 (ORG)
0 |
N |
CITY |
R |
3 |
KKK |
Киев |
12000 |
W1 = 0=1 (POST)
0 |
D |
K |
1 |
1 |
300 |
1 |
2 |
200 |
1 |
3 |
300 |
Оператор проекции - предназначен для выбора подмножества столбцов в отношении. Пусть r отношение со схемой R и Х R, проекция Х( r) есть отношение g со схемой Х, полученное вычеркиванием столбцов соответствующих атрибутов из R \ X и исключением из полученной таблицы повторяющихся строк.
(POST) =
0 |
1 |
2 |
3 |
Соединение отношений r и s соответственно со схемой R и S является отношение q = rs со схемой RS, содержащее кортежи, являющиеся комбинацией кортежа из r и кортежа из s с равными значениями атрибутов из RS.
Например:
POST ORG
представляет собой отношение
0 |
D |
Q |
N |
CITY |
R |
1 |
1 |
300 |
МММ |
Москва |
11000 |
1 |
2 |
200 |
МММ |
Москва |
11000 |
1 |
2 |
300 |
МММ |
Москва |
11000 |
2 |
4 |
400 |
ХХХ |
Хабаровск |
0 |
2 |
2 |
100 |
ХХХ |
Хабаровск |
0 |
3 |
2 |
100 |
ККК |
Киев |
11000 |
Применительно, к сформированному выше запросу имеем следующее выражение для городов, из которых поставлены детали:
N = (( POSTORG) DET)
Упражнение:
С использованием операций манипулирования отношениями написать формулу для реализации запроса «на какие склады, попадают детали, поставленные из Москвы».
Реляционная модель данных и операций реляционной алгебры являются основой для создания программных систем по управлению реляционными базами данных.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.