2. Анализ предметной области
2.1. Термины и определения предметной области
Товар – товар, приобретенный фирмой у поставщика и предназначенный для перепродажи.
Материалы – комплектующие и расходные материалы, предназначенные для использования в производстве для изготовления основной продукции. Могут иметь широкий спектр дополнительных свойств, которые должны учитываться в информационной системы для того, чтобы фирма имела возможность в наиболее полной мере удовлетворить требования и пожелания клиентов.
Контрагент –
Клиент –
Готовая продукция –
Бракованная продукция –
Бракованный материал –
Учетная цена –
Базовая единица измерения –
Склад –
2.2. Функциональная модель существующей технологии
обработки данных и упраления
2.3. Математические модели предметной области
Модели расписания в данной версии не рассатриваются
2.4. Основные информационные объекты предметной области
2.5. Выбор и обоснование функциональных возможностей
проектируемой системы
2.6. Выбор и обоснование алгоритмов решения
3. Разработка функциональной модели проектируемой системы(ФМ)
Схема внешних информационных связей системы
Схема детализации действия Работа с расписание
Схема потоков данных действия Работа с расписанием
Схема классификации объекта Пользователи_расписания
Схема классификации объекта Помещение
Схема классификации данных Запросы_к_расписанию
Фирма : СПбГЭТУ D001.Dub
проект: Расписание занятий индекс документа
тип документа: Схема внешних информационных связей
элемент: действие Работа_с_расписанием w 01-РабР
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D002..Dub
проект: Расписание занятий индекс документа
тип документа: Схема детализации действия
элемент: действие Работа_с_расписанием w 01-РабР
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D003.Dub
проект: Расписание занятий индекс документа
тип документа: Схема потоков данных
элемент: действие Работа_с_расписанием w 01-РабР
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D004.Dub
проект: Расписание занятий индекс документа
тип документа: Схема классификации
элемент: объект Пользователи_расписания об 01-ПолРасп
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D005.Dub
проект: Расписание занятий индекс документа
тип документа: Схема классификации
элемент: объект Помещение об Пом
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D006.Dub
проект: Расписание занятий индекс документа
тип документа: Схема классификации
элемент: данное Запросы_к_расписанию д ЗапрРасп
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D007.Dub
проект: Расписание занятий индекс документа
тип документа: Схема детализации
элемент: данное Справки_по_расписанию д СпрРасп
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Фирма : СПбГЭТУ D008.Dub
проект: Расписание занятий индекс документа
тип документа: Схема классификации
элемент: данное Справки_по_расписанию д СпрРасп
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
группа Расписание
версия
группа Расписание01;
Расписание02
end
Модель данных для группы Расписание01 будем строить с использованием объекта Семестр. В качестве недостатков данной модели выделим следующее:
-
Существенные трудности с коррекцией расписания - расписание должно корректироваться непосредственно в момент ввода изменений в действие, нельзя заранее планировать изменения
-
Элементы составного ключа (Семестр,Четность_недели, День_недели, Учебная_пара ) загромождают схему данных
группа Расписание01
использует
атрибуты
01- Место_проведения_занятий_студента_по_расписанию
вход
объект
Студент ;
Семестр ;
Четность_недели ;
День_недели ;
Учебная_пара ; ; ;
выход01
объект Помещение ; ; ; ;
02- Группа_ студента
вход
объект
Студент ; ; ;
выход1
объект
Группа
.....................................
Фирма : СПбГЭТУ D010.Dub
проект: Расписание занятий индекс документа
тип документа: Схема концептуальной модели данных
элемент: группа Расписание01 гр_об Расп01
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Спецификация атрибутов
№ |
Обозначение |
Наименование атрибута |
1 |
|
Место проведения занятий студента по расписанию |
2 |
|
Группа студента |
3 |
|
Студенты группы |
4 |
|
Место проведения занятий группы по расписанию |
5 |
|
Дисциплина для группы по расписанию |
6 |
|
Преподаватель для группы по расписанию |
7 |
|
Вид занятий для группы по расписанию |
8 |
|
Место проведения занятий преподавателя по расписанию |
9 |
|
Дисциплина для преподавателя по расписанию |
10 |
|
Вид занятий для преподавателя по расписанию |
11 |
|
Группы для преподавателя по расписанию |
12 |
|
Преподаватель для группы по видам занятий |
Второй вариант модели данных строим заменяя объект Семестр на объект ДатаВремя и вводя новый объект Точка_расписания.
объект Точка_расписания
состав
key №_точки_расписания ; ;
atr Четность_недели_ТР;
День_недели_ТР ;
Учебная_пара_ТР
end
Параметр ключа Вводится_с имеет тип ДатаВремя и указывает дату, с которой действует строка расписания. Таким образом в течение семестра допускается планирование изменений расписания и ввод их в действие в соответствие с указанной датой ввода.
Фирма : СПбГЭТУ D011.Dub
проект: Расписание занятий индекс документа
тип документа: Схема концептуальной модели данных
элемент: группа Расписание02 гр_об Расп02
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Спецификация атрибутов
№ |
Обозначение |
Наименование атрибута |
1 |
|
Место проведения занятий студента по расписанию |
2 |
|
Группа студента |
3 |
|
Студенты группы |
4 |
|
Место проведения занятий группы по расписанию |
5 |
|
Дисциплина для группы по расписанию |
6 |
|
Преподаватель для группы по расписанию |
7 |
|
Вид занятий для группы по расписанию |
8 |
|
Место проведения занятий преподавателя по расписанию |
9 |
|
Дисциплина для преподавателя по расписанию |
10 |
|
Вид занятий для преподавателя по расписанию |
11 |
|
Группы для преподавателя по расписанию |
12 |
|
Преподаватель для группы по видам занятий |
Фирма : СПбГЭТУ D012.Dub
проект: Расписание занятий индекс документа
тип документа: Схема концептуальной модели данных
элемент: группа Нормативные_данные гр_об НормД
лист 01 листов 02 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
об Точка_расписания об Учебная_пара
Спецификация атрибутов объекта Точка_расписания
№ |
Обозначение |
Наименование атрибута |
13 |
|
День_недели_ТР |
14 |
|
Четность_недели_ТР |
15 |
|
Учебная_пара_ТР |
Спецификация атрибутов объекта Учебная_пара
№ |
Обозначение |
Наименование атрибута |
16 |
|
Время_начала_учебной пары |
об Студенты об Сотрудники
Спецификация атрибутов объекта Студенты
№ |
Обозначение |
Наименование атрибута |
17 |
|
Учебная_группа_студента |
18 |
|
Фамилия |
19 |
|
Имя |
20 |
|
Отчество |
Фирма : СПбГЭТУ D013.Dub
проект: Расписание занятий индекс документа
тип документа: Схема концептуальной модели данных
элемент: группа Нормативные_данные гр_об НормД
лист 02 листов 02 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Спецификация атрибутов объекта Сотрудники
№ |
Обозначение |
Наименование атрибута |
21 |
|
Фамилия |
22 |
|
Имя |
23 |
|
Отчество |
24 |
|
Должность |
об Дисциплина об Помещение
Спецификация атрибутов объекта Дисциплина
№ |
Обозначение |
Наименование атрибута |
21 |
|
Наименование |
Спецификация атрибутов объекта Помещение
№ |
Обозначение |
Наименование атрибута |
26 |
|
Назначение_помещения |
27 |
|
............................................................... |
Избыточные связи
1-Место_проведения_занятий_студента_по_расписанию
1-Место_проведения_занятий_студента_по_расписанию(
@Код_помещения,
№_зач_книжки,
№_точки_расписания,
ДатаВремя)
=
4-Место_проведения_занятий_группы_по_расписанию(
@Код_помещения,
2-Группа_студента(
@№_гоуппы,
№_зач_книжки),
№_точки_расписания,
ДатаВремя)
3-Студенты_группы
3-Студенты_группы(
@№_зач_книжки,
№_группы)
=
2-Группа_студента(
№_группы,
@№_зач_книжки)
6-Преподаватель_для_группы_по_расписанию
6- Преподаватель_для_группы_по_расписанию(
@Таб_номер,
№_группы,
№_точки_расписания,
ДатаВремя)
=
12- Преподаватель_для_группы_по_видам_занятий(
@Таб_номер,
№_группы,
5- Дисциплина_для_группы_по_расписанию(
@Код_дисциплины,
№_группы,
№_точки_расписания,
ДатаВремя),
7- Вид_занятий_для_группы_по_расписанию(
@Код_вида_занятий,
№_группы,
№_точки_расписания,
ДатаВремя))
8- Место_проведения_занятий_преподавателя_по_расписанию
8- Место_проведения_занятий_преподавателя_по_расписанию(
@Код_помещения,
Таб_номер,
№_точки_расписания,
ДатаВремя)
=
4- Место_проведения_занятий_группы_по_расписанию(
12- Преподаватель_для_группы_по_видам_занятий(
Таб_номер,
@№_группы,
ДатаВремя) ,
№_точки_расписания,
ДатаВремя)
9-Дисциплина_для_преподавателя_по_расписанию
9-Дисциплина_для _преподавателя_по_расписанию (
@Код_дисциплины,
Таб_номер,
№_точки_расписания,
ДатаВремя)
=
5- Дисциплина_для_группы_по_расписанию(
12- Преподаватель_для_группы_по_видам_занятий(
Таб_номер,
@№_группы,
ДатаВремя) ,
№_точки_расписания,
ДатаВремя)
10-Вид_занятий_для_преподавателя_по_расписанию
10-Вид_занятий_для_преподавателя_по_расписанию(
@Код_вида_занятий,
Таб_номер,
№_точки_расписания,
ДатаВремя)
=
7- Вид_занятий_для_группы_по_расписанию(
12- Преподаватель_для_группы_по_видам_занятий(
Таб_номер,
@№_группы,
ДатаВремя) ,
№_точки_расписания,
ДатаВремя)
11- Группы_для_преподавателя_по_расписанию
11- Группы_для_преподавателя_по_расписанию(
@№_группы,
Таб_номер,
№_точки_расписания,
ДатаВремя)
=
5- Дисциплина_для_группы_по_расписанию(
@12- Преподаватель_для_группы_по_видам_занятий(
Таб_номер,
@№_группы,
ДатаВремя) ,
№_точки_расписания,
ДатаВремя)
Фирма : СПбГЭТУ D014.Dub
проект: Расписание занятий индекс документа
тип документа: Схема нормализованной модели данных
элемент: группа Расписание02 гр_об Расп02
шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
Спецификация удаляемых атрибутов
№ |
Обозначение |
Наименование атрибута |
1 |
|
Место проведения занятий студента по расписанию |
3 |
|
Студенты группы |
6 |
|
Преподаватель для группы по расписанию |
8 |
|
Место проведения занятий преподавателя по расписанию |
9 |
|
Дисциплина для преподавателя по расписанию |
10 |
|
Вид занятий для преподавателя по расписанию |
11 |
|
Группы для преподавателя по расписанию |
Спецификация атрибутов объекта Расписание
№ |
Обозначение |
Наименование атрибута |
4 |
|
Место проведения занятий группы по расписанию |
5 |
|
Дисциплина для группы по расписанию |
7 |
|
Вид занятий для группы по расписанию |
Спецификация атрибутов объекта Преподаватели_по_видам_занятий
№ |
Обозначение |
Наименование атрибута |
12 |
|
Преподаватель для группы по видам занятий |
Фирма : СПбГЭТУ D014.Dub
проект: Расписание занятий индекс документа
тип документа: Спецификации реляционных таблиц
элемент: группа Расписание02 гр_об Расп02
лист 01 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
table POINT_TIME_TABLE - Точка_расписания
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
NUM_POINT |
smallint |
1 |
№_точки расписания |
№_точки_расписания |
2 |
CHET_WEEK |
smallint |
- |
Четность недели_Т_Р |
Четность_недели |
3 |
DAY_OF_WEEK |
smallint |
- |
День_недели_Т_Р |
Номер_дня_недели |
4 |
NUM_LESSON |
smallint |
- |
Учебная_пара_Т_Р |
№_учебной пары |
table EMPLOYEE - Сотрудник
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
TAB_NUM |
integer |
1 |
№_точки расписания |
№_точки_расписания |
2 |
FAMILY |
varchar(40) |
- |
Фамилия |
Имя |
3 |
NAME |
varchar(40) |
- |
Имя |
Имя |
4 |
PATRONYMIC |
varchar(40) |
- |
Отчество |
Имя |
5 |
RANK |
smallint |
|
Ученое_звание |
Код_ученого_звания |
table LESSON_TIME - Учебная_пара
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
NUM_LESSON |
smallint |
1 |
№_учебной_пары |
№_учебной_пары |
2 |
LES_TIME |
DATE |
- |
Время_начала |
Время |
Фирма : СПбГЭТУ D014.Dub
проект: Расписание занятий индекс документа
тип документа: Спецификации реляционных таблиц
элемент: группа Расписание02 гр_об Расп02
лист 02 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
table COURSE_OF_LECTURES - Учебная_дисциплина
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
CODE_COURSE |
smallint |
1 |
Код_дисциплины |
Код_дисциплины |
2 |
NAME_COURSE |
varchar(40) |
- |
Наименование_дисциплины |
Имя |
table ROOM - Помещение
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
CODE_ROOM |
char(6) |
1 |
Код_помещения |
Код_помещения |
2 |
KIND_ROOM |
smallint |
- |
Назначение_помещения |
Код_назначения_помещения |
table KIND_ROOM - Назначение_помещений
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
CODE_KIND |
smallint |
1 |
Код_назначения |
Код_назначения_помещения |
2 |
NAME_KIND |
varchar(40) |
- |
Имя_назначения |
Имя |
table TIACHER_KIND_LESSON - Преподаватель_по_дисциплине
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
NUM_GROUP |
smallint |
1 |
№_учебной_группы |
№_учебной_группы |
2 |
TAB_NUM |
integer |
- |
Преподаватель_по_дисциплине |
Табельный_номер |
3 |
CODE_COURSE |
smallint |
2 |
Дисциплина |
Код_дисциплины |
4 |
KIND_LESSON |
smallint |
3 |
Вид_занятий |
Код_вида_занятий |
5 |
BEGIN_DATE |
date |
4 |
Действует_с |
ДатаВремя |
Фирма : СПбГЭТУ D014.Dub
проект: Расписание занятий индекс документа
тип документа: Спецификации реляционных таблиц
элемент: группа Расписание02 гр_об Расп02
лист 03 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
table TIME_TABLE_LESSON - Расписание
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
NUM_GROUP |
smallint |
1 |
№_учебной_группы |
№_учебной_группы |
2 |
NUM_POINT |
smallint |
2 |
Точка_расписания |
№_точки_расписания |
3 |
LESSON_ROOM |
char(6) |
- |
Место_занятий_по_расписанию |
Код_помещения |
4 |
CODE_COURSE |
smallint |
- |
Дисциплина_по_расписанию |
Код_дисциплины |
5 |
KIND_LESSON |
smallint |
- |
Вид_занятий_по_расписанию |
Код_вида_занятий |
6 |
BEGIN_DATE |
date |
3 |
Действует_с |
ДатаВремя |
table LIST - Справочники
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
CODE_TYPE_LIST |
smallint |
1 |
Код_вида_элемента |
Код_вида_элемента |
2 |
NUM_EL_LIST |
smallint |
2 |
№_элемента |
№_элемента |
3 |
NAME_EL |
varchar(40) |
- |
Имя_элемента |
Имя |
4 |
LONG_CODE |
smallint |
- |
Код элемента |
Глобальный код |
table TYPE_LIST - Типы_справочников
№ |
Идентификатор поля |
Формат |
Эл-т ключа |
Атрибут |
Тип атрибута |
1 |
CODE_LIST |
smallint |
1 |
Код_списка |
Код_списка |
2 |
FORMAT_WR |
smallint |
- |
Длина_имени |
Количество_байт |
3 |
NAME_LIST |
varchar(40) |
- |
Имя_элемента |
Имя |
Фирма : СПбГЭТУ D015.Dub
проект: Расписание занятий индекс документа
тип документа: SQL-тексты
элемент: группа Расписание02 гр_об Расп02
лист 01 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
create table TYPE_LIST (
CODE_LIST smallint not null,
FORMAT_WR smallint,
NAME_LIST varchar(40),
primary key (CODE_LIST));
create table LIST (
LONG_CODE smallint not null,
CODE_TYPE_LIST smallint not null,
NUM_EL_LIST smallint not null,
NAME_EL varchar(40),
primary key (LONG_CODE));
create table POINT_TIME_TABLE(
NUM_POINT smallint not null,
CHET_WEEK smallint not null,
DAY_OF_WEEK smallint not null,
NUM_LESSON smallint not null,
primary key (NUM_POINT) );
create table EMPLOYEE(
TAB_NUM integer not null,
FAMILY varchar(40) not null,
NAME varchar(40),
PATRONIMIC varchar(40),
RANK smallint not null,
primary key (TAB_NUM));
create table LESSON_TIME(
NUM_LESSON smallint not null,
LES_TIME date not null,
primary key (NUM_LESSON));
create table COURSE_OF_LECTURES(
CODE_COURSE smallint not null,
NAME_COURSE varchar(40) not null,
primary key (CODE_COURSE));
Фирма : СПбГЭТУ D015.Dub
проект: Расписание занятий индекс документа
тип документа: SQL-тексты
элемент: группа Расписание02 гр_об Расп02
лист 02 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
create table ROOM(
CODE_ROOM char(6) not null,
KIND_ROOM smallint not null,
primary key (CODE_ROOM));
create table TIACHER_KIND_LESSON(
NUM_GROUP smallint not null,
TAB_NUM integer not null,
CODE_COURSE smallint not null,
KIND_LESSON smallint not null,
BEGIN_DATE date not null,
primary key (NUM_GROUP, CODE_COURS, KIND_LESSON, BEGIN_DATE));
create table TIME_TABLE_LESSON(
NUM_GROUP smallint not null,
NUM_POINT smallint not null,
LESSON_ROOM char(6) not null,
CODE_COURSE smallint not null,
KIND_LESSON smallint not null,
BEGIN_DATE date not null,
primary key (NUM_GROUP, NUM_POINT, BEG_DATE));
create table ST_GROUP (
NUM_GROUP smallint not null);
alter table TIME_TABLE_LESSON
add constraint I_NUM_GROUP
foreign key(NUM_GROUP) references ST_GROUP(NUM_GROUP),
add constraint invalid_NUM_POINT
foreign key(NUM_POINT) references POINT_TIME_TABLE(NUM_POINT),
add constraint invalid_LESSON_ROOM
foreign key(LESSON_ROOM) references ROOM(CODE_ROOM),
add constraint invalid_CODE_COURSE
foreign key(CODE_COURSE) references COURSE_OF_LECTURES (CODE_COURSE),
Фирма : СПбГЭТУ D015.Dub
проект: Расписание занятий индекс документа
тип документа: SQL-тексты
элемент: группа Расписание02 гр_об Расп02
лист 03 листов 03 шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
add constraint invalid_KIND_LESSON
foreign key(KIND_LESSON) references LIST(LONG_CODE);
alter table TIACHER_KIND_LESSON
add constraint I_NUM_GROUP
foreign key(NUM_GROUP) references ST_GROUP(NUM_GROUP),
add constraint I_CODE_COURSE
foreign key(CODE_COURSE) references COURSE_OF_LECTURES (CODE_COURSE),
add constraint I_KIND_LESSON
foreign key(KIND_LESSON) references LIST(LONG_CODE);
Фирма : СПбГЭТУ D016.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: действие Работа_с_расписанием w РабР
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
w Раб_Р-Работа_с_расписанием
call
w ОбрЗапр-Обработка_запросов_к_расписанию;
ПТипЗапр-Подготовка_типовых_запросов;
ВедРасп-Ведение_расписания;
ВедНормД-Ведение_нормативных_данных
end
w ВедНормД-Ведение_нормативных_данных
call
w ВедСп-Ведение_списков;
ВедКатП-Ведение_каталога_помещений;
ВедКатС-Ведение_каталога_сотрудников;
ВедКатГр-Ведение_каталога_групп;
ВедКатДисц-Ведение_каталога_дисциплин
end
w ВедРасп-Ведение_расписания
call
w НовоеРаспр-
Формирование_нового_распределения_дисциплин_по_преподавателям;
ИзмРаспр-Планирование_изменений_распределения_дисциплин;
НовыйГр-Формирование_нового_графика_занятий;
ИзмГр-Планирование_изменений_графика
end
w ОбрЗапр-Обработка_запросов_к_расписанию
version
w Обработка_запросов_по_категориям_пользователей;
Обработка_с_формированием_типовых_запросов
end
Фирма : СПбГЭТУ D016.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: действие Работа_с_расписанием w РабР
лист 02 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
w Обработка_запросов_по_категориям_пользователей
own
cat 01-ОбрабПоКатПодьз
case
w Обработка_запросов_студентов ;
Обработка_запросов_преподавателей ;
Обработка_запросов_обсл_персонала
end
w Обработка_с_формированием_типовых_запросов
call
w Подготовка_типовых_запросов;
Предоставление_справок
end
w Предоставление_справок
call
w Выбор_типового_запроса;
Задание_фактических_параметров;
Исполнение_запроса
end
w Ведение_списков
call
w Объявить_список;
Удалить_список;
Переименовать_список;
Редактировать_список;
Выбрать_список;
Выбрать_элемент_списка;
Удалить_элемент_списка;
Добавить_элемент_списка
end
Фирма : СПбГЭТУ D016.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: действие Работа_с_расписанием w РабР
лист 03 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
w Предоставление_справок_по_расписанию
call
w Выбор_типа_справки;
Ввод_параметров_запроса;
Обрабаотка_запроса
end
Фирма : СПбГЭТУ D017.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма Работа_с_расписанием frm FMain
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
frm FMain- Работа_с_расписанием
own
menu MainMenu
own
pos MM01-Нормативные_данные
own
pos P0101-Списки;
P0102-Помещения;
P0103-Сотрудники;
P0104-Учебные_группы;
P0105-Учебные_дисциплины ; ; ; ;
MM02-Ведение_расписания
own
pos P0201-Новое_распределение_дисциплин;
P0202-Изменения_распределения_дисциплин;
P0203-Новый_график_занятий;
P0204-Изменения_графика ; ; ; ;
MM03-Типовые запросы
переход
форма FTypeQu-Подготовка_типовых_запросов ; ; ; ;
MM04-Справки_по_расписанию
переход
форма FExecQu-Справки_по_расписанию
end
pos P0101-Списки
переход
форма FList-Ведение_списков
выполняет
w Ведение_списков; ; ; ; ; ; ;
P0102-Помещения
переход
форма FRoom- Ведение_каталога_помещений
выполняет
w Ведение_каталога_помещений; ; ; ; ; ; ;
Фирма : СПбГЭТУ D016.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма Работа_с_расписанием frm FMain
лист 02 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
P0103-Сотрудники
переход
форма FEmployee-Ведение_каталога_сотрудников
выполняет
w Ведение_каталога_сотрудников; ; ; ; ; ; ;
P0104-Учебные_группы
переход
форма FGroup- Ведение_каталога_групп
выполняет
w Ведение_каталога_групп; ; ; ; ; ; ;
P0105-Учебные_дисциплины
переход
форма FCours- Ведение_каталога_дисциплин
выполняет
w Ведение_каталога_дисциплин
end
pos P0201-Новое_распределение_дисциплин
переход
форма FNewPlanCours- Новое_распределение_дисциплин
выполняет
w Формирование_нового_распределения_
дисциплин_по_преподавателям
end
pos P0202-Изменения_распределения_дисциплин
переход
форма FUpDataPlanCours-Изменения_распределения_дисциплин
выполняет
w Планирование_изменений_распределения_дисциплин
end
Фирма : СПбГЭТУ D016.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма Работа_с_расписанием frm FMain
лист 03 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
pos P0203-Новый_график_занятий
переход
форма FNewPlanLesson- Новый_график_занятий
выполняет
w Формирование_нового_графика_занятий
end
pos P0204-Изменения_графика
переход
форма FUpDataPlanLesson- Изменения_графика
выполняет
w Планирование_изменений_графика
end
Фирма : СПбГЭТУ D018.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма frm
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
форма FMain- Работа_с_расписанием ;
FTypeQu-Подготовка_типовых_запросов ;
FExecQu-Справки_по_расписанию;
FList-Ведение_списков ;
FRoom- Ведение_каталога_помещений ;
FEmployee-Ведение_каталога_сотрудников ;
FGroup- Ведение_каталога_групп ;
FCours- Ведение_каталога_дисциплин;
FSelectElList-Выбор_элемента_списка;
FNewPlanCours- Новое_распределение_дисциплин;
FUpDataPlanCours-Изменения_распределения_дисциплин;
FNewPlanLesson- Новый_график_занятий;
FUpDataPlanLesson- Изменения_графика
end
форма FSelectElList-Выбор_элемента_списка
выход
flow 04-
use
table LIST; ;
data_oper select
end
форма FList-Ведение_списков
use
форма FSelectElList-Выбор_элемента_списка ; ; ;
выход
flow 01-
use
table LIST; ;
data_oper insert; update; select ; delete; ; ; ;
02-
use
table TYPE_LIST ; ;
data_oper insert; update; select
end
Фирма : СПбГЭТУ D018.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма frm
лист 02 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
форма FRoom- Ведение_каталога_помещений
use
форма FSelectElList ; ; ;
выход
flow 03-
use
table ROOM; ;
data_oper insert; update; select ; delete; ; ; ;
end
форма FEmployee-Ведение_каталога_сотрудников
use
форма FSelectElList ; ; ;
выход
flow 04-
use
table ROOM; ;
data_oper insert; update; select ; delete
end
форма FGroup- Ведение_каталога_групп
выход
flow 05
use
table GROUP; ;
data_oper insert; update; select ; delete
end
форма FCours- Ведение_каталога_дисциплин
выход
flow 06
use
table COURSE_OF_LECTURES ; ;
data_oper insert; update; select ; delete
end
Фирма : СПбГЭТУ D018.Dub
проект: Расписание занятий индекс документа
тип документа: Текст спецификации
элемент: форма frm
лист 03 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
форма FEmployee-Ведение_каталога_сотрудников
выход
flow 07
use
table EMPLOYEE ; ;
data_oper insert; update; select ; delete
end
Фирма : СПбГЭТУ D019.Dub
проект: Расписание занятий индекс документа
тип документа: SQLтекст
элемент: SQL_select Найти_место_занятий_по_расписанию_
для_группы SQL_s RGr
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
SQL_select RGr-Найти_место_занятий_по_расписанию_для_группы
вход
параметр :pTDay;
:pNumGroup;
:pChetWeek;
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select P1.LESSON_ROOM, P2.NAME_EL
from TIME_TABLE_LESSON P1, LIST P2, ROOM P3
where P1.NUM_GROUP = :pNumGroup
and P1.NUM_POINT in (select P4.NUM_POINT
from POINT_TIME_TABLE P4
where P4.DAY_OF_WEEK = :pDayOfWeek
and P4.NUM_LESSON = :pNumLesson
and P4.CHET_WEEK = :pChetWeek)
and P1.BEGIN_DATE = (select MAX(P5.BEGIN_DATE)
from TIME_TABLE_LESSON P5
where P5.BEGIN_DATE < = :pTDate
and P5.NUM_GROUP = :pNumGroup
and P5.NUM_POINT = in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where P6.CHET_WEEK = :pChetWeek
and P6.DAY_OF_WEEK = :pDayOfWeek
and P6.NUM_LESSON = :pNumLesson) )
and P1.LESSON_ROOM = P3.CODE_ROOM
and P2.LONG_CODE = P3.KIND_ROOM ”
end
Фирма : СПбГЭТУ D020.Dub
проект: Расписание занятий индекс документа
тип документа: SQLтекст
элемент: SQL_select Найти_дисциплину_и_вид_занятий_по_расписанию_
для_группы SQL_s CKGr
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
SQL_select CKGr-Найти_дисциплину_и_вид_занятий_по_расписанию_для_группы
вход
параметр :pTDay;
:pNumGroup;
:pChetWeek;
:pDayOfWeek;
:pNumLesson ; ; ;
содержит
текст “
select P3.NAME_COUPSE, P2.NAME_EL
from TIME_TABLE_LESSON P1, LIST P2,
COURSE_OF_LECTURES P3
where P1.NUM_GROUP = :pNumGroup
and P1.NUM_POINT in (select P4.NUM_POINT
from POINT_TIME_TABLE P4
where P4.DAY_OF_WEEK = :pDayOfWeek
and P4.NUM_LESSON = :pNumLesson
and P4.CHET_WEEK = :pChetWeek)
and P1.BEGIN_DATE = (select MAX(P5.BEGIN_DATE)
from TIME_TABLE_LESSON P5
where P5.BEGIN_DATE < = :pTDate
and P5.NUM_GROUP = :pNumGroup
and P5.NUM_POINT = in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where P6.DAY_OF_WEEK = :pDayOfWeek
and P6.NUM_LESSON = :pNumLesson
and P6.CHET_WEEK = :pChetWeek) )
and P3.CODE_COURSE = P1.CODE_COURSE
and P2.LONG_CODE = P1.KIND_LESSON “
Фирма : СПбГЭТУ D021.Dub
проект: Расписание занятий индекс документа
тип документа: SQLтекст
элемент: SQL_select Найти_место_занятий_дисциплину_и_вид_занятий _по_расписанию_ для_группы SQL_s RCKGr
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
SQL_select RCKGr-Найти_место_занятий_дисциплину_и_вид_занятий_
по_расписанию_для_группы
вход
параметр :pTDay;
:pNumGroup;
:pChetWeek;
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select P1.CODE_ROOM, P2.NAME_EL, P3.NAME_COUPSE, P7.NAME_EL
from TIME_TABLE_LESSON P1, LIST P2,
COURSE_OF_LECTURES P3, LIST P7, ROOM P8
where P1.NUM_GROUP = :pNumGroup
and P1.NUM_POINT in (select P4.NUM_POINT
from POINT_TIME_TABLE P4
where P4.DAY_OF_WEEK = :pDayOfWeek
and P4.NUM_LESSON = :pNumLesson
and P4.CHET_WEEK = :pChetWeek)
and P1.BEGIN_DATE = (select MAX(P5.BEGIN_DATE)
from TIME_TABLE_LESSON P5
where P5.BEGIN_DATE < = :pTDate
and P5.NUM_GROUP = :pNumGroup
and P5.NUM_POINT = in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where P6.DAY_OF_WEEK = :pDayOfWeek
and P6.NUM_LESSON = :pNumLesson
and P6.CHET_WEEK = :pChetWeek) )
and P1.CODE_COURSE = P3.CODE_COURSE
and P2.LONG_CODE = P1.KIND_LESSON
and P7.LOND_CODE = P8.KIND_ROOM
and P8.CODE_ROOM = P1.LESSON_ROOM “
end
Фирма : СПбГЭТУ D021.Dub
проект: Расписание занятий индекс документа
тип документа: SQLтекст
элемент: SQL_select Найти_расписание_для_преподавателя SQL_s TTTeach
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
SQL_select TTTeach-Найти_расписание_для_преподавателя
вход
параметр :pTDay;
:pTabNum;
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select P3.CODE_ROOM, P5.NAME_KIND, P1.NAME_COUPSE, P2.NAME_EL
from TIME_TABLE_LESSON P3, LIST P2,
COURSE_OF_LECTURES P1, LIST P5, ROOM P6,
TIACHER_KIND_LESSON P7
where P3.NUM_GROUP in (select P7.NUM_GROUP
from TIACHER_KIND_LESSON P7
where P7.TAB_NUM = :pTabNum
and P7.BEGIN_DATE = (
select MAX(P8.BEGIN_DATE)
from TIACHER_KIND_LESSON P8
???????????????????????????????????????)
and P3.NUM_POINT in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where ( P6.DAY_OF_WEEK = :pDayOfWeek
or :pDayOfWeek = 0 and :pNumLesson = 0)
and (P6.NUM_LESSON = :pNumLesson
or :pNumLesson = 0) )
and P3.BEGIN_DATE = (select MAX(P5.BEGIN_DATE)
from TIME_TABLE_LESSON P5
where P5.BEGIN_DATE < = :pTDate
and P5.NUM_GROUP = P3.NUM_GROUP
and P5.NUM_POINT = in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where P6.DAY_OF_WEEK = :pDayOfWeek
and P6.NUM_LESSON = :pNumLesson) )
and P1.CODE_COURSE = P3.CODE_COURSE
and P2.LONG_CODE = P3.KIND_LESSON
and P5. LONG_CODE = P6.CODE_KIND
and P6.CODE_ROOM = P1.CODE_ROOM “
/*SQL_select 01-Найти_свободные_помещения
вход
параметр :pTDay;
:pKindRoom;
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select P1.CODE_ROOM, P2.NAME_EL
from, LIST P2, ROOM P1
where P1.CODE_ROOM not in
(select P3.CODE_ROOM
from TIME_TABLE_LESSON P3
where P3.NUM_POINT in (select P6.NUM_POINT
from POINT_TIME_TABLE P6
where P6.DAY_OF_WEEK = :pDayOfWeek
and (P6.NUM_LESSON = :pNumLesson
or :pNumLesson = 0) ))
and P2. LONG_CODE = P1.CODE_KIND “ */
SQL_select 01-Найти_свободные_пары_для_помещения
вход
параметр :pTDay;
:pCodeRoom;
:pDayOfWeek ; ; ;
имеет
эффекты
требования
исходный_текст “
select P2.NUM_POINT, P2.DAY_OF_WEEK, P2.NUM_LESSON
from TIME_TABLE_LESSON P1, POINT_TIME_TABLE P2
where P2.NUM_POINT not in
(select P1.NUM_POINT
from TIME_TABLE_LESSON P3
where P3.CODE_ROOM = :pCodeRoom)
and (P2.DAY_OF_WEEK = :pDayOfWeek
or :pDayOfWeek = 0)“
Фирма : СПбГЭТУ D021.Dub
проект: Расписание занятий индекс документа
тип документа: SQLтекст
элемент: SQL_prt Найти_действующее_
расписание SQL_pr WORK_TIME_TABLE
лист 01 листов шифр элемента
Составил: ........................... дата.................................... |
Проверил:............................. дата.............................. |
Утвердил:.............................. дата....................................... |
SQL_pr 01-Найти_действующее_расписание
вход
параметр :pTDay; ; ;
выход
параметр
имеет
эффекты
требования
исходный_текст “
/*CONNECT SOBP_SERVER:D:\STPR\EXAMPL\TLESS.GDB USER SYSDBA PASSWORD masterkey; */
CONNECT D:\STPR\EXAMPL\TLESS.GDB;
SET TERM !! ;
alter procedure WORK_TIME_TABLE ( pTDate DATE)
returns ( oNumGroup smallint,
oDayOfWeek smallint,
oNameDayOfWeek varchar(40),
oChetWeek smallint,
oNumLesson smallint,
oCodeCourse smallint,
oNameCourse varchar(40),
oCodeKindLesson smallint,
oNameKindLesson varchar(40),
oCodeRoom char(6) ,
oCodeKindRoom smallint,
oNameKindRoom varchar(40),
oTabNum integer,
oFamily varchar(40),
oName varchar(40) ,
oRank varchar(40))
as
DECLARE VARIABLE vNumPoint smallint;
DECLARE VARIABLE vBegDate date;
DECLARE VARIABLE vCodeRank smallint;
begin
/*Отбираем действующие на дату pTDate точки расписания */
for select MAX(P1.BEGIN_DATE),P1.NUM_GROUP, P1.NUM_POINT,
P1.CODE_COURSE, P1.LESSON_ROOM, P1.KIND_LESSON
from TIME_TABLE_LESSON P1
where P1.BEGIN_DATE <= :pTDate
group by P1.NUM_GROUP, P1.NUM_POINT, P1.CODE_COURSE, P1.LESSON_ROOM, P1.KIND_LESSON
into :vBegDate, :oNumGroup, :vNumPoint, :oCodeCourse, :oCodeRoom, :oCodeKindLesson
do
begin
/*Находим имя вида занятий*/
select NAME_EL
from LIST
where LONG_CODE = :oCodeKindLesson
into :oNameKindLesson;
/*Находим имя дисциплины*/
select NAME_COURSE
from COURSE_OF_LECTURES
where CODE_COURSE = :oCodeCourse
into :oNameCourse;
/*Раскрываем параметры точки расписания*/
select DAY_OF_WEEK, CHET_WEEK, NUM_LESSON
from POINT_TIME_TABLE
where NUM_POINT = :vNumPoint
into :oDayOfWeek, :oChetWeek, :oNumLesson;
select NAME_EL
from LIST
where LONG_CODE = :oDayOfWeek
into :oNameDayOfWeek;
/*Находим код вида помещения*/
select KIND_ROOM
from ROOM
where CODE_ROOM = :oCodeRoom
into :oCodeKindRoom;
/*Находим имя вида помещения*/
select NAME_EL
from LIST
where LONG_CODE = :oCodeKindRoom
into :oNameKindLesson;
/*Находим таб. номер преподавателя в соответствии с датой pTDate*/
select MAX( BEGIN_DATE), TAB_NUM
from TIACHER_KIND_LESSON
where NUM_GROUP = :oNumGroup
and CODE_COURSE = :oCodeCourse
and KIND_LESSON = :oCodeKindLesson
and BEGIN_DATE <= :pTDate
group by TAB_NUM
into :vBegDate, :oTabNum;
/*Находим ФИО преподавателя*/
select FAMILY, NAME, RANK
from EMPLOYEE
where TAB_NUM = :oTabNum
into :oFamily, :oName, :vCodeRank;
/*Находим наименование звания преподавателя*/
select NAME_EL
from LIST
where LONG_CODE = :vCodeRank
into :oRank;
/*Выдаем текущее значение выходных параметров*/
suspend;
end
end !!
SQL_select TTTeach-Найти_расписание_для_преподавателя
вход
параметр :pDate;
:pTabNum;
{ :pChetWeek;}
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select oNameDayOfWeek, oChetWeek, oCodeRoom, oNameKindRoom, oNumGroup, oNameCours,oNameKindLesson
from WORK_TIME_TABLE ( :pDate)
where oTabNum = :pTabNum
and (oDayOfWeek = :pDayOfWeek or :pDayOfWeek = 0)
and (oNumLesson = :pNumLesson or :pNunLesson = 0) “
end
SQL_select FrRoom-Найти_свободные_помещения
вход
параметр :pDate;
:pKindRoom;
:pChetWeek;
:pDayOfWeek;
:pNumLesson ; ; ;
имеет
эффекты
требования
исходный_текст “
select CODE_ROOM
from ROOM WORK_TIME_TABLE ( :pDate)
where CODE_ROOM not in (
select oCodeRoom
from WORK_TIME_TABLE ( :pDate)
where oChetWeek = :pChetWeek
and (oDayOfWeek = :pDayOfWeek or :pDayOfWeek = 0)
and (oNumLesson = :pNumLesson or :pNunLesson = 0)
and (oKindRoom = :pKindRoom or :pKindRoom = 0)) “
end