Знаймо

Додати знання

приховати рекламу

Цей текст може містити помилки.

DB2



План:


Введення

DB2 - сімейство систем управління реляційними базами даних, що випускаються корпорацією IBM. Найчастіше, посилаючись на DB2, мають на увазі реляційну систему управління базами даних DB2 Universal Database (DB2 UDB) [1].


1. Реалізації

В 2000-і роки СУБД DB2 представлена ​​версіями на наступних платформах:

  • DB2 for Linux, UNIX and Windows v9 ​​для платформ AIX, HP-UX, Linux, Solaris, Windows і бета-версія для платформи Mac OS X
  • DB2 for z / OS v9 для платформ z / OS і OS/390
  • DB2 Server for VSE & VM v7 для платформ z / VM і z / VSE
  • DB2 for i для платформи IBM i (вбудована в систему на апаратно-програмному рівні)

В 1990-і роки також випускалися версії сервера DB2 для OS / 2, UnixWare, PTX.

Клієнти СУБД DB2, крім перерахованих платформ, випускаються або випускалися в різних версіях також для SINIX, IRIX, класичної Mac OS і для MS-DOS, а також в мобільній версії DB2 Everyplace для Windows CE, Palm OS, Symbian OS, Neutrino і віртуальної машини Java.

Починаючи з 2000-х років крім комерційних продуктів сімейства, IBM поширює також безкоштовний дистрибутив DB2 Express-C:

Обмеження DB2 Express-C
  • платформи: Linux (x86, x86-64, POWER), Windows (x86, x86-64), Solaris (x86-64), Mac OS X (x86-64 beta). [2]
  • один примірник СУБД використовує не більше одного двоядерного процесора
  • один примірник СУБД використовується не більше 2 Гбайт оперативної пам'яті (загальна кількість процесорів і пам'яті в операційній системі може бути будь-яким, але ресурси понад зазначених обмежень не будуть використовуватися СУБД).

2. Історія

Витоки DB2 виникають з початку 1970-х років, коли Едгар Кодд, що працював на IBM, розробив теорію реляційних баз даних і в червні 1970 опублікував модель маніпуляції даними. Для втілення цієї моделі він розробив мову реляційних баз даних і назвав його Alpha. IBM вирішила передати подальшу розробку групі програмістів, непідконтрольної Кодда. Порушивши деякі принципи реляційної моделі, вони реалізували її як "структурований англійська мова запитів", скорочено SEQUEL. Оскільки акронім SEQUEL був на той момент сторонньої зареєстрованою торговою маркою, назву скоротили до SQL - "структурована мова запитів".

З 1975 по 1982 прототип DB2 розроблявся в IBM під назвою System Relational, або System R. Мова SQL вперше був реалізований саме в IBM System R, але ця система мала дослідний характер, а комерційний продукт, що включає SQL, першою випустила компанія Oracle в 1979.

СУБД DB2 отримала свою назву на 1982, коли був випущений перший комерційний реліз для VM під назвою SQL / DS, і потім реліз для MVS під назвою DB2. Довгий час поряд з "DB2" вживався варіант "Database 2", який також є торговою маркою IBM.

Таким чином, історично СУБД DB2 виникла з продуктів DB2 для MVS (нащадком якого є DB2 for z / OS) і спорідненого йому SQL / DS для VM (нащадок - DB2 Server for VSE & VM). Надалі іншим колективом розробників в IBM був реалізований сервер OS / 2 EE Database Manager, згодом еволюціонував в DB2 v2 для OS / 2, AIX і потім Windows, а потім в DB2 UDB (його нащадок - DB2 for Linux, UNIX and Windows). Ще одним колективом була виконана інтеграція архітектури DB2 з вбудованою базою даних AS/400 (нащадок - DB2 for i). IBM поступово рухається по шляху інтеграції всіх цих гілок.


3. Особливості

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

Завдяки пріоритету IBM у розвитку реляційної теорії та позицій фірми в комп'ютерній галузі, діалект DB2 SQL значно впливає на стандарти SQL ANSI / ISO [джерело не вказано 196 днів].

Збережені процедури в DB2 не дуже широко застосовуються [джерело не вказано 196 днів], при цьому традиційно для написання збережених процедур використовуються звичайні мови програмування високого рівня ( Сі, Java, PL / I, Кобол і т. д.), це дозволяє програмісту легко оформляти один і той же код або як частина програми, або як процедуру, що зберігається, в залежності від того, на клієнті або на сервері його доцільніше виконувати. В даний час в DB2 також реалізовано процедурне розширення SQL для збережених процедур відповідно до стандарту ANSI SQL / PSM.

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

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

DB2 є єдиною реляційної СУБД загального призначення, що має реалізації на апаратно-програмному рівні (система IBM i; також в устаткуванні мейнфреймів IBM System z реалізуються засоби підтримки DB2).

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


4. Обробка помилок

Корисною особливістю SQL-сервера DB2 є можливість обробки помилок. Для цієї мети використовується структура SQLCA ( англ. SQL Communications Area - Область зв'язку SQL), яка повертає інформацію про помилку прикладної програмі після кожного виконання SQL-вирази.

4.1. Поля структури SQLCODE та їх значення

Основна, але не завжди корисна діагностика помилки міститься в полі SQLCODE (тип даних - ціле число) всередині SQLCA блоку. Вона може приймати наступні значення:

  • 0 означає успішне виконання.
  • Позитивне число означає успішне виконання з одним або більше попередженнями. Наприклад, +100 означає, що не знайдені стовпці.
  • Негативне число означає невдачу з помилкою. Наприклад, -911 означає виявлений минулий інтервал очікування блокування (або мертву блокування), запускає послідовний відкат.

SQLERRM (тип даних - рядок з 71 символів). Містить текстову рядок з описом помилки у випадку, якщо поле SQLCODE менше нуля.

SQLERRD (тип даних - масив, 6 цілих чисел). Описує результат виконання останнього оператора SQL:

  • 1 елемент - внутрішня інформація;
  • 2 елементи - містить сгенерированное сервером значення поля типу SERIAL для оператора INSERT, або додатковий код помилки;
  • 3 елемент - дорівнює кількості оброблених записів;
  • 4 елемент - приблизна вартість виконання даного оператора;
  • 5 елемент - зміщення помилки в текстовій запису оператора SQL;
  • 6 елемент - внутрішня інформація.

Примітки

  1. Іноді зустрічається написання "DB / 2", але таке написання невірно: у системі позначень IBM число в знаменнику дробу означає платформу і "/ 2" означає продукт для операційної системи OS / 2 (або серії комп'ютерів PS / 2). Наприклад, версія DB2 для OS / 2 позначалася "DB2 / 2"
  2. IBM DB2 Express-C Overview - www-01.ibm.com/software/data/db2/express/about.html? S_TACT = index & S_CMP = expcsite

Цей текст може містити помилки.

Схожі роботи | скачати
© Усі права захищені
написати до нас