Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи роботи з SQL - посібник - нова редакція.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

4 Версії sql

Для комп’ютерної галузі, як, втім, і для будь-якої іншої, дотримання стандартів забезпечує ряд переваг й, одночасно, становить неприємний обов’язок. Як уже було сказано, SQL являє собою відкритий стандарт, що не належить якій-небудь компанії, але вихідний від ANSI. SQL, повністю відповідній цій умові, називається «чистим» SQL або ANSI-SQL. Чистоту злегка мажуть дві проблеми. По-перше, кожен розробник намагається зробити свою СКБД несхожою на інші. У результаті кожна з них надає SQL з розвиненими засобами, удосконаленнями або розширеннями, що виходять за межі стандарту ANSI-SQL і, зрозуміло, відсутніми в продуктах інших розробників. Наприклад, у більшості сучасних СКБД реалізовані поля з автоматичним збільшенням значення лічильника, які не передбачені жодним стандартом SQL. Подібний патентований засіб, як правило, не застосовано в продукті конкурента. На рівні матеріалу даного посібника зазначені розходження мінімальні, і ми будемо звертати на них увагу в міру потреби.

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

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

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

5 Термінологія

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

Дані – певна інформаційна множина з деякими загальними характеристиками.

Приміром, дані про працівників підприємства або установи про дати народження: «30.08.1963 – Ольга Бабкіна, 19.09.1958 – Дарина Воронова, 02.07.1969 – Інна Ясенєва».

Метадані – інформація про структуру й організацію даних у базі даних.

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

Таблиця ім’я = Сотрудники число полів = 17

Поле №1 ім’я = КодСотрудника тип = Счетчик розмір = Длинное целое

Поле №2 ім’я = Фамилия тип = Текстовый розмір = 20

Поле №3 ім’я = Имя тип = Текстовый розмір = 10

...

Поле №17 ім’я = Подчиняется тип = Числовой розмір = Длинное целое

або в такий:

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

База даних – сукупність даних і метаданих.

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

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

Сховище даних – джерело даних (у нашому випадку джерело даних, здатне реагувати на SQL-оператори).

Приблизно з 1985 р. найбільше поширення одержали бази даних, іменовані реляційними. Вивченням змісту цього терміна ми займемося далі, поки ж досить буде нагадати, що реляційні бази даних створюються за правилами, розробленим д-ром Е. Ф. Коддом (Тедом). Останнім часом все-таки виник також інтерес до нереляційної організації даних – головним чином, ієрархічної. Представимо, приміром, деякий обсяг інформації у вигляді документів, приготовлених у текстовому редакторі, що зберігаються на диску настільного комп’ютера. Звичайно ж багато цих документів можна розглядати як базу даних, організовану по трохи іншому ієрархічному принципу: диск, папка, папки наступних рівнів, файл. Структура даних на кожному рівні тут не регламентується. Щоб виділити методи обробки інформації, що не залежать від типу джерела даних (реляційного або іншого), замість терміна „база даних” скористаємося словосполученням „сховище даних”, яке традиційно застосовувалось до ранніх, дореляційних видів баз даних. У наш час такі бази називаються базами даних на пласких файлах.

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

Сервер даних – містить дані і являє собою один або кілька серверів мережного оточення.

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

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

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

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

Найпоширеніші СКБД: IBM DB2, Microsoft SQL Server, Oracle, Sybase й Informix. Microsoft Access, залишаючись локальною базою даних, також здатний обробляти SQL-оператори. Кожна СКБД має можливість прийому SQL-операторів і передачі їх на процесор бази даних. І, звичайно ж, вона повертає результати виконання цих операторів програмі, що послала запит. Більші й складні СКБД бувають тісно інтегровані в конкретні операційні системи; деякі з них містять у собі ОС, оптимізовану для керування даними.

Процесор бази даних – частина СКБД, безпосередньо зайнята обробкою даних.

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

Результати – вивчаючі SQL іноді невірно розуміють цей термін, оскільки він може вживатися в трьох різних змістах:

  1. Найчастіше результат означає набір даних, що СКБД повертає зовнішньому інтерфейсу у відповідь на SQL-оператор. Наприклад, зовнішній інтерфейс запитує «імена й прізвища співробітників, що прийшли на роботу після 1995 р.», і одержує результат у вигляді набору записів, що містять потрібні імена й прізвища.

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

  1. У цьому випадку результатом є сам факт зміни даних. СКБД може не повертати ніякої інформації, крім повідомлення про успішне завершення операції.

  2. Третій варіант – внесення змін у дані, після чого СКБД повертає звіт про виконання операції. Звичайно звіт містить дані про кількість модифікованих записів, про наявність або відсутність помилок, а також про те, чи успішним було виконання SQL-оператора. У цьому випадку ми маємо реальний результат, але він не має фактичних даних. Це просте повідомлення або код, що вказує число оброблених записів і наявність або відсутність помилок.

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

SQL й SQL-сервер. SQL – відкритий стандарт мови для програмування взаємодії з базами даних. Microsoft SQL Server й Sybase SQL Server – патентовані СКБД, здатні обробляти SQL-оператори. Microsoft SQL Server – дуже популярна СКБД, але це лише одна з множини систем, здатних обробляти дані й SQL-оператори.