Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Базы данных

Введение в архитектуру систем баз данных

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

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

Ниже в упрощенном виде рассматривается архитектура, предложенная подкомитетом SPARC {англ. Standards Planning and Requirements Committee, комитет по планированию стандартов) американского национального института стандартов ANSI, так называемая архитектура ANSI/ SPARC, впервые представленная в 1975 г.

Трехуровневая архитектура систем баз данных ANSI/SPARC

Архитектура систем БД ANSI/SPARC описывает логическую организацию системы с точки зрения представления данных пользователям и включает три уровня: внутренний, концептуальный и внешний. Каждый из них состоит из одного или нескольких представлений (рис. 2.1). Уровни определяются следующим образом:

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

Прежде чем более подробно рассматривать архитектуру БД, введем несколько определений [3]. Хранимое поле – наименьшая единица хранимых данных. БД содержит экземпляры каждого из нескольких типов хранимых полей. Хранимая запись – набор связанных хранимых полей. Хранимый файл – набор всех экземпляров хранимых записей одного типа.

Схематичное представление архитектуры ANSI/SPARC

Рис. 2.1. Схематичное представление архитектуры ANSI/SPARC

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

Любой язык данных является комбинацией, по крайней мере, двух подчиненных языков – языка определения данных (англ. data definition language, DDL), который поддерживает определение и объявление объектов БД, и языка обработки данных (англ. data manipulation language, DML), который поддерживает операции с объектами БД, их обработку.

Вернемся к рассмотрению трехуровневой архитектуры систем БД. Отдельного пользователя интересует только некоторая часть всей БД. Кроме того, пользовательское представление этих данных может существенно отличаться от того, как они хранятся. В соответствии с терминологией ANSI/SPARC представление отдельного пользователя называется внешним представлением. Внешнее представление – это содержимое БД, каким его видят определенный конечный пользователь или группа пользователей. Можно сказать, что для пользователя его внешнее представление и есть БД.

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

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

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

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

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

Внутренний уровень. Так же как и концептуальный, внутренний уровень состоит только из одного представления. Внутреннее представление описывает все подробности, связанные с хранением данных в базе. Оно состоит из экземпляров каждого типа внутренней записи. Термин "внутренняя запись" принадлежит терминологии ANSI/SPARC и фактически соответствует хранимой записи. Внутреннее представление, так же как внешнее и концептуальное, нс связано с аппаратным уровнем и не включает подробностей, связанных с размещением данных на дисках, таких как номера секторов и т.п.

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

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

Отображение внешнего уровня на концептуальный определяет соответствие между внешними представлениями и концептуальным. Например, несколько концептуальных полей "индекс", "города", "улица", "дом" для пользователя могут быть объединены в одно внешнее поле "адрес". Появляется возможность менять отдельные внешние представления, дополнительно изменяя только отображения и не затрагивая остальные уровни системы. Отделение внешнего уровня от концептуального обеспечивает логическую независимость данных [5].

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

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

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
< Предыдущая   СОДЕРЖАНИЕ   Следующая >
 

Популярные страницы