-
Проблемы однотабличных баз данных
- Проблемы обновления
- Проблемы добавления
- Проблемы удаления
- Многотабличный проект библиотеки
Новичок проектирует свою первую базу данных , обычно, в виде одной таблицы. По мере заполнения этой таблицы данными возникают проблемы
Рассмотрим пример базы данных Домашняя библиотека
Вы владелец домашней библиотеки книг (детективы ,книги по компьютерам и др. ). Знакомые часто берут ваши книги почитать и не всегда возвращают книги вовремя, иногда теряют их.
Вы решили разработать базу данных для систематизации данных о книгах, читателях и их выдаче
и свели все данные в одну таблицу

Составленная нами таблица кажется пригодной для работы, но это не совсем так.На самом деле, при работе с этой таблицей возможны серьёзные неприятности и проблемы.
Проблемы обновления
Предположим, что изменился телефон читателя Петрова. Нам потребуется просмотреть всю таблицу с начала до конца и во всех строчках, касающихся этого читателя, заменить номер телефона. Если хоть одну строчку мыпропустим, база данных станет противоречивой:в одном месте будет записан старый телефон, в другом-новый. Это очень плохо, поскольку в дальнейшем вы не сможете получить достоверную информацию из вашей базы.
Проблемы удаления
Допустим, запись о выдаче книги Булгакова "Белая гвардия" читателю Сидорову оказалась ошибочной. Мы можем её удалить, но при этом "за компанию" уничтожим и телефон и фамлию читателя. Таким образом удаляя одну информацию мы удаляем связанные с ней другие данныеПроблемы добавления
Допустим вы купили новую книгу. Но не можете включить ее в таблицу до тех пор, пока ее кто-нибудь не возьмет почитать - ( все поля в таблице должны быть заполнены. )Аналогично мы не можем включить в базу данных нового читателя заранее до его первого обращения за книгой.
Общая формулировка: Включение нового факта может оказаться невозможным до появления нескольких связанных с ним фактов.
Анализ ситуации показывает, что причина наших проблем в том, что один и тот же факт хранится в нашей базе в нескольких местах: повторяются фамилии, телефоны читателей.
Выход из затруднения - выделение этих сведений в самостоятельные таблицы, то есть надо проектировать многотабличные базы данных.
Данную базу (Библиотека )следует разбить на 3 таблицы



Такой проект базы Библиотека лишен отмеченных выше недостатков.
Существует набор правил проектирования многотабличных баз данных.
Эти правила подробно описаны на следующей странице "Объекты и связи"