Основные этапы проектирования БД

Проектирование – процесс создания описаний новой системы, которая способна функционировать. В процессе проектирования базы данных выделяют 3 этапа:

1. концептуальное проектирование – создается концептуальная модель БД

2. логическое проектирование – создается логическая модель БД для выбранной СУБД

3. физическое проектирование – создаются файлы БД на машинном носителе.

Процесс создания информационной (концептуальной) модели начинается с определения концептуальных требований ряда пользователей. Концептуальные требования могут определяться и для некоторых задач (приложений), которые в ближайшее время реализовывать не планируется. Это может несколько повысить трудоемкость работы, однако поможет наиболее полно учесть все нюансы функциональности, требуемой для разрабатываемой системы, и снизит вероятность переделки в дальнейшем. Требования отдельных пользователей должны быть представлены в едином «обобщенном представлении». Последнее называют концептуальной моделью.

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

Например, на предприятии выделены первоначальные объекты:

Заявки - поступающие от магазинов на определённый период.

Договора - заключаются с поставщиками на определённый вид товара.

Поставщики - организации или физические лица, с которыми заключаются договора на поставку товара.

Заказчики - в основном магазины, а также предприятия и организации, подающие заказ на приобретение того или иного товара.

Счета - ведутся на этапе заключения договором с поставщиками, а также с заказчиками.

Накладные - создаются на основании получения заказа от заказчика, для отгрузки.

Справки - получение/выдача различных справок как заказчику, так и поставщику.

Товар - присутствует на основании заявки и договора с поставщиком.

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

Например, если заказчик производит заказ на покупку товара впервые, осуществляется первичная регистрация его данных и сведений о сделанном заказе. Если же заказчик производит заказ повторно, осуществляется регистрация только данного заказа. Вне зависимости от того, сколько раз данный заказчик производил заказы, он имеет уникальный идентификационный номер (уникальный ключ заказа). Информация о каждом заказчике включает наименование заказчика, адрес, телефон, факс, фамилию, имя, отчество, признак юридического лица и примечание. Таким образом, свойствами объекта Заказчик являются «уникальный ключ заказчика», «наименование заказчика». Следующий представляющий для нас интерес объект - Товар. Этот объект имеет свойства «уникальный ключ товара», «наименование товара». Третий рассматриваемый объект — Поставщик. Его свойствами являются «уникальный ключ поставщика», «наименование поставщика».

Допустим, в определенный момент времени один заказчик может сделать только один заказ. В этом случае между объектами Заказчик и Товар устанавливается взаимосвязь «один к одному» (между двумя типами объектов).

В определенный момент времени один заказчик может стать обладателем нескольких товаров, при этом несколько заказчиков не могут являться обладателями одного товара. Тогда между объектами Заказчик и Товар устанавливается взаимосвязь «один ко многим» (между двумя типами объектов). Взаимосвязь «один ко многим» можно обозначить с помощью одинарной стрелки в направлении к «одному» и двойной стрелки в направлении ко «многим». В этом случае одной записи данных первого объекта (его часто называют родительским или основным) будет соответствовать несколько записей второго объекта (дочернего или подчиненного). Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В приведенном примере в качестве основного можно представить объект Заказчик, в котором хранятся сведения обо всех заказчиках. При обращении к записи для определенного заказчика нам доступен список всех покупок, которые он сделал, и сведения о которых хранятся в объекте Товар.