Автоматизация оказания услуг проектным специализированным бюро

Проект и реализация на основе клиент-серверных технологий базы данных работ (услуг), выполняемых МГКУПП "Проектное специализированное бюро". Автоматизация расчета стоимости работ. Организация поиска заказа, контроля выполнения и оплаты, отчетности.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 01.02.2017
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

ОГЛАВЛЕНИЕ

  • Введение
  • 1. Техническое задание
    • 1.1 Функциональная модель
      • 1.1.1 Контекстная диаграмма и диаграммы детализации процессов
      • 1.1.2 Диаграмма дерева узлов
    • 1.2 Информационная модель
      • 1.2.1 Идентификация сущностей и связей. ER-диаграмма логического уровня
      • 1.2.2 ER-диаграмма физического уровня. Ограничения доменов. Ограничения ссылочной целостности. Переопределение триггеров. Индексирование отношений
      • 1.2.3. Определение представлений, хранимых процедур серверной компоненты. ER-диаграмма в режиме отображения представлений
    • 1.3. Верификация спроектированной логической модели
  • 2. Реализация системы
    • 2.1. T-SQL-определения регламентированных запросов
    • 2.2 T-SQL-определения триггеров
    • 2.3. T-SQL-определения хранимых процедур
    • 2.4 T-SQL-определения курсоров
  • 3. Проектирование системы безопасности. Управление авторизацией, управление ролями, управление разрешениями средствами Transact SQL
  • 4. Прокомментированный скрипт создания базы данных
  • 5. Результат тестирования информационной системы
  • Заключение
  • Список использованных литературных источников
  • ВВЕДЕНИЕ
  • Развитие современных городов и поселков не возможно целенаправленного преобразования среды обитания путем формирования и развития систем расселения, отдельных городских и сельских поселений, их производственной, социальной, транспортной, инженерно-технической инфраструктуры, размещения мест проживания, приложения труда, обслуживания, отдыха населения с учетом охраны природы и историко-культурного наследия.
  • Задачами градостроительства в структуре управления городом Могилёвом занимается «Управление архитектуры и градостроительства», в ведомственной подчиненнсти которого находится, в часности, и МГКУПП «Проектное специализированное бюро». Эта организация оказывает различные многочисленные услуги населению и организациям в сфере градостроительства. С ростом города растет и потребность как в количестве, так и в качестве оказываемых услуг, эффективное удовлетворение которой невозможно без атоматизации взаимодействия в организации.
  • Целью данного курсового проекта является спроектировать и реализовать на основе клиент/серверных технологий базу данных работ (услуг), выполняемых МГКУПП «Проектное специализированное бюро», автоматизировать расчет стоимости работ, организовать контроль выполнения и оплаты, а также реализовать все необходимые для поиска и работы с заказами запросы и отчеты.
  • серверный автоматизация заказ бюро

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ

1.1 Функциональная модель

1.1.1 Контекстная диаграмма и диаграммы детализации процессов

Первая диаграмма в иерархии диаграмм IDEF0 изображает функционирование в целом. Такие диаграммы называются контекстными. В контекстные диаграммы входит описание цели моделирования, области (описания того, что будет рассматриваться в качестве компонента системы, а что в качестве внешнего воздействия) и точки зрения (позиции, с которой будет строиться модель).

После того как контекст описан, проводится построение следующих диаграмм в иерархии. Каждая последующая диаграмма является более подробным описанием (декомпозицией) одной из работ на диаграмме вышестоящего уровня.

Контекстная диаграмма представляет собой схему организации работы проектного бюро. Входными данными является информация о сотрудниках, заках, заказчиках, строительных объектах, земельных участках, оплате услуг. В ходе функционирования системы создаются базы договоров на услуги бюро, нарушений рекламной деятельности, справочник заказчиков (Рис. 1).

Рисунок 1 - Контекстная диаграмма.

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

В дальнейшем диаграмма разбивается на уровни. Первый уровень - это диаграмма (рис. 2), с помощью которой производится детализация основного процесса, находящегося на контекстной диаграмме. Контекстную диаграмму разбиваем на 7 блоков в соответствии с имеющимися в бюро отделами и службами.

Рисунок 2 - декомпозиция процесса “Автоматизация оказание услуг “Проектным специализированным бюро”

Полученные блоки - “Автоматизировать работу директора”, “Автоматизировать работу ведущего специалиста по договорной работе”, “Автоматизировать работу отдела геодезии”, “Автоматизировать работу службы по организации и проведению аукционов”, “Автоматизировать работу отдела индивидуальной застройки”, “Автоматизировать работу архитектурно-планировочного отдела и прочие работы”, “Автоматизировать работу отдела эстетики и рекламы” - также подлежат дальнейшей детализации в соответствии с выполняемыми функциями (рис.3,4,5,6,7,8,9).

Рисунок 3 - декомпозиция процесса “Автоматизировать работу директора”

Рисунок 4 - декомпозиция процесса “Автоматизировать работу ведущего специалиста по договорной работе”,

Рисунок 5 - декомпозиция процесса “Автоматизировать работу отдела геодезии”

Рисунок 6 - декомпозиция процесса “Автоматизировать работу службы по организации и проведению аукционов”

Рисунок 7 - декомпозиция процесса “Автоматизировать работу отдела индивидуальной застройки”,

Рисунок 8 - декомпозиция процесса “Автоматизировать работу архитектурно-планировочного отдела и прочие работы”,

Рисунок 9 - декомпозиция процесса “Автоматизировать работу отдела эстетики и рекламы”

1.1.2 Диаграмма дерева узлов

Диаграмма дерева узлов показывает иерархию процессов в модели и позволяет рассмотреть всю модель целиком, но не показывает взаимосвязи между процессами. Она имеет вид традиционного иерархического дерева, где верхний узел (прямоугольник) соответствует работе с контекстной диаграммы, а последующие нижние узлы представляют собой дочерние уровни декомпозиции. Можно также создать диаграмму дерева узлов лишь для некоторой части модели.

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

Диаграмма дерева узлов проектируемой базы данных представлена в приложении1 (рисунок 10).

Рисунок 10 - Диаграмма дерева узлов

1.2 Информационная модель

1.2.1 Идентификация сущностей и связей. ER-диаграмма логического уровня

Erwin имеет два уровня представления модели - логический и физический. Логический уровень - это абстрактный взгляд на данные. Объекты модели, представляемые на нем, называются сущностями и атрибутами. Логическая модель данных является универсальной, т.к. не зависит от конкретной СУБД.

Для отображения информационной модели рассматриваемого процесса на логической модели используются следующие сущности:

- «Подразделения» - информация о подразделениях проектного бюро;

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

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

- «Сотрудники» - информация о сотрудниках, работающих в проектном бюро;

- «Услуги» - перечень услуг проектного бюро;

- «Заказчики» - информация о заказчиках услуг бюро, а также нарушителях законодательства о рекламе;

- «Договора» - информация о заключенных с заказчиками договорах на услуги и их состоянии, а также поступающих финансовых средствах и фактически выполненных работах;

- «Шаблоны_договоров» - для хранения информации для подготовки типовых договоров;

- «Нарушения_рекламы» - информация и выявленных нарушениях законодательства о рекламе, предпринятых действиях и их результатах;

- «Нормы_закона» - перечень пунктов законодательства о рекламе;

- «Улицы» - справочник улиц города;

- «Префикс» - вспомогательный справочник для «Улицы»;

- «Районы» - вспомогательный справочник для «Улицы».

Для однозначного определения записей в каждом из отношений выделен первичный ключ.

Внешние ключи для отношений БД:

- в отношениях «Должности» и «Подразделения» - это ключ «номер_подразделения»;

- в отношениях «Должности» и «Отделы» - это ключ «номер_отдела»;

- в отношениях «Должности» и «Сотрудники» - это ключ «in_rn»;

- в отношениях «Отделы» и «Сотрудники» - это ключ «in_rn»;

- в отношениях «Договора» и «Заказчики» - это ключ «id_customer»;

- в отношениях «Договора» и «Должности» - это ключ «id_staff»;

- в отношениях «Договора» и «Отделы» - это ключ «номер_отдела»;

- в отношениях «Договора» и «Услуги» - это ключ «id_servise»;

- в отношениях «Договора» и «Шаблоны_договоров» - это ключ «id_pattern»;

- в отношениях «Нарушения_рекламы» и «Заказчики» - это ключ «id_customer»;

- в отношениях «Нарушения_рекламы» и «Нормы_закона» - это ключ «id_norma»;

- в отношениях «Нарушения_рекламы» и «Улицы» - это ключ «id_street»;

- в отношениях «Улицы» и «Префикс» - это ключ «id_ntu»;

- в отношениях «Улицы» и «Районы» - это ключ «id_admdel».

На логическом уровне проектирования в моделируемой базе данных присутствуют следующие типы связей между описанными сущностями:

· неиденцифицирующие связи;

· связи многие-ко-многим

Связь между сущностями «Должности» и «Подразделения» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждая должность входит в определенное подразделение. Тип связи 1 ко многим, т.к. в одном подразделении содержится несколько должностей.

Связь между сущностями «Должности» и «Отделы» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждая должность закреплена за определенным отделом. Тип связи 1 ко многим, т.к. в одном отделе имеются несколько должностей.

Связь между сущностями «Должности» и «Сотрудники» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждую должность занимает определенный сотрудник. Тип связи 1 ко многим, т.к. любой сотрудник может занимать определенную должность.

Связь между сущностями «Отделы» и «Сотрудники» неидентифицирующая, не разрешающая присутствие нулей, т.к. все отделы управляются руководителем или его заместителем. Тип связи 1 ко многим, т.к. каждый отдел возглавляет определенный сотрудник.

Связь между сущностями «Договора» и «Заказчики» неидентифицирующая, не разрешающая присутствие нулей, т.к. все договора имеют заказчика. Тип связи 1 ко многим, т.к. заказчики могут иметь несколько договоров, а у договора только один заказчик.

Связь между сущностями «Договора» и «Отделы» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждый договор направляется в отдел, оказывающий заказанную услугу.

Связь между сущностями «Договора» и «Должности» неидентифицирующая, не разрешающая присутствие нулей, т.к. для каждого договора руководителем отдела оказывающего услугу назначается ответственный исполнитель.

Связь между сущностями «Договора» и «Услуги» неидентифицирующая, не разрешающая присутствие нулей, т.к. все договора заключаются на оказываемые услуги согласно перечня. Тип связи 1 ко многим, т.к. каждый договор заключается на одну любую услугу из перечня.

Связь между сущностями «Договора» и «Шаблоны_договоров» неидентифицирующая, разрешающая присутствие нулей, т.к. договор может быть офомлен на бумажном носителе любыми средствами, как по предусмотренным системой шаблонам, так и строронним программным обеспечением. Тип связи 1 ко многим, т.к. договор имеет одну любую физическую форму.

Связь между сущностями «Нарушения_рекламы» и «Заказчики» неидентифицирующая, не разрешающая присутствие нулей, т.к. все нарушения имеют нарушителя (потенщиального заказчика). Тип связи 1 ко многим, т.к. заказчики (нарушители) могут иметь несколько нарушений, а у нарушения только один нарушитель.

Связь между сущностями «Нарушения_рекламы» и «Нормы_закона» неидентифицирующая, не разрешающая присутствие нулей, т.к. все нарушения соответствуют определенным в законодательстве и отраженным в справочнике нормам. Тип связи 1 ко многим, т.к. каждому нарушению в соответствует определенная норма. Если рекламная конструкция нарушает несколько норм, то каждое нарушение рассматривается отдельно.

Связь между сущностями «Нарушения_рекламы» и «Улицы» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждое нарушение совершается в определенном городском пространстве, привязанном к адресации с помощью названий улиц и номеров домов. Для привязки достаточно указать одну улицу, на одной улице возможны несколько нарушений.

Связь между сущностями «Улицы» и «Префикс» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждому названию улицы обязательно соответствут один префикс.

Связь между сущностями «Улицы» и «Районы» неидентифицирующая, не разрешающая присутствие нулей, т.к. каждая улица входит в одно из административных деление города и пригорода.

ER-диаграмма логического уровня представлена на рисунке 11.

Рисунок 11 - ER-диаграмма логического уровня

1.2.2 ER-диаграмма физического уровня. Ограничения доменов. Ограничения ссылочной целостности. Переопределение триггеров. Индексирование отношений

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

Проверим, удовлетворяют ли все имеющиеся отношения соответствующим наборам ограничений.

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

Вторая нормальная форма требует, чтобы отношение находилось в первой нормальной форме, и каждый не ключевой атрибут функционально полно зависел от первичного ключа. И это требование также выполняется в рассматриваемой модели. Пример, рассмотрим таблицу «Отделы». Ключевой атрибут в ней - «номер_отдела». Неключевые атрибуты - название, ИНРН начальника отдела, зависят функционально полно только от первичного ключа.

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

Реализация ссылочной целостности:

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

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

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

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

· При изменении информации в «Услуги» в таблице «Договора» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Услуги» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

· При изменении информации в «Шаблоны договоров» в таблице «Договора» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Шаблоны_договоров» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

· При изменении информации в «Заказчики» в таблице «Договора» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Заказчики» разрешено только не используемые записи;

· При изменении информации в «Нормы_закона» в таблице «Нарушения_рекламы» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Нормы_закона» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

· При изменении информации в «Улицы» в таблице «Нарушения_рекламы» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Улицы» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

· При изменении информации в «Районы» в таблице «Улицы» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Районы» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

· При изменении информации в «Префикс» в таблице «Улицы» информация будет автоматически изменяться (каскадное обновление), удалять из таблицы «Префикс» разрешено только не используемые записи. Проверку осуществляет специальный триггер;

Типы данных

1. Для обеспечения уникальности ключевого поля в таблицах «Должности», «Сотрудники», «Услуги», «Заказчики», «Договора», «Шаблоны_договоров», «Нарушения_рекламы, «Нормы_закона», «Улицы», «Префикс», «Районы» ключевым поле этой таблицы id_badrek является автоматическим счетчиком типа int.

2. Во всех таблицах для полей с датой (тип данных - datetime) установлен триггер контроля ввода даты: дата не может быть ранее и позденее одного года от текущей даты.

Типы данных выбирались согласно хранимой информации и представлены на ER-диаграмма физического уровня (рисунок 12).

Рисунок 12 - ER-диаграмма физического уровня

Для приложения были разработаны следующие триггеры:

Договора_trd - копирование удаляемой информации в таблицу «Договора_Deleted» с указанием даты удаления и пользователя, удалившего запись

Договора_triu - фиксация текущей даты и пользователя при изменении таблицы «Договора»

Договора_Даты_triu - контроль корректности введенных дат в таблице «Договора». Разрешено внесение и изменение дат в пределах одного года от текущего дня.

Нарушения_рекламы_trd - копирование удаляемой информации в таблицу «Нарушения_рекламы _Deleted» с указанием даты удаления и пользователя

Нарушения_рекламы_triu - фиксация текущей даты и пользователя при изменении таблицы «Нарушения_рекламы». Разрешено внесение и изменение дат в пределах одного года от текущего дня.

Нарушения_рекламы_Даты_triu - контроль корректности введенных дат в таблице «Нарушения_рекламы»

Отделы_trd - запрет удаления записей таблицы «Отделы»

Подразделения_trd - запрет удаления записей таблицы «Подразделения»

Префикс_trud - запрет удаления и изменения записей таблицы «Префикс»

Улицы_trd - запрет удаления записей таблицы «Улицы»

1.2.3 Определение представлений, хранимых процедур серверной компоненты. ER-диаграмма в режиме отображения представлений

Представление (View) для конечных пользователей выглядит как таблица, но при этом само не содержит данных, а лишь представляет данные, расположенные в таблице. Физически представление реализовано в виде SQL-запроса, на основе которого производится выборка данных из одной или нескольких таблиц или представлений.

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

Для приложения были разработаны следующие представления:

«Договора_неоплачены» - выборка неоплаченных договоров

«Должности_по_сотруднику» - информация о занимаемой сотрудником должности. Содержит информацию из таблиц «Сотрудники», «Отделы», «Должности»;

«Заказчики_всего_оплачено» - информация о поступивших средствах от заказчика по всем договорам базы;

«Заказчики_текущие» - список заказчиков, договора которых по текущей дате на исполнении. Информацию можно использовать для информационной рассылки о ходе выполнения договора;

«Информация_по_отделам» - название и сведения о руководителях отделов. Содержит информацию из таблиц «Отделы» и «Сотрудники»;

«Карточка_Договора» - содержит полную информация по договорам, а также связанные с договором сведения из таблиц «Должности», «Отделы», «Услуги», «Заказчики»;

«Карточка_Нарушения_рекламы» - содержит полную информация по обнаруженным нарушениям рекламного законодательства, а также связанные сведения из таблиц «Улицы», «Префиксы», «Заказчики»;

«Структура_организации» - информация по структуре организации и сотрудникам. Содержит информацию из таблиц «Должности», «Подразделения», «Отделы», «Сотрудники»;

«Уведомление_осталось» - информация о текущих нарушениях рекламы с указанием оставшегося количество дней до конца срока уведомления. По истечении срока уведомления отправляется предписание, в случае отсутствия действий по устранению нарушения;

«Улицы_районы» - список улиц города с указанием префикса и административного деления. Содержит информацию из таблиц «Префикс», «Улицы», «Районы».

Хранимые процедуры имеют много общего с обычными процедурами. Использование хранимых процедур позволяет значительно повысить скорость разработки приложений.

Для базы данных были разработаны следующие хранимые процедуры:

«CountDogMonth» - для подсчета количества договоров за текущий месяц;

«CustomerCount» - число заказчиков в базе данных;

«SrokDogMonth» - вывод списка просроченных договоров и их исполнителей;

«SrokDogMonth» - сумма по заключенным договорам за текущий месяц;

«Договора_DH1795_1SJOURN_конверт» - процедура для конвертации данных из программы «1С Предпирятие» в таблицу «Договора». Необходима для плавной смены программного продукта с переносом имеющейся информации по заключенным договорам;

«Заказчики_SP1806_конверт» - процедура для конвертации имеющихся данных из программы «1С Предпирятие» в таблицу «Заказчики»;

«Заказчики_УНП_чистка_cur» - удаление повторных записей о заказчиках после конвертации данных из другой программы, где отсутствовал или не соблюдался контроль повторного внесения информации в справочник организаций. В созданной базе уникальность записи о заказчике осуществлена посредством требования уникальности содержания поля «УНП» таблицы «Заказчики»;

«Заказчики_УНП_повтор_cur» - контрольная проверка дублирования информации о заказчиках после конвертации и чистки из программы «1С Предпирятие»;

«Отделы_Прибыль_cur» - информация о полученной прибыли по отделам с подведением итоговой суммы по предприятию;

«Услуги_Рост_cur» - информация о поступлении денежных средств по услугам в процентном сравнении по отношению к предыдущему году;

(UDF)

«BigMoney_cur» - функция с курсором для подсчета прибыли от деятельности отдела;

«ConvDate» - конвертация даты для переноса информации из базы "1С Предприятие";

«ConvPr» - конвертация информации о предоплате из базы "1С Предприятие";

«DateDiffSrok» - подсчет количества дней до окончания срока исполнения договора;

«DateTrue» - определение попадание даты в указанный диапозон от текущей даты;

«MoneyWords» - представление числа (денежной суммы) прописью;

«SumStr» - преобразование числа из цифрого вида в символьное;

«SumStrThree» - формирования строки для трехзначного числа;

«UvedomlenieOut» - контроль срока на исправление нарушения, дается семь дней, иначе направляется предписание. Возвращает колличество дней на исправление.

1.3 Верификация спроектированной логической модели

После разработки информационной модели ее следует связать с функциональной моделью. Такая связь гарантирует завершенность анализа, гарантирует, что есть источники данных (сущности) для всех работ. Связывание моделей способствует согласованности, корректности и завершенности анализа. Стрелки в функциональной модели обозначают некоторую информацию, использующуюся в моделируемой системе. В информационной модели на логическом уровне информация изображается в виде сущностей. Сущности состоят из совокупностей экземпляров сущностей (кортежи отношений). К информационной модели предъявляется требование нормализации, что должно обеспечить компактность и непротиворечивость хранения данных. Информация, которая моделируется одной стрелкой в функциональной модели, может содержаться в нескольких сущностях и атрибутах информационной модели. На функциональной модели могут присутствовать различные стрелки, изображающие одни и те же данные. Информация о таких стрелках находится в одних и тех же сущностях. Следовательно, одной и той же стрелке в функциональной модели могут соответствовать несколько сущностей в информационной модели и, наоборот, одной сущности может соответствовать несколько стрелок.

Работы в функциональной модели могут создавать или изменять данные, которые соответствуют входящим и выходящим стрелкам. Они могут воздействовать как целиком на сущности (создавая и модифицируя экземпляры сущности), так и на отдельные атрибуты сущности.

Таблица 1 - Отчет о верификации модели

Arrow Name

Entity Name

Attribute Name

Акт выполненных работ

Договора

акт_подписан

дата_договора

номер_договора

сумма_договора

сумма_оплачено

Шаблоны_договоров

файл

шаблон

Готовность аукциона земельных участков

Договора

id_auction

дата_исполнения

отказ

примечание

Готовность паспорта рекламы

Договора

id_pasport

дата_исполнения

отказ

примечание

Готовность проектной документации

Договора

id_project

дата_исполнения

отказ

примечание

Готовность топосъёмки местности

Договора

id_topographical

дата_исполнения

отказ

примечание

Договор на оказание услуги

Договора

дата_договора

номер_договора

сумма_договора

Заказчики

id_street

kod

адрес_почта

адрес_электронный

лицензия_ИП

мобильный

наименование_краткое

наименование_полное

ОКПО

основание

офис

руководитель_ип

руководитель_рп

сайт

счет_в_банке

телефон

УНП

Шаблоны_договоров

файл

Заказ услуги

Договора

id_contract

id_customer

id_pattern

id_service

id_staff

акт_подписан

дата_договора

дата_начала

номер_договора

описание_работ

предоплата_процент

примечание

срок_исполнения

сумма_оплачено

шаблон

Информация о выполненных заказах

Договора

номер_договора

отказ

примечание

Информация о местности

Договора

id_topographical

дата_исполнения

отказ

примечание

Информация о спросе и предложениях рынка

Услуги

id_service

описание

тариф

услуга

Информация о строительных объектах

Договора

id_project

дата_исполнения

отказ

примечание

Информация об объектах рекламы

Договора

id_pasport

дата_исполнения

отказ

примечание

Информация об оплате услуг

Договора

сумма_оплачено

Информация по земельным участкам

Договора

id_auction

дата_исполнения

отказ

примечание

Информация по нарушениям законодательства о рекламе

Заказчики

id_customer

id_street

kod

адрес_почта

адрес_электронный

лицензия_ИП

мобильный

наименование_краткое

наименование_полное

ОКПО

основание

офис

руководитель_ип

руководитель_рп

сайт

счет_в_банке

телефон

УНП

Нарушения_рекламы

id_badrek

id_customer

id_street

дата_обнаружения

дом

исправлено

описание

предписание

уведомление

фото

Инфформация о заказчиках

Заказчики

id_customer

id_street

адрес_почта

адрес_электронный

мобильный

наименование_полное

офис

руководитель_ип

сайт

телефон

Карточка договора

Договора

id_contract

id_service

id_staff

акт_подписан

дата_договора

номер_договора

отказ

примечание

срок_исполнения

сумма_договора

сумма_оплачено

Заказчики

наименование_краткое

Отделы

отдел

Подразделения

подразделение

Сотрудники

ФИО

Карточка нарушения законодательства о рекламе

Нарушения_рекламы

id_badrek

id_customer

id_street

дата_обнаружения

дом

исправлено

описание

предписание

уведомление

фото

Отчет о поступивших заказах на услуги

Договора

id_contract

id_service

акт_подписан

дата_договора

дата_исполнения

дата_начала

номер_договора

номер_отдела

описание_работ

отказ

предоплата_процент

примечание

сумма_договора

сумма_оплачено

Отделы

отдел

Подразделения

Услуги

описание

Отчет по актам выполненных работ

Договора

id_contract

акт_подписан

дата_договора

номер_договора

сумма_договора

сумма_оплачено

Заказчики

наименование_краткое

Отделы

отдел

Сотрудники

ФИО

Услуги

описание

Отчет по выполнению договоров исполнителями

Договора

id_contract

id_staff

акт_подписан

дата_договора

дата_исполнения

дата_начала

номер_договора

отказ

примечание

срок_исполнения

сумма_договора

сумма_оплачено

Отделы

отдел

Сотрудники

ФИО

Отчет по договорам

Договора

id_contract

id_service

id_staff

акт_подписан

дата_договора

номер_договора

отказ

примечание

срок_исполнения

сумма_договора

сумма_оплачено

Отчет по нагрузке на исполнителя

Договора

id_contract

id_staff

дата_исполнения

дата_начала

срок_исполнения

Сотрудники

ФИО

Смета договора

Договора

сумма_договора

Список заказчиков для информационной рассылки

Договора

id_contract

id_customer

акт_подписан

дата_договора

номер_договора

отказ

срок_исполнения

сумма_договора

сумма_оплачено

Заказчики

адрес_почта

адрес_электронный

лицензия_ИП

наименование_краткое

руководитель_ип

телефон

Список нарушителей законодательства о рекламе

Нарушения_рекламы

id_badrek

id_customer

id_street

дата_обнаружения

дом

исправлено

описание

предписание

уведомление

Требования законодательства РБ

Услуги

id_service

описание

тариф

услуга

2. РЕАЛИЗАЦИЯ СИСТЕМЫ

2.1 T-SQL-определения регламентированных запросов

1. В целях контроля поступления денежных средств необходимо проводить выборку неоплаченных договоров.

CREATE VIEW Договора_неоплачены

AS

SELECT Договора.номер_договора, Договора.сумма_договора, Договора.сумма_оплачено,

Заказчики.наименование_краткое

FROM Договора INNER JOIN

Заказчики ON Договора.id_customer=Заказчики.id_customer

WHERE Договора.сумма_оплачено < Договора.сумма_договора

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

CREATE VIEW Должности_по_сотруднику

AS

SELECT Должности.id_staff, Сотрудники.ФИО, Отделы.отдел, Должности.Должность

/*Указываем, какие поля, из каких таблиц будут выведены*/

FROM Отделы INNER JOIN

(Сотрудники INNER JOIN

Должности ON Сотрудники.in_rn = Должности.in_rn)

ON Отделы.номер_отдела = Должности.номер_отдела

/*Указываем таблицу, и связанные с ней при помощи оператора INNER JOIN таблицы, из которых выбираются связанные данные. После операнда ON указываем, по каким полям связаны три таблицы*/

3. Для объективной оценки значимости заказчика для организации необходима информация о поступивших средствах от заказчика по всем договорам базы.

CREATE VIEW Заказчики_всего_оплачено

AS

SELECT TOP(100) SUM(Договора.сумма_оплачено) ВСЕГО,

Заказчики.id_customer, Заказчики.наименование_краткое

FROM Договора INNER JOIN Заказчики ON

Договора.id_customer=Заказчики.id_customer

GROUP by Заказчики.id_customer, Заказчики.наименование_краткое

ORDER BY SUM(Договора.сумма_оплачено)

4. Список заказчиков, договора которых по текущей дате на исполнении.

CREATE VIEW Заказчики_текущие

AS

SELECT Договора.номер_договора, Договора.дата_исполнения,

Заказчики.наименование_краткое, Заказчики.адрес_почта

FROM Договора INNER JOIN

Заказчики ON Договора.id_customer=Заказчики.id_customer

WHERE Договора.дата_исполнения IS NULL

5. Информация об отделах с указанием номера, названия отдела и его руководителе. Выборка делается из таблиц «Отделы» и «Сотрудники».

CREATE VIEW Информация_по_отделам

AS

SELECT Отделы.номер_отдела, Отделы.отдел,Сотрудники.ФИО AS начальник

FROM Сотрудники INNER JOIN Отделы ON Сотрудники.in_rn = Отделы.in_rn

6. Полная информация по договору и состоянию его исполнения. Представление делается по всем полям таблицы «Договора», также полям таблиц «Отделы», «Услуги», «Заказчики».

CREATE VIEW Карточка_Договора

AS

SELECT Договора.*, Должности.должность, Отделы.отдел, Услуги.услуга, Заказчики.наименование_полное

FROM Договора INNER JOIN

Должности ON Договора.id_staff = Должности.id_staff INNER JOIN

Отделы ON Договора.номер_отдела = Отделы.номер_отдела INNER JOIN

Услуги ON Договора.id_service = Услуги.id_service INNER JOIN

Заказчики ON Договора.id_customer = Заказчики.id_customer

7. Полная информация по обнаруженным нарушениям рекламного законодательства, а также связанные сведения из таблиц «Улицы», «Префиксы», «Заказчики».

CREATE VIEW Карточка_Нарушения_рекламы

AS

SELECT Нарушения_рекламы.*, Заказчики.наименование_краткое,

Префикс.вид+Улицы.улица+', д.'+Нарушения_рекламы.дом AS Адрес

FROM Нарушения_рекламы INNER JOIN

Заказчики ON Нарушения_рекламы.id_customer=Заказчики.id_customer INNER JOIN

Улицы ON Нарушения_рекламы.id_street=Улицы.id_street INNER JOIN

Префикс ON Улицы.id_ntu=Префикс.id_ntu

8. Информация о сотрудниках в структуре организации. Представление необходимо для вывода группированного по подразделениям и отделам списка сотрудников с указанием занимаемой должности. Выборка делается из таблиц «Должности», «Подразделения», «Отделы» и «Сотрудники».

CREATE VIEW Структура_организации

AS

SELECT Должности.должность, Подразделения.подразделение, Отделы.отдел, Сотрудники.ФИО

FROM Подразделения INNER JOIN

(Отделы INNER JOIN

(Должности INNER JOIN

Сотрудники ON Должности.in_rn = Сотрудники.in_rn)

ON Отделы.номер_отдела = Должности.номер_отдела)

ON Подразделения.номер_подразделения = Должности.номер_подразделения

9. «Уведомление_осталось» - информация о текущих нарушениях рекламы с указанием оставшегося количество дней до конца срока уведомления. По истечении срока уведомления отправляется предписание, в случае отсутствия действий по устранению нарушения;

CREATE VIEW Уведомление_осталось

AS

SELECT Заказчики.наименование_краткое,

Префикс.вид+Улицы.улица+', д.'+Нарушения_рекламы.дом AS адрес,

Нарушения_рекламы.описание,Нарушения_рекламы.уведомление , dbo.UvedomlenieOut(Нарушения_рекламы.уведомление) AS [осталось дней]

FROM Нарушения_рекламы INNER JOIN

Заказчики ON Нарушения_рекламы.id_customer = Заказчики.id_customer INNER JOIN

Улицы ON Нарушения_рекламы.id_street=Улицы.id_street INNER JOIN

Префикс ON Улицы.id_ntu=Префикс.id_ntu

WHERE (Нарушения_рекламы.уведомление IS NOT NULL) AND (Нарушения_рекламы.предписание IS NULL)

10. Информация по улицам города с указанием префикса и административного деления.

CREATE VIEW Улицы_районы

AS

SELECT Улицы.id_street, Префикс.вид, Улицы.улица, Районы.район

FROM Районы INNER JOIN

(Улицы INNER JOIN

Префикс ON Улицы.id_ntu=Префикс.id_ntu)

ON Районы.id_admdel=Улицы.id_admdel

2.2 T-SQL-определения триггеров

1. Договора_trd - тригер для копирование удаляемой информации в таблицу «Договора_Deleted» с указанием даты удаления и пользователя, удалившего запись

INSERT INTO Договора_Deleted (id_contract, номер_договора, дата_договора, срок_исполнения, сумма_договора, сумма_оплачено, акт_подписан, отказ, id_service, id_pattern , id_customer, id_staff, номер_отдела, id_pasport, id_auction, id_topographical, id_project , дата_начала, НДС, предоплата_процент, дата_исполнения, договор_забрали, договор_вернули, акт_оплачен, UpdateDate, UpdatedBy, DeleteDate,DeletedBy)

SELECT id_contract, номер_договора, дата_договора, срок_исполнения, сумма_договора, сумма_оплачено, акт_подписан, отказ, id_service, id_pattern , id_customer, id_staff, номер_отдела, id_pasport, id_auction, id_topographical , id_project , дата_начала, НДС, редоплата_процент, дата_исполнения, договор_забрали, договор_вернули, акт_оплачен, UpdateDate, UpdatedBy, getdate(),SYSTEM_USER

FROM deleted

2. Договора_triu - тригер для фиксации текущей даты и пользователя при изменении в таблице «Договора»

UPDATE c SET UpdateDate = getdate(), UpdatedBy = SYSTEM_USER

FROM inserted i INNER JOIN Договора d ON i.id_contract = d.id_contract

3. Договора_Даты_triu - триггер, который контролирует диапозон вводимой даты (не более года от текущей).

BEGIN

DECLARE @t1 int, @t2 int, @t3 int, @t4 int, @t5 int, @t6 int

Set @t1 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[дата_договора])=0))

Set @t2 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[дата_начала])=0))

Set @t3 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[дата_исполнения])=0))

Set @t4 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[договор_забрали])=0))

Set @t5 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[договор_вернули])=0))

Set @t6 = (SELECT COUNT(id_contract) FROM inserted

WHERE (dbo.DateTrue([inserted].[акт_оплачен])=0))

IF @t1 > 0 OR @t2 >0 OR @t3 >0 OR @t4 >0 OR @t5 >0 OR @t6 >0

BEGIN

--сообщения о неудаче операции

PRINT 'ДАТА ВНЕ ДИАПОЗОНА!!! Для добавления и изменения даты

разрешено отклонение не более одного года от текущей даты'

--откат (отмен...


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.