УПРАВЛІННЯ ОСВІТИ адміністрації Ленінського району p>
Організація Web-доступу до баз даних з використанням SQL-запитів. p>
Виконавець: ВОЛКОВ Константин Владимирович ученик 11Б класу МСОШ № 175 p>
Керівники: ФЕДОРОВ Леонид Николаевич директор Інформаційно-методичного центру p>
Управління освіти адміністрації Ленінського району p>
Мокрянському Дмитро Георгійович методист Інформаційно-методичного центру p>
Управління освіти адміністрації Ленінського району p>
Єкатеринбург p>
2000 p>
Зміст
| Вступ. | 3 |
| 1. Причини та історія створення мови запитів SQL. | 6 |
| 1.1. Реляційні бази даних. Загальні поняття. | 6 |
| 1.2. Взаємодія SQL і СУБД. | 8 |
| 1.3. Стандарти SQL. Сьогоднішній стан. | 8 |
| 2. Технології, що забезпечують, web доступ до баз даних. | 13 |
| 2.1. Принципи роботи SQL-сервера. | 14 |
| 2.2. Таблиці SQL. | 15 |
| 2.2.1. Структура запитів SQL. | 16 |
| 2.2.2. Запити з використанням єдиної таблиці SQL. | 20 |
| 2.2.3. Запити з використанням кількох таблиць SQL. | 35 |
| 2.2.4 Модифікація даних у таблицях SQL. | 55 |
| 2.3. Огляд основних SQL-серверів. | 64 |
| 2.3.1. SQL-сервер Oralce. | 67 |
| 2.3.2. Microsoft SQL сервер. | 70 |
| 2.3.3. MySQL - сервер. | 72 |
| 2.4. Принципи роботи web-серверів. | 74 |
| 2.4.1. Web-сервер. Поняття, функції, характеристики. | 74 |
| 2.4.2. Триланкового архітектура клієнт-сервер. | 74 |
| 2.4.3. Архітектура Internet/Intranet. | 75 |
| 2.4.4. Огляд серверних програм для різних ОС. | 77 |
| 2.4.5. Стандарти, що полегшують створення Web-вузлів. | 78 |
| 2.4.6. Web-технології. | 79 |
| 2.4.7. Web-сервер Apache. | 80 |
| 2.4.8. Web-сервер Jigsaw. | 81 |
| Web-сервер Netscape Enterprise. | 82 |
| Microsoft Internet Information Server. | 87 |
| 2.5. Організація призначеного для користувача інтерфейсу для доступу до | 89 |
| баз даних. | |
| 3. База даних Інформаційно-методичного центру "Відомості | 95 |
| про освітніх установах ". | |
| 4. Питання безпеки і санкціонування доступу до баз | 100 |
| даних. | 104 |
| 5. Перспективи розвитку мережевих баз даних. | 106 |
| 6. Список літератури. | |
| Програми (Лістинг програм). | | P>
Введення p>
Бази даних виконують функцію систематизації знань. На основі цієїсистематизації можуть створюватися нові знання. Так чи інакше, будь-яка базаданих служить людині саме для опису що відбулися в минулому подій іна основі знання цих подій допомагає прийняти те чи інше рішення намайбутнє. База знань може бути побудована як мультимедійний довідник абояк набір текстів і файлів іншого формату, проіндексованих запевними ознаками в базі даних. p>
База даних - це, перш за все, сховище об'єктів даних, тобтонабору можливих понять або подій, що описуються базою даних, зможливістю пошуку цих об'єктів за ознаками. Невід'ємною рисою базиданих є можливість зв'язування об'єктів між собою. Базою данихможна вважати не тільки таблиці, індексуються файли зі знаннями різнихформатів, але й самі ці файли, тому, що вони є не типізованийсховищами знань у такій базі даних. p>
Отже, у базах знань ми накопичуємо досвід минулого. Потім людина можесам прийняти рішення на основі цього досвіду (типовий випадок з мультимедійнимдовідником) або поставити завдання перед базою даних з пошуку рішеннявідповідно до ситуації, що склалася (знайти закон, що пояснює правило оформленнямитної декларації і т.п.). Так відбувається в програмах довідковогохарактеру. Як окремий випадок баз даних, можна розглядати різніструктуровані файли, наприклад, словники для перекладачів, формати файлів
RTF, DOC, книги Microsoft Excel, файли з листами для поштових Internet -програм і т.д., життєво важливі функції баз даних, в яких реалізуютьсяза рахунок внутрішніх функцій програм працюють із ними. Бази даних можутьзастосовуватися як допоміжний засіб, що дозволяє реалізувати якуськорисну функцію. Наприклад, зберігання налаштувань програми, Internet-адресдля розсилки реклами і т.д. p>
Структура інформаційних систем. p>
Для побудови інформаційних систем застосовуються бази даних,створені навколо ядра бази даних. Робота з базою даних відбувається, якправило, в розрахованому на багато режимі, тобто програма має бутимережевий. У зв'язку з цим, необхідно забезпечити розділення прав доступурізним користувачам до даних, правильність завершення транзакцій, тобтопосилальну цілісність, обмеження та інші правила, що реалізуються черезвбудовані засоби сервера бази даних. До того ж, повинна бути забезпеченаприйнятна продуктивність інформаційної системи. У центрі всієїінформаційної системи стоїть сервер бази даних. Він забезпечуєнизькорівневий доступ до таблиць бази даних, в яких і зберігаєтьсяінформація про об'єкти бази даних. Ядром інформаційної системи впростому випадку можуть виступати кілька функцій, реалізованих упрограмі програмістом. p>
У сучасному світі найчастіше застосовується сервер додатків дляреалізації ядра інформаційної системи. У розподіленої обчислювальноїсистемі сервер додатків бере на себе функцію розподілу навантаженняміж серверами, які в загальному випадку можуть працювати під різнимиопераційними системами, або знаходиться в географічно різних місцях.
Сервер додатків - це місток між програмами-клієнтами і одним абодекількома серверами бази даних. За рахунок сервера додатків можна знизитинавантаження на програми користувача і реалізувати складні правила об'єктноїмоделі бази даних, які важко або нераціонально реалізовувати настороні сервера бази даних. В результаті, сервер додатків знижує трафікміж сервером бази даних і комп'ютером клієнта, підвищуючи загальнупродуктивність інформаційної системи. Виходячи зі сказаного раніше, надодаток користувача залишається тільки реалізація інтерфейсу. Такаструктура інформаційної системи називається багатоланкової, а додатоккористувача - тонким клієнтом. Треба відзначити, що в загальному випадку серверидодатків можуть посилати команди один одному, і взаємодіяти, такимчином, найбільш раціональним способом з географічно віддаленими серверамибаз даних. Наприклад, для отримання звіту з великою кількістюобчислюваних полів, немає необхідності робити декілька запитів до віддаленоїбази даних через Internet, якщо це може зробити сервер додатків,що знаходиться в безпосередній близькості від сервера бази даних. Він і пошлеу відповідь готовий звіт. p>
Таким чином, лише інформаційна система, побудована за принципомбагатоланкової, може задовольняти найбільш повним чином умоваминайвищої продуктивності при повній комунікабельності ірозподіленості обчислень. Система, побудована з декількох окремихмодулів, що виконують ряд певних завдань, до того ж, може бути простішемодифікується. p>
Необхідні функції бази даних. p>
Першою і найважливішою функцією бази даних, є функція зберіганняінформації. Інформація повинна зберігатися впорядковано для більш швидкого ізрозумілого користувачеві доступу до неї. Упорядкованість інформації в базіданих, крім зручностей доступу, може призвести до значного скороченняапаратних ресурсів, необхідних для її обслуговування. Упорядкованістьдосягається шляхом нормалізації. p>
Тут ми впритул підійшли до другої функції бази даних - введенняінформації. Яку інформацію буде вводити користувач? Хороша базаданих побудована з головного документа, довідників, з якихкористувач вводить інформацію і декількох полів для ручного введення,наприклад, текстів призначення платежу у платіжних дорученнях і суми. Базаданих повинна заповнюватися засобами, найбільш повно автоматизують цейпроцес. При цьому поганим тоном є: p>
введення інформації про один об'єкт різними способами або в різних місцях; p>
введення однієї і тієї ж інформації в декількох місцях; p>
введення інформації розрізнено, без підтримки загальної структури об'єкта. p>
Однією з основних функцій бази даних є автоматизація. Підавтоматизацією, як правило, розуміють автоматичне створення вихіднихдокументів та перерахунок даних, наприклад друк накладної, рахунку фактури тапротоколу узгодження цін у складській програмі для вихідної накладної. p>
Далі, потрібно згадати про системи прийняття рішень. Інформаційнасистема повинна дозволяти створювати статистичні звіти в реальному режимічасу про стан описуваного в базі даних процесу. Ця функція зручнадля керівників підрозділів, які можуть прогнозувати поведінкуописуваної системи на основі статистичних даних, отриманих з базиданих. p>
Власне, описані вище функції інформаційної системи є
«Джентльменським набором», якого достатньо у більшості випадків. Здодаткових функцій необхідно згадати можливість пошуку задекільком взаємопов'язаним характеристиками. p>
У єдиній інформаційній системі необхідна можливість ідентифікаціїкористувача з метою обмеження доступу користувачів до певних частинбази даних і введення інформації про творця документа та осіб,редагували його. Це надасть користувачам відчуття відповідальності заїх дії. p>
Гарна інформаційна система повинна легко розширюватися принеобхідність додати до неї нових можливостей. Розширюваністьмає на увазі елементи об'єктної орієнтованості, вбудовані в базуданих. Настроюючи ці об'єкти, можливо вносити незначні змінив структуру бази даних, що подовжує термін морального старіння всійінформаційної системи. Одним з факторів розширюваності єможливість зчленовується різнорідні бази даних в єдиний комплекс. Такаможливість зараз реалізується через додаткові модулі, які засвоєю суттю є серверами додатків, або правильна побудова базиданих за класичними реляційних законами. Останній випадок важкотим, що деякі сервери бази даних не можуть виконати один SQL запит дорізних базах даних, тим більше що знаходяться у географічній віддаленостіодин від одного. p>
Ще одна зручна функція в базі даних - це наскрізний проходження подокументів. p>
Описані вище функції у різних реалізаціях інформаційних системмають специфічні риси, орієнтовані на конкретне прикладнезастосування. p>
Причини та історія створення мови запитів SQL. p>
Реляційні бази даних. Загальні поняття. P>
Будь-яку структуру даних можна перетворити на просту двовимірну таблицю.
Таке уявлення є найбільш зручним і для користувача, і длямашини, - переважна більшість сучасних інформаційних системпрацює саме з такими таблицями. Бази даних, які складаються здвовимірних таблиць, називаються реляційними. p>
Основна ідея реляційного підходу полягає в тому, щоб представитидовільну структуру даних у вигляді простої двовимірної таблиці або, яккажуть, нормалізувати структуру. p>
З усіх систем баз даних реляційні належать до найбільш поширениму світі. Ці системи здатні розв'язати багато з тих проблем, якіускладнювали роботу з нереляціоннимі продуктами колишніх поколінь.
Програмісти і адміністратори таких баз даних були змушені ретельновивчати, як структурована інформація і як вона представлена в базіданих, що значно ускладнило розробку цих додатків і модифікаціюсамих програм. Реляційні системи здатні працювати на більш високомурівні. Всі операції з даними реалізуються програмою, званої DBMS
(система управління базою даних Звертатися до неї можна лише за допомогоюоператорів мови високого рівня. Хоча деякі продукти, як і ранішепідтримують роботу в термінах своїх власних мов, мова SQL (Standard
Query Language) став тим технологічним стандартом, на базі якогостворені всі, більш-менш відомі, реляційні продукти. p>
Мова для взаємодії з БД SQL з'явився в середині 70-х і буврозроблений в рамках проекту експериментальної реляційної СУБД System R.
Початкове назву мови SEQUEL (Structered English Query Language) тількичастково відображає суть цієї мови. Звичайно, мова був орієнтований головнимчином на зручну і зрозумілу користувачам формулювання запитів дореляційної БД, але насправді вже був повним мовою БД, що міститькрім операторів формулювання запитів і маніпулювання БД коштивизначення та маніпулювання схемою БД. У мові були відсутні коштисинхронізації доступу до об'єктів БД з боку паралельно виконуванихтранзакцій: із самого початку передбачалося, що необхідну синхронізаціюнеявно виконує СУБД. p>
В основі сучасних реляційних баз даних (і стандарту SQL) лежитькілька правил і принципів: p>
. Всі значення даних складаються з простих типів даних. У SQL відсутні масиви, покажчики, вектори та інші складні типи даних. P>
. Всі дані в реляційної бази даних зображуються у формі двовимірних таблиць (на мові математики - «відносин»). Кожна таблиця містить деяку кількість рядків (у тому числі 0), званих «картежамі» і один або декілька стовпців, які називаються «атрибутами». Всі рядки в таблиці мають одну і ту ж послідовність стовпців, в яких записані різні значення, однак набори значень в стовпцях відрізняються. P>
На малюнку 1 наведена проста таблиця такого типу. P>
. Після того як дані введені в БД, можна порівнювати значення в різних стовпцях (у тому числі і для різних таблиць) або об'єднувати рядки, в яких знайдено збіг. Це дозволяє співвідносити між собою рядки і робити дуже складні операції обробки над усіма даними, що знаходяться в базі. P>
. Всі операції визначаються тільки логікою, а не положенням рядка в таблиці. Наприклад, можна запросити всі рядки, що зі значенням 2 і не можливо запросити першого або, третій або п'ятий рядок. Рядки в реляційної бази даних розташовані в довільному порядку. Він не обов'язково відповідає тому порядку, в якому вони були занесені або в якому зберігаються на диску. P>
. Оскільки неможливо визначити рядок за її положенню (порядку в таблиці), необхідно мати один або декілька стовпців з унікальним значенням для ідентифікації кожного рядка. Ці стовпці називаються первинними ключами таблиці. P>
У прикладі на рис. 1 це перший стовпець. P>
| ID | Назва | Телефон | Місто |
| 2 | Іван І. Іванов | 555-001 | Москва |
| 1 | Костянтин В. Волков | 555-330 | Єкатеринбург |
| 3 | Василь В. Грабер | 555-607 | Санкт-Петербург | p>
Малюнок 1 p>
Однією з переваг реляційного підходу до побудови БД - відсутністьнеобхідність піклується про такі деталі, як способи подання данихабо їх фізичне розміщення в самій базі. Старі ієрархічні і мережнібази даних, в яких доводилося мати справу з подібними питаннямиреалізації, мали громіздку структуру і були складними в управлінні. p>
1.2. Взаємодія SQL і СУБД. P>
Збільшення обсягу та структурної складності збережених даних, розширеннякола користувачів інформаційних систем призвели до широкогопоширенню найбільш зручних і порівняно простих для розумінняреляційних (табличних) СУБД. Для забезпечення одночасного доступу доданими безлічі користувачів, нерідко розташованих досить далекоодин від одного і від місця зберігання баз даних, створені мережевімультіпользовательскіе версії СУБД. У них тим чи іншим шляхом вирішуютьсяспецифічні проблеми паралельних процесів, цілісності (правильності) ібезпеки даних, а також санкціонування доступу. p>
SQL став уніфікованим засобом спілкування і стандартною мовоюманіпулювання з базами даних, що володіє засобами для реалізаціїперерахованих вище можливостей. Після появи на ринку двох піонерських
СУБД - SQL/DS (1981 рік) і DB2 (1983 рік) - він набув статусу стандарту де -факто для професійних реляційних СУБД. У 1987 році SQL ставофіційним міжнародним стандартом мови баз даних, а в 1992 році вийшладруга версія цього стандарту. p>
Важливою відмінною рисою SQL є його незалежність відкомп'ютерного середовища (операційної системи і архітектури). Такий мову назвали
SQL - це абревіатура структурованого мови запитів (Structured Query
Language). SQL є інструментом, призначеним для обробки ічитання інформації, що міститься в комп'ютерній базі даних. p>
При створенні мови запитів нового покоління розробники намагалисязробити його простим і легким в освоєнні інструментом для звернення до БД. Упідсумку SQL став слабо структурованим мовою, особливо в порівнянні зтакими мовами, як С або Pascal, і в той же час досить потужним івідносно легким для вивчення. p>
1.3. Стандарти SQL. Сьогоднішній стан. P>
Одним з найбільш важливих кроків на шляху до визнання SQL на ринку став??поява стандартів на цю мову. Зазвичай при згадці стандарту SQLмають на увазі офіційний стандарт, затверджений Американським інститутомнаціональних стандартів (American National Standards Institute - ANSI) і
Міжнародною організацією по стандартах (International Standards
Organization-ISO). Однак існують і інші важливі стандарти SQL,включаючи SQL, реалізований у системі DB2 компанії IBM, і стандарт X/OPENдля SQL в середовищі UNIX. p>
Робота над офіційним стандартом SQL почалася в 1982 році, коли ANSIпоставив перед своїм комітетом ХЗН2 завдання зі створення стандарту мовиреляційних баз даних. Спочатку в комітеті обговорювалися гідностірізних запропонованих мов. Однак оскільки на той час SQL вже ставфактичним стандартом, комітет ХЗН2 зупинив свій вибір на ньому і зайнявсястандартизацією SQL. p>
Розроблений в результаті стандарт у великій мірі був заснований надіалекті SQL системи DB2, хоча і містив у собі ряд істотних відмінностейвід цього діалекту. Після декількох доробок, в 1986 році стандарт бувофіційно затверджений як стандарт ANSI номер Х3.135, а в 1987 році - уяк стандарт ISO. Потім стандарт ANSI/ISO був прийнятий урядом
США як федеральний стандарт США з обробки інформації (FIPS - Federal
Information Processing Standard). Цей стандарт, незначнопереглянутий у 1989 році, зазвичай називають стандартом "SQL-89", або
"SQLI". Коли в даному рефераті я згадую «стандарт ANSI/ISO", тоувазі SQLI, який в даний час лежить в основі більшостікомерційних продуктів. p>
Багато хто з членів комітетів з стандартизації ANSI та ISO представлялифірми-постачальники різних СУБД, у кожній з яких був реалізованийвласний варіант SQL. Як і діалекти людської мови, діалекти SQLбули в основному схожі один на одного, проте несумісні в деталях. Підбагатьох випадках комітет просто обійшов існуючі відмінності і нестандартизував деякі частини мови, визначивши, що вони реалізуються зарозсуд розробника. Цей підхід дозволив оголосити велике числореалізацій SQL сумісними зі стандартом, проте зробив сам стандартвідносно слабким. p>
Щоб заповнити ці прогалини, комітет ANSI продовжив свою роботу і створивпроект нового, більш жорсткого стандарту SQL2. На відміну від стандарту 1989року, проект SQL2 передбачав можливості, що виходять за рамки таких,вже існуючих в реальних комерційних продуктах. А для наступного за нимстандарту SQL3 були запропоновані ще більш глибокі зміни. У результатізапропоновані стандарти SQL2 і SQL3 виявилися більш суперечливими, ніжвихідний стандарт. Стандарт SQL2 пройшов процес затвердження в ANSI і бувостаточно прийнятий в жовтні 1992 року. У той час, як перший стандарт
1986 займає не більше ста сторінок, офіційний стандарт SQL2 міститьблизько шестисот. p>
Всупереч стандарту SQL2, у всіх існуючих на сьогоднішній денькомерційних продуктах підтримуються власні діалекти SQL. Більш того,постачальники СУБД включають у свої продукти нові можливості і розширюютьвласні діалекти SQL, чим ще більше віддаляють їх від стандарту. Однакядро SQL стандартизовано досить жорстко. Там, де це можна булозробити, не зачіпаючи інтереси клієнтів, постачальники СУБД привели своїпродукти у відповідність до стандарту SQL-89, те ж саме поступовосталося і з SQL2. p>
Хоча стандарт ANSI/ISO найбільш широко розповсюджений, він не єєдиним стандартом SQL. Європейська група постачальників X/OPEN такожприйняла SQL в якості одного з своїх стандартів для «середовища переноситедодатків »на основі UNIX. Стандарти групи X/OPEN відіграють важливу роль наєвропейському комп'ютерному ринку, де основною проблемою єпереносимість додатків між комп'ютерними системами різнихвиробників. До нещастя, стандарт X/OPEN відрізняється від стандарту
ANSI/ISO. P>
Крім того, компанія IBM включила SQL в свою специфікацію Systems
Application Architecture (архітектура прикладних систем) і пообіцяла, щовсі її продукти, очевидно, будуть переведені на цей діалект SQL. Хочадана специфікація і не виправдала надій на уніфікацію лінії продуктівкомпанії IBM, рух в бік уніфікації SQL в IBM триває. Система
DB2 залишається основною СУБД компанії IBM для мейнфреймів. Однак компаніявипустила реалізацію DB2 і для OS/2 (власної операційної системи дляперсональних комп'ютерів), і для лінії серверів і робочих станцій RS/6000,що працюють під управлінням UNIX. Таким чином, діалект DB2 мови SQLє потужним стандартом де-факто. p>
У технології баз даних існує важлива область, яку незачіпають офіційні стандарти. Це здатність до взаємодії зіншими базами даних - методи, за допомогою яких різні БД можутьобмінюватися інформацією (як правило, по мережі). У 1989 році кількапостачальників сформували консорціум SQL Access Group спеціально для вирішенняцієї проблеми. У 1991 році консорціум опублікував специфікацію RDA (Remote
Database Access - віддалений доступ до баз даних). Ця специфікація тіснопов'язана з протоколами OSI, які не змогли завоювати широкого визнання,тому вона робить на ринок незначний вплив. Прозорістьвзаємодії між різними базами даних залишається ілюзорною мрією. p>
Тим не менше, другий стандарт від SQL Access Group має на ринку більшийвагу. У результаті наполегливих вимог компанії Microsoft, консорціум SQL
Access Group включив в стандарт SQL інтерфейс викликів функцій. Отриманаспецифікація CLI (Call Level Interface), заснована на розробках компанії
Microsoft, побачила світ у 1992 році. У цьому ж році була опублікованавласна специфікація ODBC (Open Database Connectivity - взаємодіяз відкритими базами даних) компанії Microsoft, заснована на стандарті CLI.
Завдяки ринкової силі Microsoft і благословення, отриманим «відкритимстандартом »від SQL Access Group, ODBC виявився стандартом де-факто дляінтерфейсів доступу до баз даних на персональних комп'ютерах. Навесні 1993року компанії Apple і Microsoft оголосили про угоду щодопідтримки ODBC в MacOS і Windows, що закріпило за цією специфікацієюстатус стандарту в обох популярних середовищах з графічним призначеним для користувачаінтерфейсом. p>
Поява стандарту SQL викликало досить багато захоплених заяв пропереносимості SQL і використовують його додатків. Насправді прогалини встандарті SQL-89 та розбіжності між існуючими діалектами SQL достатньозначні, і при перекладі програми під іншу СУБД його завждидоводиться модифіковані. Ці відмінності, більшість з яких усунутостандарті SQL2, включають в себе: p>
Коди помилок. У стандарті SQL-89 не визначені коди, які повертаютьоператори SQL при виникненні помилок, і в кожній з комерційнихреалізацій використовується власний набір таких кодів. У стандарті SQL2визначені стандартні коди помилок. p>
Типи даних. У стандарті SQL-89 визначений мінімальний набір типівданих, однак, у ньому відсутні деякі з найбільш поширених такорисних типів, наприклад символьні рядки змінної довжини, дата і час,а також грошові одиниці. У стандарті SQL2 згадані ці типи даних,проте, відсутні «нові» типи даних, такі як графічні тамультимедійні об'єкти. p>
Системні таблиці. У стандарті SQL-89 замовчується про системні таблицях,в яких міститься інформація про структуру самої бази даних. Томукожен постачальник створював власні системні таблиці, і їх структуравідрізняється навіть у чотирьох реалізаціях SQL компанії IBM. Системні таблицістандартизовані в SQL2. p>
Інтерактивний SQL. У стандарті визначено тільки програмний SQL,який використовується прикладною програмою, але не інтерактивний SQL. Наприклад,оператор select, призначений для виконання запитів до бази даних уінтерактивному режимі, в стандарті відсутній. p>
Програмний інтерфейс. У першому стандарті визначено абстрактний спосібвикористання SQL в програмах, написаних на таких мовахпрограмування, як COBOL, FORTRAN та інші. Цей спосіб не використовуєтьсяні в одному комерційному продукті, а в існуючих інтерфейсівє значні відмінності. У стандарті SQL2 визначений інтерфейсвбудованого SQL для популярних мов програмування, але не інтерфейсвиконання функцій. p>
Динамічний SQL. У стандарті SQL-89 не описані елементи SQL,необхідні для розробки додатків загального призначення, таких якгенератори звітів та програми створення і виконання запитів. Однак ціелементи, відомі під назвою динамічний SQL, є майже у всіх
СУБД і в різних системах значно відрізняються. У SQL2 входить стандартдинамічного SQL. p>
Семантичні відмінності. Оскільки деякі елементи визначені встандартах як залежні від реалізації, може виникнути ситуація, коли врезультаті виконання одного і того ж запиту до двох сумісних СУБДбудуть отримані два різних набору результатів. Відмінності результатівобумовлені відмінностями в обробці значень null, різними агрегатнимифункціями і розбіжністю процедур видалення повторюваних рядків. p>
Послідовність порівняння. У стандарті SQL-89 не згадуютьсяпослідовності порівняння (сортування) символів, що зберігаються в базіданих. Результати запиту з сортуванням відрізнятимуться при виконанніцього запиту на персональному комп'ютері (з кодуванням ASCII) і намейнфрейми (з кодуванням EBCDIC). Стандарт SQL2 дозволяє програмі абокористувачеві вказувати необхідну послідовність сортування. p>
Структура бази даних. У стандарті SQL-89 визначено SQL, якийвикористовується вже після того, як база даних була відкрита і підготовлена дороботі. Деталі найменування баз даних і первинного підключення до нихсильно відрізняються і несумісні. Стандарт SQL2 в деякій міріуніфікує цей процес, але не може повністю ліквідувати всі відмінності. p>
Всупереч перелічених відмінностей, на початку 90-х років стали з'являтисякомерційні програми, що реалізують переносимість додатків міжрізними СУБД. Однак у таких програмах для кожної з
СУБД потрібен спеціальний конвертер, який генерує код відповідноз певним діалектом SQL, виконує перетворення типів даних,транслює коди помилок і т.д. «Прозора» переносимість між різними
СУБД, що використовують SQL, є основною метою стандарту SQL2 і протоколу
ODBC. Однак повсюдний, «прозорий» і уніфікований доступ до базданих SQL залишається справою майбутнього. p>
Технології, що забезпечують мережевий доступ до баз даних p>
Всесвітня Павутина недарма так швидко завоювала широку популярністьсеред користувачів Internet, у світі бізнесу, науки, політики і т. д.
Основні досягнення Web - це простота опублікування інформації в мережі,зручність і порівняльна уніфікованість доступу до документів, наявність насьогоднішній день досить розвинених засобів пошуку. Проте в цілому способиподання, зберігання та пошуку інформації в WWW відносяться до категоріїінформаційно-пошукових систем (ІПС). Хоча сховища даних у вузлах Webіноді називають базами даних, цей термін у даному випадку можнавикористовувати тільки в самому широкому сенсі. Історично ІПС застосовувалися длязберігання слабкоструктурованих і рідко змінною інформацією. Бази даниху вузькому сенсі - це сховища структурованої, змінною інформацією,причому інформація в базі даних повинна завжди перебувати в узгодженомустані. p>
З рівним успіхом можна хвалити і лаяти Web. Можна хвалити Світової
Павутину за те, що, не виходячи з дому, ви можете побувати в будь-якій точціземної кулі і подивитися, що ж там відбувається. Можна лаяти Web за те,що важко знайти справді актуальну інформацію (зазвичай воназастаріла), за те, що сховища інформації містять дуже багато «сміття»,опублікованого незрозуміло з яких міркувань. Але в будь-якому випадку інтерфейсдійсно зручний. p>
Ситуація з базами даних кардинально відрізняється. Саме бази данихмістять основні знання людства. Наприкінці двадцятого століття з появоютехнології баз даних ми накопичили більше інформації, ніж за всю попереднюісторію. Вся біда в тому, що доступ до баз даних (навіть до тих, якімістять повністю відкриту інформацію) обмежений. Щоб отриматипотрібну йому інформацію, користувач повинен мати фізичний доступ довідповідної СУБД, бути в курсі моделі даних, знати схему бази данихі, нарешті, вміти користуватися відповідною мовою запитів. ЩоЩодо мови запитів, то проблему частково вирішує протокол ODBC,дозволяє направляти обмежений набір операторів SQL (з проміжноюобробкою відповідним драйвером ODBC) до довільного сервера базданих. Але це тільки часткове рішення, оскільки воно ніяк не допомагаєкористувачеві зрозуміти схему бази даних (навіть у термінах SQL) і, звичайно, несприяє створення уніфікованого інтерфейсу кінцевого користувача
(не можна ж змусити всіх працювати в рядковій режимі на мові SQL). p>
Отже, ми маємо зручні засоби розробки розподілених в Internetгіпермедійний документів, прості, зручні, розвинуті та уніфікованіінтерфейси для доступу до інформації WWW. Крім того, ми маємо великекількість цінних баз даних, керованих різнорідними СУБД, а такожбажання зробити ці бази доступними всім людям (у разі публічних базданих) або членам територіально-розподіленої корпорації (у разікорпоративних баз даних). Виникає природне бажання схрестити ці дватехнології і забезпечити доступ до баз даних в інтерфейсі Web. Ще двароки тому існували тільки ідеї такого схрещування і не дуже ретельнорозроблені підходи до реалізації. На сьогоднішній день такі механізми вжеіснують і використовуються. p>
1 Принципи роботи SQL-сервера p>
SQL є інструментом, призначеним для обробки і читання даних,що містяться в комп'ютерній базі даних. SQL (структурований мовазапитів) як випливає з назви, є мовою програмування,який застосовується для організації взаємодії користувача з базоюданих. Насправді SQL працює тільки з базами даних одногопевного типу, які називаються реляційними. p>
Малюнок 2.1 p>
На малюнку 2.1 зображена схема роботи SQL. Відповідно до цієї схеми, вобчислювальної системі є база даних, у якій зберігається важливаінформація. Якщо БД відноситься до сфери бізнесу, то в ній може зберігатисяінформація про матеріальні цінності, що випускається продукції, обсягах продажіві зарплату. У базі даних на персональному комп'ютері може зберігатисяінформація про виписаних чеках, телефони та адреси або інформація,витягнута з більшої обчислювальної системи. Комп'ютернапрограма, яка керує базою даних, називається системою управліннябазою даних, або СУБД.
Якщо користувачеві необхідно прочитати дані з бази даних, вінзапрошувати їх у SQL за допомогою СУБД. SQL обробляє запит, знаходитьнеобхідні дані і посилає їх користувачеві. Процес запрашіванія даних іотримання результату називається запитом до бази даних: звідси й назва --структурований мова запитів.
Проте ця назва не зовсім відповідає дійсності. Cегодня SQLявляє собою щось набагато більше, ніж простий інструмент створеннязапитів, хоча саме для цього він і був спочатку призначений.
Незважаючи на те, що читання даних як і раніше залишається однією з найбільшважливих функцій SQL, зараз ця мова використовується для реалізації всіхфункціональних можливостей, які СУБД надає користувачеві, асаме:
. Організація даних. SQL дає користувачеві можливість змінювати структуру представлення даних, а також встановлювати відносини між елементами бази даних.
. Читання даних. SQL дає користувачеві або додатком можливість читати з бази даних містяться в ній дані і користуватися ними.
. Обробка даних. SQL дає користувачеві або додатком можливість змінювати базу даних, тобто додавати в неї нові дані, а також видаляти або відновлювати вже наявні в ній дані.
. Управління доступом. За допомогою SQL можна обмежити можливості користувача з читання та зміни даних і захистити їх від несанкціонованого доступу.
. Спільне використання даних. SQL координує спільне використання даних користувачами, що працюють паралельно, щоб вони не заважали один одному.
. Цілісність даних. SQL дозволяє забезпечити цілісність бази даних, захищаючи її від руйнування через неузгоджені змін або відмови системи. P>
Таким чином, СУБД є досить потужним засобом длявзаємодії з SQL. p>
Основними об'єктами реляційної бази даних є: p>
(TABLE) Таблиця p>
Прямокутна таблиця, що складається з рядків і стовпців. Поставити таблицю --значить вказати, з яких стовпців вонаскладається. p>
(ROW) Рядок p>
Запис, що складається з полів - стовпців. У кожному полі міститься йогозначення, або значення NULL - «порожньо». Строк в таблиці може бути скількизавгодно. Фізичний порядок їх розташування один щодо одногоневизначений. p>
(COLUMN) Стовпець p>
Кожен стовпець у таблиці має власні ім'я і тип. p>
1 Таблиці SQL p>
У реляційної бази даних інформація організована у вигляді таблиць,розділених на рядки і стовпці, на перетині яких містяться значенняданих. Використовувані в мові SQL для запитів поєднання ключів (CREATE
TABLE my_table - створення таблиці з назвою my_table) одержали назву
«Пропозиція». Таблиці створюються в SLQ за допомогою пропозиції CREATE TABLE.
Пропозиція CREAT TABLE специфікує ім'я базової таблиці, яка повиннабути створена, імена її стовпців і типи даних для цих стовпців. CREAT
TABLE - виконується пропозицію. Якщо SQL-сервера дати запит CREATE TABLE,система побудує таблицю, яка спочатку буде порожнім: вона буде містититільки рядок заголовків стовпчиків, але не буде ще містити ніяких строкз даними. Інформація до таблиці вставляється за допомогою пропозиції команди
INSERT p>
1 Структура запитів SQL. P>
Всі запити на отримання практично будь-яких даних з однієї абодекількох таблиць виконуються за допомогою єдиного пропозиції SELECT.
У синтаксичних конструкціях для звернення до БД використовуються наступніпозначення: p>
1. зірочка (*) для позначення «все» - вживається в звичайному для програмування сенсі, тобто «Всі випадки, що задовольняють визначенням»; p>
2. квадратні дужки ([]) - означають, що конструкції, укладені в ці дужки, є необов'язковими (тобто можуть бути опущені); p>
3. фігурні дужки (()) - означають, що конструкції, укладені в ці дужки, повинні розглядатися як цілі синтаксичні одиниці, тобто вони дозволяють уточнити порядок розбору синтаксичних конструкцій, замінюючи звичайні дужки, що використовуються в синтаксисі SQL; p>
4. три крапки (...) - вказує на те, що безпосередньо передує йому синтаксична одиниця факультативно може повторюватися один або більше разів; p>
5. пряма риса (|) - означає наявність вибору з двох або більше можливостей. Наприклад, позначення ASC | DESC вказує, можна вибрати один з термінів ASC або DESC; коли ж один з елементів вибору укладений у квадратні дужки, то це означає, що він вибирається за замовчуванням (так, [ASC] | DESC означає, що відсутність всій цієї конструкції буде сприйматися як вибір ASC); p>
6. крапка з комою (;) - завершальний елемент пропозицій SQL; p>
7. кома (,) - використовується для розділення елементів списків; p>
8. пробіли () - можуть вводитися для підвищення наочності між будь-якими синтаксичними конструкціями пропозицій SQL; p>
9. жирні прописні латинські букви і символи - використовуються для написання конструкцій мови SQL і повинні (якщо це спеціально не обумовлено) записуватися в точності так, як показано-... ... ..;
10. малі літери використовуються для написання конструкцій, які повинні замінюватися конкретними значеннями, вибраними для