Системы управления базами данных. Трехуровневая архитектура базы данных

Исследовательской группой ANSI-SPARC (ANSI - American National Standard Institute и SPARC - Standards Planning and Requirements Committee) были предложены три уровня абстракции для организации структуры базы данных. Это внешний , концептуальный и внутренний уровни описания данных.

Именно на основе архитектуры ANSI-SPARC базируется архитектура большинства современных СУБД.

Определение Внешний уровень - это уровень, на котором данные воспринимаются пользователем или уровень пользователя. Он состоит из ряда различных внешних пользовательских представлений базы данных. При этом различные представления могут по-разному отображать дни и те же данные.

Определение Концептуальный уровень _ это общее представление БД, описывающее все данные, которые хранятся в ней. Этот уровень содержит логическую структуру всей базы данных. Именно на этом уровне представлены следующие компоненты:

  • - сущности, атрибуты и связи
  • - ограничения на данные
  • - семантическая информация о данных
  • - информация о том, как обеспечивается безопасность и целостность данных.

Важно отметить, что представление данных на концептуальном уровне не зависит от способа их хранения, но на этом уровне поддерживается любое внешнее представление.

Определение Внутренний уровень - это физическое представление информации в компьютере. Этот уровень содержит описание структур данных и организации отдельных файлов для хранения данных на физических устройствах.

Определение Схемой базы данных называется ее описание. В соответствии с уровнями абстракции определяются и типы схем базы данных: совокупность внешних схем (соответствующих отдельным представлениям данных), концептуальная и внутренняя схемы. Именно концептуальная схема описывает все сущности, атрибуты и связи между ними. Наконец, внутренняя схема есть полное описание физической структуры данных.

СУБД отвечает за взаимное соответствие перечисленных схем и за проверку их непротиворечивости. В рамках СУБД реализованы так называемые концептуально внутреннее и концептуально-внешнее отображения . Первое связывает концептуальную схему с внутренней и позволяет находить в памяти компьютера фактические записи, отвечающие логическим записям в концептуальной схеме. Второе позволяет СУБД отображать пользовательские представления на соответствующие части концептуальной схемы.

Подчеркнем, что изменения, вносимые на нижних уровнях абстракции, не влияют на верхние уровни. Так, внешние схемы защищены от изменений, производимых на концептуальном уровне, а концептуальная схема защищена от изменений, вносимых во внутреннюю схему. Таким образом трехуровневая архитектура определения данных обеспечивает независимость программ от данных .

Понятие. Система управления базами данных (СУБД) – это сов-сть языковых и програмн средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Современная СУБД содержит в своем составе программные средства создания баз данных (язык описания и манипулирования данными, визуальные средства, отладчики), средства работы с данными и сервисные средства. Функции элементов СУБД: - язык описания служит для преобразования логической модели в физическую; - язык манипулирования реализует операции над данными; - визуальные средства привлекаются в процессе проектирования графических объектов; - программы отладки соединяют и тестируют блоки программы управления, созданной БД; - средства работы с БД обеспечивают удобный интерфейс с пользователем; сервисные средства привлекают к работе с БД другие программы (эксель).

Архитектура. В среде СУБД можно выделить след. пять основных компонентов:

Аппаратное обеспечение. Одни СУБД предназначены для работы только с конкр типами ОС или оборудования, другие могут работать с широким кругом аппаратного обеспечения и различными ОС. Для работы СУБД обычно требуется некоторый минимум оперативной и дисковой памяти, но ее может быть недостаточно для достижения приемлемой производительности системы.

Программное обеспечение. Этот компонент включает операционную систему, программное обеспечение самой СУБД, прикладные программы, включая и сетевое программное обеспечение, если СУБД используется в сети. Обычно приложения создаются на языках третьего поколения, таких как С, COBOL, Fortran, Ada или Pascal, или на языках четвертого поколения, таких как SQL, операторы которых внедряются в программы на языках третьего поколения.

Данные – наиболее важный компонент с точки зрения конечных пользователей. База данных содержит как рабочие данные, так и метаданные, т.е. "данные о данных".

Процедуры, к которым относят инструкции и правила, которые должны учитываться при проектировании и использовании базы данных: регистрация в СУБД; использование отдельного инструмента СУБД или приложения; запуск и останов СУБД; создание резервных копий СУБД; обработка сбоев аппаратного и программного обеспечения, включая процедуры идентификации вышедшего из строя компонента, исправления отказавшего компонента (например, посредством вызова специалиста по ремонту аппаратного обеспечения), а также восстановления базы данных после устранения неисправности; изменение структуры таблицы, реорганизация базы данных, размещенной на нескольких дисках, способы улучшения производительности и методы архивирования данных на вторичных устройствах хранения.

Пользователи: клиенты БД, администратор БД, прикладные программисты. Более подробно этот компонент рассматривается в лекции №9 (Администрирование БД)

Подсистема средств проектирования представляет собой набор инструментов, упрощающих проектирование и реализацию баз данных и их приложений. Как правило, этот набор включает в себя средства для создания таблиц, форм, запросов и отчетов.

Подсистема обработки обеспечивает обработку компонентов приложений, созданных с помощью средств проектирования. Например, в Access 2003 имеется компонент, реализующий построение формы и связывающий элементы формы с данными таблиц.

Третий компонент СУБД – ее ядро (DBMS Engine) выполняет функцию посредника между подсистемой средств проектирования и обработки и данными. Ядро СУБД получает запросы от двух других компонентов, выраженные в терминах таблиц, строк и столбцов, и преобразует эти запросы в команды операционной системы, выполняющие запись и чтение данных с физического устройства.

Microsoft представляет два различных ядра для Access 2003: Jet Engine и SQL Server. Ядро Jet Engine используется для персональных и коллективных баз данных небольшого объема. Ядро SQL Server предназначено для крупных баз данных.

35. Возможности, предоставляемые СУБД пользователям. Производительность СУБД .

К основным функциям СУБД относятся: Ведение системного каталога, Системный каталог, или словарь данных, является хранилищем инф-ции, описывающей данные в БД (по сути, это "данные о данных", или метаданные). Обычно в системном каталоге хранятся следующие сведения: имена, типы и размеры элементов данных; имена связей; накладываемые на данные ограничения поддержки целостности; имена санкционированных пользователей, которым предоставлено праводоступа к данным; внешняя, концептуальная и внутренняя схемы и отображения между ними; статистические данные, например частота транзакций и счетчики обращений к объектам базы данных.

¨ Поддержка транзакций. Транзакция - набор действий, выполняемых отдельным пользователем или прикладной программой с целью доступа или изменения содержимого базы данных. Примерами транзакций может служить добавление в БД, обновление, удаление каких-либо сведений.

¨ Поддержка параллельной работы.

¨ Восстановление базы данных после сбоев. Журнал - это особая часть БД, недоступная пользователям СУБД и поддерживаемая с особой тщательностью (иногда поддерживаются две копии журнала, располагаемые на разных физических дисках), в которую поступают записи обо всех изменениях основной части БД.

¨ Контроль доступа к данным. СУБД должна иметь механизм, гарантирующий возможность доступа к базе данных только санкционированных пользователей.

¨ Поддержка обмена данными. СУБД в должны поддерживать работу в локальной сети, чтобы вместо нескольких разрозненных баз данных для каждого отдельного пользователя можно было бы установить одну централизованную базу данных и использовать ее как общий ресурс для всех существующих пользователей. Такая топология называется распределенной обработкой.

¨ Поддержка целостности данных. Целостность базы данных означает корректность и непротиворечивость хранимых данных. Она может рассматриваться как еще один тип защиты базы данных.

¨ Поддержка независимости от данных. Независимость от данных обычно достигается за счет реализации механизма поддержки представлений или подсхем. Физическая независимость от данных достигается довольно просто, так как обычно имеется несколько типов допустимых изменений физических характеристик базы данных, которые никак не влияют на представления.

Вспомогательные функции. предназначенны для администрирования базы данных, импорта и экспорта БД, мониторинга характеристик функционирования и использования базы данных, статистического анализа, реорганизации индексов, перераспределения памяти.

Приложения выполняют пять основных функций: 1. Создание, чтение, обновление и удаление представлений. 2. Форматирование представлений. 3. Реализация ограничений. 4. Обеспечение механизмов безопасности и контроля. 5. Реализация логики обработки информации. Производительность СУБД оценивается:

Временем выполнения запросов; скоростью поиска информации в неиндексированных полях; временем выполнения операций импортирования базы данных из других форматв; скоростью создания индексов и выполнения таких массовых операций, как обновление, вставка, удаление данных; максимальным числом параллельных обращений к данным в многопользовательском режиме; временем генерации отчета. На производительность СУБД оказывают влияние два фактора: СУБД, которые следят за соблюдением целостности данных, несут дополнительную нагрузку, которую не испытывают другие программы; производительность собственных прикладных программ сильно зависит от правильного проектирования и построения базы данных.

Система управления базами данных (СУБД) Oracle предназначена для одновременного доступа к большим объемам хранимой информации и манипуляции с ними. В СУБД есть два основных понятия, которые необходимо усвоить для понимания некоторых последующих моментов с точки зрения безопасности и защиты СУБД, – это база данных и экземпляр. Если в двух словах, то база данных – это набор файлов в ОС, а экземпляр – процессы и память, причем одна база данных может быть доступна в нескольких экземплярах, а экземпляр единовременно обеспечивает доступ только к одной базе данных. Теперь рассмотрим эти понятия подробнее.

База данных Oracle

В базе данных Oracle есть два уровня представления данных: физический и логический. Физический уровень включает файлы баз данных, которые хранятся на диске, а логический уровень включает в себя табличное пространство, схемы пользователей. Рассмотрим эти уровни более подробно.

Физический уровень базы данных

База данных и экземпляр на физическом уровне представлены шестью типами файлов. К экземпляру относятся файлы параметров, в которых прописываются его характеристики. Основной файл – это файл init.ora, отвечающий за параметры инициализации экземпляра, такие как имя базы данных, ссылку на управляющие файлы и пр. Пример файла инициализации представлен на рис. 1

Файлы базы данных

База данных как таковая представлена набором файлов разных типов, в которых собственно хранятся различные данные. Ниже кратко рассказано о том, что представляют собой эти типы файлов и чем файлы каждого типа могут быть нам полезны:

  • Файлы данных . В этих файлах хранятся собственно сами данные в виде таблиц, индексов, триггеров и прочих объектов. Файлы данных являются наиболее важными во всей базе данных. В стандартной базе должно присутствовать минимум два файла данных: для системных данных (табличное пространство SYSTEM) и для пользовательских данных (табличное пространство USER). В табличном пространстве SYSTEM хранятся пароли всех пользователей в зашифрованном виде.
  • Файлы журнала повторного выполнения (redo logs) . Файлы журнала повторного выполнения очень важны для базы данных Oracle. В них записываются все транзакции базы данных. Они используются только для восстановления данных в самой базе при сбое экземпляра. В журналах повторного выполнения можно обнаружить множество критичной информации, о существовании которой рядовой администратор мог и не задуматься, в том числе и пароли пользователей.
  • Управляющие файлы . В этих файлах определено местонахождение файлов данных и другая информация о состоянии базы данных. Управляющие файлы должны быть хорошо защищены. Наиболее важным является файл параметров инициализации экземпляра, потому что без него не удастся запустить экземпляр. Остальные файлы, такие как LISTENER.ORA, SQLNET.ORA, PROTOCOL.ORA, NAMES.ORA и пр., связаны с поддержкой сети и так же очень важны. В этих файлах можно обнаружить множество полезной информации для проникновения в СУБД.
  • Временные файлы . Временные файлы используются для хранения промежуточных результатов действий над большим объемом данных в случае, если в оперативной памяти для этого не хватает места. Во временных файлах можно обнаружить содержимое временных таблиц и построенных по ним индексов. Временные файлы могут оказаться полезными в процессе расследования инцидентов или при восстановлении важной информации, удаленной из базы данных.
  • Файлы паролей . Используются для аутентификации пользователей, выполняющих удаленное администрирование СУБД по сети. Более детально о них мы будем говорить позже.

Как видно, с точки зрения безопасности каждый приведенный выше тип файлов имеет большое значение.

Логический уровень базы данных

На логическом уровне находятся табличные пространства и схема БД, состоящая из таблиц, индексов, представлений, хранимых процедур и пр.

База данных разделяется на несколько логических частей, называемых табличными пространствами. Табличные пространства используются для логической группировки данных между собой для упрощения администрирования.

Каждое табличное пространство состоит из одного или более файлов данных, которые физически могут располагаться на разных дисках.

В табличных пространствах, в свою очередь, находятся схемы – это своеобразные контейнеры хранимых в БД объектов. Каждая схема однозначно ассоциируется с определенным пользователем – владельцем этой схемы. В этих схемах уже находятся такие логические единицы, как таблицы, индексы, представления и хранимые процедуры.

Каждая система управления базой данных должна удовлетворять следующим требованиям:

  • обеспечивать пользователю возможность создавать новые БД и определять их схему (логическую структуру данных) с помощью специального языка (языка определения данных); поддерживать разнообразные представления одних и тех же данных;
  • позволять делать запросы к данным (к информации из БД) и изменять данные с помощью языка запросов или языка манипулирования данными; допускать интеграцию и совместное использование данных различными приложениями;
  • поддерживать хранение очень больших массивов данных в течение длительного времени, защищая их от случайной порчи и неавторизиро- ванного доступа; обеспечивать модификацию БД в случае необходимости и доступ к данным путем запросов, т.е. гарантировать безопасность и целостность данных;
  • контролировать доступ к данным одновременно для многих пользователей; исключать влияние запроса одного пользователя на запрос другого и не допускать одновременный доступ, который может испортить данные, т.е. гарантировать управление параллельным доступом к данным.

В информационной системе с БД можно выделить несколько компонентов.

  • 1. Пользователи - люди, которые используют информацию, находящуюся в БД. Принято выделять следующие группы пользователей: системные администраторы - отвечают за основные операции системы; администраторы базы данных - управляют работой СУБД и обеспечивают функционирование базы данных; проектировщики базы данных - разрабатывают структуру БД; системные аналитики - определяют основные функции системы базы данных и проектируют формы ввода данных, отчеты и процедуры, с помощью которых обеспечиваются доступ к данным и манипулирование ими (их добавление, изменение, удаление); программисты - создают программный код; непосредственные пользователи - используют прикладные программы для выполнения необходимых операций по автоматизации своей деятельности.
  • 2. Приложения - программы пользователей, которым необходима информация из системы.
  • 3. Система управления базой данных - ПО, управляющее доступом к данным и обеспечивающее указанные функциональные возможности ИС с БД.
  • 4. Информация - обработанные данные (строки, хранящиеся в файлах).
  • 5. Хост-система - компьютерная система, в которой хранятся файлы. Доступ к строкам данных осуществляется хост-системой. Роль СУБД состоит в том, чтобы генерировать запросы, позволяющие использовать функциональные возможности системы управления файлами хост- системы для обслуживания различных приложений. СУБД представляет собой дополнительный уровень ПО, надстроенный над программным обеспечением хост-системы.
  • 6. Оборудование - все системные программные средства (универсальный компьютер, персональный компьютер, ноутбук, карманный компьютер).
  • 7. Периферийные устройства - физические устройства, обеспечивающие ввод/вывод, а также электронные устройства для подключения дополнительных компьютеров и организации сети.

Графическая интерпретация ИС с БД в виде логической последовательности уровней представлена на рис. 3.1.

Рис. 3.1

На нижнем уровне находятся данные, хранящиеся в физических файлах (физическая память БД). На верхнем уровне располагаются приложения, у которых имеется собственное представление одних и тех же физических данных. Каждое представление базы данных предполагает определенную логическую структуру, построенную из лежащих в основе физических данных. Чтобы обеспечить интерфейс между физической памятью БД и ее разнообразными логическими версиями (множеством поддерживаемых представлений), сама СУБД тоже состоит из нескольких уровней (компонентов).

Обычно современная СУБД содержит следующие компоненты:

  • ядро, которое отвечает за управление данными во внешней и оперативной памяти;
  • процессор языка базы данных, обеспечивающий извлечение и изменение данных и создание, как правило, машинно-независимого исполняемого внутреннего кода;
  • подсистему поддержки времени исполнения, которая интерпретирует программы манипуляции данными, создающие пользовательский интерфейс с СУБД;
  • сервисные программы (внешние утилиты), обеспечивающие ряд дополнительных возможностей по обслуживанию информационной системы.

Системы управления базой данных классифицируют по различным признакам, например: по модели данных - иерархические, сетевые, реляционные, объектно-ориентированные, объектно-реляционные; по способу размещения - локальные (все части локальной СУБД размещаются на одном компьютере), распределенные (части СУБД размещаются на двух и более компьютерах); по способу доступа к БД - файл-серверные, клиент-серверные, встраиваемые, - а также по другим признакам |9, 33].

Концептуальная, логическая и физическая модели предметной области. Предметная область представляет собой часть реального мира, которая исследуется или используется. Это может быть «Изготовление изделий на заказ», «Сбыт готовой продукции», «Оформление сотрудника на работу» и др. Из-за сложности предметной области охватить ее аспекты в одноуровневой модели не представляется возможным. Поэтому используются три уровня: концептуальный (понятийный), логический и физический.

Концептуальный уровень отражает предметную область в самом общем виде. Он определяет содержание и структуру предметной области безотносительно к моделям данных (см. параграф 3.3) и типу используемой СУБД. Этот уровень должен быть понятен пользователю и полностью независим от того, как данные будут храниться в БД в действительности. Изменения в этой модели должны производиться только при изменениях в реальном мире, чтобы эта модель продолжала быть отражением предметной области.

Логический уровень является промежуточным, на котором производится формализация модели. Па этом уровне предметная область отображается в виде информационных объектов (сущностей) и связей между ними. Для реляционной модели сущности являются «прообразами» таблиц, а связи отображают отношения между ними. Логическая модель лежит в основе построения БД, в том числе и с использованием CASE-средств.

Физический уровень модели предметной области определяет способ реализации в среде выбранной СУБД. Одной логической модели может соответствовать несколько физических моделей (для разных СУБД). В CASE-средствах осуществляется автоматическое преобразование логической модели в физическую для конкретной СУБД. На основе физической модели осуществляется проектирование структуры базы данных. С использованием CASE-средств этот процесс происходит автоматически и называется прямым проектированием. CASE-средства позволяют также на основе существующей БД создавать физическую, а затем и логическую модели (обратное проектирование) .

Трехуровневая архитектура СУБД. Первые попытки стандартизации общей архитектуры СУБД относятся к 1971 г., когда был предложен двухуровневый подход к архитектуре СУБД на основе использования системного представления, включающего понятие схемы базы данных и пользовательских представлений (подсхем).

В 1978 г. комитетом ANSI/SPARC (ANSI, American National Standard Institute - Национальный институт стандартизации США; SPARC,

Standard Planning and Requirements Committee - Комитет планирования стандартов и норм) официально зафиксировано различие между логическим и физическим представлением данных. В частности, была предложена обобщенная структура систем с базой данных. Эта структура получила название трехуровневой архитектуры, включающей внутренний, концептуальный и внешний уровни (рис. 3.2).


Рис. 3.2.

Введение трехуровневой архитектуры БД позволило отделить пользовательское представление БД от ее физического представления. Необходимость такого отделения обусловлена, прежде всего, следующими причинами:

  • каждый пользователь должен иметь возможность обращаться к одним и тем же данным, используя собственное представление об этих данных, а также изменять его при необходимости, что не должно оказывать влияния на представление о данных других пользователей;
  • обращение пользователя к БД не должно зависеть от особенностей хранения в ней данных;
  • администратор БД может при необходимости изменять структуру хранения данных в базе, включая концептуальную структуру БД, причем эти действия не должны влиять на пользовательские представления данных;
  • внутренняя структура хранения данных не должна зависеть от изменения физических устройств хранения информации.

Внутренний уровень в трехуровневой модели СУБД - это уровень, определяющий физический вид БД, наиболее близкий к физическому хранению. Он связан со способами хранения информации на физических устройствах. К данному уровню имеют отношение дисководы, физические адреса, индексы, указатели и г.д. За работу уровня отвечают проектировщики физической БД, которые решают, какие физические устройства будут хранить данные, какие методы доступа к данным будут использоваться и какие меры следует принять для поддержания или повышения быстродействия СУБД. Для пользователей данный уровень закрыт.

Концептуальный уровень - структурный уровень, который дает представление о логической схеме БД. На данном уровне выполняется концептуальное проектирование БД, которое включает анализ информационных потребностей пользователей и определение нужных им элементов данных. Результатом концептуального проектирования является концептуальная схема БД, а также логическое описание всех элементов данных и отношений между ними. Как было сказано выше, концептуальная схема БД не связана напрямую с выбранной моделью данных и СУБД, в то время как логическая схема уже предполагает представление структуры данных в рамках выбранной модели (см. параграф 3.3).

Внешний уровень - структурный уровень БД, определяющий пользовательские представления данных. Каждый пользователь или группа пользователей получают свое собственное представление данных в БД. Такое пользовательское описание элементов данных и отношений между ними можно напрямую вывести из концептуальной схемы. Совокупность различных пользовательских представлений данных и образует внешний уровень.

Под схемой данных (схемой базы данных) понимается общее описание базы данных. В соответствии с трехуровневой архитектурой различают и три типа схем базы данных:

  • 1) внешнему уровню представления БД соответствуют, как правило, несколько внешних схем (подсхем) БД. Каждая из таких схем соответствует представлению данных определенной группы пользователей СУБД;
  • 2) концептуальная схема описывает все элементы данных, связи между ними, а также необходимые ограничения для поддержки целостности данных. Для каждой БД имеется только одна концептуальная схема данных;
  • 3) внутренняя схема является полным описанием внутренней модели данных и содержит определения хранимых записей, методы представления, описания полей данных, сведения об индексах и нр. Внутренняя схема для каждой БД только одна.

Исходя из различных схем БД в трехуровневой модели, следует, что СУБД должна устанавливать соответствие и следить за непротиворечивостью перечисленных схем.

Концептуальная схема - центральное связующее звено между каждой внешней схемой и внутренней схемой БД. Концептуальная схема связана с внутренней схемой посредством внутреннего концептуального отображения. Каждая внешняя схема, в свою очередь, связана с концептуальной схемой с помощью внешнего концептуального отображения, которое позволяет отображать пользовательское представление на соответствующую часть концептуальной схемы.

В теории и практике баз данных принято различать понятия «описание базы данных» и «база данных». Под описанием БД понимают схему БД, создаваемую в процессе проектирования БД, изменение которой предполагается в исключительных случаях. Под базой данных понимается вся информация, содержащаяся в базе, которая может изменяться с течением времени. Совокупность информации, хранящейся в БД в любой определенный момент времени, называется состоянием БД. Таким образом, одной и той же схеме БД может соответствовать множество различных состояний БД. Состояние БД также называется детализацией.

Главное назначение трехуровневой архитектуры - обеспечение независимости от данных, т.е. любые изменения на нижних уровнях БД не должны влиять на верхние уровни.

Независимость бывает двух типов:

  • логическая - полная защищенность внешних схем от изменений, которые вносятся в концептуальную схему;
  • физическая - защищенность концептуальной схемы от изменений, которые вносятся во внутреннюю схему.

Рис. 1.3. Архитектура СУБД

Архитектура СУБД.

В современных системах БД выделяют 3 уровня представления данных: внешний, концептуальный и внутренний (рис. 1.3). Внешний уровень отражает представление пользователей на БД. Внутренний уровень отражает представление, на котором СУБД и ОС воспринимают данные. Концептуальный (логический) уровень – связан с обобщенным представлением всех пользователей БД (это взгляд администратора БД).

Этот подход является общепризнанным и существует уже более 30 лет. Первые предложения по многоуровневой архитектуре были выдвинуты рабочей группой CODACYL в 1971 г. В 1975 г. Комитет планирования стандартов и норм SPARC (Standarts Planning and Requirements Committee) Американского национального института стандартов FNSI (American National Stsndsrt Institute) предложил обобщенную 3-х уровневую структуру СУБД, которая была официально признана в 1978 г и получила название ANSI SPARC.

Первая попытка создания стандартной терминологии и общей архитектуры СУБД была предпринята в 1971 году группой DBTG, признавшей необходимость использования двухуровневого подхода, построенного на основе использования системного представления, т.е. схемы, и пользовательских представлений, т.е. подсхем. Сходные терминология и архитектура были предложены в 1975 году Комитетом планирования стандартов и норм SPARC. Комитет ANSI/SPARC признал необходимость использования трехуровневого подхода. Хотя модель ANSI/SPARC не стала стандартом, тем не менее она все еще представляет собой основу для понимания некоторых функциональных особенностей СУБД.

В данном случае наиболее важным моментом в этих и последующих разработках является идентификация трех уровней абстракции, т.е. трех различных уровней описания элементов данных. Эти уровни формируют трехуровневую архитектуру, которая охватывает внешний, концептуальный и внутренний уровни. Цель трехуровневой архитектуры заключается в отделении пользовательского представления базы данных от ее физического представления. Ниже перечислено несколько причин, по которым желательно выполнять такое разделение.

· Каждый пользователь должен иметь возможность обращаться к одним и тем же данным, используя свое собственное представление о них. Каждый пользователь должен иметь возможность изменять свое представление о данных, причем это изменение не должно оказывать влияния на других пользователей.

· Пользователи не должны непосредственно иметь дело с подробностями физического хранения данных в базе

· Администратор базы данных должен иметь возможность изменять структуру хранения данных в базе, не оказывая влияния на пользовательские представления.

· Внутренняя структура базы данных не должна зависеть от таких изменений физических аспектов хранения информации, как переход на новое устройство хранения.

· АБД должен иметь возможность изменять концептуальную или глобальную структуру базы данных без какого-либо влияния на всех пользователей.

Уровень, на котором воспринимают данные пользователи, называется внешним уровнем (external level), тогда как СУБД и операционная система воспринимают данные на внутреннем уровне (internal level). Именно на внутреннем уровне данные реально сохраняются с использованием всех тех структур и файловой организации. Концептуальный уровень (conceptual level) представления данных предназначен для отображения внешнего уровня на внутренний и обеспечения необходимой независимости друг от друга.

Основным назначением такой архитектуры является обеспечение независимости данных, суть которого заключается в том, что изменения на нижних уровнях архитектуры не влияют на верхние уровни.

Внешний уровень – это пользовательский уровень. Пользователем может быть программист, конечный пользователь или администратор БД. Представление с точки зрения пользователя называется внешним представлением. Оно отражает представление пользователя о данных в БД в удобной для него форме (например, для бухгалтерии - это данные о студентах, которым начисляется стипендия, при этом не важно, какие у них оценки. Для деканата данные о тех же студентах будут содержать сведения об их оценках в сессию и т.п.) . Эти частичные представления пользователей о БД называют подсхемой БД. При этом каждый пользователь может использовать свои языковые и программные средства для работы с БД.

Концептуальный уровень является промежуточным уровнем и обеспечивает представление всей БД в абстрактной форме. Описание БД на этом уровне называют концептуальной схемой, которая является результатом концептуального проектирования. Концептуальная схема отражает интересы всех пользователей и представляет собой единое логическое описание всех элементов данных и отношений между ними, образуя логическую структуру всей БД.

Концептуальная схема должна содержать:

· объекты и атрибуты предметной области;

· связи между объектами;

· ограничения, накладываемые на данные;

· семантическую информацию о данных;

· обеспечение безопасности данных;

· поддержку целостности данных.

Концептуальный уровень поддерживает каждое внешнее представление, в том смысле, что любые доступные пользователю данные должны содержаться (или могут быть вычислены) на этом уровне. Однако на этом уровне не содержаться сведения о методах хранения данных.

Внутренний уровень характеризует внутреннее представление. Оно не связано с физическим уровнем, т.к. физический уровень хранения информации обладает существенной индивидуальностью для каждой системы. На внутреннем уровне все эти особенности не учитываются, а вся область хранения представляется как бесконечное линейное адресное пространство. На нижнем уровне находится внутренняя схема, которая является полным описанием внутренней модели данных. Для каждой БД она только одна. Внутренняя схема описывает физическую реализацию и предназначена для достижения оптимальной производительности и обеспечения экономного использования дискового пространства. На внутреннем уровне хранится следующая информация:

· распределение дискового пространства для хранения данных и индексов;

· описание подробностей сохранения записей (типы, размеры элементов данных и др.);

· сведение о размещении записей;

· сведения о сжатии записей и выбранных методах шифрования.

СУБД отвечает за установление соответствия между всеми тремя уровнями и поддержку их непротиворечивости.

СУБД является сложным программным продуктом и должна обеспечивать выполнение всех определенных ранее функций. Следует отметить, что некоторые функции могут выполняться ОС. Поэтому при проектировании СУБД следует учитывать особенности интерфейса СУБД с ОС.

В структуре СУБД выделяют ядро СУБД (рис. 1.4), которое включает транслятор с языка БД (ЯОД И ЯМД), подсистему поддержки времени выполнения (управление данными во внешней памяти, управление собственными буферами оперативной памяти, управление журнализацией), подсистему управления транзакциями. Кроме того в состав СУБД входит набор утилит, который существенно зависит от выбранной СУБД. В некоторых СУБД эти части явно не выделены, но логически присутствуют всегда.

Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами ОП, управление транзакциями и ведение журналов. Каждая функция реализуется в виде соответствующего менеджера (менеджер транзакций, менеджер буферов и т.д.). Эти функции взаимосвязаны и должны работать под управлением четко проверенных протоколов. Ядро СУБД обладает собственным интерфейсом, недоступным пользователю напрямую и является резидентной частью СУБД. При использовании архитектуры «клиент-сервер» оно является основной составляющей серверной части. Поэтому программа, обеспечивающая выполнение функций СУБД называется машина БД.

В структуре программного комплекса СУБД можно выделить:

Процессор запросов – преобразует запросы в последовательность низкоуровневых инструкций для контроллера БД.

Транслятор с ЯОД – преобразует его команды в набор таблиц, содержащих метаданные. Эта информация хранится в системном каталоге, а управляющая информация – в заголовке файлов.

Транслятор с ЯМД – преобразует внедренные в прикладные программы операторы в вызовы стандартных функций базового языка. Взаимодействует с процессором запросов.