- •Предисловие
- •Основные функции систем управления базами данных (СУБД)
- •Основные понятия
- •Преимущества использования баз данных
- •Функции систем управления базами данных
- •Литература
- •Реляционная модель данных
- •Структуры данных. Фундаментальные свойства отношений
- •Целостность данных. Реляционные ключи
- •Манипулирование данными
- •Реляционная алгебра Кодда
- •Операции
- •Объединение
- •Пересечение
- •Разность
- •Декартово произведение
- •Сокращение (выборка, ограничение, селекция)
- •Проекция
- •Соединения
- •Деление
- •Приоритеты операций
- •Базис алгебры и ства операций
- •Базис
- •Свойства операций
- •Ограничения реляционной алгебры
- •Литература
- •Реляционное исчисление
- •Исчисление кортежей
- •Эквивалентность исчисления кортежей и реляционной алгебры
- •Исчисление доменов
- •Литература
- •Случаи неполной информации и ω-значения
- •Концепция трехзначной логики
- •Логические операторы
- •Кванторы
- •Арифметические операции и операции сравнения
- •ω-значения и домены
- •ω-значения и операторы реляционной алгебры
- •ω-значения и агрегирующие функции
- •Проблема интерпретации
- •ω-значения и ограничения целостности
- •Первичные ключи
- •Внешние ключи
- •Литература
- •Семантическое проектирование реляционных баз данных на основе ER-модели
- •Общий подход семантического моделирования
- •Основные понятия
- •Проектирование базы данных с помощью ER-модели
- •Литература
- •Проектирование реляционных баз данных при помощи нормализации
- •Жизненный цикл системы баз данных
- •Функциональные зависимости
- •Понятие функциональной зависимости
- •Тривиальные и нетривиальные зависимости
- •Замыкание множества зависимостей
- •Неприводимые множества зависимостей
- •Декомпозиция без потерь и функциональные зависимости
- •Диаграммы функциональных зависимостей
- •Сохранение независимости в смысле Риссанена
- •Многозначные зависимости
- •Нормализация
- •Понятие нормализации и её причины
- •Первая, вторая и третья нормальные формы
- •Нормальная форма Бойса–Кодда
- •Четвертая нормальная форма
- •Зависимости соединения и пятая нормальная форма
- •Литература
- •Основные принципы хранения данных во внешней памяти
- •Страничная организация хранения данных
- •Управление буферами внутренней памяти
- •Простая файловая организация страниц
- •Неупорядоченный файл
- •Упорядоченный файл
- •Индексирование
- •Индексно-прямой метод доступа
- •Индексно-последовательный метод доступа
- •Индекс на основе B+-деревья
- •Хэширование
- •Индексированные кластеры
- •Хэшированные кластеры
- •Литература
- •Управление транзакциями и синхронизация в реляционных СУБД
- •Понятие транзакции
- •Фундаментальные свойства транзакций
- •Изолированность транзакций
- •Синхронизационные блокировки
- •Простые блокировки
- •Гранулированные (намеренные) блокировки
- •Предикатные блокировки
- •Тупиковые ситуации
- •Метод временных меток
- •Механизм выделения версий данных
- •Литература
- •Журнализация и восстановление в реляционных СУБД
- •Журнализация и буферизация
- •Индивидуальный откат транзакции
- •Восстановление после мягкого сбоя
- •Восстановление после жесткого сбоя
- •Литература
- •Выполнение и оптимизация запросов в реляционных СУБД
- •Процесс оптимизации запроса
- •Преобразование запроса во внутреннюю форму
- •Преобразование запроса в каноническую форму
- •Выбор потенциальных низкоуровневых процедур
- •Генерация различных вариантов планов вычисления запроса и выбор плана с минимальными затратами
- •Низкоуровневая оптимизация операции выборки
- •Низкоуровневая оптимизация операции соединения
- •Литература
Лекции
по дисциплине
«Технологии баз данных»
Версия 0.8.1
Санкт-Петербург
2013 год
Содержание
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
4 |
||
§1. |
Основные функции систем управления базами данных (СУБД) . . . . . . . . . . . . . |
5 |
|
|
1.1. |
Основные понятия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
5 |
|
1.2. |
Преимущества использования баз данных . . . . . . . . . . . . . . . . . . . . . |
7 |
|
1.3. |
Функции систем управления базами данных . . . . . . . . . . . . . . . . . . . . |
8 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
8 |
|
§2. |
Реляционная модель данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
9 |
|
|
2.1. |
Структуры данных. Фундаментальные свойства отношений . . . . . . . . . . . |
9 |
|
2.2. |
Целостность данных. Реляционные ключи . . . . . . . . . . . . . . . . . . . . . |
10 |
|
2.3. |
Манипулирование данными . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
13 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
|
§3. Реляционная алгебра Кодда . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
14 |
||
|
3.1. |
Операции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
|
|
Объединение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
|
|
Пересечение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
|
|
Разность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
15 |
|
|
Декартово произведение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
16 |
|
|
Сокращение (выборка, ограничение, селекция) . . . . . . . . . . . . . . . . . . |
16 |
|
|
Проекция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
|
|
Соединения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
17 |
|
|
Деление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
19 |
|
3.2. |
Приоритеты операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
|
3.3. |
Базис алгебры и ства операций . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
|
|
Базис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
20 |
|
|
Свойства операций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
21 |
|
3.4. |
Ограничения реляционной алгебры . . . . . . . . . . . . . . . . . . . . . . . . . |
22 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
22 |
|
§4. |
Реляционное исчисление . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
22 |
|
|
4.1. |
Исчисление кортежей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
23 |
|
|
Эквивалентность исчисления кортежей и реляционной алгебры . . . . . . . . . |
24 |
|
4.2. |
Исчисление доменов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
25 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
25 |
|
§5. Случаи неполной информации и ω-значения . . . . . . . . . . . . . . . . . . . . . . . |
26 |
||
|
5.1. |
Концепция трехзначной логики . . . . . . . . . . . . . . . . . . . . . . . . . . . |
26 |
|
|
Логические операторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
26 |
|
|
Кванторы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
|
|
Арифметические операции и операции сравнения . . . . . . . . . . . . . . . . |
27 |
|
5.2. |
ω-значения и домены . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
27 |
|
5.3. |
ω-значения и операторы реляционной алгебры . . . . . . . . . . . . . . . . . . . |
28 |
|
5.4. |
ω-значения и агрегирующие функции . . . . . . . . . . . . . . . . . . . . . . . |
28 |
|
5.5. |
Проблема интерпретации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
|
5.6. |
ω-значения и ограничения целостности . . . . . . . . . . . . . . . . . . . . . . |
29 |
|
|
Первичные ключи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
|
|
Внешние ключи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
29 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
30 |
1
§6. |
Семантическое проектирование реляционных баз данных на основе ER-модели . . . |
30 |
|
|
6.1. |
Ограниченность реляционной модели при проектировании баз данных . . . . . |
30 |
|
6.2. |
Общий подход семантического моделирования . . . . . . . . . . . . . . . . . . |
30 |
|
6.3. |
Модель «сущность–связь». ER-диаграмма . . . . . . . . . . . . . . . . . . . . . |
31 |
|
|
Основные понятия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
31 |
|
|
Диаграмма «сущностей–связей» . . . . . . . . . . . . . . . . . . . . . . . . . . |
32 |
|
|
Проектирование базы данных с помощью ER-модели . . . . . . . . . . . . . . |
33 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
34 |
|
§7. |
Проектирование реляционных баз данных при помощи нормализации . . . . . . . . . |
35 |
|
|
7.1. |
Жизненный цикл системы баз данных . . . . . . . . . . . . . . . . . . . . . . . |
35 |
|
7.2. |
Функциональные зависимости . . . . . . . . . . . . . . . . . . . . . . . . . . . |
36 |
|
|
Понятие функциональной зависимости . . . . . . . . . . . . . . . . . . . . . . |
36 |
|
|
Тривиальные и нетривиальные зависимости . . . . . . . . . . . . . . . . . . . |
36 |
|
|
Замыкание множества зависимостей . . . . . . . . . . . . . . . . . . . . . . . |
37 |
|
|
Неприводимые множества зависимостей . . . . . . . . . . . . . . . . . . . . . |
38 |
|
|
Декомпозиция без потерь и функциональные зависимости . . . . . . . . . . . . |
39 |
|
|
Диаграммы функциональных зависимостей . . . . . . . . . . . . . . . . . . . |
39 |
|
|
Сохранение независимости в смысле Риссанена . . . . . . . . . . . . . . . . . |
40 |
|
7.3. |
Многозначные зависимости . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
41 |
|
7.4. |
Нормализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
42 |
|
|
Понятие нормализации и её причины . . . . . . . . . . . . . . . . . . . . . . . |
42 |
|
|
Первая, вторая и третья нормальные формы . . . . . . . . . . . . . . . . . . . |
42 |
|
|
Нормальная форма Бойса–Кодда . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
|
Четвертая нормальная форма . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
|
|
Зависимости соединения и пятая нормальная форма . . . . . . . . . . . . . . . |
45 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
46 |
|
§8. |
Основные принципы хранения данных во внешней памяти . . . . . . . . . . . . . . . |
47 |
|
|
8.1. |
Страничная организация хранения данных . . . . . . . . . . . . . . . . . . . . . |
47 |
|
8.2. |
Управление буферами внутренней памяти . . . . . . . . . . . . . . . . . . . . . |
49 |
|
8.3. |
Простая файловая организация страниц . . . . . . . . . . . . . . . . . . . . . . |
50 |
|
|
Неупорядоченный файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
50 |
|
|
Упорядоченный файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
51 |
|
8.4. |
Индексирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
51 |
|
|
Индексно-прямой метод доступа . . . . . . . . . . . . . . . . . . . . . . . . . |
52 |
|
|
Индексно-последовательный метод доступа . . . . . . . . . . . . . . . . . . . |
53 |
|
|
Индекс на основе B+-деревья . . . . . . . . . . . . . . . . . . . . . . . . . . . |
53 |
|
|
Хэширование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
55 |
|
8.5. |
Кластеризованные и некластеризованные отношения в Oracle Database . . . . . |
56 |
|
|
Индексированные кластеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
56 |
|
|
Хэшированные кластеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
57 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
57 |
2
§9. Управление транзакциями и синхронизация в реляционных СУБД . . . . |
. . . . . . . |
57 |
|
9.1. |
Понятие транзакции . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
58 |
9.2. |
Фундаментальные свойства транзакций . . . . . . . . . . . . . . . |
. . . . . . . |
60 |
9.3. |
Изолированность транзакций . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
61 |
9.4. |
Синхронизационные блокировки . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
62 |
|
Простые блокировки . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
62 |
|
Гранулированные (намеренные) блокировки . . . . . . . . . . . . |
. . . . . . . |
63 |
|
Предикатные блокировки . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
66 |
|
Тупиковые ситуации . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
67 |
9.5. |
Метод временных меток . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
68 |
9.6. |
Механизм выделения версий данных . . . . . . . . . . . . . . . . . |
. . . . . . . |
68 |
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
69 |
|
§10. Журнализация и восстановление в реляционных СУБД . . . . . . . . . . |
. . . . . . . |
69 |
|
10.1. Журнализация и буферизация . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
70 |
|
10.2. Индивидуальный откат транзакции . . . . . . . . . . . . . . . . . . |
. . . . . . . |
71 |
|
10.3. Восстановление после мягкого сбоя . . . . . . . . . . . . . . . . . |
. . . . . . . |
71 |
|
10.4. Восстановление после жесткого сбоя . . . . . . . . . . . . . . . . . |
. . . . . . . |
73 |
|
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
73 |
|
§11. Выполнение и оптимизация запросов в реляционных СУБД . . . . . . . |
. . . . . . . |
73 |
|
11.1. Процесс оптимизации запроса . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
74 |
|
|
Преобразование запроса во внутреннюю форму . . . . . . . . . . |
. . . . . . . |
74 |
|
Преобразование запроса в каноническую форму . . . . . . . . . . |
. . . . . . . |
75 |
|
Выбор потенциальных низкоуровневых процедур . . . . . . . . . |
. . . . . . . |
76 |
|
Генерация различных вариантов планов вычисления запроса и выбор плана с ми- |
|
|
|
нимальными затратами . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
77 |
11.2. Низкоуровневая оптимизация операции выборки . . . . . . . . . . |
. . . . . . . |
77 |
|
11.3. Низкоуровневая оптимизация операции соединения . . . . . . . . . |
. . . . . . . |
78 |
|
11.4. Низкоуровневая оптимизация операций проекции, объединения, |
пересечения |
|
|
|
и разности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
79 |
Литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
. . . . . . . |
80 |
3
Предисловие
Если Вы обнаружили какие-либо ошибки в изложенном далее материале или же у Вас имеются предложения по его доработке, пожалуйста, сообщите об этом автору, отправив письмо с соответствующим содержанием на почтовый ящик: alprobit@gmail.com .
4