Основы проектирования баз данных
Для проектирования базы данных в СУБД Access достаточно одной таблицы, однако и ее создание начинается задолго до того, как вы запустите программу, даже если для организации новых таблиц вы пользуетесь такими замечательными инструментами, как мастера. Любую базу данных, даже самую "скромную" по своим размерам, необходимо правильно спроектировать.
Тщательно продуманная и удачно разработанная база данных станет гарантом вашего спокойствия в будущем, поскольку гораздо лучше изначально уделить достаточно времени и создать оптимальный для конкретных целей проект, чем впоследствии заниматься реструктуризацией неудачно спланированной базы данных, в которой уже хранится не одна сотня (а возможно, и тысяча) записей.
Рассмотрим основные этапы проектирования приложения баз данных.
Этап 1. Общее проектирование и цель создания базы данных
На этом этапе определяется общая концепция создаваемого проекта. В первую очередь разработчику необходимо выполнить следующее.
■ Посоветоваться с будущими пользователями этой системы и выяснить назначение проектируемой базы данных.
■ В ходе опроса непосредственных пользователей БД следует выявить и по возможности формализовать обычную последовательность их действий при работе с той информацией, которая должна будет вноситься в базу данных.
■ Внимательно ознакомиться с уже используемыми формами регистрации данных (например, бланками, справками, журналами и т.п.).
■ Обсудить с заказчиком эскизы будущих отчетов. Если заранее известно, как будут выглядеть отчеты новой базы данных, можно выбрать для таблиц структуру, оптимально отвечающую требованиям отчета.
По мере того как будет определяться назначение БД, будут конкретизироваться и те фактические данные, которые должны храниться и обрабатываться в этой базе. На данном этапе уже выделяются отдельные предметы или объекты, которым будут соответствовать таблицы, и в первом приближении намечаются обязательные поля этих таблиц, куда будут вноситься данные об основных характеристиках объектов.
Итак, о целях создания БД можно сказать следующее: основные функции базы данных будут заключаться в создании, удалении и обновлении записей; поиске записей по идентификатору или условию; подсчете числа записей, удовлетворяющих заданному условию, формировании текущих отчетов.
Этап 2. Определение необходимых таблиц и полей базы данных
Вот краткий список тех действий, которые необходимо выполнить на данном этапе.
■ Напишите список таблиц, из которых будет состоять база данных, определитесь
с именами таблиц.
■ Для каждой таблицы определите требуемый набор полей и их положение в таблице.
■ Для каждого поля выберите имя и тип данных, которые будут в нем храниться. Определите размер текстовых полей и подтип числовых.
■ Подумайте и сформулируйте для полей правила проверки допустимости вводимых данных. Правила и рекомендации, которых необходимо придерживаться
♦ Постарайтесь включить в базу данных всю информацию, с которой необходимо работать.
♦ Создавайте простые таблицы, использовать которые всегда удобнее. Помните, что приложение Access обладает мощными возможностями связывания таблиц.
♦ Иногда хорошей основой для создания таблиц служат уже знакомые вам
и используемые в вашей работе бумажные носители информации — формы, бланки и т.п. Как правило, в дальнейшем на базе таблиц создаются электронные эквиваленты этих же форм.
♦ Избегайте давать таблицам и полям базы данных имена, которые могут совпасть с зарезервированными словами самой системы Access (например, select, date), чтобы исключить конфликты и появление ошибок при выполнении запросов.
♦ Формируя список полей таблицы, разбивайте информацию об объекте на минимальные логические компоненты.
♦ Если данные содержат перечисления (например, типы товаров), присмотритесь к ним внимательнее. Возможно, такие поля придется выделить в отдельную таблицу.
♦ Не рекомендуется помещать в таблицу поля, значения которых являются результатом выражения (т.е. могут быть вычислены на основании данных из других полей таблицы, как в случае с известными значениями количества и стоимости заказанного товара). Сумма заказа является простым произведением этих значений.
♦ Назначение поля, в общем случае, должно быть понятно из его названия. Например, Пользователи — таблица со сведениями о пользователях Товары — каталог товаров.
♦ Хорошим стилем считается использование составных названий таблиц и полей. При этом первое слово должно означать сущность информационного объекта, а второе слово (или остальные слова) — уточнение; например КодТовара, ДатаРождения. И хотя Access допускает использование пробелов в названиях полей, предпочтительнее все-таки оставлять такие имена без пробелов.
Ограничения Access на имена полей и объектов:
■ Имя не может начинаться с пробела.
■ Согласно спецификациям СУБД Access, в имени поля или таблицы может быть до 64 символов. Однако на практике подобная многословность будет мешать. Не следует впадать и в другую крайность, придумывая для полей или таблиц маловразумительные, скорее напоминающие шифр, названия.
■ Имя не должно включать управляющие знаки (с кодами ASCII от 0 до 31).
■ Имя может включать любую комбинацию букв, цифр; пробелов и специальных знаков, за исключением точки (.), восклицательного знака (!), надстрочного знака (ч) и квадратных скобок ([]).
Этап 3. Определение полей с уникальными значениями в каждой записи
При проектировании таблиц обязательным условием является использование первого поля таблицы (или набора полей) для однозначной идентификации записей таблицы. Такое поле служит первичным ключом таблицы, и на следующем этапе будет принимать непосредственное участие в организации связей между таблицами.
Этап 4. Определение связей между таблицами
Этап 5. Усовершенствование структуры БД
На этом этапе по разработанным ранее схемам создаются таблицы с необходимыми типами полей, выбираются первичные ключи и формируются связи между таблицами. Теперь, когда структурная основа базы данных готова, следует внимательно проанализировать ее, чтобы еще до заполнения таблиц данными устранить возможные недоработки.
При разработке крупных проектов со сложной организацией базы данных на данном этапе обязательно проводится заполнение таблиц специально подготовленными тестовыми данными. В качестве таких данных могут использоваться как заведомо правильные данные, с помощью которых проверяется сама структура таблиц и корректность генерируемых отчетов, так и "ошибочные" данные, позволяющие отработать допустимые пределы значений для полей таблиц и выявить все возможные типы ошибок.
На данном этапе целесообразно также создать в первом приближении будущие формы и отчеты, чтобы удостовериться в том, что в них будут заноситься именно те данные, которые необходимы. На тестовых наборах данных с помощью запросов проверяются связи, установленные для различных таблиц.
Этап 6. Ввод данных и создание других объектов БД
После создания и успешного тестирования структуры таблиц можно заполнять их реальными данными. На этом этапе разрабатываются и создаются также все остальные необходимые объекты базы данных — запросы, формы, отчеты, страницы доступа к данным, макросы и модули.