Определение атрибутов сущностей

Создание проекта средствами PowerDesigner

 

Рассмотрим создание модели ИС на примере БД «Премьер». В качестве CASE-средства будем использовать Power Designer фирмы Sybase.

 

База данных «Премьер»

 

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

 

 

Рисунок 1.4.1 - Модель данных для строительной компании «Премьер»

Численность бригад меняется в зависимости от размера здания и предъявляемых к нему требований. Следовательно, бригады составляются исходя из требований конкретного здания. Кроме того, для каждой бригады назначается бригадир. Рабочий может возглавлять одну бригаду и работать в другой простым рабочим.

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

Объектное множество ТИП МАТЕРИАЛА представляет типы материалов. Для каждого здания требуется несколько типов материалов, и каждый тип материалов используется в нескольких зданиях. Обратите внимание, что атрибут «Адрес» относится только к множеству ЗДАНИЕ. Атрибут «Адрес» является уникальным для конкретного здания и может использоваться в качестве ключа для отношения ЗДАНИЕ (рисунок 1.4.1).

Создание концептуально модели

 

Для создания концептуальной модели БД запустите программу PowerDesigner и выберите из меню File – New, в списке раскрывшегося окна диалога New выберите пункт Conceptual Data Model (рисунок 1.4.2).

 

 

Рисунок 1.4.2 - Окно диалога выбора типа модели

 

Определите свойства создаваемой модели, которые используются для ее идентификации, описания и отображения в отчетах. Для этого выполните команду Model - Model Properties... Откроется окно диалога Model Properties. Задайте в нем наименование (Name) и идентификатор (PREMIER) модели, как показано на рисунке 1.4.3.

Кроме этого, вы можете указать автора модели, используемый язык, версию модели, ввести краткое и подробное описание, аннотацию.

 

 

 

Рисунок 1.4.3 - Определение свойств модели

 

Создание сущностей

 

Для создания сущности выберите на панели элементов значок с изображением прямоугольника, содержащего в верхней части горизонтальную линию , и перенесите его в область модели. Создастся прямоугольник для новой сущности, которая пока содержит только наименование. Для определения свойств сущности сделайте двойной щелчок на изображении прямоугольника. Откроется окно диалога Entity Properties. Перейдите на вкладку General и введите наименование, идентификатор и краткое описание сущности (рисунок 1.4.4). Подробное описание вводится в поле редактирования на вкладке Notes. При совместной разработке модели информационной системы вкладка Annotation может использоваться для замечаний и комментариев по поводу сущности. Определение атрибутов сущности выполняется на вкладке Attributes. Для определения бизнес-правил (ограничений) сущности щелкните на кнопке Rules и в открывшемся окне диалога выберите одно из ранее созданных правил.

 

Создание доменов

Домены являются аналогами пользовательских типов в реляционных БД и могут использоваться для указания типов атрибутов сущностей. Для создания домена выполните команду Model – Domains. Откроется окно диалога List of Domains, которое содержит таблицу со списком доменов модели (рисунок 1.4.5).

 

 

Рисунок 1.4.4 - Определение свойств сущности

 

 

Рисунок 1.4.5 - Окно диалога со списком доменов List Of Domains

 

Рассмотрим создание домена идентификаторов элементов списка, который будет использоваться при определении таких атрибутов, как WORKER_ID (идентификатор работника) или BLDG_ID (идентификатор здания). Тип данных создаваемого домена - четырехзначное число (фактически это подтип стандартного числового типа данных Number) и его значение по умолчанию равно нулю. Для создания нового домена введите в столбцы Name и Code таблицы наименование и идентификатор домена. Для определения типа данных перейдите в столбец Data Type и щелкните на кнопке с многоточием, расположенной с право от ячейки. Откроется окно диалога Standard Data Types, в котором можно выбрать требуемый тип данных. В данном случае необходимо выбрать тип Number и задать в поле Length длину 4.

Для определения значения по умолчанию щелкните на кнопке Properties расположенной в правом верхнем углу окна List of Domains и в раскрывшемся окне диалога Domain Properties прейдите на вкладку Standard Checks (рисунок 1.4.6). В группе полей Values определите минимальное и максимальное значения, а также значение по умолчанию. Здесь же вы можете задать формат, единицу измерения и список допустимых значений домена. Для определения бизнес-правил домена щелкните на вкладке Rules и выберите одно из ранее созданных правил. Для ввода подробного описания и аннотации щелкните в окне диалога Domain Properties по вкладке Notes.

 

 

Рисунок 1.4.6 - Определение ограничений домена

 

Определение атрибутов сущностей

 

Для определения атрибутов сущности дважды щелкните на изображении сущности и в раскрывшемся окне свойств сущности щелкните по вкладке Attributes (рисунок 1.4.7).

В таблице для каждого атрибута задаются имя, идентификатор и тип данных, который может быть одним из базовых типов или доменом, созданным пользователем. В этой же таблице устанавливаются флаг идентифицирующего атрибута и признак запрета пустого значения. Для ввода относящихся к атрибуту ограничений щелкните на кнопке Properties и в раскрывшемся окне диалога прейдите на вкладку Standard Checks (по аналогии с рисунком 1.4.6) и задайте требуемые значения в окне диалога.

Для сущности WORKER первые три атрибута имеют идентификаторы WORKER_ID (идентификатор работника), NAME (имя) и HRLY_RATE (недельная зарплата) соответственно. Для атрибута WORKER_ID выберите из списка Domain созданный ранее домен IDENT. При этом автоматически определяются тип данных и значение по умолчанию. Атрибут WORKER_ID является идентифицирующим атрибутом (первичным ключом), так как однозначно определяет работника, поэтому для него установите флаг в столбце P (PrimaryKey). Обратите внимание, что при этом автоматически устанавливается флаг запрета пустых значений M. Для атрибутов BLDG_TYPE (тип здания) и STATUS (статус) сущности BUILDING (здание) необходимо определить значения по умолчанию: 'Офис' и 1 соответственно.

 

 

Рисунок - 1.4.7 Определение атрибутов сущности

 

Кроме того, они имеют ограничения на значения атрибутов. Атрибут BLDG_TYPE может содержать только значения из множества ('Офис'. 'Склад', 'Магазин'. 'Жилой дом'), а значение столбца STATUS может быть от 1 до 3.