Розробка гнучкої локальної системи для прискореного пошуку файлів
У додатках Delphi для виконання операторів SQL можна використовувати набір даних Query. Нагадаємо, що текст SQL-запиту є значенням властивості sql компонента Query і формується при розробці додатка, чи під час його виконання. Компонент Query забезпечує виконання SQL-запиту й одержання відповідного набору даних. Формування набору даних виконується при активізації компонента Query шляхом виклику… Читати ще >
Розробка гнучкої локальної системи для прискореного пошуку файлів (реферат, курсова, диплом, контрольна)
Міністерство освіти та науки України Криворізький інститут Кременчуцького університету економіки, інформаційних технологій та управління Кафедра Технічної кібернетики ДИПЛОМНА РОБОТА зі спеціальності
7.91 402 «Гнучкі комп’ютеризовані системи та робототехніка»
ПОЯСНЮВАЛЬНА ЗАПИСКА
«Розробка гнучкої локальної системи для прискореного пошуку файлів»
Студента групи ГКС-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. Проте це зробити дуже важко.
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 для клієнта СОМ:
Dim с 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.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.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 чи
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». Якщо ім'я не містить пробілів і інших спеціальних символів, то апострофи можна не вказувати.