Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6 сем / 1 / преподское / Пример_оформления _Зад_1_1.docx
Скачиваний:
3
Добавлен:
29.03.2025
Размер:
1.86 Mб
Скачать

1.2. Разработка функциональных требований к подсистеме

В директории UseCase Model создадим диаграмму вариантов использования с именем Работа с классификатором изделий.

На рис. 7 приведена диаграмма ВИ Работа c классификатором.

Рис. 7. Диаграмма ВИ для задачи Работа с классификатором

1.3. Разработка модели классов

Модель классов для ВИ Работа с классификатором представлена на рис. 8.

Рис. 8. Модель классов для ВИ Ведение классификатора

Описание компонентов диаграммы.

Структура классификации описывается с использованием метакласса Класс изделия. Зависимости между классами моделируются ассоциацией Потомки. В качестве атрибутов метакласса выделены Имя и Обозначение. Введено несколько операций метакласса:

Создать() – создает новый класс;

Выбрать родителя() – позволяет выбрать родительский класс для текущего класса;

Изменить родителя() – позволяет сметить родителя у класса;

Изменить порядок() – позволяет изменить порядок классов потомков при выводе.

1.4. Разработка модели хранения в среде субд данных классификатора изделий

1. Разработка erd

Первоначально опишем модель хранения в виде ERD. Для этого воспользуемся графическим редактором Visio. Модель Database.Entity relationship.

Рис. 9. ERD для задачи Работа с классификатором изделий

Сущность CHEM_CLASS позволяет хранить данные о структуре классификатора. Поле BASE_EI позволяет указать единицу измерения количества изделия. Поле MAIN_CLASS позволяет описать дерево классификации изделий.

Сущность PROD позволяет вести каталог изделий. Поле ID_CLASS позволяет указать терминальный класс изделия. Поля SHORT_NAME, NAME позволяют указать обозначение и имя изделия.

2. Создание базы данных

В соответствии с документом ( файл Создание и настройка Базы данных Firebird 2.docx) создаем базу данных LAB1372_01.FDB в директории D:\DUB\LETI\IS_LETI:

Рис. 10. Регистрация базы данных в IBexpert

Регистрируем базу данных в BDE:

Рис. 11. Регистрация базы данных в BDE

3. Подготовка скриптов метаданных

Таблицы, первичные и внешние ключи, генераторы.

Для каждой сущности создаем таблицы с описанием полей.

/* Единицы измерения*/

/* Создание таблицы*/

CREATE TABLE EI (

ID_EI INTEGER NOT NULL,

SHORT_NAME VARCHAR(10),

NAME VARCHAR(50)

);

/* Добавление поля*/

alter TABLE EI

add CODE varchar(15);

/* Объявление первичного ключа*/

ALTER TABLE EI ADD PRIMARY KEY (ID_EI);

/* Объявление генератора для генерации значения идентификатора*/

CREATE GENERATOR EI_GEN;

/* Создание процедуры для вызова генератора*/

create procedure GEN_ID_EI

returns (

ONEW integer)

as

begin

/*функция: возвращает новый уникальный идентификатор oNew*/

oNew=GEN_ID(EI_GEN,1); /*вызов генератора*/

suspend;

end

/* Пример вызова генератора

select oNew from GEN_ID_EI

into :vId; . */

Пример представления метаданных таблицы в «IBexpert» представлен на рис. 12.

Рис. 12. Пример просмотра метаданных таблицы

/*Классы изделия*/

CREATE TABLE CHEM_CLASS (

SHORT_NAME VARCHAR(10),

ID_CLASS INTEGER NOT NULL,

NAME VARCHAR(25),

MAIN_CLASS INTEGER,

BASE_EI INTEGER

);

/***********************Первичный ключ *******************************/

ALTER TABLE CHEM_CLASS ADD PRIMARY KEY (ID_CLASS);

/*******Внешний ключ для указания единицы измерения количества *********/

ALTER TABLE CHEM_CLASS ADD FOREIGN KEY (BASE_EI) REFERENCES EI (ID_EI);

/*******Внешний ключ для указания отношения конкретизации *********/

ALTER TABLE CHEM_CLASS ADD FOREIGN KEY (MAIN_CLASS) REFERENCES CHEM_CLASS (ID_CLASS);

/*******Генератор для классификатора *********/

CREATE GENERATOR CHEM_CLASS_GEN;

/*******Процедура для вызова генератора Классификатора *********/

create procedure GEN_ID_CLASS

returns (

ONEW integer)

as

begin

/*функция: возвращает новый уникальный идентификатор*/

oNew=GEN_ID(CHEM_CLASS_GEN,1); /*вызов генератора*/

suspend;

end

/*******Пример вызова генератора

select oNew from GEN_ID_CLASS

into :vId; *********/

Спецификация таблицы в «IBexpert» приведена на рис. 13.

Рис.13. Пример просмотра таблицы PROD

/********************************************************************/

/********************************************************************/

/*Продукция (Изделия)*/

CREATE TABLE PROD (

ID_PROD INTEGER NOT NULL,

SHORT_NAME VARCHAR(50),

NAME VARCHAR(250),

ID_CL INTEGER NOT NULL

);

ALTER TABLE PROD ADD PRIMARY KEY (ID_PROD);

/************ Объявление внешнего ключа для указания класса изделия ***********/

ALTER TABLE PROD ADD FOREIGN KEY (ID_CL) REFERENCES CHEM_CLASS (ID_CLASS);

/*************************Объявление генератора*************************/

CREATE GENERATOR PROD_GEN;

create procedure GEN_ID_PROD

returns (

ONEW integer)

as

begin

/*функция: возвращает новый уникальный идентификатор*/

oNew=GEN_ID(PROD_GEN,1); /*вызов генератора*/

suspend;

end

/**************************************************************************/

/*******Пример вызова генератора

select oNew from GEN_ID_PROD

into :vId; *********/

/************************** Триггеры ********************************/

/************* Обнуление ссылок на класс в PROD и CHEM_CLASS********/

CREATE TRIGGER TD_CHEM_CLASS FOR CHEM_CLASS BEFORE DELETE AS

/********************Обнуление ссылок на единицу измерения****************/

CREATE TRIGGER TD_EI FOR EI BEFORE DELETE AS