Буферы – это области оперативной памяти компьютера, в которых временно хранятся фрагменты БД, данные из которых предполагается использовать при обращении к СУБД или планируется записать в базу данных после обработки. Необходимость использования буферов и как следствие реализация функции управления буферами, обусловлено тем, что объем оперативной памяти меньше объема внешней, а так же тем, что скорость работы оперативной памяти на несколько порядков выше работы внешней памяти.
Механизм транзакций используется в СУБД для поддержания целостности данных в базе. Транзакцией называется некоторая неделимая последовательность действий над данными БД, которая отслеживается СУБД от начала до завершения.
Контроль транзакций важен как для однопользовательских, так и для многопользовательских СУБД, где транзакции могут быть запущены параллельно. В последнем случае так же должна поддерживаться так называемая сериализация. Под сериализацией, параллельно выполняемых транзакций понимается такое выполнение этих самых транзакций, при котором суммарных эффект от их параллельного выполнения будет равен эффекту их последовательного выполнения. При этом могут возникнуть так называемые конфликты или блокировки транзакций, решение этих конфликтов так же является функцией СУБД. При обнаружении таких конфликтов обычно производится откат путем отмены изменений, сделанных одной или несколькими транзакциями.
Ведение журнала изменений в БД выполняется СУБД для обеспечения надежности хранения данных в базе при наличии аппаратных сбоев и отказов, а так же ошибок в программном обеспечении.
Журнал СУБД – это особая БД или часть основной БД, непосредственно не доступная пользователю и используемая для записи информации обо всех изменениях базы данных. Иногда для обеспечения большей надежности в системе хранится несколько копий журнала.
Обеспечение целостности БД составляет необходимо условие успешного функционирования БД, особенно для использования БД в сетях. Целостность БД – это свойство БД, которое означает, что в ней хранятся полные, непротиворечивые и адекватно отражающие предметную область данные. Поддержание целостности БД включает проверку целостности и ее восстановление в случае обнаружения противоречий в базе данных. Целостное состояние БД описывается с помощью ограничений целостности в виде условий, которым должны удовлетворять, хранимые в базе данные. Наиболее полно это свойство БД видно на примере реляционной модели данных, где обеспечивается отсутствие повторяющихся записей (см. ниже).
Обеспечение безопасности достигается в СУБД шифрованием прикладных программ, данных, защиты паролем, поддержкой уровней доступа пользователей к базе данных и отдельным ее элементам (таблицам, формам, отчетам и т.д.).
Требования, предъявляемые к базам данных
Проектирование баз данных начинается со сбора концептуальных требований. Концептуальное требование - это одно данное (одно свойство объекта), которое будет храниться в базе данных. Концептуальное требование получают как от руководства фирмы, так и от конечных пользователей, непосредственно работающих с базой данных. Кроме того на этом этапе решается вопрос – какие действия по обработке данных должны выполняться в базе данных.
База данных должна:
· Удовлетворять требованиям заказчика и содержать лишь те объекты и сведенья о них, которые интересуют заказчика;
· Обладать приемлемым быстродействием, то есть пользователь должен получать интересующие его сведенья за максимально короткое время;
· Иметь возможность последующего расширения без существенной переделки, как самой базы данных, так и средств ею управляющих;
· Не зависеть (или мало зависеть) от количества помещаемых в нее данных;
· Легко перестраиваться при изменении аппаратной;
· Содержать только достоверные данные. Достоверность должна обеспечиваться как при вводе новых данных, так и при редактировании уже имеющихся4
· Доступ к данным должны иметь определенные лица;
Модели представления данных
Хранимые в базе данные имеют определенную логическую структуру, то есть описываются некоторой моделью представления данных (моделью данных), поддерживаемой СУБД. К числу традиционных моделей относятся следующие:
· Иерархическая,
· Сетевая,
· Реляционная.
Кроме того, в последние годы появились и стали более активно внедряться на практике следующие модели:
· Постреляционная,
· Многомерная,
· Объектно-ориентированная.
Рассмотрим традиционные модели подробнее.
Иерархическая модель
В иерархической модели связи между данными можно описать с помощью упорядоченного графа (или дерева) (Рис. 4).
Вообще, иерархическая модель строго структурирована, то есть взаимосвязь между объектами подчинена строгому ранжиру. Подчинение объектов разделено на уровни. На первом уровне представлен один главный объект, которому подчиняются объекты второго уровня. Причем объект первого уровня не может напрямую управлять объектом третьего уровня, управление объектом третьего уровня производится только через объект второго уровня.
Для описания структуры (схемы) иерархической базы данных на некотором языке программирования используется тип данных «дерево» («Tree»), который схож с типом «запись» («Record») языка ObjectPascal или «структура» («Structure») языка C, в них допускается вложенность типов, каждый из которых находится на некотором уровне.
Тип «дерево» является составным. Он включает в себя подтипы («поддеревья»), каждый из которых, в свою очередь, является типом «дерево». Каждый из этих типов «дерево» состоит из одного «корневого типа» и упорядоченного набора (возможно пустого). Каждый из элементарных типов,
Рис. 4. Представление связей в иерархической модели связей в иерархической модели
включённых в тип «дерево», является простым или составным типом «запись». Простая запись состоит из одного типа, например числового, а составная из совокупности типов, например, целое, строка символов, указатель и т.д.
Корневым называется тип, который имеет подчиненные типы, и сам не является подтипом. Подтип (подчиненный тип) является потомком по отношению к типу, который выступает для него в роли предка (родителя), потомки одного и того же типа являются близнецами по отношению друг к другу.
В целом тип дерево представляет собой упорядоченную совокупность экземпляров типа «запись». Иерархическая БД представляет собой упорядоченную совокупность экземпляров типа «дерево», содержащих экземпляры типа «запись». Именно поля записей и хранят собственно информацию, содержащуюся в БД (числовые, строковые и другие значения). Обход всех элементов иерархической БД обычно производится сверху вниз и слева направо.
Для организации физического размещения иерархических данных в памяти компьютера могут использоваться следующие группы методов:
· Представление линейным списком с последовательным распределение памяти;
· Представление связными линейными списками (методы, использующие указатели и справочники).
К основным операциям манипулирования, иерархически организованными данными, относятся следующие:
· Поиск указанного экземпляра БД (например, дерева со значение 10 в поле «Номер»);
· Переход от одного дерева к другому;
· Переход от одной записи к другой внутри дерева;
· Вставка новой записи в указанную позицию;
· Удаление текущей записи и др.
К достоинствам иерархической модели данных относятся эффективное использование памяти компьютера и неплохие показатели времени выполнения основных операций над данными. Иерархическая модель удобна при работе с иерархически упорядоченной информацией.
Недостатками иерархической модели является ее громоздкость для обработки информации с достаточно сложными логическими связями, а так же сложность понимания для обычного пользователя.
Сетевая модель данных
Сетевая модель данных позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым иерархическую модель данных (Рис. 5).
Рис. 5. Представление связей в сетевой модели
Сетевая модель более демократична, чем иерархическая и не так структурирована. В сетевой модели отсутствует понятие главного и подчиненного объекта. Один и тот же объект может выступать как главный, так и подчиненный. Для описания схемы сетевой БД используются две группы типов: «запись» и «связь». Тип «связь» определятся для двух типов «запись» - предка и потомка. Переменные типа связь являются экземплярами связей.
Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается – в сетевой модели связь-потомок может иметь произвольное количество записей-предков (сводных родителей) .
Физическое размещение данных в базах сетевого типа может быть организованно практически теми же методами, сто и в иерархических базах данных.
К числу важнейших операций манипулирования данными баз сетевого типа можно отнести следующие:
· Поиск записи в БД;
· Переход от предка к первому потомку;
· Переход от потомка к предку;
· Создание новой записи;
· Удаление текущей записи;
· Обновление текущей записи;
· Включение записи в связь;
· Исключение записи из связи;
· Изменение связей и т.д.
Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности в смысле допустимости образования произвольных связей.