- •Серия «Учебники и учебные пособия»
- •Э.П. Голенищев
- •И.В. Клименко
- •Рецензент
- •Предисловие
- •Введение
- •Глава 1. ИФОРМАЦИОННЫЕ СИСТЕМЫ НА БАЗАХ ДАННЫХ
- •1.1. Понятие информационной системы, информационное обеспечение
- •1.2. Понятие базы данных
- •1.3. Понятие системы управления базами данных
- •1.3.1. Обобщенная архитектура СУБД
- •1.3.2. Достоинства и недостатки СУБД
- •1.3.3. Архитектура многопользовательских СУБД
- •Технология «клиент/сервер»
- •Таблица 1.1
- •1.4. Понятие независимости данных
- •1.5. Категории пользователей базой данных
- •1.5.1. Общая классификация пользователей БД
- •1.5.2. Администратор базы данных
- •1.5.3. Разделение функций администрирования
- •Таблица 1.2
- •1.6. Средства администрирования баз данных
- •Таблица 1.3
- •Глава 2. ПРОЕКТИРОВАНИЕ БАЗ ДАННЫХ
- •2.1. Жизненный цикл информационной системы
- •2.1. Подходы и этапы проектирования баз данных
- •2.2.1. Цели и подходы к проектированию баз данных
- •2.2.2. Этапы проектирования баз данных
- •2.3. Инфологическое проектирование базы данных
- •Таблица 2.1
- •Пояснение
- •2.3.1. Модель «сущность-связь»
- •2.3.2. Классификация сущностей, расширение ER-модели
- •Рис. 2.15. Пример ловушки разрыва
- •2.4. Логическое проектирование
- •2.4.1. Выбор СУБД
- •2.4.1.1. Метод ранжировки
- •Таблица 2.2
- •Таблица 2.3
- •2.4.1.2. Метод непосредственных оценок
- •2.4.1.3. Метод последовательных предпочтений
- •Таблица 2.4
- •Таблица 2.5
- •2.4.1.4. Оценка результатов экспертного анализа
- •Таблица 2.6
- •Наименование параметра
- •2.4.2. Даталогические модели данных
- •2.4.2.1. Иерархическая модель
- •2.4.2.2. Сетевая модель
- •2.4.2.3. Реляционная модель
- •2.4.2.4. Достоинства и недостатки даталогических моделей
- •2.4.3. Нормализация
- •2.4.3.1. Понятие функциональной зависимости
- •Таблица 2.7
- •2.4.3.2. Аксиомы вывода функциональных зависимостей
- •2.4.3.3. Первая нормальная форма
- •НОМЕР
- •2.4.3.4. Вторая нормальная форма
- •2.4.3.5. Третья нормальная форма
- •2.4.3.6. Нормализация через декомпозицию
- •2.4.3.7. Недостатки нормализации посредством декомпозиции
- •2.4.3.8. Нормальная форма Бойса–Кодда (НФБК)
- •2.4.3.9. Многозначные зависимости
- •Таблица 2.8
- •Таблица 2.9
- •Таблица 2.10
- •2.4.3.10. Аксиомы вывода многозначных зависимостей
- •2.4.3.11. Четвертая нормальная форма
- •2.4.3.12. Зависимости соединения
- •2.4.3.13. Пятая нормальная форма
- •2.4.3.14. Обобщение этапов нормализации
- •Глава 3. ФИЗИЧЕСКАЯ ОРГАНИЗАЦИЯ ДАННЫХ В СУБД
- •3.1. Списковые структуры
- •3.1.1. Последовательное распределение памяти
- •3.1.2. Связанное распределение памяти
- •Рис. 3.4. Пример двунаправленного линейного списка
- •3.2. Модель внешней памяти
- •3.3. Методы поиска и индексирования данных
- •3.3.1. Последовательный поиск
- •Рис. 3.7. Пример организации файла при начальной загрузке
- •3.3.2. Бинарный поиск
- •3.3.3. Индекс - «бинарное дерево»
- •3.3.4. Неплотный индекс
- •3.3.5. Плотный индекс
- •3.3.6. Инвертированный файл
- •Глава 4. МАТЕМАТИЧЕСКИЕ ОСНОВЫ МАНИПУЛИРОВАНИЯ РЕЛЯЦИОННЫМИ ДАННЫМИ
- •4.1. Теоретические языки запросов
- •4.1.1. Реляционная алгебра
- •4.1.2. Реляционное исчисление кортежей
- •4.1.3. Реляционное исчисление доменов
- •4.1.4. Сравнение теоретических языков
- •4.2. Определение реляционной полноты
- •Глава 5. РАСПРЕДЕЛЕННЫЕ БАЗЫ ДАННЫХ И СУБД
- •5.1. Основные определения, классификация распределенных систем
- •5.2. Преимущества и недостатки распределенных СУБД
- •Таблица 5.1
- •5.3. Функции распределенных СУБД
- •5.4. Архитектура распределенных СУБД
- •5.5. Разработка распределенных реляционных баз данных
- •5.5.1. Распределение данных
- •Таблица 5.2
- •5.5.2. Фрагментация
- •5.5.3. Репликация
- •5.5.3.1. Виды репликации
- •5.5.3.2. Функции службы репликации
- •5.5.3.3. Схемы владения данными
- •5.5.3.4. Сохранение целостности транзакций
- •5.5.3.5. Моментальные снимки таблиц
- •5.5.3.6. Триггеры базы данных
- •5.5.3.7. Выявление и разрешение конфликтов
- •5.6. Обеспечение прозрачности
- •5.6.1. Прозрачность распределенности
- •5.6.2. Прозрачность транзакций
- •5.6.3. Прозрачность выполнения
- •5.6.4. Прозрачность использования
- •ЗАКЛЮЧЕНИЕ
- •ПРИЛОЖЕНИЯ
- •Приложение 1. Недостатки файловых систем
- •Приложение 2. Краткая история развития субд
- •Приложение 3. Сравнительная характеристика даталогических моделей
- •Сводная характеристика систем баз данных
- •Приложение 4. Пример мифологического проекта базы данных
- •Приложение 5. Обобщенная методика проектирования реляционных баз данных
- •Приложение 6. Принципы организации компьютерных сетей
- •Отличие ЛВС от систем на основе мини-ЭВМ
- •Таблица П.6.1
- •Приложение 7. Правила распределенных СУБД
- •Независимость от операционной системы
- •Приложение 8. Краткий толковый словарь
- •Содержание
минимально. Атрибут D транзитивно зависит от А только через С.
Четвертая проблема состоит в том, что для построенной схемы базы данных заданное множество F- зависимостей может оказаться ненавязанным [10].
Пример 2.15. Пусть заданы схема R(A, В, С, D, Е) и F={A→BCDE, CD→E, CE→B}. Исключив транзитивную зависимость Е от А через CD, получаем
Множество F ненавязано схеме базы данных R={R1, R2} из-за того, что зависимость ЕС→В невыводима из F-зависимостей в F+, приложимых к R1 или R2 (это утверждение должно быть подтверждено вычислением F+).
Наконец, пятая проблема. С помощью декомпозиции можно породить схемы со «скрытыми» трянзитивными зависимостями.
Пример 2.16. Пусть заданы схема R(A, В, С, D) и F={A→B, В→С}. Атрибуты AD являются ключом F, а В частично зависит от AD. При декомпозиции получаем
Несмотря на то что R1, R2 формально находятся в ЗНФ, в R1 существует «скрытая» транзитивная зависимость С от AD.
Чтобы избежать проблем, возникающих при декомпозиции схем отношений, необходимо использовать другие методы получения третьей нормальной формы, например, метод синтеза ЗНФ [10].
2.4.3.8. Нормальная форма Бойса–Кодда (НФБК)
Схема отношения R находится в нормальной форме Бойса-Кодда (НФБК) относительно множества F- зависимостей F, если она находится в 1НФ и никакой атрибут в R не зависит транзитивно ни от одного ключа R [10].
Схема базы данных R находится в нормальной форме Бойса-Кодда (НФБК) относительно множества
F-зависимостей F, если каждая схема отношения R R находится в НФБК относительно F. НФБК включает в себя ЗНФ [10].
Схема отношения R находится в нормальной форме Бойса-Кодда (НФБК) относительно множества F-
зависимостей F, если для каждого подмножества Y из R и каждого атрибута A R-Y из Y→А следует Y→R при F, т.е. если Y нетривиально определяет произвольный атрибут из R, то Y есть сверхключ R.
Для схемы отношения, не находящейся в НФБК, можно всегда провести декомпозицию в схему базы данных в НФБК [10].
С одной стороны, НФБК в некотором смысле является более сильной, чем ЗНФ, а значит, более желательной. Но, с другой стороны, НФБК имеет свои проблемы [10]. Из предыдущего изложения следует, что при заданном множестве F-зависимостей над R можно найти схему базы данных в ЗНФ, полностью характеризующую F. Для НФБК это неверно. Множество F-зависимостей может не иметь полной НФБК схемы базы данных, кроме того, проверка свойства НФБК для заданной схемы базы данных является NP-полной задачей.
2.4.3.9. Многозначные зависимости
Выше было показано, что присутствие функциональных зависимостей в реляционной схеме означает возможность декомпозиции схемы, уменьшающей избыточность и при этом сохраняющей информацию. Однако существование F-зависимостей не является необходимым условием такой
65
декомпозиции. Рассмотрим состояние отношения Назначение табл. 2.8.
|
|
|
Таблица 2.8 |
|
|
|
|
Назначение |
РЕЙС |
ДЕНЬ-НЕДЕЛИ |
ТИП-САМОЛЕТА |
|
106 |
Понедельник |
747 |
|
106 |
Четверг |
747 |
|
106 |
Понедельник |
1011 |
|
106 |
Четверг |
1011 |
|
204 |
Среда |
707 |
|
204 |
Среда |
727 |
Кортеж <fdp> в отношении Назначение означает, что рейс № f может выполняться в день недели d на самолете типа р. В отношении не выполняются ни F-зависимость РЕЙС→ДЕНЬ-НЕДЕЛИ, ни РЕЙС→ТИП-САМОЛЕТА, однако оно без потери информации разлагается на два отношения: РЕЙС ДЕНЬ-НЕДЕЛИ и РЕЙС ТИП-САМОЛЕТА (табл. 2.9).
Таблица 2.9
День назначения |
РЕЙС |
ДЕНЬ-НЕДЕЛИ |
|
106 |
Понедельник |
|
106 |
Четверг |
|
204 |
Среда |
Тип самолета назначения |
РЕЙС |
ТИП-САМОЛЕТА |
|
106 |
747 |
|
106 |
1011 |
|
204 |
707 |
|
204 |
727 |
Рассмотрим другое состояние отношения Назначение, задаваемое табл. 2.10. Если разложить это состояние на схемы (РЕЙС, ДЕНЬ-НЕДЕЛИ) и (РЕЙС, ТИП-САМОЛЕТА), то снова получится вариант из табл.2.9. Однако соединение отношений табл. 2.9 не восстанавливает исходного отношения.
|
|
|
Таблица 2.10 |
|
|
|
|
Назначение |
РЕЙС |
ДЕНЬ-НЕДЕЛИ |
ТИП-САМОЛЕТА |
|
106 |
Понедельник |
747 |
|
106 |
Четверг |
747 |
|
106 |
Четверг |
1011 |
|
204 |
Среда |
707 |
|
204 |
Среда |
727 |
Каковы же свойства первого состояния отношения Назначение, отсутствующие у второго, которые обеспечивают декомпозицию без потери информации? В первом случае, если самолет некоторого типа использован для выполнения маршрута в один день, он может быть использован для выполнения этого маршрута в любой другой день. Это свойство отсутствует во втором состоянии отношения Назначение, поскольку рейс №106 может использовать тип 1011 в четверг, но не в понедельник. Отношение в первом состоянии следует подвергнуть декомпозиции, ибо при заданном рейсе ДЕНЬ-НЕДЕЛИ не содержит информации об атрибуте ТИП-САМОЛЕТА, и наоборот.
Сформулируем это свойство по-другому. Если в отношении Назначение существуют кортежи <fdp> и <fd'p'>, то должен быть кортеж <fd'p>. Формальное определение следующее [10].
Пусть R – реляционная схема, X и Y – непересекающиеся подмножества R, и пусть Z=R–(XY). Отношение r(R) удовлетворяет многозначной зависимости (MV-зависимости) Х→→Y, если для любых двух кортежей t1 и t2 из r, для которых t1(X) = t2(X), в r существует кортеж t3 для которого выполняются соотношения t3(X) = t1(X), t3(Y) = t1(Y), t3(Z) = t2(Z).
Из симметрии определения относительно t1 и t2 следует, что в г существует также в r для которого t4(X) = t1(X), t4(Y) = t2(Y), t4(Z) = t2(Z).
66