- •Базы данных
- •Лекция 1 Хранение данных Данные, информация
- •Системы хранения данных на основе файлов
- •База данных
- •Требования к субд
- •Администратор бд (абд)
- •Лекция 2 Модели данных Независимость данных
- •Модель, схема
- •Сетевая модель
- •Лекция 3 Ранние модели Иерархическая модель
- •Лекция 4 Пример базы данных, построенной на сетевой модели Постановка задачи
- •Диаграмма
- •Описание на яод
- •Лекция 5 Реляционная модель Принципы
- •Уточнения
- •Лекция 6 Методы хранения данных и доступа к ним
- •Последовательный метод
- •Прямой метод
- •Индексные методы
- •Индексно-последовательный метод
- •Индексно-произвольный метод
- •Инвертированные списки
- •Хеширование
- •Лекция 7 Реляционная алгебра: определения, изменение отношений
- •Изменение отношений во времени.
- •Лекция 8 Операции реляционной алгебры
- •Булевы операции
- •Выбор; свойства выбора
- •Проекция; свойства проекции
- •Лекция 9 Операции реляционной алгебры (продолжение) Соединение
- •Свойства соединения
- •Лекция 10 Операции реляционной алгебры (продолжение)
- •Деление
- •Постоянные отношения. Переименование атрибутов
- •Эквисоединение, естественное и -соединение
- •Реляционная алгебра. Полнота ограниченного множества операторов
- •Операторы расщепления и фактора
- •Лекция 11 Язык структурных запросов sql
- •Начальные понятия
- •Стандарт ansi
- •Типы данных
- •Интерактивный и встроенный sql
- •Синтаксис
- •Подразделы sql
- •Простейшие действия
- •Функции агрегирования
- •Группировка
- •Возможности форматирования
- •Лекция 12 Язык структурных запросов sql (продолжение) Соединение
- •Вложенные запросы
- •Связанные запросы
- •Предикаты, определенные на подзапросах
- •Объединение
- •Изменение базы данных
- •Лекция 13 Понятие о нормальных формах
- •1 Нормальная форма (1нф)
- •2 Нормальная форма (2нф)
- •3 Нормальная форма (3нф)
- •Нормальная форма Бойса-Кодда (нфбк)
- •4 Нормальная форма (4нф)
- •5 Нормальная форма (5нф) – проекция/соединение
- •Лекция 13 Проектирование данных Процессы проектирования
- •Концептуальное проектирование
- •Логическое проектирование
- •Средства создания модели
- •Лекция 14 Функциональные зависимости
- •Аксиомы вывода
- •Ориентированный ациклический граф вывода
- •Определение реляционной базы данных
- •Представление множества функциональных зависимостей
- •Лекция 15 Покрытия функциональных зависимостей
- •Лемма об эквивалентности фз
- •Неизбыточные покрытия
- •Посторонние атрибуты
- •Канонические покрытия
- •Структура неизбыточных покрытий
- •Оптимальные покрытия
- •3 Нормальная форма
- •Нормализация через декомпозицию и посредством синтеза
- •Нормальная форма Бойса-Кодда
- •Литература
Свойства соединения
Свойство 1. Имитация выбора.
С помощью оператора соединения найдём A=a(r) для отношения r(R). Для этого определим отношение s(A) с одним единственным кортежем t таким, что t(A) = a. Тогда r s = A=a(r).
Доказательство
r s = {t | tr r, ts s, tr = t(R), ts = t(A)} =
= {t | tr r, tr = t(R), t(A) = a} =
= {t | t(A) = a } = A=a(r).
Свойство 2. Обобщённая операция выбора.
Введём новое отношение s(A) с k кортежами t1, t2,…, tk, где ti(A) = ai и ai dom(A), i =1, 2,…, k. Тогда r s = A=a1(r) A=a2(r) … A=ak(r).
Свойство 3. Коммутативность оператора соединения.
Из определения следует, что r s = s r.
Свойство 4. Ассоциативность оператора соединения.
Для отношений q, r, s (q r) s = q (r s). Следовательно, последовательность соединений можно записывать без скобок.
Свойство 5. Многократные соединения.
Пусть r1(S1), r2(S2),…, rn(Sn) – отношения, R = S1S2…Sn. Обозначим S – последовательность схем S1, S2,…, Sn. Пусть t1, t2,…, tn – последовательность кортежей, ti ri, i = 1, 2,…, n.
Определение. Кортежи t1, t2,…, tn соединимы на S, если существует кортеж t на R, что ti = t(Si) для каждого i = 1, 2,…, n. Кортеж t называется результатом соединения кортежей t1, t2,…, tn на S.
Пример
r3 (A C)
a1
c2
a2
c2
r1 (A B)
a1
b1
a1
b2
a2
b1
r2 (B C)
b1
c2
b2
c1
Кортежи <a1 b1>, <b1 c2>, <a1 c2> соединимы с результатом <a1 b1 c2>, а кортежи <a2 b1>, <b1 c2>, <a2 c2> – c результатом <a2 b1 c2>:
r1 r2
r3 =
(A B C)
a1
b1
c2
a2
b1
c2
Конец примера
Если в определении принять n=2 и если кортежи t1 и t2 соединимы на S=S1, S2 с результатом t, то t1=t(S1), t2=t(S2), следовательно, tr(S1) r(S2). Обратно, если tr(S1) r(S2), то должны существовать t1 и t2 в r(S) такие, что t1=t(S1), t2=t(S2), то есть они соединимы на S с результатом t. Следовательно, r(S1) r(S2) состоит из результатов соединений соединимых на S кортежей t1 и t2 .
Лемма. Отношение r1 r2 … rn состоит из всех кортежей t, которые являются результатом соединения соединимых на S кортежей ti ri, i = 1, 2,…, n.
Не каждый кортеж каждого отношения может войти в соединение.
Определение. Отношения r1, r2,…, rn полностью соединимы, если каждый кортеж в каждом отношении является членом списка соединимых на S кортежей.
Пример
Из предыдущего примера <a1 b2> r1, <b2 c1> r2 не соединимы. При добавлении к r3 кортежа <a1 c1> отношения становятся полностью соединимыми с результатом
r1 r2
r3 =
(A B C)
a1
b1
c2
a1
b2
c1
a2
b1
c2
Конец примера
Свойство 6. Проекция соединения.
Свойство показывает связь проекции и соединения. Похоже, что они взаимообратны, но это не так.
Пусть r(R) и s(S) – отношения, q = r s, RS – схема q. Пусть r = R(q), тогда r r (для любого кортежа t из отношения q верно t(R) r, а r =t(R) t q).
В
r (A B)
a1
b1
a1
b2
s (B C)
b1
c1
rs (A B C)
a1
b1
c1
М
r (A B)
a1
b1
a1
b2
s (B C)
b1
c1
b2
c2
rs (A B C)
a1
b1
c1
a1
b2
c2
Ясно, что равенство может быть при соединении полностью соединимых отношений, но может быть и без этого.
Если s = S(q), то r = r и s = s тогда и только тогда, когда r и s – состоят из полностью соединимых кортежей, то есть полностью соединимы.
Свойство 7. Соединение проекций.
Поменяем местами проекции и соединения. Пусть q – отношение со схемой RS, r = R(q), s = S(q). Пусть q′= r s. Если t q, то t(R) r, t(S) s tq′, т.е. q′ q. При q′ = q отношение разложимо без потерь на схемы R и S.
Свойство 8. Соотношение операций объединения и соединения.
Пусть r и r – отношения со схемой R и s – отношение со схемой S. Покажем, что (rr) s = (r s)(r s). Обозначим левую часть равенства как q (rr) s, а правую буквой q (r s)(r s). Для кортежа tq найдутся кортежи tr и ts такие, что t = tr ts, причем trr или trr и tss. Если trr, то t r s, если же trr, то t r s, то есть q q. Чтобы установить включение q q, выберем tq. Тогда trs или trs, следовательно, t (rr) s. Включения q q и q q выполняются одновременно только в том случае, когда q = q.
