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

Обеспечивающей сегодня управление информацией, составляют базы данных (БД) и системы управления базами данных (СУБД), история которых насчитывает более 30 лет. Эволюция СУБД происходит на фоне беспрецедентного роста разнообразных ЭВМ, а технология баз данных в свою очередь обеспечивает необходимый фундамент такого роста. Технология управления данными сформировалась на основе опыта разработки и применения десятков СУБД, многих моделей данных, языков определения и манипулирования данными. Одновременно создавалась теория БД, в которой были развиты такие разделы, как теория моделей данных и методы эквивалентности преобразований, теория функциональных зависимостей в БД, методы эквивалентных представлений БД и схем, проблемы полноты и эквивалентности в реляционном исчислении, теория БД с неполной информацией, методы обеспечения целостности БД в условиях потока конкурентных запросов, методы структурирования памяти для хранения разнообразных данных.

Быстрое развитие потребностей применений выдвигает ряд новых требований к СУБД:

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

· управление мультибазами данных (в общем случае их неоднородности);

· управление распределенными БД, интеграция неоднородных БД;

· естественные и эффективные представления о моделях данных разнообразных отношений объектов предметных областей;

· развитие техники баз знаний (БЗ), интеграция концепций баз данных и знаний, реализация дедуктивных БД;

· обеспечение целостности БД в широком диапазоне разнообразных предметных областей и операционных обстановок.

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

Классификация СУБД :

1- по используемому языку общения:

· замкнутые - имеют собственные самостоятельные языки общения пользователей с БД, они обеспечивают непосредственное общение с системой в режиме диалога, позволяют работать без программистов;

· открытые - для общения с БД используется язык программирования, "расширенный" операторами языка манипулирования данными (ЯМД), в этом случае необходимо присутствие квалифицированного программиста;

2- по числу поддерживаемых СУБД уровней моделей данных :

· одно-, двух-, трехуровневые системы. Теоретически обоснован выбор трехуровневой архитектуры данных; однако на практике СУБД для персональных ЭВМ часто объединяют концептуальный и внутренний уровни представления;

3- по выполняемым функциям:

· операционные - иные виды обработки по получению информации, не хранящейся в явном виде в БД;

· информационные - позволяют организовать хранение данных, поиск и выдачу нужных данных из БД и поддерживать их целесообразность и актуальность;

4- по сфере применения :

· универсальные - настраиваются на любую предметную область путем создания соответствующей БД и прикладных программ;

· проблемно-ориентированные - ориентация на определенные процедуры обработки данных, присущих конкретной области применения;

5- по допустимым режимам работы :

· пакетный;

· телеобработка;

6- по числу пользователей :

1. однопользовательские;

2. многопользовательские;

7-по поддерживаемой модели данных:

1. реляционные (сетевые, иерархические);

2. объектные.

Поколения СУБД и их основные характеристики

1 поколение: на основе сетевых и иерархических моделей; впервые была представлена развитая функциональность СУБД в рамках единой системы, с языками манипулирования и определения данными для наборов записей. Примеры CODASYL, IMS.

2 поколение : на основе реляционных моделей данных; в этих системах использовались непроцедурные языки манипулирования данными и предусматривалась значительная независимость данных. Примеры - DB2 (IBM), INGRES (INDRES Corporation), ORACLE (Oracle Corporation), Rdb/VMS (Digital Equipment Corporation). Однако существует ряд недостатков, заставивших разработчиков СУБД, сформулировать предполагаемые функции следующего поколения: в реляционных системах баз данных трудно хранить сегменты текста, графики, пиктограммы и сложных структуры данных.

3 поколение: принципы .

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

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

3. СУБД должны быть открыты для других подсистем. Любая СУБД должны быть оснащена языком 4 поколения (4 GL), разнообразными инструментами поддержки принятия решений, интерфейсами с графическими бизнес - пакетами, возможностью запуска приложений из базы данных на другой машине распределенной СУБД. Весь набор инструментов должен хорошо функционировать на разнообразных аппаратных средствах с различными операционными системами.

Предложения, касающиеся управления объектами и правилами .

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

· Наследование - организация типов в иерархию наследования.

· Наличие функций, в т. ч. процедур и методов данных, инкапсуляция.

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

К числу функций СУБД (с пользой для пользователя) принято относить следующее:

1. управление данными во внешней памяти;

2. управление буферами оперативной памяти;

3. управление транзакциями;

4. журнализация и восстановление базы данных после сбоев;

5. поддержание языков баз данных.

Функция управления данными во внешней памяти включает в себя обеспечение необходимых структур внешней памяти как для хранения непосредственных данных, так и для служебных целей; например, для убыстрения доступа к данным в некоторых случаях (обычно используются индексы). В СУБД поддерживается собственная система именования объектов как в предметной области. В некоторых реализациях СУБД активно используются возможности существующих файловых систем. Однако пользователя не должны знать, использует ли СУБД файловую структуру или нет. Существует множество способов организации внешней памяти баз данных. Как и все решения, принимаемые при создании баз данных, конкретные методы организации внешней памяти необходимо выбирать вместе со всеми остальными решениями.

СУБД обычно работают с базами данных значительных размеров; по крайней мере, этот размер превышает доступный объем оперативной памяти. Понятно, что если при обращении к любому элементу данных будет производиться обмен с внешней памятью, то вся система будет работать со скоростью внешней памяти. Единственным способом реального увеличения этой скорости является буферизация данных в оперативной памяти (UNIX ). И даже если операционная система производит общесистемную буферизацию, этого недостаточно для целей СУБД, которая располагает гораздо большей информацией о полезности буферизации той или иной части базы данных. В развитых СУБД поддерживается свой набор буферов оперативной памяти с собственной дисциплиной замены буферов. При управлении буферами необходимо разрабатывать и применять согласованные алгоритмы буферизации, журнализации и синхронизации. Заметим, что существует собственное направление СУБД, которое ориентировано на постоянное присутствие всей базы данных в оперативной памяти. Это направление основывается на предположении, что в предвидимом будущем объем оперативной памяти может быть настолько велик, что позволит не беспокоиться о буферизации.

Транзакция - это последовательность операций над базой данных, рассматриваемых СУБД как единое целое. Либо транзакция успешно выполняется, и СУБД фиксирует изменение базы данных, произведенные ею, во внешней памяти, базы данных. Понятие транзакции необходимо для поддержания логической целостности базы данных (например, необходимость объединения элементарных операций над файлами). Поддержание механизма транзакций - необходимое условие даже однопользовательских СУБД. Но понятие транзакции гораздо важнее в многопользовательских СУБД. То свойство, что каждая транзакция начинается при целостном состоянии базы данных и оставляет это состояние целостным после своего завершения, делает очень удобным использование понятия транзакции как единицы активности пользователя по отношению к базе данных. При соответствующем механизме управления транзакциями пользователь может почувствовать себя единственным пользователем СУБД.

Одно из основных требований к СУБД - надежное хранение данных во внешней памяти . Под надежностью хранения понимается то, что СУБД должна быть в состоянии восстановить последнее согласованное состояние базы данных после аппаратного или программного сбоя. Поддержание надежного хранения данных в базе данных требует избыточности хранения данных, причем та их часть, которая используется для восстановления, должна храниться особо надежно. Наиболее распространенный метод поддержания такой избыточности - это ведение журнала изменений базы данных. Во всех случаях придерживаются “упреждающей “ записи в журнал (так называемый протокол Write Ahеad Log). Эта стратегия заключается в том, что запись об изменении любого объекта базы данных должна попасть во внешнюю память журнала раньше, чем она попадет во внешнюю память основной части базы данных. Известно, что если в СУБД корректно соблюдается протокол WAL, то с помощью журнала можно решить все проблемы восстановления базы данных после любого сбоя.

Для работы с базой данных используются специальные языки, в целом называемые языками баз данных. В ранних СУБД поддерживалось несколько специализированных по свои функциям языков. Чаще всего выделяются два: язык определения схемы БД (SDL - Shema Defininatin Language) и язык манипулирования данными (DML - Data Manipulation Language). В современных СУБД обычно поддерживается единый интегрированный язык, содержащий все необходимые средства для работы с базой данных, начиная от ее создания обеспечивающий базовый пользовательский интерфейс с базами данных. Стандартным языком наиболее распространенных реляционных СУБД является язык SQL. Прежде всего он сочетает средства SDL и DML, т. е. позволяет определять схему реляционной базы данных и манипулировать данными. Язык SQL содержит специальные средства определения ограничения целостности; специальные операторы языка позволяют определять так называемые представления БД, фактически являющиеся хранимыми в базе данных запросами. Наконец, авторизация доступа к объектам базы данных производится на основе специального набора операторов SQL.

Типовая организация современной СУБД

Организация типичной СУБД и состав ее компонентов соответствует набору функций. Логически в современной СУБД можно выделить внутреннюю часть - ядро СУБД (Data Base Engine), компилятор языка базы данных (обычно SQL), подсистему поддержки времени выполнения, набор утилит.

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

Все функции взаимосвязаны, поэтому компоненты должны взаимодействовать по продуманным и спланированным протоколам. Ядро СУБД обладает собственным интерфейсом, не доступным пользователю, напрямую и используемым в программах, производимых компилятором SQL, и утилитах базы данных. Ядро СУБД является основной резидентной частью СУБД. При использовании архитектуры “клиент-сервер” ядро является основным составляющим элементом серверной части системы.

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

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

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

Что представляет собой современная СУБД

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

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

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

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

Можно более детально рассмотреть функциональное назначение отдельных элементов, входящих в состав современных СУБД.

1. Поддержка модели данных.

1.1 Класс структур данных

1.2 Класс манипулирования данными

1.3 Класс ограничений целостности

Для создания БД разработчик описывает ее логическую структуру, организацию в среде хранения, а также способы видения БД пользователями. При этом используются предоставляемые СУБД языковые средства (см. Лекцию) и система настраивается на работу с конкретной БД. Такие описания БД называют соответственно схемой (концептуальной схемой), схемой хранения (или внутренней схемой) и внешними схемами.

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

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

1- взгляд пользователя, воплощаемый в "логическом " представлении,

2- взгляд системы - "физическое" представление, характеризующее организацию данных.

Обеспечение логической независимости - предоставление БД определенной свободы вариации "логического " представления БД без соответствующей модификации "физического" представления. В результате достигается возможность адаптации взгляда пользователя на БД к его реальным потребностям, конструирования различных "логических" взглядов на одну и ту же "физическую" БД. При этом пользовательское видение БД может по своей структуре существенно отличаться от структуры хранимых данных и синтезироваться не только непосредственно из хранимых фактически объектов и их связей, но и с помощью различного рода агрегирования таких объектов и их связей, осуществляемого в процессе обработки пользовательских запросов. Логическая независимость обеспечивается средствами многоуровневой архитектуры.

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

2. Средства администратора данных.

2.1 Ведение словаря-справочника

2.2 Сбор и анализ статистики функционирования БД

2.3 Управление представлением БД в среде хранения

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

2.4 Реорганизация (реструктуризация) БД

Логическая реструктуризация - модификация концептуальной схемы с последующим приведением БД в соответствие с вновь сформированной схемой.

2.5 Контроль целостности и восстановления БД

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

Нарушения логической целостности могут быть связаны не только с вводом в нее недостоверных данных или с неправильными операциями обработки данных. Они могут являться следствием несвоевременного прерывания выполнения процедур для обработки запроса выданного другим пользователем. Для изучения и ликвидация подобной ситуации предусмотрен механизм транзакций.

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

2.6 Конвертирование данных и прикладных программ

3. Средства разработки приложений

3.1 Проектирование БД

3.2 Интерфейс с языками программирования

3.3 Средства генерации (генератор программного кода, форм ввода - вывода, пользовательских интерфейсов)

3.4 Генерация отчетов

4. Средства конечного пользователя.

4.1 Тип конечного пользователя (язык запросов конечного пользователя, интерфейс типа меню)

4.2 Средства обучения, подсказки и меню

5. Интерфейсы с другими СУБД.

6. Средства работы в сети ЭВМ и создание распределенных БД.

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

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

Ключевые слова :

система управления базами данных (СУБД)

поколения СУБД

функции СУБД

управление внешней памятью

управление транзакциями

буферизация данных во внешней памяти

хранение данных во внешней памяти

языки СУБД

ядро СУБД

компилятор языка СУБД

менеджер транзакций

менеджер журнала

менеджер буферов

менеджер данных

логическое представление данных

физическое представление данных

независимость данных

администрирование данных

логическая (физическая) реструктуризация

1. Ульман Дж., Уидом Дж. Введение в системы баз данных./Пер. с англ. – М.: Издательство «Лори», 200с.

2. Системы управления базами данных. Журнал издательского дома "Открытые системы", 1гг.

3. Кагаловский технологий баз данных. – М.: Финансы и статистика, 2002. – 800с.

4. Дейт К. Дж. Введение в системы баз данных.: Пер. с англ. - 6-е изд. - К.: Диалектика,1999. – 784 с.

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

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

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

Системы управления базами данных можно классифицировать различными способами — по принципу организации данных (реляционные, иерархические, сетевые…), по способу доступа (однопользовательские и многопользовательские), по архитектуре (настольные и серверные), по функциональным возможностям и по возможностям, связанным с масштабируемостью.

В настоящее время наиболее часто применяются реляционные СУБД с архитектурой «клиент-сервер», хотя изредка еще можно встретить приложения, использующие настольные СУБД. Базы данных, управляемые настольными СУБД, обычно представляют собой файл или набор файлов, а сами СУБД являются набором библиотек, с помощью которых применяющие их приложения могут вносить изменения в эти файлы. Иногда настольные СУБД снабжаются также оболочкой для создания таблиц и иных объектов и даже для разработки простейших приложений, например в случае Microsoft Access, наиболее популярной в настоящее время, именно оболочка, а не библиотека является коммерческим продуктом.

Однако корпоративные приложения для крупных и даже для средних предприятий, как правило, используют серверные СУБД в силу их большей надежности и масштабируемости. В простейшем случае информационная система, основанная на архитектуре «клиент-сервер», состоит из двух основных компонентов: сервера баз данных, управляющего данными и выполняющего поступающие от клиентских приложений запросы, и самих клиентских приложений, обеспечивающих интерфейс пользователя и посылающих запросы к серверу. Именно сервер баз данных может манипулировать файлами, в которых хранятся данные, выполнять пользовательские запросы, поддерживать ссылочную целостность данных, обеспечивать доступ к ним, осуществлять резервное копирование данных и протоколировать операции, связанные с их изменением. В более сложных случаях между клиентом и сервером может располагаться приложение промежуточного звена (middleware), функции которого весьма разнообразны — от разграничения доступа к данным до реализации достаточно сложной бизнес-логики.

Требования к современным СУБД

современным СУБД предъявляются следующие требования:

  • масштабируемость — отсутствие существенного снижения скорости выполнения пользовательских запросов при пропорциональном росте количества запросов и аппаратных ресурсов используемых данной СУБД (таких как объем оперативной памяти, количество процессоров и серверов);
  • доступность — возможность всегда выполнить запрос;
  • надежность — минимальная вероятность сбоев, наличие средств восстановления данных после сбоев, инструментов резервного копирования и дублирования данных (в последнее время производители СУБД нередко предлагают инструменты, позволяющие осуществлять подобные операции, не прерывая работу пользователей);
  • управляемость — простота администрирования, наличие средств автоматического конфигурирования (типичный современный набор средств администрирования включает средства создания баз данных и их объектов, инструменты описания правил репликации данных между различными серверами, утилиты управления пользователями, группами и их правами, средства мониторинга событий, средства просмотра планов выполнения запросов, утилиты миграции из других СУБД);
  • наличие средств защиты данных от потери и несанкционированного доступа;
  • поддержка доступа к данным с помощью Web-служб;
  • поддержка стандартных механизмов доступа к данным (таких как ODBC, JDBC, OLE DB, ADO .NET), позволяющая создавать приложения для СУБД с помощью различных средств разработки.

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

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

СУБД ведущих производителей

огласно данным ряда аналитических отчетов (см., например: Strange K. Magic Quadrant for Data Warehouse DBMSs// Gartner Research Note M-22-2154. 2004), лидерами рынка СУБД на данный момент являются давно и успешно представленные на российском рынке компании IBM, Oracle, Microsoft, Sybase и Teradata, а также относительно молодая компания Netezza, которая на отечественном рынке практически неизвестна. Далее мы кратко рассмотрим особенности продуктов этих компаний.

DB2 Universal Database (IBM)

Семейство серверных СУБД фирмы IBM, известное под названием DB2 Universal Database (DB2 UDB), впервые появилось в 1996 году и предназначалось для платформ UNIX, OS/2 и Microsoft Windows NT. Последняя версия этого продукта, DB2 UDB 8.2, функционирует под управлением операционных систем AIX, AIX, Linux, HP-UX, Sun и Windows.

Особенностями данной СУБД являются развитые средства самовосстановления и автоматического выполнения операций, связанных с поддержкой базы данных (таких как создание резервных копий и дефрагментация данных). Из механизмов доступа к данным DB2 UDB поддерживает ODBC, JDBC, ADO/OLE DB, ADO .NET. Данная СУБД позволяет создавать серверный код на CLR-совместимых языках, таких как C# и Visual Basic .NET.

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

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

Oracle 10g (Oracle)

Oracle, появившаяся в 1979 году, была первой коммерческой реляционной СУБД, которая поддерживала язык SQL, ставший ныне индустриальным стандартом. Ранние версии этой СУБД создавались для мэйнфреймов, однако в 1985 году появились версии Oracle, предназначенные для использования в архитектуре «клиент-сервер». Это была первая СУБД, использовавшая предоставляемые некоторыми серверными платформами средства параллельных вычислений.

В настоящее время последней ее версией является Oracle 10g. Эта СУБД отвечает самым строгим требованиям к качеству обслуживания, обладает возможностями кластеризации (для этого предназначен модуль Oracle Real Application Clusters), развитыми средствами безопасности.

СУБД Oracle 10g предоставляет средства параллельной обработки запросов, встроенные средства OLAP, средства быстрого извлечения, преобразования и загрузки данных, служб порталов, средств бизнес-анализа, распространения отчетов и анализа действий пользователей, инструменты анализа производительности СУБД, обеспечивает поддержку кластеров.

Из механизмов доступа к данным Oracle 10g поддерживает ODBC, JDBC и ADO/OLE DB, кроме того, для этой СУБД существует.NET-провайдер и соответствующий набор классов от Microsoft. Клиентская часть Oracle содержит также набор COM-объектов для доступа к данным (Oracle Objects for OLE). Отметим, что и многие другие компании производят ODBC-драйверы и OLE DB-провайдеры для доступа к Oracle — эту СУБД поддерживают все ведущие производители средств разработки, генераторов отчетов, средств аналитической обработки данных.

И на Западе, и в России нередко используются готовые корпоративные решения от Oracle Corporation, объединенные под общим названием Oracle Applications, такие как Oracle Financials, Oracle Human Resources, Oracle Market Management, Oracle Project Systems и др., — собственно, продажа и поддержка именно этих приложений и составляют основную часть бизнеса компании.

SQL Server 2000 и SQL Server 2005 (Microsoft)

Первая версия Microsoft SQL Server — совместный продукт компаний Microsoft и Sybase, выпущенный в 1988 году, — была разработана для платформы OS/2. Последующие версии этого сервера баз данных предназначались для платформы Windows и со временем были тесно интегрированы с этой операционной системой. Для других платформ версии данного сервера не выпускались и не выпускаются.

Наиболее часто используемая версия этой СУБД — Microsoft SQL Server 2000 — отличается повышенной масштабируемостью и производительностью. Она позволяет использовать на одном компьютере несколько одновременно работающих серверов, поддерживает создание кластеров, параллельные вычисления в многопроцессорных системах, распределенные запросы. Средства администрирования Microsoft SQL Server 2000 считаются одними из наиболее простых и удобных. Помимо средств решения стандартных задач администрирования, таких как создание баз данных и их объектов, управление привилегиями пользователей и групп, резервное копирование и восстановление, репликация данных, они включают утилиты обмена данными с другими СУБД и хранилищами данных. В состав этого продукта входит OLAP-сервер — именно с его появления в составе SQL Server началось включение OLAP-средств в состав СУБД других производителей и перемещение их из категории дорогостоящих, элитных продуктов в категорию продуктов, широко применяемых даже в небольших компаниях.

Из механизмов доступа к данным этот продукт поддерживает ODBC, OLE DB/ADO, ADO .NET. Имеется также JDBC-драйвер производства компании Microsoft. Нельзя не отметить великолепные средства интеграции этой СУБД с Microsoft Office, вплоть до инструментов манипуляции OLAP-данными из этих приложений.

Последующая версия этой СУБД — SQL Server 2005, выпуск которой ожидается в этом году, будет поддерживать асинхронный обмен сообщениями между различными серверными процессами, содержать службы уведомления клиентов о событиях в базе данных, позволять создавать устойчивые к сбоям кластеры и осуществлять зеркалирование базы данных, производить репликации с базами данных, управляемыми СУБД других производителей, выполнять без остановки сервера такие операции, как изменение числа процессоров и объема памяти.

Еще одним из основных технологических новшеств ожидаемой версии SQL Server является интеграция с Microsoft .NET Framework 2.0 на уровне Common Language Runtime в самой СУБД, что позволит создавать серверный код на любом CLR-совместимом языке программирования, например на C# или на Visual Basic. Отметим также существенное расширение аналитических возможностей данной СУБД, например появление новых алгоритмов Data Mining.

SQL Server 2005 будет создана в виде не только 32-, но и 64-разрядной версии, поддерживающей процессоры Intel Itanium и AMD Opteron. А для решения относительно несложных задач, использующих небольшие базы данных, будет выпущена бесплатная версия Microsoft SQL Server 2005 Express Edition.

Adaptive Server Enterprise и Adaptive Server IQ (Sybase)

Серверные продукты компании Sybase происходят от одной из ранних версий Microsoft SQL Server, созданной совместно Microsoft и Sybase. Начиная с 1994 года Microsoft и Sybase разрабатывают свои серверные продукты независимо друг от друга, и результатом деятельности компании Sybase в этом направлении является продукт Adaptive Server Enterprise (ASE), последняя версия которого, 12.5.2, существует для Windows NT/2000 и некоторых версий UNIX и Linux.

В настоящее время Adaptive Server Enterprise поддерживает упреждающее асинхронное чтение, что повышает скорость выполнения сложных запросов; создание кластеров; наличие 64-разрядной версии; распределенную обработку запросов, в том числе к базам данных других производителей; расширенные хранимые процедуры, позволяющие осуществлять легкий доступ к функциям, которые написаны на языках, отличных от SQL; параллельную обработку запросов в многопроцессорных системах; параллельную работу утилит администрирования; динамическую конфигурацию сервера и резервное копирование данных с компрессией. Особо стоит отметить службы Sybase Real-Time Data Services, предназначенные для организации передачи сообщений в реальном времени при возникновении каких-либо событий в базах данных, в том числе в базах данных, управляемых СУБД других производителей.

Из универсальных механизмов доступа к данным ASE поддерживает ODBC, JDBC, OLE DB/ADO. Отметим, что нередко вместе с ASE используются средства разработки и проектирования данных самой компании Sybase.

Для создания многомерных хранилищ данных у Sybase существует еще один серверный продукт — Adaptive Server IQ, позволяющий создавать хранилища на основе данных из СУБД производства не только Sybase, но и других производителей. Высокая скорость выполнения запросов в этом продукте обусловлена нестандартным способом хранения данных. Отметим также, что существует ряд продуктов под общим названием Sybase Industry Warehouse Studio, ориентированных на обслуживание конкретных предметных областей.

Teradata Database V2R6.0 (Teradata)

В течение последних нескольких лет СУБД компании Teradata считаются лидирующими продуктами среди СУБД, предназначенных для создания хранилищ данных. Последняя версия этой СУБД, Teradata Database V2R6.0, доступна для Microsoft Windows, OS/2 и ряда версий UNIX и Linux.

Отличием этой СУБД от других продуктов является специальный механизм параллельной обработки запросов, предполагающий разбиение задачи на ряд отдельных подзадач и их параллельное выполнение. При этом даже такие операции, как сортировка или группировка данных, могут разделяться на несколько задач и выполняться параллельно — это достигается за счет специального способа хранения данных, при котором части базы данных также делятся между подзадачами. Сами подзадачи могут распределяться между имеющимися процессорами, которых может быть более одного. Благодаря механизму параллельного решения задач, Teradata Database V2R6.0 отличается высокой масштабируемостью.

Для создания клиентских приложений, использующих Teradata Database, существуют ODBC-драйвер, документированный клиентский API, совместимый с IBM DB2, и ряд других программных интерфейсов. Средства администрирования этой СУБД включают средства резервного копирования и восстановления, просмотра и редактирования данных, мониторинга производительности и нагрузки, а также утилиту администрирования для управления всеми перечисленными задачами, доступную для различных версий Windows.

Netezza Performance Server 8000 Series (Netezza)

Netezza Performance Server — это аппаратно-программное решение, представляющее собой сервер с системой хранения данных и предустановленной на нем операционной системой Linux , а также СУБД с открытым кодом, созданной на основе Postgress. Компания Netezza заявляет, что данное решение не уступает по производительности решениям на основе Teradata при заметно меньшей стоимости. В числе особенностей данного аппаратно-программного решения — поддержка параллельной обработки данных, разделение задач за счет разделения частей базы данных между подзадачами, высокая масштабируемость.

Из программных интерфейсов данным решением поддерживаются универсальные механизмы доступа к данным ODBC и JDBC.

***

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

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

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

В реляционных базах данных (БД самого распространенного типа) д анные хранятся в таблицах . На первый взгляд, эти таблицы подобны электронным таблицам Excel, поскольку они тоже состоят из строк и столбцов. Столбцы называются полями (fields) и содержат данные определенного типа. Строки именуются записями (records). В одной строке хранится один набор данных, описывающих определенный объект. Например, если в таблице хранятся данные о клиентах, она может содержать поля для имени, адреса, города, почтового индекса, номера телефона и т.д. Для каждого клиента будет создана отдельная запись.

Таблицы – не единственный тип объектов, из которых состоят базы данных. Помимо таблиц, существуют формы , отчеты и запросы .

Формы (forms) применяются для добавления новых данных и изменения уже существующих. Формы облегчают добавление и редактирование информации, а также позволяют контролировать тип водимых данных и избегать при вводе ряда ошибок.

Для отображения данных в удобном для чтения виде используются отчеты (reports). Ознакомиться со всей информацией, хранящейся в таблице, сложно по той причине, что текст не умещается в полях целиком. Существует возможность включать в отчет не все данные, а только некоторые, что значительно повышает удобство использования.

Для вывода в отчеты определенных данных применяются запросы (queries). Использование запросов похоже на процесс поиска, – задаются конкретные критерии отбора, на основе которых база данных формирует и возвращает отчет. Например, если база данных содержит информацию о телефонных номерах, то можно запросить вывести в отчете только те телефоны, которые относятся к конкретному адресу, или только те, которые относятся к конкретной фамилии, или начинающиеся с определенных цифр и т.п. Запросы записываются на языке SQL (Structured Query Language - язык структурированных запросов).

В основе реляционных баз данных лежит понятие связей (отношений , relationships ). Они позволяют разработчикам связывать несколько таблиц в базе посредством общих данных. При помощи взаимосвязей разработчики баз данных моделируют таблицы, отражающие взаимодействие объектов в реальности.

Понять принцип работы связей проще всего на примере. Пусть для хранения информации о продажах компании применяется электронная таблица Excel. Со временем в таблице накапливаются сотни записей. Многие из них соответствуют покупкам, совершенным одними и теми же клиентами. Проблема состоит в том, что при совершении повторной покупки информация об адресе клиента снова сохраняется. Со временем некоторые клиенты переезжают. Их новые адреса вводятся в электронную таблицу, но во всех прошлых записях остается прежний адрес. Существует вероятность, что рано или поздно кто-то случайно использует для отправки товара неверный адрес. Обновление адресов становится довольно непростой задачей из-за их невероятного количества. В Excel нет средств, позволяющих устранить эту проблему.

При формировании базы данных логичнее отделить все записи о клиентах от записей, относящихся к совершенным ими покупкам. В этом случае в одной таблице будет храниться информация о покупках, а в другой – о клиентах. В таблице клиентов каждому будет соответствовать только одна запись. При переезде клиента потребуется обновить только одну соответствующую ему запись, а не все записи о его покупках. В таблице, содержащей записи о покупках, вместо перечисления всей информации о покупателе будет указан уникальный идентификатор (в нашем примере поле идентификатора названо cust _ID ), соответствующий определенной записи в таблице клиентов. Такие связи между таблицами и позволяют создавать реляционные базы данных.

Обе таблицы содержат поле cust_ID . В таблице клиентов поле cust_ID включает уникальные идентификаторы, называемые также первичными ключами (primary key) . У каждой записи в таблице всегда существует свой идентификатор, который не повторяется , благодаря чему, в таблице обеспечен порядок, предполагающий корректное обновление, удаление и добавление данных.

В таблице покупок одно и то же значение cust_ID , напротив, может повторяться больше одного раза - в зависимости от того, сколько покупок совершил тот или иной клиент. Когда первичный ключ одной таблицы применяется в качестве поля другой, он называется внешним ключом . При использовании внешних ключей между таблицами образуются связи (relationships). Они позволяют избавиться от избыточной (дублирующей информации) и сохранить целостность данных.

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

Рис. 45. Схема данных.

На рисунке 45 показана взаимосвязь между двумя таблицами, описанными в этом примере. Линия между таблицами обозначает существование связи. Число 1 , расположенное слева, означает, что в таблице Клиенты параметр cust_ID является уникальным, а знак бесконечности , находящийся справа, указывает, что в таблице Покупки одно и то же значение параметра cust_ID может повторяться сколько угодно. Такое отношение называется "один-ко-многим ".

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

Модель реляционной СУБД была разработана в 70-80 годы XX века. К реляционным СУБД относится целый ряд программных продуктов, среди них Microsoft Access из пакета Microsoft Office , MySQL или более мощные системы промышленного уровня, таких как Microsoft SQL Server или Oracle .

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

Вверх