Разработка схемы данных

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

1. Работа начинается с составления генерального списка полей – он может насчитывать сотни позиций.

2. В соответствии с тем, какие данные размещаются в каждом поле, определяют наиболее подходящий тип для каждого поля.

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

Наметив столько таблиц, сколько подразделений (рабочих мест) охватывает база данных, приступают к дальнейшему делению таблиц. Критерием необходимости деления является факт множественного повтора данных в соседних записях. На рис. 2.7 показана таблица, у которой в поле Адрес наблюдается повтор данных. Это явное свидетельство того, что таблицу надо поделить на две взаимосвязанных таблицы и, возможно, заполнять эти таблицы на разных рабочих местах.

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

Если в списке полей таблицы нет такого поля, которое можно было бы использовать как ключевое, его можно создать искусственно. Например, можно ввести дополнительное поле типа Счетчик – оно не может содержать повторяющиеся данные по определению.

Рис. 2.7. Если данные в поле начинают повторяться, то таблицу стоит поделить

Есть еще прием объединения двух не уникальных полей в одно уникальное. Так, например, в таблице расписания занятий время занятия не уникальное поле, поскольку в одно и то же время занятия идут у разных групп. Номер аудитории тоже не уникальное поле, поскольку в одной аудитории могут заниматься разные группы. Но если объединить время занятия с номером аудитории, то такое составное поле станет уникальным, ведь в одно и то же время в одной аудитории две группы заниматься не могут. С таким искусственным полем может быть связан номер группы студентов, занимающихся в данное время в данной аудитории, и фамилия преподавателя, который этим занятием
руководит.

5. С помощью карандаша и бумаги расчерчивают связи между таблицами. На рис. 2.8 показан пример взаимосвязи между группой таблиц, входящих в базу данных компании, занимающейся трансляцией спутниковых телевизионных каналов. Ключевые поля таблиц в ней выделены полужирным шрифтом. Такой чертеж называется схемой данных.

Рис. 2.8. Схема связей между таблицами

Существует несколько типов возможных связей между таблицами.
Наиболее распространенными являются связи один ко многим и один к одному. Связь между двумя таблицами организуется на основе общего поля. Оно должно присутствовать как в той, так и в другой таблице, причем в одной из таблиц оно обязательно должно быть ключевым. То есть на стороне один всегда должно выступать ключевое поле, содержащее уникальные, неповторяющиеся значения. Значения того же поля на стороне многие могут повторяться.

На схеме данных общие поля соединены линиями связи. С одной стороны эта линия всегда маркируется знаком «1», с другой стороны – либо знаком «1» (связь один к одному), либо значком «бесконечность» (связь один ко многим). Понятно, что если связываются ключевые поля, то это всегда связь один к одному, а если ключевое поле связано с неключевым, то это связь один ко многим.

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

6. Разработкой схемы данных заканчивается «бумажный» этап работы над техническим предложением. Эту схему заказчик согласовывает с исполнителем, и лишь после этого исполнитель может приступать к непосредственному созданию базы данных.

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