Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел-2(СУБД).doc
Скачиваний:
18
Добавлен:
01.09.2019
Размер:
981.5 Кб
Скачать

2.7.4. Обеспечение свойств бд в процессе проектирования

В процессе проектирования базы данных необходимо обеспечить ряд фундаментальных свойств:

  1. целостность, согласованность, восстанавливаемость;

  2. безопасность;

  3. эффективность, рост, размер, эксплуатационные ограничения.

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

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

База данных обладает свойством согласованности по отношению к некоторой совокупности пользователей, если в любой момент времени база данных реагирует на их запросы одинаковым образом (т. е. все пользователи на заданный ими конкретный запрос получают одинаковый ответ). В качестве примера рассмотрим файл МАТЕРИАЛОВ, используемый совместно несколькими пользователями. Предположим, что работник склада корректирует сведения о ценах на материалы, а в то же самое время бухгалтер, используя базу данных, готовит бухгалтерский отчет. Если прикладная программа кладовщика не имеет возможности блокировать доступ к базе данных (т. е. исключить всех других пользователей) на все время выполнения корректировки сведений о ценах на материалы, бухгалтер может получить неправильный отчет. С другой стороны, если возможность блокирования доступна как кладовщику, так и бухгалтеру и используется надлежащим образом, то при этом оба достигнут согласованных результатов. Существует много способов поддержания согласованности базы данных.

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

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

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

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

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