
- •Базы данных, знаний и экспертные системы
- •1 . Элементы реляционной алгебры
- •1.1 . Обзор реляционной алгебры
- •1.2 . Замкнутость реляционной алгебры
- •1.3 . Отношения, совместимые по типу
- •1.3.1 Оператор переименования атрибутов
- •1.4.1 Объединение
- •1.4.2 Пересечение
- •1.4.3 Вычитание
- •1.4.4 Декартово произведение
- •1.5 . Специальные реляционные операторы
- •1.5.1 Выборка (ограничение, селекция)
- •1.5.2 Проекция
- •1.5.3 Соединение
- •1.5.3.1 Общая операция соединения
- •1.5.3.2 Тэта-соединение
- •1.5.3.3 Экви-соединение
- •1.5.3.4 Естественное соединение
- •1.5.3.5 Деление
- •1.6 . Примеры использования реляционных операторов
- •1.6.1 Зависимые реляционные операторы
- •1.6.2 Оператор соединения
- •1.6.3 Оператор пересечения
- •1.6.4 Оператор деления
- •1.6.5 Примитивные реляционные операторы
- •1.6.6 Оператор декартового произведения
- •1.6.7 Оператор проекции
- •1.6.8 Оператор выборки
- •1.6.9 Операторы объединения и вычитания
- •1.6.10 Запросы, невыразимые средствами реляционной алгебры
- •1.7 . Выводы
- •2 Нормальные формы отношений
- •2.1 Этапы разработки базы данных
- •2.2 . Критерии оценки качества логической модели данных
- •2.2.1 Адекватность базы данных предметной области
- •2.2.2 Легкость разработки и сопровождения базы данных
- •2.2.4 Скорость операций выборки данных
- •2.3 . Основной пример
- •2.3.1 . 1НФ (Первая Нормальная Форма)
- •2.3.1.1 Аномалии обновления
- •2.3.1.2 Аномалии вставки (INSERT)
- •2.3.1.3 Аномалии обновления (UPDATE)
- •2.3.1.4 Аномалии удаления (DELETE)
- •2.4 . Функциональные зависимости
- •2.4.1 Определение функциональной зависимости
- •2.4.2 Функциональные зависимости отношений и математическое понятие функциональной зависимости
- •2.4.3 2НФ (Вторая Нормальная Форма)
- •2.5 . Анализ декомпозированных отношений
- •2.5.1 Оставшиеся аномалии вставки (INSERT)
- •2.5.2 Оставшиеся аномалии обновления (UPDATE)
- •2.5.3 Оставшиеся аномалии удаления (DELETE)
- •2.5.4 3НФ (Третья Нормальная Форма)
- •2.6 . Алгоритм нормализации (приведение к 3НФ)
- •2.7 . Анализ критериев для нормализованных и ненормализованных моделей данных
- •2.7.1 Сравнение нормализованных и ненормализованных моделей
- •2.9 . Выводы
- •3 . Нормальные формы более высоких порядков
- •3.2 . 4НФ (Четвертая Нормальная Форма)
- •3.3 . 5НФ (Пятая Нормальная Форма)
- •3.4 . Продолжение алгоритма нормализации (приведение к 5НФ)
- •3.5 . Выводы
- •4 . ПОДЪЯЗЫК ДАННЫХ, ОСНОВАННЫЙ НА РЕЛЯЦИОННОЙ АЛГЕБРЕ
- •4.1 1. Введение
- •4.2 . Традиционный набор операций
- •4.2.1 Специальные операции над отношениями
- •4.2.2 4. Примеры выборки
- •4.2.3 Примеры операций запоминания
- •4.2.4 Заключение
- •5 . ПОДЪЯЗЫК ДАННЫХ, ОСНОВАННЫЙ НА РЕЛЯЦИОННОМ ИСЧИСЛЕНИИ
- •5.1 . Введение
- •5.2 . Допущения и определения
- •5.3 . Операции выборки
- •5.4 . Операции запоминания
- •5.5 . Библиотечные функции
- •5.6 . Заключение
- •6 . Query-by-Example: язык запросов по образцу
- •6.1 . Выборка
- •6.2 . Вставки, удаления, модификации
- •6.3 . Создание таблицы
- •6.4 . Заключение
- •6.5 . Приложение
- •7 . Элементы языка SQL
- •7.1 . Операторы SQL
- •Операторы защиты и управления данными
- •7.2 . Примеры использования операторов манипулирования данными
- •INSERT - вставка строк в таблицу
- •UPDATE - обновление строк в таблице
- •DELETE - удаление строк в таблице
- •7.3 . Примеры использования оператора SELECT
- •7.3.1 Отбор данных из одной таблицы
- •7.3.2 Отбор данных из нескольких таблиц
- •7.3.3 Использование имен корреляции (алиасов, псевдонимов)
- •7.3.4 Использование агрегатных функций в запросах
- •7.3.5 Использование агрегатных функций с группировками
- •7.3.6 Использование подзапросов
- •7.3.7 Использование объединения, пересечения и разности
- •7.3.9 Синтаксис оператора выборки
- •7.3.10 . Синтаксис соединенных таблиц
- •7.3.11 . Синтаксис условных выражений раздела WHERE
- •7.4 . Порядок выполнения оператора SELECT
- •7.4.1 Стадия 1. Выполнение одиночного оператора SELECT
- •7.4.2 Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECT
- •7.4.3 Стадия 3. Упорядочение результата
- •7.5 . Как на самом деле выполняется оператор SELECT
- •7.6 . Реализация реляционной алгебры средствами оператора SELECT (Реляционная полнота SQL)
- •7.6.1 Оператор декартового произведения
- •7.6.2 Оператор проекции
- •7.6.3 Оператор выборки
- •7.6.4 Оператор объединения
- •7.6.5 Оператор вычитания
- •7.6.6 Оператор соединения
- •7.6.7 Оператор пересечения
- •7.6.8 Оператор деления
- •7.7 . Выводы
- •8 . Транзакции и целостность баз данных
- •8.1 . Пример нарушения целостности базы
- •8.2 . Понятие транзакции
- •8.2.1 Ограничения целостности
- •8.2.2 Классификация ограничений целостности
- •8.2.2.1 Классификация ограничений целостности по способам реализации
- •8.2.2.2 Классификация ограничений целостности по времени проверки
- •8.2.2.3 Классификация ограничений целостности по области действия
- •8.2.2.3.1 Ограничения домена
- •8.2.2.3.2 Ограничения атрибута
- •8.2.2.3.3 Ограничения кортежа
- •8.2.2.3.4 Ограничения отношения
- •8.2.2.3.5 Ограничения базы данных
- •8.3 . Реализация декларативных ограничений целостности средствами SQL
- •8.3.1 Общие принципы реализации ограничений средствами SQL
- •8.3.2 Синтаксис ограничений стандарта SQL
- •8.3.3 Синтаксис операторов SQL, использующих ограничения
- •8.4 . Выводы
- •9 . Транзакции и параллелизм
- •9.1 . Работа транзакций в смеси
- •9.2 . Проблемы параллельной работы транзакций
- •9.2.1 Проблема потери результатов обновления
- •9.2.3 Проблема несовместимого анализа
- •9.2.3.1 Неповторяемое считывание
- •9.2.3.2 Фиктивные элементы (фантомы)
- •9.2.3.3 Собственно несовместимый анализ
- •9.3 . Конфликты между транзакциями
- •9.4 . Блокировки
- •9.4.1 Решение проблем параллелизма при помощи блокировок
- •9.4.1.1 Проблема потери результатов обновления
- •9.4.1.2 Проблема незафиксированной зависимости (чтение "грязных" данных, неаккуратное считывание)
- •9.4.1.3 Проблема несовместимого анализа
- •9.4.1.3.1 Неповторяемое считывание
- •9.4.1.3.2 Фиктивные элементы (фантомы)
- •9.4.1.3.3 Собственно несовместимый анализ
- •9.5 . Разрешение тупиковых ситуаций
- •9.5.1 Преднамеренные блокировки
- •9.5.3 Метод временных меток
- •9.5.4 Механизм выделения версий данных
- •9.6 . Теорема Есварана о сериализуемости
- •9.7.1 Уровни изоляции
- •9.7.2 Синтаксис операторов SQL, определяющих уровни изоляции
- •9.8 . Выводы
- •10 . Транзакции и восстановление данных
- •10.1.1 Индивидуальный откат транзакции
- •10.1.2 Восстановление после мягкого сбоя
- •10.1.3 Восстановление после жесткого сбоя
- •11 . Представление знаний в интеллектуальных системах
- •11.1 . Введение
- •11.2 . Данные и знания. Основные определения
- •11.3.1 Особенности знаний:
- •11.6.1 Компоненты продукционных систем
- •11.6.2 Классификация ядер продукции.
- •11.6.3 Стратегии решений организации поиска
1
Базы данных, знаний и экспертные системы
Методическое пособие для студентов 3-4 курсов специальности 40 01 01 «Программное обеспечение информационных технологий»
ЧАСТЬ 2 Автор к.т.н., доцент кафедры ПОИТ БГУИР
Копачев Алексей Геннадьевич
Базы данных, знаний и экспертные системы.................................................................... |
1 |
|||
1 |
. Элементы реляционной алгебры............................................................................... |
5 |
||
|
1.1 |
. Обзор реляционной алгебры....................................................................... |
5 |
|
|
1.2 |
. Замкнутость реляционной алгебры............................................................ |
5 |
|
|
1.3 |
. Отношения, совместимые по типу............................................................. |
6 |
|
|
1.3.1 |
Оператор переименования атрибутов............................................ |
6 |
|
|
1.4 |
. Теоретико-множественные операторы...................................................... |
7 |
|
|
1.4.1 |
Объединение......................................................................................... |
7 |
|
|
1.4.2 |
Пересечение.......................................................................................... |
8 |
|
|
1.4.3 |
Вычитание.............................................................................................. |
9 |
|
|
1.4.4 |
Декартово произведение.................................................................... |
9 |
|
|
1.5 |
. Специальные реляционные операторы.................................................... |
10 |
|
|
1.5.1 |
Выборка (ограничение, селекция).................................................. |
10 |
|
|
1.5.2 |
Проекция............................................................................................... |
11 |
|
|
1.5.3 |
Соединение.......................................................................................... |
12 |
|
|
1.6 |
. Примеры использования реляционных операторов............................... |
17 |
|
|
1.6.1 |
Зависимые реляционные операторы............................................ |
18 |
|
|
1.6.2 |
Оператор соединения....................................................................... |
18 |
|
|
1.6.3 |
Оператор пересечения..................................................................... |
18 |
|
|
1.6.4 |
Оператор деления.............................................................................. |
19 |
|
|
1.6.5 |
Примитивные реляционные операторы....................................... |
19 |
|
|
1.6.6 |
Оператор декартового произведения........................................... |
19 |
|
|
1.6.7 |
Оператор проекции............................................................................ |
19 |
|
|
1.6.8 |
Оператор выборки.............................................................................. |
19 |
|
|
1.6.9 |
Операторы объединения и вычитания......................................... |
19 |
|
|
1.6.10 |
Запросы, невыразимые средствами реляционной алгебры... |
19 |
|
|
1.7 |
. Выводы........................................................................................................ |
20 |
|
2 |
Нормальные формы отношений................................................................................ |
20 |
||
|
2.1 |
Этапы разработки базы данных.................................................................. |
20 |
|
|
2.2 |
. Критерии оценки качества логической модели данных........................ |
23 |
|
|
2.2.1 |
Адекватность базы данных предметной области.............................. |
24 |
|
|
2.2.2 |
Легкость разработки и сопровождения базы данных ....................... |
24 |
2.2.3Скорость операций обновления данных (вставка, обновление,
удаление).............................................................................................................. |
25 |
2.2.4 Скорость операций выборки данных.................................................. |
26 |
2.3 . Основной пример....................................................................................... |
26 |
2.3.1 . 1НФ (Первая Нормальная Форма) .................................................... |
27 |
|
2 |
2.4 . Функциональные зависимости................................................................. |
30 |
2.4.1 Определение функциональной зависимости...................................... |
30 |
2.4.2Функциональные зависимости отношений и математическое
понятие функциональной зависимости............................................................ |
32 |
||
2.4.3 |
2НФ (Вторая Нормальная Форма)....................................................... |
33 |
|
2.5 |
. Анализ декомпозированных отношений................................................. |
34 |
|
2.5.1 Оставшиеся аномалии вставки (INSERT) .......................................... |
35 |
||
2.5.2 Оставшиеся аномалии обновления (UPDATE).................................. |
35 |
||
2.5.3 Оставшиеся аномалии удаления (DELETE)....................................... |
36 |
||
2.5.4 |
3НФ (Третья Нормальная Форма) ....................................................... |
36 |
|
2.6 |
. Алгоритм нормализации (приведение к 3НФ)........................................ |
37 |
2.7. Анализ критериев для нормализованных и ненормализованных
моделей данных...................................................................................................... |
39 |
|
2.7.1 |
Сравнение нормализованных и ненормализованных моделей........ |
39 |
2.7.2 |
OLTP и OLAP-системы........................................................................ |
39 |
2.8. Корректность процедуры нормализации - декомпозиция без потерь.
Теорема Хеза........................................................................................................... |
41 |
|
2.9 |
. Выводы........................................................................................................ |
45 |
3 . Нормальные формы более высоких порядков....................................................... |
46 |
|
3.1 |
. НФБК (Нормальная Форма Бойса-Кодда)............................................... |
46 |
3.2 |
. 4НФ (Четвертая Нормальная Форма) ...................................................... |
50 |
3.3 |
. 5НФ (Пятая Нормальная Форма) ............................................................. |
55 |
3.4 |
. Продолжение алгоритма нормализации (приведение к 5НФ) .............. |
59 |
3.5 |
. Выводы........................................................................................................ |
60 |
4 . ПОДЪЯЗЫК ДАННЫХ, ОСНОВАННЫЙ НА РЕЛЯЦИОННОЙ АЛГЕБРЕ....61
4.1 |
1. Введение ................................................................................................... |
61 |
|
4.2 |
. Традиционный набор операций................................................................ |
62 |
|
4.2.1 Специальные операции над отношениями......................................... |
63 |
||
4.2.2 |
4. Примеры выборки............................................................................. |
66 |
|
4.2.3 |
Примеры операций запоминания........................................................ |
67 |
|
4.2.4 |
Заключение............................................................................................ |
67 |
5 . ПОДЪЯЗЫК ДАННЫХ, ОСНОВАННЫЙ НА РЕЛЯЦИОННОМ |
|
|
ИСЧИСЛЕНИИ.................................................................................................................. |
68 |
|
5.1 |
. Введение ..................................................................................................... |
68 |
5.2 |
. Допущения и определения........................................................................ |
69 |
5.3 |
. Операции выборки..................................................................................... |
70 |
5.4 |
. Операции запоминания............................................................................. |
77 |
5.5 |
. Библиотечные функции............................................................................ |
80 |
5.6 |
. Заключение................................................................................................. |
83 |
6 . Query-by-Example: язык запросов по образцу....................................................... |
84 |
|
6.1 |
. Выборка....................................................................................................... |
85 |
6.2 |
. Вставки, удаления, модификации............................................................ |
96 |
6.3 |
. Создание таблицы...................................................................................... |
98 |
6.4 |
. Заключение............................................................................................... |
101 |
6.5 |
. Приложение.............................................................................................. |
102 |
|
|
|
3 |
7 . Элементы языка SQL.............................................................................................. |
102 |
||
7.1 |
. Операторы SQL ........................................................................................ |
103 |
|
7.2 |
. Примеры использования операторов манипулирования данными .... |
104 |
|
7.3 |
. Примеры использования оператора SELECT ....................................... |
104 |
|
7.3.1 Отбор данных из одной таблицы....................................................... |
105 |
||
7.3.2 Отбор данных из нескольких таблиц................................................ |
107 |
||
7.3.3 |
Использование имен корреляции (алиасов, псевдонимов)............. |
110 |
|
7.3.4 Использование агрегатных функций в запросах............................. |
113 |
||
7.3.5 Использование агрегатных функций с группировками.................. |
113 |
||
7.3.6 |
Использование подзапросов.............................................................. |
114 |
|
7.3.7 Использование объединения, пересечения и разности................... |
117 |
7.3.8Синтаксис оператора выборки данных (SELECT). BNF-нотация.118
7.3.9 |
Синтаксис оператора выборки........................................................... |
118 |
7.3.10 |
. Синтаксис соединенных таблиц...................................................... |
120 |
7.3.11 |
. Синтаксис условных выражений раздела WHERE ....................... |
122 |
7.4 . Порядок выполнения оператора SELECT ............................................. |
124 |
|
7.4.1 |
Стадия 1. Выполнение одиночного оператора SELECT................. |
124 |
7.4.2Стадия 2. Выполнение операций UNION, EXCEPT, INTERSECT 125
7.4.3 Стадия 3. Упорядочение результата ................................................. |
125 |
7.5 . Как на самом деле выполняется оператор SELECT............................. |
125 |
7.6. Реализация реляционной алгебры средствами оператора SELECT
(Реляционная полнота SQL)................................................................................ |
126 |
|
7.6.1 |
Оператор декартового произведения................................................ |
126 |
7.6.2 |
Оператор проекции............................................................................. |
127 |
7.6.3 |
Оператор выборки............................................................................... |
127 |
7.6.4 |
Оператор объединения....................................................................... |
127 |
7.6.5 |
Оператор вычитания........................................................................... |
127 |
7.6.6 |
Оператор соединения.......................................................................... |
127 |
7.6.7 |
Оператор пересечения........................................................................ |
128 |
7.6.8 |
Оператор деления................................................................................ |
128 |
7.7 |
. Выводы...................................................................................................... |
129 |
|
8 . Транзакции и целостность баз данных................................................................. |
130 |
||
8.1 |
. Пример нарушения целостности базы................................................... |
130 |
|
8.2 |
. Понятие транзакции................................................................................. |
131 |
|
8.2.1 |
Ограничения целостности.................................................................. |
133 |
|
8.2.2 |
Классификация ограничений целостности....................................... |
134 |
8.3. Реализация декларативных ограничений целостности средствами SQL 144
8.3.1 Общие принципы реализации ограничений средствами SQL ....... |
144 |
|
8.3.2 Синтаксис ограничений стандарта SQL ........................................... |
145 |
|
8.3.3 Синтаксис операторов SQL, использующих ограничения............. |
150 |
|
8.4 |
. Выводы...................................................................................................... |
153 |
9 . Транзакции и параллелизм..................................................................................... |
155 |
|
9.1 |
. Работа транзакций в смеси...................................................................... |
155 |
9.2 |
. Проблемы параллельной работы транзакций....................................... |
156 |
|
4 |
9.2.1 Проблема потери результатов обновления ...................................... |
156 |
9.2.2Проблема незафиксированной зависимости (чтение "грязных"
данных, неаккуратное считывание) ................................................................ |
157 |
||
9.2.3 |
Проблема несовместимого анализа................................................... |
158 |
|
9.3 |
. Конфликты между транзакциями........................................................... |
160 |
|
9.4 |
. Блокировки............................................................................................... |
163 |
|
9.4.1 |
Решение проблем параллелизма при помощи блокировок ............ |
164 |
|
9.5 |
. Разрешение тупиковых ситуаций........................................................... |
168 |
|
9.5.1 |
Преднамеренные блокировки............................................................ |
169 |
|
9.5.2 |
Предикатные блокировки................................................................... |
173 |
|
9.5.3 |
Метод временных меток..................................................................... |
174 |
|
9.5.4 |
Механизм выделения версий данных............................................... |
174 |
|
9.6 . Теорема Есварана о сериализуемости ................................................... |
176 |
||
9.7 . Реализация изолированности транзакций средствами SQL ................ |
178 |
||
9.7.1 |
Уровни изоляции................................................................................. |
178 |
|
9.7.2 |
Синтаксис операторов SQL, определяющих уровни изоляции..... |
179 |
|
9.8 |
. Выводы...................................................................................................... |
180 |
|
10 . Транзакции и восстановление данных ................................................................. |
181 |
||
10.1 |
|
. Виды восстановления данных............................................................. |
182 |
10.1.1 |
Индивидуальный откат транзакции.................................................. |
184 |
|
10.1.2 |
Восстановление после мягкого сбоя................................................. |
184 |
|
10.1.3 |
Восстановление после жесткого сбоя............................................... |
186 |
|
10.2 |
|
. Восстановление данных и стандарт SQL........................................... |
187 |
10.3 |
|
. Выводы.................................................................................................. |
187 |
11 . Представление знаний в интеллектуальных системах ....................................... |
188 |
||
11.1 |
|
. Введение................................................................................................ |
188 |
11.2 |
|
. Данные и знания. Основные определения......................................... |
188 |
11.3 |
|
. Особенности знаний. Переход от Базы Данных к Базе Знаний....... |
190 |
11.3.1 |
Особенности знаний: .......................................................................... |
190 |
|
11.4 |
|
. Модели представления знаний. Неформальные (семантические) |
|
модели.192 |
|
||
11.5 |
|
. Формальные модели представления знаний...................................... |
195 |
11.6 |
|
. Продукционные системы..................................................................... |
196 |
11.6.1 |
Компоненты продукционных систем................................................ |
196 |
|
11.6.2 |
Классификация ядер продукции........................................................ |
197 |
|
11.6.3 |
Стратегии решений организации поиска.......................................... |
199 |
11.7. Логический подход. Представление простых фактов в логических
системах................................................................................................................. |
200 |
11.8 . Примеры применения логики для представления знаний. .............. |
202 |