Построение локальной концептуальной модели данных для представления пользователя «начальник склада».
Приступая к разработке локальной концептуальной модели данных для представления пользователя «начальник склада » в приложении «сборочное предприятие», прежде всего, следует выявить различные компоненты этой модели, используя имеющиеся спецификации требований пользователя. В каждую создаваемую модель данных входят следующие компоненты: n типы сущностей n типы связей n атрибуты n первичные ключи
Определение типов сущностей
Начнем работу с того, что определим основные типы сущностей исходя из имеющихся спецификаций. В спецификациях сущности обычно представлены как существительные. Анализ показывает, что основными сущностями, упоминаемыми в спецификациях, являются следующие: СКЛАД SKLAD ИЗДЕЛИЕ IZDEL МАТЕРИАЛЫ И ДЕТАЛИ KOMP ПОСТАВЩИКИ PSTV ЗАКАЗЧИКИ POKUP ДОКУМЕНТ О ПОСТАВКЕ POST ДОКЕМЕНТ ОБ ОТГРУЗКЕ OTGR Определение типов связей Следующий шаг состоит в определении типов связей, существующих между отдельными сущностями. Как правило, связи выражаются глаголами или глагольными сочетаниями.
Тип сущности тип связи тип сущности POST осуществляется на SKLAD POST осуществляется PSTV OTGR делают на SKLAD OTGR проводит POKUP IZDEL отгружаются по OTGR KOMP поставляются по POST Определение кардинальности и уровня участи отдельных типов связей Следующий этап - определение кардинальности и уровня участия для каждого типа связей. Кардинальность любой связи может иметь значение либо 1:1, либо 1:M, либо M:N. Участие каждого из членов связи может быть определено как частичное или тотальное.
Связь POSTà SKLAD. В спецификациях было написано, что поставка осуществляется только на один склад, следовательно, данная связь имеет кардинальность 1:1. Поскольку каждая поставка осуществляется на склад, степень участия сущности POST в связи POSTà SKLAD является полной.
Связь POSTà PSTV. Кардинальность данной связи 1:1, поскольку каждая поставка осуществляется только одним поставщиком в данный момент времени. Степень участия сущности PSTV в данной связи является частичной. Связь OTGRàSKLAD. В ходе аналогичных рассуждений получаем, что кардинальность данной связи 1:1, степень участия сущности SKLAD в связи OTGRàSKLAD частичная. Связь OTGRàPOKUP. Кардинальность 1:1. Сущность OTGR участвует в связи OTGRàPOKUP полностью. Связь IZDELàOTGR. Кардинальность 1:M. Сущность IZDEL участвует в данной связи частично. Связь KOMPàPOST. Кардинальность данной связи 1:M, так как поставляться может несколько видов материалов и компонентов. Сущность POST полностью занята в связи KOMPàPOST.
Определение атрибутов и связывание их с типами сущностей и связей. Следующим шагом является выделение атрибутов сущностей. Атрибут описывает некоторый аспект определенной сущности или связи.
Тип сущности Атрибут PSTV K_PSTV (код поставщика) PSTV (название) GOROD (город) ADR (адрес) POKUP K_POKUP(код покупателя) POKUP (название) GOROD (город) ADR (адрес) IZDEL K_IZDEL (код изделия) IZDEL (наименование) KHAR (характеристика) ZENA_ED (цена за ед.) KOMP K_KOMP (код детали) KOMP (наименование) KHAR (характер.) ZENA_ED (цена за ед.) POST N_POST (№ пост.) KOL_VO (кол-во) DATA _POST (дата пост.) OTGR N_OTGR (№ отгр.) KOLVO (кол-во) DATA_OTGR (дата отгр.) SKLAD N_SKLAD (№ склада) FIO (отв. лицо) KOLVO (кол-во) DATA_OPER (дата опер.) Определение атрибутов, являющихся потенциальными и первичными ключами. Тип сущности Первичный ключ Потен. ключ. IZDEL K_IZDEL IZDEL
KOMP K_KOMP KOMP PSTV K_PSTV POKUP K_POKUP OTGR N_OTGR POST N_POST SKLAD N_SKLAD, K_KOMP, DATA_OPER Определение набора отношений исходя из структуры локальной логической модели данных. На этом этапе создаются отношения, представляющие сущности и связи, присутствующие в локальной логической модели данных представления пользователя «начальник склада» приложения «Сборочное предприятие». Связи между сущностями моделируются с помощью механизма первичных и внешних ключей.
Сильные типы сущностей Для каждой сильной сущности в локальной модели данных создается отношение, включающее все простые атрибуты этой сущности. В случае составных атрибутов (например, адреса) в отношение включаются только составляющие их простые атрибуты (такие как город, улица, номер дома).
Слабые типы сущностей Для каждой слабой сущности, присутствующей в логической модели, создается отношение, включающее все простые атрибуты этой сущности. Дополнительно в отношение включаются атрибуты внешнего ключа, соответствующего первичному ключу сущности-владельца. Первичный ключ слабой сущности частично или полностью зависит от ключа сущности-владельца.
Бинарные связи типа 1:1 Для каждой присутствующей в логической модели данных бинарной связи типа 1:1, установленной между сущностями E1 и E2, надо переслать атрибуты первичного ключа сущности E1 в отношение, представляющее сущность E2. Эти атрибуты будут использоваться в нем в качестве внешнего ключа. Определение родительской и дочерней сущностей зависит от ограничений участия, наложенных на члены отношения E1 и E2. Сущность, которая частично участвует в связи, определяется как родительская, а та сущность, которая участвует в связи полностью определяется как дочерняя.
Бинарные связи типа 1:M Для каждой бинарной связи типа 1:M, установленной в логической модели данных между сущностями E1 и E2, необходимо переслать копию атрибутов первичного ключа сущности E1 в отношение, представляющее сущность E2, где они будут играть роль внешнего ключа. Сущность, представляющая ’единичную’ сторону связи определяется как родительская. А сущность, представляющая ‘множественную ’ сторону - как дочерняя.
В результате окончательный вид отношений имеет следующий вид: POST (N_POST, K_KOMP, K_PSTV, KOLVO, N_SKLAD, DATA_POST) primary key N_POST; foreign key (K_KOMP) references KOMP (K_KOMP); foreign key (K_PSTV) references PSTV (K_PSTV); foreign key (N_SKLAD) references SKLAD (N_SKLAD); OTGR (N_OTGR, K_IZDEL, K_POKUP, KOLVO, N_SKLAD, DATA _OTGR) primary key N_OTGR; foreign key (K_IZDEL) references IZDEL (K_IZDEL); foreign key (K_POKUP) references POKUP (K_POKUP); foreign key (N_SKLAD) references SKLAD (N_SKLAD); IZDEL (K_IZDEL, IZDEL KHAR, ZENA_ED) primary key (K_IZDEL); KOMP (K_KOMP, KOMP, KHAR, ZENA_ED); primary key (K_KOMP); PSTV (K_PSTV, PSTV GOROD, ADR); primary key (K_PSTV); POKUP (K_POKUP, POKUP, GOROD, ADR); primary key (K_POKUP); SKLAD (N_SKLAD, FIO, K_KOMP, K_IZDEL, KOLVO, DATA_OPER); foreign key (K_KOMP) references KOMP (K_KOMP); foreign key (K_IZDEL) references IZDEL (K_IZDEL);
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|