Введение в дисциплину «Безопасность систем баз данных». Теоретические основы построения реляционных баз данных. Верификация баз данных и проведение аудита в СБД. Распределенные базы данных, страница 21

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

·  атрибут или совокупность атрибутов некоторого отношения, по которым ведется сортировка или ускоренный поиск – так называемое ключевое поле, или поле индексирования;

·  ссылка на соответствующую запись в таблице БД.

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

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

Вторичные индексы подразделяются на кластерные и некластерные.

Некластерный индекс существует отдельно от данных, является самостоятельным объектом БД. Его можно сравнить с предметным указателем книги, который находится отдельно от самой информации, но связан с нею ссылками на соответствующие страницы. В одной книге может существовать несколько предметных указателей, один из которых может содержать список терминов, другой – фамилии, третий – программные продукты и т. д. Аналогично для одной таблицы могут быть определены несколько некластерных индексов, использующих разные поля кластеризации.

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

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

Общий вывод о логической архитектуре реляционных баз данных

Итак, в составе современных реляционных БД можно выделить три основные части, тесно взаимосвязанные между собой.

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

2. Объекты ограничения – дополнительные ограничения целостности и триггеры, используемые для реализации ограничений предметной области.

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

Особняком можно поставить группу служебных объектов БД: это, прежде всего, индексы; к ним же можно отнести криптографические ключи, цифровые сертификаты и объекты «credentials», используемые в MS SQL Server для поддержки криптографических методов защиты информации.


3. Клиент-серверная архитектура современных реляционных СУБД и АИС

3.1. Технология и модели клиент-серверной архитектуры

Весь набор функций, выполняемых АИС, можно разбить на три группы:

·  функции ввода и отображения данных;

·  функции, реализующие бизнес-логику, или, иначе говоря, отражающие процессы предметной области;

·  функции управления ресурсами (файловой системой, базой данных и т.д.).

В соответствии с этим можно выделить три больших компонента в структуре АИС:

·  компонент представления данных;