- •Лекция 1 Введение
- •Основные понятия баз данных.
- •Краткая характеристика дисциплины
- •Лекция 2 Реляционная модель данных.
- •Лекция 3 Манипуляционная составляющая реляционной модели данных
- •Лекция 4 Цели проектирования баз данных
- •Универсальное отношение и проблемы, связанные с его использованием
- •Функциональные зависимости между атрибутами отношения.
- •Лекция 5 Метод декомпозиции
Универсальное отношение и проблемы, связанные с его использованием
Пусть требуется создать БД для библиотекаря. В БД должны храниться сведения о книгах, имеющихся в библиотеке, о читателях и о том, какие книги на текущий момент находятся на руках у каждого читателя.
Сведения о книге состоят из ее шифра – Шифр, Названия книги – Назв, автора или авторов книги – Авт, Года издания – Год, количества экземпляров, имеющихся в библиотеке – Экз.
Сведения о читателе – это Фамилия и инициалы читателя – ФИО, номер его читательского билета - Билет, номер контактного телефона – Тел.
Кроме того, известны даты закрепления книг за читателями – Дата. Атрибут дата относится в равной мере как к книге, так и к читателю.
Попытаемся поместить все эти данные в одно отношение.
Таблица 4.1. Отношение «Библиотека».
Билет |
ФИО |
Тел |
Шифр |
Назв |
Авт |
Год |
Экз |
Дата |
123 |
Иванов И.И. |
238-80-01 |
Ч-15 |
Чайка |
Чехов А. |
1938 |
15 |
15.01.02 |
123 |
Иванов И.И. |
238-80-01 |
Т-2 |
Воскресенье |
Толстой Л.. |
1959 |
7 |
15.01.02 |
123 |
Иванов И.И. |
238-80-01 |
Д-21 |
Идиот |
Достоевский Ф. |
1970 |
3 |
20.03.02 |
546 |
Петров П.П. |
215-18-04 |
ТА-12 |
Аэлита |
Толстой А. |
1976 |
8 |
16.02.02 |
546 |
Петров П.П. |
215-18-04 |
ТА-8 |
Петр I |
Толстой А. |
1948 |
2 |
25.02.02 |
108 |
Сидоров С.С. |
115-13-40 |
|
|
|
|
|
|
200 |
Панов П.П. |
215-20-02 |
|
|
|
|
|
|
|
Ким А.А. |
110-11-22 |
|
|
|
|
|
|
|
|
|
Б-111 |
Собачье сердце |
Булгаков М. |
1970 |
20 |
|
|
|
|
К-112 |
Поединок |
Куприн А. |
1972 |
10 |
|
Таблица представляет собой экземпляр универсального отношения проектируемой БД, то есть отношения, которое включает все необходимые атрибуты БД и всю имеющуюся на текущий момент информацию. Видно, что таблица содержит как полностью заполненные строки, так и строки, представляющие собой сведения о читателях, которые в настоящий момент не имеют на руках книг или сведения о книгах, которые никто не читает. Большой объем информации в таком отношении является избыточным. Из-за избыточности данных возникает проблема их обновления. Так, если у читателя Петрова изменится номер телефона, то потребуется внести изменения в 2 записи, а если телефон изменится у Иванова, то в 3. Существует и проблема удаления. Например, нельзя удалить целиком первую запись, если Иванов сдал книгу «Чайка», так как. в этом случае мы потеряем информацию об этой книге. Можно заменить пустыми значениями значения полей Билет, ФИО и Тел. Но так сделать можно только в случае, если Иванов брал и другие книги, в противном случае Иванов исчезнет из списка читателей библиотеки. Таким образом, операция, связанная с возвратом книги, выполняется по-разному в зависимости от данных, содержащихся в таблице. Неоднозначно выполняется и процедура добавления записи в БД. Пусть Сидоров взял книгу Толстого «Воскресенье». Нельзя просто добавить соответствующую строку в БД, поскольку сведения о Сидорове уже есть в БД, но есть и информация о книге «Воскресенье», так как ее уже раньше взял Иванов. Тем не менее придется приписать информацию о книге к строке с информацией о Сидорове. Если бы книгу никто не брал, то две отдельные неполные записи о книге «Воскресенье» и о читателе Иванове пришлось бы заменить одной, добавив значение поля Дата.
108 |
Сидоров С.С. |
115-13-40 |
Т-2 |
Воскресенье |
Толстой Л.. |
1959 |
7 |
20.04.02 |
Такие неоднозначности при выполнении операций вставки, удаления и обновления называются аномалиями. С целью уменьшения вероятности возникновения аномалий при проектировании БД отношение разбивают на несколько частей. Этот процесс называется декомпозицией и основывается на концепции функциональных зависимостей между атрибутами.