- •Предисловие
- •Основные функции систем управления базами данных (СУБД)
- •Основные понятия
- •Преимущества использования баз данных
- •Функции систем управления базами данных
- •Литература
- •Реляционная модель данных
- •Структуры данных. Фундаментальные свойства отношений
- •Целостность данных. Реляционные ключи
- •Манипулирование данными
- •Реляционная алгебра Кодда
- •Операции
- •Объединение
- •Пересечение
- •Разность
- •Декартово произведение
- •Сокращение (выборка, ограничение, селекция)
- •Проекция
- •Соединения
- •Деление
- •Приоритеты операций
- •Базис алгебры и ства операций
- •Базис
- •Свойства операций
- •Ограничения реляционной алгебры
- •Литература
- •Реляционное исчисление
- •Исчисление кортежей
- •Эквивалентность исчисления кортежей и реляционной алгебры
- •Исчисление доменов
- •Литература
- •Случаи неполной информации и ω-значения
- •Концепция трехзначной логики
- •Логические операторы
- •Кванторы
- •Арифметические операции и операции сравнения
- •ω-значения и домены
- •ω-значения и операторы реляционной алгебры
- •ω-значения и агрегирующие функции
- •Проблема интерпретации
- •ω-значения и ограничения целостности
- •Первичные ключи
- •Внешние ключи
- •Литература
- •Семантическое проектирование реляционных баз данных на основе ER-модели
- •Общий подход семантического моделирования
- •Основные понятия
- •Проектирование базы данных с помощью ER-модели
- •Литература
- •Проектирование реляционных баз данных при помощи нормализации
- •Жизненный цикл системы баз данных
- •Функциональные зависимости
- •Понятие функциональной зависимости
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Неприводимые множества зависимостей
- •Декомпозиция без потерь и функциональные зависимости
- •Диаграммы функциональных зависимостей
- •Сохранение независимости в смысле Риссанена
- •Многозначные зависимости
- •Нормализация
- •Понятие нормализации и её причины
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса–Кодда
- •Четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Литература
- •Основные принципы хранения данных во внешней памяти
- •Страничная организация хранения данных
- •Управление буферами внутренней памяти
- •Простая файловая организация страниц
- •Неупорядоченный файл
- •Упорядоченный файл
- •Индексирование
- •Индексно-прямой метод доступа
- •Индексно-последовательный метод доступа
- •Индекс на основе B+-деревья
- •Хэширование
- •Индексированные кластеры
- •Хэшированные кластеры
- •Литература
- •Управление транзакциями и синхронизация в реляционных СУБД
- •Понятие транзакции
- •Фундаментальные свойства транзакций
- •Изолированность транзакций
- •Синхронизационные блокировки
- •Простые блокировки
- •Гранулированные (намеренные) блокировки
- •Предикатные блокировки
- •Тупиковые ситуации
- •Метод временных меток
- •Механизм выделения версий данных
- •Литература
- •Журнализация и восстановление в реляционных СУБД
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Восстановление после жесткого сбоя
- •Литература
- •Выполнение и оптимизация запросов в реляционных СУБД
- •Процесс оптимизации запроса
- •Преобразование запроса во внутреннюю форму
- •Преобразование запроса в каноническую форму
- •Выбор потенциальных низкоуровневых процедур
- •Генерация различных вариантов планов вычисления запроса и выбор плана с минимальными затратами
- •Низкоуровневая оптимизация операции выборки
- •Низкоуровневая оптимизация операции соединения
- •Литература
По определению стрелки зависимостей должны начинаться с каждого потенциального ключа, поскольку одному значению такого ключа всегда соответствует еще по крайней мере одно какое-либо значение; такие стрелки нельзя удалять ни при каких условиях.
Если же на диаграмме имеются какие-то другие стрелки, то возникают сложности. Таким образом, процедуру нормализации можно довольно неформально охарактеризовать как процедуру исключения стрелок, которые не начинаются с потенциальных ключей.
Например, пусть имеется переменная отношения R с за-
головком {Order_id, Product_id, Supplier_id, Supplier, Product, Price, Quantity, Order_date} и множество его функциональных зависимостей:
Product_id Ñ Product; |
|
|
Product_id Ñ Price; |
|
|
Order_id Ñ Order_date; |
|
|
Order_id |
Ñ Supplier_id; |
|
tOrder_id; Product_idu |
Ñ Quantity; |
Рис. 1. Пример диаграммы функци- |
Supplier_id |
Ñ Supplier |
ональных зависимостей |
Диаграмма изображена на рис. 1. |
|
|
Сохранение независимости в смысле Риссанена
В процессе нормализации часто возникает ситуация, когда переменная отношения может быть подвергнута декомпозиции без потерь несколькими разными способами.
Определим понятие независимых проекций в смысле Риссанена. Пусть переменная отношения R в результате декомпозиции без потерь была разбита на проекции R1; R2; : : : ; Rn.
Определение 10. Проекции R1; R2; : : : ; Rn называются независимыми в смысле Риссанена тогда и только тогда, когда всякая функциональная зависимость в R также имеет место в естественном соединении всех-проекций Ri, i 1; n.
Вариант декомпозиции, обеспечивающий независимость проекций в приведенном выше смысле, в общем случае предпочтительнее вариантов, в которых проекции будут зависимы.
Теорема (Риссанен; Rissanen). Проекции R1 HR1 ; BR1 и R2 HR2 ; BR2 переменной отношения R HR; BR при HR1 X HR2 и HR1 Y HR2 HR будут независимы в смысле Риссанена тогда
итолько тогда, когда
1)каждая функциональная зависимость в R является логическим следствием функциональных зависимостей в R1 и R2
2)и общие атрибуты проекций R1 и R2 образуют потенциальный ключ по крайней мере для одной из этих двух проекций.
Например, |
пусть |
задано |
множество |
функциональных |
зависимостей |
S tA Ñ B; A Ñ C; B Ñ Cu переменной отношения R с атрибутами tA; B; Cu и пусть атрибут A является первичным ключом. Существует несколько способов декомпозиции переменной отношения R на проекции с общим атрибутом:
1.R1 A;BpRq с первичным ключом A и R2 A;CpRq с первичным ключом A. У R1 есть только одна функциональная зависимость A Ñ B, а у R2 — A Ñ C, но из этих двух зависимостей не получить B Ñ C, а значит, по теореме Риссанена проекции являются зависимыми, хоть и имеют общий атрибут A в виде первичного ключа.
2.R1 A;BpRq с первичным ключом A и R2 B;CpRq с потенциальным ключом B. У R1 есть зависимость A Ñ B, а у R2 — B Ñ C. Из этих функциональных зависимостей можно выразить
40