Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Базы_данных_29.09.05.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3.29 Mб
Скачать
  1. 2.1. Организация индексов

В индексном методе доступа алгоритм поиска включает следующие шаги:

  • поиск номера страницы по значению ключа;

  • прямой доступ к соответствующей странице;

  • последовательный просмотр записей страницы при поиске искомой.

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

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

Следует отметить, что системы управления базами данных, как правило, поддерживают уникальные модели данных. Так модель данных СУБД Informix основана на следующих элементах:

Chank – непрерывная область дисковой памяти, которая отводится серверу для использования; это неструктурированный диск/файл UNIX;

Page – страница размером 2 или 4 Кб; за одно обращение к диску считывается одна страница (физический блок);

Extent – совокупность страниц (Кб), которая выделяется под Dbspace;

Dbspace – логическая единица памяти, обеспечивающая возможность регулирования месторасположения данных; объединяет несколько баз данных;

Database – база данных;

Table – таблица;

Tbspace – объединение страниц одной таблицы для обеспечения эффективной обработки информации.

2.1.2. Управление базой данных

Защита базы данных

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

Перечислим основные мероприятия, связанные с защитой БД.

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

Представление (подсхема) – динамический результат одной или нескольких реляционных операций с базовыми отношениями в целях создания некоторого иного отношения. Это виртуальное отношение, которое реально в базе не существует и которое позволяет скрыть от пользователя часть БД.

Резервное копирование и восстановление – это периодически выполняемая процедура получения копии БД и ее файла журнала (логического журнала) на носителе, сохраняемом отдельно от системы. Ведение журнала – это процедура создания и обслуживания файла журнала, содержащего сведения обо всех изменениях, внесенных в БД с момента создания последней резервной копии, и предназначенного для обеспечения эффективного восстановления системы в случае ее отказа.

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

Управление транзакциями

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

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

  • идентификатор транзакции;

  • тип записи журнала (начало транзакции, операции вставки, обновления, удаления, отмена или фиксация транзакции);

  • идентификатор элемента данных, вовлеченного в операцию обработки;

  • копию элемента до операции; копию после операции;

  • служебную информацию (указатели на предыдущую и следующую запись);

  • записи контрольных точек.

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

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

В журнале запись контрольной точки содержит идентификаторы всех транзакций, которые были активны в момент создания этой контрольной точки. После возникновения отказа файл журнала просматривается в целях обнаружения последней из транзакций, начавших свою работу до момента создания последней контрольной точки. Любая более ранняя транзакция будет зафиксирована в базе данных, это значит, что ее изменения были перенесены на диск в момент создания последней контрольной точки.

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

Обработка запросов

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