DB2

DB2
DB2
Тип

Система управления базами данных

Разработчик

IBM

Написана на

C, C++

Операционная система

Кроссплатформенное ПО

Первый выпуск

23 мая 1995

Лицензия

Проприетарная EULA

DB2 — семейство систем управления реляционными базами данных, выпускаемых корпорацией IBM. Чаще всего, ссылаясь на DB2, имеют в виду реляционную систему управления базами данных DB2 Universal Database (DB2 UDB)[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]
  • один экземпляр СУБД использует не более одного двухъядерного процессора
  • один экземпляр СУБД использует не более 4 Гбайт оперативной памяти (общее количество процессоров и памяти в операционной системе может быть любым, но ресурсы сверх указанных ограничений не будут использоваться СУБД).

История

Истоки 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 постепенно движется по пути интеграции всех этих веток.

Особенности

Диалект языка SQL, используемый в DB2 за редкими исключениями строго декларативен, система снабжена многофазовым оптимизатором, строящий по этим декларативным конструкциям план выполнения запроса. В диалекте SQL DB2 практически отсутствуют[обтекаемые выражения] подсказки оптимизатору, мало развит (а долгое время вообще отсутствовал) язык хранимых процедур, и, таким образом, всё направлено на поддержание декларативного стиля написания запросов. Язык SQL DB2 при этом является вычислительно полным[источник не указан 59 дней], то есть потенциально позволяет в декларативной форме определять любые вычислимые соответствия между исходными данными и результатом. Это достигается в том числе за счёт использования табличных выражений, рекурсии и других развитых механизмов манипулирования данными.

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

Оптимизатор DB2 широко использует статистику распределения данных в таблицах (если процесс её сбора был выполнен администратором базы данных), поэтому один и тот же запрос на языке SQL может быть оттранслирован в совершенно различные планы выполнения в зависимости от статистических характеристик данных, которые он обрабатывает.

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

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

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

Обработка ошибок

Полезной особенностью SQL-сервера DB2 является возможность обработки ошибок. Для этой цели используется структура SQLCA (англ. SQL Communications Area — область связи SQL), возвращающая информацию об ошибке прикладной программе после каждого выполнения SQL-выражения.

Поля структуры 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

Ссылки

Литература

  • Дейт К. Руководство по реляционной СУБД DB2. — М.: Финансы и статистика, 1988. — 320 с. — ISBN 5-279-00063-9
  • Зикопулос П. К., Бакларц Дж., деРус Д., Мельник Р. Б. DB2 версии 8: официальное руководство = DB2 Version 8: The Official Guide. — М.: КУДИЦ-ОБРАЗ, 2004. — 400 с. — ISBN 5-9579-0031-1
  • Смирнов С. Н. Работаем с IBM DB2: Учебное пособие. — М.: Гелиос, 2001. — 304 с. — ISBN 5-85438-007-2
  • Сьюзен Виссер, Билл Вонг. Освой самостоятельно DB2 Universal Database за 21 день = Sams Teach Yourself DB2 Universal Database in 21 Days. — 2-е изд. — М.: Вильямс, 2004. — 528 с. — ISBN 0-672-32582-9
  • Hook J., Harbus R., Snow D. The Universal Guide to DB2 for Windows NT®. — New Jersey: Prentice Hall PTR, 1999. — P. 504. — ISBN 0-13-099723-4




Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "DB2" в других словарях:

  • DB2 — Datenbank Basisdaten Entwickler IBM Aktuelle Version …   Deutsch Wikipedia

  • DB2 — es una marca comercial, propiedad de IBM, bajo la cual se comercializa un sistema de gestión de base de datos. DB2 versión 9 es un motor de base de datos relacional que integra XML de manera nativa, lo que IBM ha llamado pureXML, que permite… …   Wikipedia Español

  • DB2 —   [Abk. für DataBase 2], relationale Datenbank der Firma IBM, die zunächst vor allem für Großrechner angeboten wurde, heute aber auch für PCs erhältlich ist. DB2 unterstützt die Abfragesprache SQL. Die aktuelle Version (Ende 2001) heißt »DB2… …   Universal-Lexikon

  • DB2 — may refer to: Aston Martin DB2, an English sports car IBM DB2, in computing, a relational database management system, more recently called a data server by IBM Dark Beginning 2, a Yu Gi Oh! Trading Card Game booster pack This disambiguation page… …   Wikipedia

  • DB2 — es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos relacional de dicha compañía, así como otras herramientas relacionadas encuadradas en la misma línea de producto. Incluye todo lo… …   Enciclopedia Universal

  • DB2/2 — DB2 für OS/2 eine doppelt so langsame Datenbank für ein halbes Betriebssystem ; ) …   Acronyms

  • DB2/2 — DB2 für OS/2 eine doppelt so langsame Datenbank für ein halbes Betriebssystem ; ) …   Acronyms von A bis Z

  • DB2 — IBM DB2 IBM DB2 Développeur IBM Dernière version …   Wikipédia en Français

  • DB2 C/S — abbr. DataBase 2 Client/Server (IBM, DB2, DB) Syn: DB2CS …   United dictionary of abbreviations and acronyms

  • DB2 Magazine — was a U.S. based magazine published by CMP Technology and sponsored by IBM Corp. In 2008, the magazine s name changed to IBM Database Magazine before later changing to IBM Data Management magazine in 2009 when it switched publishers. With a… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»