- •Серия «Учебники и учебные пособия»
- •Э.П. Голенищев
- •И.В. Клименко
- •Рецензент
- •Предисловие
- •Введение
- •Глава 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. Краткий толковый словарь
- •Содержание
В ответ на все возрастающую сложность приложений баз данных появились две новые системы: объектно-ориентированные СУБД, или ООСУБД (Object-Oriented DBMS - OODBMS), и объектнореляционные СУБД, или ОРСУБД (Object-Relational DBMS -ORDBMS). Однако, в отличие от предыдущих моделей, действительная структура этих моделей не совсем ясна. Попытки реализации подобных моделей представляют собой СУБД третьего поколения.
Приложение 3. Сравнительная характеристика даталогических моделей
Сетевая модель данных
Непосредственно поддерживает бинарные связи и связи более высоких степеней типа 1:1 и 1:М.
Поддержание бинарных связей и связей более высоких степеней типа M:N с помощью декомпозиции.
Поддерживает рекурсивные связи с помощью декомпозиции.
Типы записи непосредственно связаны друг с другом с помощью конструкции «тип набора».
Целостность на уровне ссылок поддерживается за счёт конструкций «тип набора».
Обладает ограниченной гибкостью по отношению к изменению требований к данным и методам доступа.
Доступ к типам записей осуществляется путем «перемещения» (навигации) по структуре. В зависимости от конкретного расположения типа записи по отношению к начальной точке в структуре, для доступа к данным могут использоваться различные специальные команды.
Иерархическая модель данных
Непосредственно поддерживает бинарные связи и связи более высоких степеней типа 1:1 и 1:М.
Бинарные связи более высоких степеней типа M:N поддерживаются только с помощью декомпозиции и дублирования данных в разных иерархиях.
Рекурсивные связи поддерживаются только с помощью декомпозиции и дублирования данных.
Типы записей непосредственно связаны между собой с помощью иерархической структуры.
Целостность на уровне ссылок поддерживается в тех случаях, когда зависимый дочерний тип записи полностью участвует в связи со своим родительским типом записи.
Не обладает гибкостью по отношению к изменению требований к данным и методам доступа.
Доступ к типам записей осуществляется путем «перемещения» (навигации) от корневого типа записи к типам записи более низкого уровня в данной иерархии при ее прямом или обратном обходе.
Реляционная модель данных
Непосредственно поддерживает бинарные связи и связи более высоких степеней типа 1:1 и 1:М, а также рекурсивные связи типа 1:1 и 1:М.
Бинарные связи более высоких степеней типа M:N поддерживаются с помощью декомпозиции.
Рекурсивные связи типа M:N поддерживаются с помощью декомпозиции
Типы записей связанны друг с другом символически с помощью конструкции «первичный/внешний ключ».
В реляционной модели поддерживается целостность на уровне ссылок.
Обладает гибкостью по отношению к изменению требований к данным и методам доступа.
Доступ к типам записей осуществляется с помощью команд реляционной алгебры или реляционного исчисления. Эти команды могут быть вложенными, что позволяет создавать сложные запросы.
Сводная характеристика систем баз данных
Критерий |
CODASYL (сетевая |
IMS (иерархическая |
Реляционная система |
|
система) |
система) |
|||
|
|
|||
Период создания |
1960 – 1970 годы |
1960 – 1970 годы |
1960 – настоящее время |
122
Над чем ведется работа |
Разделение физических и |
Обеспечение |
Повышение |
сейчас |
логических концепций |
взаимодействия с другими |
производительности, |
|
|
системами и типами СУБД |
обеспечение |
|
|
|
совместимости с SQL2, а |
|
|
|
также добавление |
|
|
|
объектно- |
|
|
|
ориентированных |
|
|
|
компонентов |
Реализация |
Записи и указатели |
Обычно записи и |
Записи со значениями, |
|
|
указатели, но могут быть и |
которые могут |
|
|
просто физически смежные |
использоваться как |
|
|
записи |
логические указатели |
Базовая физическая |
Сеть, в которой записи |
Обобщенная древовидная |
Двумерная таблица |
структура данных |
связаны друг с другом в |
структура, в которой один |
|
|
один набор с помощью |
тип записи образует |
|
|
указателей. Могут |
корень, а все другие типы |
|
|
содержать встроенные в |
записей – зависимые от |
|
|
них указатели |
корня узлы |
|
Общая структура файлов и |
Прямые методы доступа и |
Методы доступа HIDAM, |
Разные методы доступа от |
методы доступа к ним |
индексно- |
HDAM.HISAM.HSA М. |
последовательных файлов |
|
последовательные методы |
Варианты прямого доступа |
с индексами и методов |
|
доступа (включая метод |
и индексно-последователь- |
прямого доступа вплоть до |
|
VSAM) |
ных методов доступа |
сложных древовидных |
|
|
(включая метод VSAM) |
поисковых структур |
Логическая структура |
Набор, в котором один тип |
Обобщенная древовидная |
Набор двумерных таблиц |
данных |
записи-владельца может |
структура |
|
|
быть связан со многими |
|
|
|
типами записей-членов. |
|
|
|
Сложные сети создаются с |
|
|
|
помощью типов наборов |
|
|
Поддерживаемые типы |
Связи типа 1:1 и 1:М. |
Связи типа 1:1 и 1 :М. |
Связи типа 1:1 и 1:М. |
связей |
Связи типа M:N и |
Связи типа M:N обычно |
Связи типа M:N и |
|
рекурсивные связи |
поддерживаются с |
рекурсивные |
|
поддерживаются с |
помощью логических |
поддерживаются с |
|
помощью декомпозиции. С |
указателей, которые |
помощью декомпозиции |
|
ними проще всего работать |
связывают разные |
|
|
в иерархической системе |
физические структуры |
|
|
|
данных. Рекурсивные связи |
|
|
|
поддерживаются с |
|
|
|
помощью декомпозиции и |
|
|
|
дублирования |
|
Поддержка целостности на |
Обеспечивается |
Обеспечивается |
Поддержка варьируется от |
уровне ссылок для связей |
средствами СУБД с |
средствами СУБД с |
разработки процедур, |
типа «родитель-потомок» |
использованием правил |
использованием |
правил или триггеров, |
|
вставки и сохранения для |
зависимостей в |
используемых |
|
структуры наборов. Если |
древовидной структуре. То |
непосредственно |
|
записи-члены закреплены |
есть при удалении корня |
средствами СУБД, вплоть |
|
за записью-владельцем, то |
дерева (или поддерева) |
до процедур, реализуемых |
|
удаление записи-владельца |
будут удалены все |
в прикладных программах. |
|
приводит к каскадному |
зависящие от него узлы, |
|
|
удалению записей-членов. |
что эквивалентно |
|
|
|
каскадному удалению. |
|
123
|
Если записи-члены не |
Обычно в типах записей |
Стандарт SQL92 требует |
|
обязательно являются |
внешние ключи не нужны. |
реализации этой функции |
|
частью набора, то удаление |
Сложности могут |
механизмами самой СУБД |
|
записи-владельца |
возникнуть в случаях, |
|
|
эквивалентно заданию |
когда связи M:N |
|
|
неопределенной связи |
представляются с |
|
|
(NULL). Можно |
помощью логических |
|
|
запрограммировать и |
указателей |
|
|
другие варианты действий. |
|
|
|
Обычно внешние ключи в |
|
|
|
типах записей не |
|
|
|
требуются |
|
|
Логическая независимость |
Концептуальная схема |
Полностью аналогична |
Полностью аналогична |
от данных |
моет быть расширена без |
CODASYL -системам |
CODASYL -системам |
|
изменения подсхем. При |
|
|
|
перестройке или удалении |
|
|
|
из концептуальной схемы |
|
|
|
типов записи, поля набора |
|
|
|
потребуется ввести |
|
|
|
поправки только в те |
|
|
|
представления, в которых |
|
|
|
они используются |
|
|
Физическая независимость |
Концептуальная схема |
При изменении структуры |
В тех случаях когда не |
от данных |
должна быть изменена в |
хранения может |
допускается выбор из |
|
соответствии с |
потребоваться изменить |
нескольких возможных |
|
изменениями структуры |
концептуальную схему |
физических структур |
|
хранения в тех местах |
(ОБД) и внести поправку в |
данных, некоторые СУБД |
|
схемы, в которых описаны |
логику обработки данных в |
при необходимости |
|
детали физического |
приложениях. Для |
позволяют определять |
|
хранения. Это может |
упрощения процесса |
различные структуры |
|
вызвать необходимость |
изменения структур |
файлов и вторичных |
|
изменения прикладных |
хранения предусмотрены |
индексов |
|
программ. Следовательно, |
специальные утилиты |
|
|
реализация макета базы |
|
|
|
данных может значительно |
|
|
|
усложниться |
|
|
Гибкость при изменении |
Новые или изменённые |
Новые или изменённые |
Настройка для работы с |
приложений |
приложения могут не |
приложения могут быть |
новыми или изменёнными |
|
обладать достаточной |
неэффективны, потому что |
приложениями может быть |
|
производительностью, |
базовые структуры |
выполнена без особых |
|
потому что база данных |
подогнаны под исходные |
затруднений. |
|
структурирована для |
приложения. |
|
|
существовавших ранее |
|
|
|
приложений. |
|
|
|
Поэтому может оказаться |
Изменить базовую |
В СУБД, поддерживающей |
|
не возможным эффектно |
структуру так, чтобы |
выбор структуры файлов, |
|
поддерживать все |
обеспечить |
для разных таблиц могут |
|
требуемые приложения |
удовлетворительную |
быть выбраны самые |
|
|
работу базы данных со |
подходящие структуры |
|
|
всеми требуемыми |
данных |
|
|
приложениями, достаточно |
|
|
|
сложно или даже вообще |
|
|
|
не возможно. Вероятно, |
|
|
|
для этого потребуется |
|
|
|
создать дополнительные |
|
|
|
структуры |
|
124