Введение в системы БД (542480), страница 16
Текст из файла (страница 16)
Концептуальное представление состоит из некоторого множества экземпляров каждого из существующих типов концептуальных записей. Например, оно может состоять из набора экземпляров записей, содержащих информацию об отделах, набора экземпляров записей, содержащих информацию о поставщиках, набора экземпляров записей, содержащих информацию о материалах, и т.д. Концептуальная запись вовсе не обязательно должна совпадать с внешней записью, с одной стороны, и с хранимой записью — с другой. Концептуальное представление определяется с помощью концептуальной схемы, включающей определения для каждого существующего типа концептуальных записей (см. рис. 2.2).
Концептуальная схема использует другой язык определения данных — концептуальный. Чтобы добиться независимости данных, нельзя включать в определения концептуального языка какие-либо указания о структурах хранения или методах доступа. Определения концептуального языка должны относиться только к содержанию информации. Это означает, что в концептуальной схеме не должно быть никакого упоминания о представлении хранимого файла, упорядоченности хранимых записей, индексировании, хеш-адресации, указателях или других подробностях хранения данных или доступа к ним.
Если концептуальная схема действительно обеспечивает независимость данных в этом смысле, то внешние схемы, определенные на основе концептуальной (раздел 2.6), заведомо будут обеспечивать независимость данных. Концептуальное представление — это представление всего содержимого базы данных, а концептуальная схема — это определение такого представления. Однако было бы ошибкой полагать, что концептуальная схема представляет собой не более чем набор определений, весьма напоминающих простые определения записей в программе на языке СОВОЬ (или каком-либо другом языке). Определения в концептуальной схеме могут включать большое количество различных дополнительных аспектов обработки данных, например таких, как ограничения защиты или требования поддержки целостности данных, упомянутые в главе Ь Более того, некоторые авторитетные специалисты предлагают в качестве конечной цели создания концептуальной схемы описание всего предприятия — не только самих его данных, но н того, как эти данные используются, как они перемешаются внутри предприятия, для чего используются в каждом конкретном месте, какая проверка и иные типы контроля применяются к ним в каждом отдельном случае и т.д.(2.3].
Однако необходимо подчеркнуть, что ни одна сегодняшняя система реально не поддерживает такого концептуального уровня, который хотя бы немного приблизился к указанной выше степени развитости. В большинстве существующих систем концептуальная схема в действительности представляет собой не- 72 Часть 1 Основные понятия что, что лишь немного больше простого объединения всех независимых внешних схем с привлечением дополнительных средств безопасности и поддержкой правил обеспечения целостности. Вероятно, со временем системы будут гораздо "интеллектуальнее" в поддержке концептуального уровня.
2.5. Внутренний уровень Третьим уровнем архитектуры является внутренний уровень. Внутреннее представление — это низкоуровневое представление всей базы данных как базы„состоящей из некоторого множества экземпляров каждого из существующих типов внутренних записей. Термин "внутренняя запись" относится к терминологии АХБ!БРАКС и означает конструкцию, иначе называемую хранимой записью (в дальнейшем мы будем использовать именно этот термин).
Внутреннее представление, так же как внешнее и концептуальное, отделено от физического уровня, поскольку в нем не рассматриваются физические записи, обычно называемые блоками или страницами, и физические области устройства хранения, такие как цилиндры и дорожки. Другими словами, внутреннее представление предполагает наличие бесконечного линейного адресного пространства.
Особенности методов отображения этого адресного пространства на физические устройства хранения в значительной степени зависят от используемой операционной системы и по этой причине не включены в общую архитектуру. Замечание. Блоки (или страницы) устройства ввода-вывода — это количество данных, передаваемых из вторичной памяти (памяти накопителя) в основную (оперативную) память за одну операцию ввода-вывода.
Обычно страницы имеют размер 1, 2 или 4 Кбайт (1 Кбайт = 1024 байт). Внутреннее представление описывается с помощью внутренней схемы, которая определяет не только различные типы хранимых записей, но также существующие индексы, способы представления хранимых полей, физическую упорядоченность хранимых записей и т.д. (И снова за простым примером обратитесь к рис. 2.2.) Внутренняя схема описывается с использованием еще одного языка определения данных — внутреннего. Заиечание. В этой книге вместо терминов "внутреннее представление" н "внутренняя схема" обычно будут использоваться интуитивно более понятные термины "хранимая структура" или "хранимая база данных" и "определение структуры хранения" соответственно. В заключение отметим, что в некоторых исключительных ситуациях прикладные программы, в частности те, которые называются утилитами (о чем подробнее будет рассказано в разделе 2.11), могут выполнять операции непосредственно на внутреннем, а не на внешнем уровне.
Конечно, использовать такую практику не рекомендуется, поскольку она связана с определенным риском с точки зрения безопасности (правила безопасности игнорируются) и сохранения целостности данных (правила целостности тоже игнорируются). К тому же такая программа будет зависеть от обрабатываемых данных. Однако иногда подобный подход может быть единственным способом реализации требуемой функции или достижения необходимого быстродействия (так же, как пользователю языка высокого уровня иногда по тем же причинам необходимо прибегнуть к языку ассемблера).
Глава 2. Архитектура системы баз данных 2.6. Отображения Представленная на рис. 2.3 архитектура, кроме элементов самих трех уровней, включает определенные отображения: отображение концептуального уровня на внутренний и несколько отображений внешних уровней на концептуальный. ° Отображение "концептуальный-внутренний" устанавливает соответствие мехпгу концептуальным представлением и хранимой базой данных, т.е. описывает, как концептуальные записи и поля представлены на внутреннем уровне.
При изменении структуры хранимой базы данных (т.е. при внесении изменений в определение структуры хранения) отображение "концептуальный-внутренний" также изменяется, причем таким образом, чтобы концептуальная схема осталась неизменной. (Выполнение подобных изменений входит в обязанности администратора базы данных.) Иначе говоря, чтобы обеспечить независимость данных, результаты внесения любых изменений в схему хранения не должны быть видны на концептуальном уровне. ° Отображение "внвшний-канивптуальный" определяет соответствие между некоторым внешним представлением и концептуальным представлением. В целом, различия, которые могут существовать межау этими двумя уровнями, подобны различиям между концептуальным представлением и хранимой базой данных.
Например, данные полей могут быть разных типов, названия полей и записей могут быть изменены, несколько концептуальных полей могут быть объединены в одно (виртуальное) внешнее поле и т.д. В одно и то же время может существовать любое количество внешних представлений, причем одно и то же внешнее представление может принадлежать нескольким пользователям, а разные внешние представления мокнут перекрываться. Замечание. Очевидно, что как отображение "концептуальный-внутренний" является ключом к физической независимости данных, так и отображения "внешний- концептуальный" являются ключом к логической независимости данных.
Как было показано в главе!, система обеспечивает физическую независимость данных [2.3), если пользователи и пользовательские программы обладают иммунитетом к изменениям в физической структуре хранимой базы данных. Аналогично система обеспечивает логическую независимость данных [1.4), если пользователи и пользовательские программы обладают иммунитетом к изменениям в логической структуре базы данных (подразумеваются изменения на концептуальном или "общем логическом*' уровне).
Этот важный вопрос будет обсуждаться в главах 3 и 9. Интересно отметить, что большинство систем позволяет выражать определение одного внешнего представления через другое (по существу, с помощью отображения "внешний — внешний'), не требуя обязательного явного определения отображения каждого внешнего представления на концептуальный уровень. Эта возможность очень полезна, если несколько представлений схожи между собой. В частности, подобная возможность присутствует во многих реляционных СУБД. 2.7.
Администратор базы данных Как уже отмечалось в главе 1, администратор данных (АД) — это человек, отвечающий за стратегию и политику принятия решений, связанных с данными предприятия, а администратор базы данных (АБД) — это человек, обеспечивающий необходимую тех- 74 Часть з' Основные поняппт ническую поддержку с целью реализации принятых решений. Таким образом, АБД отвечает за общее управление системой на техническом уровне. Теперь опишем функции АБД более подробно. ° Определение концептуальной схемы Администратор данных решает, какая именно информация должна храниться в базе данных, т.е.
указывает те типы сущностей, в которых заинтересовано предприятие, а также определяет диапазон информации об этих сущностях, которую необходимо записывать. Этот процесс обычно называют логическим (или концептуальным) проектированием базы данных. После того как содержимое базы данных на абстрактном уровне будет определено администратором данных, АБД создает соответствующую концептуальную схему, используя концептуальный язык определения данных. Объектная (откомпилированная) форма этой схемы будет использоваться СУБД для получения ответов на запросы, связанные с доступом к данным. Исходная (не откомпилированная) форма будет играть роль справочного документа для пользователей системы.