Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
348.doc
Скачиваний:
12
Добавлен:
30.04.2022
Размер:
2.67 Mб
Скачать

9.4. Служебная информация

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

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

• описателое свободной и занятой памяти в страницах отношения. Такая информация требуется для нахождения свободного места при занесении кортежа;

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

Контрольные вопросы

1. Какие разновидности объектов существуют во внешней памяти базы данных?

2. Чем отличается покортежное хранение отношений от хранения отношения по столбцам?

3. Дайте определение одномерного линейного списка и адресной функции.

4. Какие методы существуют при реализации адресной функции?

5. В чем заключается последовательное распределение памяти?

6. Какие существуют варианты реализации связанного распределения памяти?

7. Приведите примеры связанных линейных списков и двунаправленных линейных списков.

8. Какие типы указателей используются при практической реализации списковых структур?

9. Дайте определение хеш-функции. В чем заключается метод хеширования?

10. Для чего предназначены индексы?

11. Приведите пример организации индексов на основе B-деревьев.

12. Каким образом осуществляется построение неплотного индекса? Приведите пример.

13. Чем отличаются плотный и неплотный индексы?

14. Каким образом осуществляется поиск в B-дереве?

15. Что представляет собой системный журнал БД, каково его назначение?

16. Какая служебная информация должна храниться в БД?

10. Настольные субд

10.1. Общие сведения о настольных субд

Настольные СУБД как таковые не содержат специальных приложений и сервисов, управляющих данными, — взаимодействие с ними осуществляется с помощью файловых сервисов операционной системы. Нередко подобные СУБД имеют в своем составе и средства разработки, ориентированные на работу с данными формата, характерного для этой СУБД, и позволяющие создать более или менее комфортный пользовательский интерфейс. Что же касается обработки данных — она целиком и полностью осуществляется в пользовательском (клиентском) приложении.

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

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

Еще одна проблема настольных СУБД заключается в возможности нарушения ссылочной целостности данных, так как единственным механизмом, контролирующим ее, является пользовательское приложение. Поэтому все пользовательские приложения должны содержать соответствующий код и доступ к файлам базы данных из любых других приложений должен быть запрещен. В наиболее популярных настольных СУБД (например, Microsoft Access, Corel Paradox) код, контролирующий стандартную ссылочную целостность, содержится в библиотеках, используемых всеми приложениями, работающими с этой базой данных, а сама база данных при этом может содержать описание правил ссылочной целостности.

Следующим этапом развития СУБД для персональных компьютеров были так называемые серверные СУБД. Они будут рассмотрены в следующей главе.

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

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

Рассмотрев, какими бывают базы данных, вернемся к настольным СУБД и поговорим о наиболее популярных из них.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]