
- •Основные сведения о создании баз данных
- •Некоторые термины, связанные с базами данных
- •Правильная структура базы данных
- •Процесс разработки
- •Определение цели создания базы данных
- •Поиск и организация необходимых данных
- •Распределение данных по таблицам
- •Преобразование элементов данных в столбцы
- •В приведенном ниже списке содержится несколько советов по созданию столбцов.
- •Задание первичных ключей
- •Создание связей между таблицами
- •Создание отношения "один-ко-многим"
- •Создание отношения "многие-ко-многим"
- •Усовершенствование структуры
- •Усовершенствование структуры таблицы "Продукты"
- •Применение правил нормализации
- •Первая нормальная форма
- •Вторая нормальная форма
- •Третья нормальная форма
Усовершенствование структуры
После создания необходимых таблиц, полей и связей следует заполнить таблицы образцами данных и выполнить с ними различные операции: создание запросов, добавление новых записей и т.д. Это позволит выявить возможные проблемы — например, может потребоваться добавить дополнительный столбец или разбить одну таблицу на две для исключения повторяющихся данных.
Проверьте, можно ли использовать базу данных для получения ответов на нужные вопросы. Создайте черновые формы и отчеты и убедитесь, что в них отображаются нужные данные. Проверьте базу данных на наличие повторяющихся данных и при необходимости удалите эти данные.
В начале работы с базой данных можно выявить области для усовершенствования ее структуры. Можно обратить внимание на следующие пункты:
Отсутствие необходимых столбцов. Если некоторые столбцы отсутствуют, следует определить, в какую из существующих таблиц можно добавить данные. Если данные относятся к другой теме, может потребоваться дополнительная таблица. Создайте столбец для каждого элемента данных, который требуется отслеживать. Если данные невозможно получить из других столбцов путем вычислений, может потребоваться новый столбец.
Наличие столбцов с данными, которые можно получать из существующих полей путем вычислений. Если данные можно получать из других столбцов путем вычислений — например, цену со скидкой можно вычислять на основе розничной цены — рекомендуется избегать использования дополнительных столбцов.
Наличие многократно повторяющихся данных в таблицах. В этом случае следует разделить таблицу на две таблицы и связать их отношением "один-ко-многим".
Наличие таблиц с большим количеством полей, ограниченным количеством записей и пустыми полями в отдельных записях. В этом случае может потребоваться изменить структуру таблицы, чтобы сократить число полей и увеличить число записей.
Разбиение каждого элемента данных на минимальные компоненты. Если элемент данных требуется использовать для отчетов, сортировки, поиска или вычислений, его следует поместить в отдельный столбец.
Наличие в столбце данных, относящихся к теме таблицы. Если столбец содержит данные, которые не относятся к теме таблицы, их следует поместить в другую таблицу.
Наличие связей между таблицами, представленных общими полями или третьей таблицей. Для создания отношений "один-к-одному" и "один-ко-многим" требуются общие столбцы. Для создания отношения "многие-ко-многим" требуется третья таблица.
Усовершенствование структуры таблицы "Продукты"
Предположим, что все продукты в базе данных можно разделить на несколько общих категорий, таких как напитки, приправы или рыбные продукты. Таблица "Продукты" может содержать поле, в котором указана категория продукта.
Предположим, что после анализа и усовершенствования структуры базы данных было решено сохранять не только имя категории продуктов, но и ее описание. Если добавить поле с описанием категории в таблицу продуктов, описание придется повторять для каждого продукта в отдельной категории, а это решение не является рациональным.
Более рациональный подход — выделить категории в качестве отдельной темы для отслеживания в базе данных, создать отдельную таблицу с собственным первичным ключом. Затем первичный ключ таблицы "Категории" можно добавить в таблицу "Продукты" в качестве внешнего ключа.
Таблицы "Категории" и "Продукты" связаны отношением "один-ко-многим": категория может включать несколько продуктов, но при этом каждый продукт может входить лишь в одну категорию.
В процессе анализа структуры таблиц следует выявлять повторяющиеся группы. Предположим, что таблица содержит следующие столбцы:
Код продукта
Имя
Код продукта1
Имя1
Код продукта2
Имя2
Код продукта3
Имя3
В данном случае продукты — повторяющиеся группы столбцов, отличные друг от друга только номером в имени столбца. Если столбцы пронумерованы таким образом, следует пересмотреть структуру таблицы.
Такая структура имеет несколько недостатков. Прежде всего, существует верхний предел для числа продуктов. После превышения этого предела в таблицу необходимо добавить новую группу столбцов, а эта задача сложна для выполнения.
Следующий недостаток заключается в том, что если число продуктов для отдельного поставщика меньше максимального, некоторые столбцы будут оставаться пустыми. Но самый серьезный недостаток такой структуры — усложнение многих задач, таких как сортировка или создание индекса таблицы по коду или наименованию продукта.
При наличии повторяющихся групп следует рассмотреть возможность разбиения одной таблицы на две. В приведенном выше примере лучше создать две таблицы: одну — для поставщиков, а вторую — для продуктов, и связать их с помощью кода поставщика.