|
|
Обзор
Рынок баз данных 2010В ИТ-инфраструктуре предприятия СУБД играет роль универсального хранилища данных, предоставляющего средства построения запросов к сведениям, поступающим от приложений более высокого уровня – аналитических, бухгалтерских систем и т.д. К настоящему моменту индустрия СУБД добилась значительного прогресса в области обработки и хранения информации. Современные технологии позволяют работать с базами данных петабайтного размера, выполняя при этом анализ данных в реальном времени.
В современном деловом мире с его огромными объемами информации наличие информационной системы становится жизненно необходимым условием успешной деятельности любой организации. Основными задачами информационной системы являются эффективное хранение, обработка и анализ данных. Для их решения применяются системы управления базами данных (СУБД).
Базовой предпосылкой для создания специализированных средств по работе с данными стала потребность в расширении возможностей файловых систем по хранению сложных структурированных данных, а также необходимость поддержки специальных языковых средств по формированию информационных запросов пользователей и возможность многопользовательской работы. Традиционная СУБД – это программный комплекс, выполняющий функции структуризации, хранения и поиска данных. В ИТ-инфраструктуре современной компании СУБД играет роль универсального хранилища данных, предоставляющего инструментальные средства построения запросов к сведениям, которые поступают через стандартные интерфейсы от приложений более высокого уровня, таких как аналитические или бухгалтерские системы.
Можно выделить несколько непосредственных функций СУБД. В первую очередь, это управление данными во внешней памяти - другими словами, поддержка необходимых структур внешней памяти для хранения данных и для служебных целей. Для этого СУБД может использовать как существующие файловые системы, так и собственные механизмы работы с внешней памятью.
Во-вторых, управление буферами оперативной памяти. СУБД обычно работают с большими объемами данных, которые значительно превышают доступный объем оперативной памяти (ОЗУ). Для ускорения процессов обмена с внешней памятью практически все СУБД используют буферизацию данных в ОЗУ. Также существует отдельный класс СУБД, размещающий БД полностью в ОЗУ (так называемые in-memory СУБД)
Третья функция - управление транзакциями. Транзакция определяется как группа последовательных операций над БД, рассматриваемых СУБД как единое целое. Транзакция может быть либо выполнена целиком, либо полностью отменена. Данный механизм используется для поддержания логической целостности БД, что особенно важно в многопользовательских СУБД. Для управления транзакциями и разрешения конфликтов в СУБД применяются специальные алгоритмы.
Четвертая функция - это журнализация. Одним из основных требований к любой СУБД является надежность хранения данных во внешней памяти. Это означает, что СУБД должна уметь восстанавливать рабочее состояние БД после любого программного или аппаратного сбоя. Надежность хранения данных обеспечивается за счет создания дополнительной информации, используемой для восстановления – журнала изменений БД. При ведении журнала используется механизм "упреждающей" записи в журнал, позволяющий фиксировать данные об изменении объекта БД в журнале раньше, чем сам объект сохраняется во внешней памяти. Данный подход позволяет восстановить рабочее состояние БД после любого сбоя.
И, наконец, это поддержка языков работы с данными. Для работы с базами данных используются специальные языки. В современных СУБД поддерживается единый язык, содержащий все необходимые средства для работы с БД, необходимые как для определения, так и для изменения данных. Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL.
Многие современные коммерческие СУБД основаны на так называемой реляционной модели данных, основы которой были заложены в 70-х годах Э.Коддом. В процессе совершенствования реляционные СУБД приобретали все большее распространение и к середине 80-х годов практически полностью вытеснили с рынка баз данных более ранние системы. Реляционная теория базируется на мощном математическом аппарате, описывающем правила эффективной организации данных. Вся информация в реляционных БД представляется в виде двумерных таблиц (отношений), над которыми определена формальная система манипулирования. Реляционная модель требует, чтобы используемые в отношениях данные были простыми, т.е. не обладали внутренней структурой (например, число, строка, дата). Важнейший принцип организации информации в реляционной базе данных – так называемая нормализация таблиц, основной целью которой является устранение избыточности и дублирования информации.
В современных реляционных СУБД логически можно выделить несколько подсистем: ядро СУБД, компилятор языка БД (обычно SQL), подсистема поддержки выполнения команд и набор утилит.
Ядро СУБД отвечает за управление данными во внешней памяти, управление буферами оперативной памяти, управление транзакциями и журнализацию. Это основная часть СУБД. Ядро обладает собственным интерфейсом, не доступным пользователям напрямую и используемым в подсистеме поддержки выполнения команд, производимых компилятором языка БД и утилитами БД.
Основной функцией компилятора языка БД является компиляция выражений языка БД во внутренний машинно-независимый код. Реальное выполнение операторов производится при помощи подсистемы поддержки выполнения команд.
Утилиты используются для выполнения операций по поддержке и обслуживанию БД (сохранение и восстановление БД из архивной копии, проверка целостности, сбор статистики).
Несмотря на ряд недостатков, среди которых чаще всего называют ограниченные возможности по моделированию сложных структур данных и невозможность адекватно отражать предметную область, плоские нормализованные реляционные таблицы универсальны и теоретически достаточны для представления данных любой предметной области. Реляционная модель за долгие годы своего существования доказала свою эффективность при решении типовых задач и по сей день остается одним из наиболее востребованных средств управления данными.
Большинство современных ведущих реляционных СУБД, таких как Oracle, DB2, MS SQL Server уже не являются в чистом виде реляционными, поскольку их функционал значительно расширен за пределы традиционной реляционной модели (например, использованием "ненормализованных" данных и различных объектных расширений). Современные СУБД позволяют хранить в БД не только данные простых типов, но и более сложные объекты: массивы, изображения, объекты мультимедиа, а также большие фрагменты текстов, по которым может производиться полнотекстовый поиск.
В настоящее время СУБД в основном приобретаются для использования со сложными и дорогостоящими программными продуктами, ориентированными на автоматизацию корпоративных бизнес-процессов - типичным примером здесь являются системы класса ERP. Большинство таких продуктов имеют высокую критичность для бизнеса, что обуславливает зависимость компаний от функционирования СУБД, серверов баз данных и качества обслуживания инфраструктуры. В свою очередь это выдвигает повышенные требования к выбору СУБД, который зависит не столько от ее функциональных возможностей, сколько от набора приложений, с которыми она будет взаимодействовать, а также от стоимости лицензий и наличия подготовленного персонала для ее администрирования.
Разработчики СУБД прилагают значительные усилия для развития целого ряда технологических направлений, среди которых основными являются масштабируемость и быстродействие. Современный бизнес генерирует огромные объемы данных, количество которых увеличивается в геометрической прогрессии. Очевидно, что хранение и обработка такие колоссальных объемов данных предъявляет серьезные требования к скорости работы и масштабируемости СУБД. Внедрение кластерных технологий в СУБД позволяет компаниям сделать масштабирование системы более легким, а также существенно повысить надежность системы, не затрачивая при этом большие средства на развитие инфраструктуры предприятия.
За универсальность, надежность и общую высокую производительность современных СУБД приходится платить. Ведущие СУБД превратились в очень сложные, объемные и дорогостоящие программные комплексы, функционал которых в угоду универсальности настолько разросся, что даже современные высоконагруженные аналитические приложения редко используют более трети всех доступных функций. Проектирование, поддержка и обслуживание баз данных под управлением современных СУБД далеко нетривиальная задача, требующая наличия высококвалифицированных разработчиков и администраторов БД, что также ощутимо сказывается на общей стоимости владения подобными системами.
Сам рынок СУБД за последнее время значительно фрагментировался. В свою очередь, быстро меняющиеся потребности современного бизнеса постоянно повышают требования к приложениям и инфраструктуре. Появились целые секторы, в которых использование универсальных СУБД либо слишком дорого, либо неэффективно. Для решения конкретного спектра задач в определенных отраслях становится более подходящим использование специализированные СУБД, "заточенные" под выполнение определенных функций. Более эффективными становятся специализированные продукты, которые можно вывести на рынок уже через год-два после начала разработки. Благодаря этому количество различных специализированных СУБД растет с каждым годом, и они начинают занимать уже достаточно весомую долю рынка
В целом, за последние 40 лет в области управления данными была выполнена громадная исследовательская работа, результаты которой можно успешно применять как для развития универсальных СУБД, так и для разработки специализированных систем. К настоящему моменту индустрия СУБД добилась значительного прогресса в технологиях обработки и хранения данных. Современные технологии позволяют работать с базами данных петабайтного размера, при этом выполнять обработку анализ данных в реальном времени. Очевидно, что подобные возможности найдут достойное применение во всех отраслях мировой экономики.
Максим Никитин
CNews: Насколько изменились в телеком-отрасли подходы к СУБД в контексте распространения новых технологий на рынке ИТ (например, "облаков"), по вашим ощущениям?
Александр Куров: Достаточно сложно говорить обо всем телеком-сегменте. В нашем частном случае все оборудование для оказания услуг – централизованное, оно не требует построения территориально-распределенной системы обработки.
У операторов мобильной связи серверы баз данных, как правило, всегда были разнесены. Эту группу условно-независимых серверов с "общей" точки зрения можно было бы назвать "облаком". Но раньше задачу объединения множества систем в единое "облако" каждый из операторов решал самостоятельно, с использованием собственных наработок и протоколов взаимодействия. То же самое можно сказать и в отношении других "новых" технологий (например, StreamInsight), которые широко применялись и ранее.