- •Головчинер м.Н.
- •Курс лекций Томск 2011
- •Введение
- •Понятие о данных как о ресурсе
- •Файловые системы и базы данных
- •Численные и информационные прикладные системы
- •Файловые системы
- •Файлы и информационные системы. Общее понятие о базе данных
- •Контрольные вопросы по первому разделу
- •База данных как модель предметной области
- •Понятие предметной области
- •Понятие системы
- •Понятие модели. Структурная модель
- •Модель предметной области и модель данных
- •Контрольные вопросы по второму разделу
- •Понятие о банке данных
- •Структура банка данных
- •Организационный аспект
- •Уровни представления базы данных
- •Модели предметной области:
- •Модели данных:
- •Контрольные вопросы по третьему разделу
- •Вопросы проектирования баз данных
- •Жизненный цикл информационной системы
- •Процесс проектирования
- •Организационный аспект
- •Задачи и структура процесса проектирования
- •Формулирование и анализ требований. Инфологическое проектирование
- •Общая схема логического (концептуального) проектирования
- •Контрольные вопросы по четвертому разделу
- •Модели данных
- •Реляционная модель данных
- •Базовые понятия
- •5.1.2. Принципы нормализации
- •5.1.3. Целостность сущности и ссылок
- •5.1.4. Манипулирование данными в реляционных моделях
- •5.1.4.1.Операции реляционной алгебры
- •5.1.4.2.Реляционное исчисление
- •Достоинства и недостатки реляционных моделей
- •Контрольные вопросы по разделу 5.1.
- •Навигационные модели данных
- •Иерархическая модель
- •Сетевые структуры
- •Особенности навигационных моделей. Достоинства и недостатки
- •Контрольные вопросы по разделу 5.2.
- •Система управления базой данных
- •Назначение и функции субд
- •Типовая организация субд и упрощенная схема работы
- •Контрольные вопросы по шестому разделу
- •Основы физического проектирования
- •Файловые и страничные системы хранения информации
- •Файловые структуры. Классификация методов доступа
- •Способы последовательной организации
- •Прямые методы доступа. Хеширование
- •Прямые методы доступа. Классификация методов индексирования
- •Доступ с полным (плотным) индексом
- •Доступ с неплотным индексом
- •Организация индексов в виде в-деревьев
- •Инвертированный файл (доступ по неключевым атрибутам)
- •Использование битовых шкал
- •Достоинства и недостатки основных методов доступа
- •Бесфайловая организация внешней памяти
- •Особенности реляционных субд
- •Базовые структуры памяти
- •5.1.4.3.Структура и типы страниц
- •5.1.4.4.Табличные пространства
- •5.1.4.5.Понятие экстента и буферизация
- •Проблемы и параметры управления внешней памятью
- •Контрольные вопросы по седьмому разделу
- •Особенности объектно-ориентированных субд
- •Основные понятия объектно-ориентированного подхода
- •Предпосылки появления объектно-ориентированных субд
- •Объектная модель данных. Оосубд
- •. Объектно-реляционные субд
- •5.2.Поддержка сложных объектов,
- •5.3.Поддержка динамических изменений определений классов,
- •5.4.Полная интеграция с объектно-ориентированными системами программирования.
- •Объектно-реляционное отображение
- •Select * from Предпочтительная акция
- •Управление ресурсами. Сервер объектов и сервер страниц
- •Контрольные вопросы по восьмому разделу
- •Вопросы распределенных баз данных
- •9.1. Централизованные и децентрализованные субд
- •Стратегии хранения данных. Достоинства и недостатки
- •Проблемы распределенных баз данных
- •Одновременная работа
- •Управление блокированием
- •Методы синхронизации распределенных обновлений
- •Завершение транзакции. Журнал транзакций
- •Свойства транзакций
- •Контрольные вопросы по девятому разделу
- •Заключение
- •Литература
Типовая организация субд и упрощенная схема работы
Очевидно, что организация типичной СУБД и состав ее компонентов соответствует рассмотренному набору функций. Логически в современной реляционной СУБД можно выделить:
внутреннюю часть – ядро СУБД (часто его называют DBE - Data Base Engine),
компилятор языка БД (обычно, SQL),
подсистему поддержки времени выполнения,
набор утилит.
В некоторых системах эти части выделяются явно, в других - нет, но логически такое разделение можно провести во всех СУБД.
Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Соответственно можно выделить такие компоненты ядра, как менеджер данных, менеджер буферов, менеджер транзакций и менеджер журнала. Функции этих компонентов взаимосвязаны, и для обеспечения корректной работы СУБД все эти компоненты должны взаимодействовать по тщательно продуманным и проверенным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ), и утилитах БД. Ядро СУБД является основной резидентной частью СУБД.
Основная функция компилятора языка БД - компиляция операторов языка БД в некоторую выполняемую программу. Основной проблемой реляционных СУБД является то, что языки этих систем (а это, как правило, SQL) являются непроцедурными, то есть в операторе такого языка специфицируется некоторое действие над БД, но эта спецификация не процедура, она лишь описывает в некоторой форме условия совершения желаемого действия. Поэтому компилятор должен решить, каким образом выполнять оператор языка, прежде чем произвести программу. Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но более часто в выполняемом внутреннем машинно-независимом коде. В последнем случае реальное выполнение оператора производится с привлечением подсистемы поддержки времени выполнения, представляющей собой, по сути дела, интерпретатор этого внутреннего языка.
Наконец, в отдельные утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и разгрузка БД, сбор статистики, заполнение БД реальными данными, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра.
Обобщенную структуру СУБД можно представить схемой на рис. 18.
Упрощенно основные этапы реализации СУБД запроса приложения представлены на рис.19.
Прикладная программа выдает СУБД запрос на доступ к БД.
СУБД анализирует запрос и определяет типы необходимых логических записей, содержащих запрашиваемые данные.
СУБД определяет хранимые записи, которые нужно предоставить прикладной программе.
СУБД выдает ОС команды поиска и обработки хранимых записей.
ОС интерпретирует команды СУБД, взаимодействует с внешним запоминающим устройством, обнаруживая в БД требуемые записи.
Рис.18. Обобщенная структура СУБД
Отобранные записи передаются в системные буферы.
СУБД выделяет логические записи, которые необходимо передать приложению.
СУБД передает выделенные данные из системных буферов в рабочую область прикладной программы, предварительно преобразовав их в формат, указанный в запросе.
СУБД передает прикладной программе информацию о результатах обработки запроса.
При успешном завершении СУБД обработки запроса приложение использует полученные данные для дальнейшей работы, в противном случае запрос должен быть повторен.
Рис.19. Схема реализации запроса к СУБД
Замечание. Понятия концептуальной и внешней схем для навигационных моделей достаточно очевидны. Для реляционной модели внешнюю схему можно ассоциировать со схемой отношения, являющегося результатом выполнения запроса. А вот понятие концептуальной схемы как результата реализации соответствующей модели инструментарием СУБД заменяется понятием даталогической (логической) схемы базы данных как взаимосвязанного набора схем отношений, формирующих базу.
Замечание. Для более эффективной работы с внешней памятью СУБД может взять управление на себя, минуя систему управления файлами ОС. Более подробно этот материал рассмотрен в п. 7.3..
Взаимодействие компонентов информационной системы между собой, предметной областью и ее моделью может быть представлена схемой на рис.20.