Новичок  проектирует свою первую базу данных , обычно, в  виде одной таблицы.  По мере заполнения   этой таблицы данными  возникают проблемы

Рассмотрим   пример  базы  данных   Домашняя  библиотека

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

Вы решили  разработать базу данных  для  систематизации данных о книгах, читателях и их выдаче 
и  свели   все данные в одну таблицу

biblioteka.gif

Составленная нами таблица кажется пригодной для работы, но это не совсем так.На самом деле, при работе с этой таблицей возможны серьёзные неприятности  и проблемы.

Проблемы обновления

Предположим, что изменился телефон читателя Петрова. Нам потребуется просмотреть всю таблицу с начала до конца и во всех строчках, касающихся этого  читателя, заменить номер телефона. Если хоть одну строчку мы
пропустим, база данных станет противоречивой:в одном месте будет записан старый телефон, в другом-новый. Это очень  плохо, поскольку  в дальнейшем вы не сможете  получить  достоверную информацию из вашей базы.

Проблемы удаления

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

Проблемы добавления

Допустим  вы  купили новую книгу. Но  не можете включить ее  в таблицу до тех пор, пока ее кто-нибудь не возьмет почитать  - (   все поля  в таблице  должны быть заполнены. )
Аналогично мы не можем включить в базу данных нового читателя  заранее  до его первого обращения за книгой.

Общая формулировка: Включение нового факта может оказаться невозможным до появления нескольких связанных с ним фактов.

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

Выход из затруднения  -  выделение  этих  сведений  в самостоятельные таблицы, то есть надо проектировать многотабличные базы данных.
Данную  базу (Библиотека )следует разбить на 3 таблицы

chitateli.gif данные только о читателях

knigy.gif   данные только о книгах

vidachi.gif связь между читателями и книгами( когда какой читатель  какую книгу взял и когда вернул ).

Такой проект базы Библиотека   лишен отмеченных выше недостатков.

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