- •Isbn © СибАгс, 2009
- •Тема 1. Роль и место баз данных в автоматизированных информационных системах 6
- •Тема 2. Модели бд 18
- •Тема 3. Реляционная модель бд 27
- •Предисловие
- •Тема 1. Роль и место баз данных в автоматизированных информационных системах
- •Технология субд
- •Размещение и архитектура субд
- •Функции субд
- •Тема 2. Модели бд
- •Модели организации данных Иерархическая модель хранения данных
- •Сетевая модель данных
- •Типы связей в модели
- •Тема 3. Реляционная модель бд
- •Структура реляционной базы данных
- •Типы данных
- •Ограничения целостности бд
- •Аномалии вставки (insert)
- •Аномалии обновления (update)
- •Аномалии удаления (delete)
- •Тема 4. Проектирование бд
- •Проектирование по методу erd-модели
- •Инфологическое проектирование баз данных
- •Структура бд
- •Количество таблиц и их имена
- •Типы данных и типы полей
- •Тема 5. Работа в субд Access
- •Мастера Access
- •Нормализация
- •Создание таблиц
- •Определение связей и обеспечение целостности данных
- •Создание форм для ввода данных
- •Создание запросов
- •Создание отчетов
- •Варианты заданий для лабораторной работы
- •Заключение
- •Литература Основная литература
- •3.3.2. Дополнительная литература
- •Глоссарий
Аномалии вставки (insert)
В таблицу СОТРУДНИКИ_ОТДЕЛЫ_ПРОЕКТЫ нельзя вставить данные о сотруднике, который пока не участвует ни в одном проекте. Действительно, если, например, во втором отделе появляется новый сотрудник, скажем, Королев, и он пока не участвует ни в одном проекте, то мы должны вставить запись (4, Королев, 2, 33-22-11, null, null, null). Это сделать невозможно, т.к. поле №Проекта входит в состав потенциального ключа, и, следовательно, не может содержать null-значений.
Точно также нельзя вставить данные о проекте, над которым пока не работает ни один сотрудник.
Причина аномалии - хранение в одном отношении разнородной информации (и о сотрудниках, и о проектах, и о работах по проекту).
Вывод - логическая модель данных неадекватна модели предметной области. База данных, основанная на такой модели, будет работать неправильно.
Аномалии обновления (update)
Фамилии сотрудников, наименования проектов, номера телефонов повторяются во многих записях таблицы. Поэтому если сотрудник меняет фамилию, или проект меняет наименование, или меняется номер телефона, то такие изменения необходимо одновременно выполнить во всех местах, где эта фамилия, наименование или номер телефона встречаются, иначе отношение станет некорректным (например, один и тот же проект в разных записях будет называться по-разному). Таким образом, обновление базы данных одним действием реализовать невозможно. Для поддержания данных в целостном состоянии необходимо написать специальный программный запрос, который при обновлении одной записи корректно исправлял бы данные и в других местах.
Причина аномалии - избыточность данных, также порожденная тем, что в одном отношении хранится разнородная информация.
Вывод - увеличивается сложность разработки базы данных. База данных, основанная на такой модели, будет работать правильно только при наличии специальных программных запросов.
Аномалии удаления (delete)
При удалении некоторых данных может произойти потеря другой информации. Например, если закрыть проект "Космос" и удалить все строки, в которых он встречается, то будут потеряны все данные о сотруднике Петрове. Если удалить сотрудника Сидорова, то будет потеряна информация о том, что в отделе номер 2 находится телефон 33-22-11. Если по проекту временно прекращены работы, то при удалении данных о работах по этому проекту будут удалены и данные о самом проекте (наименование проекта). При этом если был сотрудник, который работал только над этим проектом, то будут потеряны и данные об этом сотруднике.
Причина аномалии - хранение в одном отношении разнородной информации (и о сотрудниках, и о проектах, и о работах по проекту).
Вывод - логическая модель данных неадекватна модели предметной области. База данных, основанная на такой модели, будет работать неправильно.
Задание для самостоятельной работы
1. На примере из базы данных Магазин, в которой хранится информация о продуктах, продавцах и поставщиках
рассмотреть аномалии БД.
2. Предложить изменения в БД «Объединение кооперативов» для исключения аномалий, рассмотренных в примере.
Контрольные вопросы
Определить понятие реляционной базы данных.
Каково назначение ключевых полей в базе данных?
Какие виды связей между отношениями возможны?
Как в реляционной базе данных можно обойти необходимость создания связей вида М:М?
Какие ограничения сущностной целостности реляционной базы данных существуют?
Какие ограничения ссылочной целостности реляционной базы данных существуют?
