Тема 2. Основы теории баз данных Лекция 3. Архитектура системы баз данных Базы данных
План лекции 1. Архитектура системы баз данных ANSI/SPARC 2. Назначение и основные функции СУБД. Типовая организация СУБД
Вопрос 1 Архитектура системы баз данных ANSI/SPARC
Историческая справка (1/2) В 1972 г. комитетом Standards Planning and Requirements Committee (SPARC) института American National Standards Institute была организована группа Study Group on Data Management Systems В задачи группы входило определение того, нуждаются ли какие-либо области технологии баз данных в стандартизации, и выработка набора рекомендаций по действиям в каждой из этих областей
Историческая справка (2/2) В результате проведенных исследований, группа пришла к выводу (отчеты 1975 и 1978 г.г.), что единственных подходящий способ стандартизации – это стандартизация интерфейсов, и в соответствии с этим определила общую архитектуру систем баз данных (так называемую архитектуру ANSI/SPARC)
Уровни архитектуры (1/2) Внешний уровень (индивид. представления пользователей) Концептуальный уровень (обобщенное представление пользователей) Внутренний уровень (представление в памяти) …
Уровни архитектуры (2/2) Внутренний - наиболее близкий к физическому хранению, связанный со способами хранения информации (на физических устройствах хранения) Внешний - наиболее близкий к пользователям, связанный со способами представления данных для отдельных пользователей Концептуальный - "промежуточный" уровень между двумя первыми, связанный с обобщенным представлением пользователей
Детализованная архитектура
Язык пользователя Для прикладного программиста – либо один из распространенных языков программирования, либо специальный язык рассматриваемой системы Для конечного пользователя – или специальный язык запросов, или язык, основанный на формах и меню, созданный специально с учетом требований пользователя и поддерживаемый неким интерактивным приложением
Подъязык данных Любой язык пользователя включает подъязык данных, т.е. множество операторов, связанное только с объектами и операциями бах данных Находящийся в распоряжении пользователя подъязык данных определен в терминах внешних записей
Внешнее представление Внешнее представление – это содержимое базы данных, каким его видит определенный пользователь (т.е., для этого пользователя внешнее представление и есть база данных). В общем, оно состоит из множества экземпляров каждого типа внешней записи, которые, в свою очередь, могут не совпадать с хранимыми записями.
Внешняя схема Каждое внешнее представление определяется средствами внешней схемы, которая в основном состоит из определений каждого типа записей во внешнем представлении Внешняя схема задается при помощи языка определения данных из пользовательского подъязыка данных
Концептуальное представление Концептуальное представление – это абстрактное представление всей информации базы данных. Оно состоит из множества экземпляров каждого типа концептуальной записи
Концептуальная схема Концептуальное представление определяется при помощи концептуальной схемы, которая включает определение каждого типа концептуальной записи Кроме того, концептуальная схема может содержать определения многих дополнительных средств, таких как средства безопасности или правила для обеспечения целостности
Концептуальный язык Концептуальная схема использует другой язык определения данных – концептуальный Определения концептуального языка должны относиться только к содержанию информации и не должны рассматривать структуры хранения или методы доступа
Внутреннее представление Внутреннее представление – это представление нижнего уровня всей базы данных, состоящее из многих экземпляров каждого типа внутренней записи Оно не связано с физическим уровнем. В нем не рассматриваются физические записи, физические области устройства хранения информации и т.п. Оно предполагает бесконечное линейное адресное пространство, подробности того, как это пространство отображено на физическое устройство хранения, умышленно не включены в общую архитектуру
Внутренняя схема Внутреннее представление описывается с помощью внутренней схемы, которая определяет не только различные типы хранимых(внутренних) записей, но и индексы, способы представления хранимых полей, физическую последовательность хранимых данных и т.д. Внутренняя схема пишется с использованием еще одного языка определения данных – внутреннего
Рассматриваемые отображения Выделяют 2 уровня отображений: – концептуальный-внутренний – внешний-концептуальный При внесении изменений в схемы, необходимо вносить соответствующие изменения в отображения, чтобы сохранить независимость уровней
Различия, которые могут существовать между уровнями Данные полей могут быть разных типов Названия полей и записей могут быть изменены Несколько концептуальных полей могут быть объединены в одно внешнее (виртуальное) поле
Администраторы Администратор данных – человек, отвечающий за стратегию и политику принятия решений связанных с данными организации Администратор базы данных – человек, обеспечивающий необходимую техническую поддержку выполнения этих решений
Функции администратора БД (1/2) Определение концептуальной схемы. Администратор данных должен производить логическое (концептуальное) проектирование, а администратор БД реализует ее технически Определение внутренней схемы. Этот процесс называют физическим проектированием Взаимодействие с пользователями. Оказание помощи в написании внешних схем и определение их отображения на концептуальную схему
Функции администратора БД (2/2) Определение правил безопасности и целостности Определение процедур резервного копирования и восстановления Управление производительностью и реагирование на изменяющиеся требования
Вопрос 2 Назначение и основные функции СУБД. Типовая организация СУБД
Назначение СУБД Система управления базами данных (СУБД) – программное обеспечение, которое управляет доступом к базе данных Основная функция СУБД – предоставление пользователю БД возможности работать с ней, не вникая в детали на уровне АО
Сценарий работы СУБД Пользователь выдает запрос на доступ, применяя определенный подъязык данных (обычно SQL) СУБД перехватывает этот запрос и анализирует его Далее, СУБД просматривает внешнюю схему для этого пользователя, соответствующее отображение (внешний-концептуальный), концептуальную схему, отображение концептуальный-внутренний и определение структуры хранения Наконец, СУБД выполняет необходимые операции над хранимой базой данных
Функции СУБД (1/2) Допускать определение данных (внешних схем, концептуальной схемы, внутренней схемы, а также всех связанных отображений). Для этого в ее состав должен входить языковый процессор различных языков определения данных Уметь обрабатывать запросы пользователя на выборку, изменение, удаление существующих данных или на добавление новых (выделяют планируемые и непланируемые запросы) Поддерживать безопасность и целостность данных, т.е. контролировать пользовательские запросы и пресекать попытки нарушения правил безопасности и целостности, определенные АБД
Функции СУБД (2/2) Поддерживать восстановление и дублирование данных. Решение этой задачи обычно занимается специальный компонент – менеджер транзакций Обеспечивать ведение словаря данных. Словарь можно считать системной базой данных, содержащей данные о данных – метаданные, т.е. определения других объектов системы Обеспечивать выполнение всех указанных функций с максимально возможной производительностью (эффективностью)
Состав СУБД Ядро СУБД (часто его называют DataBase Engine) Языковый процессор – как правило, компилятор языка SQL Процессор обработки данных – подсистема поддержки времени выполнения (runtime) Набор утилит
Ядро СУБД Является основной резидентной частью СУБД Отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. В составе ядра выделяют: – менеджер данных – менеджер буферов – менеджер транзакций – менеджер журнала
Интерфейс ядра Ядро СУБД обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в программах, производимых компилятором SQL (или в подсистеме поддержки выполнения таких программ) и утилитах БД
Компилятор языка БД Основной функцией компилятора языка БД является компиляция операторов языка БД в некоторую выполняемую программу Результатом компиляции является выполняемая программа, представляемая в некоторых системах в машинных кодах, но, более часто, в выполняемом внутреннем машинно-независимом коде
Подсистема поддержки времени выполнения Реальное выполнение оператора языка БД производится с привлечением подсистемы поддержки времени выполнения, представляющей собой, по сути дела, интерпретатор внутреннего языка
Утилиты Утилиты БД обычно выделяют такие процедуры, которые слишком накладно выполнять с использованием языка БД, например, загрузка и выгрузка БД, сбор статистики, глобальная проверка целостности БД и т.д. Утилиты программируются с использованием интерфейса ядра СУБД, а иногда даже с проникновением внутрь ядра
Литература 1. Дейт К. Введение в системы баз данных, 8-е издание. Пер. с англ. К.; М.; СПб.: Издательский дом «Вильямс», Кузнецов С.Д. Основы современных баз данных.