Таблицы базы данных предназначены для хранения данных, необходимых для выполнения некоторых задач приложения. Любая таблица состоит из столбцов или полей, каждое из которых содержит определенный род сведений (например, фамилию заказчика), и строк или записей, содержащих наборы данных о конкретных лицах, предметах или других объектах.
Чтобы поупражняться в разработке приложений, предположим, что мы решили создать совершенно новую базу данных (с именем Книги) для заказа книг, не проводя предварительного анализа задач и определения объектов. Скорее всего в этом случае мы поместим все данные, необходимые для учета заказчиков и их заказов, в единственную таблицу Заказчики и заказы.
При таком подходе сразу обнаруживаются четыре недостатка.
В записи каждого нового заказа нам придется создавать дубликаты полей с данными о заказчике. Многократное сохранение в базе данных одних и тех же сведений приводит к неэффективному использованию памяти, к тому же при этом возрастает вероятность ошибок ввода.
Невозможно заранее предугадать, сколько книг будет включено в конкретный заказ. Поэтому нам придется резервировать в записи место для размещения максимально возможного числа книг, что приведет к неэффективному использованию памяти. Если предусмотренное максимальное число книг окажется недостаточным для некоторых заказов, нам придется переделывать весь проект. Кроме того, если в дальнейшем потребуется выяснить, какие книги были проданы конкретным заказчикам, нам придется производить поиск по всем полям Название книги каждой записи.
Использование памяти для хранения в базе данных сведений, которые можно вычислить при печати отчета. Например, если потребуется общая стоимость заказа, то нет необходимости хранить это значение в поле Общая стоимость таблицы.
Наличие в таблице поля, содержащего несколько элементов данных, значительно затрудняет поиск и сортировку по этим элементам. В данном примере использование составного поля, включающего адрес, город, страну и почтовый индекс заказчика, вообще делает невозможной сортировку по почтовому индексу, поскольку он может оказаться почти в любом месте этого поля.