- •Рецензенты:
- •Введение 12 Глава 1. Проектирование баз данных 14
- •Глава 2. Субд Visual FoxPro 213
- •Глава 3. Субд Access 308
- •Глава 4. Субд Microsoft sql Server 431
- •Глава 5. Субд Oracle 478
- •Глава 6. Обзор субд 506
- •Глава 1. Проектирование баз данных
- •1.1. История развития баз данных и субд
- •1.2. Введение в субд
- •1.2.1. Основные термины, понятия и определения
- •1.2.2. Классификация субд
- •1) Сетевые, корпоративные, распределенные, клиент-серверные, полнофункциональные, масштабируемые, “большие” субд.
- •2) Локальные, персональные, настольные, файл-серверные, “малые” субд.
- •1.3. Модели данных
- •1.3.1. Типы связей между объектами
- •1.3.2. Формы записи инфологической (концептуальной) модели
- •1.3.3. Уровни представления и независимости данных
- •1.3.4. Порядок взаимодействия пользователя, субд и ос
- •1.3.5. Поддержка целостности базы данных
- •1.3.6. Иерархическая модель
- •1.3.7. Сетевая модель
- •1.3.8. Реляционная модель
- •1.3.8.1. Отношения
- •1.3.8.2. Теоретико-множественные операции с отношениями
- •1.3.8.3. Правила Кодда
- •1.3.8.4. Индексирование таблиц
- •1.3.8.5. Связывание таблиц
- •1.3.9. Постреляционная модель
- •1.3.10. Многомерная модель
- •1.3.11. Объектно‑ориентированная модель
- •1.4. Модели использования баз данных в сети
- •1.4.1. Сеть
- •1.4.2. Модели использования баз данных
- •1.4.2.1. Локальная однопользовательская модель
- •1.4.2.2. Файл-серверная модель
- •1.4.2.3. Клиент-серверная модель
- •В моделях «клиент–сервер»
- •1.4.2.4. Модель удаленного доступа (rda)
- •1.4.2.5. Модель сервера данных
- •1.4.2.6. Трехзвенная распределенная модель
- •1.4.2.7. Модели серверов баз данных
- •1.4.2.8. Клиент-Интернет
- •1.4.2.9. Интерфейс odbc
- •1.4.3. Мониторы обработки транзакций (tpm)
- •1.4.4. Децентрализованное управление базами данных
- •1.4.5. Таблицы в локальных сетях
- •1.5. Проектирование баз данных
- •1.5.1. Принципы и этапы проектирования и создания баз данных
- •2.6. Создание er‑диаграмм для отдельных пользователей.
- •3.4. Создание er‑диаграммы глобальной логической модели.
- •4. Создание глобальной логической модели в среде целевой субд.
- •1.5.2. Методы нормализации и денормализации отношений
- •1.5.3. Правила формирования взаимосвязанных таблиц
- •1.5.4. Модели жизненного цикла и проектирование баз данных
- •1.5.4.1. Модели жизненного цикла
- •1.5.4.2. Обследование, системный анализ и постановка задачи
- •1.5.4.3. Инфологическое проектирование
- •1.5.4.4. Датологическое проектирование
- •1.5.4.5. Проектирование физической модели
- •1.5.4.6. Реализация, интеграция и внедрение
- •1.5.5. Выбор субд
- •1.5.5.1. Сравнение Visual FoxPro, Access, sql Server, Oracle и Excel
- •1.5.5.2. Методика балловой оценки программных средств
- •1.5.6. Case‑средства автоматизации проектирования
- •1. Ориентация на этапы жизненного цикла
- •2. Функциональная полнота
- •3. Степень зависимости от субд
- •4. Тип используемой модели
- •1.6. Использование баз данных
- •1.6.1. Защита информации
- •Пользователя в ms sql Server 7.0
- •1.6.2. Резервирование информации
- •1.6.3. Варианты разработки приложений
- •1.7. Стандартизация баз данных
- •1.8. Язык sql
- •1.8.1. Введение в sql
- •1.8.2. Типы данных sql
- •1.8.3. Оператор выбора данных select
- •1.8.3.1. Назначение и синтаксис оператора
- •1.8.3.2. Объединение таблиц
- •1.8.3.3. Вложенные и коррелированные запросы
- •1.8.3.4. Запросы, использующие exist, any, all
- •1.8.3.5. Стандартные функции
- •1.8.3.6. Запрос с группировкой
- •1.8.4. Операторы обновления базы
- •1.8.4.1. Оператор корректировки данных update
- •1.8.4.2. Оператор удаления записей delete
- •1.8.4.3. Оператор включения записей insert
- •1.8.5. Представления
- •1.9. Транзакции
- •1.9.1. Определение транзакций
- •1.9.2. Организация транзакций
- •1.9.3. Журнал транзакций
- •1.9.4. Журнализация и буферизация
- •1.9.5. Индивидуальный откат транзакций
- •1.9.6. Восстановление после мягкого сбоя
- •1.9.7. Физическая согласованность базы данных
- •1.9.8. Восстановление после жесткого сбоя
- •1.9.9. Параллельное выполнение транзакций
- •1.9.10. Уровни изолированности пользователей
- •1.9.11. Гранулированные синхронизационные захваты
- •1.9.12. Предикатные синхронизационные захваты
- •1.9.13. Метод временных меток
- •1.10. Встроенный sql
- •1.10.1. Особенности встроенного sql
- •1.10.2. Определение курсора
- •1.10.3. Открытие курсора
- •1.10.4. Чтение очередной строки курсора
- •1.10.5. Закрытие курсора
- •1.10.6. Удаление и обновление данных
- •1.10.7. Хранимые процедуры
- •Хранимой процедуры на сервере
- •1.10.8. Триггеры
- •1.10.9. Динамический sql
- •1.11. Архитектура субд и оптимизация запросов
- •1.12. Перспективы развития субд
- •В опросы для самопроверки и контроля
- •Глава 2. Субд Visual FoxPro
- •2.1. Общепринятые обозначения
- •2.2. Основные ограничения
- •2.3. Компоненты Visual FoxPro
- •2.4. Язык программирования FoxPro
- •2.4.1. Создание, компиляция и выполнение программ, процедур и функций
- •2.4.2. Константы
- •2.4.3. Переменные
- •2.4.4. Массивы
- •2.4.5. Операции
- •2.4.6. Команды управления
- •2.4.6.1. Команда проверки условия (If)
- •2.4.6.2. Команда выбора (Do Case)
- •2.4.7. Организация циклов
- •2.4.7.1. Цикл (Do While)
- •2.4.7.2. Счетный цикл (For)
- •2.4.7.3. Цикл сканирования таблицы (Scan)
- •2.4.8. Создание свободных таблиц
- •2.4.8.1. Создание и изменение структуры таблиц
- •2.4.8.2. Заполнение таблиц
- •2.4.9. Редактирование таблиц в диалоговом режиме (Browse, Edit)
- •2.4.10. Перемещение по таблице (Go, Skip)
- •2.4.11. Просмотр таблиц (Display, List)
- •2.4.12. Удаление записей (Delete, Zap, Pack)
- •2.4.13. Редактирование полей в программном режиме (Replace)
- •2.4.14. Локализация и поиск записей в таблице
- •2.4.14.1. Фильтрация данных (Set Filter)
- •2.4.14.2. Последовательный поиск (Locate)
- •2.4.15. Индексирование и открытие таблиц
- •2.4.16. Прямой поиск
- •2.4.17. Одновременная работа с несколькими таблицами
- •2.4.17.1. Рабочие области
- •2.4.17.2. Команда установки связей между таблицами
- •2.4.18. Обмен данными между массивами и таблицами
- •2.4.19. Ввод‑вывод данных сообщений
- •2.4.19.1. Вывод данных на экран (?, ??, ???)
- •2.4.19.2. Вывод сообщения (Wait)
- •2.4.19.3. Вывод сообщения и кнопок (MessageBox)
- •2.4.20. Организация меню
- •2.4.20.1. Общий порядок создания и использования меню
- •2.4.20.2. Вертикальное Popup-меню
- •2.4.20.3. Горизонтальное Bar-меню
- •2.4.20.4. Двухуровневое Pulldown-меню
- •2.4.20.5. Управление доступом к меню
- •2.4.21. Манипулирование файлам и таблицами
- •2.4.22. Математическая обработка таблиц
- •2.4.23. Язык запросов sql
- •2.5. Настройка среды Visual FoxPro
- •2.6. Объекты и классы
- •2.7. События и методы
- •2.8. Общий порядок работы с Visual FoxPro
- •2.9. Создание проекта
- •2.10. Создание базы данных
- •Р ис. 2.10.2. Окно установки контроля целостности связей
- •2.11. Представления (View)
- •2.11.1. Мастер представлений
- •2.11.2. Конструктор представлений
- •2.11.3. Удаленные представления (Remote Views)
- •2.12. Запросы
- •2.12.1. Мастера запросов
- •2.12.2. Конструктор запросов
- •2.12.3. Функции сквозных запросов
- •2.13. Формы
- •2.13.1. Мастера форм
- •2.13.2. Конструктор форм
- •Р ис. 2.13.2.3. Вид отображаемых таблиц
- •2.14. Отчеты
- •2.14.1. Мастера отчетов
- •2.14.2. Конструктор отчетов
- •2.14.3. Команда вывода отчета
- •2.15. Меню
- •2.16. Управление проектом и создание приложения
- •2.16.1. Свойства проекта
- •2.16.2. Параметры проекта
- •2.16.3. Создание приложения
- •2.16.4. Галерея компонентов
- •2.17. Отладка программ
- •2.18. Хранимые процедуры
- •2.19. Классы
- •2.20. Создание класса панели инструментов
- •Р ис. 2.20.1. Вид формы, построенной на основе класса clFormNavigator
- •2.21. Включение в базу ole‑объектов
- •2.22. Обзор дополнительных возможностей
- •2.23. Среда быстрой разработки приложений ‑ пакет MacroFox
- •2.23.1. Назначение
- •2.23.2. Структура
- •2.23.3. Основные макрооператоры
- •2.23.3.1. Описание входного документа (Forma)
- •2.23.3.2. Описание формы отчета (Ofort)
- •2.23.3.3. Описание меню (Menu)
- •2.23.4. Словари баз, функций, форм, таблиц и условий
- •2.23.5. Управление сценариями
- •2.23.6. Ведение таблиц базы данных
- •2.23.7. Формирование отчетов и запросов‑отчетов
- •2.23.8. Сводная обработка данных
- •2.23.9. Супероболочка
- •2.23.10. Порядок работы
- •В опросы для самопроверки и контроля
- •Глава 3. Субд Access
- •3.1. Последовательность работ при создании новой базы данных
- •3.2. Создание базы данных
- •3.2.1. Запуск Access и открытие базы данных
- •3.2.2. Создание пустой базы данных
- •3.2.3. Рабочая среда Access
- •3.2.4. Работа с таблицами
- •3.2.4.1. Создание таблиц
- •3.2.4.2. Связывание таблиц
- •3.2.4.3. Сортировка, поиск и фильтрация записей
- •3.3. Формирование и использование внешних данных
- •3.4. Запросы
- •3.4.1. Запросы на выборку данных
- •3.4.1.1. Простой запрос
- •Р ис. 3.4.1.1.2. Окно конструктора запросов
- •3.4.1.2. Итоговый запрос
- •Р ис. 3.4.1.2.2. Окно конструктора запросов
- •3.4.1.3. Перекрестный запрос
- •3.4.1.4. Динамический запрос
- •3.4.2. Запросы на обновление данных
- •3.4.3. Параметрические запросы
- •3.4.4. Выражения
- •3.5. Формы
- •3.5.1. Автоформы
- •3.5.2. Мастер форм
- •3.5.3. Конструктор форм
- •3.5.3.1. Основные операции над объектами
- •3.5.3.2. Основные элементы управления
- •3.5.3.3. Создание формы
- •3.5.4. Редактирование данных в режиме формы
- •3.6. Отчеты
- •3.6.1. Автоотчеты
- •3.6.2. Мастер отчетов
- •3.6.3. Конструктор отчетов
- •3.6.3.1. Окно предварительного просмотра отчета
- •Р ис. 3.6.3.2. Окно конструктора отчетов
- •3.6.4. Диаграммы
- •3.6.5. Составные отчеты
- •3.6.6. Дополнительные возможности
- •3.7. Пользовательский интерфейс
- •3.7.1. Панель инструментов
- •3.7.2. Меню и ленты пользователей
- •3.7.3. Контекстные меню
- •3.7.4. Связывание меню и панелей с формами и отчетами
- •3.7.5. Кнопочная форма
- •3.7.6. Настройка параметров среды и запуска приложения
- •3.7.7. Изменение меню и панелей инструментов средствами Visual Basic
- •3.8. Макросы
- •3.9. Web‑страницы
- •3.9.1. Экспорт объектов в формат html
- •3.9.2. Страницы доступа
- •3.10. Интеграция Access с другими компонентами Office
- •3.10.1. Использование Microsoft Excel при работе Access
- •3.10.2. Использование Microsoft Word при работе с Access
- •3.10.3. Добавление ActiveX‑элементов
- •3.10.4. Использование Access в качестве сервера
- •3.11. Совместное использование баз данных в сети
- •3.12. Разработка клиент‑серверных приложений
- •3.12.1. Доступ к базам данных через odbc
- •3.12.2. Доступ к базам данных через ole db, ado
- •3.12.3. Способы работы с внешними данными
- •3.12.3.1. Присоединение таблиц
- •3.12.3.2. Сквозные запросы
- •3.12.3.3. Хранимые процедуры
- •3.12.3.4. Объектная модель dao
- •3.12.4. Проекты Access
- •3.12.4.1. Создание проектов
- •3.12.4.2. Изменение свойств таблиц
- •3.12.4.3. Схемы базы данных
- •3.12.4.4. Конструктор представлений
- •3.12.4.5. Хранимые процедуры
- •3.12.4.6. Сортировка и отбор записей в формах и отчетах
- •3.13. Репликация баз данных
- •3.13.1. Репликация баз данных Access
- •3.13.2. Репликация проектов Access
- •3.14. Администрирование баз данных и проектов
- •3.14.1. Архивирование, сжатие и восстановление
- •3.14.2. Стандартные средства субд защиты базы данных
- •3.14.3. Примеры оригинальных программные средств защиты базы данных
- •3.14.3.1. Защита параметров запуска приложений от изменений
- •3.14.3.2. Регистрация пользователей и установка их полномочий
- •3.14.3.3. Формирование журнала аудита (изменений) базы данных
- •3.15. Перенос базы данных Access на платформу sql Server
- •3.16. Обзор инструментальных средств Office Developer Edition
- •3.17.1. Быстрое отслеживание данных
- •3.17.2. Создание отчетов
- •3.17.3 Обмен с другими пользователями
- •3.17.4. Быстрые способы начала работы
- •3.17.5 Интерфейс пользователя
- •3.17.6 Средства создания объектов
- •3.17.7. Режимы отчета и макета
- •3.17.8 Разделенные формы
- •3.17.9 Внедренные макросы в формах и отчетах
- •3.17.10. Новые типы данных и элементы управления
- •3.17.11. Средства конструирования и анализа
- •3.17.12. Безопасность
- •3.17.13. Интеграция с Службы Windows SharePoint Services
- •3.17.14. Сбор данных с помощь форм InfoPath и Outlook
- •3.17.15. Экспорт в форматы pdf и xps
- •3.17.16. Работа с внешними данными
- •3.17.17. Способы устранения неполадок
- •3.17.18. Средства проверки орфографии
- •3.17.19. Создание ленты пользователя
- •3.18.1. Создание Web-базы данных для публикации в Интернете
- •Подготовка
- •Начало работы с пустой веб-базой данных
- •Создание веб-таблицы.
- •Добавление поля щелчком таблицы.
- •Изменение свойств поля.
- •Добавление вычисляемого поля.
- •Настройка правил проверки данных.
- •Создание правила проверки поля и соответствующего сообщения.
- •Создание правила проверки записи и соответствующего сообщения.
- •Создание веб-формы.
- •Создание веб-отчета
- •Сделайте форму навигации веб-формой, отображаемой по умолчанию.
- •Синхронизация веб-базы данных
- •3.18.2. Настройка ленты пользователя
- •Вопросы для самопроверки и контроля
- •Глава 4. Субд Microsoft sql Server
- •4.1. Характеристика
- •4.2. Старт, остановка и приостановка sql Server
- •4.2.1. Старт sql Server
- •4.2.2. Приостановка sql Server
- •4.2.3. Остановка sql Server
- •4.2.4. Регистрация сервера
- •4.2.4.1. Окно регистрации сервера
- •4.3. Работа с базой данных
- •4.3.1. Организация и создание базы данных
- •4.3.1.1. Физическая организация
- •4.3.1.2. Размещение файлов
- •4.3.1.3. Создание базы данных средствами sql Server Enterprise
- •4.3.2. Создание и настройка таблицы базы данных
- •4.3.3. Создание и настройка диаграмм
- •4.3.4. Заполнение таблиц
- •4.3.5. Создание и настройка представлений
- •4.3.6. Язык запросов Transact‑sql
- •4.3.6.1. Основные элементы
- •4.3.6.2. Операции
- •4.3.6.3. Операторы
- •4.3.6.4. Базы данных
- •4.3.6.5. Таблицы
- •4.3.6.6. Запросы
- •4.3.6.7. Представления
- •4.3.6.8. Индексы
- •4.3.6.9. Статистика
- •4.3.6.10. Фрагментация
- •4.3.6.11. Курсоры
- •4.3.6.12. Транзакции и блокировки
- •4.3.6.13. Системные переменные, функции и хранимые процедуры
- •4.3.7. Хранимые процедуры
- •4.3.8. Создание триггеров
- •4.3.9. Формирование правил контроля вводимых значений
- •4.3.10. Формирование стандартных значений
- •4.4. Администрирование sql Server
- •4.4.1. Настройка параметров
- •4.4.2. Системные базы данных и таблицы
- •4.4.3. Тестирование и сжатие баз данных
- •4.4.4. Обмен данными с внешними системами
- •4.4.5. Создание резервных копий и восстановление баз данных
- •4.4.6. Использование службы выполнения расписаний sql Server Agent
- •4.4.7. Защита данных
- •4.4.8. Репликация данных
- •4.4.9. Взаимодействие sql‑сервера с Excel и Word
- •4.4.10. Перенос приложения Access в среду sql Server
- •В опросы для самопроверки и контроля
- •Глава 5. Субд Oracle
- •5.1. Основные понятия
- •5.1.1. Файлы данных и табличные пространства
- •5.1.2. Таблицы и индексы
- •5.1.3. Кластеры
- •5.1.4. Словарь данных
- •5.1.5. Объекты базы данных
- •5.1.6. Виды
- •5.1.7. Триггеры
- •5.1.12. Журналы транзакций
- •5.1.13. Экземпляр базы данных
- •5.1.14. Типы данных
- •5.1.14.1. Строки
- •5.1.14.2. Числа
- •5.1.14.3. Битовые строки
- •5.1.14.4. Дата и время
- •5.3.1. Таблицы
- •5.3.2. Представления
- •5.3.3. Запросы
- •5.3.4. Средства разграничения доступа
- •5.3.4.1. Создание и удаление пользователя
- •5.3.4.2. Привилегии
- •5.4.1. Правила написания программы
- •5.4.2. Операторы управления
- •5.4.3. Выражения
- •5.4.4. Переменные
- •5.4.4.1. Скалярные переменные
- •5.4.4.2. Объектные переменные
- •5.4.4.3. Записи
- •5.4.4.4. Коллекции
- •5.4.5. Пакеты
- •5.4.6. Процедуры и функции
- •5.4.7. Курсоры
- •5.4.8. Транзакции
- •5.4.9. Обработка исключений
- •5.4.10. Динамический sql‑оператор
- •5.4.11. Внедрение sql, pl/sql в прикладные программы
- •В опросы для самопроверки и контроля
- •Глава 6. Обзор субд
- •6.1. Российская субд линтер
- •Основные характеристики субд линтер
- •Количественные параметры бд линтер
- •6.2. Субд MySql
- •6.3. Субд InterBase
- •6.4. Субд Firebird
- •6.5. Субд db2
- •6.6. Субд progress
- •6.7. Субд PostgreSql
- •6.8. Субд oracle
- •6.9. Субд Microsoft sql Server
- •6.10. Постреляционная субд Cache’
- •6.11. Распределенная файловая система Google File System (gfs)
- •6.12. Berkeley db – движок для субд
- •6.13 Субд – движок sqLite
- •6.14 Субд Visual Clarion
- •Пункт меню «Личные карточки»:
- •Пункт меню «Выбор информации»
- •2.1. Движение кадров.
- •2.1.1. Приказы оПриеме на Работу.
- •Глава 7. Практикум
- •7.1. Язык запросов sql
- •7.1.1. Запросы на чтение данных
- •7.1.2. Запросы на обновление данных
- •7.1.3. Представления
- •7.2. Работа с базами данных
- •7.3. Курсовые работы
- •1. Учет успеваемости студентов.
- •2. Учет обмена валюты.
- •3. Учет объектов строительства.
- •4. Учет выдачи и возврата книг.
- •5. Учет авиапассажиров.
- •6. Учет производства сельскохозяйственных культур.
- •7. Учет выпуска изделий.
- •8. Учет платежей налогов.
- •9. Учет поставок товаров.
- •10. Учет сбросов отравляющих веществ в окружающую среду.
- •11. Учет уволившихся с предприятия.
- •12. Учет призеров Олимпийских игр.
- •14. Учет участников олимпиады.
- •15. Учет проданных товаров.
- •16. Учет малых предприятий.
- •17. Учет больных в больнице.
- •18. Учет движения общественного транспорта.
- •19. Учет дорожно-транспортных происшествий.
- •20. Учет платежных поручений в банке.
- •21. Учет договоров займа.
- •22. Учет проданных ценных бумаг.
- •23. Учет кадров.
- •24. Учет очередников на получение жилья.
- •25. Учет исполнительской дисциплины.
- •26. Учет книг в библиотеке.
- •27. Учет переселенцев.
- •28. Учет успеваемости школьников.
- •29. Учет нарушителей трудовой дисциплины на предприятии.
- •30. Учет семейного бюджета.
- •Приложения Приложение 1. Ответы на вопросы для самопроверки
- •Глава 1. Проектирование баз данных
- •Глава 2. Субд Visual FoxPro
- •Глава 3. Субд Access
- •Глава 4. Субд Microsoft sql Server
- •Глава 5. Субд Oracle
- •Приложение 2. Вопросы для экзаменационных билетов
- •Приложение 3. Встроенные функции субд Visual FoxPro
- •Математические функции
- •Строковые функции
- •Функции работы с датами
- •Функции преобразования типов данных
- •Функции проверки файлов и дисков
- •Функции времени
- •Функции анализа условий, типов и наличия данных
- •Функции подстановки
- •Функции работы с массивами
- •Функции работы с цветом
- •Приложение 4. События, методы и свойства объектов субд Visual FoxPro События
- •Свойства
- •Приложение 5. Встроенные функции pl/sql субд Oracle
- •Символьные функции
- •Функции преобразования
- •Календарные функции
- •Смешанные функции
- •Приложение 6. Оформление курсовой работы с примером Общие положения
- •Организация выполнения курсовой работы. Структура и требования к содержанию курсовой работы
- •Основные требования по оформлению курсовой работы
- •Оформление структурных элементов курсовой работы
- •Использование и оформление рисунков
- •Использование и оформление таблиц
- •Использование и оформление формул
- •Оформление примечаний и ссылок
- •Правила оформления списка использованных источников
- •Правила оформления приложений
- •Оформление содержания
- •Курсовая работа
- •Пример оформления курсовой работы
- •Курсовая работа
- •Содержание
- •Введение 3
- •Введение 12
- •Глава 1. Проектирование баз данных 14
- •Глава 2. Субд Visual FoxPro 213
- •Глава 3. Субд Access 308
- •Глава 4. Субд Microsoft sql Server 431
- •Глава 5. Субд Oracle 478
- •Глава 6. Обзор субд 506
- •Введение
- •1 Постановка задачи
- •2 Входная информация
- •3 Логическая модель базы
- •4 Выходная информация
- •5 Обращение к приложению
- •Заключение
- •Предметный указатель
- •Библиографический список
- •Плещёв Владимир Васильевич Базы данных.
- •С примерами и упражнениями
1.3.6. Иерархическая модель
Иерархическая модель (дерево) представляет собой связанный ориентированный граф, у которого любой подчиненный узел (кроме корневого) имеет только один исходный узел (рисунок 1.3.6.1).
Рисунок 1.3.6.1. Пример иерархической структуры
Рассмотрим ряд терминов иерархической модели.
Высота, вес и момент дерева ‑ число уровней, листьев и узлов в дереве.
Путь доступа ‑ совокупность узлов и дуг, проходя которые можно прийти к искомому узлу.
Сцепленный ключ ‑ соединение в один ключ всех ключей узлов на пути доступа к искомому узлу в порядке их обхода. Такой ключ обеспечивает наиболее простой и быстрый доступ к искомому узлу.
Сбалансированное дерево - дерево, в котором любой исходный узел имеет одинаковую степень (одинаковое число ветвей или подчиненных узлов).
Бинарное (двоичное) дерево ‑ сбалансированное дерево с исходными узлами степени два. Любое дерево можно преобразовать в бинарное дерево. Поиск данных в бинарном дереве наиболее быстрый.
Один экземпляр дерева хранится в виде списка данных узлов, полученного левосторонним обходом дерева (сверху вниз и справа налево).
Основные операции над записями (узлами): поиск нужной записи по ключу, переход от исходного к первому подчиненному узлу, переход к следующему подобному узлу, возврат к исходному узлу, удаление текущего узла и всех его подчиненных, вставка нового узла и обновление.
Иерархическая модель данных является наиболее простой среди всех даталогических моделей. Исторически она появилась первой: именно эту модель поддерживает первая из зарегистрированных промышленных СУБД IMS фирмы IBM.
Рассмотрим основные понятия этой СУБД.
Основными информационными единицами в иерархической модели являются: база данных (БД), сегмент и поле.
Поле данных - это минимальная, неделимая единица данных, доступная пользователю с помощью СУБД.
Сегмент – это запись, при этом определяются два понятия: тип сегмента или тип записи и экземпляр сегмента или экземпляр записи.
Тип сегмента - это поименованная совокупность типов элементов данных, в него входящих.
Экземпляр сегмента образуется из конкретных значений полей или элементов данных, в него входящих. Каждый тип сегмента в рамках иерархической модели образует некоторый набор однородных записей. Для возможности различия отдельных записей в данном наборе каждый тип сегмента должен иметь ключ или набор ключевых атрибутов (полей, элементов данных).
Ключ - это набор элементов данных, однозначно идентифицирующих экземпляр сегмента.
В иерархической модели сегменты объединяются в ориентированный древовидный граф (содержание этого и следующих параграфов скопировано из работы [19]). При этом полагают, что дуги отражают иерархические связи между сегментами: каждому экземпляру сегмента, стоящему выше по иерархии и соединенному с данным типом сегмента, соответствует несколько (множество) экземпляров данного (подчиненного) типа сегмента. Тип сегмента, находящийся на более высоком уровне иерархии, называется логически исходным по отношению к типам сегментов, соединенным с данным направленными иерархическими ребрами, которые в свою очередь называются логически подчиненными по отношению к этому типу сегмента. Иногда исходные сегменты называют сегментами-предками, а подчиненные сегменты называют сегментами-потомками.
Схема иерархической БД - это совокупность отдельных деревьев, каждое дерево в рамках модели называется физической базой данных.
Каждая физическая БД удовлетворяет следующим иерархическим ограничениям:
в каждой физической БД существует один корневой сегмент, то есть сегмент, у которого нет логически исходного (родительского) типа сегмента;
каждый логически исходный сегмент может быть связан с произвольным числом логически подчиненных сегментов;
каждый логически подчиненный сегмент может быть связан только с одним логически исходным (родительским ) сегментом.
Сегмент является экземпляром типа сегмента. Между экземплярами сегментов также существуют иерархические связи.
Экземпляры-потомки одного типа, связанные с одним экземпляром сегмента-предка, называют «близнецами». Набор всех экземпляров сегментов, подчиненных одному экземпляру корневого сегмента, называется физической записью. Количество экземпляров-потомков может быть разным для разных экземпляров родительских сегментов, поэтому в общем случае физические записи имеют разную длину.
В рамках иерархической модели выделяют языковые средства описания данных (DDL, Data Definition Language) и средства манипулирования данными (DML, Data Manipulation Language).
Каждая физическая база описывается набором операторов, определяющих как ее логическую структуру, так и структуру хранения БД. Описание начинается с оператора определения базы - DBD (Data Base Definition):
DBD Name = < имя БД>, ACCESS = < способ доступа>
Способ доступа определяет способ организации взаимосвязи физических записей.
Определено 4 способа доступа:
HDAM - hierarchical direct access method (иерархически прямой метод) - максимально быстрый, но не компактно хранящий данные;
HSAM - hierarchical sequential access method (иерархически последовательный метод) - наиболее медленный, но компактно хранящий данные;
HIDAM - hierarchical index direct access method (иерархически индексно-прямой метод) – компромиссный вариант, ближе к HDAM.
HISAM - hierarchical index sequential access method (иерархически индексно-последовательный метод) - компромиссный вариант, ближе к HSAM;
Каждая программа, пользователь или приложение определяет свою внешнюю модель. Внешняя модель представляет собой совокупность поддеревьев для физических баз данных, с которыми работает данный пользователь. Каждый подграф внешней модели в обязательном порядке должен содержать корневой тип сегмента соответствующей физической базы данных концептуальной модели.
Представление внешней модели называется логической базой данных и определяется совокупностью блоков связи данного приложения с физическими БД, входящими в концептуальную схему БД. Блок связи – РСВ, program communication bloc – описывает связь с одной физической БД. Совокупность блоков РСВ образует полное внешнее представление данного приложения, называемое «блоком спецификации программ» (PSB, program specification block).
При формировании исполнимого файла прикладной программы модуль с описанием базы данных и подсхемы (PSB) включались в исполнимый файл и использовались при выполнении программы.
Для организации физического размещения иерархических данных в памяти ЭВМ могут использоваться следующие группы методов:
представление линейным списком с последовательным распределением памяти (адресная арифметика, левосписковые структуры);
представление связными линейными списками (методы, использующие указатели и справочники).
К основным операциям манипулирования иерархически организованными данными относятся следующие:
поиск указанного экземпляра БД (например, дерева со значением 10 в поле Отд_номер);
переход от одного дерева к другому;
переход от одной записи к другой внутри дерева (например, к следующей записи типа Сотрудники);
ставка новой записи в указанную позицию;
удаление текущей записи и т. д.
В соответствии с определением типа "дерево", можно заключить, что между предками и потомками автоматически поддерживается контроль целостности связей. Основное правило контроля целостности формулируется следующим образом: потомок не может существовать без родителя, а у некоторых родителей может не быть потомков. Механизмы поддержания целостности связей между записями различных деревьев отсутствуют.
К достоинствам иерархической модели данных относятся эффективное использование памяти ЭВМ и неплохие показатели времени выполнения основных операций над данными. Иерархическая модель данных удобна для работы с иерархически упорядоченной информацией.
Недостатками иерархической модели являются ее громоздкость (для обработки информации с достаточно сложными логическими связями и сложность понимания для обычного пользователя) и жесткость (пока не будет создана логическая модель базы нельзя разрабатывать прикладные программы, и изменение структуры базы приводит к необходимости модифицировать прикладные программы).
На иерархической модели данных основано сравнительно ограниченное количество СУБД, в числе которых можно назвать зарубежные системы IMS, PC/Focus, Team-Up и Data Edge, а также отечественные системы Ока, ИНЭС и МИРИС.
