СУБД 2. Методы обеспечения безопасности баз данных 3. Основные модели данных Управление целостностью защита данных в БД от неверных (в отличие от несанкционированных) изменений и разрушений Требования: Обеспечение достоверности. Управление параллелизмом. Восстановление. 1 Управление доступом в базах данных 2 Большинство современных СУБД имеют встроенные средства, позволяющие администратору системы определять права пользователей по доступу к различным частям БД, вплоть до конкретного элемента . При этом имеется возможность не только предоставить доступ тому или иному пользователю, но и указать разрешенный тип доступа: что именно может делать конкретный пользователь с конкретными данными (читать, модифицировать, удалять и т . п .), вплоть до реорганизации всей БД. Управление целостностью данных 3 Причины сбои оборудования, физические воздействия или стихийные бедствия; ошибки санкционированных пользователей или умышленные действия несанкционированных пользователей; программные ошибки СУБД или ОС; ошибки в прикладных программах; совместное выполнение конфликтных запросов пользователей и др Управление параллелизмом 4 Суть механизма транзакций состоит в том, что до завершения транзакции все манипуляции с данными проводятся вне БД, а занесение реальных изменений в БД производится лишь после нормального завершения транзакции. Применение механизма блокировок обеспечивает захват транзакциями модифицируемых элементов данных до момента завершения модификации. Блокировку объекта может выполнять только одна транзакция. 5 Восстановление данных Три основных уровня восстановления 1. Оперативное восстановление, которое характеризуется возможностью восстановления на уровне отдельных транзакций при ненормальном окончании ситуации манипулирования данными (например, при ошибке в программе). 2. Промежуточное восстановление .Если возникают аномалии в работе системы (системно-программные ошибки, сбои программного обеспечения, не связанные с разрушением БД), то требуется восстановить состояние всех выполняемых на момент возникновения сбоя транзакций. 3. Длительное восстановление. При разрушении БД в результате дефекта на диске восстановление осуществляется с помощью копии БД. Затем воспроизводят результаты выполненных с момента снятия копии транзакций и возвращают систему в состояние на момент разрушения. Транзакция и восстановление Для восстановления целостности БД транзакции должны удовлетворять следующим требованиям: необходимо, чтобы транзакция или выполнялась полностью, или не выполнялась совсем; необходимо, чтобы транзакция допускала возможность возврата в первоначальное состояние, причем, для обеспечения независимого возврата транзакции в начальное состояние монопольную блокировку необходимо осуществлять до момента завершения изменения всех объектов; необходимо иметь возможность воспроизведения процесса выполнения транзакции, причем, для обеспечения этого требования, совместную блокировку необходимо осуществлять до момента завершения просмотра данных всеми транзакциями. 6 Откат и раскрутка транзакции 7 Возврат транзакции в начальное состояние состоит в аннулировании всех изменений, которые осуществлены в процессе выполнения транзакции (откат) Воспроизведение результатов выполнения транзакции с использованием системного журнала называется раскруткой Основные модели данных (ранние системы) 8 Эти системы активно использовались в течение многих лет, задолго до появления работоспособных реляционных СУБД Все ранние системы не основывались на каких-либо абстрактных моделях В ранних системах доступ к БД производился на уровне записей Навигационная природа ранних систем и доступ к данным на уровне записей заставляли пользователей самих производить всю оптимизацию доступа к БД, без какой-либо поддержки системы. После появления реляционных систем большинство ранних систем было оснащено «реляционными» интерфейсами. Иерархические структуры данных Иерархическая БД состоит из упорядоченного набора деревьев Кафедра Каф_Номер Каф_Назв Заведующий ЗавКаф_номер Каф_Состав Сотрудники ЗавКаф_Имя ЗавКаф_Каф Сотр_Номер Сотр_Имя Сотр_Должн Сотр_Каф 9 10 Пример иерархической базы данных Все экземпляры данного типа потомка с общим экземпляром типа предка называются близнецами. Для иерархической базы данных определяется полный порядок обхода дерева: сверху-вниз, слева-направо. Кафедра 625 МПУ Заведующий 4434 19 Сотрудники Смородин 625 4434 4415 4402 Смородин Долинский Езерский заведующий доцент ассистент 625 625 625 11 Манипулирование данными найти указанный экземпляр типа дерева БД (например, кафедру МПУ); перейти от одного экземпляра типа дерева к другому; перейти от экземпляра одного типа записи к экземпляру другого типа записи внутри дерева (например, перейти от кафедры к первому сотруднику); перейти от одной записи к другой в порядке обхода иерархии; вставить новую запись в указанную позицию; удалить текущую запись. 12 Ограничения целостности автоматически поддерживается целостность ссылок между предками и потомками. никакой потомок не может существовать без своего родителя 13 Сетевые системы Сетевая БД состоит из набора записей и набора связей между этими записями Состоит из сотрудников Кафедра Является сотрудником Сотрудники Имеет заведующего Заведующий 14 Манипулирование данными найти конкретную запись в наборе однотипных записей (например, служащего с именем Долинский); перейти от предка к первому потомку по некоторой связи (например, к первому сотруднику кафедры МПУ); перейти к следующему потомку в некоторой связи (например, от Долинского к Езерскому); перейти от потомка к предку по некоторой связи (например, найти кафедру, в которой работает Долинской); создать новую запись; уничтожить запись; модифицировать запись; включить в связь; исключить из связи; переставить в другую связь и т.д. 15 Ограничения целостности Имеется (необязательная) возможность потребовать для конкретного типа связи отсутствие потомков, не участвующих ни в одном экземпляре этого типа связи (как в иерархической модели). Достоинства и недостатки ранних СУБД Сильные места ранних СУБД: 16 Развитые средства управления данными во внешней памяти на низком уровне; Возможность построения вручную эффективных прикладных систем; Возможность экономии памяти за счет разделения подобъектов (в сетевых системах). Недостатки: Слишком сложно пользоваться; Фактически необходимы знания о физической организации; Прикладные системы зависят от этой организации; Логика перегружена деталями организации доступа к БД. 17 Реляционные системы 12 правил Кодда : 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Реляционная СУБД должна быть способна полностью управлять базой данных через ее реляционные возможности. Информационное правило Гарантированный доступ Поддержка пустых значений (null value) Онлайновый реляционный каталог Исчерпывающий язык управления данными Правило обновления представлений (views) Вставка, обновление и удаление Физическая независимость данных Логическая независимость данных Независимость целостности Независимость распределения Неподрывность Основные принципы реляционной модели 18 все данные представляются в виде упорядоченной структуры, определенной в виде строк и столбцов и называемой отношением; все значения являются скалярами. Это означает, что для любой строки и столбца любого отношения существует одно и только одно значение; все операции выполняются над целым отношением, и результатом их выполнения также является целое отношение. Этот принцип называется замыканием Элементами описания реляционной модели данных на концептуальном уровне являются сущности, атрибуты, домены и связи. 19 Сущности и атрибуты Сущность - некоторый обособленный объект или событие, информацию о котором необходимо сохранять в базе данных, имеющий определенный набор свойств - атрибутов. Атрибуты сущности: Идентифицирующие и описательные Простые и составные Однозначные и многозначные Основные и производные Спецификация атрибута состоит из его названия, указания типа данных и описания ограничений целостности - множества значений (или домена), которые может принимать данный атрибут. 20 Домены и связи Домен - это набор всех допустимых значений, которые может содержать атрибут. Связи - на концептуальном уровне представляют собой простые ассоциации между сущностями. Типы связи: один к одному один ко многим многие ко многим Связи бывают факультативные обязательные 21 Внешний (вторичный) ключ одно или несколько полей (столбцов) в таблице (атрибутов сущности), содержащих ссылку на поле или поля первичного ключа в другой таблице (атрибут сущности). Внешний ключ определяет способ объединения таблиц. 22 Правила внешних ключей Restrict – запретить удаление из главной, если есть подчиненные. Cascade – каскадно удалить все подчиненные записи. Set Null – установить значение внешних ключей подчиненных записей в нулевое значение (Null – значение). Set Default – установить значение вешних ключей в предопределенное, начальное значение. No Action – ничего не делать