Введение в системы БД (542480), страница 17
Текст из файла (страница 17)
Замечание. На практике редко все происходит точно по описанной выше схеме. Иногда сам АД создает концептуальную схему, а иногда АБД занимается логическим проектированием. ° Определение внутренней схемы Администратор базы данных должен также решить, как данные будут представлены в хранимой базе данных. Этот процесс обычно называют физическим проектированием базы данныхз. После завершения физического проектирования АБД создает соответствующие структуры хранения, используя внутренний язык определения данных (т.е, описывает внутреннюю схему). Кроме того, он определяет соответствующее отображение между внутренней и концептуальной схемами.
На практике концептуальный и внутренний языки определения данных (особенно первый) могут включать в себя средства определения этого отображения, однако две данные функции (создание схемы и определение отображений) должны быть четко разделены. Как и концептуальная схема, внутренняя схема и соответствующее отображение будут сушествовать в исходной и объектной формах. ° Взаимодействие с пользователями В обязанности АБД также входит взаимодействие с пользователями для предоставления им необходимых данных и написания требуемых внешних схем (или оказания помощи пользователям в нх написании) с применением прикладного внешнего языка определения данных. (Как уже отмечалось, СУБД может поддерживать несколько различных языков определения данных.) Кроме того, необходимо определить отображение между каждой созданной внешней и концептуальной схемами.
На практике внешний язык определения данных может включать средства определения этого отображения, но, опять З Обратите вншчанив на паследавательнастгк сначала неабладииа определить, какие данные требуются, а затем решить, как зти данные следует представить в памяти. Физическое проектирование всегда должна выполняться после логического праектиравания. 75 Глава 2. Архитектура системы баз данных же, схемы и отображения должны быть четко разделены между собой. Каждая внешняя схема и соответствующее ей отображение будет сушествовать в исходной и объектной формах. Другие аспекты взаимодействия с пользователями включают консультации по разработке приложений, обеспечение требуемого технического образования, предоставление помощи в выявлении и устранении возникающих проблем и прочие виды связанного с системой профессионального обслуживания. ° Определение требований защиты и обеспечения целостности данных Как уже отмечалось, требования защиты и поддержания целостности данных рассматриваются как часть концептуальной схемы.
Концептуальный язык определения данных должен включать в себя средства определения этих требований. ° Определение процедур резервного копирования и восстановления После того как предприятие доверит хранение своих данных системе баз данных, оно станет критически зависимым от бесперебойного функционирования этой системы. В случае повреждения какой-либо части базы данных вследствие ошибки человека, отказа оборудования или сбоя программ операционной системы очень важно иметь возможность восстановить уэраченные данные с минимальной задержкой и с наименьшим воздействием на остальную часть системы. В идеале, данные, которые не были повреждены, совсем не должны затрагиваться.
АБД должен разработать и реализовать подходяшую схему воссшновления, вювочаюшую периодическую выгрузку 1илн получение "дампа") базы данных на устройство резервного копирования и процедуры загрузки базы данных с последнего созданного дампа в случае необходимости. Помимо всего прочего, требование быстрого восстановления поврежденных данных является одной из тех причин, по которым желательно организовать хранение данных не в каком-либо одном месте, а распределить их в нескольких отдельных базах данных.
Каждая из таких баз данных будет представлять собой оптимальный объект выгрузки или перезагрузки. В этой связи отметим, что терабайтные системы4 (т.е., грубо говоря, коммерческие системы, хранящие более триллиона байтов данных) уже сушествуют, а в будущем системы будут еше больше. Понятно, что такие системы очень больших баз данных (Ч1.Р — негу 1агяе дагаЬазе) требуют тщательного и продуманного администрирования, в особенности если необходимо обеспечить для пользователей постоянный доступ к базе данных (а часто именно так и бывает). Однако для простоты рассуждений будем по-прежнему подразумевать, что мы имеем дело с единственной базой данных.
° Управление производительностью и реагирование на изменяющиеся требования Как отмечалось выше, в главе 1, АБД отвечает за такую организацию системы, при которой можно получить производительность, оптимальную для всего предприятия в целом, а также за коррекцию работы системы (т.е.
ее настройку) в со- 4 !024 байт = ! Кбайт (килобайт); !024 Кбайт = ! Мбайт (мегабайт); !024 Мбайт = ! Гбайт (гигабайт); !024 Гбайт = ! Тбайт (терабайт); )024 Тбайт = ! Пбойт (пвтабайт); !024 Пбайт = ! Ебайт (эксабайт). Отметим, что, поскольку гигабайт равен приблизительно миллиарду (Ь!П!оп) байтов, вместо сокращения "Мбайт" иногда используют сокращение "Ббайт". Кстати, вопреки распространенному мнению, английское слово й1яаьузе произносится с мягким начальным я ( )!бабу!в ). Часть !. Основные понятия ответствии с изменяющимися требованиями. Например, может возникнуть необходимость в периодической реорганизации хранимой базы данных с целью получения гарантий того, что производительность системы всегда будет поддерживаться на приемлемом уровне.
Как уже упоминалось, любые изменения на уровне физического хранения данных (внутреннем уровне) должны сопровождаться соответствующими изменениями в определении его отображения на концептуальный уровень, что позволит сохранить концептуальную схему неизменной. Конечно, перечисленное выше — отнюдь не исчерпывающий список обязанностей АБД, а лишь попытка высказать некоторые соображения об их существе и диапазоне.
2.8. Система управления базой данных Система управления базой данных (СУБД) представляет собой программное обеспечение, которое управляет всем доступом к базе данных. Концептуально это происходит следующим образом (см. рис. 2.3). 1. Пользователь выдает запрос на доступ к данным, применяя определенный подъязык данных (обычно это язык БО).).
2. СУБД перехватывает этот запрос и анализирует его, 3. СУБД просматривает внешнюю схему (ее объектную версию) для этого пользователя, соответствующее отображение "внешний-концептуальный", концептуальную схему, отображение "концептуальный-внутренний" и определение структуры хранения. 4. СУБД выполняет необходимые операции в хранимой базе данных.
В качестве примера рассмотрим, как осуществляется выборка экземпляра опреде- ленной внешней записи. В общем случае поля этой записи будут выбираться из не- скольких экземпляров концептуальных записей, которые, в свою очередь, будут за- прашивать поля из нескольких экземпляров хранимых записей. Концептуально СУБД сначала должна выбрать все требуемые экземпляры хранимых записей, затем постро- ить требуемые экземпляры концептуальных записей и после этого сформировать эк- земпляр внешней записи. На каждом этапе могут потребоваться преобразования типов данных или другие преобразования.
Конечно, описание предыдущего примера весьма упрощено; в частности, в данном случае предполагается, что весь процесс является интерпретируемым (т.е. анализ запроса, проверка различных схем и другие процедуры осуществляются непосредствен- но во время выполнения). Однако интерпретация обычно характеризуется невысокой производительностью, поскольку на ее выполнение затрачивается много времени. На практике обычно существует возможность предварительно скомпилировать запрос на доступ к данным до начала его выполнения; в частности, в современных БОБ-системах применяется именно такой подхол (см.
аннотации к (4.12) и [4.26) в главе 4). Теперь рассмотрим функции СУБД немного подробнее. Они обязательно будут вкяючать поддержку работы компонентов базы данных, показанных на рис. 2.4. ° Определение данных СУБД должна предоставлять средства определения данных (внешних схем, концептуальной схемы, внутренней схемы, а также всех необходимых отображений) в виде исходной формы и преобразования этих определений в соответствующую 77 Глава 2. Архитектура системы баэ данных объектную форму. Иначе говоря, СУБД должна включать в себя компоненты процессора ЯОД или компилятора ЯОД для каждого из поддерживаемых ею языков определения данных. СУБД должна также понимать синтаксис языка определения данных, например, в том смысле, что ей должно быть понятно, что внешние записи ЕИРЬОЕЕЕ включают поле ЕАЬййт.
Это понимание она должна использовать при анализе и выполнении запросов обработки данных (например, таких: "Найти всех служащих с зарплатой, составляющей менее $50 000"). Откомпилированные запросы Реализация ограничений защиты и поддержки целостности данных Исходные и объектные схемы и отображения Оптимизатор Оптимизированные запросы Менеджер времени выполнения Метаданные а данны Данные Метвданные (словарь данных) 78 Часть 1 Основные понягпил Рис. 2.4. Основные функции и компоненты типичной СУБД Запросы на ЯМП разделяются на планируемые и непланируемые. ° Обработка данных СУБД должна уметь обрабатывать запросы пользователя на выборку, изменение или удаление данных, уже существующих в базе, или на добавление в нее новых данных. Другими словами, СУБД должна включать в себя компонент процессора ЯМЛ или компилятора ЯМЛ, обеспечивающего поддержку языка манипулирования данными.
а) Планируемый запрос — это запрос, необходимость выполнения которого была предусмотрена заранее. Администратор базы данных, возможно, должен будет построить физический проект базы данных таким образом, чтобы гарантировать достаточное быстродействие выполнения подобных запросов. б) Непланируемый запрос — это, наоборот, некоторый произвольный запрос, необходимость выполнения которого не была предусмотрена заранее и возникла по какой-то особой причине.