Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9

Створення гнучкої клієнт-серверної системи інформаційної підтримки підвищення кваліфікації персоналу ДП № 9 з застосуванням мови програмування PHP, системи керування базами даних MySQL. Розробка алгоритмів, програмна реалізація основних процедур системи.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 26.10.2012
Размер файла 1,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

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

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

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

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

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

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

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

"Гнучка система інформаційної підтримки підвищення кваліфікації персоналу ДП № 9"

Кривий Ріг 2010

Зміст

  • Вступ
  • 1. Постановка завдання
  • 1.1 Найменування та галузь використання
  • 1.2 Підстава для створення
  • 1.3 Характеристика розробленого програмного забезпечення
  • 1.4 Мета й призначення
  • 1.5 Загальні вимоги до розробки
  • 1.6 Джерела розробки
  • 2. Основи технології клієнт-сервер
  • 2.1 Основні поняття
  • 2.2 Клієнт та сервер
  • 2.3 Обов'язки та взаємодія
  • 2.4 Трирівнева архітектура
  • 2.5 Веб-сервер
  • 2.6 APACHE
  • 2.7 Можливості
  • 3. Теоретичне дослідження PHP І MYSQL та основ роботи з ними
  • 3.1 Вступ у PHP та MySQL
  • 3.2 Можливості PHP
  • 3.3 Можливості MySQL
  • 3.4 Приклади використання PHP та MySQL
  • 4. Розробка гнучкої клієнт-серверної системи завдяки поєднанню відкритих web технологій
  • 4.1 Модуль PHP
  • 4.1.1 Особливості
  • 4.1.2 Докладний опис мови
  • 4.2 База даних
  • 4.2.1 Термін
  • 4.2.2 Структуровані та неструктуровані БД
  • 4.2.3 Характеристика БД
  • 4.3 Системи керування базами даних
  • 4.4 Мова SQL
  • 4.4.1 Термін
  • 4.4.2 Історія
  • 4.4.3 Питання сумісності
  • 4.4.4 Процедурні розширення
  • 4.5 MySQL
  • 4.5.1 Термін
  • 4.5.2 Ліцензування
  • 4.5.3 Історія
  • 4.5.4 Критика
  • 4.6.html
  • 4.6.1 Термін
  • 4.6.2 Історія розвитку HTML
  • 4.6.3 Версії
  • 4.6.4 Документ HTML
  • 4.6.5 Семантичний HTML
  • 4.6.6 Проект специфікації HTML 5
  • 4.6.7 XHTML
  • 4.7 JavaScript
  • 4.7.1 Термін
  • 4.7.2 Про мову
  • 4.7.3 Використання в HTML
  • 4.7.4 Зневадження
  • 4.7.5 Статистика використання
  • 5. Опис функціональних можливостей та програмної реалізації проектованої системи
  • 5.1 Функціональне призначення та технологічні особливості розробки
  • 5.2 Логіко-функціональна схема роботи системи
  • 5.3 Розробка алгоритмів та програмна реалізація основних процедур системи
  • 5.4 Опис інтерфейсу користувача
  • 6. Економічне обґрунтування доцільності розробки програмного продукту
  • 7. Охорона праці
  • 7.1 Аналіз шкідливих і небезпечних виробничих факторів при роботі на комп'ютері
  • 7.2 Заходи щодо нормалізації небезпечних і шкідливих факторів
  • 7.3 Пожежна безпека
  • Висновки
  • Список літератури
  • Додатки

Вступ

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

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

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

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

Реалізація даної задачі проводиться з застосуванням мови програмування PHP та використанням системи керування базами даних MySQL. Клієнтська частина буде виконана за допомогою мови HTML, з використанням CSS та Java-Script для покращення зовнішнього вигляду, та створення динамічних сторінок на стороні клієнта.

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

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

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

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

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

мова програмування база серверна

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

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

Найменування розробки: гнучкої системи інформаційної підтримки підвищення кваліфікації персоналу ДП№9. Розроблена система пройшла апробацію на ВАТ "АрселорМіттал Кривий Ріг".

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

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

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

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

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

Розроблена система пройшла апробацію в ДП№9 підприємства ВАТ "АрселорМіттал Кривий Ріг". Вона дозволяє вирішувати багато поточних задач пов'язаних з оцінюванням якості знань персоналу, які, дедалі більше, стає неможливим виконувати тільки вручну.

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

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

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

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

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

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

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

Будь-який комп'ютер, з можливістю роботи в локальній мережі;

Будь-який провідник (browser) з підтримкою технології Java-script та CSS.

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

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

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

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

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

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

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

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

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

2. Основи технології клієнт-сервер

2.1 Основні поняття

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

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

· набір клієнтів, які використовують сервіси, що надаються серверами;

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

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

2.2 Клієнт та сервер

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

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

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

2.3 Обов'язки та взаємодія

Модель клієнт-серверної взаємодії визначається перш за все розподілом обов'язків між клієнтом та сервером. Логічно можна виокремити три рівні операцій:

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

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

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

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

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

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

2.4 Трирівнева архітектура

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

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

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

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

2.5 Веб-сервер

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

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

Клієнти дістаються веб-сервера за URL адресою потрібної їм веб-сторінки або іншого ресурсу.

2.6 APACHE

Apache HTTP-сервер - відкритий веб-сервер Інтернет для UNIX-подібних, Microsoft Windows, Novell NetWare та інших операційних систем. На сьогодні є найуживанішим Веб сервером мережі Інтернет.

Apache розроблюється та підтримується спільнотою розробників відкритого програмного забезпечення під керівництвом Apache Software Foundation.

2.7 Можливості

Web-сервер Apache є самостійним, некомерційним, вільно розповсюджуваним продуктом. Продукт підтримує безліч можливостей, багато з яких реалізовані як скомпільовані модулі, які розширюють основні функціональні можливості. Вони різняться від серверної підтримки мов програмування до схем аутентифікації. Існують інтерфейси для підтримки мов програмування Perl, Python, Tcl і PHP.

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

Функції віртуального хостингу дозволяють одній інсталяції Apache обслуговувати різні веб-сайти. Наприклад, одна машина, з однією інсталяцією Apache може одночасно містити www.example.com, www.test.com, test47. test-server. test.com і так далі.

3. Теоретичне дослідження PHP І MYSQL та основ роботи з ними

3.1 Вступ у PHP та MySQL

PHP - це скрипт-мова (scripting language), що вбудовується в HTML, яка інтерпретується та виконується на сервері. Простіше за все показати це на прикладі:

<html>

<head>

<title>Example</title>

</head>

<body>

<? php echo "Hi, I'm a PHP script!";? >

</body>

</html>

Після виконання цього скрипту ми одержимо сторінку, у якій буде написане Hi, І'm a PHP script! Дуже просто та легкго.

Основна відмінність від CGI-скриптів, написаних на інших мовах, типу Perl або C - це те, що в CGI-програмах ви самі пишете HTML-код, а, використовуючи PHP - ви вбудовуєте свою програму в готову HTML-сторінку, використовуючи відкриваючий та закриваючий теги (у прикладі це <? php та? >). Відмінність PHP від JavaScript, полягає в тому, що PHP-скрипт виконується на сервері, а клієнту передається результат роботи, тоді як JavaScript-код цілком передається на клієнтську машину та тільки там виконується.

Аматори Internet Information Server знайдуть, що PHP дуже схожо на Active Server Pages (ASP), а ентузіасти Java скажуть, що PHP схожо на Java Server Pages (JSP). Усі три мови дозволяють розміщати код, що виконується на Web-сервері, усередині HTML сторінок.

3.2 Можливості PHP

У декількох словах - на PHP можна зробити усе, що можна зробити за допомогою СGI-програм. Наприклад: обробляти дані з форм, генерувати динамічні сторінки, одержувати та посилати кукі (cookies). Крім цього в PHP включена підтримка багатьох баз даних (databases), що робить написання Web-аплікацій з використанням БД дуже простим. Ось неповний перелік БД, що підтримуться: Adabas, D, InterBase, Solid, dBase, mSQL Sybase, Empress, MySQL Velocis, FilePro, Oracle, Unix dbm, Informix, PostgreSQL. На додаток до всього PHP розуміє протоколи IMAP, SNMP, NNTP, POP3 та навіть HTTP, а також має можливість працювати із сокетами (sockets) та спілкуватися по інших протоколах.

3.3 Можливості MySQL

MySQL підтримує мову запитів SQL у стандарті ANSI 92, та крім цього має безліч розширень до цього стандарту, яких немає в жодній інший СУБД.

Короткий перелік можливостей MySQL.

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

· Кількість рядків у таблицях може досягати 50 млн.

· Швидке виконання команд. Можливо MySQL найшвидший сервер з існуючих.

· Проста та ефективна система безпеки.

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

· Підтримка вкладених запитів, типу SELECT * FROM table1 WHERE id IN (SELECT id FROM table2). Стверджується, що така можливість буде у версії 3.23.

· Не реалізована підтримка транзакцій. Замість пропонується використовувати LOCK/UNLOCK TABLE.

· Немає підтримки зовнішніх (foreign) ключів.

· Немає підтримки тригерів та збережених процедур.

Немає підтримки представлень (VIEW). У версії 3.23 планується можливість створювати представлення. За словами творців саме пункти 2-4 дали можливість досягти високої швидкодії. Їхня реалізація істотно знижує швидкість сервера. Ці можливості не є критичними при створенні Web-аплікацій, що в поєднанні з високою швидкодією та малою ціною дозволило серверу набути велику популярність.

3.4 Приклади використання PHP та MySQL

Робота з формами. У цьому прикладі показано як у PHP легко обробляти дані з HTML - форм. Створимо простий HTML файл.

<HTML>

<HEAD>

<TITLE>Запит інформації</TITLE>

<BODY>

<CENTER>

Хочете більше знати про наші товари?

<P>

<TABLE WIDTH = 400><TR><TD align = right>

<FORM ACTION="email. php3" METHOD="POST">

Ваше ім'я: <BR>

<INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30">

<P>

Ваш email: <BR>

<INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30">

<P>

Мене цікавлять:

<SELECT NAME="preference">

<OPTION value = "Яблука">Яблука

<OPTION value = "Апельсини">Апельсини

</SELECT>

<P>

<INPUT TYPE="submit"

VALUE="Відправити запит!">

</FORM>

</TD></TR></TABLE></CENTER>

</BODY>

</HTML>

Назвемо цей файл request.html. У ньому ми вказали, що дані форми будуть оброблятися файлом email. php3. Приведемо його зміст:

<?

/* Цей скрипт одержує перемінні з request.html */

PRINT "<CENTER>";

PRINT "Привіт, $name. ";

PRINT "<BR><BR>";

PRINT "Спасибі за ваш інтерес<BR><BR>";

PRINT "Вас цікавлять $preference.

Інформацію про їх ми відішлем вам на email: $email. ";

PRINT "</CENTER>";

? >

Тепер, якщо користувач викличе request.html та набере у формі ім'я "Вася”, email: vasya@pupkin.com та скаже, що його цікавлять "Яблука”, а після цього натисне "Відправити запит!", те у відповідь викликається email. php3, що виведе на екран приблизно наступне:

Привіт, Вася

Спасибі за ваш інтерес.

Вас цікавлять Яблука.

Інформацію про них ми відішлемо вам на email:

vasya@pupkin.com

Тепер ми повинні дотримати обіцянку та вислати email. Для цього в PHP є функція MAIL.

Синтаксис: void mail (string to, string subject, string message, string add_headers); to - email адреса одержувача. subject - тема листа. message - власне текст повідомлення. add_headers - інші параметри заголовка листа (необов'язковий параметр). Допишемо в кінець файлу email. php3 наступний код:

<?

mail ($email, "Запит на інформацію", "$namen

Спасибі за ваш інтерес! n

Вас цікавлять $preferencen

Ми їх поширюємо безкоштовно. Звернетеся в

найближчу філію нашої компанії та одержите

шухляду цього продукту. n

");

mail ("administration@me.com",

"Був запит на інформацію. ",

"$name цікавили $preferencen

email-адреса: $email. n");

? >

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

Робота з MySQL (збереження даних у базі даних). Для початку створюємо базу даних та таблицю. Входимо в MySQL, та виконуємо команди:

>CREATE DATABASE products;

>CREATE TABLE clients (name VARCHAR (25), email VARCHAR (25), choise VARCHAR (8));

Для спілкування з MySQL з PHP знадобляться наступні функції. int mysql_connect (string hostname, string username, string password); Створити з'єднання з MySQL.

Параметри:

Hostname - ім'я хоста, на якому знаходиться база даних.

Username - ім'я користувача.

Password - пароль користувача.

Функція повертає параметр типу int, що більше 0, якщо з'єднання пройшло успішно, та дорівнює 0 у противному випадку. int mysql_select_db (string database_name, int link_identifier); Вибрати базу даних для роботи.

Параметри:

Database_name - ім'я бази даних. link_identifier - ID з'єднання, що отримано у функції mysql_connect. (параметр необов'язковий, якщо він не вказується, то використовується ID від останнього виклику mysql_connect)

Функція повертає значення true або false int mysql_query (string query, int link_identifier); Функція виконує запит до бази даних.

Параметри:

Query - рядок, що містить запит link_identifier - див. попередню функцію. Функція повертає ID результату або 0, якщо відбулася помилка. int mysql_close (int link_identifier);

Функція закриває з'єднання з MySQL.

Параметри:

link_identifier - див. Вище.

Функція повертає значення true або false Тепер наш файл email. php3 буде мати наступний. вигляд:

<?

/* Цей скрипт одержує змінні з request.html */

/* Деякі змінні */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблиця MySQL, у якій зберігаються дані */

$userstable = "clients";

/* email адміністратора */

$adminaddress = "administration@me.com";

/* створити з'єднання */

MYSQL_CONNECT ($hostname,$username,$password)

OR DIE ("Не можу створити з'єднання ");

@mysql_select_db ("$dbName")

or die ("Не можу вибрати

базу даних ");

PRINT "<CENTER>";

PRINT "Привіт, $name. ";

PRINT "<BR><BR>";

PRINT "Спасибі за ваш інтерес<BR><BR>";

PRINT "Вас цікавлять $preference.

Інформацію ми

відішлем вам на email: $email. ";

PRINT "</CENTER>";

/* Відправляємо email */

mail ($email, "Запит на інформацію", "$namenn

Спасибі за ваш інтерес! n

Вас цікавлять $preferencen

Ми їх поширюємо безкоштовно.

Звернетеся в

найближчу філію нашої компанії

та одержите шухляду цього продукту. n

");

mail ("administration@me.com",

"Був запит на інформацію. ",

"$name цікавили $preferencen

email-адреса: $email. n");

/* Вставити інформацію про клієнта в таблицю */

$query = "INSERT INTO $userstable VALUES

('$name','$email', '$preference')";

$result = MYSQL_QUERY ($query);

PRINT "Інформація про вас занесена в базу даних. ";

/* Закрити з'єднання */

MYSQL_CLOSE ();

? >

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

Робота з MySQL (одержання даних з бази даних). Після занесення даних, нас іноді буде цікавити питання так кого ж з наших клієнтів цікавить товар "Яблука”. Напишемо скрипт apple. php3

<? /* Скрипт показує клієнтів, що яблука люблять

більше чим апельсини */

$hostname = "localhost";

$username = "myusername";

$password = "mypassword";

$dbName = "products";

/* Таблиця MySQL, у якій зберігаються дані */

$userstable = "clients";

/* створити з'єднання */

MYSQL_CONNECT ($hostname,$username,$password)

OR DIE ("Не можу створити з'єднання ");

@mysql_select_db ("$dbName") or die ("Не можу

вибрати базу даних ");

/* Вибрати всіх клієнтів - яблучників */

$query = "SELECT * FROM $userstable WHERE

choice = 'Яблука'";

$result = MYSQL_QUERY ($query);

/* Як багато знайшлося таких */

$number = MYSQL_NUM_ROWS ($result);

/* Надрукувати всіх у красивому виді*/

$i = 0;

IF ($number == 0) {

PRINT "<CENTER><P>Аматорів яблук

немає</CENTER>";

} ELSEIF ($number > 0) {

PRINT "<CENTER><P>Кількість аматорів яблук: $number<BR><BR>";

WHILE ($i < $number) {

$name = mysql_result ($result,$i,"name");

$email = mysql_result ($result,$i,"email");

PRINT "Клієнт $name любить Яблука<BR>";

PRINT "Його Email: $email. ";

PRINT "<BR><BR>";

$i++;

}

PRINT "</CENTER>";

}

? >

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

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

4.1 Модуль PHP

PHP (англ. PHP: Hypertext Preprocessor - PHP: гіпертекстовий препроцесор), попередньо: Personal Home Page Tools - скриптова мова програмування, була створена для генерації HTML-сторінок на стороні веб-сервера. PHP є однією з найпоширеніших мов, що використовуються у сфері веб-розробок (разом із Java,.net, Perl, Python, Ruby). PHP підтримується переважною більшістю хостинг-провайдерів. PHP - проект відкритого програмного забезпечення.

PHP інтерпретується веб-сервером в HTML-код, який передається на сторону клієнта.

На відміну від скриптової мови JavaScript, користувач не бачить PHP-коду, бо браузер отримує готовий html-код. Це є перевага з точки зору безпеки, але погіршує інтерактивність сторінок. Але ніщо не забороняє використовувати РНР для генерування і JavaScript-кодів які виконаються вже на стороні клієнта.

4.1.1 Особливості

PHP - мова, яка може бути вбудована безпосередньо в html-код сторінок, які, в свою чергу коректно будуть оброблені PHP - інтерпретатором. Механізм РНР просто починає виконувати код після першої екрануючої послідовності (<?) і продовжує виконання до того моменту, коли він зустріне парну екрануючу послідовність (? >).

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

Наявність інтерфейсів до багатьох баз даних

o в PHP вбудовані бібліотеки для роботи з MySQL, PostgreSQL, mSQL, Oracle, dbm, Hyperware, Informix, InterBase, Sybase.

o через стандарт відкритого інтерфейсу зв'язку з базами даних (Open Database Connectivity Standard - ODBC) можна підключатися до всіх баз даних, до яких існує драйвер.

Традиційність

Мова РНР здаватиметься знайомою програмістам, що працюють в різних областях. Багато конструкцій мови запозичені з С, Perl. Код РНР дуже схожий на той, який зустрічається в типових програмах на С або Pascal. Це помітно знижує початкові зусилля при вивченні РНР. PHP - мова, що поєднує переваги Perl і С і спеціально спрямована на роботу в Інтернеті, мова з універсальним і зрозумілим синтаксисом. І хоча PHP є досить молодою мовою, вона здобула таку популярність серед web-програмістів, що на даний момент є мало не найпопулярнішою мовою для створення веб-застосунків (скриптів).

Наявність вихідного коду та безкоштовність

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

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

Ефективність

Ефективність є дуже важливим чинником при програмуванні для середовищ розрахованих на багато користувачів, до яких належить і web. Важливою перевагою PHP є те, що ця мова належить до інтерпретованих. Це дозволяє обробляти сценарії з достатньо високою швидкістю. За деякими оцінками, більшість PHP-сценаріїв (особливо не дуже великих розмірів) обробляються швидше за аналогічні їм програми, написані на Perl. Проте, щоб не робили розробники PHP, виконувані файли, отримані за допомогою компіляції, працюватимуть значно швидше - в десятки, а іноді і в сотні разів. Але продуктивність PHP цілком достатня для створення цілком серйозних веб-застосунків.

4.1.2 Докладний опис мови

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

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

Робота з рядками

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

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

Змішані типи даних

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

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

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

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

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

Конструкції мови

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

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

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

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

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

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

Додаткові можливості

Мова явно підтримує HTTP cookies відповідно до специфікацій Netscape. Це дозволяє проводити встановлення та читання невеликих сегментів даних на стороні клієнта.

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

Ліцензія

Ліцензія PHP має назву The PHP License version 3.0, ЧАП по цій ліцензії та її текст можна знайти на офіційному сайті The PHP Group, а також файл із ліцензією містить дистрибутив PHP (звичайно license. txt).

Перші версії

Історія PHP починається з 1995 року, коли Расмус Лердорф (Rasmus Lerdorf) створив простий за стосунок мовою Perl, що аналізував відвідування користувачами його резюме на веб-сайті. Потім, коли цим за стосунком вже користувалися кілька чоловік, а число охочих одержати його постійно збільшувалося, Лердорф назвав своє творіння Personal Home Page Tools версія 1 і виставив для вільного завантаження. З цієї миті почався небувалий зліт популярності PHP.

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

PHP/FI (Personal Home Page / Forms Interpreter - Персональна Домашня сторінка / Інтерпретатор Форм), надалі він також буде відомий під назвою

PHP 2. Ця версія вже більшою мірою схожа на сьогоднішній PHP. Вона мала синтаксис і спосіб іменування змінних в стилі мови Perl, можливість вбудовування PHP операторів в html-код сторінки, автоматичну інтерпретацію форм, інтеграцію з базами даних. При цьому все працювало досить швидко, оскільки PHP прикомпилювалось до веб-серверу Apache. До 1997 року PHP використовувався вже на 50,000 доменах (не більше 1% всіх веб-серверів).

У тому ж 1997 році до проекту PHP підключилися Зеєв Сураський (Zeev Suraski) і Енді Гутманс (Andi Gutmans). Ці студенти Техніону, одного з ізраїльських університетів, намагалися використовувати PHP/FI для одного з комерційних університетських проектів. При цьому їм довелося зіткнутися з багатьма труднощами і обмеженнями цієї технології. Вивчаючи початковий код PHP 2, Зеєв і Енді дійшли висновку про необхідність доопрацювання, а точніше істотної переробки PHP, особливо в плані синтаксису мови. Протягом декількох місяців вони блискуче впоралися з цим завданням.

Закінчивши роботу Зеєв і Енді домовились з Расмусом про співпрацю в галузі розвитку та вдосконалення мови. З цієї миті з'являється PHP Group - група однодумців, що працюють над розвитком технології PHP. Одержаний продукт з'явився на світ у 1998 році під назвою PHP 3.

При цьому головною особливість PHP 3 була можливість розширення ядра, що привернуло до роботи над PHP безліч сторонніх розробників, що створюють спеціалізовані модулі. Їх наявність дала PHP можливість працювати з величезною кількістю баз даних, протоколів, підтримувати велике число API. До кінця 1998 кількість користувачів PHP перевалила за 100000, а PHP був вже встановлений на не менше ніж 10% серверах Інтернету. У той ж час значному поширенню даної мови сприяли публікації в електронній пресі та вихід книжок по вивченню PHP.

Відразу ж після виходу PHP 3, Енді Гутманс і Зеєв Сураський почали переробку ядра PHP. В першу чергу належало вирішити проблему підвищення продуктивності. Новий продукт, названий Zend Engine (від імен творців: Zeev і Andi), успішно справлявся з поставленим завданням і був реалізований в 1999 році. Основними реалізованими ідеями є можливість компіляції сценарію у виконуваний модуль, за рахунок чого продуктивність можна було підняти на порядок.

Визнання та поширення

PHP 4, що працює на цьому ядрі, вийшов в 2000 році. На додаток до поліпшення продуктивності, PHP 4 мав нові можливості по підтримці сесій, буферизацію виводу, безпечні способи обробки інформації, що вводиться користувачем, і нові мовні конструкції. З виходом 4 версії PHP став використовуватися вже на більш ніж 20% доменів Інтернету.

За час з 2000 по 2004 рік продовжувалися активні роботи по поліпшенню 4 версії, але майже відразу PHP Group приступила до продумування можливостей нової версії. В першу чергу було вирішено підсилити об'єктні можливості мови, що дозволяло використовувати його для реалізації масштабних проектів. Роботи із створення версії 5 велися тривалий час, в них брало участь рекордна кількість фахівців, зокрема Стерлінг Хьюз (Sterling Hughes) і Маркус Бергера (Marcus Boerger).

У липні 2004 року виходить офіційний реліз PHP 5. В першу чергу, як і планувалося, було перероблено весь механізм роботи з об'єктами. І якщо в попередніх версіях об'єктно-орієнтоване програмування на PHP було можливе в мінімальному ступені, а тому і використовувалося на практиці не часто, то PHP 5 володіє прекрасним потенціалом реалізації об'єктного програмування. Окрім цього, PHP збагатився рядом цінних розширень для роботи з XML, різними джерелами даних, генерації графіки і інше.

Серед інших украй корисних доповнень в PHP 5 слід зазначити нову схему обробки виключень. Конструкція try/catch/throw дозволяє весь код обробки помилок локалізувати в одному місці сценарію.

Всі основні бібліотеки для роботи з XML, запозичені в PHP 4, були піддані серйозній переробці. Такі популярні розширення, як SAX, DOM і XSLT, тепер використовують інструмент libxml2, що робить їх ще ефективнішими.

У PHP 5 також включені два нові модулі для роботи з протоколами - SimpleXML і SOAP. SimpleXML дозволяє значно спростити роботу з XML-даними, представляючи вміст XML-документа у вигляді PHP-об'єкту. Розширення SOAP дозволяє будувати на PHP сценарії, що обмінюються інформацією з іншими за стосунками за допомогою XML-повідомлень поверх існуючих веб-протоколів, наприклад HTTP. Модуль для роботи з SOAP для PHP 5 надає розробникам засіб для достатньо швидкого створення ефективних SOAP-клієнтів і SOAP-серверів.

Новий модуль PHP 5 MySQLi (MySQL Improved) призначений для роботи з MySQL-сервером версій 4.1.2 і вище, реалізовуючи не тільки процедурний, але і об'єктно-орієнтований інтерфейс до MySQL. Додаткові можливості цього модуля включають - SSL, контроль транзакцій, підтримка реплікації і ін. Очевидно, що, на цьому історія PHP не закінчується. Слід очікувати наступних версій мови із розширеними можливостями.

4.2 База даних

4.2.1 Термін

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

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

4.2.2 Структуровані та неструктуровані БД

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

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

4.2.3 Характеристика БД

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

· значна кількість даних

· незалежність даних

· відкритий доступ до даних

· підтримка транзакцій з гарантією відповідних властивостей

· гарантована відсутність збоїв

· одночасна робота з багатьма користувачами

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

4.3 Системи керування базами даних

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

Основні характеристики СКБД:

· Контроль за надлишковістю даних

· Непротирічність даних

· Підтримка цілісності бази даних (коректність та непротирічність)

· Цілісність описується за допомогою обмежень

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

· Спільне використання даних

· Підвищений рівень безпеки

Можливості СКБД

· Дозволяється створювати БД (здійснюється за допомогою мови визначення даних DDL (Data Definition Language))

· Дозволяється додавання, оновлення, видалення та читання інформації з БД (за допомогою мови маніпулювання даними DML, яку часто називають мовою запитів)

· Можна надавати контрольований доступ до БД за допомогою:

o Системи забезпечення захисту, яка запобігає несанкціонованому доступу до БД;

o Системи керування паралельною роботою прикладних програм, яка контролює процеси спільного доступу до БД;

o Система відновлення - дозволяє відновлювати БД до попереднього непротирічного стану, що був порушений в результаті збою апаратного або програмного забезпечення

Основні компоненти середовища СКБД

· апаратне забезпечення

· програмне забезпечення

· дані

· процедури - інструкції та правила, які повинні враховуватись при проектуванні та використанні БД

· користувачі

· адміністратори даних (керування даними, проектування БД, розробка алгоритмів, процедур) та БД (фізичне проектування, відповідальність за безпеку та цілісність даних)

· розробники БД

· прикладні програмісти

· кінцеві користувачі

Архітектура СКБД

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

Рівні:

1. Зовнішній - представлення БД з точки зору користувача.

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

3. Внутрішній - фізичне представлення БД в комп'ютері.

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

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

4.4 Мова SQL

4.4.1 Термін

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

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

Перша версія SQL була розроблена на початку 1970-х років у IBM. Ця версія носила назву SEQUEL і була призначена для обробки і пошуку даних, що містилися в реляційній базі даних IBM, System R. Мова SQL пізніше була стандартизована Американськими Держстандартами (ANSI) в 1986.

Спочатку SQL розроблялась як мова запитів і управління даними, пізніші модифікації SQL створено продавцями системи управління базами даних, які додали процедурні конструкції, control-of-flow команд і розширення мов. З випуском стандарту SQL: 1999 такі розширення були формально запозичені як частина мови SQL через Persistent Stored Modules (SQL/PSM).

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

4.4.2 Історія

На початку 1970-х років в одній з дослідницьких лабораторій компанії IBM була розроблена експериментальна реляційна СУБД System R, для якої потім була створена спеціальна мова SEQUEL, що дозволяла відносно просто управляти даними в цій СУБД.

Абревіатура SEQUEL розшифровувалася як англ. Structured English QUEry Language - "структурована англійська мова запитів". Пізніше з юридичних міркувань мова SEQUEL була перейменована в SQL. Коли в 1986 році перший стандарт мови SQL був прийнятий ANSI (American National Standards Institute), офіційною вимовою стало - ес-кью-ел. Незважаючи на це, навіть англомовні фахівці по колишньому часто називають SQL сіквел, замість ес-кью-ел.

Метою розробки було створення простої непроцедурної мови, якою зміг би скористатися будь-який користувач, що навіть не має навиків програмування. Власне розробкою мови запитів займалися Дональд Чемберлін (Donald D. Chamberlin) і Рей Бойс (Ray Boyce). Пет Селінджер (Pat Selinger) займалася розробкою вартісного оптимізатора (англ. cost-based optimizer), Реймонд Лорі (Raymond Lorie) займався компілятором запитів.

Варто відзначити, що SEQUEL не був єдиною мовою подібного призначення. У Каліфорнійському університеті в Берклі була розроблена некомерційна СУБД Ingres (що була, між іншим, дальнім прародичем популярної зараз некомерційної СУБД PostgreSQL), яка була реляційною СУБД, але використовувала свою власну мову QUEL, яка, проте, не витримала конкуренції по кількості СУБД, що підтримували його, з мовою SQL.

Першими СУБД, що підтримують нову мову SQL, стали в 1979 році Oracle V2 для машин VAX від компанії Relational Software Inc. (що згодом стала компанією Oracle) і System/38 від IBM, заснована на System/R.

Перший офіційний стандарт мови SQL був прийнятий ANSI в 1986 і ISO (Міжнародною організацією зі стандартизації) в 1987 (так званий SQL-86) і дещо уточнений в 1989 році. Подальший розвиток мови постачальниками СУБД зажадав ухвалення в 1992 р. нового розширеного стандарту (ANSI SQL-92 або просто SQL2). Наступним стандартом став SQL: 1999 (SQL3). В даний час діє стандарт, прийнятий в 2003 році (SQL: 2003) з невеликими модифікаціями, внесеними пізніше.

4.4.3 Питання сумісності

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


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.