Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Коспект БД.doc
Скачиваний:
116
Добавлен:
01.05.2014
Размер:
300.54 Кб
Скачать

Универсальное отношение и проблемы, связанные с его использованием

Пусть требуется создать БД для библиотекаря. В БД должны храниться сведения о книгах, имеющихся в библиотеке, о читателях и о том, какие книги на текущий момент находятся на руках у каждого читателя.

Сведения о книге состоят из ее шифра – Шифр, Названия книги – Назв, автора или авторов книги – Авт, Года издания – Год, количества экземпляров, имеющихся в библиотеке – Экз.

Сведения о читателе – это Фамилия и инициалы читателя – ФИО, номер его читательского билета - Билет, номер контактного телефона – Тел.

Кроме того, известны даты закрепления книг за читателями – Дата. Атрибут дата относится в равной мере как к книге, так и к читателю.

Попытаемся поместить все эти данные в одно отношение.

Таблица 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

Такие неоднозначности при выполнении операций вставки, удаления и обновления называются аномалиями. С целью уменьшения вероятности возникновения аномалий при проектировании БД отношение разбивают на несколько частей. Этот процесс называется декомпозицией и основывается на концепции функциональных зависимостей между атрибутами.

Соседние файлы в предмете Базы данных