Розробка гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Украинский
    ,
    Формат файла:
    MS Word
    389,71 Кб
  • Опубликовано:
    2012-10-16
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Розробка гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки

Міністерство освіти і науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій і управління

Кафедра технічної кібернетики





ДИПЛОМНА РОБОТА

зі спеціальності

.091402 “Гнучкі комп’ютеризовані системи та робототехніка“

ПОЯСНЮВАЛЬНА ЗАПИСКА

«Розробка гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки»

Студента групи ГКС-05-д Книжника Олександра Анатолійовича

Керівник роботи доц., к.т.н. Моня Григорій Михайлович

Консультанти:

зі спеціальної частини доц., к.т.н. Лукашенко Й.М

з програмної частини доц., к.т.н. Вдовиченко І.Н.

з економічної частини доц., к.е.н. Тимко Є.В.

з охорони праці доц., к.т.н. Климович Г.Б

нормоконтроль ст. викл. Захарова Г.Б.

Завідувач кафедри ТК доц., к.т.н. Старіков О.М.

Кривий Ріг

Міністерство освіти і науки України

Криворізький інститут

Кременчуцького університету економіки, інформаційних технологій і управління

Кафедра технічної кібернетики

Спеціальність 7.091402 “Гнучкі комп’ютеризовані системи та робототехніка“

ЗАТВЕРДЖУЮ

Зав. кафедрою доц., к.т.н. Старіков О.М.

_______________________

" 1 " листопада 2009 р.

ЗАВДАННЯ

на дипломну роботу студента

Книжника Олександра Анатолійовича

(прізвище, ім'я, по-батькові)

. Тема роботи: Розробка гнучкої системи управління інформаційними потоками магазину______

комп’ютерної техніки _________________________________________

затверджена наказом по інституту від " 29 " жовтня 2009 р. № 73С-01______________

. Термін здачі студентом закінченої роботи 25.05.10. _

. Вхідні дані до роботи: Вимоги до кінцевого програмного продукту, вихідні масиви даних, програмна документація.

. Зміст розрахунково-пояснювальної записки (перелік питань, що підлягають розробці): Постановка завдання; Теоретичне дослідження принципів організації баз даних в DELPHI;Особливості використання мови SQL при розробці інформаційних систем; Опис функціональних можливостей та програмної реалізації проектованої системи; Економічне обґрунтування доцільності розробки програмного продукту; Охорона праці.

. Перелік графічного матеріалу (з точними вказівками обов'язкових креслень)

1. Загальний склад засобів для роботи системи з БД

. Схема взаємодії з базою даних за допомогою SQL

. Архітектура системи при роботі з локальними БД

. Логіко-функціональна схема роботи користувача із системою

. Структурна схема взаємозв'язку таблиць бази даних

. Ієрархія форм системи

. Приклади вікон системи в різних робочих режимах

. Приклади вигляду форм системи на етапі проектування

6. Консультанти з роботи, з вказівками розділів роботи, що належать до них

Розділ

Консультант

Підпис, дата



Завдання видав

Завдання прийняв

Спеціальна частина

Вдовиченко І.Н.



Програмна частина

Лукашенко Й.М.



Економічна частина

Тимко Є.В.



Охорона праці

Климович Г.Б.




. Дата видачі завдання 01.11.09 р.

Керівник                                          ____________________

Завдання прийняв до виконання             ____________________

КАЛЕНДАРНИЙ ПЛАН

№ п/п

Найменування етапів дипломної роботи

Термін виконання етапів роботи

Примітки

1.

Отримання завдання на дипломну роботу

01.11.09


2.

Огляд існуючих рішень

20.02.10


3.

Теоретичне дослідження інструментальних засобів реалізації проекту

13.03.10


4.

Програмна частина (постановка задачі, створення програмного забезпечення, опис алгоритму рішення задачі, проектування та опис інтерфейсу користувача, опис програми)

28.04.10


5.

Оформлення пояснювальної записки

13.05.10


6.

Оформлення графічної документації

18.05.10


7.

Оформлення електронних додатків до диплому

25.05.10


8.

Представлення дипломної роботи до захисту

01.06.10



Студент-дипломник     _________________

Керівник роботи          _________________

Анотація

Метою дипломної роботи є створення гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки. Розроблена система реалізована з використанням системи програмування Delph 7 і сервера баз даних під керуванням MS SQL Server 2008.

У дослідницькій частині дипломної роботи був зроблений порівняльний аналіз різних архітектур баз даних і був зроблений аргументований вибір на користь клієнт-серверної архітектури.

Розділів 6, схем та малюнків 53, таблиць 18, бібліографічних посилань 30, загальний обсяг - 128.

Аннотация

Целью дипломной работы является создание гибкой системы управления информационными потоками магазина компьютерной техники. Разработанная система реализована с использованием системы программирования Delphi 7 и сервера баз данных под управлением MS SQL Server 2008.

В исследовательской части дипломной работы был осуществлен сравнительный анализ различных архитектур баз данных и был сделанный аргументированный выбор в пользу клиент-серверной архитектуры.

Разделов 6, схем и рисунков 53, таблиц 18, библиографических ссылок 30, общий объем - 128.

The summary

The purpose of the diploma work is development of the flexible informative threads control system. The developed system is realized with the use of the system of programing Delphi 7 and SQL-Server under the management of MS SQL Server 2008.

Comparative analysis of different architectures of databases was carried in the research part of diploma work and there was the done argued choice in behalf on client - server architecture.

Sections 6, circuits and figures 53, tables 18, bibliographic references 30, total amount - 128.

ЗМІСТ

 

ВСТУП

. ПОСТАНОВКА ЗАВДАННЯ

.1 Найменування та галузь використання

.2 Підстава для створення

.3 Характеристика розробленого програмного забезпечення

.4 Мета й призначення

.5 Загальні вимоги до розробки

.6 Джерела розробки

. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ПРИНЦИПІВ ОРГАНІЗАЦІЇ БАЗ ДАНИХ В DELPHI

.1 Основні поняття і різновиди архітектур баз даних

.2 Архітектура «файл-сервер» і локальні бази даних

.3 Архітектура «клієнт-сервер»

.4 Обґрунтування вибору архітектури стосовно проектованої системи

. ОСОБЛИВОСТІ ВИКОРИСТАННЯ МОВИ SQL ПРИ РОЗРОБЦІ ІНФОРМАЦІЙНИХ СИСТЕМ

.1 Історія розвитку і основні концепції мови SQL

.2 Структура запитів до окремих таблиць

.3.1 Оператор SELECT

.3.2 Вибірка по умові

.3.3 Агрегатні функції

.3.4 Сортування записів

.4. Багатотабличні запити

.4.1 Об'єднання таблиць

.4.2 Вкладені підзапити

.4.3 Використання оператора EXISTS

.4.4 Використання об'єднання UNION

. ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТА ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ПРОЕКТОВАНОЇ СИСТЕМИ

.1 Функціональне призначення та технологічні особливості розробки

.2 Логіко-функціональна схема роботи користувача з системою

.3 Опис моделі й структури таблиць і подань бази даних SalesRecord

.4. Інтерфейс користувача проектованої системи

.5 Програмна реалізація системи SalesRecord

. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

. ОХОРОНА ПРАЦІ

.1 Аналіз небезпечних і шкідливих факторів обчилювальному центрі

.2 Заходи щодо нормалізації шкідливих і небезпечних факторів

.2.1 Захист від електромагнітних випромінювань

.2.2 Захист від ураження електричним струмом

.2.3 Захист від статичної електрики

.2.4 Захист від шуму та вібрації

.2.5 Оздоровлення повітряного середовища

.2.6 Захист від рентгенівського випромінювання

.2.7 Забезпечення раціонального освітлення

.3 Пожежна безпека

ВИСНОВКИ

СПИСОК ЛІТЕРАТУРИ

ВСТУП


Будь-яка організація має потребу у своєчасному доступі до інформації. Цінність інформації в сучасному світі дуже висока. Роль розпорядників інформації в сучасному світі найчастіше виконують бази даних. Бази даних забезпечують надійне зберігання інформації в структурованому виді й своєчасний доступ до неї. Практично будь-яка сучасна організація має потребу в базі даних, що задовольняє ті або інші потреби по зберіганню, керуванню й адмініструванню даних.

Існує багато вагомих причин перекладу існуючої інформації на комп'ютерну основу. Зараз вартість зберігання інформації у файлах ЕОМ дешевше, ніж на папері. Бази даних дозволяють зберігати, структурувати інформацію й витягати оптимальним для користувача образом. Використання клієнт/серверних технологій дозволяють зберегти значні засоби, а головне й час для одержання необхідної інформації, а також спрощують доступ і ведення, оскільки вони ґрунтуються на комплексній обробці даних і централізації їхнього зберігання. Крім того ЕОМ дозволяє зберігати будь-які формати даних текст, креслення, дані в рукописній формі, фотографії, записі голосу й т.д.

Для використання настільки величезних обсягів збереженої інформації, крім розвитку системних пристроїв, засобів передачі даних, пам'яті необхідні засоби забезпечення діалогу людина-ЕОМ, які дозволяють користувачеві вводити запити, читати файли, модифікувати збережені дані, додавати нові дані або приймати рішення на підставі збережених даних. Для забезпечення цих функцій створені спеціалізовані засоби - системи керування базами даних (СУБД). Сучасні СУБД - багатокористувальницькі системи керування базою даних, які спеціалізується на керуванні масивом інформації одним або безліччю одночасно працюючих користувачів.

Метою дипломної роботи є створення гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки.

Реалізація дипломної роботи проводиться в системі програмування Delphi 7, що має широкі можливостями по створенню додатків баз даних, необхідним набором драйверів для доступу до найвідоміших форматів баз даних, зручними й розвиненими засобами для доступу до інформації, розташованої як на локальному диску, так і на вилученому сервері, а також більшим колекцією візуальних компонентів для побудови відображуваних на екрані вікон, що необхідно для створення зручного інтерфейсу між користувачем і виконавчим кодом.

Система візуального програмування Delphi користується великою популярністю серед широкого круга користувачів: від програмістів, що починають, до досвідчених розробників складних додатків, що займаються створенням великих інформаційних систем. Delphi дозволяє швидко і ефективно розробляти найрізноманітніші програми. Вона має розвинені можливості по створенню призначеного для користувача інтерфейсу, широкий набір функцій, методів і властивостей для вирішення прикладних розрахунково-обчислювальних завдань.

Для завдання яких-небудь властивостей елементу програми, що розробляється, зовсім не обов'язково писати масивні текстові рядки, досить змінити цю властивість в інспекторі об'єктів (так званому моніторі властивостей вибраного елементу). Ця зміна автоматично доповнить або модифікує програмний код.

Це великий плюс у візуальній технології програмування. Створюючи або модифікуючи свій програмний продукт, користувач не знаючи або не звертаючи уваги на деякі властивості елементу програми, а використовуючи тільки необхідні, пише повністю готовий робочий продукт, деколи виступаючий на рівних по складності, з написаними в невізуальному редакторі.

1. ПОСТАНОВКА ЗАВДАННЯ

 

1.1 Найменування та галузь використання


Найменування розробки: гнучка система управління інформаційними потоками магазину комп’ютерної техніки. Система дозволяє повністю автоматизувати процес ведення обліку й ефективного керування процесом закупівлі та продажу товару.

1.2 Підстава для створення


Підставою для розробки є наказ № 73С-01 від 29 жовтня 2009 р. по Криворізькому інституту КУЕІТУ.

Початок робіт: 01.11.09. Закінчення робіт: 25.05.10.

1.3 Характеристика розробленого програмного забезпечення


Гнучка система управління інформаційними потоками магазину комп’ютерної техніки була реалізована за допомогою інструментального засобу прискореної розробки програм системи програмування Delphi7, технології Rave Reports і сервера баз даних під керуванням MS SQL Server 2008.

Склад розробленої системи:

·        SalesRecord.exe - виконуємий файл, розробленої системи;

·        SalesRecord_Data.mdf - файл бази даних SalesRecord, сервера баз даних MS SQL Server 2008.

·        SalesRecord_Log.ldf - журнал транзакцій бази даних SalesRecord, сервера баз даних MS SQL Server 2008.

·        Report.rav - проект звіту середовища Rave (Report Authoring Visual Environment).

1.4 Мета й призначення


Метою дипломної роботи є створення гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки.

У дослідницькій частині дипломної роботи був зроблений порівняльний аналіз різних архітектур баз даних і був зроблений аргументований вибір на користь клієнт-серверної архітектури.

1.5 Загальні вимоги до розробки


Вимоги до програмного забезпечення:

·       Робота в середовищі операційних систем Windows 2000/XP/Vista/7;

·        Відсутність додаткових вимог до розміщення здійсненних файлів;

·        Додаткове програмне забезпечення: установка сервера БД MS SQL Server 2008;

Мінімальні вимоги до апаратного забезпечення:

·        IBM-Сумісний комп'ютер, не нижче Pentium III, RAM-256Mb, SVGA-800*600*16bit, вільний простір на жорсткому диску на сервері не менш 100 Мб, на клієнтській машині - біля 5 Мб.

1.6 Джерела розробки


Джерелами розробки дипломної роботи є:

·        загальний опис технології процесу;

·        довідкова література;

·        наукова література;

·        технічна література;

·        програмна документація.

2. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ПРИНЦИПІВ ОРГАНІЗАЦІЇ БАЗ ДАНИХ В DELPHI

 

.1 Основні поняття і різновиди архітектур баз даних


Для розгляду способів організації баз даних потрібно визначити декілька понять.

Ядро БД відповідає за управління даними в зовнішній пам'яті, управління буферами оперативної пам'яті, управління транзакціями і журналізацією. Відповідно, можна виділити такі компоненти ядра (принаймні, логічно, хоча в деяких системах ці компоненти виділяються явно), як менеджер даних, менеджер буферів, менеджер транзакцій. Ядро БД володіє власним інтерфейсом, не доступним користувачам безпосередньо і використовуваним в програмах, що створені компілятором SQL і утилітах БД. Ядро БД є основною резидентною частиною СУБД. При використанні архітектури "клієнт-сервер" ядро є основною складовою серверної частини системи.

Основною функцією компілятора мови БД є компіляція операторів мови БД в деяку виконувану програму.

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

Загальний склад засобів, необхідних для роботи готового додатку з БД, показаний на рис. 2.1.

Рис. 2.1 Загальний склад засобів для роботи готової системи з БД

Згідно цій загальній схемі, ми маємо ланцюжок:

Додаток -> Ядро БД -> бази даних. У структурі додатку є ланцюжок Невізуальні компоненти -> Візуальні компоненти. Невізуальні компоненти надають програмісту деякі функції по управлінню ядром бази даних, а також самими даними. За допомогою Візуальних компонент дані відображаються на екрані (таблиці, списки, випадні списки, графіки і ін.). Місцеположення ядра БД і самих баз даних в цьому ланцюжку не відбиті.

Місцеположення Ядра БД і баз даних залежить від використовуваної архітектури. Є чотири різновиди архітектури баз даних:

·   локальні бази даних;

·        архітектура "файл-сервер";

·        архітектура "клієнт-сервер";

·        багатоланкова (триланкова N-tier або multi-tier) архітектура.

Використання тієї або іншої архітектури накладає сильний відбиток на загальну ідеологію роботи додатку, на програмний код додатку, на склад компонентів для роботи з БД, використовуваних в додатку (перш за все це стосується невізуальних компонентів).

2.2 Архітектура «файл-сервер» і локальні бази даних


Локальні бази даних і архітектура "файл-сервер"

Рис. 2.2 Архітектура системи при роботі з локальними БД

При роботі з локальними базами даних самі БД розташовані на тому ж комп'ютері, що і програма, що здійснює доступ до них. Робота з БД відбувається в розрахованому на одного користувача режимі. Ядро БД розташоване на комп'ютері користувача. Програма відповідальна за підтримку цілісності БД і за виконання запитів до БД. Загальна схема розрахованої на одного користувача архітектури показана на рис. 2.2.

При роботі в архітектурі "файл-сервер" БД і програма розташовані на файловому сервері мережі (наприклад, Novell NetWare). Можлива також і розрахована на багато користувачів робота з однією і тією ж БД, коли кожен користувач з свого комп'ютера запускає програму, розташовану на мережевому сервері. Тоді на комп'ютері користувача запускається копія програми. По кожному запиту до БД із програми дані з таблиць БД перегоняться на комп'ютер користувача, незалежно від того, скільки реально потрібно даних для виконання запиту. Після цього виконується запит.

Кожен користувач має на своєму комп'ютері локальну копію даних, що час від часу оновлюються з реальної БД, розташованої на мережевому сервері. При цьому зміни, які кожен користувач вносить в БД, можуть бути до певного моменту невідомі іншим користувачам, що робить актуальним завдання систематичного оновлення даних на комп'ютері користувача з реальної БД. Іншим актуальним завданням є блокування записів, які змінюються одним з користувачів: це необхідно для того, щоб в цей час інший користувач не вніс змін в ті ж дані. У архітектурі "файл-сервер" вся тяжкість виконання запитів до БД, управління цілісністю БД лягає на програму користувача. БД на сервері є пасивним джерелом даних.

Кардинальних відмінностей з погляду архітектури між розрахованою на одного користувача архітектурою і архітектурою "файл-сервер" немає. І в тому і в іншому випадку як СУБД застосовуються так звані "персональні" (або "локальні") СУБД. такі як Paradox, dBase і ін. Сама база даних в цьому випадку є набір таблиць, індексних файлів, мемо-полів і ін., що зберігаються в одному каталозі на диску у вигляді окремих файлів.

2.3 Архітектура «клієнт-сервер»


Архітектура "файл-сервер" неефективна, принаймні, в двох відносинах. При виконанні запиту до бази даних, розташованої на файловому сервері, насправді відбувається запит до локальної копії даних на комп'ютері користувача. Тому перед виконанням запиту дані в локальній копії оновлюються з реальної БД. Дані оновлюються в повному об'ємі. Так, якщо таблиця БД складається з 1000 записів, а для виконання запиту (наприклад, видати суму премій за жовтень у відділі Y) реально потрібно 10 записів, все одно перегоняться всі 1000 записів. Таким чином, не потрібно мати дуже багато користувачів і запитів від них, щоб серйозно завантажити мережу, що, звичайно ж, не може не позначитися на її швидкодії.

Забезпечення цілісності БД проводиться із програми клієнта. Це потенційне джерело помилок, що порушують фізичну і логічну цілісність БД, оскільки різні програми можуть проводити контроль цілісності БД по-різному, взаємовиключними способами, або не проводити такого контролю зовсім. Набагато ефективніше управляти БД з єдиного місця і по єдиних законах, ніж з різних програм і по потенційно різних законах (все залежить від того, яке написане програмне забезпечення). Тому безпека при роботі в архітектурі "файл-сервер" невисока і завжди присутній елемент невизначеності. Секретність і конфіденційність при роботі з БД в архітектурі "файл-сервер" забезпечити також важко - будь-який, хто має доступ в каталог мережевого сервера, де зберігається БД, може змінювати таблиці БД будь-яким чином, копіювати їх, замінювати і т.д.

Архітектура "клієнт-сервер" розділяє функції програми користувача (званого клієнтом) і сервера.

Програма-клієнт формує запит до сервера, на якому розташована БД, на структурній мові запитів SQL. Видалений сервер приймає запит і переадресує його SQL-серверу БД. SQL-сервер - це спеціальна програма, що управляє видаленою базою даних. SQL-сервер забезпечує інтерпретацію запиту, його виконання в базі даних, формування результату виконання запиту і видачу його програмі-клієнту. При цьому ресурси клієнтського комп'ютера не беруть участь у фізичному виконанні запиту; клієнтський комп'ютер лише посилає запит до серверної БД і одержує результат, після чого інтерпретує його необхідним чином і представляє користувачу. Оскільки клієнтській програмі посилається результат виконання запиту, по мережі "подорожують" тільки ті дані, які необхідні клієнту. У результаті знижується навантаження на мережу. Оскільки виконання запиту відбувається там же, де зберігаються дані (на сервері), немає необхідності в пересилці великих пакетів даних. Крім того, SQL-сервер, якщо це можливо, оптимізує одержаний запит так, щоб він був виконаний в мінімальний час з найменшими накладними витратами. Все це підвищує швидкодію системи і знижує час очікування результату запиту.

При виконанні запитів сервером істотно підвищується ступінь безпеки даних, оскільки правила цілісності даних визначаються в базі даних на сервері і є єдиними для всіх програм, що використовують цю БД. Таким чином, виключається можливість визначення суперечливих правил підтримки цілісності. Могутній апарат транзакцій, підтримуваний SQL-серверами, дозволяє виключити одночасну зміну одних і тих же даних різними користувачами і надає можливість відкатів до первинних значень при внесенні в БД змін, що закінчилися аварійно. Таким чином, функціями програми-клієнта є:

·        посилка до сервера запитів;

·        інтерпретація результатів запитів, одержаних від сервера, і представлення їх користувачу в необхідній формі;

·        реалізація інтерфейсу користувача.сервер - це програма, розташована на комп'ютері мережевого сервера. SQL-сервер повинен бути завантажений на момент надходження запиту від клієнта. Функціями сервера БД є:

·        прийом запитів від програм-клієнтів, інтерпретація запитів, виконання запитів в БД, відправка результату виконання запиту програмі-клієнту;

·        управління цілісністю БД, забезпечення системи безпеки, блокування невірних дій програм-клієнтів;

·        зберігання бізнес-правил, часто використовуваних запитів у вже інтерпретованому вигляді;

·        забезпечення одночасно безпечної і відмовостійкої, розрахованої на багато користувачів роботи з одними і тими ж даними.

У архітектурі "клієнт-сервер" використовуються так звані "видалені" (або "промислові") СУБД. Промисловими вони називаються із-за того, що саме СУБД цього класу можуть забезпечити роботу інформаційних систем масштабу середнього і крупного підприємства, організації, банку. Локальні СУБД призначені для розрахованої на одного користувача роботи або для забезпечення роботи інформаційних систем, розрахованих на невеликі групи користувачів.

До розрядку промислових СУБД належать: Oracle, Gupta, Informix, Sybase, MS SQL Server DB2, InterBase і ряд інших.

Як правило, SQL-сервер управляється окремим співробітником або групою співробітників (адміністратори SQL-сервера). Вони управляють фізичними характеристиками баз даних, проводять оптимізацію, настройку і перевизначення різних компонентів БД, створюють нові БД, змінюють ті, що існують і т.д., а також видають привілеї (дозволи на доступ певного рівня до конкретних БД, SQL-серверу) різним користувачам.

Окрім цього, існує окрема категорія співробітників, званих адміністраторами баз даних. Як правило, це адміністратори сервера, розробники БД або користувачі, що мають привілеї на створення, зміну, настройку оптимальних параметрів окремих серверних БД. Адміністратори БД також відповідають за надання прав на різнорівневий доступ до супроводжуваних ними БД для інших користувачів.

2.4 Обґрунтування вибору архітектури стосовно проектованої системи


Використання архітектури "сервер" клієнта:

·        різко зменшує мережевий трафік;

·        знижує складність програм-клієнтів (оскільки тим вже немає необхідності забезпечувати цілісність і безпеку БД і стежити за параметрами розрахованої на багато користувачів роботи з БД);

·        знижує вимоги до апаратних засобів, на яких ці програми функціонують (тобто до комп'ютерів користувачів-клієнтів);

·        підвищує надійність БД, її цілісність, безпеку і секретність.

3. ОСОБЛИВОСТІ ВИКОРИСТАННЯ МОВИ SQL ПРИ РОЗРОБЦІ ІНФОРМАЦІЙНИХ СИСТЕМ

 

3.1 Історія розвитку і основні концепції мови SQL


Всі мови маніпулювання даними (ММД), створені до появи реляційних баз даних і розроблені для багатьох систем управління базами даних (СУБД) персональних комп'ютерів, були орієнтовані на операції з даними, представленими у вигляді логічних записів файлів. Це вимагало від користувачів детального знання організації зберігання даних і достатніх зусиль для вказівки не тільки того, які дані потрібні, але і того, де вони розміщені і як крок за кроком одержати їх.

Непроцедурна мова SQL (Structured Query Language - структурована мова запитів), що розглядається ж нижче, орієнтована на операції з даними, представленими у вигляді логічно взаємозв'язаних сукупностей таблиць. Особливість пропозицій цієї мови полягає в тому, що вони орієнтовані більшою мірою на кінцевий результат обробки даних, чим на процедуру цієї обробки. SQL сам визначає, де знаходяться дані, які індекси і навіть які найбільш ефективні послідовності операцій слід використовувати для їх отримання: не треба указувати ці деталі в запиті до бази даних.

Для ілюстрації відмінностей між ММД розглянемо наступну ситуацію. Хай, наприклад, ми збираємося подивитися кінофільм і хочемо скористатися для поїздки в кінотеатр послугами таксі. Одному шоферу таксі досить сказати назву фільму - і він сам знайде вам кінотеатр, в якому показують потрібний фільм. (Подібним же чином, самостійно, відшукує запитані дані SQL.)

Для іншого шофера таксі нам, можливо, буде потрібно самому дізнатися, де демонструється потрібний фільм і назвати кінотеатр. Тоді водій повинен знайти адресу цього кінотеатру.

Може трапитися і так, що нам доведеться самому дізнатися адресу кінотеатру і запропонувати водію проїхати до нього по таких-то і таких-то вулицях. У найгіршому випадку нам, можливо, навіть доведеться по дорозі давати вказівки: "Повернути наліво... проїхати п'ять кварталів... повернути направо...". (Аналогічно більший або менший рівень деталізації запиту доводиться створювати користувачу в різних СУБД, що не мають мови SQL.)

Поява теорії реляційних баз даних і запропонованої Коддом мови запитів "alpha", заснованої на реляційному численні, ініціювало розробку ряду мов запитів, які можна віднести до двох класів:

Мови, алгебри, що дозволяють виражати запити засобами спеціалізованих операторів, вживаних до відносин (JOIN - з'єднати, INTERSECT - перетнути, SUBTRACT - відняти і т.д.).

Мови числення предикатів є набором правил для запису виразу, що визначає нове відношення із заданої сукупності існуючих відносин. Іншими словами числення предикатів є метод визначення того відношення, яке нам бажано одержати (як відповідь на запит) з відносин, вже наявних в базі даних.

Розробка, в основному, йшла у відділеннях фірми IBM (мови ISBL, SQL, QBE) і університетах США (PIQUE, QUEL). Останній створювався для СУБД INGRES (Interactive Graphics and Retrieval System), яка була розроблена на початку 70-х років в Університеті шт. Каліфорнія і сьогодні входить в п'ятірку кращих професійних СУБД. Сьогодні зі всіх цих мов повністю збереглися і розвиваються QBE (Query-By-Example - запит за зразком) і SQL, а з інших узяті в розширення внутрішніх мов СУБД тільки найцікавіші конструкції.

На початку 80-х років SQL "переміг" інші мови запитів і став фактичним стандартом таких мов для професійних реляційних СУБД. У 1987 році він став міжнародним стандартом мови баз даних і почав упроваджуватися у всі поширені СУБД персональних комп'ютерів. Чому ж це відбулося?

Безперервне зростання швидкодії, а також зниження енергоспоживання, розмірів і вартості комп'ютерів привели до різкого розширення можливих ринків їх збуту, круга користувачів, різноманітності типів і цін. Природно, що розширився попит на різноманітне програмне забезпечення.

Борючись за покупця, фірми, що створюють програмне забезпечення, стали випускати на ринок все більш і більш інтелектуальні і, отже, об'ємні програмні комплекси. Багато організацій і окремі користувачі часто не могли розмістити їх на власних ЕОМ, проте не хотіли і відмовлятися від нового сервісу. Для обміну інформацією і її обміну були створені мережі ЕОМ, де програми і дані стали розміщувати на спеціальних обслуговуючих пристроях - файлових серверах.

СУБД, що працюють з файловими серверами, дозволяють безлічі користувачів різних ЕОМ (іноді розташованих достатньо далеко один від одного) діставати доступ до одних і тих же баз даних. При цьому спрощується розробка різних автоматизованих систем управління організаціями, учбових комплексів, інформаційних і інших систем, де безліч співробітників повинні використовувати загальні дані і обмінюватися створюваними в процесі роботи (навчання). Проте при такій ідеології вся обробка запитів з програм або з терміналів призначених для користувача ЕОМ виконується на цих же ЕОМ. Тому для реалізації навіть простого запиту ЕОМ часто повинна прочитувати з файлового сервера і (або) записувати на сервер цілі файли, що веде до конфліктних ситуацій і перевантаження мережі.

Для виключення вказаних і деяких інших недоліків була запропонована технологія клієнт-сервер, по якій запити призначених для користувача ЕОМ (Клієнт) обробляються на спеціальних серверах баз даних (Сервер), а на ЕОМ повертаються лише результати обробки запиту. При цьому, природно, потрібна єдина мова спілкування з Сервером і як така мова вибрана SQL. Тому всі сучасні версії професійних реляційних СУБД (DB2, Oracle, Ingres, Informix, Sybase, Progress, Rdb) і навіть нереляційних СУБД (наприклад, Adabas) використовують технологію клієнт-сервер і мову SQL.

Існує думка: Оскільки велика частина запитів формулюється на SQL, практично байдуже, що це за СУБД - був би SQL.

Реалізація в SQL концепції операцій, орієнтованих на табличне представлення даних, дозволило створити компактну мову з невеликим (менше 30) набором операторів. Мова SQL може використовуватися як інтерактивна (для виконання запитів) і як вбудована (для побудови прикладних програм).

На рис. 3.1 показана схема, що відображає принцип використання SQL. Користувач передає запит інтерпретатору, який, у свою чергу, повертає уявлення, таблицю або курсор. Ці об'єкти знаходяться на так званому віртуальному рівні і формуються тільки за запитом. Але вони взаємодіють з реальним рівнем, тобто з таблицями баз даних, на основі яких відбувається формування віртуальних об'єктів. Звичайно, дане розділення є умовним, але воно добре відображає ідеологію SQL.

 

3.2 Структура запитів до окремих таблиць


Достатньо поширеним є завдання отримання даних з однієї або декількох таблиць і формування на їх основі яких-небудь звітів. У даному розділі будуть викладені базові поняття SQL і способи створення відповідних запитів.

 

3.3.1 Оператор SELECT

Оператор SELECT є виразом, що ініціює виконання запиту. В даному випадку запит є командою на отримання даних. Вираз SELECT має строго певний формат:[[ALL] | DISTINCT]{ * | елемент_SELECT [.елемент _SELECT] ...}{ базова_таблиця | уявлення} [псевдонім]

[.{ базова_таблиця | уявлення} [псевдонім]]

[WHERE умова]

[GROUP BY назва поля (полів) [HAVING фраза]]:

Рис. 3.1 Схема взаємодії з базою даних за допомогою SQL

3.3.2 Вибірка по умові

Вибірку по умові реалізує оператор WHERE. Оператор є частиною виразу SELECT і служить для завдання умов відбору записів в результуючий набір. В ході виконання запиту відбувається перевірка всіх записів на відповідність умові відбору. Як приклад можна привести досить простий запит:State,City,Company FROM CustomerState = 'CA'

При обробці запиту був похідний відбір всіх записів, поле State яких має значення СА.

Можна провести вибірку по співпадаючих значеннях полів. Наприклад, необхідно знайти компанії, в яких телефон і факс мають один і той же номер. Умова запиту в цьому випадку буде досить простим:Company,Phone,Fax FROM CustomerPhone = Fax

Виключення значень, що повторюються

Для отримання результатів без значень, що повторюються, використовується оператор DISTINCT. Наприклад:DISTINCT Country FROM Customer

Обчислювані поля

Автоматичне обчислення значень полів досить часто застосовується в найрізноманітніших запитах. Приклад відповідного запиту виглядає досить просто:OnHand,OnOrder,(OnHand*OnOrder) AS

Твір, (OnHand+OnOrder) AS Сума FROM Parts

У даному прикладі проводиться перемножування і підсумовування значень полів OnHand і OnOrder.

Ті ж дії з полями можуть бути проведені з використанням числових констант. Оператор AS привласнює даному полю інше ім'я, яке буде використане в результуючому наборі.

Запит SELECT може також включати числові і текстові константи. Як приклад можна привести наступний запит:OnHand,OnOrder,'MUL',(OnHand + 1) AS Плюс,’SUB’,(OnHand - 1) AS Мінус FROM Parts

У лапках вказані текстові константи, які будуть включені в результуючу таблицю як значення відповідних полів.

Оператори порівняння і логічні оператори

Реляційним оператором називають математичний символ, який указує на певний тип порівняння між двома значеннями. Реляційні оператори, або оператори порівняння, можуть використовуватися для визначення того, чи відповідає дане значення якому-небудь діапазону.

Логічні оператори дозволяють задати в запиті логічні умови. Оператор AND реалізує логічне “І”. Оператор OR реалізує логічне “АБО”. Вираз з його використанням, вважатиметься істинним, якщо хоч би одна з умов теж є істиною. Оператор NOT означає логічне заперечення. Його дія зводиться до того, що він інвертує логічну умову, перед якою його розташовують.

Як приклад можна привести запит, що дозволяє вибрати співробітників, одержуючих заробітну платню в певному чисельному проміжку. Дані витягуватимуться з таблиці Employee:LastName, FirstName, Salary FROM EmployeeSalary >= 25000 AND Salary <= 30000

В результаті виконання запиту повертаються імена співробітників із заробітною платнею від 25 до 30 тисяч включно. В даному випадку оператор AND використовується для завдання діапазону вибираних значень.

Тепер можна змінити даний запит. Можна відшукати всіх співробітників, для яких окрім приведених вище умов поле PhoneExt яких має значення 22:LastName, FirstName, Salary, PhoneExt FROM EmployeeSalary >= 25000 AND Salary <= 30000 and PhoneExt = '22'

Якщо ж потрібно буде відшукати співробітників, поле PhoneExt яких має значення, не рівне 22, запит буде трохи змінений:LastName, FirstName, Salary, PhoneExt FROM EmployeeSalary >= 25000 AND Salary <= 30000 and not PhoneExt = '22'

Як видно з тексту запиту, логічна умова NOT дозволила виключити непотрібні номери.

Тепер можна розглянути приклад запиту з використанням оператора OR. Припустимо, менеджеру знадобилося одержати списки всіх співробітників по прізвищу Johnson. Або тих співробітників, які одержують заробітну платню більше 45 000. Скласти запит буде неважко:LastName, FirstName, Salary FROM EmployeeLastName = 'Johnson' or Salary > 45000

Варто звернути увагу на дію оператора 0R. У набір даних були включені записи, значення поля Salary яких перевищувало 40 000, і ті записи, в яких поле LastName мало значення Johnson.

Використання оператора IN

Оператор IN визначає масив значень, в який може входити або не входити значення поля даного запису. Наприклад, необхідно вибрати співробітників із заробітною платнею 40 000, 55 500 і 25 000. Запит потрібно буде переробити:LastName, FirstName, Salary FROM EmployeeSalary = 40000 or Salary = 55500 or Salary = 25000

Проте цей же запит можна написати в коротшій і красивішій формі за допомогою оператора IN:LastName, FirstName, Salary FROM EmployeeSalary IN (40000, 55500, 25000)

Як аргументи оператору IN були передані значення полів, по яких проводився відбір записів.

Оператор IN може використовуватися і для пошуку символьних значень. Припустимо, нам необхідно з'ясувати назви компаній, що знаходяться в містах Christiansted, Grand Cayman і St. Thomas. Ці дані міститися в таблиці Customer. Запит знову знадобиться трохи змінити:Company, City FROM CustomerCity IN (‘Christiansted’,’Grand Cayman’,’St.Thomas’)

Використання оператора BETWEEN

Оператор BETWEEN використовується для вказівки діапазону значень, які використовуються для установки умови відбору записів. Цей оператор чутливий до порядку переліку параметрів, що визначають межі діапазону. Як приклад можна привести простий запит:CustomerID, EmployeeID, ShipName FROM OrdersEmployeeID BETWEEN 3 AND 5

В результаті виконання запиту були вибрані записи, значення поля EmployeeID, яких знаходяться в проміжку від трьох до п'яти включно.

Наступний приклад показує, як можна вибрати номери замовлень, зроблених за певний проміжок часу від 04.07.1996 до 08.07.1996:OrderlD, OrderDate, ShipName FROM OrdersOrderDate BETWEEN '07.04.1996' AND '07.08.1996'

Припустимо, вимоги змінилися. Тепер необхідно вибрати ті номери замовлень, які не потрапляють у вказаний проміжок часу і вага вантажу в яких складає більше ста одиниць. В цьому випадку запит виглядатиме наче:OrderID, OrderDate, ShipName, Freight FROM OrdersOrderDate NOT BETWEEN '07.04.1996' AND '07.08.1996' AND Freight > 100

Використання оператора LIKE

Оператор LIKE використовується для вибору всіх записів, в які входить підрядок, вказаний як параметр. Як умову оператор також приймає спеціальні символи. Символ підкреслення замінює будь-який одиночний символ, а знак відсотка позначає будь-яку кількість символів.

Припустимо, необхідно вибрати компанію, в назві якої не вистачає декількох букв. В цьому випадку назву можна позначити як S?mons?bistro. Відповідний запит використовуватиме вказаний оператор LIKE:CompanyName, ContactName FROM CustomersCompanyName LIKE 'S_rnons_bistro'

Можна скласти запит, в якому проводитиметься пошук якогось підрядка, що входить в запис. Припустимо, що необхідно знайти всі компанії, в назвах яких зустрічається послідовність символів “ric”.

Задачу вирішує нескладний запит

SELECT CompanyName, ContactName FROM CustomersCompanyName LIKE ‘%Ric%’

Можна розширити умови відбору даних. Припустимо, що необхідно знайти всі компанії, в назві яких зустрічається поєднання символів ‘г?с’, тобто символ у середині підрядка невідомий.CompanyName, ContactName FROM CustomersCompanyName LIKE ‘%R c%’

 

3.3.3 Агрегатні функції

В деяких випадках потрібно в самому запиті провести обчислення значень полів, одержати кількість знайдених записів, провести пошук максимального значення поля або виконати іншу обчислювальну роботу. Функції, що реалізують ці можливості, називаються агрегатними. Агрегатні функції повертають одне значення для всього поля таблиці. Список агрегатних функцій приведений нижче:

·        Оператор COUNT повертає кількість записів, що задовольняють умові запиту.

·        Оператор SUM підсумовує значення записів поля.

·        Оператор AVG обчислює середнє значення записів поля.

·        Оператор МАХ повертає найбільше значення даного поля.

·        Оператор MIN повертає найменше значення даного нуля.

Агрегатні функції використовуються подібно до імен полів в запиті, а справжні імена полів передаються їм як аргументи. З операторами SUM і AVG можуть використовуватися тільки числові поля. З операторами COUNT, MAX і MIN можуть використовуватися числові і символьні поля. У разі застосування функцій МАХ і MIN до символьних полів їх значення будуть трансльовані в ASCII-код. Мінімальному значенню функції відповідатиме символ алфавіту, що знаходиться ближче до його початку, максимального, - що знаходиться ближче до кінця.

Нижче приведений запит, що вибирає з таблиці Orders середнє значення ваги вантажу з поля Freight, мінімальне значення ваги вантажу, максимальне значення ваги вантажу, його сумарне значення і кількість вантажів, вага яких складає більше трьохсот одиниць.AVG(Freight) AS Середнє, MIN(Freight) AS Мін, MAX(Freight) AS Макс, SUM(Freight) AS Сумарне, COUNT(Freight) AS Кількість FROM OrdersFreight >300

Функція COUNT робить підрахунок всіх записів. Для того, щоб виключити повтори, слід використовувати оператора DISTINCT. Цей оператор розташовується перед назвою поля, усередині функції COUNT. Запит, демонструючий цей механізм, показаний нижче:COUNT(DISTINCT City) AS Кількість_міст FROM Customers

В ході виконання запиту з оператором DISTINCT було зафіксовано 69 записів. Без використання оператора - 91. Для виключення повторів при використанні функцій AVG і SUM теж може бути використаний цей оператор.

Оператор GROUP BY використовується для визначення полів, до яких можуть застосовуватися агрегатні функції. У випадку, якщо цей оператор явно не вказаний, всі поля, вказані у виразі SELECT, трактуються як аргументи агрегатних функцій. Поля, вказані як параметри оператора GROUP BY, стають такими, що групуються. Всі записи результуючого набору, що мають однакові значення групуючих полів, утворюють єдину групу. Далі до кожної такій групі буде застосована агрегатна функція. Фактично, оператор GROUP BY дає можливість об'єднувати поля і агрегатні функції в єдиному запиті.

Ілюструє вищесказане запит, що відшукує міста, в яких розташовані фірми, кількість цих міст і максимальне значення поштового індексу для фірми, розташованої в даному місті:City, COUNT(*) AS Кількість, MAX(PostalCode) AS Почтовий_індекс FROM Customers GROUP BY City

Легко відмітити, що поле City не входить в агрегатну функцію як параметр, тому його було оголошено з використанням оператора GROUP BY. В ході виконання запиту були вибрані міста, і для кожного міста була підрахована кількість входжень.

Цей приклад можна ускладнити. Можна створити запит, який одержує тільки ті міста, які повторюються в таблиці більше двох разів, і при цьому в кінцевий результат не повинне включатися місто Buenos Aires. Оператор WHERE в даному випадку використовувати не вийде, оскільки він працює тільки з окремими записами, а не з масивами. Доведеться використовувати оператора HAVING, який є аналогом оператора WHERE, але може працювати з агрегатними функціями. Сам запит буде досить сильно змінений:City, COUNT(*) AS Кількість, MAX(PostaTCode) AS

Почтовый_индекс FROM Customers Where City <> 'Buenos Aires'BY City HAVING COUNT (*) >=3

 

3.3.4 Сортування записів

Оператор ORDER BY використовується для впорядковування записів результуючого набору даних. Записи сортуються відповідно до порядку проходження полів і їх значень. Якщо сортування проводитиметься за збільшенням, то слід використовувати параметр ASC. Для сортування по убуванню використовується параметр DESC. Як приклад можна привести нескладний SQL- запитCompanyName,ContactName,City FROM CustomersBY City

Сортування записів проводиться по полю City.

До створеного запиту можна додати сортування по кількості міст у порядку убування записів:City, COUNT(*) AS Кількість, MAX(PostalCode) AS Почтовый_индекс FROM Customers Where City <> 'Buenos Aires'BY City HAVING COUNT (*) >=3BY Кількість DESC, City ASC

Потрібно звернути увагу на те, що як аргумент параметра ORDER BY була використана назва поля, оскільки його значення є результатом агрегатної функції COUNT. Для включення сортування по убуванню був вказаний параметр DESC, розташований після назви поля.

3.4 Багатотабличні запити


Як правило, при проектуванні таблиць в них прагнуть включати тільки ті поля, які однозначно пов'язані з даною суттю. Це робиться для того, щоб було простіше модифікувати базу даних і підтримувати її цілісність. У зв'язку з цим виникає необхідність створення багатотабличних запитів, тобто запитів, що використовують для формування результату даних з декількох таблиць.

3.4.1 Об'єднання таблиць

У багатьох випадках потрібно одержувати дані з декількох таблиць і зводити їх в одну результуючу таблицю. Така операція називається об'єднанням таблиць. При об'єднанні проводиться скріплення полів різних таблиць. При цьому між полями встановлюються зв'язки за рахунок використання відповідних довідкових значень.

Після оператора FROM таблиці перераховуються через кому. Повне ім'я поля фактично складається з імені таблиці і самого поля, розділених крапкою. Якщо всі стовпці об'єднуваних таблиць мають різні імена, то до них можна звертатися безпосередньо, не указуючи ім'я таблиці, якій вони належать.

Для розгляду принципів роботи багатотабличних запитів слід створити простий приклад. Припустимо, необхідно дізнатися назви судів з вантажем, які відправила кожна компанія, вагу відправленого вантажу, дату його відправки, контактну особу і його телефонOrders.ShipName AS Судно, Orders.Freight AS

Вес_груза, Orders.OrderDateДата_Отправки, Customers.ContactName, Customers.PhoneCustomers, OrdersCustomers.CustomerID=Orders.CustomerID

При виконанні запиту були вибрані поля тільки тих записів, у яких значення поля CustomerID співпадали. За допомогою цього поля були об'єднані і зв'язані дві таблиці.

Цей запит можна ускладнити. Припустимо, що необхідно одержати інформацію саме про ті судна, вантаж яких важив більше 500 тонн і був відправлений до періоду з 17.03.1998 по 17.07.1998:Orders.ShipName AS Судно, Orders.Freight AS Вес_груза, Orders.OrderDate AS Дата_Отправки, Customers.ContactName, Customers.PhoneCustomers, OrdersCustomers.CustomerID = Orders.CustomerID AND Freight > 500 AND.OrderDate BETWEEN '03.17.1998' AND '07.17.1998'

За допомогою цього механізму можна об'єднувати більше двох таблиць, указуючи пов’язуючі поля і умови відбору записів.

 

3.4.2 Вкладені підзапити

Вкладені запити можуть використовуватися як додаткові умови відбору записів. Для того, щоб зрозуміти механізм роботи цієї умови, слід розглянути простий запит, в якому виводиться список назв судів, які обслужив співробітник на ім'я Steven Buchanan і дат їх відправки:ShipName AS Название_судна, OrderDate AS Дата_отправки FROM Orders WHERE EmployeeID IN

(SELECT EmployeeID FROM EmployeesFirstName = 'Steven' AND LastName = 'Buchanan'):

У цьому запиті оператор IN може бути замінений оператором рівності. Проте слід враховувати, що оператор IN повертає масив значень, а скалярний оператор рівності - тільки одне.

Виконання запитів з вкладеними підзапитами завжди починається з підзапиту, розташованого на самому нижньому рівні. У даному підзапиті відшукується індивідуальний номер співробітника EmployeelD по його імені і прізвищу. Основний запит приймає знайдене значення як параметр.

Можна ускладнити вкладений запит. У прикладі буде приведений запит, що відображає список співробітників, що обслужили більше дев'яноста суден:TitleOfCourtesy, FirstName, LastName FROM EmployeesEmployeeID IN

(SELECT EmployeeID FROM Orders GROUP BY EmployeeID(EmployeeID) > 100)BY FirstName, LastName

У вкладеному запиті проводиться відбір ідентифікаторів працівників, що зустрічаються в таблиці більше 90 разів.

3.4.3 Використання оператора EXISTS

Логічні оператори EXIST і NOT EXIST повертають значення True або False залежно від наявності записів, що задовольняють умові пошуку. Як правило, оператор EXISTS використовується з вкладеними запитами. Для ілюстрації принципів його застосування можна використовувати досить простий запитTitleOfCourtesy, FirstName, LastName FROM EmployeesEXISTS

(SELECT * FROM OrdersFreight > 1000)BY LastName

У підзапиті вибираються рядки, значення яких більше 1000. Оскільки подібні рядки існують, то оператору WHERE передається значення True і вираз SELECT вибирає відповідні записи.

Можна змінити умову, що накладається на полі Freight, і використовувати замість оператора EXISTS оператор NOT EXISTSTitleOfCourtesy.FirstName.LastName FROM EmployeesNOT EXISTS

(SELECT * FROM OrdersFreight > 2000)BY LastName

Результат виконання запиту буде аналогічний попередньому. Потрібно розібратися, чому так відбулося. Оператор NOT EXISTS поверне значення True тільки в тому випадку, якщо жоден запис не задовольнятиме заданій умові. Оскільки жодне судно не перевезло більш ніж 2 тисячі тонн вантажу, то жоден запис не буде вибраний.

3.4.4 Використання об'єднання UNION

Оператор UNION використовується для об'єднання результатів двох і більш запитів в єдиний набір полів і записів. Коли результати запитів піддаються об'єднанню, їх стовпці висновку повинні бути сумісні. Це означає, що всі запити повинні указувати однакове число стовпців в одному і тому ж порядку. І всі співпадаючі поля повинні мати один і той же тип. Це ілюструється простим запитом

SELECT CustomerID FROM CustomersCustomerID FROM Orders

В ході виконання запиту в результуючу таблицю були включені записи з двох таблиць.

4. ОПИС ФУНКЦІОНАЛЬНИХ МОЖЛИВОСТЕЙ ТА ПРОГРАМНОЇ РЕАЛІЗАЦІЇ ПРОЕКТОВАНОЇ СИСТЕМИ

 

4.1 Функціональне призначення та технологічні особливості розробки


Гнучка система управління інформаційними потоками магазину комп’ютерної техніки була реалізована за допомогою інструментального засобу прискореної розробки програм системи програмування Delphi, технології Rave Reports і сервера баз даних під керуванням MS SQL Server 2008.

Розроблена система реалізує наступні функції:

·         Облік і формування асортиментів комп'ютерної техніки (КТ) необхідної на складі;

·        Облік постачальників комп'ютерної техніки;

·        Облік поставленої на склад комп'ютерної техніки;

·        Облік проданої зі складу комп'ютерної техніки;

·        Формування списку комп'ютерної техніки для замовлення на склад;

·        Контроль продажу комп'ютерної техніки зі складу;

·        Вивід на друк й збереження в окремому файлі у форматах (*.pdf; *.rtf; *.html; *.prn; *.txt) звітів: асортименти на складі; постачальники комп'ютерної техніки; замовити комп'ютерну техніку.

Склад розробленої системи:

·        SalesRecord.exe - виконуємий файл, розробленої системи;

·        SalesRecord_Data.mdf - файл бази даних SalesRecord, сервера баз даних MS SQL Server 2008.

·        SalesRecord_Log.ldf - журнал транзакцій бази даних SalesRecord, сервера баз даних MS SQL Server 2008.

·        Report.rav - проект звіту середовища Rave (Report Authoring Visual Environment)

 

4.2 Логіко-функціональна схема роботи користувача з системою


В загальному вигляді логіко-функціональну схему роботи користувача з системою можна представити наступним чином (рис. 4.1).


Рис. 4.1 Логіко-функціональна схема роботи користувача із системою

 


4.3 Опис моделі й структури таблиць і подань бази даних SalesRecord


База даних SalesRecord представлена виді 6 таблиць й 7 подань.

Таблиці бази даних мають наступну структуру:

Таблиця 4.1

Структура полів таблиці «Типи компонентів КТ» - dbo.TypeComponent

Ім'я поля

Тип поля

Опис

IDTypeComponent

int (Autoincrement)

Код типу компонента КТ (ключове поле)

TypeComponent

char[30]

Тип компонента КТ


Таблиця 4.2

Структура полів таблиці «Виробники компонентів КТ» - dbo.Mainframer

Ім'я поляТип поляОпис



IDMainframer

int (Autoincrement)

Код виробника компонента КТ (ключове поле)

Mainframer

char[20]

Виробник компонента КТ


Таблиця 4.3

Структура полів таблиці «Компоненти КТ» - dbo.Component

Ім'я поляТип поляОпис



IDComponent

int (Autoincrement)

Код компонента КТ (ключове поле)

TypeComponent

int

Код типу компонента КТ

Mainframer

int

Код виробника компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

Image

image

Зображення компонента КТ

NoSupply

Припинити поставки

Minimal

int

Мінімальна партія на складі компонента КТ

Таблиця 4.4

Структура полів таблиці «Постачальники компонентів КТ» - dbo. Supplier

Ім'я поляТип поляОпис



IDSupplier

int (Autoincrement)

Код постачальника компонентів КТ(ключове поле)

Supplier

char[30]

Найменування фірми постачальника

Crucial

char[50]

П. І. Б. відповідального за поставки

Post

char[30]

Посада відповідального за поставки

Address

char[50]

Адреса фірми постачальника

[Index]

int

Індекс

Land

char[20]

Країна

Region

char[30]

Регіон

City

char[30]

Місто

Phone

int

Телефон

Fax

int

Факс

Email

char[50]

Email


Таблиця 4.5

Структура полів таблиці «Компоненти КТ, що отримані на склад» - dbo.Warehouse

Ім'я поляТип поляОпис



IDWarehouse

int (Autoincrement)

Код одержання компонентів КТ на склад (ключове поле)

Component

int

Код компонента КТ

Supplier

int

Код постачальника компонента КТ

Delivery

datetime

Дата одержання компонента КТ на склад

Counts

int

Кількість отриманих компонентів КТ

Val

money

Ціна по який були придбані компоненти КТ

Markup

int

Відсоток націнки на компоненти КТ при продажу


Таблиця 4.6

Структура полів таблиці «Компоненти КТ продані зі складу» - dbo.Offtake

Ім'я поляТип поляОпис



IDOfftake

int (Autoincrement)

Код продажів компонентів КТ зі складу (ключове поле)

Warehouse

int

Код одержання компонентів КТ на склад

DataOfftake

datetime

Дата продажу компонентів КТ

Counts

int

Кількість проданих компонентів КТ


Структурна схема взаємозв'язку таблиць бази даних SalesRecord представлена на рисунку:

Рис. 4.2 Структурна схема взаємозв'язку таблиць бази даних

Подання бази даних мають наступну структуру:

Структура подання «Всі поставки асортиментів комп'ютерної техніки» - dbo.FindCount

Рис. 4.3 Структурна схема взаємозв'язку таблиць подання dbo.FindCount

Нижче наведений лістінг запиту подання dbo.FindCount.Component.IDComponent,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.Model,.Component.Characteristic,(dbo.Warehouse.Counts) AS FindCount,.Component.Minimal,.Component.NoSupply,.Mainframer.IDMainframer.Warehouse RIGHT OUTER JOIN.Component INNER JOIN.TypeComponent ON dbo.Component.TypeComponent = dbo.TypeComponent.IDTypeComponent INNER JOIN.Mainframer ON dbo.Component.Mainframer = dbo.Mainframer.IDMainframer ON.Warehouse.Component = dbo.Component.IDComponentBY.Component.IDComponent, dbo.TypeComponent.TypeComponent, dbo.Mainframer.Mainframer, dbo.Component.Model,.Component.Characteristic, dbo.Component.Minimal, dbo.Component.NoSupply, dbo.Mainframer.IDMainframer

Таблиця 4.7

Структура полів подання dbo.FindCount

Ім'я поляТип поляОпис



IDComponent

int

Код компонента КТ

IDMainframer

int

Код виробника компонента КТ

TypeComponent

char[30]

Тип компонента КТ

Mainframer

char[20]

Виробник компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

FindCount

int

Кількість поставлених асортиментів КТ

Minimal

bit

Припинити поставки

NoSupply

int

Мінімальна партія на складі компонента КТ


Структура подання «Всі продажі асортиментів комп'ютерної техніки» - dbo.SellCount

Рис. 4.4 Структурна схема взаємозв'язку таблиць подання dbo.SellCount

Нижче наведений лістінг запиту подання dbo.SellCount.Warehouse.Component,(dbo.Offtake.Counts) AS SellCount.Offtake RIGHT OUTER JOIN.Warehouse ON dbo.Offtake.Warehouse = dbo.Warehouse.IDWarehouseBY dbo.Warehouse.Component

Таблиця 4.8

Структура полів подання dbo.SellCount

Ім'я поляТип поляОпис



Component

int

Код компонента КТ

SellCount

int

Кількість проданих асортиментів КТ


Структура подання «Всі поставки й продажі асортиментів комп'ютерної техніки» - dbo. OrderWarehouse

Рис. 4.5 Структурна схема взаємозв'язку таблиць подання dbo.OrderWarehouse

Нижче наведений лістінг запиту подання dbo.OrderWarehouse.FindCount.IDComponent,.FindCount.TypeComponent,.FindCount.Mainframer,.FindCount.Model,.FindCount.Characteristic,.FindCount.FindCount,.SellCount.SellCount,.FindCount.Minimal,.FindCount.NoSupply.FindCount LEFT OUTER JOIN.SellCount ON dbo.FindCount.IDComponent = dbo.SellCount.Component

Таблиця 4.9

Структура полів подання dbo.OrderWarehouse

Ім'я поляТип поляОпис



IDComponent

int

Код компонента КТ

TypeComponent

char[30]

Тип компонента КТ

Mainframer

char[20]

Виробник компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

FindCount

int

Кількість поставлених асортиментів КТ

SellCount

int

Кількість проданих асортиментів КТ

Minimal

bit

Припинити поставки

NoSupply

int

Мінімальна партія на складі компонента КТ


Структура подання «Всі поставки й продажі асортиментів комп'ютерної техніки зі складу» - dbo.RemWarehouse

Рис. 4.6 Структурна схема взаємозв'язку таблиць подання dbo.RemWarehouse

Нижче наведений лістінг запиту подання dbo.RemWarehouse.Component.IDComponent,.Warehouse.IDWarehouse,.Supplier.IDSupplier,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.Model,.Component.Characteristic,.Warehouse.Delivery,.Warehouse.Counts AS FindCouns,.Warehouse.Val,.Warehouse.Markup,(dbo.Offtake.Counts) AS SellCount,.Supplier.Supplier.Supplier INNER JOIN.Warehouse ON dbo.Supplier.IDSupplier = dbo.Warehouse.Supplier INNER JOIN.Component ON dbo.Warehouse.Component = dbo.Component.IDComponent INNER JOIN.TypeComponent ON dbo.Component.TypeComponent = dbo.TypeComponent.IDTypeComponent INNER JOIN.Mainframer ON dbo.Component.Mainframer = dbo.Mainframer.IDMainframer LEFT OUTER JOIN.Offtake ON dbo.Warehouse.IDWarehouse = dbo.Offtake.WarehouseBY.Offtake.Warehouse,.Supplier.Supplier,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.IDComponent,.Component.Model,.Component.Characteristic,.Warehouse.Delivery,.Warehouse.Counts,.Warehouse.Val,.Warehouse.Markup,.Warehouse.IDWarehouse,.Supplier.IDSupplierBY.Component.IDComponent

Таблиця 4.10

Структура полів подання dbo.RemWarehouse

Ім'я поляТип поляОпис



IDComponent

int

Код компонента КТ

IDWarehouse

int

Код одержання компонентів КТ на склад

IDSupplier

int

Код постачальника компонентів КТ

TypeComponent

char[30]

Тип компонента КТ

Mainframer

char[20]

Виробник компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

Delivery

datetime

Дата одержання компонента КТ на склад

FindCount

int

Кількість поставлених асортиментів КТ на склад

Val

money

Ціна по який були придбані компоненти КТ

Markup

int

Відсоток націнки на компоненти КТ для продажу

SellCount

int

Кількість проданих асортиментів КТ зі складу

Supplier

char[30]

Найменування фірми постачальника


Структура подання «Всі поставки асортиментів комп'ютерної техніки на склад» - dbo.FindCountWarehouse

Рис. 4.7 Структурна схема взаємозв'язку таблиць подання dbo.FindCountWarehouse

Нижче наведений лістінг запиту подання dbo.FindCountWarehouse.Component.IDComponent,.Warehouse.IDWarehouse,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.Model,.Component.Characteristic,(dbo.Warehouse.Counts) AS FindCount,.Component.Minimal,.Component.NoSupply,.Warehouse.Val,.Warehouse.Markup,.Mainframer.IDMainframer.Warehouse RIGHT OUTER JOIN.Component INNER JOIN.TypeComponent ON dbo.Component.TypeComponent = dbo.TypeComponent.IDTypeComponent INNER JOIN.Mainframer ON dbo.Component.Mainframer = dbo.Mainframer.IDMainframer ON.Warehouse.Component = dbo.Component.IDComponentBY.Component.IDComponent,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.Model,.Component.Characteristic,.Component.Minimal,.Component.NoSupply,.Warehouse.Val,.Warehouse.Markup,.Warehouse.IDWarehouse,.Mainframer.IDMainframer

Таблиця 4.11

Структура полів подання dbo.FindCountWarehouse

Ім'я поляТип поляОпис



IDComponent

int

Код компонента КТ

IDMainframer

int

Код виробника компонента КТ

IDWarehouse

int

Код одержання компонентів КТ на склад

TypeComponent

char[30]

Тип компонента КТ

Mainframer

char[20]

Виробник компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

FindCount

int

Кількість поставлених асортиментів КТ на склад

Minimal

bit

Припинити поставки

NoSupply

int

Мінімальна партія на складі компонента КТ

Val

money

Ціна по який були придбані компоненти КТ

Markup

int

Відсоток націнки на компоненти КТ для продажу


Структура подання «Всі продажі асортиментів комп'ютерної техніки зі складу» - dbo.SellCountWarehouse

Рис. 4.8 Структурна схема взаємозв'язку таблиць подання dbo. SellCountWarehouse

Нижче наведений лістінг запиту подання dbo.SellCountWarehouse,(Counts) AS SellCount.OfftakeBY

Таблиця 4.12

Структура полів подання dbo.SellCountWarehouse

Ім'я поляТип поляОпис



Warehouse

int

Код одержання компонентів КТ на склад

SellCount

int

Кількість проданих асортиментів КТ зі складу


Структура подання «Асортименти комп'ютерної техніки» -.Report_Component

Рис. 4.9 Структурна схема взаємозв'язку таблиць подання dbo.Report_Component

Нижче наведений лістінг запиту подання dbo.Report_Component.Component.IDComponent,.TypeComponent.IDTypeComponent,.Mainframer.IDMainframer,.TypeComponent.TypeComponent,.Mainframer.Mainframer,.Component.Model,.Component.Characteristic,.Component.Image,.Component.NoSupply,.Component.Minimal.TypeComponent INNER JOIN.Component ON dbo.TypeComponent.IDTypeComponent = dbo.Component.TypeComponent INNER JOIN.Mainframer ON dbo.Component.Mainframer = dbo.Mainframer.IDMainframerBY.TypeComponent.IDTypeComponent,.Mainframer.IDMainframer

Таблиця 4.13

Структура полів подання dbo.Report_Component

Ім'я поляТип поляОпис



IDComponent

int

Код компонента КТ

IDTypeComponent

int

Код типу компонента КТ

IDMainframer

int

Код виробника компонента КТ

TypeComponent

char[30]

Тип компонента КТ

Mainframer

char[20]

Виробник компонента КТ

Model

char[200]

Найменування компонента КТ

Characteristic

char[200]

Характеристики компонента КТ

Image

image

Зображення компонента КТ

NoSupply

bit

Припинити поставки

Minimal

int

Мінімальна партія на складі компонента КТ

4.4 Інтерфейс користувача проектованої системи


Інтерфейс користувача представленої системи, максимально адаптований для користувача. Він інтуїтивно зрозумілий і має всі необхідні коментарі й підказки. Розгалужена довідкова система подає вичерпну інформацію про основні функціональні можливості й можливі варіанти експлуатації системи.

Інтерфейс користувача має головне меню, панелі інструментів із кнопками, бічну панель вибору подань інформації.

Кожний з підпунктів забезпечений іконкою й комбінацією гарячих клавіш, що дозволяє прикрасити інтерфейс, а також робить роботу користувача із системою більш продуктивною. Робота із системою починається з підключення до бази даних SalesRecord. Якщо при підключенні до бази даних відбулася помилка, система видасть вікно “Настроювання підключення до бази даних”.

Після зміни або заповнення потрібних полів, активується кнопка «Ok», нажавши її, відбувається підключення до бази даних й у випадку вдалого підключення, настроювання записуються до системного реєстру й наступного разу при запуску системи записані настроювання будуть зчитані з реєстру.

Після запуску системи користувачеві надається інформація із продажів комп'ютерної техніки у вигляді подань і звітних документів.

Для відображення інформації із продажів комп'ютерної техніки в системі передбачені наступні подання:

1.       Асортименти комп'ютерної техніки;

2.       Постачальники комп'ютерної техніки;

.        Всі поставки комп'ютерної техніки;

.        Всі продажі комп'ютерної техніки;

.        Замовити комп'ютерну техніку;

.        Продати комп'ютерну техніку.

Для перемикання між поданнями необхідно на бічній панелі вибору подання, нажати відповідну кнопку подання.

Нижче описані всі подання системи й процес роботи з ними.

Подання «Асортименти комп'ютерної техніки”

Після запуску системи, в основному вікні програми виводиться подання “Асортименти комп'ютерної техніки” (рис. 4.14 а). У даному поданні виводиться вся інформація про асортименти комп'ютерної техніки, необхідної для продажу.

Інформація представлена в наступному виді:

1.         Тип (тип комп'ютерної техніки);

2.       Виробник (виробник комп'ютерної техніки);

.        Модель (модель комп'ютерної техніки);

.        Характеристика (характеристика комп'ютерної техніки);

.        Поставки припинені (відмітка про припинення поставок);

.        Мінімальні залишок (мінімальна кількість на складі);

По кожних асортиментах нижче представлена детальна інформація зі складу:

1.       надійшло на склад (дата надходження на склад);

2.       у кількості (кількість техніки, що надійшла);

.        за ціною (ціна по який придбана техніка);

.        продане (кількість проданої техніки);

.        залишок (залишок техніки на складі);

.        постачальник (постачальник комп'ютерної техніки);

У даному поданні можна проаналізувати попит на КТ і зробити відповідні дії, припинити поставки або збільшити мінімальний залишок на складі.

Для зручності аналізу у всіх поданнях передбачене угруповання по полях, для чого будь-яке поле виділяється мишею й переноситься в поле, що групує, над таблицею. Всі дані в таблиці згрупуються по відповідному полю.

Наступне поле, перенесене в поле угруповання, виводить дані детального угруповання.

Для розкриття або закриття згрупованих списків даних необхідно мишею відкрити або закрити кожне поле списку, нажавши відповідно на кнопку “+” або

“-„ ліворуч від згрупованого списку поля.

Для розкриття всіх згрупованих списків полів необхідно вибрати меню «Дані» і вибрати відповідний пункт меню “розгорнути” або “згорнути”, або ж нажати відповідно кнопки «F2» або «F3».

Так само у всіх поданнях передбачений відбір, фільтрація й сортування по будь-якій умові й полю. Для цього необхідно ліворуч від назви поля нажати на символ  й у списку значень поля, що відкрилися, вибрати потрібне значення, а для детального відбору вибрати пункт меню “(Custom…)”,після чого на екрані з'явиться вікно «Custom Filter» , де необхідно заповнити умову вибору й нажати кнопку «Ок».

Після вибору в таблиці будуть відбиті всі рядки відповідному критерію вибору, а в низу таблиці з'явиться поле, що відбиває умови вибору.

Дану умову вибору можна змінити або зберегти для подальшого використання. Для цього необхідно в полі умови вибору нажати кнопку «Customize...», і у вікні, що з'явилося, «Filter builder» додати або змінити умову вибору, після чого нажати кнопку «Apply» для застосування умови вибору або нажати кнопку «SaveAs» для збереження умови вибору.

Так само для зручності перегляду інформації в поданнях можна приховувати або додавати цілі поля інформації. Для цього необхідно в меню «Дані» вибрати відповідний пункт меню “сховище” або нажати кнопку «F3». Після чого над основним вікном програми з'явиться вікно «Customization» (рис. 4.20), у якому зберігаються поля подання. У нього можна перенести непотрібні поля з подання, або з нього додати потрібні в подання.

Для додавання або зміни асортиментів комп'ютерної техніки необхідно вибрати меню «Дані» і вибрати відповідний пункт меню “Додати” або “Змінити”, або ж нажати відповідно кнопки «Ins» або «Ctrl + E». Після чого з'явиться вікно “Додати або змінити асортимент комп'ютерної техніки”, у якому необхідно додати або змінити відповідні поля й нажати кнопку “Ok”.

Для видалення асортиментів комп'ютерної техніки, необхідно вибрати в поданні, потрібний асортимент й у меню «Дані» вибрати пункт меню “Видалити”, після чого система зажадає підтвердження видалення при натисканні на кнопку “Ok”, рядок буде вилучена із подання.

Подання «Постачальники комп'ютерної техніки”

У даному поданні виводиться вся інформація про постачальників комп'ютерної техніки.

1.         Постачальник (назва фірми постачальника);

2.       Відповідальний (П. І. П. відповідального по поставках фірми);

.        Посада (посада відповідального по поставках фірми);

.        Адреса (адреса фірми постачальника);

.        Індекс;

.        Країна (країна розміщення фірми постачальника);

.        Регіон (регіон або область розміщення фірми постачальника);

.        Місто (місто розміщення фірми постачальника);

.        Телефон (телефон відповідального по поставках фірми);

.        Факс (факс фірми постачальника);

.        Email (Email фірми постачальника);

По кожному постачальнику нижче представлена детальна інформація з поставок на складі:

1.         Надійшло на склад (дата надходження на склад);

2.       Тип (тип комп'ютерної техніки);

.        Виробник (виробник комп'ютерної техніки);

.        Модель (модель комп'ютерної техніки);

.        Характеристика (характеристика комп'ютерної техніки);

.        у кількості (кількість техніки, що надійшла, на склад);

.        залишок (залишок техніки на складі);

У даному поданні можна переглянути й проаналізувати всі поставки й продажі КТ по кожному постачальнику.

Для додавання або зміни постачальника комп'ютерної техніки необхідно вибрати меню «Дані» і вибрати відповідний пункт меню “Додати” або “Змінити”, або ж нажати відповідно кнопки «Ins» або «Ctrl + E». Після чого з'явиться вікно “Додати або змінити інформацію про постачальників”, у якому необхідно додати або змінити поля й нажати кнопку “Ok”.

Для видалення постачальника комп'ютерної техніки, необхідно вибрати в поданні, потрібного постачальника й у меню «Дані» вибрати пункт меню “Видалити”, після чого система зажадає підтвердження видалення рядка при натисканні на кнопку “Ok”, рядок буде вилучено.

Подання «Всі поставки комп'ютерної техніки”

У даному поданні виводиться вся інформація про поставки комп'ютерної техніки на склад.

Інформація представлена в наступному виді:

1.         Тип (тип комп'ютерної техніки);

2.       виробник (виробник комп'ютерної техніки);

.        модель (модель комп'ютерної техніки);

.        надійшла (дата надходження на склад);

.        у кількості (кількість техніки, що надійшла, на склад);

.        за ціною (ціна по який придбана техніка);

.        продане (кількість проданої техніки зі складу);

.        залишок (залишок техніки на складі);

.        постачальник (назва фірми постачальника комп'ютерної техніки);

У даному поданні можна переглянути й проаналізувати всі поставки комп'ютерної техніки на склад.

Подання «Всі продажі комп'ютерної техніки”

У даному поданні виводиться вся інформація про продажі комп'ютерної техніки зі складу.

Інформація представлена в наступному виді:

1.         Тип (тип комп'ютерної техніки);

2.       виробник (виробник комп'ютерної техніки);

.        модель (модель комп'ютерної техніки);

.        характеристика (характеристика комп'ютерної техніки);

.        продано (дата продажу комп'ютерної техніки зі складу);

.        у кількості (кількість проданої техніки зі складу);

.        за ціною (ціна по який продана техніка);

У даному поданні можна переглянути й проаналізувати всі продажі комп'ютерної техніки зі складу.

Подання «Замовити комп'ютерну техніку”

У даному поданні виводиться вся інформація для замовлення комп'ютерної техніки на склад.

Інформація представлена в наступному виді:

1.         Замовити (потрібно замовити)

2.       Тип (тип комп'ютерної техніки);

.        виробник (виробник комп'ютерної техніки);

.        модель (модель комп'ютерної техніки);

.        залишок (залишок техніки на складі);

.        мінімальний залишок (мінімальна кількість на складі);

.        поставки припинені (відмітка про припинення поставок);

У даному поданні можна переглянути, проаналізувати й визначити необхідні асортименти комп'ютерної техніки, яку необхідно замовити.

Подання «Продати комп'ютерну техніку”

У даному поданні виводиться вся інформація для продажу комп'ютерної техніки зі складу.

Інформація представлена в наступному виді:

1.         Тип (тип комп'ютерної техніки);

2.       виробник (виробник комп'ютерної техніки);

.        модель (модель комп'ютерної техніки);

.        характеристика (характеристика комп'ютерної техніки);

.        на складі (кількість комп'ютерної техніки на складі);

.        за ціною (ціна по який продається комп'ютерна техніка);

Нижче представлена інформація із продажів у наступному виді:

1.         Тип (тип комп'ютерної техніки);

2.       виробник (виробник комп'ютерної техніки);

.        модель (модель комп'ютерної техніки);

.        характеристика (характеристика комп'ютерної техніки);

.        продано (дата продажу комп'ютерної техніки зі складу);

.        у кількості (кількість проданої техніки зі складу);

.        за ціною (ціна по якій продана техніка);

У даному поданні можна простежити продажі комп'ютерної техніки, а також одержати на склад або продати зі складу комп'ютерну техніку.

Для одержання комп'ютерної техніки на склад, необхідно в меню «Товар» вибрати пункт меню «Одержати» або нажати комбінацію кнопок «Shift + Ins».

У вікні, що з'явилося, «Одержати на склад комп'ютерну техніку.», вибрати: модель; постачальника; дату одержання; указати: кількість; ціну закупівлі; націнку й нажати кнопку «Ок».

Отримана комп'ютерна техніка буде додана новим рядком у верхній таблиці подання «Продати комп'ютерну техніку».

Для продажу комп'ютерної техніки зі складу, необхідно в меню «Товар» вибрати пункт меню «Продати» або нажати комбінацію кнопок «Shift + Del».

У вікні, що з'явилося, «Продати зі складу комп'ютерну техніку», вибрати: модель; дату продажу; указати кількість і нажати кнопку «Ок».

Продана комп'ютерна техніка, у нижній таблиці подання «Продати комп'ютерну техніку», буде додана новим рядком, якщо із цієї поставки комп'ютерна техніка не продавалася, або додана кількість проданої техніки, якщо із цієї поставки комп'ютерна техніка продавалася. А у верхній таблиці в рядку “на складі” зменшиться кількість залишку на складі.

Для редагування переліку типів комп'ютерної техніки, необхідно в меню «Компонент» вибрати пункт меню «Тип» або нажати комбінацію кнопок «Ctrl + T». І у вікні, що з'явилося, «Тип комп'ютерної техніки.», зробити потрібні зміни й нажати кнопку «Ок».

Для редагування переліку виробників комп'ютерної техніки, необхідно в меню «Компонент» вибрати пункт меню «Виробник» або нажати комбінацію кнопок «Ctrl + M». І у вікні, що з'явилося, «Виробник комп'ютерної техніки, зробити потрібні зміни й нажати кнопку «Ок».

Звіти

У системі обліку продажів комп'ютерної техніки передбачені наступні звіти:

1.       Асортименти на складі (отримано, продано, залишок);

2.       Постачальники комп'ютерної техніки (поставлено, залишилося, ціна);

.        Необхідно замовити комп'ютерну техніку.

Для виклику звітів необхідно в меню «Звіт» вибрати пункт меню відповідного звітного документа або нажати кнопки швидкого виклику «F5», «F6» або «F7». У вікні, що з'явилося, “Output Options”, вибрати потрібну дію “Печатка”, “Перегляд” або “Файл” і нажати кнопку «Ок».

У режимі “Перегляд”, звітні документи відображаються в наступному виді: звіт «Асортименти на складі» (рис. 4.35); звіт «Постачальники комп'ютерної техніки» (рис.4.36); звіт «Необхідно замовити комп'ютерну техніку».

У режимі «Файл», звітні документи можуть бути збережені у вигляді файлів наступного формату: Rave Snapshot File (*.ndr); Native Printer Output (*.prn); Adobe Acrobat (*.pdf); Web page (*.html); Rich Text Format (*.rtf); Plain text (*.txt).

4.5 Програмна реалізація системи SalesRecord


Головна форма програми “fmSalesRecord” містить: компонент TdxBarManager, за допомогою якого реалізоване головне меню програми й панель інструментів; компоненти TdxSideBar і TdxSideBarStore, за допомогою яких реалізована бічна панель вибору подання інформації; компоненти TImageList утримуючі списки графічних зображень двох розмірів 16x16, для іконок підпунктів головного меню й контекстного меню й 32x32, для іконок кнопок панелі інструментів і бічної панелі вибору подань.

Вся обробка подій, оформлення й настроювання вибору підпунктів головного меню, кнопок панелі інструментів і кнопок бічної панелі вибору подань, зібрані в компоненті списку дій TActionList.

Для підключення до бази даних MS SQLServer 2008 використається компонент TADOConnection. Для зв'язку з таблицями бази даних використаються компоненти TADOTable, для запитів до таблиці бази даних використається компоненти TADOQuery.

Для відображення інформації з подань використаються два компоненти TcxGrid побудовані за принципом головна-детальна таблиця.

Головна й детальна таблиця TcxGrid представлена набором компонентів TcxGridDBTableView призначених для відображення подань системи. Підключення компонентів TcxGridDBTableView до компонентів TcxGrid і зв'язок головної таблиці до детальної відбувається програмно в процедурі ActiveSR за допомогою змінної pdata, якій привласнюється числове значення подання:

0.  Асортименти комп'ютерної техніки на складі;

1.       Постачальники комп'ютерної техніки

.        Всі поставки комп'ютерної техніки

.        Необхідно замовити комп'ютерну техніку

.        Продати комп'ютерну техніку

.        Вся продана комп'ютерна техніка

Нижче показаний лістінг процедури ActiveSR.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Процедура активує зовнішній вигляд програмиTfmSalesRecord.ActiveSR;pdata of

:begin // Асортименти комп'ютерної техніки на складі.Panels[1].Text := асортименти комп'ютерної техніки на складі';.Visible := true;.Visible := false;.Visible := true;spAssortiment then sp1.OpenSplitter else sp1.CloseSplitter;.Visible := true;.OpenSplitter;(true); // редагувати рядка.Visible :=true;.GridView := gdbtvComponent;.GridView := gdbtvWarehouse;

//----------------------------------------------------.Visible:= false;.Visible:= false;.Visible:= false;.Visible:= false;.Visible:= true;.Visible:= true;.Visible:= true;

//------------------------------------------------------.Close;.Close;.Close;.Close;.Close;.MasterSource := dsComponent;.MasterFields := 'IDComponent';.IndexFieldNames := 'IDComponent';.Open;.Open;.Open;.Close;.Open;.Locate('IDComponent',bnComponent,[]);;

:begin // Постачальники комп'ютерної техніки.Panels[1].Text := 'Постачальники комп'ютерної техніки ';.Visible := false;.Visible := true;.Visible := true;spSupplier then sp1.OpenSplitter else sp1.CloseSplitter;.Visible := true;.OpenSplitter;(true); // редагувати рядка.Visible :=true;.GridView := gdbtvSupplier;.GridView := gdbtvWarehouse;

//---------------------------------------------.Visible:= true;.Visible:= true;.Visible:= true;.Visible:= true;.Visible:= false;.Visible:= false;.Visible:= false;

//-----------------------------------

adotTypeComponent.Close;.Close;.Close;.Close;.Close;.Close;.MasterSource := dsSupplier;.MasterFields := 'IDSupplier';.IndexFieldNames := 'IDSupplier';.Open;.Open;.Open;.Open;.Open;.Open;.Locate('IDSupplier',bnSupplier,[]);;

:begin // Всі поставки комп'ютерної техніки..Panels[1].Text := 'Всі поставки комп'ютерної техніки.';.Visible := false;.Visible := False;.CloseSplitter;.Visible := false;.Visible := false;.CloseSplitter;(false); // не редагувати рядка.Visible :=false;.GridView := gdbtvWarehouses;.GridView := nil;

//-----------------------------------

adotOfftake.Close;.Close;.Close;.Close;.Close;.Close;.MasterSource := nil;.MasterFields := '';.IndexFieldNames := '';.Open;.Open;.Open;.Open;.Open;.Open;.Locate('IDComponent',bnRemWarehouse,[]);;

:begin // Необхідно замовити комп'ютерну техніку..Panels[1].Text := 'Необхідно замовити комп'ютерну техніку.';.Visible := false;.Visible := False;.CloseSplitter;.Visible := false;.Visible := false;.CloseSplitter;(false); // не редагувати рядка.Visible :=false;.GridView := gdbtvOrderWarehouse;.GridView := nil;

//-----------------------------------

adotOfftake.Close;.Close;.Close;.Close;.Close;.Close;.MasterSource := nil;.MasterFields := '';.IndexFieldNames := '';.Open;.Open;.Open;.Open;.Open;.Open;.Locate('IDComponent',bnOrderWarehouse,[]);;

:begin // Продати комп'ютерну техніку..Panels[1].Text := 'Продати комп'ютерну техніку ';.Visible := false;.Visible := false;.CloseSplitter;.Visible := false;.Visible := true;.OpenSplitter;(false); // не редагувати рядка.Visible :=true;.GridView := gdbtvRemCountWarehouse;.GridView := gdbtvSellCountWarehouse;

//-----------------------------------

adotTypeComponent.Close;.Close;.Close;.Close;.Close;.Close;.Close;.Open;.Open;.Open;.Open;.Open;.Open;.Open;.Locate('IDWarehouse',bnWarehouse,[]);;

:begin // Вся продана комп'ютерна техніка..Panels[1].Text := 'Показати всі продажі комп'ютерної техніки.';.Visible := false;.Visible := False;.CloseSplitter;.Visible := false;.Visible := false;.CloseSplitter;(false); // не редагувати рядка.Visible :=false;.GridView := gdbtvSellCountWarehouse1;.GridView := nil;

//-----------------------------------.Close;.Close;.Close;.Close;.Close;.Open;.Open;.Open;.Open;.Open;.Open;.Locate('IDComponent',bnSellCountWarehouse,[];;;;

Для відображення детальної інформації з подань: асортименти комп'ютерної техніки й постачальники комп'ютерної техніки, на основній формі програми розміщений компонент TPanel і два компоненти TcxGroupBox, на яких розміщені компоненти TcxDBImage, TcxDBTextEdit, TcxDBMemo, TcxDBCheckBox, підключені до таблиць баз даних через компоненти TDataSource до компонентів TADOTable.

Для зручного перегляду інформації з подань на основну форму програми додані два компоненти TcxSplitter, за допомогою яких можна розкривати й приховувати детальну інформацію з подань.

Для відображення поточного стану системи на основну форму програми доданий компонент TcxStatusBar, у ньому відображається поточне подання й активний стан основних кнопок клавіатури.

При запуску системи, формується основне вікно програми fmSalesRecord і виконується процедура FormCreate, нижче наведено її лістінг.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма створюєтьсяTfmSalesRecord.FormCreate(Sender: TObject);;

// Шлях до виконуваного файлу:=Application.ExeName;PathSR[Length(PathSR)]<>'\' do(PathSR, Length(PathSR),1);:=true;:= false;:=false;;

У даній процедурі відбувається зчитування із системного реєстру настроювань підключення до сервера баз даних за допомогою процедури ReadWriteConn розміщеної в модулі Registr, нижче наведений лістінг модуля:Registr;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, Menus, ImgList, ComCtrls, ToolWin, ExtCtrls, Registry;: TRegistry; // Змінна системного регістраWriteConn_SQL;ReadConn_SQL:Boolean;ReadWriteConn;fmSalesRecord_;

//-----------------------------------

//-- Процедура заносить інформацію до системного реєструWriteConn_SQL;:=TRegistry.Create;Reg do('software\SalesRecord\ConnectDB',true);('NameServer',NameServer);('Namedb',Namedb);('UNdb',UNdb);('PSWdb',PSWdb);;;;;

//-----------------------------------

//-- Процедура читання з регістра інформації про підключення до SalesRecord бдReadConn_SQL:Boolean;:=TRegistry.Create;(Reg.OpenKey('software',false)) and

(Reg.OpenKey('SalesRecord',false)) and

(Reg.OpenKey('ConnectDB',false)) then// Існує:=Reg.ReadString('NameServer');:=Reg.ReadString('Namedb');:=Reg.ReadString('UNdb');:=Reg.ReadString('PSWdb');:=true;:=false;.CloseKey;.Free;;

//-----------------------------------

//-- Процедура читання вмісту регістра якщо він відсутній запис за замовчуваннямReadWriteConn;not ReadConn_SQL then // існує запис?:='CORE2Q\ARHIV'; // Немає. Параметри за замовчуванням:='SalesRecord';:='sa';:='epson';_SQL; // Записати нові параметри;;.

Потім у змінну PathSR зчитується шлях до виконуємого файлу програми, це необхідно для подальшого виклику файлу звітних документів Report.rav. Після чого відбувається первісна ініціалізація змінних spAssortiment, spSupplier, їм привласнюється значення false, за значенням цих змінних відкривається або закривається детальна інформація подань асортименти комп'ютерної техніки й постачальники комп'ютерної техніки.

Після створення основної форми системи fmSalesRecord, перевіряється підключення до бази даних SalesRecord, якщо підключення не відбулося, користувачеві надається можливість вручну настроїти підключення до бази даних за допомогою віконної форми fmSetupConnect.

Нижче наведені лістінг перевірки підключення розміщеного в коді проекту SalesRecord і лістінг форми fmSetupConnect:: TfmSetupConect;: boolean;.Initialize;.CreateForm(TfmSalesRecord, fmSalesRecord);not fmSalesRecord.ConnectToSQL then('Не можу підключиться до баз даних SalesRecord, проверте настроювання підключення.',mtError, [mbOK], 0);:= TfmSetupConect.Create(nil);SetupConect.ShowModal = mrOk then_SQL;.bActive := true;:= true;:= false;;.Free;else begin:= true;;bStart then.Run else.Terminate;.

// активність кнопки ОкTfmSetupConect.ActiveOk:boolean;(teSQLName.Text <> NameServer) or

(tedbName.Text <> Namedb) or

(teUN.Text <> UNdb) or

(tePW.Text <> PSWdb) then Result :=true else Result :=false;;

//== ПІДПРОГРАМИ =====================================

//-----------------------------------

// Форма активуєтьсяTfmSetupConect.FormActivate(Sender: TObject);.Text := NameServer;.Text := Namedb;.Text := UNdb;.Text := PSWdb;.Enabled := ActiveOk;;

//-----------------------------------

// Натиснута кнопка ОкTfmSetupConect.btOkClick(Sender: TObject);:= teSQLName.Text ;:= tedbName.Text;:= teUN.Text;:= tePW.Text;.ConnectToSQL;;TfmSetupConect.teSQLNamePropertiesChange(Sender: TObject);.Enabled := ActiveOk;; end.

Перевірка підключення до бази даних виконується за допомогою функції ConnectToSQL, у результаті виконання, функція повертає змінну типу Boolean (true - підключення відбулося, false - помилка підключення).

Нижче наведений лістінг функції ConnectToSQL.

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Підключення до БДTfmSalesRecord.ConnectToSQL:boolean;

// Считати дані для підключення до сервера;.Connected :=false;.ConnectionString := 'Provider=SQLOLEDB.1' +

';Data Source=' + NameServer +

';Initial Catalog=' + Namedb +

';User ID=' + UNdb +

';Password=' + PSWdb +

';Persist Security Info=True';// Спроба підключиться.Connected :=true;:=true;:=false;;;

Після підключення до бази даних SalesRecord відбувається активація основної форми програми й виконується процедура FormActivate, у цій процедурі відбувається підключення до таблиць бази даних і вибір першого подання для відображення.

Нижче наведений лістінг процедури FormActivate:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма активуєтьсяTfmSalesRecord.FormActivate(Sender: TObject);bActive then

// Відкриваємо таблиці.Open;.Open;.Open;.Open;.Open;.Open;:=0; ActiveSR;:=false;; end;

Вся обробка подій підпунктів головного меню, кнопок панелі інструментів і кнопок бічної панелі вибору подань зібрані в компоненті списку дій TActionList, нижче наведені лістінги процедур обробки подій Execute.

Вибір подань за допомогою кнопок бічної панелі вибору подань:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Асортименти на складі.TfmSalesRecord.wAssortimentExecute(Sender: TObject);:=0; ActiveSR;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Постачальники.TfmSalesRecord.wSupplierExecute(Sender: TObject);:=1; ActiveSR;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Поставлено.TfmSalesRecord.wDeliverysExecute(Sender: TObject);:=2; ActiveSR;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Продано.TfmSalesRecord.wAllSellExecute(Sender: TObject);:=5; ActiveSR;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Замовити.TfmSalesRecord.wOrderExecute(Sender: TObject);:=3; ActiveSR;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Продаж.TfmSalesRecord.wSellExecute(Sender: TObject);:=4; ActiveSR;;

Пункти меню «Тип» й «Виробник» основного меню «Компоненти»:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Тип комп'ютерної техніки.TfmSalesRecord.TypeComponentExecute(Sender: TObject);: TfmTypeComponent;pdata of

:bnComponent:= adotComponentIDComponent.AsInteger;

:bnSupplier:= adotSupplierIDSupplier.AsInteger;

:bnRemWarehouse:= adotRemWarehouseIDComponent.AsInteger;

:bnOrderWarehouse:= adotOrderWarehouseIDComponent.AsInteger;

:bnWarehouse:= adoqRemCountWarehouseIDWarehouse.AsInteger;

:bnSellCountWarehouse:= adoqSellCountWarehouseIDComponent.AsInteger;;:= TfmTypeComponent.Create(Application);.ShowModal;.Free;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// виробник комп'ютерної техніки.TfmSalesRecord.MainframerComponentExecute(Sender: TObject);: TfmMainframer;pdata of

:bnComponent:= adotComponentIDComponent.AsInteger;

:bnSupplier:= adotSupplierIDSupplier.AsInteger;

:bnRemWarehouse:= adotRemWarehouseIDComponent.AsInteger;

:bnOrderWarehouse:= adotOrderWarehouseIDComponent.AsInteger;

:bnWarehouse:= adoqRemCountWarehouseIDWarehouse.AsInteger;

:bnSellCountWarehouse:= adoqSellCountWarehouseIDComponent.AsInteger;;:= TfmMainframer.Create(Application);.ShowModal;.Free;;;

Пункти меню «Додати», «Змінити», «Видалити» основного меню «Дані»:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Додати рядокTfmSalesRecord.AddStringExecute(Sender: TObject);: TfmAddEditComponent;: TfmAddEditSupplier;pdata of

:begin:= adotComponentIDComponent.AsInteger;:= TfmAddEditComponent.Create(Application);.bnComponent:=0;.ShowModal;.Free;;;

:begin:= adotSupplierIDSupplier.AsInteger;:= TfmAddEditSupplier.Create(Application);.bnSupplier:=0;.ShowModal;.Free;;;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Редагувати рядокTfmSalesRecord.EditStringExecute(Sender: TObject);: TfmAddEditComponent;: TfmAddEditSupplier;pdata of

:begin:= adotComponentIDComponent.AsInteger;:= TfmAddEditComponent.Create(Application);.bnComponent:=adotComponentIDComponent.AsInteger;.ShowModal;.Free;;;

:begin:= adotSupplierIDSupplier.AsInteger;:= TfmAddEditSupplier.Create(Application);.bnSupplier:=adotSupplierIDSupplier.AsInteger;.ShowModal;.Free;;;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Видалити рядокTfmSalesRecord.DelStringExecute(Sender: TObject);pdata of

:beginMessageDlg('Ви дійсно хочете видалити дані про [ ' + ClearBlank(adotComponentsTypeComponent.AsString) + ':' + ClearBlank(adotComponentModel.AsString) + ' ].',mtWarning, [mbOk,mbCancel], 0) = mrOk then.Delete;;

:beginMessageDlg('Ви дійсно хочете видалити дані про постачальника [ ' + ClearBlank(adotSupplierSupplier.AsString) + ' ].',mtWarning, [mbOk,mbCancel], 0) = mrOk then.Delete;;;;

Пункти меню «Розгорнути», «Згорнути», «Сховище» основного меню «Дані»:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Розгорнути поляTfmSalesRecord.vOpenExecute(Sender: TObject);pdata of

:gdbtvComponent.DataController.Groups.FullExpand;

:gdbtvSupplier.DataController.Groups.FullExpand;

:gdbtvWarehouses.DataController.Groups.FullExpand;

:gdbtvOrderWarehouse.DataController.Groups.FullExpand;

:gdbtvRemCountWarehouse.DataController.Groups.FullExpand;

:gdbtvSellCountWarehouse1.DataController.Groups.FullExpand;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Згорнути поляTfmSalesRecord.vCloseExecute(Sender: TObject);pdata of

:gdbtvComponent.DataController.Groups.FullCollapse;

:gdbtvSupplier.DataController.Groups.FullCollapse;

:gdbtvWarehouses.DataController.Groups.FullCollapse;

:gdbtvOrderWarehouse.DataController.Groups.FullCollapse;

:gdbtvRemCountWarehouse.DataController.Groups.FullCollapse;

:gdbtvSellCountWarehouse1.DataController.Groups.FullCollapse;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Показати сховищеTfmSalesRecord.vFieldsExecute(Sender: TObject);pdata of

:gdbtvComponent.Controller.Customization :=true;

:gdbtvSupplier.Controller.Customization :=true;

:gdbtvWarehouses.Controller.Customization :=true;

:gdbtvOrderWarehouse.Controller.Customization :=true;

:gdbtvRemCountWarehouse.Controller.Customization :=true;

:gdbtvSellCountWarehouse1.Controller.Customization :=true;;;

Пункти меню «Одержати», «Продати» основного меню «Товар»:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Одержати товар на складTfmSalesRecord.cmFindExecute(Sender: TObject);: TfmFind;:= TfmFind.Create(Application);pdata of

:begin.bnComponent:=adotComponentIDComponent.AsInteger;:= adotComponentIDComponent.AsInteger;;

:begin.bnComponent:=0;:= adotSupplierIDSupplier.AsInteger;;

:begin.bnComponent:=0;:= adotRemWarehouseIDComponent.AsInteger;;

:begin.bnComponent:=adotOrderWarehouseIDComponent.AsInteger;:= adotOrderWarehouseIDComponent.AsInteger;;

:begin.bnComponent:=0;:= adoqRemCountWarehouseIDWarehouse.AsInteger;;

:begin.bnComponent:=0;:= adoqSellCountWarehouseIDComponent.AsInteger;;;.ShowModal;.Free;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Продати товар зі складуTfmSalesRecord.cmSellExecute(Sender: TObject);: TfmSell;:= TfmSell.Create(Application);pdata of

:begin.bnWarehouse:=0;:= adotComponentIDComponent.AsInteger;;

:begin.bnWarehouse:=0;:= adotSupplierIDSupplier.AsInteger;;

:begin.bnWarehouse:=adotRemWarehouseIDWarehouse.AsInteger;:= adotRemWarehouseIDComponent.AsInteger;;

:begin.bnWarehouse:=0;:= adotOrderWarehouseIDComponent.AsInteger;;

:begin.bnWarehouse:=adoqRemCountWarehouseIDWarehouse.AsInteger;:= adoqRemCountWarehouseIDWarehouse.AsInteger;;

:begin.bnWarehouse:=0;:= adoqSellCountWarehouseIDComponent.AsInteger;;;.ShowModal;.Free;;;

Пункти меню «Про програму» основного меню «Допомога»:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Інформація про програмний продуктTfmSalesRecord.prInfoExecute(Sender: TObject);: TfmInfo;:= TfmInfo.Create(Application);.ShowModal;.Free;;

Для активації відповідних пунктів меню й кнопок панелі інструментів при виборі потрібного подання передбачені наступні процедури:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Процедура активує кнопки редагування рядків, забороняє або дозволяє зміну їхнього стану.TfmSalesRecord.ActiveEditString(xb:boolean);.Enabled :=xb;.Enabled :=xb;.Enabled :=xb;:= xb;;

//============ Рух по таблиці ===========================

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Рух по таблиці adotRemWarehouseTfmSalesRecord.adotRemWarehouseBeforeScroll(DataSet: TDataSet);not adotRemWarehouse.IsEmpty then.Enabled :=true else.Enabled :=false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Рух по таблиці adotRemWarehouseTfmSalesRecord.adoqRemCountWarehouseBeforeScroll(DataSet: TDataSet);not adoqRemCountWarehouse.IsEmpty then.Enabled :=true else.Enabled :=false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Рух по таблиці adotComponentTfmSalesRecord.adotComponentBeforeScroll(DataSet: TDataSet);not (adotComponent.IsEmpty) and (bEditString) then.Enabled :=true;.Enabled :=true;else begin.Enabled :=false;.Enabled :=false;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Рух по таблиці adotSupplierTfmSalesRecord.adotSupplierBeforeScroll(DataSet: TDataSet);(not adotSupplier.IsEmpty) and (bEditString) then.Enabled :=true;.Enabled :=true;else begin.Enabled :=false;.Enabled :=false;;;

Обчислення потрібних полів потрібних для подань, відбувається в наступних процедурах:

//============== Обчислюемиє поля ==================

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Обчислюєме поле adotRemWarehouseTfmSalesRecord.adotRemWarehouseCalcFields(DataSet: TDataSet);.Value := adotRemWarehouseFindCouns.AsInteger - adotRemWarehouseSellCount.AsInteger;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Обчислюєме поле adotOrderWarehouseTfmSalesRecord.adotOrderWarehouseCalcFields(DataSet: TDataSet);.Value := adotOrderWarehouseFindCount.AsInteger - adotOrderWarehouseSellCount.AsInteger;.Value := (((adotOrderWarehouseFindCount.AsInteger - adotOrderWarehouseSellCount.AsInteger)-adotOrderWarehouseMinimal.AsInteger ) <= 0) and (not adotOrderWarehouseNoSupply.AsBoolean );

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Обчислюєме поле adoqRemCountWarehouseTfmSalesRecord.adoqRemCountWarehouseCalcFields(DataSet: TDataSet);.Value := adoqRemCountWarehouseVal.AsCurrency + ((adoqRemCountWarehouseVal.AsCurrency / 100) * adoqRemCountWarehouseMarkup.AsInteger );;

Обробка подій відкриття й закриття детальної інформації подань асортименти комп'ютерної техніки й постачальники комп'ютерної техніки відбувається в наступних процедурах:

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Сховати детальні даніTfmSalesRecord.sp1AfterClose(Sender: TObject);pdata of

:spAssortiment:=false;

:spSupplier:=false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Показати деталіTfmSalesRecord.sp1AfterOpen(Sender: TObject);pdata of

:spAssortiment:=true;

:spSupplier:=true; end;

Для додавання й редагування даних системи використаються наступні віконні форми.

Віконна форма fmTypeComponent і лістінг модуля fmTypeComponent_ віконної форми призначеної для редагування типу комп'ютерної техніки наведені нижче.

// Створюється формаTfmTypeComponent.FormCreate(Sender: TObject);

//adotTypeComponent. := true;.Open;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ОкTfmTypeComponent.btOkClick(Sender: TObject);.edit;.Post;;.

Віконна форма fmMainframer і лістінг модуля fmMainframer_ віконної форми призначеної для редагування виробника комп'ютерної техніки наведені нижче.

// Створюється формаTfmMainframer.FormCreate(Sender: TObject);

//adotMainframer.CachedUpdates := true;.Open;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// ОкTfmMainframer.btOkClick(Sender: TObject);.Edit;.Post;

//adotMainframer.ApplyUpdates;

//adotMainframer.CachedUpdates := false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// CancelTfmMainframer.btCancelClick(Sender: TObject);

//adotMainframer.CancelUpdates;

//adotMainframer.CachedUpdates := false;;.

Віконна форма fmAddEditComponent і лістінг модуля fmAddEditComponent_ віконної форми призначеної для редагування асортиментів комп'ютерної техніки наведені нижче.

// Процедура активує кнопку ОкTfmAddEditComponent.ActiveOk:boolean;(dblcbTypeComponent.Text <> '') and

(dblcbMainframer.Text <> '') and

(dbmeModel.Text <> '') then:=true else:=false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма активуєтьсяTfmAddEditComponent.FormActivate(Sender: TObject);.Active :=true;.Active :=true;.Active :=true;bnComponent > 0 then:='Змінити асортименти комп'ютерної техніки.';.Locate('IDComponent',bnComponent,[]);.Edit;else begin:='Додати асортименти комп'ютерної техніки.';.Append;;.Enabled := ActiveOk;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Записати зміниTfmAddEditComponent.btOkClick(Sender: TObject);.Post;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Активація кнопки Ок по зміні поляTfmAddEditComponent.dblcbTypeComponentPropertiesChange(: TObject);.Enabled := ActiveOk;;.

Віконна форма fmAddEditSupplier і лістінг модуля fmAddEditSupplier_ віконної форми призначеної для редагування постачальників комп'ютерної техніки наведені нижче.

// Процедура активує кнопку ОкTfmAddEditSupplier.ActiveOk:boolean;(dbteSupplier.Text <> '') and

(dbteCrucial.Text <> '') and

(dbetPost.Text <> '') then:=true else:=false;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма активуєтьсяTfmAddEditSupplier.FormActivate(Sender: TObject);.Active :=true;bnSupplier > 0 then:='Змінити інформацію про постачальників.';.Locate('IDSupplier',bnSupplier,[]);.Edit;else begin:='Додати інформацію про постачальників.';.Append;;.Enabled := ActiveOk;;

// Записати зміниTfmAddEditSupplier.btOkClick(Sender: TObject);.Post;;

// Активація кнопки Ок по зміні поляTfmAddEditSupplier.dbteSupplierPropertiesChange(Sender: TObject);.Enabled := ActiveOk;;.

Віконна форма fmFind і лістінг модуля fmFind_ віконної форми призначеної для одержання комп'ютерної техніки на склад наведені нижче.TfmFind.ActiveOk:boolean;(dblcbTypeComponent.Text <> '') and

(adotWarehouseCounts.AsInteger > 0) and

(dbmeValue.Text <> '') and

(dbmeMarkup.Text <> '') then:=true else:=false;;

// Форма створюєтьсяTfmFind.FormCreate(Sender: TObject);.Open;.Open;.Open;.Open;.Open;:=true;;TfmFind.FormActivate(Sender: TObject); // Форма активуєтьсяbActive thenbnComponent > 0 then.Locate('IDComponent',bnComponent,[]) else.First;.Append;.DataController.Groups.FullExpand;.Value := now;.Enabled := ActiveOk;:=false;;;

// Натиснута кнопка ОкTfmFind.btOkClick(Sender: TObject);:= adotComponentIDComponent.AsInteger;.Value := bnComponent;.Value := StrToDate(DateToStr(dbdeDelivery.Date));.Post;;TfmFind.dblcbTypeComponentPropertiesChange(Sender: TObject); // Заповнення полів.Enabled := ActiveOk;; end.

Віконна форма fmSell і лістінг модуля fmSell_ віконної форми призначеної для продажу комп'ютерної техніки зі складу наведені нижче.TfmSell.ActiveOk:boolean;not bActive then(adotOfftakeCounts.AsInteger > 0) and

(adotOfftakeCounts.AsInteger <= (adoqRemCountWarehouseFindCount.AsInteger - adoqRemCountWarehouseSellCount.AsInteger)) then:=true else:=false;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма створюєтьсяTfmSell.FormCreate(Sender: TObject);:=true;.Open;.Open;.Open;.Open;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Форма активуєтьсяTfmSell.FormActivate(Sender: TObject);bActive thenbnWarehouse > 0 then.Locate('IDWarehouse',bnWarehouse,[]) else.First;.Append;.DataController.Groups.FullExpand;.Value := now;:=false;.Enabled := ActiveOk;;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Натиснута кнопка ОкTfmSell.btOkClick(Sender: TObject);:= adoqRemCountWarehouseIDWarehouse.AsInteger;.Value := bnWarehouse;.Value := StrToDate(DateToStr(dbdeDelivery.Date));.Post;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Заповнення полівTfmSell.dblcbTypeComponentPropertiesChange(Sender: TObject);.Enabled := ActiveOk;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Обчислює поле, що, adoqRemCountWarehouseTfmSell.adoqRemCountWarehouseCalcFields(DataSet: TDataSet);.Value := adoqRemCountWarehouseFindCount.AsInteger - adoqRemCountWarehouseSellCount.AsInteger ;.Value := adoqRemCountWarehouseVal.AsCurrency + ((adoqRemCountWarehouseVal.AsCurrency /100) * adoqRemCountWarehouseMarkup.AsCurrency);;.

Віконна форма fmSetupConnect і лістінг модуля fmSetupConnect_ віконної форми призначеної для настроювання підключення до бази даних наведені нижче.TfmSetupConect.ActiveOk:boolean;(teSQLName.Text <> NameServer) or

(tedbName.Text <> Namedb) or

(teUN.Text <> UNdb) or

(tePW.Text <> PSWdb) then Result :=true else Result :=false;;

//== ПІДПРОГРАМИ =====================================

//-----------------------------------

// Форма активуєтьсяTfmSetupConect.FormActivate(Sender: TObject);.Text := NameServer;.Text := Namedb;.Text := UNdb;.Text := PSWdb;.Enabled := ActiveOk;;

//-----------------------------------

// Натиснута кнопка ОкTfmSetupConect.btOkClick(Sender: TObject);:= teSQLName.Text ;:= tedbName.Text;:= teUN.Text;:= tePW.Text;.ConnectToSQL;;TfmSetupConect.teSQLNamePropertiesChange(Sender: TObject);.Enabled := ActiveOk;;.

Для формування звітних документів на основній формі програми fmSalesRecord розміщені наступні компоненти:

1.  TrvSystem, TrvProject - призначені для роботи з утилітою Rave Reports, і файлом звітного документа Report.rav;

2.       TrvRenderPDF, TrvRenderHTML, TrvRenderRTF, TrvRenderTEXT - призначені для збереження звітних документів у форматах *.pdf, *.html, *.rtf, *.txt;

.        TrvDataSetConnection - призначені для зв'язку даних із проектом Report.rav;

Всі звітні документи виконані в середовищі утиліти Rave Reports і перебувають у файлі Report.rav.

Для виклику звітних документів з меню «звіти» у модулі основної форми програми передбачені наступні процедури:

//=========== Звіти ===================================

// Асортименти на складіTfmSalesRecord.rpWAssortimentExecute(Sender: TObject);.ProjectFile := PathSR + 'Report.rav';.ExecuteReport('rpAssortimentWarehouse');.Execute;;

// Постачальники комп'ютерної технікиTfmSalesRecord.rpSupplierExecute(Sender: TObject);.ProjectFile := PathSR + 'Report.rav';.ExecuteReport('rpSupplierWarehouse');.Execute;;

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

// Замовити комп'ютерну техніку.TfmSalesRecord.rpOrderWarehouseExecute(Sender: TObject);.ProjectFile := PathSR + 'Report.rav';.ExecuteReport('rpOrderWarehouse');.Execute;;

5. ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

Метою дипломної роботи є створення гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки. Система дозволяє повністю автоматизувати процес ведення обліку й ефективного керування процесом закупівлі та продажу товару.

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

Найбільш важливим моментом для розроблювача, з економічної точки зору, є процес формування ціни. Очевидно, що програмні продукти являють собою досить специфічний товар з безліччю властивих їм особливостей. Багато їхніх особливостей проявляються й у методах розрахунків ціни на них. На розробку програмного продукту середньої складності звичайно потрібні досить незначні засоби. Однак, при цьому вона може дати економічний ефект, що значно перевищує ефект від використання досить дорогих систем.

Варто підкреслити, що у програмних продуктів практично відсутній процес фізичного старіння й зношування. Для них основні витрати доводяться на розробку зразка, тоді як процес тиражування являє собою, звичайно, порівняно нескладну й недорогу процедуру копіювання магнітних носіїв і супровідної документації.

Економічна доцільність розробки укладається в економії працевтрат у порівнянні з ручною обробкою та одержання більш вірогідної інформації за більш короткий час.

Таблиця 5.1

Витрати на матеріали

№ п/п

Найменування матеріалу

Витрата, шт.

Ціна, грн./шт.

Сума, грн.

1

Допоміжна література

2

47

94

2

Диск DVD-RW

1

4

4

3

Диск DVD-R

2

1,20

2,40

4

Канцтовари

-

-

85

Разом 185,40


Основні виробничі фонди:

Програмне забезпечення Delphi 7 - 1 шт за ціною 1400 грн;

Комп'ютер класу Pentium IІІ- 1 шт за ціною 3300 грн;

Принтер - 1 шт за ціною 1100 грн.

Загальна сума виробничих фондів складає - 5800 грн.

Вартість устаткування збільшується на вартість транспортування - 10% та вартість монтажу - 15%. Разом вартість устаткування складе:

Соб= 5800 + 580 + 870 = 7250 грн.

Амортизація комп'ютера складає 15% у квартал від залишкової вартості, тобто А = Ф*На, де Ф - залишкова вартість на початок кварталу, На - норма амортизації.квартал 7250*0,15= 1087,50 грн.квартал (7250-1087,50)*0,15= 924,38 грн.квартал (7250-1087,50-924,38)*0,15=785,72 грн.квартал (7250-1087,50-924,38-785,72)*0,15=667,86 грн.

Разом амортизація = 3465,46 грн.

Таблиця 5.2

Основна заробітна плата програміста

№ п/п

Виконувачі

Трудомісткість, люд.дн.

Оклад, грн.

Витрати по з/п, грн.

1

Програміст

приймаємо 1 місяць

1800

1800

Додаткова заробітна плата програміста складає 20 % від основної заробітної плати:

*0,20=360 грн.

Фонд заробітної плати являє собою суму основної й додаткової заробітної плати:

+360=2160 грн.

Відрахування на заробітну плату складає:

,2% - пенсійний фонд;

,4% - соціальне страхування;

,6% - відрахування в державний фонд сприяння зайнятості;

,1% - відрахування на соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності.

Разом відрахування на соціальні нужди складають 37,3% від фонду оплати праці:

*0,373=805,68 грн.

Накладні витрати складають 250 % від величини основної заробітної плати:

*2,5=4500 грн.

Таблиця 5.3

Калькуляція

№ п/п

Найменування статей витрат

Витрати, грн.

1

Амортизація основних засобів

3465,46

2

Расходні матеріали

185,40

3

Основна заробітна плата програміста

1800

4

Додаткова заробітна плата програміста

360

5

Відрахування на соціальне страхування

805,68

6

Накладні витрати

4500

7

Інші витрати

100,00

Разом витрат Зк= 11216,54

Витрати на ручну обробку інформації визначаються по формулі:

,

де - об’єм інформації, що обробляється вручну, Мбайт;

- вартість однієї години праці, грн. / рік;

- коефіцієнт, що враховує додаткові витрати часу на логічні операції при ручній обробці інформації;

- норма виробітку, Мбайт / рік.

У даному випадку:

Ои = 700 Мбайт (загальний розмір даних, що обробляються),

Заробітна плата бухгалтера становить 1100 грн.

Ц=1100/21/8=6,55 грн. / година,

Гд = 2,5 (встановлений експериментально),

Нв = 0,4 Мбайт/рік.

Отже, витрати на ручну обробку інформації дорівнюють:

Зр=700*6,55*2,5/0,4=28656,25 грн.

Витрати на автоматизовану обробку інформації розраховуються по наступній формулі:

,

де - година автоматизованої обробки, рік.;

- вартість однієї години машинного часу, грн./рік;

- година роботи оператора, рік.;

- вартість однієї години роботи оператора, грн./рік.

Для даного випадку:= 180 год.,

Номінальний фонд робочого часу розраховується по формулі :

 - кількість відпрацьованих годин за рік;

k1 - щоденні втрати 9-10% (відпустка, декретна відпустка та ін.)

k2 - внутрішні втрати робочого часу, 1- 2% (пільгові години, перерви та ін.).

К = д * р * м

д - середня кількість робочих днів у місяці = 21;

р - тривалість робочого дня = 8;

м - кількість робочих місяців за рік = 12;

К = 21 * 8 * 12 = 1848 годин за рік.

= 1663,2 год.

Час роботи оператора = 1663,2 годин за рік

Вартість однієї години машинної години дорівнює:

Цм = Цэ*Р

Цэ - вартість 1квт електроенергії (0,24 грн.)

Р - споживана потужність комп'ютера в рік 160 Вт

Цм=0,24*0,16=0,04грн/рік= 180 год,

Ц0 =1100/ 21/8=6,55 грн. (заробітна плата бухгалтера 1100 грн)

Отже, витрати на автоматизовану обробку інформації дорівнюють:

За=180*0,04+180*(6,55+0,04) =1193,40 грн.

Таким чином, річна економія від упровадження дорівнює:

Еу = 28656,25 - 1193,40 - 8288,44= 19174,41 грн.

Економічний ефект від використання програмного забезпечення за рік визначається по формулі, грн.:

.

Ег=19174,41- 11216,54*0,2=16931,10 грн.

Ефективність розробки може бути оцінена по формулі:

.

Ер=16931,10* 0,4/11216,54=0,6

Якщо Ер > 0,20, то наша розробка є економічно доцільною.

Вартісна оцінка результатів застосування програмного забезпечення за розрахунковий період Т визначається по формулі:

,

де Т - розрахунковий період ;

Рt - вартісна оцінка результатів t розрахункового періоду, грн.;

- дисконтуюча функція, яка вводитися з ціллю приводу всіх витрат та результатів до одного моменту часу.

Дисконтуюча функція має вигляд:

= 1 / (1 + р) t,

де р - коефіцієнт дисконтування (р = Ен = 0,2, Ен - нормативний коефіцієнт ефективності капітальних вкладень).

Таким чином,

.

Якщо програмне забезпечення заміняє ручну працю, отже, набір корисних результатів у принципі не міняється. У якості оцінки результатів застосування програмного забезпечення за рік береться різниця (економія) витрати, які виникають у результаті використання програмного забезпечення, тобто Рt = Еу.

Припускається, що дана розробка без змін та дороботок буде використовуватись на протязі трьох років. Тоді вартісна оцінка результатів застосування програмного забезпечення (економія) за розрахунковий період Т = 3 роки складе:

=19174,41 +15978,68+13315,56 = 48468,65 грн.

Економічний ефект від використання програмного забезпечення за розрахунковий період Т = 3 роки складе:

Ет = 48468,65 - 11216,54 = 37252,11 грн.

Таким чином, у результаті аналізу встановлено, що впровадження розробки виправдано й економічно доцільно.

6. ОХОРОНА ПРАЦІ


Охорона праці - це система законодавчих актів, соціально-економічних, організаційних, технічних, гігієнічних та лікувально-профілактичних заходів і засобів, що забезпечують безпеку, збереження здоров'я і працездатності людини в процесі праці.

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

Законодавство України про охорону праці базується на:

Конституція України, яка гарантує права громадян на працю, відпочинок, охорону здоров’я, медичну допомогу і страхування;

Закон України „Про охорону праці”, де вказано, що державна політика в області охорони праці базується на пріоритеті життя і здоров’я людей в умовах їх трудової діяльності. Відповідальність за створення нормальних і безпечних умов труда несе роботодавець незалежно від форми власності підприємства чи установи які здійснюють розробку виробництва та застосування ПЕОМ і ПК;

Норми штучного та природного освітлення визначені СНиП;

Закон України „Про забезпечення санітарного та епідемічного благополуччя населення” де вказані основні вимоги гігієни та санітарії;

Параметри мікроклімату на робочих місцях регламентовані Держстандартом і ДСН;

Категорія робіт по величині загальних енергозатрат встановлена ДСН;

Закон України „Про загальнообов’язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності”, який гарантує право трудящих на соціальний захист і компенсацію постраждалим матеріальних втрат при травмуванні і професійного захворювання;

Кодекс законів про працю (КЗпП) де викладені окремі вимоги охорони праці;

Пожежна безпека викладена в законі України „Про пожежну безпеку” і „Правила про пожежну безпеку в Україні”

Крім того є ряд Державних стандартів, правил, норм, інструкцій та інших нормативних документів, регламентуючих питання охорони праці.

6.1 Аналіз небезпечних і шкідливих факторів обчилювальному центрі


Робочим місцем вважається місце постійного чи періодичного перебування працюючого для спостереження й ведення виробничого процесу чи експерименту. Організація робочого місця заключається у виборі робочої пози, визначенні робочих зон, розміщенні органів управління, індикаторів, інструментів і заготовок. Частина простору робочого місця, в якому здійснюються робочі процеси, може бути розділена на зони. Робоча поза буде найменш втомлювальною при умові, що робоча зона сконструйована правильно, тобто забезпечується відповідність цієї зони з оптимальним полем зору працюючого.

Одна з найважливіших задач охорони праці - забезпечення безпеки працюючих, тобто забезпечення такого стану умов праці, при якому виключено дію на працюючих небезпечних і шкідливих виробничих чинників.

Нанесення травми людині в умовах виробництва обумовлене наявністю небезпечних виробничих чинників:

підвищенні значення електричного струму, статичної електрики та рівня електромагнітних випромінювань;

підвищений рівень рентгенівських випромінювань;

підвищений рівень шуму;

несприятливі мікрокліматичні умови;

недостатнє або надмірне освітлення;

психофізіологічні шкідливі і небезпечні виробничі чинники.

Держстандарт 12.1.007-76 розповсюджується на шкідливі речовини, що втримуються в сировині, продуктах, напівфабрикатах і відходах виробництва, і встановлює загальні вимоги безпеки при їх виробництві, застосуванні та зберіганні. По ступіню впливу на організм шкідливі речовини діляться на чотири класи шкідливості:

-й - речовини надзвичайно шкідливі;

-й - речовини високо шкідливі;

-й - речовини помірно шкідливі;

-й - речовини мало шкідливі.

Гранично припустима концентрація (ГПК) шкідливих речовин у повітрі робочої зони - обов'язкові санітарні нормативи для використання при проектуванні виробничих будинків, технологічних процесів, устаткування й вентиляції а також для попереджувального й поточного санітарного нагляду.

Держстандарт 12.1.005-88 розповсюджується на повітря робочої зони підприємств, встановлює загальні санітарно-гігієнічні вимоги до показників мікроклімату й допустимому змісту шкідливих речовин в повітрі робочої зони. Вимоги на допустимий зміст шкідливих речовин в повітрі робочої зони розповсюджуються на робочі місця незалежно від їх розташування.

Показники, якими характеризується мікроклімат є: температура повітря, відносна вологість повітря, швидкість руху повітря, інтенсивність теплового випромінювання.

На організм людини і обладнання ПЕОМ великий вплив виявляє відносна вологість. При відносній вологості повітря більш 75-80% знижується опір ізоляції, змінюються робочі характеристики елементів, зростає інтенсивність відмов елементів ПЕОМ. Швидкість руху повітря і запиленість повітряного середовища виявляють вплив на функціональну діяльність людини і роботу приладів ПЕОМ.

Одним з найважливіших фізіологічних механізмів організму є терморегуляція, що залежить від мікрокліматичних умов навколишньої середи. Терморегуляція підтримує тепловий баланс організму людини при різноманітних метеорологічних умовах і тяжкості роботи, що виконується за рахунок звуження або розширення поверхні кровоносних судин і відповідної роботи потових залоз.

Несприятливий мікроклімат в процесі роботи викликає недомагання і втому організму, порушує нервову і розумову діяльність, сприяє зниженню спостережливості і швидкості реакції.

Психофізіологічні шкідливі і небезпечні виробничі чинники

Психофізіологічні шкідливі і небезпечні виробничі чинники по характеру дії поділяються на фізичні і нервово-психічні перевантаження.

При експлуатації ПЕОМ можуть виникнути негативні явища в організмі людини. Розлади, що виникають в результаті постійного виконання дій, що повторюються, стосуються працівників, що використовують в своїй роботі клавіатуру. При цьому виникає синдром тунельного зап’ястя, який викликає розпухання сухожиль, і що супроводжується постійною біллю при виконанні будь-яких дій, навіть не зв’язаних безпосередньо з професійною діяльністю.

Характеристика приміщення

Відповідно діючим нормативним документам (СН 512-78 и ДСанПіН 3.3.007-98) площа приміщення 13,0 м²; об’єм - 20 м³. Стіна, стеля, підлога приміщення виготовляються з матеріалів, дозволених для оформлення приміщень санітарно-епідеміологічним наглядом. Підлога приміщення вкрита діелектричним килимком, випробуваним на електричну міцність.

Висота робочої поверхні столу для персонального комп’ютера (ПК) - 690 мм, ширина повинна забезпечувати можливість виконання операцій в зоні досягнення моторного ходу; висота столу 725 мм, ширина 800 мм, глибина 900 мм. Простір для ніг: висота 600 мм, ширина 500 мм, глибина на рівні колін 500 мм, на рівні витягнутої ноги 650мм.

Ширина й глибина сидіння 400 мм, висота поверхні сидіння 450 мм, кут нахилу поверхні від 15º вперед до 5º назад. Поверхня сидіння плоска, передній край закруглений.

Заземлення конструкцій, які знаходяться в приміщенні надійно захищені діелектричними щитками. В приміщенні з ПЕОМ кожен день проводиться вологе прибирання.

В доступних місцях знаходяться аптечки першої медичної допомоги.

Приміщення з ПЕОМ оснащено системою автоматичної пожежної сигналізації, а також устатковане засобами пожежегасіння. Підходи до засобів пожежегасіння вільні. Приміщення має кімнати для відпочинку, приймання їжі, психологічної розгрузки та інші побутові приміщення.

Аналіз метеорологічних умов праці, системи вентиляції

Для забезпечення безпеки життєдіяльності працівників у приміщенні варто підтримувати необхідну якість повітря, тобто оптимальні (у крайньому випадку припустимі) параметри мікроклімату, сталість газового складу й відсутність (у крайньому випадку не вище ГПК) шкідливих домішок у повітрі. Для цього необхідно подавати в ці приміщення певну кількість чистого зовнішнього повітря, потреба в якому регламентується СНіП 2.04.05-91. Для підтримки певних параметрів мікроклімату використовується опалення, вентиляція, кондиціювання, що є найважливішою частиною інженерного спорудження.

Вентиляція - це організований і регульований повітрообмін у приміщеннях, у процесі якого забруднене або нагріте повітря віддаляється й на його місце подається свіже чисте повітря.

Системи опалення - це комплекс елементів, необхідних для опалення приміщень в холодний період року, нормованої температури повітря не нижче встановленої Держстандарт 12.1. 005-88 і СНіП 2.04. 05-91. У приміщеннях з електронно-обчислювальною технікою передбачають центральне опалення в сполученні із приточною вентиляцією або кондиціювання повітря при одне- і двозмінному режимах роботи, а при трьохзмінному - тільки повітряне опалення.

Кондиціювання - це автоматична підтримка в закритих приміщеннях всіх або окремих параметрів повітря з метою забезпечення оптимальних мікрокліматичних умов.

Згідно СНіП 2.04. 05-91 система вентиляції, кондиціювання повітря й повітряного опалення передбачена для суспільних, адміністративно-побутових і виробничих категорій.

Рівень шуму та електромагнітних випромінювань

При роботі на ПЕОМ людина наражається на шумовий вплив з боку багатьох джерел, наприклад, шум викликаний роботою принтера (70 дБ), вентиляторів і кондиціонерів (до 100 дБ).

Під впливом шуму відбувається зниження слухової чутливості, що тим значні, ніж вище інтенсивність шуму і більше його експозиція. Діючи на слуховий аналізатор, шум змінює функціональний стан багатьох систем органів людини внаслідок взаємодії між ними через центральну нервову систему. Це виявляє вплив на органи зору людини, вестибулярний апарат і рухові функції, а також призводить до зниження мускульної дієздатності.

При роботі в умовах шуму спостерігається підвищена втомлюваність і зниження дієздатності, погіршується увага і мовна комутація, створюються передумови до помилкових дій працюючих. Являючись причиною частих головних нездужань, нестійкого емоційного стану, шум створює передумови до погіршення психологічного стану. Шкідливий вплив шуму на організм людини, як правило, посилюється за наявності інших шкідливих або несприятливих виробничих чинників.

Дія електромагнітних полів на організм людини виявляється у функціональному розладі центральної нервової системи. В результаті тривалого перебування в зоні дії електромагнітних полів наступають передчасна стомлюваність, сонливість або порушення сну, з'являються часті головні болі.

Джерелами випромінювання електромагнітних полів (ЕМП) в ПЕОМ є система відхилення випромінювання монітору, а також елементи блоків живлення системного модуля, монітору, принтера.

Систематичний вплив на працюючого ЕМП з рівнями, що перевищують допустимі, призводить до порушення стану його здоров’я. При цьому можуть виникати зміни в нервовій, серцево-судинній та інших системах організму людини. При впливі ЕМП значної інтенсивності на організм можуть виникати поразки кришталиків ока, нервово-психічні захворювання і трофічні явища (випадення волосся, ломкість нігтів). Ступінь шкідливого впливу ЕМП на організм людини визначається напругою електромагнітного поля, довжиною хвилі і тривалістю перебування організму в зоні діяльності ЕМП.

Рентгенівське випромінювання

Електронно-променеві трубки, які працюють при напрузі понад 6 кВ є джерелами „м’якого” рентгенівського випромінювання. При напрузі понад 10 кВ рентгенівське випромінювання виходить за межі скляного балону і розсіюється в навколишньому просторі виробничого приміщення.

Шкідливий вплив рентгенівських променів зв’язаний з тим, що, проходячи через біологічну тканину, вони викликають в тканині іонізацію молекул тканинної речовини, що може призвести до порушення міжмолекулярних зв’язків, що в свою чергу, призводить до порушення нормальної течії біохімічних процесів і обміну речовин.

Освітлення

Значення освітлення в процесі життєдіяльності і особливо виробничої діяльності сучасного суспільства величезне. Організація раціонального освітлення робочих місць - одне з основних питань охорони праці. Залежно від джерела світла виробниче освітлення може бути трьох видів: природне, штучне і суміщене.

Для природного освітлення характерна висока дифузна (неуважність) денного світла від небозводу, що вельми сприятливе для зорових умов роботи. Природне освітлення підрозділяють на бічне, здійснюване через світлові віконні отвори; верхнє, здійснюване через аераційні і зенітні ліхтарі, отвори в перекриттях; комбіноване - бічне з верхнім. Природне освітлення характеризується тим, що створювана освітленість змінюється в надзвичайно широких межах залежно від часу дня, року, метеорологічних чинників. Тому природне освітлення неможливе кількісно задавати величиною освітленості. Як нормована величина для природного освітлення прийнята відносна величина - коефіцієнт природної освітленості (КЕО), який є вираженим у відсотках відношенням освітленості в даній крапці усередині приміщення до одночасного значення зовнішньої горизонтальної освітленості, створюваної світлом повністю відкритого небозводу, тобто


Штучне освітлення передбачається у всіх виробничих і побутових приміщеннях, де не досить природного світла, а також для освітлення приміщень в нічний час. По функціональному призначенню штучне освітлення підрозділяють на робоче, аварійне, евакуаційне, охоронне, чергове. Робоче освітлення забезпечує зорові умови нормальний роботи, проходу людей і руху транспорту. Аварійне освітлення влаштовують для продовження роботи при раптовому відключенні робочого освітлення. При цьому нормована освітленість повинна складати 5 % від робочого освітлення. Евакуаційне освітлення передбачається для евакуації людей з приміщень при аваріях в місцях, небезпечних для проходу людей, на сходових клітках (повинно бути в приміщеннях не менше 0,5, а на відкритих територіях - не менше 0,2 лк).

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

Штучне освітлення може бути загальним (рівномірним або локалізованим) і комбінованим (до загального додається місцеве). Застосування тільки місцевого освітлення забороняється.

В силу тісного взаємозв’язку зору людини з роботою мозку освітлення виявляє істотний вплив на центральну нервову систему, яка керує всією життєдіяльністю людини. Раціональне освітлення сприяє підвищенню продуктивності і безпеки праці і збереженню здоров’я працюючих. Недостатнє освітлення робочих місць - одна з причин низької продуктивності праці. В цьому випадку очі працюючого сильно напружені, важко розрізняють предмети, у людини знижується темп і якість роботи, погіршується загальний стан.

На органах зору негативно відбивається як недостатнє так і надмірне освітлення. Надмірна освітленість призводить до осліплення, що характеризується різзю в очах, при цьому очі працюючого швидко втомлюються і зорове сприймання різко погіршується.

Промислова естетика приміщень

Важливе значення для створення сприятливих умов праці має культура праці й виробнича естетика. Чистота на робочому місці, правильно підібрана колірне фарбування приміщень, інвентарю, устаткування, форма й покрій робочого одягу, спеціально підібрана музика - все це створює гарний настрій, підвищує життєвий тонус і працездатність. Естетичні умови на виробництві мають істотне значення не тільки для оздоровлення, полегшення праці, але й для підвищення його привабливості і продуктивності. У зв'язку із цим на промислових підприємствах велике значення надається промисловій естетиці.

Як самостійна галузь знань промислова естетика і теоретично і організаційно сформувалась порівняно недавно. Вона вивчає закони художньої творчості в сфері виробництва. Коло питань, розроблювальних промисловою естетикою, дуже широкий. Це раціональне колірне оформлення промислових приміщень і встаткування, розумна організація робочого місця, художнє конструювання верстатів, машин, інструментів, впровадження функціональної музики, художня розробка моделей робочого одягу, устаткування стендів наочної агітації, озеленення території цехів і підприємств.

Колір є одним з найбільш потужних засобів емоційного впливу на людину. Колір робочих приміщень, устаткування, механізмів викликає в людини певні емоції, впливає на стомлюваність, травматизм, брак у роботі, а отже, на продуктивність праці. Впливаючи на нервову систему, колір збуджує або заспокоює, створює ілюзію тепла або холоду, тяжкості або легкості, наближення або віддалення. Колірне фарбування виробничих приміщень доцільно робити з урахуванням технологічного призначення приміщень, умов роботи, температури, характеру висвітлення й вимог охорони праці. Колір устаткування повинен бути м'яким, спокійним, психологічно сприятливим. У яскраві контрастні кольори фарбують органи керування встаткування, рухливі частини.

У виробничому інтер'єрі колір також відіграє попереджуючу роль, використовується для зображення технологічних символів і всіляких сигналів. Наприклад, при будівництві промислових об'єктів трубопроводи різного призначення (для води, кислоти, газу) пофарбовані в різний колір. Усім відомі сигнально-попереджуючі кольори: червоний - стоп, небезпечно; жовтий - можлива небезпека; зелений - повна безпека. З економічної точки зору раціональне фарбування робочих приміщень і встаткування підвищує продуктивність праці на 5-20%, зменшує число нещасних випадків.

Принципам організації праці повинно відповідати і взаємне компонування робочих місць у рамках офісного приміщення, так і структура індивідуального робочого місця.

Основні принципи ергономічної організації робочого місця - комфорт і мінімізація навантажень. Зрозуміло, принципам ергономіки повинна відповідати й використовувані меблі. Наприклад, зручне крісло, у якому можна без шкоди для здоров'я працювати тривалий час, повинне бути оснащений підлокітниками й підголівником, що знімають навантаження з м'язів плечового поясу. Пружна спинка анатомічної форми зменшує навантаження на хребет. У результаті конструкція рівномірно підтримує все тіло. Також крісло повинне регулюватися по висоті й глибині сидіння, залежно від ваги й росту людини.

Серед столів найбільш ергономічною визнана криволінійна кутова форма. За рахунок увігнутості більша частина їхньої площі виявляється використовуваної, оскільки попадає в зону охоплення руками людини, рівну 35-40 см.

Самим оптимальним фахівцями вважається розташування меблів за принципом «усе під рукою», коли всі необхідні для щоденної роботи полиці, тумби, шафи перебувають на відстані витягнутої руки. Це дозволяє виключити непотрібні витрати енергії й зосередиться на виконанні прямих обов'язків.

 

6.2 Заходи щодо нормалізації шкідливих і небезпечних факторів

 

.2.1 Захист від електромагнітних випромінювань

На сьогоднішній день основним засобом захисту від електромагнітних випромінювань, що застосовуються в обчислювальній техніці є екранування джерел випромінювання. Сьогодні всі монітори, що випускаються, а також блоки живлення мають корпус, виконаний зі спеціального матеріалу, що практично повністю затримує проходження електромагнітного випромінювання. Застосовуються також спеціальні екрани, що зменшують ступінь впливу електромагнітних і рентгенівських променів на оператора.

Для зниження електромагнітного впливу на людину-оператора використовуються також раціональні режими роботи, при яких норма роботи на ПЕОМ не повинна перевищувати 50 % робочого часу.

6.2.2 Захист від ураження електричним струмом

Гранично допустимі рівні напруги дотику і струмів при експлуатації і ремонті обладнання забезпечені:

застосуванням малої напруги;

ізоляцією струмоведучих мереж;

обґрунтуванням і оптимальним вибором елементної бази, що виключає передумови поразки електричним струмом;

правильного компонування, монтажу приладів і елементів;

дотриманням умов безпеки при настанові і заміні приладів і інше.

Захист від небезпечних впливів електричного струму при експлуатації обчислювальних комплексів забезпечені:

застосування захисного заземлення або обнуління;

ізоляцією струмопровідних частин;

дотриманням умов безпеки при настанові і заміні агрегатів;

надійним контактним сполученням з урахуванням перепаду кліматичних параметрів.

6.2.3 Захист від статичної електрики

Для усунення причин утворення статичного заряду застосовуються провідні матеріали для покриття підлоги, панелей, робочих столів, стільців. Для зниження ступеня електризації і підвищення провідності діелектричних поверхонь підтримується відносна вологість повітря на рівні максимально допустимого значення.

На робочих місцях всі металеві та електропровідні неметалеві обладнання заземлені.

6.2.4 Захист від шуму та вібрації

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

Зниження виробничого шуму в приміщеннях, де розміщені ПЕОМ, досягається за рахунок акустичної обробки приміщення - зменшення енергії відбитих хвиль, збільшення еквівалентної площі звукопоглинаючих поверхонь, наявність в приміщеннях штучних звукопоглиначів.

З метою зниження шуму в самих джерелах встановлюються віброгасячі і шумогасячі прокладки або амортизатори. В якості засобів звукопоглинання застосовуються не горючі або тяжко горючі спеціальні перфоровані плити, панелі, мінеральна вата з максимальним коефіцієнтом поглинання в межах частот 31,5-8000Гц.

 

6.2.5 Оздоровлення повітряного середовища

Для створення нормальних умов роботи програмістів і операторів ПЕОМ в машинному залі використовується система кондиціювання, що забезпечує необхідні оптимальні мікрокліматичні параметри і чистоту повітря.

В холодні періоди року температура повітря, швидкість його руху і відносна вологість повітря відповідно складають: 22-24 С°; 0,1 м/с; 40-60%; в теплі періоди року температура повітря - 23-25 Сº; відносна вологість 40-60 %; швидкість руху повітря - 0,1 м/с.

 

6.2.6 Захист від рентгенівського випромінювання

Електронно-променеві трубки, магнетрони, тиратрони та інші електровакуумні прилади, що працюють при напрузі вище 6 кВ, є джерелами „м’якого” рентгенівського випромінювання. При технічній експлуатації апаратури, в якій напруга вище 15 кВ, використовують засоби захисту для відвертання рентгенівського опромінення операторів і інженерно-технічних робітників, бо при такій напрузі рентгенівське випромінювання розсіюється в навколишньому просторі виробничого приміщення.

Шкідливий вплив рентгенівських променів зв’язаний з тим, що порушення міжмолекулярних зв’язків тканинної речовини може призвести до порушення нормальної течії біохімічних процесів і обміну речовин.

Засобами захисту від „м’якого” рентгенівського випромінювання є застосування поляризаційних екранів, а також використання в роботі моніторів, що мають біо-керамічне покриття і низький рівень радіації. В якості засобів захисту від чинності м’яких рентгенівських променів застосовуються екрани з сталевого листа (0,5-1 мм) або алюмінію (3 мм), спеціальної гуми.

Для відвертання розсіювання рентгенівського випромінювання по виробничому приміщенню встановлюють захисні огорожі з різноманітних захисних матеріалів, наприклад, свинцю або бетону.

6.2.7 Забезпечення раціонального освітлення

При правильно розрахованому і виконаному освітленні очі працюючого за комп’ютером протягом тривалого часу зберігають здатність добре розрізняти предмети не втомлюючись. Це сприяє зниженню професійного захворювання очей, підвищується працездатність. Раціональне освітлення відповідає ряду вимог:

достатнє, щоб очі без напруги могли розрізняти деталі;

постійна напруга в мережі не коливається більше ніж на 4%;

рівномірно розподілено по робочим поверхням, щоб очам не приходилося зазнавати різкого контрасту кольорів;

не викликає дії, яка сліпить органи зору працюючого (зменшення блищання джерел, що відбивають світло, досягається застосуванням світильників, які розсіюють світло);

не викликає різких тіней на робочих місцях.

Задачею розрахунку є визначення необхідної потужності електричної освітлювальної установки для створення у виробничому приміщенні заданої освітленості. При проектуванні освітлювальної установки необхідно вирішити наступні основні питання:

вибрати тип джерела світла - рекомендуються газорозрядні лампи, за винятком місць, де температура повітря може бути менш +5°С і напруга в мережі падати нижче 90 % номінального, а також місцевого освітлення (у цих випадках застосовуються лампи розжарювання);

визначити систему освітлення (загальна локалізована або рівномірна, комбінована);

вибрати тип світильників з урахуванням характеристик світорозподілення, умов середовища (конструктивного виконання) та інше;

розподілити світильники і визначити їх кількість (світильники можуть матися в своєму розпорядженні рядами, в шаховому порядку, ромбоподібно);

визначити норму освітленості на робочому місці.

Для розрахунку штучного освітлення використовують в основному три методи. Найчастіше її розраховують по світловому потоку. Для цього визначається світловий потік кожної лампи по нормуючій мінімальній горизонтальній освітленості Еmin (лк) з вираження:

=(Emin·S·K·z) / n1·n·N,

де F - світловий потік лампи в світильнику, лм;- площа приміщення, м2;- коефіцієнт запасу;- коефіцієнт нерівномірного освітлення;- коефіцієнт використання світлового потоку;- кількість ламп в світильнику;- число світильників.

Якщо освітлення здійснюється рядами люмінесцентних ламп, те вираження вирішується відносно N. Значення коефіцієнта n1 визначається по довіднику в залежності від типу світильника, коефіцієнтів відбивання стін Рс, стелі Рп, робітничій поверхні і від розмірів приміщення. Показник приміщення fi визначається з виразу:= А·В/Нр·(А+В),

де А і В - довжина і ширина освітленого приміщення, м;

Нр - висота підвісу світильника над робітничою поверхнею, м.

У випадку застосування люмінесцентних ламп потрібна кількість світильників N, яка визначається за формулою:

=Emin·S·K·z/F·n1·n

Поділивши число світильників N на число вибраних рядів світильників, визначають число світильників у кожному ряду.

Нехай зал має розміри А=8м, В=5м, h=3м, стеля обладнується світильниками Л201Б з люмінесцентними лампами ЛБ80, технічні характеристики ламп і світильників наведені в таблицях 6.1, 6.2 (згідно Держстандарту 6825-74)

Таблиця 6.1

Тип

Потужність, Вт

Напруга, В

Світловий потік (номін.)

Довжина, мм

Діаметр, мм

ЛБ80

80

110

5220

1500

40


Таблиця 6.2

Серія

Модифікація

Кількість* потужність, шт, Вт

Розміри, мм

Номер групи

Прим.




Довжина

Ширина

Висота



Л201Б

3

2·8

1575

354

127

9

Стеля


Рівень робітничої поверхні над полом 0,8 м, при цьому Нр=2,2 м.

Показник приміщення рівний:=40/2,2 (8+5)=1,3986

По довіднику визначаємо значення коефіцієнта n1 (для значень Рс=0,5, Рп=0,3): n1=0,7. Значення коефіцієнта нерівномірного освітлення приймаємо рівним 1,1, а коефіцієнта запасу - 1,5. При загальному типі освітлення значення Emin=400 лк. Знаючи значення світлового потоку кожної лампи, можемо визначити необхідну кількість світильників:=400·8·5·1,5·1,1/5220·0,7·2=3(штук)

Загальна потужність освітлювальної установки рівна:

Р=2·80·3=480(Вт)

По результатах проведених розрахунків можна зробити висновок про те, що небезпечні і шкідливі виробничі чинники, діючи в робочій зоні, знаходяться в межах допустимих норм і їхній вплив на організм працюючих не приносить істотної шкоди здоров’ю.

 

6.3 Пожежна безпека

база локальний мова інтерфейс

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

По класифікації приміщень з ПЕОМ по пожежній небезпеці відносяться до категорії В (СНіП 2.09.02-85), що характеризуються наявністю твердих горючих і важко горючих речовин і матеріалів, а також легкозаймистих матеріалів.

В зв’язку з цим можна виділити ряд заходів для пожежної безпеки:

не палити і не використовувати нагрівальні прилади в приміщеннях з ПЕОМ;

не від’єднувати і не приєднувати кабелі, усувати несправності за наявності напруги в мережі;

не визначати наявність напруги в ланцюзі, замиканням клем.

В електронно-обчислювальній техніці пожежну небезпеку створюють прилади, що нагріваються, електро- і радіотехнічні елементи. Вони нагрівають навколишнє повітря і близько розташовані деталі і провідники. Все це може призвести до займання означених елементів, руйнування ізоляції і короткого замикання.

Для виявлення пожеж в приміщенні встановлені датчики, що спрацьовують при появі диму, підвищенні температури і відкритого вогню.

Технологічні об’ємні підлоги виконуються з негорючих або важко горючих матеріалів з межею вогнестійкості не менше 0,5 г. Підпільні простори під об’ємними підлогами відділяють негорючими перегородками з межею вогнестійкості не менше 0,75 г на ділянки площею не більш 250 м2.

Для гасіння можливих пожеж передбачена наявність первинних засобів пожежогасіння, згідно «Правил пожежної безпеки в Україні» так і пожежні крани із брезентовими рукавами, пожежні щити (1 щит на 5000м2).

В кожній кімнаті знаходяться вогнегасники. Вогнегасники діляться на хімічні, пінні, повітряно-пінні, СО2 - вогнегасники і порошкові.

Вогнегасники допускаються до експлуатації якщо їхні технічні характеристики відповідають нормативним значенням, встановленим експлуатаційно-технічною документацією. Зменшення змісту вогнегасячої речовини і тиску у вогнегасниках не повинне перевищувати 10 % від встановленого номінального значення.

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

Первинні засоби пожежогасіння: ручні вогнегасники в кількості 2 шт.

Засоби гасіння загорання й пожежі, які можуть бути ефективно використані в початковій стадії пожежі: внутрішні пожежні крани, вогнегасники, кошми, пісок.

Для успішного гасіння пожежі велике значення має швидке виявлення пожежі та своєчасний виклик пожежних підрозділів до місця пожежі. Пожежний зв’язок і сигналізація можуть бути спеціального або загального призначення, радіозв’язком, електричною пожежною сигналізацією (ЕПС), сиренами. ЕПС є найбільш швидким та надійним засобом сповіщення про виникнену пожежу. В залежності від схеми з’єднання розрізнюють променеві (радіальні) та шлейфні (кільцеві) системи ЕПС.

ЕПС складаються з таких основних частин: сповіщувачів, встановлених в приміщеннях; приймальної станції, яка знаходиться в черговій кімнаті пожежної команди; блока поживи від сіті та від акумулятора (резервний); системи переключення з одної поживи на іншу; електропровідній сіті, яка з’єднує сповіщувачі з приймальною станцією.

В кімнаті з ПЕОМ розміщений сповіщувач (датчик) тепловий легкоплавкий. При збільшенні температури легкоплавкий сплав розплавляється і пружинячі пластинки, розмикаючись, вмикають ланцюг сигналізації.

Одним з вимог пожежної безпеки є розробка плану евакуації людей і матеріальних цінностей при пожежі, з яким повинні бути ознайомлені працівники підприємства.

ВИСНОВКИ

- одна із самих потужних систем, що дозволяють на найсучаснішому рівні створювати як окремі прикладні програми Windows, так і розгалужені комплекси, призначені для роботи в корпоративних мережах і в Інтернет. Візуальне програмування дозволило звести проектування інтерфейсу користувача до простих і наочних процедур, які дають можливість за хвилини або годинники зробити те, на що раніше йшли місяці роботи.

Однієї з головних завдань Delphi є розробці додатків для роботи з базами даних. У цій області Delphi займає самі передові позиції, працюючи з будь-якими системами керування базами даних. У цілому Delphi - чудовий інструмент, як для починаючих програмістів, так і для асів програмування.

У дослідницькій частині дипломної роботи був зроблений порівняльний аналіз різних архітектур баз даних і був зроблений аргументований вибір на користь клієнт-серверної архітектури.

Реалізація даного проекту була проведена із залученням потужного й у теж час простого й безкоштовного засобу роботи з базами даних, MS SQL Server 2008, що дозволяє організувати, як локально, так і по комп'ютерній мережі, швидкий доступ до бази даних.

Використання потужних засобів Delphi 7 по створенню додатків працюючих в операційній системі Windows і зокрема додатків баз даних, дозволило створити програмний продукт максимально орієнтований на кінцевого користувача, що не спокушений у питаннях теорії баз даних.

СПИСОК ЛІТЕРАТУРИ

1.  Бобровский С. Delphi 5 - CПб.: Питер, 2000.

.    Гаевский А. Разработка программных приложений на Delphi 6 - М.: Киев, 2000.

.    Галисеев, Г.В. Программирование в среде Delphi 8 for .NET. Самоучитель. :- М.: Издательский дом "Вильямс", 2004.

.    Глинский Я.Н., Анохин В.Е., Ряжская В.А. Turbo Pascal 7.0 и Delphi. Учебное пособие. СПб.: ДиаСофтЮП, 2003.

.    Гофман В., Хомоненко А. Delphi 6. CПб.: БХВ-Петербург, 2004.

.    Грибачев К. Г. Delphi и Model Driven Architecture. Разработка приложений баз данных. - СПб.. Питер, 2004.

.    Грибачев К. Тонкие базы данных и инструменты для их разработки в Delphi и C++Builder. - КомпьютерПресс, 2003, № 7, 8.

.    Дарахвелидзе П. Г., Марков Е. П. Delphi - среда визуального программирования. СПб.: BHV- Санкт-Петербург, 1999.

.    Елманова Н., Трепалин С., Тенцер А. Delphi 6 и технология COM. - CПб.: Питер, 2002.

.    Калверт Ч. Delphi 5. Энциклопедия пользователя. СПб.: ДиаСофтЮП, 2003.

.    Климова Л. М. "Delphi 7. Самоучитель. М.: ИД КУДИЦ-ОБРАЗ, 2005.

.    Корняков В.Н. Программирование документов и приложений MS Office в Delphi. - CПб.: БХВ-Петербург, 2005.

.    Коцюбинский А.О., Грошев С.В. Язык программирования Delphi 5 - М.: "Издательство Триумф", 1999.

.    Леонтьев В. Delphi 5 - М.: Москва "Олма-Пресс", 1999.

.    Мадрел Тео. Разработка пользовательского интерфейса/ Пер. с англ.- М.:ДМК,2001.

.    Матросов А. В. и др. MS Office ХР: разработка приложений / Матро

сов А. В., Новиков Ф. А., Усаров Г. Е., Харитонова И. А. / Под ред. Ф. А. Новикова. - СПб.: БХВ-Петербург, 2003.

17.          Немнюгин С.А. Программирование - CПб.: Питер, 2000.

.    Озеров В. Delphi. Советы программистов (2-е издание). - СПб.: Символ- Плюс, 2002.

.    Пономарев В. Самоучитель Delphi 7. CПб.: БХВ-Петербург, 2005.

.    Ревнич Ю. В. Нестандартные приемы программирования на Delphi. - СПб.: БХВ-Петербург, 2005.

.    Ремизов Н. Delphi - CПб.: Питер, 2000.

.    Симонович С.В., Евсеев Г.А. Занимательное программирование: Delphi. - М.: АСТ-ПРЕСС Кнрга, 2001.

.    Фараонов В. Система программирования Delphi. CПб.: БХВ-Петербург, 2005.

.    Ханекамп Д. Вилькен П. Программирование под Windows/ Пер. с нем. -М.: ЭКОМ, 1996.

.    Хомоненко А. Д Delphi 7. CПб.: БХВ-Петербург, 2005.

26.     j@alba.ua - адрес автора

.        <http://www.delphikingdom.ru> // Королевство Delphi. Виртуальный клуб программистов

.        <http://www.delphiworld.narod.ru> //Профессиональные программы для разработчиков

.        <http://www.delphisources.ru> // Программирование на Delphi

.        <http://www.delphibasics.ru> // Справочник - «Основы Delphi»

31.     <http://www.delphimaster.ru> // Мастера Delphi

Похожие работы на - Розробка гнучкої системи управління інформаційними потоками магазину комп’ютерної техніки

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!