Правило 5. Избегайте избыточной информации
Другой тип несвязанной информации — избыточные данные — информация, которая уже есть где-то в БД или даже в той же таблице, иногда в слегка иной форме. Как и в случае дублирования данных, такая избыточность может порождать противоречивость данных.
Вычисляемые данные — самый распространенный тип избыточной информации. Примером может служить поле AverageOrderCost (средняя стоимость заказа) в таблице Customers. Проблема в данном случае состоит в том, что вы можете определить среднюю стоимость заказа, просмотрев в таблице Orders (заказы) все записи для данного клиента, и усреднить их. Вводя поле AverageOrderCost, вы создаете возможность хранения в нем некорректных данных (возможно, его значение не будет соответствовать реальным записям о заказах). Кроме того, вы усложняете жизнь, поскольку каждый раз, когда клиент вставляет заказ, нужно пересчитывать среднее значение и обновлять запись клиента.
Примечание
Небожители, проектирующие БД, иногда действительно используют вычисляемые данные для повышения производительности. Но этот тип оптимизации очень редко встречается в БД Access. Он больше характерен для размещенных на серверной стороне коммерческих БД, которыми управляют большие компании или Web-сайты.
Далее перечислены еще несколько примеров избыточной информации.
■ Поля Age (возраст) и DateOfBirth (дата рождения) (в таблице People). Обычно вы включаете только поле DateOfBirth. Если же у вас их два, то в поле Age содержится избыточная информация. Но если у вас только поле Age, то вы в опасности — если вы не сможете отслеживать дни рождения и тщательно редактировать каждую запись, ваши данные скоро станут некорректными.
■ Поле DiscountPrice (цена со скидкой) (в таблице Products). Вы должны иметь возможность вычислять цену со скидкой как положено, основываясь на заданных процентах. В обычном деловом мире надбавки и скидки часто меняются. Если вы вычислите скидки,
равные 10%, и сохраните измененные цены в вашей БД, вас ждет много работы в случае снижения скидки до 9%.
Правило 6. Включайте поле Код
Как вы уже знаете, программа Access автоматически создает поле Код(ID), когда вы разрабатываете таблицу в Режиме таблицы,и назначает его первичным ключом вашей таблицы. Но даже теперь, когда вы изучили Конструктор,все равно вставляйте поле Кодво все ваши таблицы. Убедитесь, что в нем используется тип данных Счетчик,в этом случае Access автоматически заполнит его числами и отведет ему роль первичного ключа.
В некоторых ситуациях в вашу таблицу может быть включено уникальное поле, которое можно использовать как первичный ключ. Не поддавайтесь искушению. Вставляя поле Код,вы всегда увеличиваете степень свободы ваших действий. Поле Кодне придется менять никогда. Другая информация, даже имена и номера социального обеспечения могут измениться. И если вы используете связи между таблицами, программа Access копирует первичный ключ в другие таблицы. Если первичный ключ меняется, вы вынуждены искать его значение и разных местах БД.
Примечание
Хорошо бы сделать привычкой включение полей Код во все ваши таблицы. В главе 5 вы поймете преимущества такого подхода, когда начнете устанавливать связи между таблицами.
Глава 3
Обработка листа данных: сортировка, поиск, фильтрация и другие действия
В главе 1 вы впервые познакомились с листом данных — простым и понятным средством для просмотра и редактирования данных таблицы. Как вы уже узнали, лист данных — не лучший инструмент для создания таблицы. (Конструктор — более удобное средство для всевозможного управления БД.) Но лист данных — великолепный инструмент для просмотра записей таблицы, внесения изменений и добавления новых данных.
Имея опыт создания таблицы Dolls (см. разд. "Создание простой таблицы" главы 1), вы, возможно, чувствуете себя излишне самонадеянно в отношениях с листом данных. Однако большинство таблиц гораздо больше виденных вами до сих пор примеров. В конце концов, если вам необходимо вести учет только дюжины кукол-болванчиков, на самом деле никакая БД не нужна — вы будете вполне удовлетворены, набросав краткий список в старой электронной таблице, документе текстового процессора или на клочке бумаги.
С другой стороны, если вы планируете создать маленькую империю кукол-болванчиков (готовую для демонстрации на международных выставках), придется заполнить вашу таблицу сотнями или тысячами записей. В этом случае не так легко пересмотреть массу данных, чтобы найти то, что нужно. Неожиданно лист данных покажется, мягко говоря, необъятным.
К счастью, у программы Access есть чудодейственные средства управления листом данных, способные сделать жизнь проще. Прочитав эту главу, вы станете знатоком средств, видоизменяющих листы данных, досконально освоив такие методы, как сортировка, поиск и фильтрация. Вы также узнаете, как легко напечатать моментальную копию ваших табличных данных.
Примечание
Время, затраченное на работу с листами данных, — исключительно ваш выбор. Некоторые знатоки программы Access предпочитают создавать формы для всех своих таблиц (как описано в части IV). С помощью форм можно создать полностью настраиваемое окно для ввода данных, Проектирование форм требует больше усилий, но ваше творческое эго будет довольно.
Настройка листа данных
Бас утомил тусклый лист данных с монотонно тянущимися рядами столбцов и строк? Вы можете кое-что сделать с ним. Программа Access позволяет настроить внешний вид и структуру листа данных, чтобы сделать его более удобным (или отвечающим вашему чувству
стиля). Некоторые из этих настроек, например, изменение шрифта на листе данных, — постыдные излишества. Другие параметры, например скрытие или закрепление столбцов, могут действительно облегчить работу с большими таблицами.
Примечание
Access сохраняет изменения форматирования не сразу (в отличие от корректировок записей, которые программа сохраняет, как только они произведены). Вместо этого Access предлагает сохранить изменения при следующем закрытии листа данных. Вы можете выбрать Да для сохранения ваших настроек или Нетдля возвращения к предыдущему внешнему виду листа данных (что не повлияет на любые внесенные вами в таблицу корректировки данных).