Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРОГРАММНАЯ ИНЖЕНЕРИЯ.docx
Скачиваний:
115
Добавлен:
09.09.2018
Размер:
2.83 Mб
Скачать

14. Хешированные, индексированные файлы

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

Основным преимуществом использования индексирования является значительное ускорение процесса выборки или извлечения данных, основным недостатком – замедление процесса обновления данных, т. к. при каждом добавлении новой записи в индексированный файл потребуется также добавить новый индекс в индексный файл.

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

Если индексирование организовано на основе ключевого поля, то индекс называется первичным. Ключевые поля, как правило, индексируются автоматически.

Если индекс организован на основе другого поля, то он называется вторичным. Индекс, организованный на основе ключевого поля или другого ключа, называется уникальным.

На практике индексы можно использовать двумя разными способами:

- последовательного доступа к индексированному файлу, т. е. в последовательности, заданной значениями индексного поля;

- прямого доступа к отдельным записям индексированного файла на основе заданного значения индексного поля.

Хранимый файл может иметь несколько индексов. Часто индекс создают на основе комбинации двух или более полей.

Хеширование распределяет записи в таблице по определённым участкам. То есть выбирается столбец, по которому производится индексирование и для каждого значения столбца хеш-функция должна вырабатывать значение, соответствующее номеру участка (например, старые записные телефонные книжки, ключ – фамилия, имена людей). Функция хеширования для ключа выдаёт номер участка. При поиске записи по значению ключа K хеш-функция выдаст адрес, указывающий на начало того участка памяти, в котором надо искать эту запись. Доступ к данным возможен за одно обращение к диску. Пример, функция – деление на 5. И берётся остаток от этого деления, то есть распределим данные таблицы по 5-ти участкам.

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

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

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

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

В журнальном файле регистрируются все изменения в БД с некоторого периода времени. Копия БД должна быть выполнена на момент начала введения журнального файла, такой тип восстановления БД принято называть восстановлением “вперед”.

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

Такая защита данных называется логической целостностью.

Каким же средствами она обеспечивается? По всей видимости, это должны быть механизмы управления доступом пользователей к данным. К ним, во – первых, относятся ограничения доступа пользователя ко всей базе данных. Благодаря программным “фильтрам”, определенным администратором БД, каждый пользователь имеет возможность обрабатывать лишь некоторое подмножество данных. Следовательно, все прочие данные уже защищены от возможных искажений этим пользователем.

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

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

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

Обеспечение коллективного доступа к данным. поскольку данные интегрированы, возникает проблема синхронизации параллельного доступа к одним и тем же данных многих пользователей.

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

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

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

Шифровка – преобразование читаемого текста в нечитаемый текст при помощи алгоритма; Метод простой шифровки состоит в замене каждой буквы на следующий за ней в алфавите.