Введение в IBM DB2. Цель подготовки данной серии статей. Виды объектов баз данных

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

отчет по практике

1.3 История создания СУБД IBM DB2

DB2 - это семейство систем управления реляционными базами данных, выпускаемых корпорацией IBM. Это одна из "зрелых" мировых СУБД, постоянный лидер в производительности, по уровню технической реализации, возможностям масштабирования и т.д.

DB2 имеет долгую историю. Это первая СУБД, которая стала использовать SQL. С 1975 по 1982 год прототип DB2 разрабатывался в IBM под названием System Relational, или System R.

СУБД DB2 получила свое название в 1982 году, когда был выпущен первый коммерческий релиз для VM под названием SQL/DS, и затем релиз для MVS под названием DB2.

Развитие DB2 уходит корнями в начало 1970-х, когда доктор Э.Ф. Кодд, работавший на IBM, разработал теорию реляционных баз данных и в июне 1970 года опубликовал модель манипуляции данными. Для воплощения этой модели он разработал язык реляционных баз данных и назвал его Alpha.

IBM DB2 - наиболее высокопроизводительная и мощная СУБД в мире. Ее основное уникальное преимущество в том, что любое приложение, написанное для DB2, будет работать с серверами данных DB2, работающими на любой распределенной платформе, поддерживаемой DB2 (Windows, HP-UX, Sun Solaris, Linux, Mac OS X и AIX®).

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

Круг задач, которые можно решать, использую объектные расширения DB2, существенно увеличен по сравнению с классическим реляционным подходом. Заимствовав из объектно-ориентированной модели наиболее необходимые для современных приложений элементы, DB2 сохранила все достоинства реляционной СУБД. Это позволяет использовать при построении корпоративных информационных систем на ее основе как реляционный, так и объектно-ориентированный подход.

Возможности программного комплекса SolidWorks

В декабре далекого 1995 года никому тогда не известная американская компания SolidWorks Corporation выпустила первую версию пакета 3D моделирования SolidWorks 95. С тех пор прошло ровно 10 лет, в течение которых увидели свет 14 новых версий системы...

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

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

UNIX зародился в лаборатории Bell Labs фирмы AT&T более 30 лет назад. В то время Bell Labs занималась разработкой многопользовательской системы разделения времени MULTICS (Multiplexed Information and Computing Service) совместно с MIT и General Electric, но эта система потерпела неудачу...

Операционные системы, альтернативные Windows

Операционная система OS/2 начиналась как совместная разработка IBM и Microsoft (1984 г.). Однако впоследствии проект распался, и Microsoft переделала свою версию OS/2 в Windows NT, а сама OS/2 продолжала разрабатываться в фирме IBM...

Разработка базы данных учета готовой продукции в ОАО "Тихвинский мясокомбинат"

Тихвинский мясокомбинат ведет свою историю с 1856 года...

Разработка логической игры "Пятнашки"

С 1891 года до самой смерти Сэм Ллойд считал, что изобрёл головоломку именно он. Однако существуют доказательства того, что он был непричастен к созданию «пятнашек». Настоящим изобретателем был Ной Палмер Чепмэн, почтмейстер из Канастоты...

Решение художественного образа средствами цвета в проектировании логотипа "Креатив стиль"

Логотимп (от др.-греч. ????? -- слово + ????? -- отпечаток) -- оригинальное начертание полного или сокращённого наименования организации или товара...

Роль блоггеров в сети Интернет

Временем появления первого блога считается 1992 год, когда британский ученый Тимоти Джон Бернерс-Ли Тимоти Джон Бернерс-Ли -британский ученый, создавший первый блог в 1992 году...

Сеть Internet

Интернет - это современная социотехническая система, основу которой составляют локальные сети, объединяющие компьютеры и другие разнообразные технические устройства, различные базы данных, пользователей...

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

Активная деятельность по отыскиванию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД)...

Создание компьютерной сети учебного класса школы на основе кабеля "витая пара"

Первую в мире ЛВС создал в 1967 г. Дональд Дэвис в Национальной физической лаборатории Великобритании (British National Physics Laboratory). К началу 70-х сеть работала с пиковой скоростью 0,25 Мбит/с, обслуживая около 200 пользователей. Первая ЛВС Ethernet...

Технологии DVD (Универсальный Цифровой Диск)

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

Технология Bluetooth

Развитие технологии беспроводной связи, Bluetooth, началось в компании Эрикссон в 1994 году исследованиями, целью которых была реализация экономически и технологически эффективного радио интерфейса...

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

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

Языки программирования для разработки сайта

Первый в мире сайт - info. cern. ch появился 6 августа 1991 года. Его создатель, Тим Бернерс-Ли, опубликовал на нём описание новой технологии World Wide Web, основанной на протоколе передачи данных HTTP, системе адресации URI и языке гипертекстовой разметки HTML...

Введение

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

Приобретение навыков работы с компьютером, с ОС Windows и стандартным офисным пакетом;

Закрепление полученных в ходе изучения базовых курсов по информатике знаний и умений по методам использования, разработки и реализации классических алгоритмов на изучаемых языках программирования;

Освоить методы профессионального поиска информации в сети Internet;

Изучить требования к оформлению отчетов, методы и прикладные среды для подготовки отчетов по результатам практики;

Работа с офисной оргтехникой.

В первом разделе отчета рассмотрена система управления базами данных IBM DB2: описано понятие СУБД, даны виды и краткая характеристика СУБД IBM DB2.

Во второй части отчета разрабатывается алгоритм и программа на языке С для нахождения максимального элемента массива А в массиве В.

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

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

База даннных (БД) - это поименованная совокупность взаимосвязанных данных, находящихся впод управление СУБД.

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

История создания СУБД

Активная деятельность по отыскиванию приемлемых способов обобществления непрерывно растущего объема информации привела к созданию в начале 60-х годов специальных программных комплексов, называемых "Системы управления базами данных" (СУБД).

Основная особенность СУБД - это наличие процедур для ввода и хранения не только самих данных, но и описаний их структуры. Файлы, снабженные описанием хранимых в них данных и находящихся под управлением СУБД, стали называть банки данных, а затем "Базы данных" (БД).

Когда началось производство вычислительных машин семейства ЕС ЭВМ. Работы проводились в двух направлениях. Прежде всего были предприняты попытки создания собственных оригинальных отечественных СУБД. Вместе с тем, в ускоренном режиме разрабатывались аналоги некоторых широко распространенных за рубежом СУБД, способных функционировать на отечественных аппаратно-программных платформах. Подобный подход был использован также при создании СУБД для аппаратных платформ, серийное производство которых началось в стране позднее появления платформы ЕС ЭВМ, - для СМ ЭВМ, АСВТ, IBM-совместимых персональных компьютеров и др. .

История создания СУБД IBM DB2

DB2 - это семейство систем управления реляционными базами данных, выпускаемых корпорацией IBM. Это одна из "зрелых" мировых СУБД, постоянный лидер в производительности, по уровню технической реализации, возможностям масштабирования и т.д.

DB2 имеет долгую историю. Это первая СУБД, которая стала использовать SQL. С 1975 по 1982 год прототип DB2 разрабатывался в IBM под названием System Relational, или System R.

СУБД DB2 получила свое название в 1982 году, когда был выпущен первый коммерческий релиз для VM под названием SQL/DS, и затем релиз для MVS под названием DB2.

Развитие DB2 уходит корнями в начало 1970-х, когда доктор Э.Ф. Кодд, работавший на IBM, разработал теорию реляционных баз данных и в июне 1970 года опубликовал модель манипуляции данными. Для воплощения этой модели он разработал язык реляционных баз данных и назвал его Alpha.

IBM DB2 - наиболее высокопроизводительная и мощная СУБД в мире. Ее основное уникальное преимущество в том, что любое приложение, написанное для DB2, будет работать с серверами данных DB2, работающими на любой распределенной платформе, поддерживаемой DB2 (Windows, HP-UX, Sun Solaris, Linux, Mac OS X и AIX®).

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

Круг задач, которые можно решать, использую объектные расширения DB2, существенно увеличен по сравнению с классическим реляционным подходом. Заимствовав из объектно-ориентированной модели наиболее необходимые для современных приложений элементы, DB2 сохранила все достоинства реляционной СУБД. Это позволяет использовать при построении корпоративных информационных систем на ее основе как реляционный, так и объектно-ориентированный подход.

СУБД IBM DB2 - результат почти 30-х опытно-конструкторских и исследовательских работ фирмы IBM. Последнюю на сегодня версию данной СУБД (6.х) отличает один из наиболее продуманных наборов средств управления и оптимизации и механизм БД, допускающий наращивание от портативного ПК с Windows 95 до целого кластера больших ЭВМ S/390, работающих под управлением OS/390.

Пакет DB2 выпускается в двух редакциях: DB2 Workgroup и DB2 Enterprise Edition. В данной СУБД реализованы все известные по предшествующим версиям DB2 новаторские технологии механизма БД, такие, как распараллеливание обработки запроса, полный набор средств тиражирования, сводные таблицы запросов для повышения производительности БД, возможности объектно-ориентированного конструирования баз данных и средства языка Java. К этому надо добавить, что система DB2 оснащена полым набором мультимедиа-расширений, позволяющих сохранять текст, звук и видео- фрагменты, изображения и географические данные и манипулировать ими. Можно говорить, что по возможностям масштабирования разработанная специалистами IBM технология кластеризации баз данных не имеет аналогов. Эти расширения существенно облегчают процесс разработки приложений для Web, а так же программ, содержащих фотоизображения и объемные текстовые отчеты. Система DB2 вполне конкурентоспособна и в качестве платформы для разработки приложжений т.к существует средство Stored Procedure Builder - автоматически преобразовывающее оператор SQL в соответствующий класс Java и включающее его в структуру базы данных. В версии DB2 6.1 значительно улучшена функциональная совместимость с другими СУБД: пакет позволяет использовать разработанную Microsoft спецификацию OLE DB, новый стандарт доступа к базам данных. Средства административного управления СУБД DB2, которые в новой версии переписаны на Java и могут быть получены из Web, заслуживают самой высокой оценки.

Основными недостатками данной СУБД является относительная сложность администрирования и отсутствие (пока) реализаций под популярные серверные ОС, например LINUX.

В данной СУБД благодаря Index Smart-Guide возможно осуществлять настройку, формируя оптимальные индексы для заданного числа обращений, характеризующего типичную нагрузку на БД. DB2- единственный пакет позволяющий генерировать сводные таблицы, что значительно эффективность работы СУБД в качестве хранилищ данных. Сводная таблица - это временная рабочая область, используемая базой данных для хранения ответов на часто поступающие запросы. Ну что ж, можно сказать, что оснащенная новыми функциональными возможностями, а также средствами распараллеливания и возможностями выбора практически любого типа соединения и индексов (кроме разве что растровых индексов), модель DB2 6.1 превращается в самую недорогую из высокопроизводительных систем. Средства административного управления этой СУБД вполне соответствуют уровню решаемых задач, кроме того, она предоставляет исключительно широкие возможности для работы с мультимедиа-данными и для программирования (чего явно недостает системе Microsoft SQL Server).

СУБД от Informix.

В последнее время наметился переход от реляционных СУБД к объектно-ориентированным (что явно прослеживается на примере Oracle). Informix также следуя данной концепции анонсировала новое решение СУБД Centaur базирующуюся на реляционной БД Informix Dynamic Server 7.3 и объектно-реляционной БД Informix Universal Data Option и сочетающую в себе высокое быстродействие Dynamic Server при работе с данными с универсальностью и мультимедиа функциями Universal Data Option. Данная реализация предназначена для разработки интернет систем. Предположительно данная СУБД будет обладать гибкой средой разработки, обладающей наращиваемостью, соответствующей характерным для Интернета интенсивным нагрузкам, и средствами работы с новыми типами данных, которые с развитием Web стали использоваться повсеместно. Реализованные в новой системе средства Java позволят разработчикам создавать на этом языке хранимые процедуры, пользовательские программы и компоненты DataBlades, которые в Informix называют заказными расширениями базы данных.

С точки зрения клиентов Inforix, это станет большим шагом вперед, поскольку до настоящего времени при работе с DataBlades они могли пользоваться только языком Си и SPL, внутренним языком фирмы Informix для написания хранимых процедур. Кроме того, пакет Centaur будет оснащен встроенными средствами обработки объектов ActiveX. Это даст возможность, к примеру, создавать хранимые процедуры БД на языке Visual Basic; правда, для этого нужно, чтобы пакет Centaur выполнялся в среде Windows NT.

Centaur будет представлять собой надстройку Informix Dynamic Server и работать с традиционным для этого пакета форматом БД, так что в распоряжении пользователей останутся все прежние функции, а модернизация системы до уровня новой версии не будет сопряжена с большими сложностями. Кроме того, в пакете Centaur будут сохранены все возможности конструирования и программирования, благодаря которым система Informix Universal Server признана выдающимся техническим достижением. Новая система будет оснащена средствами объектно-ориентированного конструирования баз данных, создания специализированных таблиц и программ индексирования; в ее состав войдет позволит пользователям встраивать в запросы собственные функции и не полагаться исключительно на стандартные средства SQL.

Выводы.

Рассмотрев основные характеристики архитектур построения АИС, серверных операционных систем и СУБД в дальнейшем в качестве архитектуры АИС мы выберем архитектуру интернет/интранет, в качестве серверной ОС Linux, в качестве СУБД Oracle 8i. В сводной таблице представлены сравнительные характеристики двух наиболее распространенных на сегодня решений на базе Microsoft SQL Server 7.0 (на NT) и Oracle8i (на Unix, Linux).

Microsoft SQL Server 7.0

Административное управление

Графические инструменты

Простота обслуживания

Механизм данных

Работа с несколькими ЦП

Приемлемо

Функция соединения и выбор индексов

Одновременный доступ нескольких пользователей

Обработка мультимедиа-даных

Подключение к Web

Обработка аудио, видео, изображений

Поиск по сему тексту

Функциональная совместимость

Приемлемо

Сопряжение с другими БД

Единая регистрация

Работа под управлением различных ОС

Приемлемо

Возможности программирования

Приемлемо

Хранимые процедуры и триггеры

Внутренний язык программирования

Построение баз данных

Объектно-ориентированные системы

Работа с филиалами

Тиражирование

Распределенная обработка транзакций

Дистанционное администрирование

Организация хранилищ данных и подготовка отчетов

Средства загрузки

Средства анализа

    Enterprise Edition - решение для крупных организаций, испытывающих потребность в надежной обработке транзакций и широких функциональных возможностях;

    Advanced Edition - эта версия поддерживает неограниченное количество соединений, кластеризацию и обеспечивает масштабируемость, позволяя достигать высокой производительности (версия не обеспечивает двухфазное подтверждение транзакций и автоматическую отказоустойчивость);

    Small Business Edition - версия предназначена для поддержки интернет-приложений. Максимальное число допустимых IIOP/CORBA соединений – десять, подходит для организаций, системы которых не нуждаются в кластеризации, поддержке работы с мейнфреймами, двухфазного подтверждения транзакций и автоматической отказоустойчивости;

    Developer Edition - вариант для разработчиков, занимающихся созданием и тестированием приложений с использованием сервера Sybase EAServer, является полнофункциональной, но ограничен пятью IIOP-соединениями.

Sybase EAServer обеспечивает целый ряд важных преимуществ, включая:

    надежную работу системы за счет обеспечения автоматического восстановления работоспособности на уровне серверной памяти, балансировки нагрузки, а также кластеризации;

    защиту инвестиций за счет интеграции с существующими внутренними системами;

    упрощенное управление за счет комплексной настройки и возможностей администрирования, таких как кэширование экземпляров компонент, управление транзакциями, кэширование процессов и графическая настройка параметров компонент.

Субд db2

СУБД фирмы IBM DB2, впервые появилось в начале восьмидесятых годов. Сейчас версии этого продукта функционируют под управлением ОС AS/400AIX, S/390, Windows, OS/2, AIX, HP-UX, SCO UnixWare, Linux, NUMA-Q и Sun Solaris.

СУБД DB2 Enterprise Server Edition поставляется с богатым набором инструментов для администрирования. Механизмы доступа к данным DB2 поддерживают драйверы ODBC, JDBC и ADO/OLE DB, а для пользователей Microsoft Visual Studio доступны включаемые в среду дополнительные модули, такие как Stored Procedure Builder. Windows-версии СУБД DB2 позволяют также создавать хранимые процедуры на языке Visual Basic. Средства разработки Borland поддерживают доступ к DB2 не только с помощью ADO/OLE DB и ODBC, но и посредством собственных универсальных механизмов доступа к данным - Borland Database Engine и dbExpress.

СУБД DB2 поддерживает создание хранилищ данных и, помимо средств переноса данных в хранилище содержит в составе клиентской части Data Warehouse Center, позволяющий управлять всеми процессами, связанными с созданием и поддержкой хранилищ данных, включая создание схемы хранилища, определение источников исходных данных для него, создание расписаний обновления данных в хранилище, проверку и исправление некорректных данных. Для поддержки OLAP-хранилищ в состав сервера DB2 Universal Database входит OLAP Starter Kit, основанный на OLAP-сервере Hyperion Essbase.

СУБД DB2 поддерживает хранение и поиск XML-документов по их элементам и атрибутам. С помощью протокола SOAP можно обращаться к Web-сервисам, предоставляющим доступ к хранимым процедурам и данным DB2 (Web-сервисы управляются сервером приложений IBM WebSphere).

К важнейшим техническим характеристикам DB2 Universal Database следует отнести поддержку реляционных и комплексных данных с помощью объектных расширений, возможность работы на мультипроцессорных платформах, поддержку кластеров, 64-разрядную архитектуру памяти, распараллеливание запросов, наличие средств для гетерогенного администрирования и обработки данных, поддержку выполнения распределенных транзакций.

СУБД DB2 - единственная СУБД, для которой можно вести разработку на.Net, а сама при этом способна работать на любой платформе, включая Linux, мэйнфреймы, Windows. DB2 имеет хранимые процедуры на Java.

Расширенная поддержка Visual Studio включает поддержку Web-сервисов, полную поддержку хранения XML-данных без их преобразования и возможность создавать приложения и Web-сайты без написания программного кода.

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

В СУБД DB2 версии 9 реализованы технология pureXML, революционная технология сжатия данных Venom и средства автономного управления данными. DB2 обеспечивает доступ к информации, хранящейся в СУБД Oracle и MySQL.

Реализованные в СУБД усовершенствования позволяют разработчикам значительно упростить и ускорить создание приложений, работающих одновременно с хранилищами XML и реляционных данных. Например, технология pureXML поддерживает язык XQuery - стандарт, созданный специально для обработки XML-данных. Для извлечения реляционных или XML-данных разработчики приложений могут использовать языки XQuery, XPath, стандартный язык SQL - или все три одновременно.

Комплексная среда разработки DB2 Developer Workbench позволяет создавать, редактировать, отлаживать, тестировать и развертывать хранимые процедуры и определяемые пользователями функции. Среда Developer Workbench может использоваться для разработки приложений, а также для создания, редактирования и исполнения SQL-операторов и XML-запросов.

Сервер БД DB2 версии 9 позволяет обеспечить беспрепятственное, параллельное движение реляционных и XML-данных, вне зависимости от формата, платформы и размещения (http://www-306.ibm.com/software/data/db2/v9/ ).

СУБД DB2 осуществляет также компрессию индексов и временных таблиц, что не умеет делать сегодня никакая другая СУБД. Реализация отказоустойчивой двухсерверной конфигурации, в которой сервер с резервной БД можно использовать для генерации отчетности.

СУБД DB2 выпускается в двух редакциях: DB2 Workgroup и DB2 Enterprise Edition. В СУБД реализовано распараллеливание обработки запроса, полный набор средств тиражирования, сводные таблицы запросов для повышения производительности БД, возможности объектно-ориентированного конструирования БД и средства языка Java.

СУБД DB2 оснащена полным набором мультимедиа-расширений, позволяющих сохранять текст, звук, видео, изображения и географические данные и манипулировать ими. Основными недостатками СУБД DB2 является относительная сложность администрирования.

В СУБД DB2, благодаря Index Smart Guide, можно осуществлять настройку, формируя оптимальные индексы для заданного числа обращений, характеризующего типичную нагрузку на БД. СУБД DB2 позволяет генерировать сводные таблицы, что значительно повышает эффективность ее работы в качестве хранилища данных. Сводная таблица – это временная рабочая область, используемая СУБД для хранения ответов на часто поступающие запросы.

Расширение DB2 Spatial для работы с пространственными данными разработано совместно с компанией ESRI [http://www.esri.com/partners/alliances/ibm/solutions.html ,http://www.esri.com/partners/alliances/ibm/index.html ].

IBM выпускает сразу три редакции DB2 - для корпоративных клиентов, для компаний малого и среднего бизнеса (DB2 Express) и для разработчиков (DB2 Express-C).

У фирмы IBM имеется упрощенная версия СУБД DB2 Express-C , она реляционная, но поддерживает XML.

СУБД Informix

Ведущим продуктом фирмы Informix до приобретения ее компанией IBM являлся сервер Informix Dynamic Server (IDS), поддерживающий платформы UNIX и Windows и обеспечивающий эффективную работу как на одно-, так и на многопроцессорных системах, а также в кластерах. Этот продукт обладает мощными средствами параллельной обработки данных. В числе основных характеристик Informix Dynamic Server следует отметить использование для управления дисковым пространством, как средств ОС; так и собственных функций, позволяющих обойти ограничения ОС, управление разделением памяти; динамическое управление потоками; поддержку фрагментации таблиц и индексов на нескольких дисках; распараллеливание запросов; зеркалирование данных. Сервер IDS поддерживает двухфазное завершение транзакций, а также гетерогенные транзакции (в этом случае в транзакциях могут принимать участие и другие сервера). Особо следует отметить поддержку этим сервером временных рядов.

Расширения функциональности сервера реализуются на базе DataBlade - коллекций объектов БД и подпрограмм на языке С, подключаемых к БД и выпускаемых как производителем СУБД, так и рядом независимых производителей.

Из механизмов доступа к данным IDS поддерживает драйверы ODBC, JDBC и ADO/OLE DB. Cредства разработки Borland поддерживают доступ к IDS с помощью механизмов Borland Database Engine, dbExpress, Microsoft .NET.

В последнее время наметился переход от реляционных СУБД к объектно-ориентированным. Informix, следуя этой концепции, представляет свое решение в СУБД Centaur, базирующейся на реляционной БД Informix Dynamic Server 7.3 и объектно-реляционной БД Informix Universal Data Option, и сочетающую в себе высокое быстродействие Dynamic Server при работе с данными с универсальностью и мультимедиа функциями Universal Data Option. Эта реализация предназначена для разработки Интернет-систем. СУБД обладает гибкой средой разработки, наращиваемостью, соответствующей характерным для сети Интернет интенсивным нагрузкам, и средствами работы с новыми типами данных, которые с развитием Web стали использоваться повсеместно. Реализованные в этой системе средства Java позволят разработчикам создавать на этом языке хранимые процедуры, пользовательские программы и компоненты DataBlades.

Пакет Centaur оснащен встроенными средствами обработки объектов ActiveX. Это дает возможность создавать хранимые процедуры БД на языке Visual Basic.

Centaur представляет собой надстройку Informix Dynamic Server и работает с традиционным для этого пакета форматом БД, так что в распоряжении пользователей остаются все прежние функции, а модернизация системы до уровня новых версий не будет сопряжена с большими сложностями. Система оснащена средствами объектно-ориентированного конструирования БД, создания специализированных таблиц и программ индексирования; позволяет пользователям встраивать в запросы собственные функции и не полагаться исключительно на стандартные средства SQL.

По работе пришлось в течение некоторого времени разбираться с СУБД IBM DB2. Т.к. система коммерческая, то в интернете не так много информации на русском языке, поэтому решил описать некоторые особенности работы этой СУБД.

Точка входа

Начнем со входной точки в СУБД. В SQL SERVER конечной точкой является экземпляр (instance), в котором конечно могут быть отдельные базы данных, но конфигурация и модель безопасности единая для всего экземпляра. В DB2 же точка входа выглядит так - экземпляр (который соответствует конкретному порту) - база данных. При этом конфигурация есть и для целиком экземпляра, и для отдельной базы данных.

Посмотреть конфигурацию экземпляра можно либо с помощью db2-команды:

Database Manager Configuration

Node type = Enterprise Server Edition with local and remote clients

Database manager configuration release level = 0x0b00

CPU speed (millisec/instruction) (CPUSPEED) = 2.912790e-07
Communications bandwidth (MB/sec) (COMM_BANDWIDTH) = 1.000000e+02

Max number of concurrently active databases (NUMDB) = 8
Federated Database System Support (FEDERATED) = YES
Transaction processor monitor name (TP_MON_NAME) =

Default charge-back account (DFT_ACCOUNT_STR) =

Java Development Kit installation path (JDK_PATH) = /home/db2inst1/sqllib/java/jdk32

Diagnostic error capture level (DIAGLEVEL) = 3
Notify Level (NOTIFYLEVEL) = 3
Diagnostic data directory path (DIAGPATH) = /home/db2inst1/sqllib/db2dump

Default database monitor switches
Buffer pool (DFT_MON_BUFPOOL) = OFF

Где будут указаны параметры, их значение и расшифровка. Возможен также сокращенный вариант:

get dbm cfg

Либо с помощью запроса:

Select name, value from sysibmadm.dbmcfg

Из важных параметров можно отметить:

  • тип аутентификации (AUTHENTICATION)
  • путь по умолчанию для создания новых БД (DFTDBPATH)
  • обнаружение сервера по сети (DISCOVER)
Посмотреть настройки конкретной базы можно так:

connect to sample (sample - имя бд)

get database manager configuration

Либо примерно таким же запросом, как и ранее:

select name, value from sysibmadm.dbcfg

Аутентификация

Большим отличием DB2 от других СУБД является модель аутентификации. Здесь нет внутренних пользователей, как в SQL Server или MySQL. Вся аутентификация производится внешними по отношению к СУБД средствами (динамически подгружаемыми плагинами) - средствами операционной системы либо внешними плагинами (Kerberos,GSS API). Тип аутентификации задается в параметре AUTHENTICATION конфигурации менеджера БД. По умолчанию выставлено значение SERVER - имя пользователя и пароль передается в открытом виде и данная пара проверяется на правильность средствами операционной системы. Если имя пользователя и пароль верны, то проверяется наличие привилегии CONNECT у пользователя или групп, в которые он входит (в т.ч. специальная группа PUBLIC, куда входят все авторизованные пользователи). Данные привилегии можно посмотреть в таблице SYSCAT.DBAUTH :

select GRANTEE from SYSCAT.DBAUTH where CONNECTAUTH = "Y"

Большой ошибкой при настройке является включение типа аутентификации CLIENT. В этом случае DB2 доверяет проведение аутентификации подключаемому клиенту и если у PUBLIC есть привилегия CONNECT, то любой пользователь сможет подключиться к БД и получит доступ ко всем данным, которые есть у PUBLIC. Имя пользователя при этом берется из операционной системы. То есть если мы подключаемся через Data Studio пользователем Administrator, то будут предоставлены все привилегии, которые есть у данного пользователя. И в этом случае нет разницы, с какого компьютера был произведен доступ. Данный тип аутентификации рекомендуется включать только тогда, когда есть защищенный канал между сервером и клиентом, и другие клиенты не смогут подключиться к СУБД.

Авторизация

Привилегии уровня конкретного экземпляра прописываются в конфигурации менеджера БД. Это следующие привилегии:

  • SYSADM
  • SYSCTRL
  • SYSMAINT
  • SYSMON
Задаются данные привилегии с помощью указания группы, куда будет входить пользователь. В dbmcfg это соответственно параметры SYSADM_GROUP , SYSCTRL_GROUP , SYSMAINT_GROUP и SYSMON_GROUP .

Далее есть привилегии конкретной базы данных. Это такие привилегии, как доступ к базе данных (CONNECTAUTH), создание таблиц (CREATETABAUTH), создание подпрограмм (EXTERNALROUTINEAUTH) и тд. Данные привилегии можно просмотреть в представлении SYSCAT.DBAUTH

И наконец привилегии доступа к конкретным данным - таблицам, подпрограммам и тд. Здесь все довольно тривиально, но тоже с некоторыми особенностями.

Привилегии доступа к таблицам можно просмотреть в представлении SYSCAT.TABAUTH . Тип выданной привилегии хранится в отдельных колонках, в зависимости от самой привилегии (SELECTAUTH,DELETEAUTH и тд). При выдачи привилегии с помощью команды GRANT для привилегий REFERENCES и UPDATE можно также указать имена колонок, на которые будут распространяться данные привилегии. В этом случае информацию об этом можно посмотреть в представлении SYSCAT.COLAUTH

Привилегии подпрограмм (функций, процедур и методов) можно посмотреть в SYSCAT.ROUTINEAUTH . Здесь не совсем все тривиально, в зависимости от полей SPECIFICNAME и TYPENAME привилегии могут быть выданы на все подпрограммы заданной схемы.

Если читателям понравится статья, то готов рассказать по поводу защиты данных в DB2 с помощью Label-Based Access Control