- •Предисловие
- •Основные функции систем управления базами данных (СУБД)
- •Основные понятия
- •Преимущества использования баз данных
- •Функции систем управления базами данных
- •Литература
- •Реляционная модель данных
- •Структуры данных. Фундаментальные свойства отношений
- •Целостность данных. Реляционные ключи
- •Манипулирование данными
- •Реляционная алгебра Кодда
- •Операции
- •Объединение
- •Пересечение
- •Разность
- •Декартово произведение
- •Сокращение (выборка, ограничение, селекция)
- •Проекция
- •Соединения
- •Деление
- •Приоритеты операций
- •Базис алгебры и ства операций
- •Базис
- •Свойства операций
- •Ограничения реляционной алгебры
- •Литература
- •Реляционное исчисление
- •Исчисление кортежей
- •Эквивалентность исчисления кортежей и реляционной алгебры
- •Исчисление доменов
- •Литература
- •Случаи неполной информации и ω-значения
- •Концепция трехзначной логики
- •Логические операторы
- •Кванторы
- •Арифметические операции и операции сравнения
- •ω-значения и домены
- •ω-значения и операторы реляционной алгебры
- •ω-значения и агрегирующие функции
- •Проблема интерпретации
- •ω-значения и ограничения целостности
- •Первичные ключи
- •Внешние ключи
- •Литература
- •Семантическое проектирование реляционных баз данных на основе ER-модели
- •Общий подход семантического моделирования
- •Основные понятия
- •Проектирование базы данных с помощью ER-модели
- •Литература
- •Проектирование реляционных баз данных при помощи нормализации
- •Жизненный цикл системы баз данных
- •Функциональные зависимости
- •Понятие функциональной зависимости
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Неприводимые множества зависимостей
- •Декомпозиция без потерь и функциональные зависимости
- •Диаграммы функциональных зависимостей
- •Сохранение независимости в смысле Риссанена
- •Многозначные зависимости
- •Нормализация
- •Понятие нормализации и её причины
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса–Кодда
- •Четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Литература
- •Основные принципы хранения данных во внешней памяти
- •Страничная организация хранения данных
- •Управление буферами внутренней памяти
- •Простая файловая организация страниц
- •Неупорядоченный файл
- •Упорядоченный файл
- •Индексирование
- •Индексно-прямой метод доступа
- •Индексно-последовательный метод доступа
- •Индекс на основе B+-деревья
- •Хэширование
- •Индексированные кластеры
- •Хэшированные кластеры
- •Литература
- •Управление транзакциями и синхронизация в реляционных СУБД
- •Понятие транзакции
- •Фундаментальные свойства транзакций
- •Изолированность транзакций
- •Синхронизационные блокировки
- •Простые блокировки
- •Гранулированные (намеренные) блокировки
- •Предикатные блокировки
- •Тупиковые ситуации
- •Метод временных меток
- •Механизм выделения версий данных
- •Литература
- •Журнализация и восстановление в реляционных СУБД
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Восстановление после жесткого сбоя
- •Литература
- •Выполнение и оптимизация запросов в реляционных СУБД
- •Процесс оптимизации запроса
- •Преобразование запроса во внутреннюю форму
- •Преобразование запроса в каноническую форму
- •Выбор потенциальных низкоуровневых процедур
- •Генерация различных вариантов планов вычисления запроса и выбор плана с минимальными затратами
- •Низкоуровневая оптимизация операции выборки
- •Низкоуровневая оптимизация операции соединения
- •Литература
3.1. Операции |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
Пусть даны два отношения R1 HR1 ; BR1 и R2 HR2 ; BR2 , где заголовки и тела имеют вид: |
|||||||||||||||||||||||||
|
|
|
|
HR1 ! A1R1 ; D1R1 ; : : : ; AnR1 ; DnR1 |
) ; |
|
|
|
|||||||||||||||||
|
|
$ |
R1 |
|
R1 |
R1 |
|
|
|
R1 |
|
R1 |
|
|
R1 |
|
|
|
|
T1R. 1 ; |
|
||||
BR1 |
|
pA1 |
; D.1 |
|
; v11 q ; : : : ; |
pAn |
|
; Dn. |
|
; v1nq |
|
; , |
|
, ; |
|||||||||||
|
' |
! |
|
.. |
|
|
|
|
|
|
|
|
.. |
|
|
|
|
|
) |
$ .. |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/ |
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/ |
|
|
/ |
|
|
' |
R1 |
|
R1 |
R1 |
|
|
|
R |
1 |
R |
1 |
|
R |
|
|
|
/ |
' |
R1 |
||||
|
|
& |
|
|
|
|
|
|
|
|
|
|
|
|
1 . |
& |
Ts |
. |
|||||||
|
|
' !pA1 ; D1 ; vs1 q ; : : : ; |
pAn |
|
; Dn |
|
; vsnq |
|
/ |
' |
/ |
||||||||||||||
|
|
' |
|
H |
|
|
A |
R2 |
; D |
R2 |
|
|
|
R2 |
; D |
R2( / |
% |
|
- |
||||||
|
|
' |
|
R2 |
|
1 |
1 |
; : : : ; A |
|
|
|
p |
|
/; |
|
|
|
||||||||
|
|
% |
|
|
! |
|
|
|
|
p |
|
|
|
|
- |
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
) |
|
|
|
||
|
|
$ |
R2 |
|
R2 |
R2 |
|
|
|
R2 |
|
R2 |
|
|
R2 |
|
|
|
|
T1R. 2 ; |
|
||||
BR2 |
|
pA1 |
; D.1 |
|
; v11 q ; : : : ; |
pAp |
|
; Dp. |
|
; v1pq |
|
; , |
|
, : |
|||||||||||
|
' |
! |
|
.. |
|
|
|
|
|
|
|
|
.. |
|
|
|
|
|
) |
$ .. |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/ |
|
|
|
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/ |
|
|
/ |
|
|
' |
R2 |
|
R2 |
R2 |
|
|
|
R |
2 |
R |
2 |
|
R |
|
|
|
/ |
' |
R2 |
||||
|
|
& |
|
|
|
|
|
|
|
|
pAp |
; Dp |
|
|
2 . |
& |
|
. |
|||||||
|
|
' !pA1 ; D1 ; vr1 q ; : : : ; |
|
|
|
|
; vrp q |
|
/ |
' Tr |
/ |
||||||||||||||
Везде далее под обозначением F , где F — логическая формула (как правило, это предикат, в ко- |
|||||||||||||||||||||||||
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
( / |
% |
|
- |
|
|
|
' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/ |
|
|
|
|
|
% |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- |
|
|
|
J K
торый подставлены конкретные значения вместо переменных), будем подразумевать значение суждения F — в нашем контексте оно либо истинно (TRUE), либо ложно (FALSE).
Объединение
Предположим, что HR1 HR2 (а значит, n p), т. е. предполагается, что отношения R1 и R2 имеют одинаковое количество атрибутов, совпадающих с точностью до их перестановки.
def
Определение 1. Объединением отношений R1 и R2 называется отношение R R1 Y R2 HR; BR , где
def
HR HR1 HR2 ;
def |
BR1 |
Y BR2 |
def |
_ T P BR2 u : |
BR |
tT | T P BR1 |
Замечание. Таким образом, объединением двух отношений является отношение с тем же заголовком и с кортежами, чьи дубликаты присутствуют хотя бы в одном из отношений-операндов.
Пересечение
Опять же предположим, что HR1 HR2 (а значит, n p), т. е. отношения R1 и R2 имеют одинаковое количество атрибутов, совпадающих с точностью до их перестановки.
def
Определение 2. Пересечением отношений R1 и R2 называется отношение R R1 X R2 HR; BR , где
def
HR HR1 HR2 ;
def |
BR1 |
X BR2 |
def |
^ T P BR2 u : |
BR |
tT | T P BR1 |
Замечание. Таким образом, пересечением двух отношений является отношение с тем же заголовком и с кортежами, чьи дубликаты присутствуют в обоих отношениях-операндах.
Разность
Вновь предполагаем, что HR1 HR2 (а значит, n p), т. е. отношения R1 и R2 имеют одинаковое количество атрибутов, совпадающих с точностью до их перестановки.
15
|
|
def |
R2 |
HR; BR , где |
Определение 3. Разностью отношений R1 и R2 называется отношение R R1 |
||||
|
def |
|
|
|
HR HR1 HR2 |
; |
|
|
|
def |
def |
^ T R BR2 u : |
|
|
BR BR1 zBR2 |
tT | T P BR1 |
|
|
Замечание. Таким образом, разностью двух отношений является отношение с тем же заголовком и с кортежами, чьи дубликаты присутствуют в первом отношении-операнде, но отсутствуют во втором отношении-операнде.
Декартово произведение
А здесь мы не накладываем никакие условия на отношения R1 и R2, описанные в начале параграфа. Введем дополнительное определение:
Определение 4. Два отношения R1 и R2 называются совместимыми по операции произведения, если они не имеют одинаковых атрибутов в своих заголовках, т. е. HR1 X HR2 .
Базовый вариант декартова произведения использует понятие совместимости отношений, опишем его:
Определение 5. Декартовым произведением (или просто произведением) совместимых по произ-
def
ведению отношений R1 и R2 называется отношение R R1 R2 HR; BR , где
|
|
def |
|
Y HR2 |
|
|
|
|
HR HR1 |
; |
|||
def |
BR2 |
def |
Y T2 | T1 |
P |
BR1 ^ T2 P BR2 u : |
|
BR BR1 |
tT1 |
Замечание. Таким образом, декартовым произведением двух совместимых по произведению отношений является отношение с заголовком, являющимся объединением заголовков операндов, и с кортежами, являющимися всевозможными конкатенациями (объединениями) кортежей первого отношения-операнда с кортежами второго отношения-операнда.
Замечание. Произведение можно определить и для отношений, имеющих одинаковые атрибуты (т. е. совпадают имя и домен), т. е. для отношений R1 и R2, у которых HR1 X HR2 . Для этого используется оператор RENAME, который переименовывает подаваемый атрибут для получения атрибута с уникальным именем (например, если имя отношения есть Rname, а имя атрибута этого отношения есть Aname, то можно переименовать этот атрибут в Rname.Aname). И перед тем, как получить результирующее отношении одинаковые атрибуты отношений-операндов переименовываются, т. е. отношения становятся совместимыми по произведению, а значит, для них будет справедливо изложенное определение декартова произведения.
Декартово произведение редко используется в силу его некоторой неосмысленности на практике:
•кардинальность результата велика (равна произведению кардинальностей отношенийоперандов),
•результат не более информативен, чем взятые в совокупности операнды,
чаще используются его вариации — операции соединения.
Сокращение (выборка, ограничение, селекция)
Пусть задана предикатная формула F F pvi1 ; : : : ; vik q, образованная |
|
|
|
||||||
а) |
операндами, являющимися |
константами и/или переменными v |
it |
, t |
|
1; k; |
|||
R1 |
|
|
|
|
|
||||
б) |
чениями некоторых атрибутов pAit ; Dit q; t 1; k; некоторого кортежа T |
||||||||
операторами сравнения ă; ď; ą; ě; ; , |
|
|
|
|
|
||||
в) |
логическими операторами ^; _; . |
|
|
|
|
|
являющимися знаотношения R1,
16
Определение 6. Сокращением (выборкой, ограничением, селекцией; selection)
|
|
|
|
|
def |
|
def |
HR; BR , где |
|
|
|
|
по условию F называется отношение R |
FpR1q |
|
|
|
||||||||
|
|
|
|
|
|
|
def |
|
|
|
|
|
BR |
!T |
!A1 |
; D1 |
; v1 |
|
HR HR1 ; |
P BR1 rF |
vi11 |
; : : : ; vik |
z |
||
; : : : ; An1 |
; Dn1 ; vn1 ) |
|||||||||||
|
|
R1 |
R1 |
R1 |
|
R |
R |
R |
|
R |
R1 |
|
отношения R1
)
TRUE
Замечание. Таким образом, выборкой отношения R1 по условию F является отношение с тем же заголовком и только с теми кортежами отношения R1, для значений атрибутов которых выполняется условие F.
Проекция
отношения R1. |
|
|
A |
! |
i1 |
|
i1 |
|
ik |
ik |
) Ď |
H |
R1 атрибутов |
||
Пусть есть некоторое подмножество |
|
|
AR1 |
; DR1 |
; : : : ; |
AR1 ; DR1 |
|
|
|||||||
def |
def |
7. Проекцией |
отношения |
R |
1 |
по |
атрибутам |
A |
называется |
отношение |
|||||
Определение |
|
|
|
|
|
|
|
|
|
|
|
|
|
||
R ApR1q HR; BR , где |
|
|
def |
|
|
|
|
|
|
|
|
|
|||
BR |
|
|
|
HR A; |
|
|
|
|
|
|
|
|
|||
!tpAi1 ; Di1 ; vi1 q; : : : ; pAik ; Dik ; vik qu tpA1; D1; v1q; : : : ; pAn; Dn; vnqu P BR1 ) |
|||||||||||||||
def |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Замечание. Таким образом, проекцией отношения R1 по атрибутам A является отношение, заголовком которого являются атрибуты A, а в теле содержатся все кортежи отношения R1, но в каждом из них только те атрибуты, которые есть среди атрибутов A.
Соединения
Можно выделить несколько видов соединений:
•-соединение,
•эквисоединение,
•естественное соединение,
•левые, правые и полные внешние соединения.
Пусть P tă; ď; ą; ě; ; u — некоторая операция сравнения. Пусть задана предикатная фор-
мула F F pAR1 ; AR2 q R1:AR1 |
R2:AR2 |
1, где AR1 |
P HR1 ; AR2 P HR2 . |
|
|
|
||
Определение 8. -соединением |
отношений |
R1 |
и R2 |
по условию F называется |
отношение |
|||
def |
def |
|
|
|
|
|
|
|
R R1 'F |
R2 HR; BR , где |
def |
|
Y HR2 ; |
|
|
|
|
|
def |
HR HR1 |
|
|
|
|||
Замечание. |
BR T1 Y T2 | T1 P BR1 ^ T2 P BR2 ^ qF pT1:AR1 ; T :AR2 qy TRUE( : |
R1 |
R2:A |
R2 |
||||
Таким образом, -соединением отношений R1 и R2 по условию F R1:A |
|
является отношение, содержащее в заголовке атрибуты обоих отношений, и с кортежами, являющимися конкатенациями (объединениями) тех кортежей T1 первого отношения-операнда с кортежами T2
второго отношения-операнда, для которых выполняется (истинно) условие T1:AR1 T2:AR2 .
1 Пусть задано отношение R и A — его атрибут, тогда под записью R:A будем подразумевать сам атрибут A, подчеркивая его принадлежность заголовку отношения R. Такая нотация позволяет избежать проблемы одинаковых атрибутов (одинаковые имена и домены) разных отношений, т. е. получается, что атрибут A имеет несколько имен — одно действует внутри отношения R, а другое действует среди отношений базы данных, т. к. все отношения в базе имеют разные имена. Аналогично если T — это кортеж, то значение его атрибута A будем обозначать T :A.
17
Замечание. Нетрудно видеть, что -соединение отношений является «подмножество» декартова произведения этих отношений. А именно -соединение можно выразить через выборку и декартово произведение так:
R1 'F R2 F pR1 R2q :
Частным случаем -соединения, который чаще всего используется, является соединение по эквивалентности:
Определение 9. Соединением по эквивалентности (по равенству, эквисоединением) отноше-
ний R1 и R2 по атрибутам R1:AR1 и R2:AR2 называется -соединение этих отношений по условию
R1:AR1 R2:AR2 .
Эквисоединение обычно происходит по ключевым полям — первичный ключ в одном отношении и внешний ключ во втором отношении.
Существует еще тоже нередко используемое естественное соединение, для вычисления которого надо знать только отношения-операнды и ничего больше (остальное вычисляется самой операцией). Пусть A — множество общих атрибутов отношений R1 и R2 (т. е. имеют одинаковые имена и домены, а также имеют одинаковый смысл, A Ď HR1 и A Ď HR2 ), все остальные атрибуты различны.
Определение |
10. Естественным соединением отношений R1 и |
R2 называется отношение |
|||||
def |
' R2 |
def |
HR; BR , где |
|
|
|
|
R R1 |
|
def |
|
|
|
||
|
|
|
HR pHR1 zAq Y pHR2 zAq Y A1; |
|
|
||
|
|
|
def |
T1 Y T2 |
p@A P Aq T1:A T2 |
:A( |
: |
|
|
|
BR |
||||
|
|
|
|
|
|
|
|
Замечание. Таким образом, естественным соединением отношений R1 и R2 является их эквисоединение по всем общим атрибутам A, из результатов которого исключаются по одному (дублирующемуся) экземпляру каждого атрибута из A:
R1 ' R2 pHR1 zAqYpHR2 zAqYA |
R1 'pR1:a R2:aq R2 |
|
: |
|
č |
|
|
|
aPA |
|
|
Сейчас были рассмотрены внутренние соединения. Кроме них есть еще внешние соединения, которые отличаются от внутренних тем, что кортежи одного из отношений, не имеющие соответствия среди кортежей другого отношения, появляются в результирующем отношении с неопределенными значениями !2 во всех позициях атрибутов второго отношения, вместо того чтобы быть просто проигнорированными, как в обычном соединении.
Пусть опять же имеется некоторый оператор сравнения P tă; ď; ą; ě; ; u и задана предикатная формула F F pAR1 ; AR2 q R1:AR1 R2:AR2 .
Определение 11. Левым внешним -соединением отношений R1 и R2 по условию F называется от-
def
ношение R R1 'F R2 HR; BR , где
HR HR1'F R2 ;
!
BR BR1'F R2 Y T1 Y pAR12 ; DR12 ; !q Y : : : Y pARp2 ; DRp2 ; !q
T1 P BR1 ^ @T2 P BR2 qF pT1:AR1 ; T2:AR2 qy FALSE( :
Замечание. Левое внешнее -соединение отношений R1 и R2 отличается от -соединения лишь тем, что дополнительно добавляются кортежи, образованные кортежами отношения R1, части которых не входят в обычное -соединение, к которым добавляются атрибуты отношения R2 с неопределенными значениями !.
1 Заметим, что можно написать и pHR1 zAq Y pHR2 zAq Y A HR1 Y HR2 , но в этой упрощенной записи надо понимать, что атрибуты из множества A должны быть в HR только по одному экземпляру.
2 В реализациях неопределенные значения ! обычно обозначаются как NULL.
18