Лабораторные работы. ЛАБОРАТОРНЫЕ ЗАНЯТИЯ. Лабораторная работа 1
Скачать 1.87 Mb.
|
Выделите сущность Покупатель, щелкнув по ней указателем мыши, а затем вызовите пункт меню Model | Attributes. То же самое можно выполнить, выбрав пункт Attributes контекстного меню. При этом на экране появится окно редактора атрибутов Attributes. Редактор атрибутов построен по тому же принципу, что и редактор сущностей. В верхней части диалогового окна находится выпадающий список, в котором можно выбрать сущность для редактирования. Рядом имеется кнопка, вызывающая редактор сущностей. Для ввода нового атрибута нажмите кнопку New. В диалоге New Attribute в поле Attribute Name введите имя атрибута –КОД_ПОК, в поле Column Name необходимо указать имя соответствующей атрибуту в физической модели колонки. По умолчанию Erwin генерирует имя колонки из имени атрибута, заменяя пробелы символом подчеркивания. Поскольку СУБД Access, для которой мы создаем модель, допускает использование букв русского алфавита в идентификаторах колонок таблиц, подставляемое по умолчанию значение в Column Name мы оставляем без изменения. В группе Domain находится список доменов, представляющих основные типы данных, используемые в СУБД: строковый (string), числовой (number), время (datetime), двоичный (blob). Для атрибута КОД_ПОК выберите числовой домен – Number. После нажатия кнопки ОК атрибут появится в окне редактора. Выделите атрибут КОД_ПОК и установите на закладке General флажок Primary Key, так как данный атрибут является первичным ключом сущности Покупатель. Аналогичным образом введите остальные атрибуты сущности Покупатель в соответствии с табл. 1.2. В результате окно редактора атрибутов будет выглядеть так, как показано на рис. 1.7. Порядок следования атрибутов в списке можно изменять при помощи кнопок со стрелками, находящимися над окном списка. Для этого необходимо выбрать нужный атрибут в списке, нажать одну их этих кнопок, и атрибут сместится в списке в направлении стрелки, изображенной на кнопке. Нажмите кнопку ОК. Рис. 1.7. Атрибуты сущности Покупатель Как вы помните, мы создали два хранимых отображения – «Уровень сущностей» и «Уровень атрибутов». До сих пор мы работали на уровне сущностей, где сущности изображались просто прямоугольниками с названием сущности внутри. Перейдите на вкладку «Уровень атрибутов». Сущности изображаются здесь в виде прямоугольников, однако имя сущности пишется над прямоугольником, а внутри дается список атрибутов. Прямоугольник сущности делится на две части. В верхней части приводятся атрибуты первичного ключа, а в нижней – все остальные. Пока на диаграмме определены только атрибуты сущности Покупатель, поэтому прочие сущности пусты. Определите атрибуты остальных сущностей на диаграмме в соответствии с табл. 1.2. 5. Определение альтернативных ключей и инверсных входов Альтернативный ключ (Alternate Key) – потенциальный ключ, не ставший первичным. Erwin позволяет выделять атрибуты потенциальных ключей и при генерации схемы БД генерировать по этим группам отдельные уникальные индексы. Инверсный вход (Inversion Entry) – атрибут или группа атрибутов, которые не определяют экземпляр сущности уникальным образом, но часто используются для обращения к экземплярам сущности. Erwin генерирует неуникальный индекс для каждого инверсного входа. В табл. 1.3. приведен перечень ключевых групп, определенных для рассматриваемой предметной области. Таблица 1.3. Ключевые группы
Вызовите редактор ключевых групп Key Groups, щелкнув правой кнопкой мыши по сущности Покупатель и выбрав из контекстного меню пункт Key Groups. Редактор ключевых групп также можно вызвать через главное меню: Model | Key Groups. Редактор ключевых групп содержит элементы управления: Entity – поле с выпадающим списком, в котором следует выбрать сущность для редактирования. Окно с перечнем ключевых групп. Каждая группа представлена отдельной строкой, включающей в себя имя (Key Group), тип (Type) и определение (Definition). Кроме того, диалоговое окно редактора ключевых групп содержит следующие закладки: Members (члены). Задаются члены ключевых групп и их порядок следования в группе. General (общие установки). Переключатели, позволяющие задавать тип ключевой группы. Для первичного и внешнего ключа эти группы недоступны. Definition (определение). Произвольная текстовая информация, относящаяся к выбранной ключевой группе. Note (примечание). Примечание к выбранной группе. UDP (пользовательские свойства). Нажмите кнопку New. В окне New Key Group в поле Key Group введите имя ключевой группы – ИНН. В поле Index выводится генерируемое программой Erwin имя индекса. Оставьте его без изменений. Переключатель Key Group Type задает тип создаваемого ключа. Это может быть альтернативный ключ (Alternate Key) или инверсный вход (Inversion Entry). Выберите Alternate Key и нажмите ОК. Вновь введенный альтернативный ключ появится в перечне ключей. Перейдите на закладку Members. Новый ключ пока не содержит никаких атрибутов, поэтому правый список Key Group Members (члены ключевой группы) пуст. Выберите в левом списке атрибут ИНН и переместите его в правый список при помощи кнопки со стрелкой (см. рис. 1.8). Рис. 1.8. Редактор ключевых групп Таким же образом создайте ключевые группы для инверсных входов, приведенных в табл. 1.3. 6. Установление связей между сущностями Связь является логическим соотношением между сущностями. Связь имеет имя, мощность, тип. Имя связи (Verb Phrase) – фраза, характеризующая отношение между родительской и дочерней сущностями. Для связи один-ко-многим достаточно указать имя, характеризующее отношение от родительской к дочерней сущности (Parent-to-Child). Для связи многие-ко-многим следует указывать имена как Parent-to-Child, так и Child-to-Parent. Мощность связи (Cardinality) – служит для обозначения отношения числа экземпляров родительской сущности к числу экземпляров дочерней. Различают четыре типа мощности: Различают два типа связей: идентифицирующая и неидентифицирующая. Идентифицирующая связь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями. Когда рисуется идентифицирующая связь, ERwin автоматически преобразует дочернюю сущность в зависимую. Зависимая сущность изображается прямоугольником со скругленными углами. Экземпляр зависимой сущности определяется только через отношение к родительской сущности. При установлении идентифицирующей связи атрибуты первичного ключа родительской сущности автоматически переносятся в состав первичного ключа дочерней сущности. В дочерней сущности новые атрибуты помечаются как внешние ключи – (FK). При установлении неидентифицирующей связи дочерняя сущность остается независимой, а атрибуты первичного ключа родительской сущности мигрируют в состав неключевых компонентов дочерней. Неидентифицирующая связь служит для связи независимых сущностей. Идентифицирующая связь показывается на диаграмме сплошной линией с жирной точкой на дочернем конце связи, неидентифицирующая – пунктирной. Для неидентифицирующей связи можно указать обязательность (Nulls). В случае обязательной связи (No Nulls) при генерации схемы БД атрибут внешнего ключа получит признак NOT NULL, несмотря на то, что внешний ключ не войдет в состав первичного ключа дочерней сущности. В случае необязательной связи (Nulls Allowed) внешний ключ может принимать значение NULL. Необязательная неидентифицирующая связь помечается прозрачным ромбом со стороны родительской сущности. Атрибуты первичного ключа родительской сущности по умолчанию мигрируют со своими именами. ERwin позволяет ввести для них роли или функциональные имена (Rolename), т.е. новые имена, под которыми мигрирующие атрибуты будут представлены в дочерней сущности. Определим связи между сущностями в нашей разрабатываемой модели согласно табл. 1.4. Таблица 1.4. Характеристика связей для заданной предметной области
Создадим связь между сущностями Покупатель и Договор. Для этого выберите в палитре инструментов кнопку «Non-Identifying Relationship» (неидентифицирующая связь). Затем щелкните сначала по родительской сущности – Покупатель, а потом по дочерней – Договор. Между сущностями появится пунктирная линия неидентифицирующей связи. Посреди линии связи проставляется генерируемая по умолчанию глагольная фраза – R/1. Перейдите на уровень атрибутов и обратите внимание на то, что у сущности Договор добавился атрибут первичного ключа КОД_ПОК от сущности Покупатель и помечен буквами «FK». Выделите связь, щелкнув по ней указателем мыши. Затем нажмите правую кнопку мыши и в контекстном меню выберите пункт Relationship Properties (редактор связей). В верхней части редактора связей находится выпадающий список, содержащий полное название связи. В нашем случае осмысленная глагольная фраза для связи еще не определена, поэтому в этом поле значится «Покупатель R/1 Договор». Здесь же находятся две кнопки New и Delete, с помощью которых можно добавить на схеме новую связь или удалить существующую. Кроме того, диалоговое окно редактора связей содержит следующие закладки: General (общие свойства). Здесь задаются общие свойства связи – имя, тип и мощность связи. Definition (определение). На этой странице вводится определение связи, облегчающее восприятие модели. Rolename (Имя роли) – вводятся функциональные имена (для мигрирующих атрибутов). RI Actions (Установки ссылочной целостности) – задаются правила ссылочной целостности. Перейдите на закладку General. В группе Verb Phrase в поле Parent-to-Child введите имя связи – заключает. В группе Cardinality (мощность связи) установите опцию One or More (P). В группе Relationship Type (тип связи) установите опцию Non-Identifying (неидентифицирующая связь), а в группе Nulls (обязательность) включите флажок No Nulls, что означает недопустимость пустых значений внешних ключей. Задайте остальные связи для сущностей заданной предметной области в соответствии с табл. 1.4. В результате логическая модель будет иметь вид, показанный на рис. 1.9. Рис. 1.9. Логическая модель 7. Установление категориальной связи Некоторые сущности определяют целую категорию объектов одного типа. В ERwin в таком случае создается сущность для определения категории и сущности для каждого элемента категории, а затем вводится для них связь категоризации. Родительская сущность категории называется супертипом, а дочерние – подтипом. В сущности-супертипе вводится атрибут-дискриминатор, позволяющий различать конкретные экземпляры сущности-подтипа. В зависимости от того, все ли возможные сущности-подтипы включены в модель, категорийная связь является полной или неполной. Для создания категориальной связи необходимо, прежде всего, задать сущности и их атрибуты, не указывая первичный ключ для подтипов. Затем выбрать в палитре инструментов кнопку категориальной связи Complete Sub-category и щелкнуть сначала по родовому предку, а затем по первому потомку. После этого щелкнуть по символу категории, а потом по следующему потомку. Для редактирования категориальной связи необходимо выделить символ связи и в контекстном меню выбрать пункт Subtype Relationship. В окне редактора следует указать атрибут-дискриминатор (список Discriminator Attribute Choice), а также установить тип категории – полная (Complete) и неполная (Incomplete). Имя дискриминатора появится в диаграмме рядом с символом связи (см. рис. 1.10). Рис. 1.10. Категориальная связь Контрольное задание Создайте средствами редактора ERwin информационную модель в нотации IDEF1X системы по Вашему выбору. Контрольные вопросы 1. Что такое бизнес-процесс? 2. Каковы основные компоненты функциональной модели? 3. Что представляют собой методологии функционального моделирования? 4. Что такое сценарии? 5. Какие виды сценариев Вы знаете? 6. В чем отличие серверных элементов управления от клиентских? 7. Какие технологии программирования серверных сценариев Вы знаете? В чем их отличие? Содержание и оформление отчета Отчет должен содержать: титульный лист, название и цель работы; вариант задания; скриншоты результатов работы; выводы по работе. Лабораторная работа № 4 Объектно-ориентированное моделирование и построение моделей с помощью объектно-ориентированной CASE-системы (Rational Rose, Aris, Microsoft Office Visio 2007). Построение диаграммы прецедентов. Построение диаграммы взаимодействия. Цель работы Целью работы является изучение методологии объектно-ориентированного анализа и проектирования программных систем в среде Rational Software на этапах создания динамических моделей программной системы посредством построения диаграмм поведения с использованием пакета Rational Rose. Ознакомиться с методологией моделирования прецедентов на основе языка UML |