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

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

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

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

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

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

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






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

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

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

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

”Розробка гнучкої локальної системи для прискореного пошуку файлів”

Студента групи ГКС-03-з

Абраменко Альони Олександрівни

Керівник роботи проф.,

к. т. н. Корнілов Георгій Іванович



Кривий Ріг

Анотація


Метою дипломної роботи є створення системи призначеної для впорядковування інформації про файли, що зберігаються на компакт-дисках або інших знімних носіях. Система пройшла практичну апробацію в Інформаційно-обчислювальному центрі Криворізького металургійного факультету НМетАУ на прикладі створення каталогу навчальних фільмів. Система була реалізована в середовищі Microsoft Visual Studio 2005 на мові C#. База даних представлена у форматі SQLite.

Розділів 6, схем та малюнків 20, бібліографічних посилань 28, загальний обсяг - ____.

Зміст

 

Анотація

Вступ

1. Постановка завдання

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

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

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

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

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

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

2. Теоретичні дослідження та порівняльний аналіз технологій розробки Windows-додатків

2.1 Огляд основних технологій розробки Windows додатків

2.1.1 Програмування з використанням Win32/C

2.1.2 Програмування з використанням C++/MFC

2.1.3 Програмування з використанням Visual Basic

2.1.4 Програмування з використанням Java

2.1.5 Програмування з використанням СОМ

2.1.6 Програмування з використанням Windows DNA

2.2 Рішення.net

2.2.1 Основи CLS

2.2.2 Основи CLR

2.2.3 Стандартна система типів CTS

2.2.4 Простори імен

3. Особливості застосування баз даних в гнучких комп’ютеризованих системах

3.1 Призначення і область використання баз даних

3.2.1 Моделі представлення даних

3.2.2 Реляційний спосіб доступу до даних

3.2.3 Таблиці

3.2.4 Ключові поля

3.2.5 Індекси

3.2.6 Зовнішні ключі

4. Опис функціональних можливостей і програмної реалізації системи

4.1 Предметна область і задачі, покладені на гнучку систему автоматизації

4.2 Апаратні вимоги, та вимоги до системного програмного забезпечення

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

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

4.5 Функціональна частина

5. Економічне обґрунтування доцільності розробки програмного продукту

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

5.2 Витрати, пов'язані з розробкою програми на ПК

5.3 Визначення планованої економії від упровадження програмного продукту

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

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

6.1.1 Електромагнітне випромінювання

6.1.2 Рентгенівське випромінювання

6.1.3 Підвищений рівень шуму

6.1.4 Мікроклімат

6.1.5 Освітлення

6.1.6 Психофізіологічні шкідливі і небезпечні виробничі чинники

6.2 Організаційні і технічні заходи по зменшенню рівня шкідливих виробничих чинників

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

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

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

6.2.4 Захист від шуму

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

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

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

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

6.3.1 Пожежна і вибухова безпека в робочій зоні технічного обслуговування в приміщеннях з ПЕОМ

Висновки

Список літератури

 

Вступ


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

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

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

Як мова програмування для реалізації поставленого завдання була вибрана мова програмування С#, як середа розробки Microsoft Visual Studio 2005. Варто відзначити, що середа розробки Microsoft Visual Studio 2005 є абсолютно безкоштовною, але не дивлячись на безкоштовність, надає безліч зручних засобів для створення складних програмних продуктів.

Якщо сказати, що мова С# і пов'язана з ним середа.net Framework є однією з найважливіших технологій для розробників за багато років, це не буде перебільшенням.net спроектована як нова середа, в рамках якої можна розробити практично будь-який додаток для Windows, тоді як С# - нова мова програмування, призначена спеціально для роботи з.net. За допомогою С# можливо, наприклад, створити динамічну Web-сторінку, Web-службу XML, компонент розподіленого додатку, компонент доступу до бази даних, класичний настільний додаток Windows або навіть інтелектуальне клієнтське програмне забезпечення, що має засоби онлайнової і автономної роботи.

програмний система пошук файл

1. Постановка завдання


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


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

 

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


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

Початок робіт: 31.10.07. Закінчення робіт: 01.06.08.

 

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


Система була реалізована в середовищі Microsoft Visual Studio 2005 на мові C#. База даних представлена у форматі SQLite.

До складу системи входять:

·        Catalogizator. exe - виконавчий файл розробленої системи;

·        catalog. db - файл, що містить таблиці баз даних, і який може бути розташований на будь-якому комп’ютері, що підключений до локальної мережі;

 

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


Метою дипломної роботи є створення системи призначеної для впорядковування інформації про файли, що зберігаються на компакт-дисках або інших знімних носіях. Система була реалізована в середовищі Microsoft Visual Studio 2005 на мові C#. База даних представлена у форматі SQLite.

 

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


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

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

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

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

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

·        ПК типу IBM PC або сумісний з ним, продуктивністю не менше 166 МГц;

·        Оперативна пам'ять не менше 32 МГбайт;

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

·        НЖМД не менше 4,3 Гбайт;

·        НГМД 3,5 дюйми;

·        Компакт-дисковий носій (CD);

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

 

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


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

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

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

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

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

2. Теоретичні дослідження та порівняльний аналіз технологій розробки Windows-додатків

 

2.1 Огляд основних технологій розробки Windows додатків

 

2.1.1 Програмування з використанням Win32/C

Спочатку під програмуванням під Windows малося на увазі програмування з використанням Windows Application Programming Interface (інтерфейсом прикладного програмування Windows, в 32-разрядних версіях Windows - Win32 API). З використанням цієї технології було створено безліч цілком гідних додатків, проте навряд чи хто-небудь сперечатиметься з тим, що написання додатка з використанням лише Windows API - це дуже трудомістке завдання.

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

 

2.1.2 Програмування з використанням C++/MFC

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

Існує безліч бібліотек для C++, основне призначення яких - полегшити написання додатків під Windows, надавши для цієї мети вже готові класи. Одна з найбільш поширених бібліотек - це MFC (Microsoft Foundation Classes). MFC - це додатковий рівень над Win32 API, який значно спрощує роботу програміста за рахунок використання готових класів, макросів і майстрів. Проте MFC - це лише часткове вирішення проблеми. Навіть при використанні MFC програмістові доводиться працювати з складним для читання кодом, вельми небезпечним з точки зору можливих помилок.

 

2.1.3 Програмування з використанням Visual Basic

Люди завжди прагнуть зробити своє життя простішим. Підкоряючись цьому прагненню багато програмістів на C++ обернули свої погляди до набагато простішої і доброзичливішої мови, якою є Visual Basic (VB). Visual Basic дозволяє працювати з досить складними елементами інтерфейсу користувача, бібліотеками коду (наприклад, Сом-серверами) і засобами доступу до даних при мінімальних витратах часу і сил. Visual Basic в набагато більшому ступені, чим MFC, ховає від користувача виклики Win32 API і надає великий набір інтегрованих засобів швидкої розробки.

Проте в Visual Basic є і недоліки. Головний з них - це набагато менші можливості, які надає ця мова, в порівнянні з C++ (це твердження справедливе, принаймні, для версій раніших, ніж VB.net). Visual Basic - це мова "для роботи з об'єктами", а не об'єктно-орієнтована мова в звичайному розумінні цього слова. У Visual Basic немає класичного спадкоємства, немає підтримки створення класів, що параметризуються, немає власних засобів створення багатопоточних додатків - і цей список можна продовжувати ще довго.

2.1.4 Програмування з використанням Java

Мова програмування Java - це повністю об'єктно-орієнтована мова, яка відносно синтаксису багато що успадкувала від C++. Звичайно, переваги Java далеко не вичерпуються міжплатформеністю. Мова Java в синтаксичному відношенні простіша і логічніша, ніж C++. Java як платформа надає в розпорядження програмістів велику кількість бібліотек (пакетів), в яких міститься велика кількість описів класів і інтерфейсів на всі випадки життя. З їх допомогою можна створювати стовідсоткові додатки Java з можливістю звернення до баз даних, підтримкою передачі поштових повідомлень, з клієнтською частиною, якою необхідний лише web-браузер, або на зворот, з клієнтською частиною, що володіє витонченим інтерфейсом.- це дуже елегантна і красива мова. Проте при його використанні проблем також уникнути не вдається. Одна з серйозних проблем полягає в тому, що при створенні складного додатку на Java нам доведеться використовувати лише цю мову для створення всіх частин цього додатку. У Java передбачено не так вже багато засобів для міжмовної взаємодії (що зрозуміло, зважаючи на призначення Java бути єдиною багатоцільовою мовою програмування). Але в реальному світі існують мільйони рядків готового коду, які хотілося б інтегрувати з новими додатками на Java. Проте це зробити дуже важко.- це далеко не ідеальна мова в багатьох ситуаціях. Простий приклад - якщо ми спробуємо створити лише Java додаток, що активно працює з 3d-графікою, швидше за все, працювати такий додаток буде не дуже швидко. Для роботи з 3d-графікою краще використовувати код, написаний на мові з розвиненішими низькорівневими можливостями (наприклад, на C++). Проте інтегрувати такий код з кодом на Java буде дуже складно. Оскільки можливості для звернення до API компонентів, створених на інших мовах, в Java дуже обмежені, говорити про реальну міжмовну взаємодію на основі Java не доводиться.

2.1.5 Програмування з використанням СОМ

Сучасний стан справ такий, що якщо програміст не будуєте Java-додатки, то велика вірогідність, що програміст освоює технологію Microsoft Component Object Model (COM). Сом-технологія проголошує: "Якщо ви створюєте класи в точній відповідності з вимогами СОМ, то у вас вийде блок повторно використовуваного програмного коду".

Краса двійкового Сом-сервера полягає в тому, що до нього можна звертатися з будь-якої мови. Наприклад, програмісти, використовуючи C++, можуть створювати класи, які можна буде використовувати з додатка на Vbasic. Програмісти, використовуючи Delphi, можуть використовувати класи, створені на С++ и т.д. Проте в міжмовній взаємодії СОМ є свої обмеження. Наприклад, немає можливості провести нового типа СОМ від того, що існує. Для повторного використання існуючих типів СОМ доведеться використовувати інші, набагато менш надійні і ефективні засоби.

Велика перевага СОМ полягає в тому, що програміст може не піклуватися про фізичне місцезнаходження компонентів. Такі засоби, як Application Identifiers (Appids, ідентифікатори додатків), стаби (stubs), проксі, середа виконання СОМ, дозволяють уникати при зверненні до компонентів по мережі необхідності поміщати в додаток код для роботи з сокетами, викликами RPC і іншими низькорівневими механізмами. Досить поглянути на такий код на Visual Basic 6.0 для клієнта СОМ:с as New MyCOMClass. Місцезнаходження класу визначається через AppID c. DoSomeWork.

Об'єктна модель СОМ використовується дуже широко. Проте внутрішній устрій компонентів вельми складний. Щоб навчитися знатися на нім доведеться витратити принаймні декілька місяців. Написання додатків з використанням Сом-компонентів можна спростити, використовуючи стандартні бібліотеки, наприклад біблітеку Active Template Library (ATL) зі своїм набором готових класів, шаблонів і макросів.

Деякі мови (наприклад, Visual Basic) також дозволяють приховати складність інфраструктури СОМ. Проте всіх складнощів уникнути все одно не вдається. Наприклад, навіть якщо працювати з відносно простим і підтримуючим COM Visual Basic, доведеться вирішувати не завжди прості питання, пов'язані з реєстрацією компонентів на комп'ютері і розгортанням додатків.

 

2.1.6 Програмування з використанням Windows DNA

Картина буде неповною, якщо не взяти до уваги як Інтернет. За декілька останніх років Microsoft додала в свої операційні системи велику кількість засобів для роботи з цією середою, у тому числі і засоби, покликані допомогти в створенні Інтернет-додатків. Проте, побудова закінченого web-додатки з використанням технології Windows DNA (Distributed internet Architecture - розподілена міжмережева архітектура) до цих пір залишається вельми складним завданням.

Значна частина складнощів виникає тому, що Windows DNA вимагає використання різнорідних технологій і мов (ASP, HTML, XML, Javascript, Vbscript, COM (), ADO і т.д.). Одна з проблем полягає в тому, що синтаксично всі ці мови і технології дуже мало схожі один на одного. Наприклад, синтаксис JavaScript більше схожий на синтаксис С++, тоді як VbScript є підмножиною Visual Basic. Сом-сервери, призначені для роботи в середі виконання СОМ, створені на основі здійснений інших підходів, ніж Asp-сторінки, які до них звертаються. Кінцевим результатом є лякаюче змішення технологій. Окрім всього іншого, в кожній мові, яка входить до складу Windows DNА, передбачена своя система типів, що також не є джерелом великої радості для програмістів. Наприклад, тип даних іnt у JavaScript - це не те ж саме, що іnt у С++, який, у свою чергу, відмінний від іnteger у Visual Basic.

2.2 Рішення.net


Один з головних принципів.net звучить так: "Змінюйте все, що хочете, звідки вам завгодно".net - це абсолютно нова модель для створення додатків під Windows (а в майбутньому, мабуть, і під іншими операційними системами). Ось коротке перерахування основних можливостей.net:

·        Повні можливості взаємодії з існуючим кодом.

·        Повна і абсолютна міжмовна взаємодія. На відміну від класичного СОМ, в.net підтримуються міжмовне спадкоємство, міжмовна обробка виключень і міжмовна відладка.

·        Спільна середа виконання для будь-яких додатків.net, незалежно від того, на яких мовах вони були створені. Один з важливих моментів при цьому - те, що для всіх мов використовується один і той же набір вбудованих типів даних.

·        Бібліотека базових класів, яка забезпечує приховування всіх складнощів, пов'язаних з безпосереднім використанням викликів API, і пропонує цілісну об'єктну модель для всіх мов програмування, що підтримують.net,

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

 

2.2.1 Основи CLS

CLS (Common Language Specification) - загальна специфікація мов програмування. Це набір конструкцій і обмежень, які є керівництвом для творців бібліотек і компіляторів в середовищі.net Framework. Бібліотеки, побудовані відповідно до CLS, можуть бути використані з будь-якої мови програмування, підтримуючого CLS. Мови, відповідні CLS (до їх числа відносяться мови Visual C# 2.0, Visual Basic, Visual C++), можуть інтегруватися один з одним. CLS - це основа міжмовної взаємодії в рамках платформи Microsoft.net.

Немає необхідності доводити, що одні і ті ж програмні конструкції в різних мовах виглядають абсолютно по-різному. Наприклад, в С# і Delphi об'єднання рядків (конкатенація) проводиться за допомогою оператора плюс "+", а в Visual Basic для цієї мети використовується амперсант "&". Для середовища виконання.net така різниця в синтаксисі абсолютно байдужа: все одно відповідні компілятори створять однаковий код IL. Проте мови програмування відрізняються не тільки синтаксисом, але і можливостями. Наприклад, в одних мовах програмування дозволено перевантаження операторів, а в інших - ні. Одні мови можуть використовувати беззнакові типи даних, в інших такі типи даних не передбачені. Тому потрібні деякі єдині правила для всіх мов.net. Якщо їм слідувати, то програмні модулі, написані на різних мовах, нормально взаємодіятимуть один з одним. Такий набір правил визначений в універсальній специфікації мови (CLS).

Набір правив CLS не тільки гарантує нормальну взаємодію блоків коду, створених на різних мовах, але і визначає мінімальні вимоги, які пред'являються до будь-якого компілятора.net. Необхідно пам'ятати, що CLS - це лише частина тих можливостей, які визначені в CTS. Правилам CLS повинні задовольняти і інструментальні засоби середовища розробки - якщо ми хочемо забезпечити міжмовну взаємодію, вони повинні генерувати тільки такий код, який відповідає вимогам CLS. У кожного правила CLS є назва (наприклад, CLS Rule 6). Ось приклад один з найважливіших правил - правило номер 1.

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

З цього правила виходить, що при реалізації якого-небудь типу можна скільки завгодно порушувати правила CLS - це ні на що не вплине. Наприклад, можна створити додаток.net, який взаємодіє із зовнішнім світом за допомогою трьох класів, і в кожному з цих класів тільки одна функція. Правилам CLS в цьому випадку повинні задовольняти тільки три цих функції (область видимості, угоди про іменування, типи параметрів і т.д.). У внутрішній реалізації цих функцій, класів або додатку в цілому може бути скільки завгодно відступів від правил CLS.

 

2.2.2 Основи CLR

CLR (Common Language Runtime) - Середовище Часу Виконання або Віртуальна Машина. Забезпечує виконання збірки. Основний компонент.net Framework. Під Віртуальною Машиною розуміють абстракцію інкапсульованої (відособленої) керованої операційної системи високого рівня, яка забезпечує виконання (керованого) програмного коду.

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

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

·        Управління кодом (завантаження і виконання).

·        Управління пам'яттю при розміщенні об'єктів.

·        Ізоляція пам'яті додатків.

·        Перевірка безпеки коду.

·        Перетворення проміжної мови в машинний код.

·        Доступ до метаданих (розширена інформація про типи).

·        Обробка виключень, включаючи міжмовні виключення.

·        Взаємодія між керованим і некерованим кодами (у тому числі і COM-об'єктами).

·        Підтримка сервісів для розробки (профілізація, відладка і т.д.).

Коротше, CLR - це набір служб, необхідних для виконання керованого коду

Сама CLR складається з двох головних компонентів: ядра (mscoree. dll) і бібліотеки базових класів (mscorlib. dll). Наявність цих файлів на диску - вірна ознака того, що на комп'ютері, принаймні, була зроблена спроба установки платформи.net.

Ядро середовища виконання реалізоване у вигляді бібліотеки mscoree. dll. При компоновці збірки в неї вбудовується спеціальна інформація, яка при запуску додатку (EXE) або при завантаженні бібліотеки (звернення до DLL з некерованого модуля - виклик функції LoadLibrary для завантаження керованої збірки) приводить до завантаження і ініціалізації CLR. Після завантаження CLR в адресний простір процесу, ядро середовища виконання проводить наступні дії:

·        знаходить розташування збірки;

·        завантажує збірку в пам'ять;

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

·        проводить аналіз метаданих;

·        забезпечує компіляцію коду на проміжній мові (IL) в платформозалежні інструкції (асемблерний код);

·        виконує перевірки, пов'язані із забезпеченням безпеки;

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

·        FCL (.net Framework Class Library) - відповідна CLS-специфікації об'єктно-орієнтована бібліотека класів,

·        інтерфейсів і системи типів (типів-значень), які включаються до складу платформи Microsoft.net.

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

.net бібліотека класів є другим компонентом CLR.

.net FCL можуть використовувати ВСЕ.net-приложения, незалежно від призначення архітектури використовуваного при розробці мови програмування, і зокрема:

·        вбудовані (елементарні) типи, представлені у вигляді класів (на платформі.net все побудовано на структурах або класах);

·        класи для розробки графічного призначеного для користувача інтерфейсу (Windows Form);

·        класи для розробки web-додатків і web-служб на основі технології ASP.net (Web Forms);

·        класи для розробки XML і Internet-протоколів (FTP, HTTP, SMTP, SOAP);

·        класи для розробки додатків, що працюють з базами даних (ADO.net) і багато що інше.

Рис.2.1 Послідовність виконання програм в середовищі CRL

 

.2.3 Стандартна система типів CTS

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

Концепція класів - наріжний камінь будь-якого об'єктно-орієнтованого програмування. Вона підтримується всіма мовами програмування.net. Клас - це необмежений набір полий, властивостей, методів і подій, складових єдине ціле. У CTS передбачені абстрактні члени класів, що забезпечує можливість застосування поліморфізму в похідних класах. Множинне спадкоємство в CTS заборонене. Клас відповідає всім вимогам об'єктно-орієнтованого програмування і може бути абстрактним, мати область видимості, використовувати інтерфейси, а також може бути закритим для створення похідних класів.

Крім класів в CTS також представлені і структури. У першому наближенні структури можна розглядати як спрощені різновиди класів. Структури CTS можуть мати будь-яку кількість конструкторів з параметрами (конструктор без параметрів зарезервований). За допомогою конструкторів з параметрами можна встановити значення будь-якого поля структури у момент створення цього об'єкту. Всі структури CTS проведені від єдиного базового класу System. ValueType.

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

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

Члени типів CTS

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

Перерахування CTS

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

У CTS всі перерахування є похідними від єдиного базового класу System. Enum. Цей базовий клас містить безліч корисних членів, які допоможуть в роботі з парами "ім'я-значення".

Делегати CTS

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

Вбудовані типи даних CTS

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

 

2.2.4 Простори імен

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

Наприклад, бібліотека MFC визначає набір класів C++ для створення форм, діалогових вікон, меню, панелей управління і т.д. В результаті програмісти можуть не займатися створенням того, що вже давно зроблене, а зосередитися на унікальних аспектах застосування, що розробляється ними. Аналогічні засоби існують в Delphi, Visual Basic, Java і в решті всіх мов програмування.

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

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

Простір імен - це спосіб організації типів (класів, перерахувань, інтерфейсів, делегатів і структур) в єдину групу. У одному просторі імен зазвичай об'єднуються взаємозв'язані типи. Наприклад, в просторі імен System. Drawing міститься набір типів, які покликані допомогти в організації виведення зображень на графічний пристрій. У.net передбачені простори імен для організації типів, розрахованих на роботу з базами даних, мережею, багатопотоковістю, захистом даних і безлічі інших завдань.

 

.2.5 Основи MSIL

(Microsoft Intermediate Language) - проміжна мова платформи Microsoft.net. Початкові тексти програм для .net-приложений пишуться на мовах програмування, відповідних специфікації CLS. Для таких мов може бути побудований перетворювач в MSIL. Таким чином, програми на цих мовах можуть транслюватися в проміжний код на MSIL.

Завдяки відповідності CLS, в результаті трансляції програмного коду, написаного на різних мовах, виходить сумісний IL-код.

Фактично MSIL є асемблером віртуального процесора.

МЕТАДАНІ - при перетворенні програмного коду в MSIL також формується блок метаданих, який містить інформацію про даних, використовуваних в програмі. Фактично це набори таблиць, які включають інформацію про типи даних, визначуваних в модулі (про типи даних, на які посилається даний модуль). Раніше така інформація зберігалася окремо. Наприклад, додаток міг включати інформацію про інтерфейси, яка описувалася на Interface Definition Language (IDL). Тепер метадані є частиною керованого модуля.

Зокрема, метадані використовуються для:

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

·        верифікації коду в процесі виконання модуля;

·        управління динамічною пам'яттю (звільнення пам'яті) в процесі виконання модуля;

·        забезпечення динамічної підказки (IntelliSence) при розробці програми стандартними інструментальними засобами (Microsoft Visual Studio.net) на основі метаданих.

Мови, для яких реалізований переклад на MSIL:

·        Visual Basic,

·        Visual C++,

·        Visual C# 2.0,і ще багато інших мов.

2.2.6 Поняття збірки і виконувані модулі

Виконуваний модуль - незалежно від компілятора (і вхідної мови) результатом трансляції.net - додатку є керований виконуваний модуль (керований модуль). Це стандартний переносимий виконуваний (PE - Portable Executable) файл Windows.

Однією з особливостей керованого коду є наявність механізмів, які дозволяють працювати з керованими даними. Керовані дані - об'єкти, які в ході виконання коду модуля розміщуються в керованій пам'яті (у керованій купі) і знищуються складальником сміття CLR. Дані C#, Visual Basic і JScript.net є керованими за замовчанням. Виконуваний модуль - незалежно від компілятора (і вхідної мови) результатом трансляції.net-додатку є керований виконуваний модуль (керований модуль). Це стандартний переносимий виконуваний (PE - Portable Executable) файл Windows. Однією з особливостей керованого коду є наявність механізмів, які дозволяють працювати з керованими даними.

Керовані дані - об'єкти, які в ході виконання коду модуля розміщуються в керованій пам'яті (у керованій купі) і знищуються прибиральником сміття CLR. Дані C#, Visual Basic і JScript.net є керованими за замовчанням.

Дані C# також можуть бути помічені як некеровані.

Збірка (Assembly) - базовий будівельний блок додатку в.net Framework. Керовані модулі об'єднуються в складки. Збірка є логічним угрупуванням одного або декількох керованих модулів або файлів ресурсів. Керовані модулі у складі складок виконуються в Середовищі Часу Виконання (CLR). Збірка може бути або виконуваним застосуванням (при цьому вона розміщується у файлі з розширенням. exe), або бібліотечним модулем (у файлі з розширенням. dll). При цьому нічого спільного із звичайними (старого зразка!) виконуваними застосуваннями і бібліотечними модулями збірка не має.

Декларація збірки (Manifest) - складова частина збірки. Це ще один набір таблиць метаданих, який:

ідентифікує збірку у вигляді текстового імені, її версію, культуру і цифрову сигнатуру (якщо збірка розподіляється серед додатків);

визначає вхідні в склад файли (по імені і хешу);

указує типи і ресурси, що існують в збірці, включаючи опис тих, які експортуються із збірки;

перераховує залежності від інших складок;

указує набір має рацію, необхідних збірці для коректної роботи.

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

3. Особливості застосування баз даних в гнучких комп’ютеризованих системах


3.1 Призначення і область використання баз даних


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

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

для даних допускається така мінімальна надлишковість, яка сприяє їх оптимальному використанню в одному чи кількох застосуваннях;

незалежність даних від програм;

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

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

Прокоментуємо додатково підкреслені слова та вирази у вищенаведеному описі, порівнюючи в основному з близьким попередником БД - файловими системами (ФС).

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

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

Вимога мінімізації надлишковості полягає у мінімальній кількості копій для одних і тих же даних з урахуванням орієнтації на кілька застосувань. Ці надлишкові копії використовуються для підтримки зв'язків між даними. Як приклад, розглянемо відомості, що зберігаються у відділі кадрів деякого підприємства про своїх співробітників. Користувачами цієї інформації виступають адміністрація, профспілкова організація та бухгалтерія підприємства. Адміністрацію цікавлять дані про кваліфікацію, професійний рівень і досвід роботи, профспілки використовують відомості соціально-побутового характеру, а бухгалтерія оброблює ті дані, що потрібні для нарахувань заробітної плати та підрахунку податків, інших нарахувань та відрахувань. Хоча інформація і різнорідна, але все ж має значну спільну частину. Всім користувачам потрібні службовий номер, прізвище, ім'я, по-батькові співробітника, його рік народження, дані про умови праці. Інформація про сімейний стан та склад сім'ї використовується бухгалтерією і профспілками. Якщо для зберігання даних застосувати технологію ФС, то можливі два крайні варіанти: а) незалежні один від одного файли, відсортовані згідно з потребами того чи іншого користувача, передбачають значну надлишковість даних; б) всі дані знаходяться у одному файлі, відсортованому так, як потрібно одному з користувачів (наприклад, адміністрації) - надлишковість при цьому практично відсутня, але зручно працювати тільки одному з користувачів. Концепція БД займає проміжне становище між вищеописаними крайніми позиціями.

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

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

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

За критерієм виразової потужності інструментальні засоби специфікації умов цілісності можна підрозділити на такі групи:

·        порівняння поля запису (або атрибута) з константою або з іншим полем цього ж запису; приклад такої умови наводився вище;

·        порівняння поля запису з полем або кількома полями інших записів;

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

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

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

·        оперативно одержувати інформацію про місце знаходження комп’ютера;

·        вести облік пристроїв які підключені або входять до складу комп’ютера;

·        організувати процеси перемішання комп’ютерів їх частин або пристроїв;

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

·        вести облік профілактик які були зроблені на цьому комп’ютері.

3.2.1 Моделі представлення даних

У залежності від виду організації даних розрізняють наступні основні моделі представлення даних у БД:

·        ієрархічну;

·        мережну;

·        реляційну;

·        об’єктно-орієнтовану.

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

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

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

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

Реляційна модель одержала свою назву від англійського терміна relation (відношення) і була запропонована в 70-х роках співробітником фірми IBM Эдгаром Коддом. Реляційна БД являє собою сукупність таблиць, зв'язаних відносинами. Достоїнствами реляційної моделі даних є простота, гнучкість структури, зручність реалізації на комп'ютері, наявність теоретичного опису. Дана розробка заснована на реляційних базах даних.

3.2.2 Реляційний спосіб доступу до даних

Реляційний спосіб доступу до даних ґрунтується на операціях із групами записів. Для завдання операцій використовуються засоби мови структурованих запитів - SQL (Structured Query Language), тому реляційний спосіб доступу називають також SQL-орієнтованим. Для його реалізації в програмних продуктах Delphi як набір даних повинні застосовуватися такі компоненти, як Query чи storedProc, що дозволяють виконати SQL-запит.

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

Стосовно до локальних БД використання реляційного способу доступу не дає істотної переваги, але й у цьому випадку за допомогою SQL-запиту можна:

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

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

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

Основи мови SQL

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

Мова SQL звичайно інтегрується в інші засоби (оболонку), використовуючись в інтерактивному режимі. Так, у системі керування базами даних, що має інтерактивний інтерфейс, користувач може працювати, нічого не знаючи про мову SQL, незалежно від того, яка БД використовується: віддалена чи локальна. Такі СУБД, як Microsoft Access, Visual FoxPro чи Paradox, самі виконують дії, зв'язані з програмуванням запитів на SQL, пропонуючи користувачу засоби візуальної побудови запитів, наприклад, Query By Example (QBE) - запит за зразком.

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

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

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

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

Мова SQL має кілька стандартів, з яких найбільш розповсюдженими серед виробників програмних продуктів є стандарти SQL-89 і SQL-92. Стандарт SQL92, підтриманий Американським національним інститутом стандартів (ANSI - American National Standards Institute) і Міжнародною організацією по стандартизації (ISO - International Standard Organization), також називають стандартом ANSI чи/ISO. Наявність декількох стандартів і різна їхня інтерпретація породили безліч діалектів мови SQL, що у більшому чи меншому ступені відрізняються друг від друга.

У мові SQL можна виділити наступні основні підмножини операторів:

·        визначення даних;

·        обробки даних;

·        керування привілеями (доступом до даних); керування транзакціями.

Розглянемо основні можливості, реалізовані у Delphi версії мови SQL. Ця версія трохи відрізняється від стандарту SQL-92, наприклад, у ній не можна працювати з переглядами і керувати привілеями.

У додатках Delphi для виконання операторів SQL можна використовувати набір даних Query. Нагадаємо, що текст SQL-запиту є значенням властивості sql компонента Query і формується при розробці додатка, чи під час його виконання. Компонент Query забезпечує виконання SQL-запиту й одержання відповідного набору даних. Формування набору даних виконується при активізації компонента Query шляхом виклику методу Оpen чи установкою властивості Active значення True. Іноді при відпрацьовуванні SQL-запиту немає необхідності одержувати набір даних, наприклад, при видаленні, чи вставці модифікації записів. У цьому випадку більш переважно виконувати запит викликом методу ExecSQL. При роботі в мережі виклик цього методу робить необхідну модифікацію набору даних, не передаючи в визиваючу програму (комп'ютер) запис набору даних, що істотно знижує навантаження на мережу.

Крім того, набрати і виконати в інтерактивному режимі текст SQL-запиту дозволяють інструментальні програми, що поставляються разом з Delphi 5, наприклад такі, як Database Desktop, SQL Explorer і SQL Builder. Відзначимо, що перші дві програми викликаються за допомогою однойменних команд меню Tools і Database, відповідно, а візуальний будівник запитів SQL Builder викликається через контекстне меню компонента Query.

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

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

Зарезервовані слова мови SQL пишемо рядковими, а імена - прописними буквами. Регістр букв не впливає на інтерпретацію операторів мови. Крапка з комою наприкінці SQL-операторів необов'язкова. Елементи в списках, наприклад, імена полів і таблиць, повинні бути розділені комами.

Імена таблиць і полів (стовпців) полягають в одиночні чи подвійні апострофи, наприклад, "First Name". Якщо ім'я не містить пробілів і інших спеціальних символів, то апострофи можна не вказувати.

У SQL-запиті допускаються коментарі, що пояснюють текст програми. Коментар обмежується символами /* і */.

Функції мови SQL

Мова SQL, як і інші мови, надає для використання ряд функцій, з яких найбільш уживані наступні:

Агрегатні чи статистичні функції:() - середнє значення;

МАХ () - максимальне значення;() - мінімальне значення;() - сума;() - кількість значень;(*) - кількість ненульових значень.

Функції роботи з рядками:(Str) - перетворення символів рядка Str до верхнього регістра;(Str) - перетворення символів рядка Str до нижнього регістра;(Str) - видалення пробілів на початку і наприкінці рядка Str;(Str FROM n1 to n2) - виділення з рядка str підрядка, що містить у собі символи, починаючи з номера (позиції) n1 і закінчуючи номером n2;(<Expression> AS <Type>) - приведення виразу Expression до типу Type;

|| - конкатенація (зчеплення) двох рядків.

Функції декодування дати і часу:(<Елемент> FROM <вираз>) - з вираження, що містить значення чи дати часу, витягається значення, що відповідає зазначеному елементу. Як елемент дати чи часу можна вказувати значення: YEAR, MONTH, DAY, HOUR, MINUTE чи SECOND.

Відбір даних з таблиць

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

Оператор SELECT - найважливіший оператор мови SQL. Він використовується для добору записів, що задовольняють складним критеріям пошуку, і має наступний формат:[DISTINCT] {* I <Список полів>)<Список таблиць>

[WHERE <Умови добору >]

[ORDER BY <Список полів для сортування >]

[GROUP BY <Список полів для групування >]

[HAVING <Умови групування>]

[UNION <Вкладений оператор SELECT>]

Результат виконання SQL-запиту, заданого оператором SELECT, являє собою вибірку записів, що відповідають заданим у ньому умовам. При розгляді оператора SELECT будемо припускати, що SQL-запит набраний і виконаний за допомогою компонента Query. У цьому випадку результатом виконання запиту є відповідний цьому компонент набору даних.

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

В оператор SELECT обов'язково включається список полів і операнд FROM. інші операнди можуть бути відсутніми. У списку операнда FROM перелічуються імена таблиць, для яких відбираються записи. Список повинний містити як мінімум одну таблицю.

Список полів визначає склад полів результуючого набору даних, ці поля можуть належати різним таблицям. У списку повинне бути задане хоча б одне поле. Якщо в набір даних потрібно уключити всі поля таблиці (таблиць), то замість перерахування імен полів можна вказати символ "*". Якщо список містить поля декількох таблиць, то для вказівки приналежності полів до тієї чи іншої таблиці використовують складене ім'я, що включає в себе ім'я таблиці й ім'я полючи, розділені крапкою: <Ім'я таблиці>. <Ім'я поля>

Операнд WHERE задає умови (критерії) добору, яким повинні задовольняти запису в результуючому наборі даних. Вираження, що описує умови добору, є логічним. Його елементами можуть бути імена полів, операції порівняння, арифметичні і логічні операції, дужки, спеціальні функції LIKE, NULL, IN і інші.

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

Операнд HAVING діє разом з операндом GROUP BY і використовується для добору записів усередині груп. Правила запису умов групування аналогічні правилам формування умов вибору в WHERE. Операнд ORDER BY містить список полів, що визначають порядок сортування записів результуючого набору даних. За замовчуванням сортування по кожному полю виконується в порядку зростання значень; якщо необхідно задати для полів сортування по зменшенню, то після імені цього поля вказується описувач DESC.

Оператори SELECT можуть мати складну структуру і бути вкладеними друг у друга. Для об'єднання операторів використовується операнд UNION, у якому розташовується вкладений оператор SELECT, названий також підзапитом. Результуючий набір даних представляють записи, відібрані в результаті виконання умов добору, заданих операндами WHERE обох операторів.

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

Статичний і динамічний запити

Як уже відзначалося, у залежності від способу формування SQL-запит може бути:

·        статичним;

·        динамічним.

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

Динамічний SQL-запит формується чи змінюється при виконанні додатка.

3.2.3 Таблиці

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

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

Структура таблиці включає наступну інформацію:

Ім'я таблиці - Ім'я, по якому до таблиці можна звернутися у властивостях, методах і операторах SQL.

Стовпці таблиці - Категорії інформації, збереженої в таблиці. Кожен стовпець має ім'я і тип даних. Табличні і стовпцеві обмеження - Обмеження цілісності, визначені на рівні таблиці чи на рівні стовпця.

Кожен вертикальний стовпець таблиці STUDENTS представляє один елемент даних для кожного зі студентів. Наприклад, у стовпці GROUP містяться номери груп, у яких розташовані студенти. У стовпці DATE містяться дати народження кожного студента.

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

На перетинанні кожного рядка з кожним стовпцем таблиці міститься одне значення даних. Наприклад, у другому рядку в стовпці FAMILY міститься значення "ІВАНОВ". У стовпці PODGRP того ж рядка міститься значення 1, що є номером підгрупи, у якій знаходиться даний студент.

Усі значення, що містяться в тому самому стовпці, є даними одного типу. Наприклад, у стовпці FAMILY містяться тільки слова, у стовпці DATE містяться дати, а в стовпці NUMBER містяться цілі числа, що представляють ідентифікатори студентів. Безліч значень, що можуть міститися в стовпці, називається доменом цього стовпця. Доменом стовпця FAMILY є безліч прізвищ студентів. Доменом стовпця DATE є будь-як дата.

У кожного стовпця в таблиці є своє ім'я, що звичайно служить заголовком стовпця. Усі стовпці в одній таблиці повинні мати унікальні імена, однак дозволяється привласнювати однакові імена стовпцям, розташованим у різних таблицях. На практиці такі імена стовпців, як NUMBER, FAMILY, NAME, GROUP, DATE, PODGRP, часто зустрічаються в різних таблицях однієї бази даних.

Стовпці таблиці упорядковані ліворуч праворуч, і їхній порядок визначається при створенні таблиці. У будь-якій таблиці завжди є як мінімум один стовпець. У стандарті ANSI/ISO не вказується максимально припустиме число стовпців у таблиці, однак майже у всіх комерційних СУБД ця межа існує і звичайно складає приблизно 255 стовпців.

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

У таблиці може міститися будь-яка кількість рядків. Цілком припустиме існування таблиці з нульовою кількістю рядків. Така таблиця називається порожньою. Порожня таблиця зберігає структуру, визначену її стовпцями, просто в ній не містяться дані. Стандарт ANSI/ISO не накладає обмежень на кількість рядків у таблиці, і в багатьох СУБД розмір таблиць обмежений лише вільним дисковим простором комп'ютера. В інших СУБД мається максимальна межа, однак він дуже високий - біля двох мільярдів рядків, а іноді і більше.

3.2.4 Ключові поля

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

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

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

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

На перший погляд, первинним ключем таблиці STUDENTS можуть служити і стовпець FAMILY. Однак у житті досить часто зустрічаються однофамільці, отже, стовпець FAMILY більш не може виконувати роль ключа. На практиці як первинні ключі таблиць звичайно варто вибирати ідентифікатори, такі як ідентифікатор студента NUMBER у таблиці STUDENTS.

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

Він застосовується у випадках, коли неможливо гарантувати унікальність значень кожного окремого поля. Стовпець NSTUD містить ідентифікатори студентів, перерахованих у таблиці, а стовпець NORDER містить номера, наказам. Може показатися, що стовпець NORDER міг би й один виконувати роль первинного ключа, однак ніщо не заважає одному студенту кілька разів потрапити під відрахування і потім відновитися на факультеті. Таким чином, як первинний ключ таблиці ORDERS необхідно використовувати комбінацію стовпців NSTUD і NORDER. Для кожного зі студентів, що містяться в таблиці, комбінація значень у цих стовпцях буде унікальною.

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

Хоча первинні ключі є важливою частиною реляційної моделі даних, у перших реляційних СУБД (System/R, DB2, Oracle і інших) не була забезпечена явно їхня підтримка. Як правило, проектувальники бази даних самі стежили за тим, щоб у всіх таблиць були первинні ключі, однак у самих СУБД не було можливості визначити для таблиці первинний ключ. І тільки в СУБД DB2 Version 2, що з'явилася в квітні 1988 року, компанія IBM реалізувала підтримку первинних ключів. Після цього подібна підтримка була додана в стандарт ANSI/ISO.

3.2.5 Індекси

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

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

Створити індекси, як і ключі, можна по одному чи декільком полям. Складені індекси дозволяють при доборі даних групувати записи, у яких перші поля можуть мати однакові значення. Індексувати поля потрібно для виконання частих пошуків, сортувань чи об'єднань з полями з інших таблиць у запитах. Ключові поля таблиці індексуються автоматично. Не можна індексувати поля з типом даних поле МЕМО, чи об'єкту OLE. Для інших полів індексування використовується, якщо поле має текстовий, числовий, грошовий тип чи тип дати/часу і потрібно здійснювати пошук і сортування значень у полі. Якщо передбачається, що буде часто виконуватися сортування чи пошук одночасно по двох і більш полях, можна створити складений індекс. Наприклад, якщо для того самого запиту часто встановлюється критерій для полів Ім'я і Прізвище, то для цих двох полів має сенс створити складений індекс. При сортуванні таблиці по складеному індексі спочатку здійснюється сортування по першому полю, визначеному для даного індексу. Якщо в першому полі містяться записи з повторюваними значеннями, то сортування здійснюється по другому полю і т.д.

3.2.6 Зовнішні ключі

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

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

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

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

4. Опис функціональних можливостей і програмної реалізації системи

 

4.1 Предметна область і задачі, покладені на гнучку систему автоматизації


Проектована система призначена для автоматизації процесу впорядковування інформації про файли, що зберігаються на компакт-дисках або інших знімних носіях. Система була реалізована в середовищі Microsoft Visual Studio 2005. База даних представлена у вигляді 2-х таблиць у форматі SQL-light. Використані при розробці програмні продукти є безкоштовними і тому впровадження розробленого програмного продукту є економічно ефективним.

 

4.2 Апаратні вимоги, та вимоги до системного програмного забезпечення


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

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

·        ПК типу IBM PC або сумісний з ним, продуктивністю не менше 166 МГц;

·        Оперативна пам'ять не менше 32 МГбайт;

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

·        НЖМД не менше 4,3 Гбайт;

·        Компакт-дисковий носій (CD);

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

2. Система не повинна мати прив’язки до апаратної частини для можливого переносу її на нову платформу через моральне старіння комп’ютерної техніки;

. Програмна оболонка повинна мати інтуїтивно зрозумілий інтерфейс;

Система повинна функціонувати під керуванням операційних систем Windows 98, Windows 2000, або Windows ХР.

 

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


Логіко-функціональна схема системи наведена на рис.4.1.

Рис. 4.1 Логіко-функціональна схема системи

 

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


При старті програми на екрані з'являється|появляється| робоче вікно програми (рис.4.2).

Рис. 4.2 Робоче вікно програми

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

•        додати диск в базу;

•        видалити інформацію про диск з бази;

•        перейменувати диск;

•        додати або відредагувати коментар.


При виборі пункту меню "Добавить" з’являється форма додавання дисків до бази, яка представлена на рис.4.4

Рис.4.4 форма додавання дисків до бази

Ця форма містить поле вибору букви змінного диску, поле призначення імені та поле коментарію. По натисканні на кнопку "ОК" відбувається рекурсивне сканування виборного змінного носія та отримана інформація додається до бази і відображається у верхній частині головної форми, яке оновлюється при зміні інформації у базі. Якщо не вказати ім’я диску, то програма відреагує на це наступним чином:

Рис. 4.5 Попередження відсутності імені

При виборі пункту меню "Удалить" з’являється вікно з питанням підтвердження видалення запису з бази даних (рис.4.6):

Рис. 4.6 Вікно з питанням підтвердження видалення запису

Якщо натиснути так, то запис буде видалений, інакше нічого не трапиться.

При виборі пункту меню "Переименовать" вибраний запис переходе у режим редагування (рис. 4.7):

Рис. 4.7 Редагування

Якщо ім’я диску залишити пустим, то у базі нічого не зміниться і ім’я залишиться попереднім, а якщо змінити ім’я у той час, коли проглядається вміст вибраного диску вибраного для редагування імені диску, то структура папок автоматично оновиться (рис. 4.8, 4.9).

Рис. 4.8 До редагування

Рис. 4.9 Після редагування

При виборі пункту меню "Комментарий" з’являється форма додавання або редагування коментарів (рис.4.10):

Рис. 4.10 Форма додавання або редагування коментарів

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

Рис. 4.11 Вміст диска

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

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

Додавання коментарів на файл відбувається за допомогою контекстного меню (мал. 4.12)

Рис. 4.12 Контекстне меню додавання коментаря до файлів

При натисненні на єдину дорогу меню "Коментар" з'являється форма додавання/редагування коментарів (рис 4.8).

Рис 4.13 Форма додавання коментарів

За допомогою форми добавления/редактирования коментарів можна не лише додати новий або відредагувати вже існуючий коментар, але і видалити залишивши поле порожнім і натискує на кнопку "ОК"

У верхній частині інтерфейсу користувача, над списком дисків, знаходиться поле пошуку (рис 4.14)

Рис. 4.14 Пошук

Після введення тексту для пошуку і натиснення на кнопку відкривається форма з результатами пошуку (рис 4.15)

Рис 4.15 Форма результатів пошуку

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

 

4.5 Функціональна частина


База даних програми включає дві таблиці catalog і files структура яких вказана на малюнках 4.16 і 4.17.\

Рис. 4.16 Структура таблиці catalog

Рис. 4.17 Структура таблиці files

Таблиця catalog, містить інформацію про диски і теки.

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

Поле name - містить імена папок

Поле path - містить повні первинні дороги до тек.

Поле size - містить розмір дисків, і запис робиться лише на диски, а не на теки, а не на теки, які містяться в дисках.

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

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

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

Поле comment - містить в собі коментарі користувача, які були задані на диски, запис робиться лише на диски, а не на теки, які містяться на дисках.

Поле deleted - булеве поле що показує видалений диск чи ні.

Таблиця files містить інформацію про файли.

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

Поле path - містить повні первинні дороги до файлів.

Поле name - текстове поле, що містить імена файлів без дороги.

Поле comment - текстове поле, що містить коментарі користувача на файли.

Поле size - містить розмір файлів.

Поле catalog_id - поле, що зв'язує таблиці files і catalog, вказує на приналежність файлів до тек або дисків.

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

Нижче на малюнках 4.18 і 4.19 показані індекси таблиць files і catalog

Рис. 4.18 Індексів таблиці catalog

Рис. 4.19 Індексів таблиці files

При запуску програми відразу після ініціалізації компонентів інтерфейсів запускається функція load () представлена на лістингу 4.1

void load ()

{<Dictionary<string, string>> discs = cat. GetRootFolders ();. Items. Clear ();. Nodes. Clear ();. Items. Clear ();(int i = 0; i < discs. Count; i++)

{. Items. Add (discs [i] ["name"]). Tag = discs [i] ["id"];. Items [i]. ImageIndex = 0;. Items [i]. SubItems. Add ( (Math. Round ( (float) (Convert. ToInt32 (discs [i] ["size"])) /1024,2)). ToString () + " Mb");. Items [i]. SubItems. Add (discs [i] ["files"]);. Items [i]. SubItems. Add (discs [i] ["folders"]);. Items [i]. SubItems. Add (discs [i] ["comment"]);

}

}

Лістинг 4.1

Функція load () використовуючи метод класу catalog, який знаходиться в бібліотеці програми catalog. dll, GetRootFolders, представленою на листинге 4.2, отримує список дисків заздалегідь доданих в базу користувачем у вигляді List<Dictionary<string, string>>. Після чого форматує отримані дані по стовпцях елементу інтерфейсу listView2, і виводить їх на екран.

List<Dictionary<string, string>> GetRootFolders ()

{<Dictionary<string, string>> root_folder_list = new List<Dictionary<string, string>> ();(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "SELECT * from catalog where parrent_id='0' and deleted='0'";.commandType = CommandType. Text;. Open ();dr = (SQLiteDataReader) cmd. ExecuteReader ();(dr. Read ())

{<string, string> folder = new Dictionary<string, string> ();. Add ("id", dr ["id"]. ToString ());. Add ("name", dr ["name"]. ToString ());. Add ("path", dr ["path"]. ToString ());. Add ("folders", dr ["folders"]. ToString ());. Add ("files", dr ["files"]. ToString ());. Add ("size", dr ["size"]. ToString ());. Add ("comment", dr ["comment"]. ToString ());_folder_list. Add (folder);

}. Close ();

}

}root_folder_list;

}

Лістинг 4.2

Само ж додавання дисків відбувається при виникненні події button1_Click форми додавання дисків (лістинг 4.3)

void button1_Click (object sender, EventArgs e)

{(textBox2. Text! = "")

{. catalog cat = new catalog. catalog ();. scan_disc (comboBox1. Text, textBox2. Text, textBox3. Text);();

}

{. Show ("Недопустимое имя!");

}

}

Лістинг 4.3

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

void scan_disc (string path,string name, string comment)

{

// инсерт в базу текущего

_disc_name = name;(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "INSERT INTO catalog (name, path, size, folders, files,parrent_id,comment) VALUES ('" + name + "', '" + path + "', '0', '0', '0','0',\""+comment+"\")";.commandType = CommandType. Text;. Open ();. ExecuteNonQuery ();. Close ();

}

}

// получаем с базы новый parent_idcur_id = get_last_cat_id ();_id = cur_id;(path, cur_id);(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "UPDATE catalog SET folders='" + folders_count + "', files='"+files_count+"', size='"+size+"' WHERE id='"+root_id+"'";.commandType = CommandType. Text;. Open ();. ExecuteNonQuery ();. Close ();

}

}

}

Лістинг 4.4

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

void getDiscDir (string path, int parrent_id)

{

{[] childs_dirs = Directory. GetDirectories (path);

// получаем список файлов для текущего фолдера_count += childs_dirs. Length;[] files = Directory. GetFiles (path);_count += files. Length;(int i = 0; i < files. Length; i++)

{. IO. FileInfo fi = new FileInfo (files [i]);f_size = (int) fi. Length;+= (f_size / 1024);f_name = Path. GetFileName (files [i]);(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{new_path = files [i]. Substring (1, (files [i]. Length - 1));.commandText = "INSERT INTO files (path, name, size, catalog_id, disc_name) VALUES ('" + new_path + "', '" + f_name + "', '" + f_size + "', '" + parrent_id + "', '"+_disc_name+"')";.commandType = CommandType. Text;. Open ();. ExecuteNonQuery ();. Close ();

}

}

}(int i = 0; i < childs_dirs. Length; i++)

{

// инсерт в базу чилда с новым парент айди (cur_id)ch_name = Path. GetFileName (childs_dirs [i]);(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "INSERT INTO catalog (name, path, size, folders, files, parrent_id) VALUES ('" + ch_name + "', '" + childs_dirs [i] + "', '0', '0', '0','" + parrent_id + "')";.commandType = CommandType. Text;. Open ();. ExecuteNonQuery ();. Close ();

}

}

// получаем чилдовский айди

// запускаем процедуру для этого чилдаch_id = get_last_cat_id ();(childs_dirs [i], ch_id);

}

}(Exception x)

{

}

}

Лістинг 4.5

Каталог є структурою яка приведена на лістингу 4.6

struct Folders

{string name;int id;List<Folders> Childs;

}

Лістинг 4.6

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

List<Folders> _getFoldersStruct (int id)

{<Folders> folder_struct = new List<Folders> ();

// получаем список из базы(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "SELECT * from catalog where parrent_id='" + id + "'";.commandType = CommandType. Text;. Open ();dr = (SQLiteDataReader) cmd. ExecuteReader ();(dr. Read ())

{folder = new Folders ();. name = dr ["name"]. ToString ();new_id = Convert. ToInt32 (dr ["id"]. ToString ());. id = new_id;. Childs = _getFoldersStruct (new_id);_struct. Add (folder);

}. Close ();

}

}folder_struct;

}Folders getFoldersStruct (int disc_id)

{folder_struct = new Folders ();

// получаем список из базы(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = "SELECT * from catalog where id='"+disc_id+"'";.commandType = CommandType. Text;. Open ();dr = (SQLiteDataReader) cmd. ExecuteReader ();(dr. Read ())

{_struct. name = dr ["name"]. ToString ();new_id = Convert. ToInt32 (dr ["id"]. ToString ());_struct. id = new_id;_struct. Childs = _getFoldersStruct (new_id);

}. Close ();

}

}folder_struct;

}

Лістинг 4.7

По отриманій структурі folder використовуючи методи CreateTreeView і _CreateTreeView формується дерево каталогів

Лістинг 4.8

void CreateTreeView ()

{node = new TreeNode ();. Text = folders. name;. Tag = folders. id. ToString ();

_CreateTreeView (folders. Childs, node);. Nodes. Add (node);

}void _CreateTreeView (List<Folders> f, TreeNode node)

{(Folders el in f)

{new_node = new TreeNode ();_node. Text = el. name;_node. Tag = el. id. ToString ();

_CreateTreeView (el. Childs, new_node);. Nodes. Add (new_node);

}

}

Листинг 4.8

Ще однією основною функцією програми є функція пошуку, після виникнення події toolStripButton1_Click головної форми програми, яка після перевірки на наявність тексту пошуку викликається форма Результатів пошуку, в якій відразу ж відбувається виклик методу do_search (лістинг 4.9), який у свою чергу викликає метод класу catalog do_search (лістинг 4.10) передаючи параметром шуканий текст.

void do_search (string search_text)

{. catalog cat = new catalog. catalog ();<Dictionary<string, string>> search_result = cat. do_search (search_text);(search_result. Count > 0)

{(int i = 0; i < search_result. Count; i++)

{. Items. Add (search_result [i] ["name"]);. Items [i]. SubItems. Add ( (Math. Round ( (float) (Convert. ToInt32 (search_result [i] ["size"])) / 1024,2)). ToString () + " Kb");path = search_result [i] ["disc_name"] + search_result [i] ["path"];. Items [i]. SubItems. Add (path);. Items [i]. SubItems. Add (search_result [i] ["comment"]);

}

}

}

Лістинг 4.9

List<Dictionary<string, string>> do_search (string search_str)

{<Dictionary<string, string>> result= new List<Dictionary<string, string>> ();_str = clean_words (search_str);[] search_text;[] separator = { " " };tag = search_str;_text = tag. Split (separator, StringSplitOptions. RemoveEmptyEntries);select = "SELECT * FROM files WHERE ";added_q = "";(int i = 0; i < search_text. Length; i++)

{(search_text [i]. Length > 2)

{(added_q. Length == 0)

{_q += " (name like '%" + search_text [i] + "%' OR comment like '%" + search_text [i] + "%')";

}

{_q += " OR (name like '%" + search_text [i] + "%' OR comment like '%" + search_text [i] + "%')";

}

}

}+= added_q + " ORDER by id ASC; ";(SQLiteConnection cn = new SQLiteConnection (connectionString))

{(SQLiteCommand cmd = cn. CreateCommand ())

{.commandText = select;.commandType = CommandType. Text;. Open ();dr = (SQLiteDataReader) cmd. ExecuteReader ();(dr. Read ())

{<string, string> file = new Dictionary<string, string> ();. Add ("name", dr ["name"]. ToString ());. Add ("id", dr ["id"]. ToString ());. Add ("catalog_id", dr ["catalog_id"]. ToString ());. Add ("path", dr ["path"]. ToString ());. Add ("comment", dr ["comment"]. ToString ());. Add ("size", dr ["size"]. ToString ());. Add ("disc_name", dr ["disc_name"]. ToString ());. Add (file);

}

}

}result;

}

Листинг 4.10

Відразу після виклику методу do_search класу catalog відбувається очищення тексту від службових спецсимволів, розділового і деяких слів знаків за допомогою приватного методу класу search clean_words який приведений на лістингу 4.11

string clean_words (string value)

{[] drop_char = { "^", "$", "&", " (", ")", "<", ">", "`", "\\", "\"", "|", ",", "@", "_", "?", "%", "-", "~", "+",".", " [", "]", "{", "}", ":", "\\", "/", "=", "#", "\"", ";", "!" };[] drop_words = { "a", "the", "of", "and", "or", "for", "this" };(int i = 0; i < drop_char. Length; i++)

{= value. Replace (drop_char [i], "");

}value;

}

5. Економічне обґрунтування доцільності розробки програмного продукту


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

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

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

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

В розробці користуємося середою програмування Microsoft Visual Studio 2005. База даних реалізована в форматі SQLitе. Використані при розробці інструментальні засоби є безкоштовними.

Необхідні для розробки програмного продукту засоби обчислювальної техніки: персональна ЕОМ на базі процесора Pentium IV с тактовою частотою 2,1 Мгц, 512 Мб оперативної пам’яті, HDD 40 Гб, дисковод для компакт-дисків 4-х швидкісний.

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

·        ПК типу IBM PC або сумісний з ним, продуктивністю не менше 166 МГц;

·        Оперативна пам'ять не менше 32 МГбайт;

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

·        НЖМД не менше 4,3 Гбайт;

·        НГМД 3,5 дюйми;

·        Компакт-дисковий носій (CD);

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

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


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

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

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

витрати на оплату машинного часу, затраченого при розробці програми.

Витрати на оплату праці розроблювачів програми

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

, де

Зрозр - середньо-годинна оплата програміста,розр. - трудомісткість створення програми, що містить у собі витрати праці на наступні дії:

·        Знайомство з проблемою й визначення шляхів її вирішення;

·        Розробка структури інформаційної системи;

·        Розробка моделі бази даних "Деканат";

·        Розробка програмного продукту "Деканат";

·        Налагодження програми на ПК;

·        Підготовка документації по задачі.

Витрачений час на вирішення поставленої задачі розрахуємо за календарним планом виконання робіт (табл.5.1)

Таблиця 5.1

Календарний план виконання робіт по створенню програми

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

 Кількість затрачених годин

Знайомство з проблемою і визначення шляхів її вирішення

35

Розробка структури інформаційної системи

50

Розробка моделі бази даних

25

Розробка програмного продукту

75

Налагодження програми на ПК

3

Підготовка документації по програмному забезпеченню

25


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

розр. = tпробл. + tстр. + tмод. + tпрогр. + tнал. + ttдок, де

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

розр. = 35+50+25+75+5+25 = 213 [люд. /годин]

Для визначення середньої годинної оплати програміста необхідно спочатку визначити його річний фонд грошового забезпечення. Це можна зробити, знаючи місячне грошове забезпечення програміста. Воно складає приблизно 1200,00 гривень. Крім того він отримує раз на рік матеріальну допомогу на оздоровлення в розмірі 360 гривень та щомісячну премію в розмірі 420 гривень.

Таким чином, річний фонд грошового забезпечення програміста складає 19 800 гривень.

Нарахування на ФОП:

.        Безробіття 1,3%

2.       Пенсійний фонд 33,2%

.        Соцзабезпечення тимчасової непрацездатності 1,5%

.        Соцзабезпечення від нещасних випадків 1,16%

Підсумок: 37,16%

Далі визначимо число робочих годин у році, за формулою:

(p) = (N - N (п) - N (в)) * 8 - N (н/д), де

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

Число святкових днів у році - 10, вихідних - 104, зменшених на годину - 6. Отже, число робочих годин у році дорівнює:

(p) = (365 - 10 - 104) * 8 - 6 = 2002 [години]

Середньо годинна оплата програміста визначається співвідношенням:

Срозр. = ФЗПсн / n (p), де

ФЗПсн - річний фонд грошового забезпечення,

Срозр. = 19800/2002 = 9,89 [гривень]

Отже, витрати на оплату праці (Зрозр.) розроблювачів програми складають:

Зрозр. = 213 * 9,89 = 2106,57 [гривень]

Зрозр. нарах. = 2106,57 + 2106,57 * 37,16% = 2889,37 [гривень]

 

5.2 Витрати, пов'язані з розробкою програми на ПК


Витрати, пов'язані з розробкою програми на ПК, визначаються, як добуток години використання ПК для розробки програми на собівартість машинного часу обчислювальної техніки. Собівартість (СПК) однієї години роботи ПК дорівнює відношенню річних поточних витрат на експлуатацію ПК (ЗгПК) до річного фонду годин (ТгПК) корисної роботи ПК.

СПК = ЗгПК / ТгПК

Розрахунок річного фонду тривалості робочого часу ПК (у годинах)

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

ТгПК = n (p) - (6 * 8 + 5 * 12),

ТгПК = 2002 - (6 * 8 + 5 * 12) = 1894 [години]

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

ЗгПК = ЗгАМ + ЗгЭЛ + ЗгРЕМ + ЗгМАТ + ЗгДР, де

ЗгАМ - річні відрахування на амортизацію,

ЗгЭЛ - річні витрати на електроенергію для ПК,

ЗгРЕМ - річні витрати на ремонт ПК,

ЗгМАТ - річні витрати на додаткові комплектуючі ПК,

ЗгДР - інші витрати.

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

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

Заключний етап в нарахуванні податкової амортизації - це щоквартальний розрахунок суми амортизації. Норми амортизації встановлені у відсотках до балансової вартості 4 групи основних фондів складає 60% на рік, так як нарахування амортизації відбувається щоквартально, то норма амортизаційних відрахувань у квартал складає (60% / 4) = 15%.

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

ЗгАМ = ЦПК * НА, де

ЦПК - балансова вартість ПК,

НА - норма амортизаційних відрахувань, що дорівнює 15% (у квартал).

Балансова вартість ПК:

Цпк = Цр * (1+ Кун), де

Цр - ринкова вартість ПК,

Кун - коефіцієнт, що враховує витрати на установку й налагодження, рівний 12%.

Ринковою вартістю ПК, будемо вважати ту вартість до якої входить повна комплектація ПК, вона становитиме 5000 грн.

Цпк = 5000 * (1 + 0.12) = 5500 [гривень], 1кв. = 5500 * 0,15 = 825 [гривень], 2кв. = (5500 - 825) * 0.15 = 701,25 [гривень],

кв. = (5500 - 825 - 701,25) * 0.15 = 596,06 [гривень],

кв. = (5500 - 825 - 701,25 - 596,06) * 0,15 = 506,65 [гривень],

ЗгАМ = 825 + 701,25 + 596,06 + 506,65 = 2628,96 [гривень]

Витрати на електроенергію, споживану ПК

Витрати на електроенергію, затрачену ПК, визначаються за формулою:

ЗгЭЛ = РчПК * ТгПК * ЦЭЛ * А, де

чПК - потужність ПК (PчПК = 0.3 [кВт.]),

ТгПК - річний фонд корисного часу роботи машини,

ЦЭЛ - вартість 1 квт/годину електроенергії (ЦЭЛ = 0,24 [грн.]),

А - коефіцієнт інтенсивного використання ПК (0.9 - 1).

Таким чином, кількість витрат на електроенергію, споживану ПК, складає:

ЗгЭЛ = 0.3 * 1894 * 0,24 * 1.0 = 136,37 [гривень]

Витрати на поточний і профілактичний ремонт

Витрати на поточний і профілактичний ремонт приймаються рівними 6% від вартості ПК:

ЗгРЕМ = ЦПК * 0.06,ЗгРЕМ = 5500* 0.06 = 330 [гривень]

Витрати на матеріали

Витрати на матеріали - витрати, необхідні для забезпечення експлуатації ПК, приймаються рівними 2% від вартості ПК.

ЗгМАТ = ЦПК * 2%,

ЗгМАТ = 5500 * 0.02 = 110 [гривень]

Непрямі витрати.

Непрямі витрати, пов'язані з експлуатацією ПК, приймаються рівними 5 - 10% вартості ПК.

ЗгДР = ЦПК * 5%,

ЗгДР = 5500 * 0.05 = 275 [гривень]

Повні витрати на експлуатацію ПК

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

ЗгПК= 2628,96 + 136,37 + 330 + 110 + 275 = 3480,33 [гривень]

Собівартість однієї години роботи машини (CПК) складає:

СПК = 3459,45/1894 =1,83 [гривень]

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

У ході розробки програмного комплексу машина використовувалася на етапах програмування:

·        написання програми за готовою схемою алгоритму;

·        налагодження програми на ПК;

·        підготовки документації по задачі.

Таким чином, витрати машинного часу склали (tмаш):

маш = tпрог. + tотл. + tдок,маш = 75 + 3 + 25 = 103 [чол. /часів]

Витрати на оплату машинного часу можна розрахувати за формулою:

Змаш = tмаш * СПК,

Змаш = 103* 1,83 = 188,49 [гривень]

Загальні витрати на створення програмного комплексу

Зразом = З розр. + З маш,

Зразом = 2889,37 + 188,49 = 3077,86 [гривень]

5.3 Визначення планованої економії від упровадження програмного продукту


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

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

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

Таблиця 5.2

Річний фонд заробітної плати двох штатних одиниць

З/П до автоматизації

Кількість чоловік

Премія 40% та рай. Коєф.15%, грн.

Всього З/П за рік, грн.

Працівник 1

1

1000

610

 (1000*12+610*12) = 19320

Працівник 2

1

1000

610

 (1000*12+610*12) = 19320

Відрахування на ФОП

2

19320 + 19320 = 38640

37,16%

14358,624

ВСЬОГО:

 

 

 

52998,62


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

Е = Зразом_прац - Зразом - ЗгПК, де

Зразом_прац - річний фонд заробітної плати 1-го працівника,

Зразом - загальні витрати на створення програмного комплексу,

ЗгПК - повні витрати на експлуатацію ПК протягом року.

Е = 26499,31 - 3077,86 - 3480,33 = 19941,12 [гривень]

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


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

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

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

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

 

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


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

Робоче місце, устатковане відео-терміналом, забезпечується:

. належними умовами освітлення приміщення й робочого місця, відсутністю відблисків;

. відповідністю оптимальних параметрів мікроклімату;

. належними ергономічними характеристиками основних елементів робочого місця.

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

Відповідно діючим нормативним документам площа приміщення 13,0 мІ; об’єм - 20 мі. Стіна, стеля, підлога приміщення виготовляються з матеріалів, дозволених для оформлення приміщень санітарно-епідеміологічним наглядом. Підлога приміщення вкрита діелектричним килимком, випробуваним на електричну міцність.

Висота робочої поверхні столу для відео-терміналу - 690 мм, ширина повинна забезпечувати можливість виконання операцій в зоні досягнення моторного ходу; висота столу 725 мм, ширина 800 мм, глибина 900 мм. Простір для ніг: висота 600 мм, ширина 500 мм, глибина на рівні колін 500 мм, на рівні витягнутої ноги 650 мм.

Ширина й глибина сидіння 400 мм, висота поверхні сидіння 450 мм, кут нахилу поверхні від 15є вперед до 5є назад. Поверхня сидіння плоска, передній край закруглений.

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

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

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

6.1.1 Електромагнітне випромінювання

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

Джерелами випромінювання електромагнітних полів (ЕМП) в ПЕОМ є система відхилення випромінювання монітору, а також елементи блоків живлення системного модуля, монітору, принтера.

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

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

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

 

6.1.2 Рентгенівське випромінювання

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

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

6.1.3 Підвищений рівень шуму

При роботі на ПЕОМ людина наражається на шумовий вплив з боку багатьох джерел, наприклад, шум викликаний роботою принтера (70 дБ), вентиляторів і кондиціонерів (до 100 дБ).

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

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

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

 

6.1.4 Мікроклімат

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

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

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

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

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

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

До систем центрального опалення відносять водяне, парове, панельне, повітряне, комбіноване.

 

6.1.5 Освітлення

Значення освітлення в процесі життєдіяльності і особливо виробничої діяльності сучасного суспільства величезне.

Організація раціонального освітлення робочих місць - одне з основних питань охорони праці.


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

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

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

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

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


Штучне освітлення

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

По функціональному призначенню штучне освітлення підрозділяють на робоче, аварійне, евакуаційне, охоронне, чергове. Робоче освітлення забезпечує зорові умови нормальний роботи, проходу людей і руху транспорту. Аварійне освітлення влаштовують для продовження роботи при раптовому відключенні робочого освітлення. При цьому нормована освітленість повинна складати 5 % від робочого освітлення. Евакуаційне освітлення передбачається для евакуації людей з приміщень при аваріях в місцях, небезпечних для проходу людей, на сходових клітках (повинно бути в приміщеннях не менше 0,5, а на відкритих територіях - не менше 0,2 лк).

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

Штучне освітлення може бути загальним (рівномірним або локалізованим) і комбінованим (до загального додається місцеве). Застосування тільки місцевого освітлення забороняється.

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

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

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

 

6.1.6 Психофізіологічні шкідливі і небезпечні виробничі чинники

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

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

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

 

6.2 Організаційні і технічні заходи по зменшенню рівня шкідливих виробничих чинників

 

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

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

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

 

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

Гранично допустимі рівні напруги дотику і струмів при експлуатації і ремонті обладнання забезпечені:

― застосуванням малої напруги;

― ізоляцією струмоведучих мереж;

― обґрунтуванням і оптимальним вибором елементної бази, що виключає передумови поразки електричним струмом;

― правильного компонування, монтажу приладів і елементів;

― дотриманням умов безпеки при настанові і заміні приладів і інше.

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

― застосування захисного заземлення або обнуління;

― ізоляцією струмопровідних частин;

― дотриманням умов безпеки при настанові і заміні агрегатів;

― надійним контактним сполученням з урахуванням перепаду кліматичних параметрів.

 

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

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

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

 

6.2.4 Захист від шуму

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

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

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

В якості засобів звукопоглинання застосовуються не горючі або тяжко горючі спеціальні перфоровані плити, панелі, мінеральна вата з максимальним коефіцієнтом поглинання в межах частот 31.5-8000 Гц.

 

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

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

В холодні періоди року температура повітря, швидкість його руху і відносна вологість повітря відповідно складають: 22-24 С°; 0,1 м/с; 40-60%; в теплі періоди року температура повітря - 23-25 Сє; відносна вологість 40-60 %; швидкість руху повітря - 0,1 м/с.

Витяжні отвори розташовані у стелі.

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

Електронно-променеві трубки, магнетрони, тиратрони та інші електровакуумні прилади, що працюють при напрузі вище 6 кВ, є джерелами "м’якого" рентгенівського випромінювання.

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

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

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

В якості засобів захисту від чинності м’яких рентгенівських променів застосовуються екрани з сталевого листа (0,5-1 мм) або алюмінію (3 мм), спеціальної гуми.

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

 

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

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

Раціональне освітлення відповідає ряду вимог:

достатнє, щоб очі без напруги могли розрізняти деталі;

постійна напруга в мережі не коливається більше ніж на 4%;

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

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

не викликає різких тіней на робочих місцях.

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

― вибрати тип джерела світла - рекомендуються газорозрядні лампи, за винятком місць, де температура повітря може бути менш +5° З і напруга в мережі падати нижче 90 % номінального, а також місцевого освітлення (у цих випадках застосовуються лампи розжарювання);

― визначити систему освітлення (загальна локалізована або рівномірна, комбінована);

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

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

― визначити норму освітленості на робочому місці.

Для розрахунку штучного освітлення використовують в основному три методи.

Найчастіше її розраховують по світловому потоку.

Для цього визначається світловий потік кожної лампи по нормуючій мінімальній горизонтальній освітленості Еmin (лк) з вираження:

= (Emin·S·K·z) / n1·n·N,

де F - світловий потік лампи в світильнику, лм;- площа приміщення, м2;- коефіцієнт запасу;- коефіцієнт нерівномірного освітлення;- коефіцієнт використання світлового потоку;- кількість ламп в світильнику;- число світильників.

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

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

Показник приміщення fi визначається з виразу:

= А·В/Нр· (А+В),

де А і В - довжина і ширина освітленого приміщення, м;

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

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

=Emin·S·K·z/F·n1·n

Поділивши число світильників N на число вибраних рядів світильників, визначають число світильників у кожному ряду.

Нехай зал має розміри А=8м, В=5м, h=3м, стеля обладнується світильниками Л201Б з люмінесцентними лампами ЛБ80, технічні характеристики ламп і світильників наведені в таблицях 6.1., 6.2 (згідно з ГОСТом 6825-74).

Таблиця 6.1

Тип

Потужність, Вт

Напруга, В

Світловий потік (номін.)

Довжина, мм

Діаметр, мм

ЛБ80

80

110

5220

1500

40


Таблиця 6.2

Серія

Модифікація

Кількість* потужність, шт, Вт

Розміри, мм

Номер групи

Прим.




Довжина

Ширина

Висота



Л201Б

3

2·8

1575

354

127

9

Стеля


Рівень робітничої поверхні над полом 0,8 м, при цьому Нр=2,2 м.

Показник приміщення рівний:

=40/2,2 (8+5) =1,3986

По довіднику визначаємо значення коефіцієнта n1 (для значень Рс=0,5, Рп=0,3): n1=0,7. Значення коефіцієнта нерівномірного освітлення приймаємо рівним 1,1, а коефіцієнта запасу - 1,5. При загальному типі освітлення значення Emin=400 лк.

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

=400· 8· 5 ·1,5· 1,1/5220· 0,7· 2=3 (штук)

Загальна потужність освітлювальної установки рівна:

Р=2· 80 · 3=480 (Вт)

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

 

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

 

6.3.1 Пожежна і вибухова безпека в робочій зоні технічного обслуговування в приміщеннях з ПЕОМ

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

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

В зв’язку з цим можна виділити ряд заходів для пожежебезпеки:

― не палити і не використовувати нагрівальні прилади в приміщеннях з ПЕОМ;

― не від’єднувати і не приєднувати кабелі, усувати несправності за наявності напруги в мережі;

― не визначати наявність напруги в ланцюзі, замиканням клем.

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

Для виявлення пожеж в приміщенні встановлені датчики, що спрацьовують при появі диму, підвищенні температури і відкритого вогню.

Технологічні об’ємні підлоги виконуються з негорючих або тяжко горючих матеріалів з межею вогнестійкості не менше 0,5г. Підпільні простори під об’ємними підлогами відділяють негорючими перегородками з межею вогнестійкості не менше 0,75 г на ділянки площею не більш 250 м2.

В кожній кімнаті знаходяться вогнегасники. Вони діляться на хімічні, пінні, повітряно-пінні, СО2 - вогнегасники і порошкові.

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

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

Первинні засоби пожежегасіння: ручні вогнегасники в кількості 2 шт.

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

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

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

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

Висновки


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

·        покращити ефективність роботи;

·        підвищити оперативність обробки інформації;

·        зменшити обсяг паперових носіїв;

·        підвищити оперативність та точність роботи.

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

Щоб реалізувати поставлену задачу потрібно було обрати оптимальну мову програмування. Як мова програмування для реалізації поставленого завдання була обрана С#, як середовище розробки Microsoft Visual C# 8.0 Express Edition. Середовище розробки Microsoft Visual C# 8.0 Express Edition, не дивлячись на безкоштовність, надає всі необхідні засоби для розробки запланованого функціонала, при цьому спростивши створення як інтерфейсу користувача, так і реалізацію функціонально-інструментальної частини програми. Використані при розробці програмні продукти є безкоштовними і тому впровадження розробленого програмного продукту є економічно ефективним.

Якщо сказати, що мова С# і пов'язана з ним середа.net Framework є одній з найважливіших технологій для розробників за багато років, це не буде перебільшенням.net спроектована як нова середа, в рамках якої можна розробити практично будь-яке застосування для Windows, тоді як С# - нова мова програмування, призначена спеціально для роботи з.net. За допомогою С# можливо, наприклад, створити динамічну Web-сторінку, Web-службу XML, компонент розподіленого застосування, компонент доступу до бази даних, класичний настільний додаток Windows або навіть інтелектуальне клієнтське програмне забезпечення, що має засоби онлайнової і автономної роботи.

Список літератури


1.       Алексей В. Технология XSLT. - BHV - Санкт-Петербург. - 544 с.

2.       Алексей Дубовцев. Microsoft.net в подлинеке. - БВХ-Петербург, 2004. - 704с.

.        Джеффри Рихтер. Программирование на платформе Microsoft.net Framework. - М: Русская Редакция, 2002. - 512 с.

.        Иан Грэхем. Объектно ориентированные методы. - М.: Издательский дом "Вильямс", 2004. - 800 с.

.        Кент Бек. Экстремальное программировнаие. - Питер, 2002. - 224 с.

.        Кристиан Нейлгел, Билл Ивьен, Джей Глинн, Карли Уотсон, Морган Скиннер, Аллен Джонс. С# 2005 для профессионалов. - М.: Издательский дом "Вильямс", 2006. - 1376 с.

.        Мартин Ф. Архитектура корпоративных программных приложений. - М.: Издательский дом "Вильямс", 2004. - 544 с.

.        Мартин Фаулер. Архитектура Корпоративных программных приложений. - М.: Издательский дом "Вильямс", 2004. - 544 с.

.        Ричард Стивенс. Протоколы TCP/IP. Практическое руководство. - BHV - Санкт-Петербург, 2003. - 672 с.

.        Сидни Фейт. TCP/IP. Архитектура, протоколы, реализация. - Лори, 2000. - 424 с.

.        Симон Робинсон, Олли Корнес, Джей Глинн. С# для профессионалов. - М: Лори, 2003. - 1002 с.

.        Таненбаум.Э. Компьютерные сети. - Питер, 2007. - 992 с.

.        Том Арчер. Основы С#. - М.: Русская Редакция, 2002. - 448 с.

.        Филимонов А. Построение мультисервисных сетей Ethernet. - БВХ-Петербург, 2007. - 592 с.

.        Эндрю Троелсен. Язык программирования С# 2005 и платформа.net 2.0. - М.: Издательский дом "Вильямс", 2007. - 1167 с.

.        Эрик Аллен. Типичные ошибки проектирования. - Питер, 2003. - 224 с.

.        Эрик Гуннерсон. Введение в C#. - Питер, 2001. - 304 с.

18.     <http://www.rsdn.ru>

.        <http://www>. citforum.ru

.        http://www.msdn. microsoft.com

.        http://www.opennet.ru

.        http://www.gotdotnet.com

.        http://www.gotdotnet.ru

.        http://www.openxmldeveloper. ord <http://www.openxmldeveloper.ord>

.        <http://www>. Dotnetgrains.ru

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!