Скачиваний:
180
Добавлен:
02.05.2014
Размер:
2.66 Mб
Скачать

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

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

Замечание. Блоки (или страницы) устройства ввода-вывода — это количество дан- ных, передаваемых из вторичной памяти (памяти накопителя) в основную (оперативную) память за одну операцию ввода-вывода. Обычно страницы имеют размер 1, 2 или 4 Кбайт (1 Кбайт = 1024 байт).

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

Замечание. В этой книге вместо терминов "внутреннее представление" и "внутренняя схема" обычно будут использоваться интуитивно более понятные терми- ны "хранимая структура" или "хранимая база данных" и "определение структуры хра- нения" соответственно.

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

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

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

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

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

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

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

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]