- •АвОсновные понятия баз данных. Этапы развития субд. Функции субд. Требования к системам управления базами данных.
- •Архитектура баз данных. Логическая и физическая независимость данных. Схема прохождения запросов к бд.
- •Классификация моделей данных. Архитектура и модели "клиент-сервер" в технологии бд.
- •Реляционная модель бд, ее основные достоинства. Таблица, кортеж, атрибут, домен, первичный ключ, внешний ключ. Фундаментальные свойства отношений.
- •Обеспечение целостности данных.
- •Основы реляционной алгебры. Операторы реляционной алгебры.
- •6.1. Основы реляционной алгебры
- •6.2. Операторы реляционной алгебры
- •Понятия полной и транзитивной функциональной зависимости. Нормализация, третья нормальная форма, шаги нормализации.
- •7.1. Понятия полной и транзитивной функциональной зависимости
- •7.2. Нормализация, третья нормальная форма, шаги нормализации
- •Модель «объект-свойство-отношение», er-диаграммы, проектирование схемы баз данных.
- •8.1. Модель «объект-свойство-отношение»
- •8.3. Проектирование схемы баз данных
- •Язык sql, его структура, стандарты, история развития. Подмножество языка dml: операторы select, insert, update, delete.
- •Структура языка sql
- •Вставка множества записей
- •Оператор изменения значений полей update
- •Оператор удаления строк delete
- •Подмножество языка ddl: операторы create, alter, drop. Представления, их значение; обновляемые представления.
- •10.1. Подмножество языка ddl: операторы create, alter, drop Оператор create - создание таблицы.
- •Создание внешнего ключа
- •Оператор drop
- •10.2. Представления, их значение; обновляемые представления
- •Создание и удаление представлений
- •Обновляемые представления
- •Подмножество языка dcl: операторы grant, revoke. Системные привилегии, привилегии на объекты, роли.
- •Объектные и системные привилегии
- •Операторы grant и revoke
- •Транзакции, операторы управления транзакциями: commit, rollback, savepoint; журнал транзакций, уровни блокировок.
- •Операторы управления транзакциями
- •Журналы транзакций
- •Язык pl/sql, его структура, основные операторы.
- •Курсоры, явные и неявные курсоры, операторы работы с курсором, оператор select into.
- •Процедуры, функции, пакеты.
- •Триггеры, их основные свойства и значение.
- •Параллельные архитектуры бд; масштабируемость, надежность, производительность.
- •Распределенные базы данных, фрагментация, тиражирование.
- •Средства защиты данных в субд.
- •Шлюзы к базам данных. Архитектура odbc. Www-интерфейс к бд.
- •Объектная модель данных
- •Объектно-ориентированные, объектно-реляционные бд, универсальные бд
- •Эволюция технологий и возможностей субд oracle (oracle 8i, oracle 9i, oracle 10g).
- •Роль grid-технологий в организации хранения и обработки данных. Перспективы развития технологий баз данных.
Обеспечение целостности данных.
Целостность – понимается как правильность (корректность, правдоподобность, непротиворечивость) данных в любой момент времени.
Для того чтобы гарантировать корректность и взаимную непротиворечивость данных, на базу данных накладываются некоторые ограничения, которые называют ограничениями целостности (data integrity constraints).
Выделяют четыре вида целостности:
целостность по сущностям (декларативная целостность);
целостность по ссылкам (ссылочная целостность – referential integrity);
целостность, определяемая пользователем (семантическая целостность);
физическая целостность (целостность файлов операционной системы).
Ограничения целостности, необходимые для обеспечения декларативной целостности обычно задаются при объявлении сущности в базе данных.
Для обеспечения декларативной целостности базы данных используются следующие механизмы:
тип данных;
размер типа данных;
опция NOT NULL;
домен;
первичный ключ не может содержать пустых значений;
уникальный ключ.
Опция NOT NULL – назначается атрибуту в том случае, если нужно, чтобы тот не мог содержать неопределенное значение.
Уникальный ключ – ограничение целостности, накладываемое на набор атрибутов, и не допускающее повторение значений в указанных атрибутах. В отличие от первичного ключа, можно задать несколько уникальных ключей для одной сущности. Кроме того, уникальный ключ не требует отсутствия неопределенных значений в используемых атрибутах.
Ссылочная целостность – целостность по ссылкам. Данный вид целостности необходимо обеспечивать, когда данные, находящиеся в нескольких таблицах, связаны между собой и зависят друг от друга (ассоциации и обозначения). Для обеспечения ссылочной целостности базы данных используют внешние (или вторичные) ключи.
При указании внешнего ключа, связывающего две сущности, необходимо также определить необходимость выполнения так называемых каскадных действий. Каскадные действия – операции, выполняемые СУБД автоматически (неявно) при возникновении того или иного события, вызванного чаще всего действиями пользователей.
В частности, необходимо определить, что случиться при попытке удаления целевой сущности, на которую ссылается внешний ключ? Например, при удалении поставщика, который осуществил, по крайней мере, одну поставку. Существует три возможности:
Каскадирование: операция удаления «каскадируется» с тем, чтобы удалить также поставки этого поставщика.
Ограничение: удаляются лишь те поставщики, которые еще не осуществляли поставок. Иначе операция удаления отвергается.
Установка: для всех поставок удаляемого поставщика внешний ключ устанавливается в неопределенное значение, а затем этот поставщик удаляется. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.
Кроме этого, определяется что должно происходить при попытке обновления первичного ключа целевой сущности, на которую ссылается некоторый внешний ключ? Например, может быть предпринята попытка обновить номер поставщика, для которого имеется, по крайней мере, одна соответствующая поставка. Имеются те же три возможности, как и при удалении:
Каскадирование: операция обновления «каскадируется» с тем, чтобы обновить также и внешний ключ в поставках этого поставщика.
Ограничение: обновляются первичные ключи лишь тех поставщиков, которые еще не осуществляли поставок. Иначе операция обновления отвергается.
Установка: для всех поставок такого поставщика внешний ключ устанавливается в неопределенное значение, а затем обновляется первичный ключ поставщика. Такая возможность, конечно, неприменима, если данный внешний ключ не должен содержать NULL-значений.