- •А.И. Костюк
- •Введение
- •1. Данные
- •1.1. Источники данных
- •1.1.1. Предметная область
- •1.1.2. Объект
- •1.1.3. Атрибуты (элементы данных)
- •1.2. Значение данных
- •1.2.1. Ключевой элемент данных
- •1.2.2. Запись данных
- •1.2.3. Файл данных
- •1.3. Недостатки традиционной организации файлов данных
- •1.4. База данных
- •1.4.1. Определение базы данных
- •1.4.2. Система управления базами данных
- •1.4.3. Недостатки интеграции данных
- •1.5. Администратор базы данных
- •1.6. Независимость данных
- •1.6.1. Два уровня независимости данных
- •1.6.2. Способы достижения независимости данных
- •1.7. Словарь данных
- •1.8.Принципы проектирования базы данных и достижения требуемых эксплуатационных характеристик
- •2. Администрирование базы данных
- •2.1. Функция администрирования базы данных
- •2.1.1. Обязанности абд
- •2.1.2. Абд и администрация предприятия
- •2.1.3. Абд и пользователи
- •2.1.4. Абд и разработчики прикладных программ
- •2.1.5. Абд и системная группа
- •2.1.6. Абд и эксплуатационная группа
- •2.1.7. Абд и поставщики программного обеспечения
- •2.1.8. Абд и поставщики аппаратных средств
- •2.2. Жизненный цикл системы с базой данных
- •2.2.1. Проектирование базы данных (этап 1)
- •2.2.2. Материализация базы данных (этап 2)
- •2.2.3. Конвертирование существующих наборов данных и прикладных программ во вновь созданную базу данных (этап 3)
- •2.2.4. Интеграция конвертированных и новых прикладных программ для работы в среде вновь созданной базы данных (этап 4)
- •2.2.5. Эксплуатация (этап 5)
- •2.2.6. Развитие, совершенствование и сопровождение (этап 6)
- •2.3. Абд, группа абд и ее обязанности
- •3. Словарь данных
- •3.1. Что такое словарь данных
- •3.1.1. Назначение
- •3.1.2. Словарь данных и система управления базами данных
- •3.1.3. Интерфейсы
- •3.1.4. Идеальный словарь данных. Требования и организация
- •3.2. Стратегия реализации словаря данных
- •3.2.1. Экономическая целесообразность
- •3.2.2. Условия применения
- •3.2.3. Рекомендации по определению данных
- •4. Модели данных
- •4.1. Что такое модель данных
- •4.2. Взаимосвязи в модели данных
- •4.2.1. Взаимосвязь «один к одному» (между двумя типами объектов)
- •4.2.2. Взаимосвязь «один ко многим» (между двумя типами объектов)
- •4.2.3. Взаимосвязь «многие ко многим» (между двумя типами объектов)
- •4.2.4. Взаимосвязь «один к одному» (между двумя атрибутами)
- •4.2.5. Взаимосвязь «один ко многим» (между двумя атрибутами)
- •4.2.6. Взаимосвязь «многие ко многим» (между двумя атрибутами)
- •4.2.7. Обзор моделей данных
- •4.3. Реляционная модель данных
- •4.3.1. Достоинства модели
- •4.3.2. Недостатки модели
- •4.4. Иерархическая модель данных
- •4.4.1. Иерархическая древовидная структура
- •4.4.2. Включение и удаление данных
- •4.4.3. Достоинства модели
- •4.4.4. Недостатки модели
- •4.5. Сетевая модель данных
- •4.5.1. Представление взаимосвязи «один ко многим»
- •4.5.2. Дополнительные классы наборов
- •4.5.3. Операции включения и удаления в сетевой модели данных
- •4.5.4. Достоинства модели
- •4.5.5. Недостатки модели
- •5. Проектирование концептуальной модели данных
- •5.1. Анализ данных
- •5.1.1. Сбор информации о данных, используемых в существующих прикладных программах
- •5.1.2. Сбор информации о данных для перспективных приложений
- •5.2. Нормализация отношений
- •5.3. Графическое представление
- •6. Проектирование логической модели данных
- •6.1. Отображение на реляционную модель данных
- •6.2. Отображение на иерархическую модель данных
- •6.3. Отображение на сетевую модель данных
- •7. Физическая модель данных
- •7.1. Интерфейсы между пользователем и базой данных
- •7.2. Методы доступа внутренней модели (физической)
- •7.2.1. Физический последовательный метод доступа
- •7.2.2. Индексно-последовательный метод доступа
- •7.2.3. Индексно-произвольный метод доступа
- •7.2.4. Инвертированный метод доступа
- •7.2.5. Прямой метод доступа
- •7.2.6. Метод доступа посредством хеширования
- •7.3. Методы доступа внешней модели (представления пользователя)
- •8. Языкsql
- •8.1. Состав языка sql
- •8.2. Реляционные операции. Команды языка манипулирования данными
- •Команда select Простейшие конструкции команды select
- •Список полей
- •Все поля
- •Все поля в произвольном порядке
- •Вычисления
- •Литералы
- •Конкатенация
- •Использование квалификатора as
- •Работа с датами
- •Агрегатные функции
- •Предложение from команды select
- •Ограничения на число выводимых строк
- •Is null
- •Операции сравнения
- •Between
- •Containing
- •Is null
- •Логические операторы
- •Преобразование типов (cast)
- •Изменение порядка выводимых строк (order by)
- •Упорядочивание с использованием имен столбцов
- •Упорядочивание с использованием номеров столбцов
- •Устранение дублирования (модификатор distinct)
- •Соединение (join)
- •Внутренние соединения
- •Самосоединения
- •Внешние соединения
- •9. Общая характеристика баз знаний и экспертных систем
- •9.1. Терминология
- •9.2. Принципы, структура и функции систем баз знаний (сбз)
- •9.3. Классификация инструментальных средств построения сбз
- •Литература
- •Содержание
- •1. Данные 6
- •2. Администрирование базы данных 21
- •3. Словарь данных 43
- •4. Модели данных 57
- •5. Проектирование концептуальной модели данных 82
4.4.2. Включение и удаление данных
В иерархической модели на рис. 4.7 исходным узлом является ПАЦИЕНТ, а порожденным, в котором хранятся сведения о лечении пациента – ХИРУРГ. Если один хирург оперирует более одного пациента, то сведения о хирурге дублируются для каждого Пациента. Например, в записях базы данных (см. рис. 4.8 и 4.9) информация о хирурге с номером патента 145 (Бет Литл) является избыточной.
Включение данных.Экземпляр порожденного узла не может существовать в отсутствие экземпляра исходного узла. Если иерархическая модель данных подобна представленной на рис. 4.7, то в такую базу данных невозможно включить сведения о хирурге, который не оперировал ни одного пациента.
Удаление данных.При удалении экземпляра исходного узла также удаляются и все экземпляры порожденных узлов. Например, в иерархической модели данных, показанной на рис. 4.10, при удалении экземпляра узла ХИРУРГ одновременно удаляются и все экземпляры узлов, содержащих сведения о пациентах, прооперированных данным хирургом. Это приводит к потере информации о прооперированных пациентах.
Аномалии запоминания и удаления связаны с тем, что в иерархической модели данных взаимосвязи «многие ко многим» непосредственно не поддерживаются, а реализуется только взаимосвязь «один ко многим». Эти аномалии могут быть частично устранены за счет введения двух иерархических моделей, связанных между собой так, как показано на рис. 4.14.
Рис. 4.14
В первой модели данных корневым узлом является ПАЦИЕНТ, а на втором уровне расположен узел ОПЕРАЦИЯ. Во второй модели данных корневой узел – ХИРУРГ, а узел ОПЕРАЦИЯ находится на втором уровне. Узел ОПЕРАЦИЯ второго уровня первой модели связывается с корневым узлом ХИРУРГ второй модели. Узел ОПЕРАЦИЯ второго уровня второй модели связывается с корневым узлом ПАЦИЕНТ первой модели В подобной «комбинированной» иерархической модели данных информация о дате операции и об ОПЕРАЦИИ хранится с избыточностью, однако таким путем удается устранить аномалии включения и удаления сведений о ПАЦИЕНТЕ и об ОПЕРАЦИИ. В системах управления базами данных, основанных на иерархической модели, проблемы избыточности данных решаются различными способами.
4.4.3. Достоинства модели
Главные достоинства иерархической модели данных:
• наличие хорошо зарекомендовавших себя систем управления базами данных, основанных на ее применении;
• простота понимания и использования. Пользователи систем обработки данных хорошо знакомы с иерархическими структурами;
• обеспечение определенного уровня независимости данных. Так, с помощью двух иерархических моделей, показанных на рис 4.14, можно реализовать различные представления пользователей (рис. 4.15);
• простота оценки операционных характеристик благодаря заранее заданным взаимосвязям.
Рис. 4.15
Представление прикладного программиста, которое в терминологии ANSI(Американский национальный институт стандартов) называется внешней моделью.
4.4.4. Недостатки модели
Взаимосвязи «многие ко многим» в иерархической модели могут быть реализованы искусственно, но структура становится громоздкой. При этом может потребоваться хранение избыточных данных. Известно, что на логическом уровне избыточность не обязательно недостаток, напротив, она обеспечивает простоту. Однако на физическом уровне избыточность нежелательна.
Из-за строгой иерархической упорядоченности объектов модели значительно усложняются операции включения и удаления.
Удаление исходных объектов влечет удаление порожденных. Поэтому выполнение операции УДАЛИТЬ требует особой осторожности.
Особенности иерархических структур обусловливают процедурность операций манипулирования данными.
Корневой тип узла является главным. Доступ к любому порожденному узлу возможен только через исходный.