Автоматизація оптимізаційних задач розподілу ресурсів в корпоративній інформаційній системі підприємства
Розробка та реалізація програмного рішення для автоматизації оптимального розподілу ресурсів підприємства з найменшими витратами, інформаційне і технічне забезпечення задачі. Функціональна структура та архітектура корпоративної інформаційної системи.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 17.04.2013 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Номер атрибуту |
Назва атрибуту |
Тип даних |
Обмеження |
Призначення атрибуту |
|
1 |
ІD |
int |
NOT NULL |
Первинний ключ |
|
2 |
Date |
Datetime |
NOT NULL |
Назва ресурсу |
|
3 |
Quantity |
int |
NOT NULL |
Кількість |
|
4 |
CehID |
Int |
NOT NULL |
Цех |
|
5 |
ProductID |
Int |
NOT NULL |
Продукт |
По даному розділу можна підсумувати і сформувати висновки: в ході виконання сценарію спочатку створюється власна база даних, а потім таблиці. В процесі проектування кожної таблиці спочатку створюються первинні ключі, визначається їх назва і тип.
Також, у таблицях можуть відразу встановлюватися зовнішні ключі, що показують їх відношення з іншими таблицями. У кожній таблиці виконується перелік стовпців, визначення типу даних, що будуть там зберігатися, задання порожніх значень, за замовчуванням і обмежень.
Після деяких створених таблиць, при необхідності, створюються некластерні індекси, що допомагають встановити в базі даних відношення типу один до одного.
Діаграма зв'язків між базовими таблицями, побудована на базі серверу Microsoft SQL, представлена у додатку Г.
Створення бази даних проходить з допомогою використання мови запитів Transact-SQL.
Оператор CREATE DATABASE для створення бази даних є достатньо складним оператором, що перш за все пов'язано з його синтаксисом, який дозволяє визначити велику кількість параметрів. Фрагмент коду, що дозволяє створити базу даних підприємства наведено в додатку А.
Зміст коду Transact-SQL, наведений у додатку Б наступний:
- у першому рядку вказується необхідність використання для виконання всіх наступний операцій бази даних master;
- команда GO, що знаходиться в другому рядку, використовується в тих випадках, коли необхідно виконати якийсь фрагмент коду Transact-SQL, не чекаючи на виконання всього блоку;
- рядок 3 представлений оператором мови DDL, що створює базу даних, і єдиним параметром, що передається даному оператору, є ім'я створюваної бази даних - «VeretilnykCurse»;
- у рядках 4 і 5 зазначено ім'я файлу даних, а також його місце знаходження, яке буде використовуватися MS SQL Server для звернення до файлу даних;
- рядки 6 та 7 вказують на початковий розмір створюваного основного файлу, а також параметр його приросту;
- у всіх наступних рядках, починаючи з восьмого рядку, зазначаються аналогічні параметри для журналу транзакцій, а саме його ім'я, місце знаходження, початковий розмір і крок приросту.
Після запуску на виконання приведеного й описаного коду створюється база даних підприємства під ім'ям «VeretilnykCurse» зі встановленими вихідними параметрами основного файлу та журналу транзакцій. Весь код створення бази даних з усіма таблицями наведено в додатку Б.
3.2 Опис розробленого програмного забезпечення
Після створення бази даних можна перейти безпосередньо до реалізації програмного додатку, який би при взаємодії з БД підприємства виконував всі необхідні операції. Як зазначалось вище у нашому випадку реалізовано 2 програми, а саме клієнтська та серверна частина. Такий підхід обумовлений особливостями виробничих процесів на підприємствах. Наведемо алгоритм, за яким працює клієнтська частина програми.
Рисунок 3.1 - Алгоритм роботи клієнтської частини програми
Клієнтська частина програми буде розташована безпосередньо в у відділеннях цехів і служить для здійснення замовлення, які необхідні для виготовлення певної кількості продукції. Спочатку користувач обирає продукти, які потрібно виготовити в процесі. В системі занесені значення норм витрат ресурсів для кожного продукту. Після внесення даних про продукцію, користувач вибирає цех, в який необхідно поставити певну кількість ресурсів на конкретну дату. Після цього дані заносяться в БД і на основі цих даних буде здійснюватись оптимізація замовлень уже серверною частиною програми. Тож представимо алгоритм роботи серверної частини програми (рис. 3.2).
Користувач вибирає дату, на яку бажає переглянути замовлення (або період), поповнивши, якщо є можливість, поточні запаси ресурсів. З вибраного інтервалу часу вибирається перелік необхідних замовлень на виконання. Система ранжує замовлення за пріоритетністю цеху, тобто місцем кожного цеху у загальній структурі виробництва. Пріоритетність цеху вноситься перед початком роботи з системою. Далі відбувається перебір кожного замовлення, поки не буде виконано кожне. У процесі виконання замовлення система підраховує максимально можливу кількість виробництва того чи іншого продукту з огляду на поточні запаси необхідних ресурсів. Якщо запитувана в замовленні кількість продукції менша від максимальної, то система виконує замовлення, якщо кількість є більшою, то видається відповідний запит на зменшення кількості замовлення через неможливість вчасного виконання. Якщо запаси узгодженні з кількістю продукції то відбувається списання відповідної кількості ресурсів зі складу та відправка їх у цехи для виробництва продукції. Після виконання вище описаних дій, формується звіт по наданим у виробництво ресурсам для кожного цеху на конкретну дату.
Рисунок 3.2 - Алгоритм роботи серверної частини програми
Для створення програмного рішення була обрана мова C# з пакетного інструментарію Visual Studio. Поставлені завдання були вирішені через створення багато документного інтерфейсу користувача - MDI (Multiple Document Interface). Windows-програма типу MDI може підтримувати роботу водночас з декількома документами на відміну від іншого типу - SDI (Single Document Interface), які можуть функціонувати тільки з одним документом. Таким чином, для розробки програми використаємо багато документний інтерфейс MDI.
Отже, опишемо процедуру роботи з програмною на прикладі створення і виконання конкретного замовлення. Першим кроком у роботі з програмою є внесення умовно-постійної інформації у базу даних підприємства, тобто заповнення кількості цехів та продукції, що випускається підприємством. Розставлення пріоритетності цехів, тощо.
В серверній частині програми записуються вартість ресурсів та норми використання (рис.3.3-3.4).
Рисунок 3.3 - Норми використання та вартість ресурсів в системі
Рисунок 3.4 - Норми використання ресурсів
Додати ресурс в систему можна скориставшись кнопкою «Додати ресурс», де заноситься інформація про новий ресурс в БД (рис. 3.5).
Рисунок 3.5 - Додання нового ресурсу в систему
Крім того, якщо необхідно, то можна здійснити поповнення запасів, скориставшись кнопкою «Поповнити запаси»:
Рисунок 3.6 - Поповнення запасів на складах
Виконання запитів на замовлення, їх фільтрація та оптимізація виконується у наступному вікні програми (рис. 3.7):
Рисунок 3.7 - Вікно роботи з замовленнями
Для прикладу, нехай нам необхідно виконати замовлення на виробництво 200 одиниць зошитів та 50 штук ручок. Для виробництва ручок, спочатку додамо новий ресурс в систему:
Рисунок 3.8 - Додання нового ресурсу
Після цього здійснимо запит на виробництво продукції на певну дату (15.03.2013):
Рисунок 3.9 - Замовлення ресурсів для виробництва продукції
Далі в серверній частині програми відбувається аналіз можливості виконання запиту. Користувач, переглядає надіслані запити і, за бажанням може виконати їх вручну, для цього потрібно скористатись вкладкою виконати замовлення, що представлена на рисунку 3.8. В результаті система видасть повідомлення:
Рисунок 3.10 - Повідомлення про виконання
Дане повідомлення говорить про те, що наявних запасів ресурсів недостатньо для того, щоб виробити продукцію у бажаній кількості, тому необхідно зменшити розмір замовлення. Зменшимо його до 50 штук. В результаті система виконає поставку ресурсів на кількість зошитів у 150 одиниць:
Рисунок 3.11 - Фільтрація виконаних замовлень
Після виконання замовлень можна сформувати звіт, скориставшись кнопкою «Сформувати звіт». Звіт виглядатиме наступним чином:
Рисунок 3.12 - Звіт про надіслані ресурси
Крім ручного виконання замовлення в системі доступна автоматична оптимізація. В разі використання кнопки «Оптимізувати замовлення» система автоматично визначить скільки ресурсу і в який цех потрібно поставити на вказану дату. Нехай нам потрібно крім вище описаного замовлення виконати ще одне замовлення на більш пізню дату (16.03.2013).
Рисунок 3.13 - Додаткове замовлення
Скориставшись вкладкою «Оптимізоване виконання» система виконає замовлення наступним чином:
Рисунок 3.14 - Звіт про поставку ресурсів за оптимізованим виконанням
Отже в системі реалізовано функціонал, що дозволяє виконувати замовлення як в ручному так і в автоматизованому режимі. Після реалізації системи можна перейти безпосередньо до підрахунку очікуваних ефектів від впровадження системи.
3.3 Ефективність впровадження задачі
Система автоматизації оптимізаційних задач розподілу покликана вирішити 3 найсуттєвіших завдання:
- мінімізація витрат на постачання і перерозподіл ресурсів;
- максимізація прибутку від даного процесу;
- мінімізація ризиків простоїв та втрат під час виконання виробничих операцій;
Застосування даної системи покращить діяльність підприємства чи організації у наступних напрямках:
- скорочення ручного обліку інформації;
- пришвидшення процесів обслуговування клієнтів;
- оптимізація розподілу замовлень;
- зменшення ймовірності збоїв та помилок у роботі;
- зменшення часу простоїв устаткування.
Як відомо продуктивність та ефективність від провадження автоматизованої системи визначають порівнянням результатів її роботи і затрат всіх видів ресурсів, необхідних для її створення і розвитку.
Вкладення ресурсів у створення програмного продукту розраховуються за формулою:
, (6.1)
де - витрати на устаткування, грн.;
- витрати на ліцензійні програмні продукти, грн.;
- витрати на створення програмного продукту, грн.
Приймаємо К1 = 0, оскільки всі підприємства використовують комп'ютери для своєї роботи,К2 = 7000, оскільки необхідні ліцензійні програмні продукти потрібно закупити, а саме (MSSQL).
Витрати на створення програмного продуктуК3 розраховуємо по формулі:
, (6.2)
де - витрати праці програмістів-розробників, грн.;
- витрати комп'ютерного часу, грн.;
- непрямі (накладні) витрати, грн.
Витрати праці програмістів-розробників:
, (6.3)
де - кількість розробників к-й професії, чол.;
- годинна зарплати розробника к-й професії, грн.;
- трудомісткість розробки для к-го розробника (кількість витраченого розробником часу), ч.;
Kзар = 1,3685- коефіцієнт відрахувань до фонду заробітної плати.
Візьмемо, що Nk= 1, оскільки в розробці програмного продукту приймала участь лише 1 людина.
Годинну заробітну плату працівника розрахуємо за формулою:
,(6.4)
де - місячна зарплата к-го розробника, грн.;
Fkмес - місячний фонд часу його роботи, година.
Приймаємо місячну заробітну плату програміста-розробника по Сумській області рівну 4200 грн., тоді маємо, що кількість календарних днів на 2013 рік = 365, кількість святкових днів = 10, кількість вихідних днів = 104, кількість днів, робота в які не проводиться = 114, кількість робочих днів = 251, кількість днів, що передують святковим, в які робочий день коротший на 1 годину в день = 4. Всього робочих годин за рік, при 40 годинному робочому тижні = 2004 години. Всього робочих годин за місяць = 2004/12=167 год.
Тоді, годинна зарплата розробника, враховуючи це, буде обчислена як:
rk=25,15 грн. / год.
Трудомісткість розробки Тк включає час виконання робіт і в даному випадку є рівним 167годин.
Тепер розрахуємо витрати праці програміста-розробника:
З1=1·25,15·167·1,3685= 5747,7 грн.
Витрати комп'ютерного часу розрахуємо за формулою:
,(6.5)
де - вартість комп'ютерної години, грн.;
F0 - витрати комп'ютерного часу на розробку програми, годин.
Вартість комп'ютерної години обчислюється по формулі:
,(6.6)
де - амортизаційні відрахування, грн.;
- енерговитрати, грн.;
- витрати на техобслуговування, грн.
Амортизаційні відрахування знайдемо за формулою:
,(6.7)
де Сі= 6200 грн. - балансова вартість i-го устаткування, яке використовувалося для створення , грн.;
- річна норма амортизації i-го устаткування, долі;
- річний фонд часу роботи i-го устаткування, година
Відповідно до чинного законодавства квартальна норма амортизації основних фондів 4 групи, які були задіяні у розробці складає 15%, тоді річна норма амортизації буде дорівнювати N4=0,6.
Fгод=2004 год.
СА= 6200·0,6/2004 = 1,86 грн.
Енерговитрати розрахуємо за формулою:
.(6.8)
Комп'ютер сучасної моделі в середньому затрачає 800 Вт за годину, тоді Ре = 0,08 кВт/год.
Вартість 1 кВт/год. для споживачів другого класу (не промислові підприємства) становлять
= 93,46 коп. за кВт/год.
= 0,08·0,9346 = 0,0747 грн./год.
Витрати на техобслуговування розраховуємо за формулою:
, (6.9)
де rТО - годинна зарплата працівника обслуговуючого устаткування, грн.; приймаємо rТО= 2500/167 = 14,97 грн. /година;
- періодичність обслуговування:
, (6.10)
де NТО - кількість обслуговувань устаткування в місяць, приймаємо . Місячний фонд часу роботи устаткування 167 годин.
= 1/167=0,006.
Витрати на техобслуговування складуть:
СТО =11,97·0,006 = 0,09 грн.
Звідси вартість комп'ютерної години:
Сk = 1,86 + 0,0744 + 0,09 = 2,02 грн.
Отже витрати комп'ютерного часу складуть:
З2 = 1,99·167 = 333,46 грн.
Непрямі витрати приймемо: З3 = 150 грн./міс. Звідси
К3 = 150 + 333,46+5747,7 = 5682,64 грн.
Витрати на створення системи складають:
К = 0 + 7000 + 6235,16 = 13235,16 грн.
Тепер можна розрахувати річний ефект від впровадження автоматизованої системи та термін окупності системи.
Річна економія від зниження витрат на розробку проекту визначається за формулою:
Eр = Едв - Епв, (6.11)
де Eр- сума річної економії, грн.;
Едв- річні витрати на обробку інформації до впровадження системи, грн.;
Епв- річні витрати на обробку інформації після впровадження системи, грн.
Відомо, що на середньому підприємстві, які ведуть журнальний облік реєструють замовлення за 15 хв. З допомогою програми реєстрація заявки проходить в середньому за 5 хв. Тоді можна розрахувати економію часу, яка дорівнює 66,67%, тобто вивільнення робочого часу за рік складе 66,67 %.
Керівник підрозділу, який здійснює реєстрацію заявок на підприємстві, нехай, мінімально отримує заробітну плату у розмірі 3600 грн. в місяць за рік. Тоді фонд оплати праці одного працівника складає в середньому 43200.
Звідси річна економія складатиме, згідно до формули:
Eр= (43200- 43200*0,6667) = 14398,56 грн./рік.
Розрахуємо термін окупності капіталовкладень - період часу, протягом якого окупаються витрати на автоматизовану систему визначаються по формулі:
Тр=К/ Eр.(6.12)
Тр = 13235,16 /14398,56 = 0,9 років.
При ефективному використанні капіталовкладень розрахунковий термін окупності повинен бути менше нормативного , у нашому випадку Тр<Тн . так як 0,9 <2,4.
Отже, як бачимо розробка і використання програмного продукту є економічно доцільною, так як річна економія складе 14398,56 грн. за рік, а термін окупності капіталовкладень складає 0,9, тобто проект окупиться менш ніж за рік.
ВИСНОВКИ
В результаті написання даної роботи був створений прототип модуля КІС, який відповідає за оптимізацію розподілу ресурсів в КІС підприємства. Для покращення взаємодії між клієнтом і сервером був створений додаток, що реалізує клієнтський інтерфейс. Програма складається з клієнтської та серверної частини, що здійснює розподіл функцій у системі.
У процесі виконання роботи було сформовано вимоги до інформаційної системи, визначене необхідне програмне, апаратне та інше забезпечення. Створений модуль є частиною системи, яка повинна використовуватись в малих та середніх підприємствах. В програмі реалізовані всі функції, що потребували автоматизації і були зазначені в роботі.
Слід зазначити, що дана системи є прототипом і є далекою від виходу на ринок, тому потребує подальших вдосконалень, щоб бути повністю конкурентоздатною. В подальшому в систему можна включити можливість вибору постачальників, оптимізацію транспортних витрат на постачання ресурсів, тощо.
При оцінці ефективності провадження системи було з'ясовано, що дана система зменшить витрати та збільшить економію коштів, що використовуються на підприємствах для виконання замовлень. Тим самим можна зробити висновок про корисність даної системи.
ПЕРЕЛІК ПОСИЛАНЬ
1. Татарчук М.І. Корпоративні інформаційні системи [Текст]: навч. Посібник / М.І. Татарчук. - К. : КНЕУ, 2005. - 291 с. - ISBN 966-574-717-7.
2. ERP - системи: материал из Википедии - свободной энциклопедии [Электронный ресурс]
3. Планування ресурсів підприємства: матеріал із Вікіпедії - вільної енциклопедії [Електронний ресурс]
4. SAP ERP [Електронний ресурс] /
5. Microsoft Dynamics [Електронний ресурс]
6. Oracle E-Business Suite [Електронний ресурс]
7. Архітектура клієнт-сервер [Електронний ресурс] / Дизайн систем
8. Карпенко, С.Г., Попов, В.В. Інформаційні системи та технології [Текст] / Навчальний посібник: С.Г. Карпенко. - К.: МАУП, 2004. - 192с. - ISBN 966-608-340-X.
ДОДАТОК А
Лістинг створення бази даних
USE master
GO
CREATEDATABASEVeretilnykCurse
ONPRIMARY
(
NAME='VeretilnykCurse ',
FILENAME='C:\Program Files (x86)\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\VeretilnykCurse.mdf',
SIZE=5MB,
FILEGROWTH=10%
)
LOGON
(
NAME='VeretilnykCurse ',
FILENAME='C:\Program Files (x86)\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\VeretilnykCurse_log.ldf,
SIZE= 5MB,
FILEGROWTH= 10%
)
GO
ДОДАТОК Б
Лістинг бази даних підприємства
USE [master]
GO
IFNOTEXISTS(SELECTnameFROMsys.databasesWHEREname=
N'VeretilnykCurse')
BEGIN
CREATEDATABASE [VeretilnykCurse] ONPRIMARY
(NAME= N'VeretilnykCurse',FILENAME= N'C:\Program Files
(x86)\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\VeretilnykCurse.mdf',SIZE= 3072KB
,MAXSIZE= UNLIMITED,FILEGROWTH= 1024KB )
LOGON
(NAME= N'VeretilnykCurse_log',FILENAME= N'C:\Program Files
(x86)\Microsoft SQL
Server\MSSQL.1\MSSQL\DATA\VeretilnykCurse_log.ldf',SIZE= 1024KB
,MAXSIZE= 2048GB ,FILEGROWTH= 10%)
END
GO
EXEC dbo.sp_dbcmptlevel @dbname=N'VeretilnykCurse',
@new_cmptlevel=90
GO
IF(1 =FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [VeretilnykCurse].[dbo].[sp_fulltext_database] @action ='enable'
end
GO
ALTERDATABASE [VeretilnykCurse] SET ANSI_NULL_DEFAULT
OFF
GO
ALTERDATABASE [VeretilnykCurse] SETANSI_NULLSOFF
GO
ALTERDATABASE [VeretilnykCurse] SETANSI_PADDINGOFF
GO
ALTERDATABASE [VeretilnykCurse] SETANSI_WARNINGSOFF
GO
ALTERDATABASE [VeretilnykCurse] SETARITHABORTOFF
GO
ALTERDATABASE [VeretilnykCurse] SET AUTO_CLOSE OFF
GO
ALTERDATABASE [VeretilnykCurse] SET
AUTO_CREATE_STATISTICS ON
GO
ALTERDATABASE [VeretilnykCurse] SET AUTO_SHRINK OFF
GO
ALTERDATABASE [VeretilnykCurse] SET
AUTO_UPDATE_STATISTICS ON
GO
ALTERDATABASE [VeretilnykCurse]
SETCURSOR_CLOSE_ON_COMMITOFF
GO
ALTERDATABASE [VeretilnykCurse] SET CURSOR_DEFAULT
GLOBAL
GO
ALTERDATABASE [VeretilnykCurse]
SETCONCAT_NULL_YIELDS_NULLOFF
GO
ALTERDATABASE [VeretilnykCurse]
SETNUMERIC_ROUNDABORTOFF
GO
ALTERDATABASE [VeretilnykCurse] SETQUOTED_IDENTIFIEROFF
GO
ALTERDATABASE [VeretilnykCurse] SET RECURSIVE_TRIGGERS
OFF
GO
ALTERDATABASE [VeretilnykCurse] SET DISABLE_BROKER
GO
ALTERDATABASE [VeretilnykCurse] SET
AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTERDATABASE [VeretilnykCurse] SET
DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTERDATABASE [VeretilnykCurse] SET TRUSTWORTHY OFF
GO
ALTERDATABASE [VeretilnykCurse] SET
ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTERDATABASE [VeretilnykCurse] SET PARAMETERIZATION
SIMPLE
GO
ALTERDATABASE [VeretilnykCurse] SET READ_WRITE
GO
ALTERDATABASE [VeretilnykCurse] SET RECOVERY FULL
GO
ALTERDATABASE [VeretilnykCurse] SET MULTI_USER
GO
ALTERDATABASE [VeretilnykCurse] SET PAGE_VERIFY
CHECKSUM
GO
ALTERDATABASE [VeretilnykCurse] SET DB_CHAINING OFF
USE [VeretilnykCurse]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Products]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Products](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Name] [nvarchar](max)NOTNULL,
CONSTRAINT [PK_Products] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Cehs]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Cehs](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Name] [nvarchar](max)NOTNULL,
[Adres] [nvarchar](max)NOTNULL,
[Priority] [int] NOTNULL,
CONSTRAINT [PK_Cehs] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Measurements]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Measurements](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Name] [nvarchar](max)NOTNULL,
CONSTRAINT [PK_Measurements] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Expenditures]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Expenditures](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Value] [int] NOTNULL,
[ResourceID] [int] NOTNULL,
[ProductID] [int] NOTNULL,
CONSTRAINT [PK_Expenditures] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
IFNOTEXISTS(SELECT*FROMsys.indexesWHEREobject_id=OBJECT_I
D(N'[dbo].[Expenditures]')ANDname= N'IX_FK_ProductExpenditure')
CREATENONCLUSTEREDINDEX [IX_FK_ProductExpenditure] ON
[dbo].[Expenditures]
(
[ProductID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
GO
IFNOTEXISTS(SELECT*FROMsys.indexesWHEREobject_id=OBJECT_I
D(N'[dbo].[Expenditures]')ANDname= N'IX_FK_ResourceExpenditure')
CREATENONCLUSTEREDINDEX [IX_FK_ResourceExpenditure] ON
[dbo].[Expenditures]
(
[ResourceID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Orders]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Orders](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Date] [datetime] NOTNULL,
[Quantity] [int] NOTNULL,
[CehID] [int] NOTNULL,
[ProductID] [int] NOTNULL,
CONSTRAINT [PK_Orders] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
IFNOTEXISTS(SELECT*FROMsys.indexesWHEREobject_id=OBJECT_I
D(N'[dbo].[Orders]')ANDname= N'IX_FK_CehOrder')
CREATENONCLUSTEREDINDEX [IX_FK_CehOrder] ON
[dbo].[Orders]
(
[CehID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
GO
IFNOTEXISTS(SELECT*FROMsys.indexesWHEREobject_id=OBJECT_I
D(N'[dbo].[Orders]')ANDname= N'IX_FK_ProductOrder')
CREATENONCLUSTEREDINDEX [IX_FK_ProductOrder] ON
[dbo].[Orders]
(
[ProductID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
GO
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
IFNOTEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_I
D(N'[dbo].[Resources]')ANDtypein(N'U'))
BEGIN
CREATETABLE [dbo].[Resources](
[ID] [int] IDENTITY(1,1)NOTNULL,
[Name] [nvarchar](max)NOTNULL,
[Quantity] [int] NOTNULL,
[CostPerUnit] [decimal](18, 0)NOTNULL,
[MeasurementID] [int] NOTNULL,
CONSTRAINT [PK_Resources] PRIMARYKEYCLUSTERED
(
[ID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
)ON [PRIMARY]
END
GO
IFNOTEXISTS(SELECT*FROMsys.indexesWHEREobject_id=OBJECT_I
D(N'[dbo].[Resources]')ANDname= N'IX_FK_MeasurementResource')
CREATENONCLUSTEREDINDEX [IX_FK_MeasurementResource] ON
[dbo].[Resources]
(
[MeasurementID] ASC
)WITH(PAD_INDEX =OFF, IGNORE_DUP_KEY =OFF)ON [PRIMARY]
GO
IFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJE
CT_ID(N'[dbo].[FK_ProductExpenditure]')AND parent_object_id
=OBJECT_ID(N'[dbo].[Expenditures]'))
ALTERTABLE [dbo].[Expenditures] WITHCHECKADDCONSTRAINT
[FK_ProductExpenditure] FOREIGNKEY([ProductID])
REFERENCES [dbo].[Products] ([ID])
GO
ALTERTABLE [dbo].[Expenditures] CHECKCONSTRAINT
[FK_ProductExpenditure]
GO
IFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJE
CT_ID(N'[dbo].[FK_ResourceExpenditure]')AND parent_object_id
=OBJECT_ID(N'[dbo].[Expenditures]'))
ALTERTABLE [dbo].[Expenditures] WITHCHECKADDCONSTRAINT
[FK_ResourceExpenditure] FOREIGNKEY([ResourceID])
REFERENCES [dbo].[Resources] ([ID])
GO
ALTERTABLE [dbo].[Expenditures] CHECKCONSTRAINT
[FK_ResourceExpenditure]
GO
IFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJE
CT_ID(N'[dbo].[FK_CehOrder]')AND parent_object_id
=OBJECT_ID(N'[dbo].[Orders]'))
ALTERTABLE [dbo].[Orders] WITHCHECKADDCONSTRAINT
[FK_CehOrder] FOREIGNKEY([CehID])
REFERENCES [dbo].[Cehs] ([ID])
GO
ALTERTABLE [dbo].[Orders] CHECKCONSTRAINT [FK_CehOrder]
GO
IFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJE
CT_ID(N'[dbo].[FK_ProductOrder]')AND parent_object_id
=OBJECT_ID(N'[dbo].[Orders]'))
ALTERTABLE [dbo].[Orders] WITHCHECKADDCONSTRAINT
[FK_ProductOrder] FOREIGNKEY([ProductID])
REFERENCES [dbo].[Products] ([ID])
GO
ALTERTABLE [dbo].[Orders] CHECKCONSTRAINT [FK_ProductOrder]
GO
IFNOTEXISTS(SELECT*FROMsys.foreign_keysWHEREobject_id=OBJE
CT_ID(N'[dbo].[FK_MeasurementResource]')AND parent_object_id
=OBJECT_ID(N'[dbo].[Resources]'))
ALTERTABLE [dbo].[Resources] WITHCHECKADDCONSTRAINT
[FK_MeasurementResource] FOREIGNKEY([MeasurementID])
REFERENCES [dbo].[Measurements] ([ID])
GO
ALTERTABLE [dbo].[Resources] CHECKCONSTRAINT
[FK_MeasurementResource]
Размещено на Allbest.ru
Подобные документы
Розробка модулю корпоративної інформаційної системи (КІС) автоматизації аналізу матеріальних ресурсів підприємства за допомогою процедур, що написані на VBA (Visual Basic for Application) для MS Access. "Автоматизація аналізу ресурсів підприємства".
курсовая работа [573,4 K], добавлен 19.03.2009Переваги використання відкритої архітектури програмного забезпечення ВВК. Концепція побудови лабораторного практикуму. Структура та взаємодія програмних та апаратних засобів. Структурна схема розподілу ресурсів мікроконтролера між приладами.
реферат [1,9 M], добавлен 06.07.2009Приклади рішень від провідних компаній-розробників, що працюють у сфері автоматизації роботи з документами. Основні можливості систем електронного документообігу. Вибір програмного забезпечення для створення програмного продукту. Опис програмної системи.
курсовая работа [45,8 K], добавлен 06.06.2011Програмне забезпечення та шляхи автоматизації інформаційної системи управління школи. Побудова імітаційної моделі управлінських процесів за допомогою ППЗ MS Project. Розробка бази даних "Школа". Дослідження автоматизованого робочого місця секретаря.
курсовая работа [210,9 K], добавлен 10.11.2012Вибір методу проектування архітектури та моделі функціонування системи автоматизації обліку ресурсів в складських приміщеннях. Аналіз системних вимог та обґрунтування методу проектування інформаційної системи, постановка та алгоритм розв’язання задачі.
дипломная работа [3,5 M], добавлен 25.05.2017Розробка системи, призначеної для автоматизації процесу реєстрації користувачів (студентів-першокурсників) в базі даних Active Directory. Інформаційне, програмне та технічне забезпечення проекту. Керівництво користувача та системного програміста.
курсовая работа [603,6 K], добавлен 19.11.2013Сучасні засоби обчислювальної техніки, їх внесок в розробку програмного забезпечення. Порівняльний аналіз мов програмування. Методика створення програми для знайдення оптимального розподілу задачі по мережі, таким чином, щоб час розв’язку був мінімальним.
курсовая работа [26,6 K], добавлен 25.10.2009Аналіз основних задач фінансового відділу і їх залежності від вхідної інформації. Розробка автоматизованої інформаційної системи з ціллю якісної обробки вхідних даних. Організація інформаційного, організаційного, технічного і програмного забезпечення АІС.
курсовая работа [463,7 K], добавлен 11.02.2014Функції управлінської інформаційної системи підприємства на прикладі корпоративної інформаційної системи "Галактика". Консолідація й аналіз Excel-звітності. Автоматизація розв’язання задачі "Облік основних засобів та необоротних матеріальних активів".
курсовая работа [927,8 K], добавлен 23.04.2009Розробка і впровадження комплексної автоматизованої системи підтримки логістичних процесів підприємства торгівлі лікарськими препаратами. Підвищення ефективності роботи всіх підрозділів компанії, забезпечення ведення обліку у єдиній інформаційній системі.
курсовая работа [27,3 K], добавлен 02.03.2009