- •Базы данных Базы данных и информационные системы
- •Архитектура информационной системы
- •Модели данных
- •Системы управления базами данных
- •Реляционная модель данных Элементы реляционной модели
- •Ограничения и операции над отношениями
- •Проектирование реляционных бд
- •Избыточное дублирование данных и аномалии
- •Формирование исходного отношения
- •Проектирование бд методом нормальных форм
- •Зависимости между атрибутами
- •Выявление зависимостей между атрибутами
- •Нормальные формы
- •Обеспечение целостности бд
- •Средства защиты бд
- •Языки запросов qbe и sql
- •Язык запросов по образцу
- •Структурированный язык запросов
- •Типы данных в базах данных
Формирование исходного отношения
Проектирование БД начинается с определения всех объектов, сведения о которых будут включены в базу, и определения их атрибутов. Затем атрибуты сводятся в одну таблицу — исходное отношение.
Пример. Формирование исходного отношения.
Предположим, что для отдела кадров предприятия создается БД о сотрудниках. На первом этапе проектирования БД в результате общения с заказчиком должны быть определены содержащиеся в базе сведения о том, как она должна использоваться и какую информацию заказчик хочет получать в процессе ее эксплуатации. В результате устанавливаются атрибуты, которые должны содержаться в отношениях БД, и связи между ними. Перечислим имена выделенных атрибутов и их краткие характеристики. ФИО — фамилия и инициалы сотрудников. Исключаем возможность совпадения фамилии и инициалов у сотрудников. Должность— должность, занимаемая сотрудником. Оклад — оклад сотрудника. Стаж —стаж работы на предприятии. Доплата за стаж — надбавка за стаж. Отдел — номер отдела, в котором числится сотрудник. Проект — название проекта, в котором занят сотрудник. Управление — номер управления, в котором ведутся работы. Вид занятий — вид занятий, проводимых сотрудником в управлении. Одно из требований к отношениям заключается в том, чтобы все атрибуты отношения имели атомарные (простые) значения. В исходном отношении каждый атрибут записи также должен быть простым.
Указанное отношение имеет следующую схему: СОТРУДНИК(ФИО, Должность, Оклад, Стаж, Доплата за стаж, Отдел, Проект, Управление, Вид занятий).
ФИО |
Должность |
Оклад |
Стаж |
Доплата за стаж |
Отдел |
Проект |
Управление |
Вид занятий |
Иванов И. М. |
инженер |
10000 |
5 |
1000 |
ППР |
ТРЦ |
5 |
Нулевой цикл |
Иванов И. М. |
инженер |
10000 |
5 |
1000 |
ППР |
Жилой дом |
2 |
Нулевой цикл |
Петров М И. |
ведущий инженер |
16000 |
7 |
1000 |
ППР |
ТРЦ |
5 |
Возведение |
Петров М. И. |
ведущий инженер |
16000 |
7 |
1000 |
ППР |
Кафе |
5 |
Нулевой цикл |
Сидоров Н. Г. |
инженер |
10000 |
10 |
1500 |
ППР |
Жилой дом |
2 |
Возведение |
Сидоров Н. Г. |
инженер |
10000 |
10 |
1500 |
ППР |
Кафе |
5 |
В
Оклад |
Егоров В. В. |
инженер |
10000 |
5 |
1000 |
ПОС |
Поликлиника |
4
|
В озведение |
Исходное отношение СОТРУДНИК содержит избыточное дублирование данных, которое и является причиной аномалий редактирования. Различают избыточность явную и неявную.
Явная избыточность заключается в том, что строки с данными о сотрудниках, проводящих работы в нескольких управлениях, повторяются соответствующее число раз. Например, в отношении СОТРУДНИК все данные по Иванову повторяются дважды. Поэтому, если Иванов И. И. станет ведущим инженером, то этот факт должен быть отражен в обеих строках. В противном случае будет иметь место противоречие в данных, что является примером аномалии редактирования, обусловленной явной избыточностью данных в отношении.
Неявная избыточность проявляется в одинаковых окладах у всех инженеров, в одинаковых доплатах к окладу за одинаковый стаж. Поэтому, если при изменении окладов за должность с 10000 на 11000 это значение изменят у всех инженеров, кроме, например, Сидорова, то база станет противоречивой. Это пример аномалии редактирования для варианта с неявной избыточностью.
Средством исключения избыточности в отношениях и, как следствие, аномалий является нормализация отношений.