Изменения

Перейти к: навигация, поиск

Представления и их обновление

3196 байт добавлено, 00:38, 20 декабря 2021
Множественные операции, обновления
=== Множественные операции ===
==== Пересечение ====
Для [[Реляционная алгебра: операции над множествами | пересечения]] <tex>R_1 \cap R_2</tex> вставка кортежа выполняется как в <tex>R_1</tex>, так и в <tex>R_2</tex>. Так как [[Реляционная алгебра: унарные операции | предикатом]] пересечения является конъюнкция предикатов двух отношений, их проверка для кортежа не производится - в противном случае, кортеж не появится в ответе.
 
Аналогично, для удаления, кортеж должен быть удален из обоих отношений.
 
==== Объединение ====
Отсюда {{---}} алгоритм вставки для [[Реляционная_алгебраРеляционная алгебра:_операции_над_множествами операции над множествами | объединениеобъединения]]<tex>R_1 \cup R_2</tex>: для каждого из отношений проверить соответствие кортежа предикатам каждой из сторон; в случае удовлетворения, вставить в соответствующее отношение. Если кортеж удовлетворяет обоим предикатам, он должен появиться и слева, и справа ==== Пересечение ====При удалении кортеж удаляется как из <tex>R_1</tex>, так и из <tex>R_2</tex>.[[Реляционная_алгебра:_операции_над_множествами | пересечение]]
==== Разность ====
Для [[Реляционная_алгебраРеляционная алгебра:_операции_над_множествами операции_над множествами | разностьразности]]<tex>R_1 \setminus R_2</tex> вставка производится в <tex>R_1<tex>. Удаление также производится из <tex>R_1</tex>. 
=== Соединения ===
При вставке кортежа в [[Реляционная_алгебра:_соединения,_деление#.D0.95.D1.81.D1.82.D0.B5.D1.81.D1.82.D0.B2.D0.B5.D0.BD.D0.BD.D0.BE.D0.B5_.D1.81.D0.BE.D0.B5.D0.B4.D0.B8.D0.BD.D0.B5.D0.BD.D0.B8.D0.B5 | естественное соединение]] <tex>R_1 \Join R_2</tex> часть его атрибутов, соответствующих <tex>R_1</tex>, при удовлетворении предикату, вставляются в него, аналогично для <tex>R_2</tex>.
 
Таким же образом, при удалении, из каждой из частей удаляются соответствующие атрибуты кортежа.
 
Алгоритмы вставки и удаления базируются на ограничениях целостности:
* один-к-одному: вставка и удаление производятся как для левой, так и для правой части;
* один-ко-многим: кортеж вставляется в часть "многие", а в части "один" соответствующие данные уже могут присутствовать;
* многие-ко-многим: с точки зрения реальных баз данных, данное отношение [[Преобразование_модели_сущность-связь_в_физическую_модель#.D0.A1.D0.B2.D1.8F.D0.B7.D0.B8_.D0.BC.D0.BD.D0.BE.D0.B3.D0.B8.D0.B5-.D0.BA.D0.BE-.D0.BC.D0.BD.D0.BE.D0.B3.D0.B8.D0.BC_2 | преобразуется]]в join-table, имеющую отношение "один-ко-многим" с обеих из своих сторон;
 
=== Обновления и SQL ===
== Материализованные представления ==
=== Объявление материализованных представлений ===
text
436
правок

Навигация