
- •Независимость данных. Трехуровневая модель описания данных.
- •Основные функции субд. Архитектуры приложений, использующих субд.
- •Модель данных сущность-связь: сущности, атрибуты и множества сущностей.
- •Модель данных сущность-связь: связи. Использование сущностей и связей при проектировании бд.
- •Модель данных сущность-связь: наследование, агрегирование. Использование при проектировании бд.
- •Модель данных сущность-связь: ограничения целостности.
- •Модель данных сущность-связь: Диаграммные и предикатные представления.
- •Реляционная модель данных: отношения, таблицы, домены, атрибуты. Описание таблиц и представлений в языке sql.
- •Реляционная модель данных: алгебраические операции.
- •Реляционная модель данных: исчисления. Эквивалентность алгебры и исчислений.
- •Объектно-ориентированные базы данных: типы данных. Идентификация и изменяемость.
- •Объектно-ориентированные базы данных: алгебраические операции.
- •Отображение модели сущность-связь в реляционную.
- •Иерархическая и сетевая модели данных, отображения в другие модели.
- •Функциональные зависимости и аномалии вставки, обновления, удаления.
- •Нормализация: декомпозиция отношений. Нормальные формы.
- •Язык запросов sql: операции реляционной алгебры.
- •Первичные и вторичные индексы. Плотные и неплотные индексы.
- •Протокол установки замков для дерева.
- •Мультигранулярные замки.
- •Уровни изоляции в sql и оптимистические замки.
- •Многоверсионные протоколы управления транзакциями.
- •Оптимистические протоколы управления транзакциями.
- •Распределенные субд: фиксация транзакций.
- •Хранение и использование xml в базах данных.
- •Темпоральные расширения моделей данных.
Функциональные зависимости и аномалии вставки, обновления, удаления.
R(A1, A2, . . . An) f(Ai1, Ai2, . . . Aik) → Al
X → Y ⇐⇒ || πY (σX=x(R)) || ≤ 1
Набор атрибутов Y функционально зависит от набора атрибутов X, если для любого значения X существует ровно одно значение Y.
1. Проанализируем БД и увидим, что имеют место некие соотношения. В некоторых состояниях БД имеются функциональные зависимости. Тем не менее, такие состояния могут быть легко нарушены и зависимость исчезнет. Такой подход хорошо согласуется с чистой теорией реляционных баз данных, поскольку в ней изменений не бывает.
2. Функциональные зависимости могут отражать законы природы и общества. Пример: Первые две цифры номера зачётной книжки совпадают с последними двумя цифрами года поступления. Такая зависимость, если она соблюдается, является законом природы, но такая интерпретация бесполезна для БД. Зависимость отражает свойства реального мира и является частью схемы.
Источник зависимостей: законы реального мира, но не конкретное содержание БД Тривиальные зависимости: любой атрибут зависит от полного набора атрибутов отношения.
Минимальное множество атрибутов, от которых зависят все атрибуты, называется возможным ключом. Возможный ключ - ключ, из которого нельзя выкинуть атрибуты так, чтобы оставшийся набор оставался ключом. Возможный ключ не обязательно единственный - множество «возможных» ключей может быть частично упорядоченным множеством без минимального элемента. Чтобы была уникальность строк, требуется уникальность возможного ключа. Первичный ключ: один из возможных ключей. Остальные ключи должны быть уникальны - можно вводить ограничения целостности.
Зависимости приводят к появлению избыточности. Пример:
Зависимости: AB → C B → D.
a1 b1 c1 d1
a2 b1 c2 d1
a3 b3 c3 d3
a4 b3 c4 d3
Зависимости: A → B B → C.
a1 b1 c1
a2 b1 c1
a3 b3 c3
a4 b3 c3
Невозможно сохранить <b,c>, если нет a.
Вверху значение атрибута D зависит только от B, но не от A. Избыточность с
остоит в том, что повторяются значения D, соответствующие значениям B. Повторяющиеся значения B не избыточны. Чуть ниже избыточность в C, но не в B. Избыточность плоха тем, что:
1. Избыточные данные занимают место.
2. Возникают сложности при обновлении. Функциональные зависимости должны быть удовлетворены - если меняем D, должны поменять и B, причём в нескольких местах.
3. Нет возможности отразить некоторые факты в БД. Нет возможности хранить только B и D, надо и A.
Аномалия обновления – появление в базе данных несогласованности данных при выполнении операций вставки, удаления, модификации записей.
Аномалии обновления – появление записей с противоречащими значениями в некоторых столбцах при изменении значений соответствующих полей одной записи.
Для отношения Студент (ФИО, Группа, Староста), где в столбце Группа хранится полное название группы, а столбец Староста содержит ФИО старосты группы, изменение значения Староста (например, для устранения ошибки) может привести к существованию более одного старосты одной и той же группы.
Аномалии удаления – удаление лишней информации при удалении записи.