Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BSBD_k_ekzamenu / материал_к_билетам_14-21 / Билет_15_вопрос_2 / Уровни_архитектуры_баз_данных.doc
Скачиваний:
23
Добавлен:
05.06.2015
Размер:
1.47 Mб
Скачать

2.5. Внутренний уровень

Третьим уровнем архитектуры является внутренний уровень. Внутреннее представле­ние — это низкоуровневое представление всей базы данных как базы, состоящей из неко­торого множества экземпляров каждого из существующих типов внутренних записей. Термин внутренняя запись относится к терминологии ANSI/SPARC и означает конструк­цию, иначе называемую хранимой записью (в дальнейшем мы будем использовать именно этот термин). Внутреннее представление, также как внешнее и концептуальное, отделе­но от физического уровня, поскольку в нем не рассматриваются физические записи, обычно называемые блоками или страницами, и физические области устройства хране­ния, такие как цилиндры и дорожки. Другими словами, внутреннее представление пред­полагает наличие бесконечного линейного адресного пространства. Особенности методов отображения этого адресного пространства на физические устройства хранения в значи­тельной степени зависят от используемой операционной системы и по этой причине не включены в общую архитектуру. Следует отметить, что блоки (или страницы) устройства ввода—вывода — это количество данных, передаваемых из вторичной памяти (памяти накопителя) в основную (оперативную) память за одну операцию ввода—вывода. Обычно, страницы имеют размер от 1 Кбайт и выше, но не больше 64Кбайт (1 Кбайт = 1024 байт).

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

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

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

2.6. Отображения

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

• Отображение "концептуальный—внутренний" устанавливает соответствие между концептуальным представлением и хранимой базой данных, т.е. описывает, как

п

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

• Отображение "внешний—концептуальный" определяет соответствие между неко­ торым внешним представлением и концептуальным представлением. В целом, различия, которые могут существовать между этими двумя уровнями, подобны различиям между концептуальным представлением и хранимой базой данных. Например, данные полей могут относиться к разным типам, названия полей и за­ писей могут быть изменены, несколько концептуальных полей могут быть объе­ динены в одно (виртуальное) внешнее поле и т.д. В одно и то же время допустимо существование любого количества внешних представлений, причем одно и то же внешнее представление может принадлежать нескольким пользователям, а разные внешние представления— перекрываться.

Очевидно, что отображение "концептуальный—внутренний" служит основой фи­зической независимости от данных, а отображения "внешний—концептуальный" являются ключом к логической независимости от данных. Как было показано в главе!, система обеспечивает физическую независимость от данных [1.3], если пользователи и пользовательские программы обладают невосприимчивостью к изменениям в физической структуре хранимой базы данных. Аналогично, система обеспечивает логическую независимость от данных [1.4], если пользователи и пользовательские программы обладают невосприимчивостью к изменениям в ло­гической структуре базы данных (подразумеваются изменения на концептуальном или "общем логическом" уровне). Этот важный вопрос будет обсуждаться в гла­вах 3 и 10.

• Следует отметить, что большинство систем позволяет выражать одно определение внешнего представления через другое (по существу, с помощью отображения "внешний—внешний"), не требуя обязательного явного определения отображения

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