Сучасні технологічні засоби обробки інформації 5.1. Гіпертекстова технологія Типовим прикладом використанням гіпертекстової технології є мови HTML і XML, які використовуються при розміиці сторінок, які ми бачимо в Internet. Нижче приведено їх опис. Мова HTML HTML (Hypertext Markup Language) — це проста мова розмітки гіпертексту (тобто формат даних), використовуваний у Web. Формат HTML дозволяє представити цілий ряд гіпертекстових документів. Звичайно, HTML-файли — статичні документи. Використовуючи шлюзи (див. нижче роздягнув «Інтерфейс CGI»), у форматі HTML можна відобразити динамічну інформацію, наприклад, вибірку з баз даних. HTML — спрощена версія узагальненої мови SGML (Standard Generalized Markup Language), формально визначальну структуру документів. Мова HTML проста, але досить могутній для представлення більшості документів загального призначення. У полях, що описують тип умісту, формат HTML позначається типом text/html. Базову основу Web складають HTML-документи з гіперпосиланнями (у виді URL), передані по протоколі HTTP. Ранні версії HTML описувалися неформально. Першим формально описаним і широко підтримуваним стала мова HTML версії 2.0. Наступна версія — HTML 3.2 — також одержала широку підтримку, Зовсім недавно вийшла версія HTML 4.0. От найбільш значні розходження між версіями 3.0 і 4.0: • стандартизовані таблиці стилів; • підтримка двунаправленої писемності; • удосконалені фрейми; • удосконалені таблиці; • підтримка математичних символів; • підтримка додаткових можливостей для інвалідів (озвучування і читання наосліп).
Теги Для опису і розмітки документів у мові HTML застосовують тега (tags) — вони дозволяють створювати заголовки, абзаци, списки, гіперпосилання і форматувати символи. Теги не чуттєві до регістра символів. Більшість тегів HTML використовуються парами, причому кожна пара складається з відкриваючого і замикаючого тегів. Відкриваючий виділяєтся символами “<” і “>”. Закриваючий — символами «</» і «>)>' Наприклад, для того щоб представити текст “Foo” жирним шрифті 14 використовується пара тегів <У> і </У>: <B>Foo</B> Деякі теги бувають тільки відкриваючими. Так, Для примусового перекладу рядка відразу за текстом “Bar” можна використовувати тег <BR> Bar<BR> Деякі теги не можуть бути вкладеними. у HTML-документах припустимі коментарі. Вони полягають між “<!--“ і “-->”. Структура документа Усі HTML-документи мають формальну структуру, вона проілюстрована в наступному прикладі. <DOCTYPE HTML PUBLIC "—//W3C//DTD HTHL 3.2 Flnal//EN"> <HTML> <HEAD> <TITLE> <!-- Заголовок документа --> </TITLE> <!-- Інші заголовки —> </HEAD> <BODY> <!-- Тіло документа --> </BODY> </HTML> Документи HTML версії 3.2 використовують заголовок <!DOCTYPE>. Весь документ обмежений парою тегів <HTML> і </HTML>. Позначка-дані документа, у тому числі пари тегів <TITLE> і </TITLE>, полягають між тегами <HEAD> і </HEAD>, дані документа — між <BODY> і </BODY>. Мова XML Мова XML (Extensible Markup Language) — це технологія, що розвивається під патронажем консорціуму W3C. Мова XML доповнює HTML і заснований мовою SGML (Standard Generalized Markup Language). У той час як HTML описує набір команд, що визначають розташування даних на сторінці, мова XML дозволяє описати дані HTML-сторінки за допомогою типів інформації, що представляється. Прямим наслідком цього стало те, що пошукові машини повертають більш осмислену інформацію. Наприклад, використовуючи XML, пошукова машина в стані визначити, коли слово “cookie” на HTML-сторінці відноситься до Інтернету, а коли до солодкого десерту. За допомогою XML браузери здатні однократно завантажувати HTML-сторінку, а потім працювати з нею автономно, не звертаючи до сервера. Клієнт вправі будь-яким образом переглядати дані і керувати ними. В ідеалі XML дозволить клієнту витягти з результату пошуку, наприклад, назва й адреса готелю, а потім завантажити ці зведення в картографічну програму для складання маршруту. Синтаксис XML Для кодування символів у XML використовується кодування Unicode. Це означає, що XML сполучимо з безліччю мов світу. Для передачі даних по каналах зв'язку разом з Unicode застосовують кілька видів перекодування. За замовчуванням XML задіє UTF-8 (Universal Transformation Format-8). (Подробиці про Unicode і UTF-8 — у главі 4.) На відміну від HTML, у мові XML мають значення регістр символів і відступи пробілами. Деякі символи в XML зарезервовані, наприклад “<” і “>” — обрамлення тегів. Ці символи в текстових рядках варто кодувати як “<” і “>” відповідно. Таким чином, рядок “25 > 24 і 25 < 26” кодується в XML як “25 > 24 і 25 < 26”. Синтаксис мови XML дуже схожий на синтаксис HTML і складається з послідовностей тегів, тексту і коментарів. Основна відмінність у тім, що теги XML, скоріше, характеризують те, що представляють дані, чим те, як їх варто представляти. Ще одна відмінність XML — потенційно необмежений набір тегів: користувач може визначати власні теги, у той час як у HTML вони фіксовані. Синтаксис мови XML представлений серією елементів, кожний з який складається з відкриваючого тега, змісту і закриваючого тега, наприклад: <PERSON> <LASTNAME>Gates</LASTNAME> <FIRSTNAME>Bill</FIRSTNAME> </PERSON> Тут елемент PERSON (людина) починається в першому рядку і закінчується в останній. Як видно з приклада, один елемент може містити вкладені інші елементи. Прості документи можуть містити самі себе і самі себе описувати. Складні документи описуються в зовнішньому DTD-файлі опису типу документа (Document Type Definition).
5.2. Мережні технології На даний час уявити собі аудиторію комп’ютерів без мережі важко, але процес їх стандартизації важкий, атому існують різні технології на базі яких вони створені. Нижче приведений їх огляд. Технологія Ethernet Ethernet — це найпоширеніший на сьогоднішній день стандарт локальних мереж. Загальна кількість мереж, що працюють по протоколі Ethernet у даний час, оцінюється в 5 мільйонів, а кількість комп'ютерів із установленими мережними адаптерами Ethernet — у 50 мільйонів. Коли говорять Ethernet, те під цим звичайно розуміють кожної з варіантів цієї технології. У більш вузькому змісті Ethernet — це мережний стандарт, заснований на експериментальній мережі Ethernet Network, що фірма Xerox розробила і реалізувала в 1975 році. Метод доступу був випробуваний ще раніш: у другій половині 60-х років у радіомережі Гавайського університету використовувалися різні варіанти випадкового доступу до загального радіосередовища, що одержали загальну назву Aloha. У 1980 році фірми DEC, Intel і Xerox спільно розробили й опублікували стандарт Ethernet версії II для мережі, побудованої на основі коаксіального кабелю, що став останньою версією фірмового стандарту Ethernet. Тому фірмову версію стандарту Ethernet називають стандартом Ethernet DIX чи Ethernet II. На основі стандарту Ethernet DIX був розроблений стандарт IEEE 802.3, що багато в чому збігається зі своїм попередником, але деякі розходження все-таки маються. У той час як у стандарті IEEE 802.3 розрізняються рівні MAC і LLC, в оригінальному Ethernet обох ці рівнів об'єднані в єдиний канальний рівень. У Ethernet DIX визначається протокол тестування конфігурації (Ethernet Configuration Test Protocol), що відсутній у IEEE 802.3. Трохи відрізняється і формат кадру, хоча мінімальні і максимальні розміри кадрів у цих стандартах збігаються. Часто для того, щоб відрізнити Ethernet, визначений стандартом IEEE, і фірмовий Ethernet DIX, перший називають технологією 802.3, а за фірмовим залишають назва Ethernet без додаткових позначень. У залежності від типу фізичного середовища стандарт IEEE 802.3 має різні модифікації - 10Base-5, 10Base-2, 10Base-T, 10Base-FL, 10Base-FB. У 1995 році був прийнятий стандарт Fast Ethernet, що багато в чому не є самостійним стандартом, про що говорить і той факт, що його опис простий є додатковим розділом до основного стандарту 802.3 — розділом 802.3u. (Аналогічно, прийнятий у 1998 році стандарт Gigabit Ethernet описаний у розділі j 802.3z основні документи. Для передачі двійкової інформації з кабелю для усіх варіантів фізичного рівня технології Ethernet, що забезпечують пропускну здатність 10 Мбіт/с, використовується манчестерський код. Усі види стандартів Ethernet (у тому числі Fast Ethernet і Gigabit Ethernet) використовують той самий метод поділу середовища передачі даних — метод CSMA/CD. Технологія Token Ring Мережі Token Ring, так само як і мережі Ethernet, характеризує поділюване середовище передачі даних, що у даному випадку складається з відрізків кабелю, що з'єднують усі станції мережі в кільце. Кільце розглядається як загальний поділюваний ресурс, і для доступу до нього потрібно не випадковий алгоритм, як у мережах Ethernet, а детермінований, заснований на передачі станціям права на використання кільця у визначеному порядку. Це право передається за допомогою кадру спеціального формату, називаного чи маркером токеном (token). Технологія Token Ring був розроблений компанією IBM у 1984 році, а потім передана як проект стандарту в комітет IEEE 802, що на її основі прийняв у 1985 році стандарт 802.5. Компанія IBM використовує технологію Token Ring у якості своєї основної мережної технології для побудови локальних мереж на основі комп'ютерів різних класів — мейнфреймів, міні-комп'ютерів і персональних комп'ютерів. В даний час саме компанія IBM є основним законодавцем моди технології Token Ring, роблячи близько 60 % мережних адаптерів цієї технології. Мережі Token Ring працюють із двома бітовими швидкостями — 4 і 16 Мбіт/с. Змішання станцій, що працюють на різних швидкостях, в одному кільці не допускається. Мережі Token Ring, що працюють зі швидкістю 16 Мбіт/с, мають деякі удосконалення в алгоритмі доступу в порівнянні зі стандартом 4 Мбіт/с. Технологія Token Ring є більш складною технологією, чим Ethernet. Вона має властивості відмовостійкості. У мережі Token Ring визначені процедури контролю роботи мережі, що використовують зворотний зв'язок кільцеподібної структури — посланий кадр завжди повертається в станція-відправник. У деяких випадках виявлені помилки в роботі мережі усуваються автоматично, наприклад може бути відновлений загублений маркер. В інших випадках помилки тільки фіксуються, а їхнє усунення виконується вручну обслуговуючим персоналом. Для контролю мережі одна зі станцій виконує роль так називаного активного монітора. Активний монітор вибирається під час ініціалізації кільця як станція з максимальним значенням Мас-адреса. Якщо активний монітор виходить з ладу, процедура ініціалізації кільця повторюється і вибирається новий активний монітор. Щоб мережа могла знайти відмовлення активного монітора, останній у працездатному стані кожні 3 секунди генерує спеціальний кадр своєї присутності. Якщо цей кадр не з'являється в мережі більш 7 секунд, то інші станції мережі починають процедуру виборів нового активного монітора. Fast Ethernet і 10OVG-AnyLAN як розвиток технології Ethernet Класичний 10-мегабітний Ethernet улаштовував більшість користувачів на протязі близько 15 років. Однак на початку 90-х років початку відчуватися його недостатня пропускна здатність. Для комп'ютерів на процесорах Intel80286 чи 80386 із шинами ISA (8 Мбайт/с) чи EISA (32 Мбайт/с) пропускна здатність сегмента Ethernet складала 1/8 чи 1/32 каналу «пам'ять-диск», і це добре узгоджувалося зі співвідношенням обсягів даних, оброблюваних локально, і даних, переданих по мережі. Для більш могутніх клієнтських станцій із шиною PCI (133 Мбайт/с) ця частка упала до 1/133, що було явно недостатньо. Тому багато сегментів 10-мегабітного Ethernet стали перевантаженими, реакція серверів у них значно упала, а частота виникнення колізій істотно зросла, ще більш знижуючи корисну пропускну здатність. Назріла необхідність у розробці «нового» Ethernet, тобто технології, що була б такому ж ефективної по співвідношенню ціна/якість при продуктивності 100 Мбіт/с. У результаті пошуків і досліджень фахівці розділилися на два табори, що зрештою привело до появи двох нових технологій — Fast Ethernet і lOOVG-AnyLAN. Вони відрізняються ступенем наступності з класичним Ethernet. У 1992 році група виробників мережного устаткування, включаючи таких лідерів технології Ethernet, як SynOptics, 3Com і ряд інших, утворили некомерційне об'єднання Fast Ethernet Alliance для розробки стандарту нової технології, що повинна була в максимально можливому ступені зберегти особливості технології Ethernet. Другий табір очолили компанії Hewlett-Packard і AT&T, що запропонували скористатися зручним випадком для усунення деяких відомих недоліків технології Ethernet. Через якийсь час до цих компаній приєдналася компанія IBM, що внесла свій внесок пропозицією забезпечити в новій технології деяку сумісність з мережами Token Ring. У комітеті 802 інституту IEEE у цей же час була сформована дослідницька група для вивчення технічного потенціалу нових високошвидкісних технологій. За період з кінця 1992 року і по кінець 1993 року група IEEE вивчила 100-мегабітні рішення, запропоновані різними виробниками. Поряд із пропозиціями Fast Ethernet Alliance група розглянула також і високошвидкісну технологію, запропоновану компаніями Hewlett-Packard і AT&T. У центрі дискусій була проблема збереження випадкового методу доступу CSMA/CD. Пропозиція Fast Ethernet Alliance зберігало цей метод і тим самим забезпечувало наступність і погодженість мереж 10 Мбіт/з і 100 Мбіт/с. Коаліція HP і AT&T, що мала підтримку значно меншого числа виробників у мережній індустрії, чим Fast Ethernet Alliance, запропонувала зовсім новий метод доступу, названий Demand Priority — пріоритетний доступ за вимогою. Він істотно змінював картину поводження вузлів у мережі, тому не зміг вписатися в технологію Ethernet і стандарт 802.3, і для його стандартизації був організований новий комітет IEEE 802.12. Восени 1995 року обидві технології стали стандартами IEEE. Комітет IEEE 802.3 прийняв специфікацію Fast Ethernet як стандарт 802.3і, що не є самостійним стандартом, а являє собою доповнення до існуючого стандарту 802.3 у виді глав з 21 по 30. Комітет 802.12 прийняв технологію lOOVG-AnyLAN, що використовує новий метод доступу Demand Priority і підтримує кадри двох форматів — Ethernet і Token Ring. Високошвидкісна технологія Gigabit Ethernet Досить швидко після появи на ринку продуктів Fast Ethernet мережні інтегратори й адміністратори відчули певні обмеження при побудові корпоративних мереж. У багатьох випадках сервери, підключені по 100-мегабітному каналі, перевантажували магістралі мереж, що працюють також на швидкості 100 Мбіт/с — магістралі FDDI і Fast Ethernet. Відчувалася потреба в наступному рівні ієрархії швидкостей. У 1995 році більш високий рівень швидкості могли надати тільки комутатори ATM, а при відсутності в той час зручних засобів міграції цієї технології в локальні мережі (хоча специфікація LА Emulation — LANE була прийнята на початку 1995 року, практична її реалізація була перед) упроваджувати їх у локальну мережу майже ніхто не зважувався. Крім того, технологія ATM відрізнялася дуже високим рівнем вартості. Тому логічним виглядав наступний крок, зроблений IEEE, — через 5 місяців після остаточного прийняття стандарту Fast Ethernet у червні 1995 року дослідницькій групі по вивченню високошвидкісних технологій IEEE було запропоновано зайнятися розглядом можливості вироблення стандарту Ethernet із ще більш високою бітовою швидкістю. Улітку 1996 року було оголошено про створення групи 802.3z для розробки протоколу, максимально подібного Ethernet, але з бітовою швидкістю 1000 Мбіт/с. живий випадку Fast Ethernet, повідомлення було сприйнято прихильниками Ethernet великим ентузіазмом. Основною причиною ентузіазму була перспектива такого ж плавного перекладу магістралей мереж на. Gigabit Ethernet, подібно тому, як були переведені на Fast Ethernet перевантажені сегменти Ethernet, розташовані на нижніх рівнях ієрархії мережі. До того ж досвід передачі даних на гігабітних швидкостях уже дівся, як у територіальних мережах (технологія SDH), так і в локальних —технологія Fibre Channel, що використовується в основному для підключення високошвидкісної периферії до великих комп'ютерів і передає дані по волоконно-оптичному кабелі зі швидкістю, близької до гігабітної, за допомогою надлишкового коду 8В/10В. В утворений для узгодження зусиль у цій області Gigabit Ethernet Alliance : самого початку ввійшли такі флагмани галузі, як Bay Networks, Cisco Systems і 3Com. За рік свого існування кількість учасників Gigabit Ethernet Alliance істотно виросло і нараховує зараз більш 100. Як перший варіант фізичного рівня був прийнятий рівень технології Fiber Channel, з її кодом 8В/10В (як і у випадку Fast Ethernet, коли для прискорення робіт був прийнятий відпрацьований фізичний рівень FDDI). Перша версія стандарту була розглянута в січні 1997 року, а остаточно стандарт 802.3z був прийнятий 29 червня 1998 року на засіданні комітету IEEE 802.3. Роботи з реалізації Gigabit Ethernet на кручений парі категорії 5 були передані спеціальному комітету 802.Заb, що вже розглянув кілька варіантів проекту цього стандарту, причому з липня 1998 року проект придбав досить стабільний характер. Остаточне прийняття стандарту 802.Заb очікується у вересні 1999 року. Не чекаючи прийняття стандарту, деякі компанії випустили перше устаткування Gigabit Ethernet на оптоволоконному кабелі вже до лету 1997 року. Основна ідея розроблювачів стандарту Gigabit Ethernet складається в максимальному збереженні ідей класичної технології Ethernet при досягненні бітової швидкості в 1000 Мбіт/с. Тому що при розробці нової технології природно очікувати деяких технічних новинок, що йдуть у загальному руслі розвитку мережних технологій, те важливо відзначити, що Gigabit Ethernet, так само як і його менш швидкісні побратими, на рівні протоколу не буде підтримувати: • якість обслуговування; • надлишкові зв'язки; • тестування працездатності вузлів і устаткування (в останньому випадку — за виключенням тестування зв'язку порт — порт, як це робиться для Ethernet 10Base-T і 10Base-F і Fast Ethernet). Усі три названих властивості вважаються дуже перспективними і корисними в сучасних мережах, а особливо в мережах найближчого майбутнього. Чому ж автори Gigabit Ethernet відмовляються від них? З приводу якості обслуговування коротко можна відповісти так: «сила є — розуму не треба». Якщо магістраль мережі буде працювати зі швидкістю в 20 000 разів перевищуючої середню швидкість мережної активності клієнтського комп'ютера й у 100 разів перевищуючої середню мережну активність сервера з мережним адаптером 100 Мбіт/c, то про затримки пакетах на магістралі в багатьох випадках можна не піклуватися взагалі. При невеликому коефіцієнті завантаження магістралі 1000 Мбіт/с черги в комутаторах Gigabit Ethernet будуть невеликими, а час буферизації і комутації на такій швидкості складає одиниці і навіть частки мікросекунд. Ну а якщо все-таки магістраль завантажиться на достатню величину, то пріоритет чуттєвому до чи затримок вимогливому до середньої швидкості графіку Можна надати за допомогою техніки пріоритетів у комутаторах — відповідні стандарти для комутаторів уже прийняті (вони будуть розглядатися в наступній главі). Зате можна буде користатися дуже простий (майже як Ethernet) технологією, принципи роботи якої відомі практично всім мережним фахівцям. Головна ідея розроблювачів технології Gigabit Ethernet полягає в тому, що існує і буде існувати дуже багато мереж, у яких висока швидкість магістралі і можливість призначення пакетам пріоритетів у комутаторах будуть цілком достатні для забезпечення якості транспортного обслуговування всіх клієнтів мережі. І тільки в тих рідких випадках, коли і магістраль досить завантажена, і вимоги до якості обслуговування дуже тверді, потрібно застосовувати технологію ATM, що дійсно за рахунок високої технічної складності дає гарантії якості обслуговування для всіх основних видів графіка. Надлишкові зв'язки і тестування устаткування не будуть підтримуватися технологією Gigabit Ethernet через те, що з цими задачами добре справляються протоколи більш високих рівнів, наприклад Spanning Tree, протоколи маршрутизації і т.п. Тому розроблювачі технології вирішили, що нижній рівень просто повинний швидко передавати дані, а більш складні і більш що рідко зустрічаються задачі (наприклад, пріоритезація графіка) повинні передаватися верхнім рівням. Що ж загального мається в технології Gigabit Ethernet у порівнянні з технологіями Ethernet і Fast Ethernet? - зберігаються усі формати кадрів Ethernet. - як і раніше будуть існувати напівдуплексна версія протоколу, що підтримує метод доступу CSMA/CD, і полнодуплексная версія, що працює з комутаторами. З приводу збереження напівдуплексної версії протоколу сумніву були ще в розроблювачів Fast Ethernet, тому що складно змусити працювати алгоритм CSMA/CD на високих швидкостях. Однак метод доступу залишився незмінним у технології Fast Ethernet, і його вирішили залишити в новій технології Gigabit Ethernet. Збереження недорогого рішення для поділюваних середовищ дозволить застосувати Gigabit Ethernet у невеликих робочих групах, що мають швидкі сервери і робітники станції. підтримуються всі основні види кабелів, використовуваних у Ethernet і Fast Ethernet: волоконно-оптичний, крученої пари категорії 5, коаксіал. Проте розроблювачам технології Gigabit Ethernet для збереження приведених вище властивостей довелося внести зміни не тільки у фізичний рівень, як це було у випадку Fast Ethernet, але й у рівень MAC. Перед розроблювачами стандарту Gigabit Ethernet стояло трохи важко розв'язних проблем. Однієї з них була задача забезпечення прийнятного діаметра мережі для напівдуплексного режиму роботи. У зв'язку з обмеженнями, що накладаються методом CSMA/CD на довжину кабелю, версія Gigabit Ethernet для поділюваного середовища допускала би довжину сегмента усього в 25 метрів при збереженні розміру кадрів і всіх параметрів методу CSMA/CD незмінними. Тому що існує велика кількість застосувань, коли потрібно підвищити діаметр мережі хоча б до 200 метрів, необхідно було якимсь образом вирішити цю задачу за рахунок мінімальних змін у технології Fast Ethernet. Іншою складнішою задачею було досягнення бітової швидкості 1000 Мбіт/с на основних типах кабелів. Навіть для оптоволокна досягнення такої швидкості представляє деякі проблеми, тому що технологія Fibre Channel, фізичний рівень якої був узятий за основу для оптоволоконої версії Gigabit Ethernet, забезпечує швидкість передачі даних усього в 800 Мбіт/с (бітова швидкість на лінії дорівнює в цьому випадку приблизно 1000 Мбіт/с, але при методі кодування 8Б/10В корисна бітова швидкість на 25 % менше швидкості імпульсів на лінії). І нарешті, сама складна задача — підтримка кабелю на кручений парі. Така задача на перший погляд здається нерозв'язною — адже навіть для 100-мегабітних протоколів довелося використовувати досить складні методи кодування, щоб укласти спектр сигналу в смугу пропущення кабелю. Однак успіхи фахівців з кодування, що проявилися останнім часом у нових стандартах модемів, показали, що задача має шанси на рішення. Щоб не гальмувати прийняття основної версії стандарту Gigabit Ethernet, що використовує оптоволокно і коаксиіл, був створений окремий комітет 802-3аb, що займається розробкою стандарту Gigabit Ethernet на кручений парі категорії 5. Усі ці задачі були успішно вирішені.
5.3. Структурована мова запитів Взагалі структурована мова запитів для мене асоціюється з SQL, тому нижче приведено перевани данох мови. Ріст кількості даних, необхідність їх зберігати й обробляти привели до того, що виникла потреба в створенні стандартної мови БД, що міг би функціонувати у великій кількості різних видів комп'ютерних систем. Дійсно, така стандартна мова дозволяє користувачам маніпулювати даними незалежно від того, чи працюють вони на персональному комп'ютері, мережної робочої станції, чи на універсальної ЕОМ. SQL (Structured Query Language) - це скорочена назва структурованої мови запитів, що надає засобу створення й обробки даних у реляційних БД. Незалежність від специфіки комп'ютерних технологій, а також підтримка SQL лідерами промисловості в області технології реляційних баз даних зробили його основною стандартною мовою БД. Усі мови маніпулювання даними, створені до появи реляційних БД, розроблені для багатьох СУБД. були орієнтовані на операції з даними, представленими у виді логічних записів файлів. Зрозуміло, це жадало від користувача детального знання організації збереження даних і серйозних зусиль для вказівки того, які дані необхідні, де вони розміщаються і як їх одержати. Розглянута мова SQL орієнтована на операції з даними, представленими у виді логічно взаємозалежних сукупностей таблиці-відносин. Найважливіша особливість структур цієї мови складається в орієнтації на кінцевий результат обробки даних, а не на процедуру цієї обробки. SQL сам визначає, де знаходяться дані, індекси і навіть які найбільш ефективні послідовності операцій варто використовувати для одержання результату, тому не треба вказувати ці деталі в запиті до БД. Поява теорії реляційних БД дало поштовх до розробки ряду мов запитів, які можна віднести до двох класів: • алгебраїчні мови, що дозволяють виражати запити засобами спеціалізованих операторів, застосовуваних до відносин; • мови числення предикатів, що представляють собою набір правил для запису вираження, що визначає нове відношення з заданої сукупності існуючих відносин. Отже, числення предикатів є метод визначення того відношення, що бажано одержати, як відповідь на запит з відносин, що вже маються в БД. У 1987 році SQL став стандартом мов для професійних реляційних СУБД і почав упроваджуватися в усі розповсюджені системи. Це зв'язано з поруч наступних моментів. Постійний ріст швидкодії, а також зниження енергоспоживання, розмірів і вартості комп'ютерів привели до різкого розширення можливих ринків їхнього збуту, кола користувачів, розмаїтості типів і цін. Природно, що розширився попит на різноманітне програмне забезпечення. У боротьбі за покупця фірми, що роблять програмне забезпечення, сталі випускати на ринок усе більш інтелектуальні, а виходить, об'ємні програмні комплекси. Здобуваючи їх, багато організацій і окремих користувачів часто не могли розмістити їх на власних ЕОМ. Для обміну інформацією і її поширення були створені мережі ЕОМ, де узагальнюючі програми і дані стали розміщати на спеціальних файлових серверах. СУБД, що працюють з файловими серверами, дозволяють безлічі користувачів різних ЕОМ, розташованих досить далеко друг від друга, одержувати доступ до тим самим БД. При цьому спрощується розробка різних автоматизованих систем керування організаціями, навчальних комплексів, інформаційних і інших систем, де безліч чи співробітників учнів повинні використовувати загальні дані й обмінюватися створюваної в процесі роботи інформацією. Однак при такому підході вся обробка запитів з чи програм з терміналів користувальницьких ЕОМ на них і виконується, тому для реалізації навіть просто-те запиту необхідно зчитувати з файлового чи сервера записувати на сервер цілі файли, а це веде до конфліктних ситуацій і перевантаження мережі Для виключення зазначених недоліків була запропонована технологія клієнт/сервер, однак при цьому потрібний єдина мова спілкування із сервером - і в його якості був обраний SQL. Реалізація в SQL концепції операцій, орієнтованих на табличне представлення даних, дозволила створити компактну мову з невеликим набором пропозицій. SQL може використовуватися як для виконання запитів, так і для побудови прикладних програм. У ньому існують: • пропозиції визначення даних - визначення БД а також визначення і знищення таблиць і індексів; • запити на вибір даних - пропозиція SELECT; • пропозиції модифікації даних - додавання, видалення і зміна даних; • пропозиції керування, даними - надання і скасування привілеїв на доступ до даних, керування транзакціями й інші. Крім того, SQL надає можливість виконувати в цих пропозиціях: • арифметичні обчислення, включаючи різноманітні функціональні перетворення, обробку текстових рядків і виконання операцій порівняння значень арифметичних виражень і текстів; • упорядкування чи рядків стовпців при висновку вмісту таблиць на чи печатку екран дисплея; • створення представлень, що дозволяють користувачам інтерпретувати дані без збільшення їхнього обсягу в БД; • збереження виведеного по запиті вмісту таблиці, декількох чи таблиць представлення в іншій таблиці; • групування даних і застосування до цих груп таких операцій, як середнє, сума, максимум, мінімум, число елементів і т.п. Стандарт SQL визначається ANSI (американським національним інститутом стандартів) і тепер також приймається ISO (міжнародною організацією по стандартизації). Однак більшість комерційних програм БД розширюють SQL без повідомлення ANSI, додаючи різні інші особливості в цю мову, що, як вони вважають, будуть дуже корисні. Іноді це трохи порушує стандарт мови, хоча гарні ідеї мають тенденцію розвиватися і незабаром стають стандартами. Мова SQL є основою багатьох СУБД, тому що він відповідає за фізичне структурування і запис даних на диск, а також за фізичне читання даних з диска і дозволяє приймати SQL-запити від інших компонентів СУБД і користувальницьких додатків. Таким чином, SQL є могутнім інструментом, що забезпечує користувачам, програмам і обчислювальним системам доступ до інформації, що міститься в реляційних БД. Основні достоїнства мови SQL полягає в наступному: • стандартність мови SQL - як уже було сказано, його використання в програмах стандартизовано міжнародними організаціями; • незалежність від конкретних СУБД - усі розповсюджені СУБД використовують SQL, тому що реляционную БД і програми, що з нею працюють, можна перенести з однієї СУБД на іншу з мінімальними доробками; • можливість переносу з однієї обчислювальної системи на іншу - СУБД може бути орієнтована на різні обчислювальні системи, однак додатка, створені за допомогою SQL, допускають використання як для локальних БД так і для великих багатокористувацьких систем; • реляційна основа мови - SQL є мовою реляційних БД тому він став популярним тоді, коли популярної стала реляційна модель представлення даних. Таблична структура реляційної БД добре зрозуміла, тому мова SQL є простим і легенею для вивчення; • можливість створення інтерактивних запитів - SQL забезпечує користувачам негайний доступ до даних, при цьому в інтерактивному режимі можна одержати результат запиту за дуже короткий час без написання складної програми; • можливість програмного доступу до БД - мова SQL може бути легко використаний у додатках, яким необхідно звертатися до БД. Ті самі оператори SQL використовуються як для інтерактивного, так і для програмного доступу, тому частини програм. утримуючі звертання до БД, можна спочатку перевірити в інтерактивному режимі, а потім вбудовувати в програму; • забезпечення різного представлення даних - за допомогою SQL можна передбачити таку структуру даних, що той чи інший користувач буде бачити різні представлення даних. Крім того, дані з різних частин БД можуть бути скомбіновані і представлені користувачу у виді однієї простої таблиці, а виходить, представлення можна використовувати для посилення захисту БД і її настроювання під конкретні вимоги окремих користувачів; • можливість динамічної зміни і розширення структури БД - мова SQL навіть під час звертання до вмісту дозволяє маніпулювати структурою БД. Це велика перевага перед мовами статичного визначення даних, що забороняють • доступ до БД під час зміни її структури. Таким чином, SQL забезпечує гнучкість з погляду пристосованості БД до вимог предметної області, що змінюються, не перериваючи при цьому роботу додатка, що виконує в реальному масштабі часу; • підтримка архітектури клієнт/сервер - SQL один із кращих засобів для реалізації додатків на платформі клієнт/сервер. При цьому SQL служить сполучною ланкою між клієнтською системою, взаємодіючої з користувачем, і серверною системою, що керує БД, дозволяючи кожної з них зосередитися на виконанні своїх прямих функцій.
5.4. Сутність об’єктно-орієнтованого підходу до розробки ПЗ Принципове розходження між структурним і об’єктно-орієнтованим підходом полягає в способі декомпозиції системи. Об’єктно-орієнтований підхід використовує об'єктну декомпозицію, при цьому статична структура системи описується в термінах об'єктів і зв'язків між ними, а поводження системи описується в термінах обміну повідомленнями між об'єктами. Кожен об'єкт системи володіє своїм власним поводженням, що моделює поводження об'єкта реального світу. Поняття "об'єкт" уперше було використано близько 30 років тому в технічних засобах при спробах відійти від традиційної архітектури фон Неймана і перебороти бар'єр між високим рівнем програмних абстракцій і низьким рівнем абстрагування на рівні комп'ютерів. З об’єктно-орієнтованою архітектурою також тісно зв'язані об’єктно-орієнтовані операційні системи. Однак найбільш значний внесок в об'єктний підхід був внесений об'єктними й об’єктно-орієнтованими мовами програмування: Simula, Smalltalk, C++, Object Pascal. На об'єктний підхід уплинули також розвивалися достатньо незалежно методи моделювання баз даних, особливо підхід "сутність-зв'язок". Концептуальною основою об’єктно-орієнтованого підходу є об'єктна модель. Основними її елементами є: • абстрагування (abstraction); • інкапсуляція (encapsulation); • модульність (modularity); • ієрархія (hierarchy). Крім основних маються ще три додаткових елементи, що не є на відміну від основних строго обов'язковими: • типізація (typing); • паралелізм (concurrency); • стійкість (persistence). Абстрагування — це виділення істотних характеристик деякого об'єкта, що відрізняють його від усіх інших видів об'єктів і, таким чином, чітко визначають його концептуальні границі щодо подальшого розгляду й аналізу. Абстрагування зосереджує увагу на зовнішніх особливостях об'єкта і дозволяє відокремити самі істотні особливості його поводження від деталей їхньої реалізації. об'єктно-орієнтованого Інкапсуляція — це процес відділення друг від друга окремих елементів об'єкта, що визначають його пристрій і поводження. Інкапсуляція служить для того, щоб ізолювати інтерфейс об'єкта, що відбиває його зовнішнє поводження, від внутрішньої реалізації об'єкта. Об'єктний підхід припускає, що власні ресурси, якими можуть маніпулювати тільки методи самого класу, сховані від зовнішнього середовища. Абстрагування й інкапсуляція є взаємодоповнюючими операціями: абстрагування фокусує увага на зовнішніх особливостях об'єкта, а інкапсуляція (чи, інакше, обмеження доступу) не дозволяє об'єктам-користувачам розрізняти внутрішній пристрій об'єкта. Модульність — це властивість системи, зв'язана з можливістю її декомпозиції на ряд внутрішньо зв'язкових, але слабко зв'язаних між собою модулів. Інкапсуляція й модульність створюють бар'єри між абстракціями. Ієрархія — це ранжування чи упорядкована система абстракцій, розташування їх по рівнях. Основними видами ієрархічних структур стосовно до складних систем є структура класів (ієрархія по номенклатурі) і структура об'єктів (ієрархія по складу). Прикладами ієрархії класів є просте і множинне спадкування (один клас використовує структурну чи функціональну частину відповідно одного чи декількох інших класів), а ієрархії об'єктів - агрегація. Типізація - це обмеження, що накладається на клас об'єктів і перешкоджаюче взаємозамінності різних класів (чи сильно звужує її можливість). Типізація дозволяє захиститися від використання об'єктів одного класу замість іншого чи принаймні керувати таким використанням. Паралелізм — властивість об'єктів знаходитися в активному чи пасивному стані і розрізняти активні й пасивні об'єкти між собою. Стійкість — властивість об'єкта існувати в часі (поза залежністю від процесу, що породили даний об'єкт) і/чи в просторі (при переміщенні об'єкта з адресного простору, у якому він був створений).
Основні поняття об’єктно-орієнтованого підходу — об'єкт і клас. Об'єкт визначається як відчутна реальність (tangible entity) — чи предмет явище, що мають чітко обумовлене поводження. Об'єкт має стан, поводженням і індивідуальністю; структура й поводження схожих об'єктів визначають загальний для них клас. Терміни "екземпляр класу" і "об'єкт'' є еквівалентними. Стан об'єкта характеризується переліком усіх можливих (статичних) властивостей даного об'єкта і поточними значеннями (динамічними) кожного з цих властивостей. Поводження характеризує вплив об'єкта на інші об'єкти і навпаки щодо зміни стану цих об'єктів і передачі повідомлень. Інакше кажучи, поводження об'єкта цілком визначається його діями. Індивідуальність — це властивості об'єкта, що відрізняють його від усіх інших об'єктів. Визначений вплив одного об'єкта на іншій з метою викликати відповідну реакцію називається операцією. Як правило, в об'єктних і об’єктно-орієнтованих мовах операції, виконувані над даним об'єктом, називаються методами і є складовою частиною визначення класу. Клас — це безліч об'єктів, зв'язаних спільністю структури і поводження. Любою об'єкт є екзем