- •Введение
- •1. Анализ проблем управления строительными работами в ооо «Энком Кабельные системы мегаполиса»
- •1.1 Описание процесса управления строительными работами
- •1.2 Проблемы управления строительными работами
- •1.3 Формирование цели и задач проекта
- •2. Разработка концепции автоматизации управления строительными работами в ооо «Энком Кабельные системы мегаполиса»
- •2.1 Проектирование схемы движения информационных, материальных и финансовых потоков
- •2.2 Определение автоматизированных рабочих мест
- •2.3 Описание функций выявленных арм
- •3. Разработка структуры информации асу ооо «Энком Кабельные системы мегаполиса»
- •3.1 Проектирование логической структуры данных
- •3.2 Разработка физической структуры данных
- •3.3 Структура таблиц
- •3.4 Реализация контрольного примера
- •4. Разработка программного обеспечения асу ооо «Энком Кабельные системы мегаполиса»
- •4.1 Анализ и выбор систем программирования
- •4.2 Разработка оконных форм для взаимодействия системы и пользователя
- •4.3 Листинги алгоритмов
- •Выводы и результаты
- •Источники информации
- •Приложение 7. Коды процедур добавления в таблицы новых данных
- •Приложение 8. Коды с примерами использования процедур для добавления данных
- •Приложение 9. Коды создания представлений
- •Приложение 10. Вывод представлений
3.2 Разработка физической структуры данных
Следующим этапом является перенос логической схемы данных на конкретную модель данных. В качестве модели данных была выбрана реляционная модель, которая в последствие будет реализована в реляционной базе данных.
Физическая модель отличается от логической. Помимо адаптации под выбранную модель данных, у атрибутов появляются типы данных. Как правило, физическая модель данных проектируется уже под конкретную СУБД, из-за чего имена атрибутов и сущностей также претерпевают изменения под условия выбранной СУБД. Также, сущности теперь называются таблицами. Схема изображена на рисунке 6.
Рисунок 6 – Физическая схема данных
Для построения схемы использована нотация Crown’s Foot (нотация Мартина) [20] [21] [22]. Стоит отметить, что на данной схеме уже имеются чётко выраженные первичные ключи, они выделены жирным шрифтом и начинаются с приставки «id». Их задача в сохранении уникальности каждого кортежа в таблице. Связи между таблицами создаются за счёт внешних ключей, которые представляют из себя наличие в одной таблице атрибута внешнего ключа из другой таблицы. Альтернативные ключи на данной схеме не отображены.
3.3 Структура таблиц
Далее по очереди приведены структуры таблиц базы данных – имена атрибутов, типы данных, описание и тип ключа. Тип ключа принимает следующие значение: отсутствие значения, первичный ключ, внешний ключ, альтернативный ключ.
Ниже представлена структура данных таблицы, которая предоставляет информацию о должностях в компании.
Position |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_Position |
INTEGER |
Первичный ключ должности |
Первичный ключ |
Name_Position |
CHAR(20) |
Название должности |
|
Salary |
INTEGER |
Заработная плата на должности |
|
У каждого пользователя системы есть разный доступ к информации базы данных. Необходимо разграничить персонал на должности. ФИО здесь может быть альтернативным ключом.
Employees |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_Employee |
INTEGER |
Первичный ключ работника |
Первичный ключ |
Name_Employee |
CHAR(40) |
ФИО |
Альтернативный ключ |
Birth_date |
DATE |
Дата рождения |
|
Id_Position |
INTEGER |
Код должности |
Внешний ключ |
Также необходимо хранить данные всех субподрядчиков, с которыми работает компания. Альтернативным ключом здесь может выступать код ИНН, который уникален для каждой организации.
Subcontractor |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_Sub |
INTEGER |
Первичный ключ субподрядчика |
Первичный ключ |
Name_Sub |
CHAR(40) |
Название субподрядчика |
|
INN_Sub |
CHAR(15) |
Идентификационный номер налогоплательщика |
Альтернативный ключ |
KPP_Sub |
CHAR(15) |
Код причины постановки |
|
Tel_Sub |
CHAR(15) |
Телефон компании |
|
Похожая таблица есть и на заказчиков. Только здесь альтернативным ключом выступает номер телефона.
Customer |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_Cust |
INTEGER |
Первичный ключ субподрядчика |
Первичный ключ |
Name_Cust |
CHAR(40) |
Название заказчика |
|
Tel_Cust |
CHAR(15) |
Телефон компании |
Альтернативный ключ |
Необходимо вести список всех объектов на которых идет или шла работа. Альтернативным ключом здесь выступает адрес объекта.
Object |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_Obj |
INTEGER |
Первичный ключ субподрядчика |
Первичный ключ |
Name_Obj |
CHAR(40) |
Название объекта |
|
Adress_Obj |
CHAR(50) |
Адрес объекта |
Альтернативный ключ |
Чтобы облегчить поиск необходимых видов работ при работе на объекте, необходимо иметь информацию о видах работы, такую как цена и единицы измерения.
Type_work |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_type_work |
INTEGER |
Первичный ключ вида работы |
Первичный ключ |
Name_type_work |
CHAR(40) |
Название вида работы |
Альтернативный ключ |
Units_type_work |
CHAR(10) |
Единицы измерения |
|
Price_type_work |
CHAR(50) |
Цена |
|
Таблица «Паспорт» имеет атрибуты, необходимые для размещения на объекте строительства. Здесь есть 2 внешних ключа и в качестве альтернативного ключа выступает разрешение на регистрацию, которое уникально для каждого объекта.
Passport |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_pass |
INTEGER |
Первичный код паспорта |
Первичный ключ |
Id_Cust |
INTEGER |
Код заказчика |
Внешний ключ |
Name_Contractor |
CHAR(40) |
Название подрядчика |
|
Id_Obj |
INTEGER |
Код объекта |
Внешний ключ |
Start_date |
DATE |
Начало строительства |
|
End_date |
DATE |
Окончание строительства |
|
Permission |
CHAR(30) |
Разрешение на строительство |
Альтернативный ключ |
При завершении этапа работы составляется акт на этот этап, где есть вся информация. Внешние ключи служат инструментом для запросов необходимой информации.
Act_work |
|||
Имя |
Тип данных |
Описание |
Ключ |
Id_act_work |
INTEGER |
Первичный код акта |
Первичный ключ |
Name_Contractor |
CHAR(40) |
Название подрядчика |
|
Id_Sub |
INTEGER |
Код подрядчика |
Внешний ключ |
Id_Obj |
INTEGER |
Код объекта |
Внешний ключ |
Id_employee |
INTEGER |
Код работника |
Внешний ключ |
Id_type_work |
INTEGER |
Код работы |
Внешний ключ |
Start_date_work |
DATE |
Начало работ |
|
End_date_work |
DATE |
Окончание работ |
|
Итого получается, что база данных состоит из 8 таблиц, полностью описанных выше.