· Класс – это множество предметов реального мира, связанных общностью структуры и поведением.
Концептуальная модель представляет объекты и их взаимосвязи без указывания способов их физического хранения. Таким образом, концептуальная модель является, по существу, моделью предметной области. При проектировании концептуальной модели все усилия разработчика должны быть направлены в основном на структуризацию данных и выявление взаимосвязей между ними без рассмотрения особенностей реализации и вопросов эффективности обработки. Проектирование концептуальной модели основано на анализе решаемых на этом предприятии задач по обработке данных. Концептуальная модель включает описания объектов и их взаимосвязей, представляющих интерес в рассматриваемой предметной области и выявляемых в результате анализа данных. Имеются в виду данные, используемые как в уже разработанных прикладных программах, так и в тех, которые только будут реализованы.
Проектирование концептуальной модели базы данных:
Анализ данных: сбор основных данных (например, объекты, связи между объектами).
Определим первоначальные данные:
Заявки - поступающие от магазинов на определённый период.
Договора - заключаются с поставщиками на определённый вид товара.
Поставщики - организации или физические лица, с которыми заключаются договора на поставку товара.
Заказчики - в основном магазины, а также предприятия и организации, подающие заказ на приобретение того или иного товара.
Счета - ведутся на этапе заключения договором с поставщиками, а также с заказчиками.
Накладные - создаются на основании получения заказа о заказчика, для отгрузки.
Справки - получение/выдача различных справок как заказчику так и поставщику.
Товар - присутствует на основании заявки и договора с поставщиком.
Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают взаимосвязи типа «один к одному», «один ко многим» и «многие ко многим».
Например, если заказчик производит заказ на покупку товара впервые, осуществляется первичная регистрация его данных и сведений о сделанном заказе. Если же заказчик производит заказ повторно, осуществляется регистрация только данного заказа. Вне зависимости от того, сколько раз данный заказчик производил заказы, он имеет уникальный идентификационный номер (уникальный ключ заказа). Информация о каждом заказчике включает наименование заказчика, адрес, телефон, факс, фамилию, имя, отчество, признак юридического лица и примечание. Таким образом, свойствами объекта Заказчик являются «уникальный ключ заказчика», «наименование заказчика».
Следующий представляющий для нас интерес объект — Товар. Этот объект имеет свойства «уникальный ключ товара», «наименование товара».
Второй рассматриваемый объект — Поставщик. Его свойствами являются «уникальный ключ поставщика», «наименование поставщика».
Третий рассматриваемый объект — Заказчик. Его свойствами являются «уникальный ключ заказчика», «наименование заказчика».
Взаимосвязь «один к одному» (между двумя типами объектов)
Допустим, в определенный момент времени один заказчик может сделать только один заказ. В этом случае между объектами Заказчик и Товар устанавливается взаимосвязь «один к одному».
Взаимосвязь «один ко многим» (между двумя типами объектов)
В определенный момент времени один заказчик может стать обладателем нескольких товаров, при этом несколько заказчиков не могут являться обладателями одного товара (на условии если заказчик не претендует на часть товара). Взаимосвязь «один ко многим» можно обозначить с помощью одинарной стрелки в направлении к «одному» и двойной стрелки в направлении ко «многим» .В этом случае одной записи данных первого объекта (его часто называют родительским или основным) будет соответствовать несколько записей второго объекта (дочернего или подчиненного). Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В качестве родительского объекта часто выступает справочник, а в дочернем хранятся уникальные ключи для доступа к записям справочника. В нашем примере в качестве такого справочника можно представить объект Заказчик, в котором хранятся сведения о всех заказчиках. При обращении к записи для определенного заказчика нам доступен список всех покупок, которые он сделал, и сведения о которых хранятся в объекте Товар.
Взаимосвязь «один к одному» (между двумя свойствами)
Мы предполагаем, что ключ (номер) магазина является его уникальным идентификатором, то есть он не изменяется и при последующих поступлениях заказов от данного магазина. Если наряду с номером магазина в базе данных хранится и другой его уникальный идентификатор (например, адрес), то между такими двумя уникальными идентификаторами существует взаимосвязь «один к одному».
Взаимосвязь «один ко многим» (между двумя свойствами)
Имя поставщика и его номер существуют совместно. Поставщиков с одинаковыми именами может быть много, но все они имеют различные номера. Каждому поставщику присваивается уникальный номер. Это означает, что данному номеру поставщика соответствует только одно имя. Взаимосвязь «один ко многим» обозначается одинарной стрелкой в направлении к «одному» и двойной стрелкой в направлении ко «многим».
Первоначальная схема данных
Функциональная модель | Исследование токов Данных | Данные выявленные в ходе разработки |
Отдел обработки заявок | Заявки | |
Договора | ||
Договоров | Поставщики | |
Заказчики | ||
Ведение счетов | Счета | |
Погрузка | Накладные | |
Товар | ||
Инвентаризация | ||
Справки |
рис.1
Определение объектов
Выделим следующие объекты:
1. ТОВАР - (Т);
2. ЗАКАЗЧИК - (З);
3. ПОСТАВЩИК - (П);
4. СЧЕТА - (С);
5. ДОГОВОР - (Д);
6. НАКЛАДНЫЕ - (Н).
Первоначальное графическое представление концептуальной модели
Т | |
З | П |
С | |
Н | Д |
рис.2
Задание первичных и альтернативных ключей, определение свойств объектов
Для каждого объекта определим свойства, которые будем хранить в БД. При этом необходимо учитывать тот факт, что при переходе от логической к физической модели данных может произойти усечение числа объектов. На самом деле, как правило, значительное число данных, необходимых пользователю, может быть достаточно легко подсчитано в момент вывода информации. В то же время, в связи с изменением алгоритмов расчета или исходных величин, некоторые расчетные показатели приходится записывать в БД, чтобы гарантированно обеспечить фиксацию их значений. Выбор показателей, которые обязательно следует хранить в БД, достаточно сложен. Нечасто можно найти однозначное решение этой проблемы, и в любом случае оно потребует тщательного изучения работы предприятия и анализа концептуальной модели.
Приведение модели к требуемому 1 уровню нормальной формы
Приведение модели к требуемому уровню нормальной формы является основой построения реляционной БД. В процессе нормализации элементы данных группируются в таблицы, представляющие объекты и их взаимосвязи. Теория нормализации основана на том, что определенный набор таблиц обладает лучшими свойствами при включении, модификации и удалении данных, чем все остальные наборы таблиц, с помощью которых могут быть представлены те же данные. Введение нормализации отношений при разработке информационной модели обеспечивает минимальный объем физической, то есть записанной на каком-либо носителе БД и ее максимальное быстродействие, что впрямую отражается на качестве функционирования информационной системы. Нормализация информационной модели выполняется в несколько этапов.
Данные, представленные в виде двумерной таблицы, являются первой нормальной формой реляционной модели данных. Первый этап нормализации заключается в образовании двумерной таблицы, содержащей все необходимые свойства информационной модели, и в выделении ключевых свойств. Очевидно, что полученная весьма внушительная таблица будет содержать очень разнородную информацию. В этом случае будут наблюдаться аномалии включения, обновления и удаления данных, так как при выполнении этих действий нам придется уделить внимание данным (вводить или заботиться о том, чтобы они не были стерты), которые не имеют к текущим действиям никакого отношения. Например, может наблюдаться такая парадоксальная ситуация.