Проектирование системы обеспечения продукцией в ERwin
Для построения инфологической ER-модели (логической и физической) я использовала CASE-средства ERwin. ERwin - средство концептуального моделирования БД, использующее методологию IDEF1X. ERwin реализует проектирование схемы БД, генерацию ее описания на языке целевой СУБД (ORACLE, Informix, Ingres, Sybase, DB/2, Microsoft SQL Server, Progress и др.) и реинжиниринг существующей БД. ERwin выпускается в нескольких различных конфигурациях, ориентированных на наиболее распространенные средства разработки приложений 4GL. Версия ERwin/OPEN полностью совместима со средствами разработки приложений PowerBuilder и SQLWindows и позволяет экспортировать описание спроектированной БД непосредственно в репозитории данных средств. Для ряда средств разработки приложений (PowerBuilder, SQLWindows, Delphi, Visual Basic) выполняется генерация форм и прототипов приложений. Сетевая версия Erwin ModelMart обеспечивает согласованное проектирование БД и приложений в рамках рабочей группы. ERwin имеет два уровня представления модели - логический и физический. Логический уровень - это абстрактный взгляд на данные, на нем данные представляются так, как выглядят в реальном мире, и могут называться так, как они называются в реальном мире, например «Клиенты», «Города» или «Улицы» [Приложение 7]. Объекты модели, представляемые на логическом уровне, называются сущностями и атрибутами. Логический уровень модели данных может быть построен на основе другой модели, например на основе модели процессов. Логический уровень модели данных является универсальным и никак не связан с конкретной реализацией СУБД. Физический уровень модели данных, напротив, зависит от конкретной СУБД, фактически являясь отображением системного каталога. В физическом уровне модели содержится информация о всех объектах базы данных. Поскольку стандартов на объекты базы данных не существует, физический уровень модели зависит от конкретной реализации СУБД. Следовательно, одному и тому же логическому уровню модели могут соответствовать несколько разных физических уровней различных моделей. Если на логическом уровне модели не имеет большого значения, какой конкретно тип данных у атрибута (хотя и поддерживаются абстрактные типы данных), то на физическом уровне модели важно описать всю информацию о конкретных физических объектах - таблицах, колонках, индексах, процедурах и т. д. Разделение модели данных на логический и физический уровни позволяет решить несколько важных задач.
На физическом уровне объекты базы данных могут называться так, как того требуют ограничения СУБД. На логическом уровне можно этим объектам дать синонимы - имена более понятные неспециалистам, в том числе на кириллице и с использованием специальных символов. ERwin позволяет создавать модели трех типов: модель, имеющую только логический уровень; модель, имеющую только физический уровень; модель, имеющую как логический уровень, так и физический уровень. Создание модели данных, начинается с создания логического уровня. После описания логического уровня выбирается СУБД. В модели, имеющей оба уровня (логический и физический), ERwin автоматически создаст соответствующую физическую модель [Приложение 8]. Это означает, что каждому объекту логического уровня соответствует объект физического, например каждой сущности соответствует таблица. Модель, имеющая только логический уровень, может быть синхронизирована с несколькими моделями, имеющими только физический уровень. Это позволяет эффективно разрабатывать гетерогенные ИС. На основе одной логической модели можно создавать несколько физических, соответствующих СУБД разных производителей (например, Oracle, Informix, MS SQLServer, Sybase и др.). Для генерации программного кода создания базы данных выбираем средства генерации приложений и формируем отчет.
Автоматически генерируется программный код для создания базы данных на языке FoxPro: CREATE TABLE Заказы (Номер_клие Numeric(8,0) NOT NULL, Дата_заказ Date NULL, Номер_Зака Character(20) NOT NULL, Таб№сотруд Numeric(8,0) NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKE_1 ON Заказы (Номер_Зака ASC, Дата_заказ ASC, Номер_клие ASC); CREATE INDEX XIF1Диагно ON Заказы (Номер_клие ASC); CREATE INDEX XIF2Диагно ON Заказы (Таб№сотруд ASC); CREATE INDEX ON Заказы (r_i_f_l_ag); CREATE TABLE Клиенты (Номер_клие Numeric(8,0) NOT NULL, Фамилия Character(18) NULL, Имя Character(10) NULL, Отчество Character(20) NULL, Дата_рожде Date NULL, Место_рожд Date NULL, Адрес Character(20) NULL, Дата_регис Date NULL, Телефон_до Numeric(8,0) NULL, Телефон_ра Numeric(8,0) NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKТранспо ON Клиенты (Номер_клие ASC); CREATE INDEX ON Клиенты (r_i_f_l_ag); CREATE TABLE Консульт (Номер_Зака Character(20) NOT NULL, Номер_клие Numeric(8,0) NOT NULL, Маркетинго Character(100) NULL, Финанс_кон Character(200) NULL, Дата_заказ Date NOT NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKДиагнос ON Консульт (Номер_Зака ASC, Номер_клие ASC, Дата_заказ ASC); CREATE INDEX ON Консульт (r_i_f_l_ag); CREATE TABLE Маркетин (Номер_клие Numeric(8,0) NOT NULL, Номер_Зака Numeric(8,0) NOT NULL, Результат_ Character(20) NOT NULL, Результат_ Character(50) NOT NULL, Дата_заказ Date NOT NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKДиагнос ON Маркетин (Номер_клие ASC, Номер_Зака ASC, Дата_заказ ASC); CREATE INDEX ON Маркетин (r_i_f_l_ag); CREATE TABLE Сотрудни (Таб№сотруд Numeric(8,0) NOT NULL, Фамилия Character(20) NULL, Имя Character(20) NULL, Отчество Character(20) NULL, Дата_рожде Date NULL, Паспорт Character(20) NULL, Рабочий_те Numeric(8,0) NULL, Домашний_т Numeric(8,0) NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKСотрудн ON Сотрудни (Таб№сотруд ASC); CREATE INDEX ON Сотрудни (r_i_f_l_ag); CREATE TABLE Управлен (Подбор_кад Character(100) NULL, Номер_Зака Character(20) NOT NULL, Дата_заказ Date NOT NULL, Номер_клие Numeric(8,0) NOT NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKE_5 ON Управлен (Номер_Зака ASC, Дата_заказ ASC, Номер_клие ASC); CREATE INDEX ON Управлен (r_i_f_l_ag); CREATE TABLE Управлен (Дата_заказ Date NOT NULL, Номер_Зака Character(20) NOT NULL, Номер_клие Numeric(8,0) NOT NULL, Результат_ Character(100) NULL, R_i_f_l_ag Numeric(8)); CREATE UNIQUE INDEX XPKДефекто ON Управлен (Номер_Зака ASC, Дата_заказ ASC, Номер_клие ASC); CREATE INDEX ON Управлен (r_i_f_l_ag); Данный программный код используется CASE-средством для автоматической генерации структуры базы данных на физическом носителе информации. Создание базы данных с помощью CASE-средств позволяет избежать множества ошибок и значительно сократить трудовые затраты разработчиков.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|