Елемент інформаційної системи для контролю експлуатації автотранспорту

 

Міністерство освіти і науки, молоді та спорту України

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

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

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










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

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

Компютеризовані та робототехнічні системи

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

Елемент інформаційної системи для контролю експлуатації автотранспорту


Студента

Красівського Олександра Миколайовича








Кривий Ріг 2012

Анотація


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

Програмне забезпечення розроблено за допомогою середовища програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

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

Зміст

інформаційна система програмне забезпечення

ВСТУП

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

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

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

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

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

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

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

2. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ВИКОРИСТАННЯ СУБД INTERBASE І FIREBIRD

2.1 Особливості застосування FireBird

2.2 Сторінки бази даних

2.3 Розмір сторінки бази даних

2.4 Діалект бази даних

2.5 Типи даних

2.6 Сервісні компоненти Delphi та їх особливості

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

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

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

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

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

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

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

3.3.1 Оператор SELECT

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

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

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

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

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

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

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

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

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

4.1 Загальна характеристика та коло задач, що вирішує проектована система

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

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

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

4.5 Опис програмної реалізації

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

ПРОГРАМНОГО ПРОДУКТУ

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

6.1 Аналіз шкідливих та небезпечних факторів

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

6.3 Пожежна безпека

ВИСНОВКИ

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


ВСТУП


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

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

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

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

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

Для реалізації поставленого завдання також була використана СУБД FireBird 2.1., яка є клоном InterBase.

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

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

інформаційна система програмне забезпечення

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


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


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


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


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

Початок робіт: 03.11.11. Закінчення робіт: 03.05.12.


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


Проектоване програмне забезпечення розроблено за допомогою середовища програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

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

·AvtoServise.exe - виконавчий файл системи;

·base.fdb - файл бази даних;

·help.hlp - файл довідки;

·бібліотека GDS32.dll - забезпечує зв'язок з SQL сервером FireBird.


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


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

В дослідницькій частині дипломної роботи були розглянуті теоретичні аспекти використання СУБД INTERBASE і FIREBIRD та особливості використання мови SQL при розробці інформаційних систем.


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


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

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

·Простота й зрозумілість інтерфейсу.

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

·персональний компютер на базі Intel процесору з частотою не менше 2,4 ГГц;

·оперативна пам'ять не менше 1024 Мб;

·монітор із SVGA адаптером;

·НЖМД не менше 250 Гбайт;

·монітор, клавіатура, маніпулятор типу "миша";

Додаткове програмне забезпечення: установка сервера FireBird на комп'ютері де буде встановлена програма.


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


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

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

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

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

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

2. ТЕОРЕТИЧНЕ ДОСЛІДЖЕННЯ ВИКОРИСТАННЯ СУБД INTERBASE І FIREBIRD


Промисловий сервер баз даних InterBase призначений для рішення широкого кола завдань. Він містить у собі високу надійність і простоту установки. Сьома версія сервера забезпечує підтримку паралельної роботи на багатопроцесорном устаткуванні. З Delphi поставляється ряд компонентів InterBase eXpress (IBX), що дозволяють без особливих труднощів працювати із цим сервером. Із самим сервером, крім потужних консольних утиліт, поставляється деяка кількість допоміжних інструментів. Однієї з таких утиліт є InterBase Guardian.

Дана утиліта запускається як сервіс і робить безперервний моніторинг роботи сервера. У випадку відмови Guardian перезапускає сервер. На рис. 2.1 показана схема взаємодії додатків із сервером InterBase.

Як видно зі схеми, на основі InterBase можна розробляти двох і трьохланкові програми баз даних. При розробці трьохланкової програми необхідно в якості проміжної ланки використовувати сервер. Взаємодія із сервером може здійснюватися прямо з використанням API-Сервера, за допомогою компонентів InterBase eXpress або через BDE або dbExpress. Слід зазначити, що існує декілька паралельно розвиваючихся Open Source - проектів, таких як FireBird і Yaffil. До певної версії вони є повністю сумісними з InterBase.

Для реалізації поставленого завдання також була використана СУБД FireBird 2.1., яка є клоном InterBase.

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
















Рис. 2.1 Схема взаємодії з InterBase


2.1 Особливості застосування FireBird

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

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

2.Висока масштабованість.

.Можливості використання Firebird:

·у якості основний СУБД web-сайту;

·у якості настільного, однокористувальницького додатка БД;

·як потужний сервер масштабу підприємства для роботи десятків і сотень користувачів.

4.Розширена підтримка стандарту ANSI SQL-92

5.Простота установки й підтримки сервера. Зручний і не потребуючої спеціальної підготовки механізм адміністрування БД.

.Кросплатформенність. Підтримуються всі версії Windows, починаючи з Windows 98 до Windows7, Linux і UNIX-платформи.

.Безкоштовність. Нам не треба платити за ліцензію, як у випадку з InterBase, MS SQL або Oracle.

.Виправлено багато обмежень InterBase.

Широке використання клонів InterBase (InterBase 5.x, 6.x, 7.x, Firebird 1.x, 1.5, Yaffil) говорить багато про що. Наведемо такий, що навіть не претендує на повноту список областей застосування:

·у тисячах ділових додатків у країнах СНД і по усьому світі.

·в одній з моделей танка «Абрамс».

·у телефонних станціях «Motorola».

·у пристроях, що зчитують, на німецьких залізницях.

СУБД Firebird може бути встановлена як на виділений сервер, так і на робочу станцію.


.2 Сторінки бази даних


База даних InterBase складається з послідовно пронумерованих сторінок. Нульова сторінка є системною й містить службову інформацію. На рис. 2.2 наведена схема сторінкового зберігання інформації.

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

















Рис. 2.2 Сторінкова організація зберігання даних


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

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

2.3 Розмір сторінки бази даних


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

Припустимо, що запис має кілька десятків полів, кожне з яких займає кілька десятків байт. Такий запис при малому обсязі сторінки буде займати кілька сторінок. Отже, для того щоб здійснити з нею яку-небудь операцію, сервер буде змушений звернутися до диска кілька разів, що саме по собі негативно позначиться на продуктивності. Як було відзначено раніше, розмір сторінки в InterBase 7 може приймати значення 1024, 2048, 4096 і 8192 байт. Якщо база даних розташовується на диску з файловою системою NTFS, розмір сторінки варто встановлювати 4096 байт (рівним розміру кластера), якщо файловою системою є FAT32, то краще під сторінку відводити 8192 байтів.


2.4 Діалект бази даних


У ході еволюції InterBase (ці відомості використовуються й до FireBird) у різних версіях змінювалися типи даних і використовуваних операторів мови SQL. Цей процес породив необхідність створення діалектів - форматів типів даних. На даний момент існує три діалекти - 1, 2 і 3. Перший діалект підтримують сервери InterBase версії 4 і 5, а третій діалект підтримується серверами, починаючи із шостої версії. У третьому діалекті виділені поля дати й часу. Також уведені типи даних для роботи з більшими цілими числами. Третій діалект не підтримує неявне приведення типів, на відміну від першого діалекту.

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


.5 Типи даних

і FireBird підтримує більшість типів даних SQL 92, враховуючи типу BLOB і масиви. Будь-який тип даних має набір операцій, які можна виконувати зі значеннями цього типу, тому необхідно правильно вибрати тип на етапі розробки бази даних. У версії сервера визначено 13 типів даних:

·BLOB - тип даних з динамічно змінюваним розміром, призначений для зберігання даних великого розміру. У цих полях зберігаються графічні дані, великі масиви текстів, музика й багато чого іншого. Дані зберігаються в сегментах розміром по 64 Кбайт.

·Boolean - логічне поле. Може приймати значення True, False і Unknown. Має розмір два байти.

·CHAR(n) - символьне поле фіксованої довжини. Розмір поля визначається на етапі проектування й вказується як параметр n. Поле може займати до 32 767 байт.

·DATE - поле дати. Може приймати значення від 1 січня 100 року до 29 лютого 32768 року. Поле займає чотири байти.

·DECIMAL - числовий тип даних з фіксованою точкою. Тип даних приймає як аргументи розрядність і точність збережених чисел. Розрядність визначає загальне число цифр, а точність - число цифр після коми. Розрядність може бути визначена в межах від 1 до 18 знаків, а точність - досягати певної перед цим розрядності. Поле може займати розмір 16, 32 або 64 біта.

·DOUBLE PRECISION - речовинний тип даних підвищеної точності. Число може перебувати в діапазоні від 2,25* 10-308 до 1,797*10308 і мати розмір до 15 знаків. Поле займає вісім байтів.

·FLOAT - речовинний тип даних. Число може перебувати в діапазоні від 1,175* 10-38 доз,4002х1038 і мати розмір до 15 знаків. Поле займає чотири байти.

·INTEGER - знаковий цілочислений тип даних. Може приймати значення в діапазоні від -2 147 483 648 до 2 147 483 647. Поле займає чотири байти.

·NUMERIC - еквівалентний типу DECIMAL.

·SMALLINT - знаковий цілочислений тип даних. Може приймати значення в діапазоні від -32 768 до 32 767. Поле займає два байти.

·TIME - зберігає дані про час із точністю до десятитисячної частки секунди. Може приймати значення в діапазоні від 00:00 до 23:59.9999.

·TIMESTAMP - тип даних, що зберігає інформацію про дату й час. Фактично, являє собою комбінацію типів DATE і TIME.

·VARCHAR(n) - символьне поле змінної довжини. Розмір поля визначається на етапі проектування й вказується як параметр n. Поле може займати до 32 767 байт.


.6 Сервісні компоненти Delphi та їх особливості


Компоненти InterBase eXpress (IBX) призначені для роботи із сервером InterBase, використовуючи InterBase API. Використовуючи дані компоненти, можна одержувати дані, вносити в них зміни, управляти транзакціями, одержувати відомості про базу даних, відслідковувати стан процесів виконання запитів і здійснювати інші дії. Основою коду IBX є Open Source - бібліотека FreeIBComponents, розроблена Грегорі Ділтцом в 1998 році.

На вкладці InterBase Admin розташовані компоненти, призначені для керування сервером і одержання різної інформації про режими його роботи. Компоненти, фактично, являють собою обгортку для методів InterBase Services API. Перелік можливостей цих методів досить широкий:

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

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

·відстеження сертифікатів, що надають права на роботу із сервером;

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

За виконання перерахованих вище завдань відповідає об'єкт Services Manager, що одержує виклики від клієнтських додатків за допомогою Services API. На рис. 2.3 показана схема, що відбиває зміст сказаного. Сімейство функцій Services API складається із чотирьох функцій:

·Функція isc_service_attach здійснює встановлення з'єднання з об'єктом Services Manager.

·Функція isc_service_start здійснює виклик потрібного методу об'єкта Services Manager.

·Функція isc_service_query повертає запитану інформацію або результат виконання викликаного раніше методу.

·Функція isc_service_detach розриває з'єднання з об'єктом Services Manager.

Для визначення додаткових параметрів з'єднання, створюваного методом isc_service_attach, варто скористатися спеціальним буфером Services Parameter Buffer (SPB), адреса якого передається методу в якості одного з параметрів. Буфер параметрів являє собою масив типу Char і може бути використаний для передачі ім'я користувача й пароля.

Клас TIBCustomService є загальним предком для всіх компонентів IBService. У його властивості ServerName вказується ім'я сервера, на якому будуть використовуватися сервіси. Для того щоб визначити параметри з'єднання, варто використовувати властивість ServiceParamBySPB, що дозволяє звернутися до параметра буфера по його індексі. Наприклад, вираження ServiceParamBySPB [isc_SPB_user_name] дозволяє одержати або встановити ім'я користувача.












isc_service_query ()



isc_service_start()












Рис. 2.3 Взаємодія з InterBase Services

На рис. 2.4 представлена ієрархія компонентів IBX Services. Основою всіх компонентів є клас TIBCustomService.

Метод Attach здійснює з'єднання з базою даних. У момент з'єднання з базою даних ініціюється подія OnAttach.

Для активації сервісу варто привласнити властивості Active значення True, відповідно, для деактиваціі варто привласнити властивості значення False.

Для доступу до параметрів бази даних варто використовувати властивість Params, а для вибору мережного протоколу, по якому буде вироблятися з'єднання із сервером, використовується властивість Protocol.















Рис. 2.4 Ієрархія компонентів IBX Services


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


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

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


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

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

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

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

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

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

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

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

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


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


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


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

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

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

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

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

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


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

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


Рис. 2.7 Архітектура „клієнт-сервер

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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


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 і способи створення відповідних запитів.


.2.1 Оператор SELECT

Оператор SELECT є виразом, що ініціює виконання запиту. В даному випадку запит є командою на отримання даних. Вираз SELECT має строго певний формат:

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

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

[WHERE умова]

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


























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

3.2.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%


.2.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.2.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.3 Багатотабличні запити


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


3.3.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.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.3.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.3.4 Використання об'єднання UNION

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

SELECT CustomerID FROM CustomersCustomerID FROM Orders

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


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


.1 Загальна характеристика та коло задач, що вирішує проектована система


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

Програмне забезпечення розроблено за допомогою середовища програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

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

·AvtoServise.exe - виконавчий файл системи;

·base.fdb - файл бази даних;

·help.hlp - файл довідки;

·бібліотека GDS32.dll - забезпечує зв'язок з SQL сервером FireBird.

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

·персональний компютер на базі Intel процесору з частотою не менше 2,4 ГГц;

·оперативна пам'ять не менше 1024 Мб;

·монітор із SVGA адаптером;

·НЖМД не менше 250 Гбайт;

·монітор, клавіатура, маніпулятор типу "миша";

Додаткове програмне забезпечення: установка сервера FireBird на комп'ютері де буде встановлена програма.

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


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


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


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


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

Типи даних, збережені в таблицях FireBird, дуже різноманітні. Це й символьні значення й різноманітні типи числових значень, що включають цілочислені, речовинні, речовинні із плаваючої комою, числа у двійковому й двоїчно-десятковому форматі, спеціальні формати для зберігання значень дати, часу, графічні типи для зберігання графічних зображень у самих популярних форматах, а також строкові значення необмеженої довжини (у тому числі й форматовані у форматі rtf) і навіть типи підтримувані технологією OLE (Object Linking and Embedding) фірми Micrоsoft. Така розмаїтість типів даних може відповідати навіть самим вишуканим завданням, яким покликана служити створювана база даних і без сумніву підходить для рішення кола завдань покладеного на базу даних для військкомату.

База даних представлена 8 таблицями : Avto, Dolshnost, Sotrudnik, Works, Zakaz, Zakaz_work, Zakaz_zapchast, Zapchasti.

У таблиці Avto зберігається список моделей автомобілів.


Таблиця 4.1 Структура полів таблиці Avto

Ім'я поляТип поляОписIDINTEGERNAME_AVTOVARCHAR(100)Назва марки автомобіляMODELVARCHAR(100)Назва моделі автомобіляGODVARCHAR(9)Дата випуску моделі автомобіля

У таблиці Dolshnost зберігається інформація про посади співробітників СТО.


Таблиця 4.2 Структура полів таблиці Dolshnost

Ім'я поляТип поляОписIDINTEGERNAME_DOLSHNOSTVARCHAR(100)Назва посади

У таблиці Sotrudnik зберігається список співробітників СТО.


Таблиця 4.3 Структура полів таблиці Sotrudnik

Ім'я поляТип поляОписIDINTEGERFIOVARCHAR(150)ПІБ співробітникаDOLSHNOST_IDINTEGERПоле для зв'язку з таблицею DolshnostADRESVARCHAR(150)Адреса співробітникаPHONEVARCHAR(20)Телефон співробітникаDATE_PRIEMADATEДата прийому на роботуDELSMALLINTСтатус співробітника (Працює/Звільнений)

У таблиці Works зберігається список видів робіт виконуємих СТО.


Таблиця 4.4 Структура таблиці Works

Ім'я поляТип поляОписIDIINTEGERNAME_WORKSVARCHAR(200)Найменування виду роботиNOTEBLOBОпис виду роботиPRICENUMERIC(5,2)Вартість виконаної роботи

У таблиці Zakaz зберігається інформація про замовлення СТО.

Таблиця 4.5 Структура таблиці Zakaz

Ім'я поляТип поляОписIDINTEGERKLIENT_FIOVARCHAR(155)ПІБ клієнтаKLIENT_TELVARCHAR(20)Телефон клієнтаKLIENT_AVTOVARCHAR(150)Марка автомобіля клієнтаDATE_PDATEДата прийому замовленняDATE_VDATEДата видачі замовленняSTATEINTEGERСтадія виконання замовленняSUM_ZAKAZNUMERIC(9,2)Сума замовлення

У таблиці Zakaz_work зберігається інформація про виконані роботи в замовленнях.


Таблиця 4.6 Структура таблиці Zakaz_work

Ім'я поляТип поляОписIDINTEGERZAKAZ_IDINTEGERПоле для зв'язку з табл. ZakazWORK_IDINTEGERПоле для зв'язку з табл. WorksSOTRUDNIK_IDINTEGERПоле для зв'язку з табл. SotrudnikNOTEBLOBОпис замовлення

У таблиці Zakaz_zapchast зберігається інформація про використані запчастини для виконання замовлення.


Таблиця 4.7 Структура таблиці Zakaz_zapchast

Ім'я поляТип поляОписIDINTEGERZAKAZ_IDINTEGERПоле для зв'язку з табл. ZakazZAPCHASTI_IDINTEGERПоле для зв'язку з табл. ZapchastiKOLINTEGERПоле для зв'язку з табл. Sotrudnik

У таблиці Zapchasti зберігається інформація про запасні частини які знаходяться на складі СТО.


Таблиця 4.8 Структура таблиці Zapchasti

Ім'я поляТип поляОписIDINTEGERNAME_ZAPCHASTVARCHAR(155)Найменування зап.частиниAVTO_IDINTEGERПоле для зв'язку з табл. AvtoKOLNUMERIC(9,3)Кількість на залишкуPRICE_PNUMERIC(9,2)Ціна закупівліPRICE_RNUMERIC(9,2)Ціна видатковаNOTEBLOBОписED_IZMVARCHAR(5)Одиниця виміру

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


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


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


При запуску програми на екрані з'являється головне вікно наступного виду (див. рис.4.3).


Рис. 4.3 Головне вікно програми


У лівій частині головного вікна розташована панель керування програмою «Учет на СТО».

Для роботи із замовленнями СТО на панелі керування необхідно обрати пункт «Ремонты», після чого на екрані з'явиться список замовлень із деталізацією (за замовчуванням програма запускається в режимі для роботи із замовленнями).

Для прийому нового замовлення у верхній частині вікна необхідно нажати кнопку «Прием заказа», після чого на екрані з'явиться вікно «Формирование нового заказа».

Рис. 4.4 Вікно «Формирование нового заказа»


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

Для зміни інформації про замовлення необхідно вибрати потрібне замовлення в таблиці «Список заказов в ремонте» або в таблиці «Список выполненных заказов», якщо необхідно змінити виконане замовлення, і нажати кнопку у верхній частині вікна «Изменение заказа».Після натискання на кнопку «Изменить заказ» на екрані з'явиться вікно «Изменение заказа».


Рис. 4.5 Вікно «Изменение заказа»

Після зміни даних у вікні й натискання кнопки «Сохранить» інформація буде змінена в базі даних.

Якщо було уведене помилкове замовлення або була відмова клієнта від ремонту автомобіля, то це замовлення можна видалити, вибравши замовлення в таблиці «Список заявок в ремонте» і нажавши кнопку «Удалить заявку». У тому випадку якщо клієнт хоче відмовитися від ремонту свого автомобіля, але працівниками СТО вже була виконана яка-небудь робота й внесена в базу даних, то програма не дасть видалити дане замовлення.

Після виконання всієї роботи на замовлення, у програмі необхідно внести всю інформацію про зроблену роботу співробітниками СТО. Для цього необхідно заповнити таблицю «Список выполненных работ по заказу» і «Список замененных запчастей» якщо для ремонту автомобіля були використані зап.частини зі складу СТО.

Для додавання або зміни інформації про виконані роботи в замовленні необхідно нажати кнопку «Добавить/Изменить/Удалить выполненные работы в заказе», після чого на екрані з'явиться вікно «Работа, выполненная в заказе» (рис. 4.6.)

Для того щоб додати вид виконаної роботи на замовлення у верхній половині вікна потрібно вибрати співробітника зі списку і вид виконаної їм роботи зі списку видів робіт і нажати кнопку «Добавить выполненную работу». Після того як заповнена вся інформація про виконані роботи на замовлення необхідно нажати кнопку «Закрыть».

Для додавання або зміни запчастин використаних для виконання замовлення необхідно нажати кнопку «Добавить/Изменить/Удалить запчасть в заказе» після чого на екрані з'явиться вікно «Запчасти, использованные в заказе» (рис.4.7).

Рис. 4.6 Вікно «Работа, выполненная в заказе»


Рис. 4.7 Вікно «Запчасти, использованные в заказе»


У верхній частині вікна розташований список запчастин, які є в наявності на складі, вибираємо в цьому списку запчастину, що буде використана для виконання замовлення й натискаємо кнопку «Добавление запчасти в заказ», після чого на екрані з'явиться вікно, у якому необхідно вказати кількість списаних запчастин в замовленні (рис. 4.8).

Рис. 4.8 Вікно «Добавление запчасти в заказ»


Для зміни або видалення інформації про використовувані запчастини у замовленні потрібно нажати відповідні кнопки «Изменить количество запчастей в заказе» або «Удалить запчасть из заказа».

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

У тому випадку якщо замовлення вже було переведено у виконані замовлення, але його треба було повернути в таблицю «Заявки в ремонте», для того щоб здійснити доробки, потрібно вибрати замовлення, що цікавить нас, і нажати кнопку «Изменить заказ», після чого на екрані з'явиться вікно «Изменение заказа» (рис.4.9).

Рис. 4.9 Вікно « Изменение заказа »


У поле «Статус заказа» значення «Выполнен», міняємо на «В работе» і натискаємо кнопку «Сохранить», після чого замовлення буде перенесено у таблицю «Заказы в ремонте».

Для роботи з довідником «Склад» у панелі керування на вкладці «Главная» необхідно вибрати пункт «Склад», після чого на екрані з'явиться таблиця зі списком запчастин, що зберігаються на складі СТО (рис. 4.10).


Рис. 4.10 Вікно програми зі списком запчастин на складі


Для додавання нового найменування запчастин на складі у верхній частині вікна треба нажати кнопку «Новая запчасть», після чого на екрані з'явиться вікно «Внесение в базу новой запчасти» (рис.4.11).

Рис.4.11 вікно «Внесение в базу новой запчасти»


Після заповнення всіх полів даного вікна й натискання на кнопку «Сохранить» інформація про нову запчастину буде внесена в базу даних.

Для зміни інформації або поповнення кількості запчастин на складі, виберемо назву запчастина, що цікавить нас зі списку й натиснемо кнопку «Изменение информации о запчасти», після чого на екрані з'явиться вікно «Зміна інформації про запчастини» (рис. 4.12).


Рис.4.12 Вікно «Изменение информации о запчасти»

Після зміни інформації й натискання кнопки «Сохранить» змінені дані будуть збережені в базі даних.

Для видалення запчастини зі списку необхідно нажати кнопку «Удалить запчасть».

Для роботи з довідником «Сотрудники», на панелі керування потрібно вибрати вкладку «Справочники» і нажати лівою кнопкою миші на пункт «Сотрудники», після чого на екрані з'явиться вікно «Справочник сотрудников».


Рис.4.13 Вікно « Справочник сотрудников »


У нижній частині даного вікна розташований список посад, у верхній половині вікна розташований список співробітників СТО. Для додавання нової посади в список посад необхідно нажати кнопку «Новая должность» після чого на екрані з'явиться вікно «Добавление новой должности».

Рис.4.14 Вікно «Добавление новой должности»


Після внесення назви нової посади й натискання кнопки «Сохранить» інформація із цього вікна буде збережена в базі даних.

Для зміни назви якої-небудь посади її потрібно вибрати зі списку й нажати кнопку «Изменить должность», для видалення відповідно необхідно нажати кнопку «Удалить должность».


Рис.4.15 Вікно «Изменение информации о должности»


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

Для додавання інформації про нового співробітника натисніть кнопку «Добавить информацию про нового сотрудника», після чого на екрані з'явиться вікно «Добавление нового сотрудника».


Рис.4.16 Вікно «Добавление нового сотрудника»

Після внесення всієї інформації про співробітника необхідно нажати кнопку «Сохранить», для збереження внесених даних у базу даних.

Для зміни інформації про співробітника необхідно нажати кнопку «Изменить информацию о сотруднике».


Рис.4.17 Вікно «Изменение информации о сотруднике»


Для того щоб видалити інформацію про співробітника необхідно нажати кнопку «Уволить сотрудника».

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


Рис.4.18 Вікно «Справочник марок автомобилей»

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


Рис.4.19 Вікно «Добавление новой марки авто»


Рис.4.20 Вікно «Изменение информации о марке авто »


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


Рис.4.21 Вікно «Довідник видів робіт»

Для додавання нової, зміни існуючої або видалення інформації про види робіт, необхідно нажати відповідні кнопки «Новий вид роботи», «Зміна виду роботи» або «Видалення виду роботи».


Рис.4.22 Вікно «Добавление нового вида работы»


Рис.4.23 Вікно «Изменение вида работы»


Також у програмі передбачені три види звітів, які дозволяють керівництву станції технічного обслуговування, контролювати стадії виконання замовлень, а також переглядати залишки запчастин на складі. Всі звіти розташовані на вкладці «Отчеты».

Рис.4.24 Головне вікно програми з активною вкладкою «Отчеты»


Всі види звітів представлені в додатку А до дипломної роботи.

Як вже було зазначено вище, інтерфейс системи був спроектований за допомогою пакету альтернативних компонентів Development Express. Однією з особливостей використання цього пакету є можливість настроювати зовнішній вигляд панелей інструментів (додавати або видаляти кнопки, переміщувати панелі).

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

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

Якщо в наведеному списку вибрати значення «Условие», на екрані зявиться вікно (рис. 4.25), за допомогою якого можна здійснити швидкий пошук необхідного документу. При цьому можна використовувати символи заміни для пошуку по частковому збігу.

Рис. 4.25 Вікно визначення параметрів пошуку


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

Кнопка „Настройка призначена для побудови складного фільтру з багатьма умовами. При цьому створений фільтр можна зберегти у зовнішньому файлі та завантажити потім при необхідності.


Рис. 4.26 Вікно побудови складного фільтра


4.5 Опис програмної реалізації


У розробленому комплексному програмному забезпеченні використовується 8 форм: DataModule, FrmRoot, FrmAvtoEdit, FrmDolshnostEdit, FrmSotrudnikEdit, FrmZakazEdit, FrmZakazWorksEdit, FrmZakazZapchastEdit, FrmZapchastRashod, FrmZapchastiEdit, FrmWorksEdit ієрархія яких представлена на рис. 4.27.


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


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

procedure TFrmDataModule.DataModuleCreate(Sender: TObject);, PathBase: string;.Connected := False;:= ExtractFilePath(paramStr(0)) + 'Base\Base.fdb'; // шлях до файлу бази даних

if FileExists(PathBase) then // якщо файл знайдений

begin.DatabaseName := PathBase;

Params.values['Server']:=server;.Connected := True // підключення до бази даних

end

else

begin

MessageBox(0, PChar('Ошибка подключения данных' + #13#10 + 'Файл базы данных не найден!' ), 'Ошибка', MB_OK or MB_ICONERROR); // вивод повідомлення

Application.Terminate; // завершення роботи системи

end;

end;

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

procedure TfrmAvtoEdit.FormCloseQuery(Sender: TObject; var CanClose: Boolean);: TIBStoredProc;: integer;ModalResult = mrOk thenpcAvtoEdit.ActivePageIndex of

: begin // якщо відкрита перша сторінка, що відповідає за додавання даних

if ((teName_avto.Text = '') or (teModel.Text = '') or (teGod.Text = '')) then // якщо не всі текстові поля були заповнені

MessageBox(0, PChar('Не все данные внесены!' + #13#10 + 'Сообщение об ошибке:Вы не внесли все данные!'), 'Ошибка', MB_OK or MB_ICONERROR);// вивод повідомлення про помилку

CanClose := False; // закрити форму не можна

end

else // інакше, якщо усі поля були заповнені коректно

begin

aProc := InitProc('AVTO_IU'); //ініціалізація запису даних на стороні сервера

try.Transaction.StartTransaction; // початок транзакції

aProc.Prepare;i := 0 to Pred(aProc.ParamCount) do // записуємо зроблені записи в базу даних

aProc.Params[i].Value := Null;.ParamByName('name_avto').Value := teName_avto.Text;.ParamByName('model').Value := teModel.Text;.ParamByName('god').Value := teGod.Text;.ExecProc; // якщо виникла виключна ситуація

on e: Exception do

begin

MessageBox(0, PChar('Ошибка занесения данных' + #13#10 + 'Сообщение об ошибке: ' + e.Message), 'Ошибка', MB_OK or MB_ICONERROR);

// вивід повідомлення про помилку для користувача

if aProc.Transaction.InTransaction then.Transaction.Rollback; := False; // якщо транзакція ще виконується, закрити вікно не можливо

end;

end;

finally // перелік операторів, що виконуються у будь якому випадку

if aProc.Transaction.InTransaction then.Transaction.Commit; // завершення транзакції

UpdateDataSet(FrmDataModule.idsAvto); // оновлення набору даних

end;(aProc);;;;

: begin // аналогічним чином відпрацьовуємо виключні ситуації при роботі з другою вкладинкою

if ((teuName_avto.Text = '') or (teuModel.Text = '') or (teuGod.Text = '')) then

MessageBox(0, PChar('Не все данные внесены!' + #13#10 + 'Сообщение об ошибке:Вы не внесли все данные!'), 'Ошибка', MB_OK or MB_ICONERROR);

CanClose := False;:= InitProc('AVTO_IU');.Transaction.StartTransaction;.Prepare;i := 0 to Pred(aProc.ParamCount) do.Params[i].Value := Null;.ParamByName('id').Value := FrmDataModule.idsAvto.FieldByName('id').Value; .ParamByName('name_avto').Value := teuName_avto.Text;.ParamByName('model').Value := teuModel.Text;.ParamByName('god').Value := teuGod.Text;.ExecProc;e: Exception do(0, PChar('Ошибка занесения данных' + #13#10 + 'Сообщение об ошибке: ' + e.Message), 'Ошибка', MB_OK or MB_ICONERROR);aProc.Transaction.InTransaction then.Transaction.Rollback;:= False;;;aProc.Transaction.InTransaction then.Transaction.Commit;(FrmDataModule.idsAvto);;(aProc);;;;

end;

end;

end;

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

procedure TFrmRoot.RefreshZakaz;

begin

FrmDataModule.idsZakazWorks.Close; // відключаємося від бази даних

FrmDataModule.idsZakazZapchast.Close;

FrmDataModule.idsZakazWorks.ParamByName('zakaz_id').Value := FrmDataModule.idsZakaz.FieldByName('id').Value; // формуємо запит

FrmDataModule.idsZakazZapchast.ParamByName('zakaz_id').Value := FrmDataModule.idsZakaz.FieldByName('id').Value;

FrmDataModule.idsZakazWorks.Open; // оновлюємо набір даних на основі введених параметрів

FrmDataModule.idsZakazZapchast.Open;

end;

Під час натискання на пункт «Залишки на складі» на вкладці «Звіти», процедура запускає відповідний DataSet, а також додає в заголовок звіту дату його створення.

procedure TFrmRoot.actPrintOstatkiExecute(Sender: TObject);: TRaveComponent;.idsRepOstatki.Active := false;.idsRepOstatki.Active := true; // активація запиту

if not RvProject.SelectReport('RepOstatki', true) then EXIT; // якщо не можливо сформувати ззвіт

TmpRaveComponent := RvProject.ProjMan.FindRaveComponent('TitleText',.ProjMan.ActiveReport.FirstPage); // завдання заголовку звіту

if (TmpRaveComponent <> nil) and (TmpRaveComponent is TRaveText) then(TmpRaveComponent).Text := 'Отчет "Остатки зап.частей на складе" на ' + DateToStr(Date); // формування дати звіту

end;

RvProject.Execute; // відображення звіту на екрані

end;

При натисканні на кнопку «Змінити інф. про співробітника» процедура робить виклик форми для редагування інформації про співробітника й заповнює поля форми інформацією з бази даних.

procedure TFrmRoot.actUpdateSotrudnikExecute(Sender: TObject);TfrmSotrudnikEdit.Create(nil) do.Pages[1].Show; // поява на екрані відповідної сторінки

Height := 185 ;// завдання висоти

idsDolshnost.Open; // відкриваємо набір даних

// заносимо необхідні дані у відповідні поля

teuFio.Text := FrmDataModule.idsSotrudniki.FieldByName('FIO').Value;.Text := FrmDataModule.idsSotrudniki.FieldByName

('ADRES').Value;

teuPhone.Text := FrmDataModule.idsSotrudniki.FieldByName('phone').Value;.EditValue := FrmDataMoule.idsSotrudniki.FieldByName

('dolshnost_id').Value;_priema.Date := FrmDataModule.idsSotrudniki.FieldByName

('DATE_PRIEMA').Value;

Caption := 'Изменение инф. о сотруднике'; // назва форми

ShowModal; // поява форми на екрані у модальному режимі

finally

Free;

end;

end;

Залежно від вибору списку замовлень: «Замовлення в ремонті» або «Виконані замовлення», процедура робить параметризований запит до бази даних з відповідним параметром і змінює інтерфейс головного вікна програми.

procedure TFrmRoot.grdZakazActiveTabChanged(Sender: TcxCustomGrid;: TcxGridLevel);FrmRoot.grdZakazLevel1.Active = true then.idsZakaz.Active := false; // відключаємося від бази даних

FrmDataModule.idsZakaz.ParamByName('state').Value:=1;// прийняті в ремонт замовлення (не видані)

FrmDataModule.idsZakaz.Active := true; //виконуємо SQL-запит

if FrmDataModule.idsZakaz.RecordCount = 0 then // якщо замовлення, що знаходяться в ремонті не видані

begin.Enabled := false;.Enabled := false;

else

begin //якщо замовлення, що знаходяться в ремонті знайдені

actUpdateZakaz.Enabled := true;.Enabled := true;;.Visible := true;;;FrmRoot.grdZakazLevel2.Active = true then.idsZakaz.Active := false;.idsZakaz.ParamByName('state').Value := 2;// аналогічним чином формуємо список виконаних (готових) заказів

FrmDataModule.idsZakaz.Active := true;FrmDataModule.idsZakaz.RecordCount = 0 then.Enabled := false;.Enabled := false;.Enabled := true;.Enabled := true;;.Visible := false;;;;

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


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

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

В ході розробки програмного продукту було використане програмне забезпечення Turbo Delphi 2006 Explorer, яке є безкоштовним.

Визначення витрат на створення програмного продукту

Оскільки середа розробки є безкоштовною, витрати на створення програмного продукту складаються з витрат по оплаті праці розробника програми і витрат по оплаті машинного часу при відладці програми:


Зсппзпспп мвспп


де:

Зспп - витрати на створення програмного продукту;

Ззпспп - витрати на оплату праці розробника програми;

Змвспп - витрати на оплату машинного часу.

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


Ззпспп=tTчас

Розрахунок трудомісткості створення програмного продукту

Трудомісткість розробки програмного продукту можна визначити таким чином:

= to+ tа+ tб+ tп+ tд+ tвід,


де: o - витрати праці на підготовку опису завдання;а - витрати праці на розробку алгоритму рішення задачі;б - витрати праці на розробку блок-схеми алгоритму рішення задачі;п - витрати праці на складання програми по готовій блок-схемі;д - витрати праці на підготовку документації завдання;від - витрати праці на відладку програми на ЕОМ при комплексній відладці завдання.


Складові витрат можна виразити через умовне число операторів Q. У нашому випадку число операторів у відлагодженій програмі Q=1800.

Розрахунок витрат праці на підготовку опису завдань

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

o= QB/(75…85K),


де:- коефіцієнт збільшення витрат праці унаслідок недостатнього опису завдання, уточнень і деякої недоробки, B=1,2…5;- коефіцієнт кваліфікації розробника, для тих, що працюють до 2 років K=0.8;

Коефіцієнт В приймаємо рівним 3.

Таким чином отримаємо:

o= 18003/(780,8) = 86.54 (люд-год).


Розрахунок витрат праці на розробку алгоритму

Витрати праці на розробку алгоритму рішення задачі:

а = Q/(60…75K) а = 1800/(700.8)=32.14 (люд-год).


Розрахунок витрат праці на розробку блок-схеми

Витрати праці на розробку блок-схеми алгоритму рішення задачі обчислимо таким чином:

б= Q/(60…75K)б = 1800/(650,8)=34.62 (люд-год).


Розрахунок витрат праці на складання програми

Витрати праці на складання програми по готовій блок-схемі обчислимо таким чином:

п= Q/(60…75K)п = 1800/(720,8)=31.25 (люд-год).


Розрахунок витрат праці на відладку програми

Витрати праці на відладку програми на ЕОМ при комплексній відладці завдання:

tвід=1.5 tAвід,


де tAвід - витрати праці на відладку програми на ЕОМ при автономній відладці одного завдання;

Aвід= Q/(40…50K)Aвід = 1800/(450,8)=50 (люд-год).


Звідси tвід=1.550=75 (люд-год).

Розрахунок витрат праці на підготовку документації

Витрати праці на підготовку документації по завданню визначаються:

д= tдр+ tдо,


де:др - витрати праці на підготовку матеріалів в рукопису;до - витрати на редагування, друк і оформлення документації;

др= Q/(150…200K)др = 1800/(1800.8) = 12.5 (люд-год)до=0.75tдр

tдо =0.7512.5=9.38 (люд-год)


Звідси:

д=12.5 +9.38 =21.88 (люд-год).


Отже, загальну трудомісткість розробки програмного продукту можна розрахувати:

t= to+ tа+ tб+ tп+ tд+ tвід,= 86.54+32.14+34.62+31.25+21.88+75 = 281.43 (люд-год).


Розрахунок середньої зарплати програміста

Середня зарплата програміста в сучасних ринкових умовах може варіюватися в широкому діапазоні. Для розрахунку візьмемо середню годинну оплату праці програміста, яка складає Тчас=18 грн/година. Це означає, що вартість розробки буде становитиму 5 065.74 грн.

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

Єдине соціальне нарахування становить 36,77%.

Тобто 5 065.74 грн36,77% = 1 862.67 грн.

Звідси витрати на оплату праці програміста складають:


Ззпспп= 5 065.74+1 862.67 = 6 928.41 грн.


Витрати на оплату машинного час

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


Змвспп час tеом,


де:

Счас - ціна машино-години, грн/год;еом - фактичний час відладки програми на ЕОМ.

Розрахунок фактичного часу відладки

Фактичний час відладки обчислимо за формулою:

еом = tп + tдо + tвід ;еом =31.25+9.38 +75= 115.63 годин


Розрахунок ціни машино-години

Ціну машино-години знайдемо по формулі:


Сгод = Зеомеом,


де:

Зеом - повні витрати на експлуатацію ЕОМ на протязі року;

Теом - дійсний річний фонд часу ЕОМ, год/рік.


Розрахунок річного фонду часу роботи ПЕОМ

Загальна кількість днів в році - 365. Число святкових і вихідних днів - 114 (10 святкових і 522- вихідні).

Час простою в профілактичних роботах визначається як щотижнева профілактика по 3 години.

Разом річний фонд робочого часу ПЕОМ складає:


Теом = 8(365-114)-523=1852 год.


Розрахунок повних витрат на експлуатацію ЕОМ

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


Зеом = (Ззп+ Зам+ Зел+ Здм+ Зпр+ Зін),


де:

Ззп - річні витрати на заробітну плату обслуговуючого персоналу, грн/рік;

Зам - річні витрати на амортизацію, грн/рік;

Зел - річні витрати на електроенергію, споживану ЕОМ, грн/рік;

Здм - річні витрати на допоміжні матеріали, грн/рік;

Зпр - витрати на поточний ремонт комп'ютера, грн/рік;

Зін - річні витрати на інші і накладні витрати, грн/рік.


Амортизаційні відрахування

Річні амортизаційні відрахування визначаються по формулі:


ЗамбалНам,


де: Сбал - балансова вартість компютера, грн/шт.;

Нам - норма амортизації, %;

Нам =25%.


Балансова вартість ПЕОМ включає відпускну ціну, витрати на транспортування, монтаж устаткування і його відладку:


Сбал = Срин уст ;


де:

Срин - ринкова вартість компютеру, грн/шт.,

Зуст - витрати на доставку і установку комп'ютера, грн/шт;


Комп'ютер, на якому велася робота, був придбаний за ціною Срин =6000 грн, витрати на установку і наладку склали приблизно 10% від вартості комп'ютера.


Зуст = 10% Срин

Зуст =0.16000=600 грн.


Звідси, Сбал = 6000 +600 =6 600 грн./шт.,

а Зам=6 6000,25= 1 650 грн/год.


Розрахунок витрат на електроенергію

Вартість електроенергії, споживаної за рік, визначається по формулі:


Зел = Реом Теом Сел А,


де:

Реом - сумарна потужність ЕОМ,

Теом - дійсний річний фонд часу ЕОМ, год/рік;

Сел - вартість 1кВтгод електроенергії;

А - коефіцієнт інтенсивного використання потужності машини.


Згідно технічному паспорту ЕОМ Реом =0.22 кВт, вартість 1кВтгод електроенергії для споживачів Сел = 0.9302 грн., інтенсивність використання машини А=0,98.

Тоді розрахункове значення витрат на електроенергію:


Зел = 0.22 1852 0.9302 0.98 = 371.42 грн.


Розрахунок витрат на поточний ремонт

Витрати на поточний і профілактичний ремонт приймаються рівними 5% від вартості ЕОМ:


Зпр = 0.05 Сбал

Зпр = 0,05 6600 = 330 грн.


Розрахунок витрат на допоміжні матеріали

Витрати на матеріали, необхідні для забезпечення нормальної роботи ПЕОМ, складають близько 1 % від вартості ЕОМ:

Здм =0,01 6600 =66 грн.


Інші витрати по експлуатації ПЕОМ

Інші непрямі витрати, пов'язані з експлуатацією ПЕОМ, складаються з вартості послуг сторонніх організацій і складають 5% від вартості ЕОМ:


Зін = 0.05 6600 =330 грн.


Річні витрати на заробітну плату обслуговуючого персоналу

Витрати на заробітну плату обслуговуючого персоналу складаються з основної заробітної плати, додаткової і відрахувань на заробітну плату:


Ззп = Зоснзп додзп відзп.


Основна заробітна плата визначається, виходячи із загальної чисельності тих, що працюють в штаті:


Зоснзп =12 іокл,


де:

Зіокл - тарифна ставка і-го працівника в місяць, грн;

- кількість місяців.


У штат обслуговуючого персоналу повинні входити інженер-електронщик з місячним окладом 2500 грн. і електрослюсар з окладом 2000 грн. Тоді, враховуючи, що даний персонал обслуговує 20 машин, маємо витрати на основну заробітну плату обслуговуючого персоналу, які складуть:


Зоснзп = 12(2500+2000)/20=2 700 грн.

Додаткова заробітна плата складає 60 % від основної заробітної плати:


Здодзп = 0.6 2 700 = 1 620 грн.


Відрахування на соціальні потреби складають 37,6% від суми додатковою і основною заробітних плат:


Звідзп = 0,376(2700+1620) = 1 624.32 грн.


Тоді річні витрати на заробітну плату обслуговуючого персоналу складуть:


Ззп = 2 700 +1 620 +1 624.32= 5 944.32 грн.


Повні витрати на експлуатацію ЕОМ в перебігу року складуть:


Зеом = 5 944.32 +1 650+371.42+66+330+330 = 8 691.74 грн.


Тоді ціна машино-години часу, що орендується, складе


Сгод = 8 691.74/1852 = 4.69 грн.


А витрати на оплату машинного часу складуть:


Змвспп годtеом

Змвспп = 4.69 115.63=542.31 грн.


Розрахунок економічного ефекту


Зсппзпспп мвспп

Зспп =6 928.41+ 542.31= 7 470.72 грн.


Тобто собівартість програмного продукту 7 470.72 грн.

А зараз визначимо ціну програмного продукту:


Ц = Зспп + Р,


Где Ц - ціна програмного продукту;

Р - 15% від витрат на створення програмного продукту.


Ц = 7 470.72 + 1 120.61= 8 591.33 грн.


Ціна розробки програмного продукту дорівнює 8 591.33 грн.

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

Наприклад вартість системи 1С в комплектації з відповідною конфігурацією становить 1785 руб.

Таким чином, якщо буде реалізовано 20 копій програмного продукту, економічний прибуток становитиме:


ЕК =1785 * 20 - 8 591.33 = 27 108.67 грн.


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


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

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

Працівник - особа, яка працює на підприємстві, в організації, установі та виконує обовязки або функції згідно з трудовим договором (контрактом).

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

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

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

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


6.1 Аналіз шкідливих та небезпечних факторів


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

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

Шкідливі та небезпечні фактори класифікують відповідно до ГОСТ 12.0.003-74 по природі дії на наступні групи:

·фізичні;

·психофізичні.

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

Фізичні небезпечні й шкідливі виробничі фактори підрозділяються на наступні:

·підвищений рівень шуму на робочому місці;

·відсутність або недолік природного світла;

·недостатня освітленість робочої зони;

·мікроклімат (підвищена або знижена рухливість повітря).

Психофізичні небезпечні й шкідливі виробничі фактори по характеру дії підрозділяються:

·фізичні перевантаження (статичні й динамічні);

·нервово-психічні перевантаження (розумова напруга й перенапруга, монотонність праці, емоційні перевантаження, стомлення, емоційний стрес, емоційне перевантаження).

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

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

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

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

Електричний струм являє собою схований тип небезпеки, тому що його важко визначити в струмо- і не струмоведучих частинах устаткування, які є гарними провідниками електрики. Смертельно небезпечним для життя людини вважають струм, величина якого перевищує 0,05 А, струм менш 0,05 А - безпечний (до 1000 В). З метою попередження поразок електричним струмом до роботи допускаються тільки особи, що добре вивчили основні правила по техніці безпеки.

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

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

Небезпечні та шкідливі фактори дуже часто бувають прихованими, неявними або ж такими, які важко виявити чи розпізнати. Це стосується будь-яких небезпечних та шкідливих факторів, так як і джерел небезпеки.


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


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

Висота робочої поверхні стола повинна регулюватися в межах 680-800 мм; при відсутності такої можливості повинна становити 725 мм.

Дисплей задовольняє наступним вимогам:

·найважливіші елементи конструкції розташовані в центрі поля зору (клавіатура);

·елементи згруповані по функціональній ознаці;

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

Екран монітору перебуває від очей користувача на оптимальній відстані 600-700 мм, але не ближче 500 мм із урахуванням розмірів знаків і символів.

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

·для екрана: білий на чорному;

·для клавіатури: чорний на білому.

Найбільш зручне сидіння, що має виїмку, що відповідає формі стегон і нахил назад. Спинка стільця повинна бути вигнутої форми, що обіймає поперек. Висота її - 300 мм, ширина - не менш 380 мм, радіус вигину - 300-350 мм. Робочий стілець (крісло) повинен бути постачений підйомно-поворотним механізмом, що забезпечує регуляцію висоти сидіння й спинки (рис. 6.1). Робоче крісло повинне мати підлокітники. Регулювання кожного параметра повинна легко здійснюватися, бути незалежної й мати надійну фіксацію. На робочому місці необхідно передбачати підставку для ніг.

Клавіатура повинна розташовуватися на поверхні стола таким чином, щоб відповідати ліктеві сидячого оператора. Його рука повинна бути зігнута на 90 градусів у ліктьовому суглобі, а передпліччя - лежати горизонтально. Клавіатуру варто розташовувати на відстані 100-300 мм від краю, зверненого до користувача.

Приміщення відповідає кількості працюючих і розташовуваному в них КТЗ (комплекс технічних засобів). Відстань між робочими столами з моніторами не менш 2,0 м, а відстань між бічними поверхнями моніторів - не менш 1,2 м. У приміщеннях з ПЕОМ щодня проводитися вологе прибирання, необхідне наявність аптечки першої допомоги.


Рис. 6.1 Схема робочого місця програміста:

-стіл; 2-стілець; 3-підставка для ніг; 4-системний блок;

-монітор; 6-клавіатура; 7-принтер; 8-лоток для паперу.


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

Вибір ламп і світильників провадиться на підставі забезпечення нормативної освітленості робочих місць при мінімальних капітальних й експлуатаційних витратах. Розрахунок штучного освітлення зводиться до визначення числа світильників:


(6.1)


Е - нормована освітленість, Лк (для нашого випадку 300)3 - коефіцієнт запасу » 1.3;

А - площа підлоги, м2 (=25м2);- коефіцієнт, що враховує нерівномірність освітленості

(Для ламп накалювання =1.5, для люмінесцентних =1.1.);л - кількість ламп в одному світильнику (=2);

Фл - світловий потік лампи (Для ламп ЛБ-40 = 3000 лм.);св - коефіцієнт використання світильників. Визначається по індексу приміщення:


, (6.2)


а - ширина приміщення, м;- довжина приміщення, м;- висота підвісу світильників над робочою поверхнею, м.


Приймаючи, що а=5 м., b=5 м., h=2 м., обчислюємо p=1.25. Тепер по таблиці відповідності визначаємо, що Uсв=0.63.

Підставляючи всі необхідні дані одержуємо:

св = (300*1.3*20*1.1) / (2*3000*0.55) = 2,6 » 3


Таким чином, одержуємо, що для освітлення нашого приміщення необхідно 3 світильники, по 2 лампи марки ЛБ-40 у кожному.

Оптимальні норми температури, відносній вологості й швидкості руху повітря в робочій зоні виробничого приміщення відповідно до ГОСТ 12.1.005-88 приведені в таблиці 6.1.


Таблиця 6.1 Оптимальні норми температури, відносної вологості і швидкості руху повітря

Період рокуКатегорія роботиТемпература СВідносна влаж. повітря, %Швидкість руху повітря, не більше м/сХолодний і перехіднийлегка20-2360-400,2Теплийлегка22-2560-400,2

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

·надходження тепла від людей;

·виділення тепла від обладнання та допоміжної апаратури;

·надходження тепла від сонячної радіації;

·виділення тепла від електричного освітлення.

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

Компютер живиться від однофазної мережі перемінного струму промислової частоти із заземленою нейтралі, напругою 220 В. Системний блок компютера має напруги сигналів ТТЛ рівнів (-1, +4 В), цифрові й аналогові мікросхеми живляться постійною напругою (5 та 12 В), які утворюються шляхом перетворення перемінної напруги 220 В в блоці живлення. Блок живлення містить у собі схеми перетворення напруги, схеми стабілізації й схему захисного відключення при короткому замиканні. Тому що корпус компютера виконаний з металу, то існує небезпека пробою фази на корпус. Монітори сучасних компютерів практично завжди виготовляються із пластику, тому незважаючи на велику напругу, що є присутнім у моніторі, поразка струмом людини практично виключено.

Для забезпечення захисту від поразки електричним струмом при дотику до металевих не струмоведучих частин, які можуть виявитися під напругою в результаті пошкодження ізоляції, я рекомендую застосовувати захисне заземлення. Заземлення корпуса ЕОМ забезпечено підведенням заземлюючої жили до живильних розеток. Опір заземлення 4 Ом (Rн) для електроустановок з напругою до 1000 В. З метою профілактики один раз у рік визначається опір ґрунту.

У робочих приміщеннях фахівців операторів ЕОМ рівень шуму згідно норм не повинен перевищувати 65 дБ. На робочих місцях у приміщеннях для розміщення шумних агрегатів обчислювальних машин (АЦПУ, роботи, принтери й т.і.) рівень шуму не повинен перевищувати 75 дБ. Стіни й стелі виробничих приміщень, де встановлені ЕОМ й інше обладнання, що є джерелом шумоутворення, облицьовані звуковбирним матеріалом з максимальним коефіцієнтом звукопоглинання в області частот 63-8000 Гц, незалежно від кількості одиниць установленого обладнання. Зниження шуму, створюваного на робочих місцях лабораторії внутрішніми джерелами, а також шуму проникаючого ззовні, є дуже важливим завданням. Зниження шуму в джерелі випромінювання забезпечуємо застосуванням пружних прокладок між основою машини, приладу й опорною поверхнею. В прокладках використаються гума, повсть, пробка, амортизатори різної конструкції. Під настільні шумливі апарати можна підкладати мякі килимки із синтетичних матеріалів, а під ніжки столів, на яких вони встановлені, - прокладки з мякої гуми, повсті, товщиною 6-8 мм. Кріплення прокладок можливо шляхом приклейки їх до опорних частин. Можливо також застосування звукоізолюючих кожухів, які не заважають технологічному процесу. Не менш важливим для зниження шуму в процесі експлуатації є питання правильного й своєчасного регулювання, змазування й заміни механічних вузлів шумливого встаткування.

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

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

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

·знизити ефект сумарного впливу відбитих звукових хвиль (звуковбирні поверхні конструкцій);

·використовувати архітектурно-планувальні й технологічні рішення ізоляцій джерел шуму.

6.3 Пожежна безпека


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

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

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

Небезпечними факторами пожеж є:

·полумя, іскри характерне кількістю теплового потоку на одиницю поверхні;

·замикання електронних частин компютера.

·підвищена концентрація СО та інші токсичні продукти горіння.

·знижена концентрація кисню в повітрі.

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

Пожежна безпека обєкта забезпечується системами запобігання пожежі й протипожежного захисту. Приміщення обчислювального центру (ОЦ) ставиться до категорії В.

Пожежа може виникнути й від зовнішніх джерел. Тому необхідні наступні заходи забезпечення пожежної безпеки:

·ефективне видалення диму, тому що в приміщеннях, що мають оргтехніку, міститься велика кількість пластикових речовин, що виділяють при горінні летучі отруйні речовини та їдучий дим;

·правильний шлях евакуації;

·наявність вогнегасників і пожежної сигналізації;

·дотримання всіх протипожежних вимог до систем опалення й кондиціонування повітря.

Серйозну небезпеку становлять різні електроізоляційні матеріали. Материнські плати електронних пристроїв, а також плати всіх додаткових пристроїв ЕОМ виготовляють із гетинаксу або стеклотекстоліта. Пожежна небезпека цих ізоляційних матеріалів невелика, вони відносяться до групи важко горючих, і можуть запалитися тільки при тривалому впливі вогню й високої температури.

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

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

У приміщенні будівлі ОЦ використаються в основному вуглекислотні вогнегасники ОУ-5, ОУ-10 достоїнство яких є висока ефективність гасіння пожежі, збереження електронного обладнання, діелектричні властивості вуглекислого газу, що дозволяє використовувати ці вогнегасники навіть у тому випадку, коли не вдається знеструмити електроустановку відразу. Згідно СНіП 2.04.09-84 у приміщенні площею 72 м2 ми встановлюємо 8 вогнегасників. У будівлі вивішені плани евакуації на випадок пожежі в доступних для огляду місцях.

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

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

У будинку розроблені й на видних місцях вивішені плани (схеми) евакуації людей у випадку пожежі (ППБ 01-03). Призначення плану евакуації - чітко позначити шляхи евакуації, евакуаційні виходи, а також указати розташування пожежного обладнання, засобів оповіщення про пожежу, і нагадати про першочергові дії, які необхідно почати. План евакуації може бути виконаний на фотолюмінесцентному (світному в темряві) або звичайному пластику, на плівці, папері. Плани евакуації відповідно до ГОСТ Р 12.2.143-2002 являють собою схеми, на яких нанесені внутрішні контури приміщень, коридорів, сходових маршів у будинках і спорудах, де можуть перебувати й працювати люди. На цих схемах умовними позначками зазначені шляхи евакуації, евакуаційні й аварійні виходи, місця розташування протипожежного обладнання, телефони, засоби першої медичної допомоги, і додаткові засоби порятунку (протигазів, респіраторів тощо), а також установлені в організації правила поведінки людей, , порядок і послідовність їхніх дій в умовах надзвичайної (аварійної) ситуації.


ВИСНОВКИ


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

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

Проектоване програмне забезпечення розроблено за допомогою середовища програмування Delphi з використанням пакету компонентів DevelopmentExpress та сервера баз даних під керуванням FireBird 2.1.

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

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

Таким чином, середовище програмування Delphi є одним з визнаних лідерів серед візуальних систем програмування і могутнім інструментом для створення прикладних програмних систем.

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

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


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


1.Бобровский С. Delphi 5 - CПб.: Питер, 2000.

2.Гаевский А. Разработка программных приложений на 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.<http://www.delphikingdom.ru> // Королевство Delphi. Виртуальный клуб программистов

.<http://www.delphiworld.narod.ru> //Профессиональные программы для разработчиков

.<http://www.delphisources.ru> // Программирование на Delphi

.<http://www.delphibasics.ru> // Справочник - «Основы Delphi»

30.<http://www.delphimaster.ru> // Мастера Delphi


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

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ