Что такое серверные субд
Файл-серверная СУБД
Систе́ма управле́ния ба́зами да́нных (СУБД) — специализированная программа (чаще комплекс программ), предназначенная для организации и ведения базы данных. Для создания и управления информационной системой СУБД необходима в той же степени, как для разработки программы на алгоритмическом языке необходим транслятор.
Содержание
Основные функции СУБД
Обычно современная СУБД содержит следующие компоненты:
Классификация СУБД
По модели данных
По типу управляемой базы данных СУБД разделяются на:
По архитектуре организации хранения данных
По способу доступа к БД
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. Ядро СУБД располагается на каждом клиентском компьютере. Доступ к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на ЦП сервера, а недостатком — высокая загрузка локальной сети.
На данный момент файл-серверные СУБД считаются устаревшими.
Примеры: Microsoft Access, Borland Paradox.
Такие СУБД состоят из клиентской части (которая входит в состав прикладной программы) и сервера (см. Клиент-сервер). Клиент-серверные СУБД, в отличие от файл-серверных, обеспечивают разграничение доступа между пользователями и мало загружают сеть и клиентские машины. Сервер является внешней по отношению к клиенту программой, и по надобности его можно заменить другим. Недостаток клиент-серверных СУБД в самом факте существования сервера (что плохо для локальных программ — в них удобнее встраиваемые СУБД) и больших вычислительных ресурсах, потребляемых сервером.
Примеры: Interbase, IBM DB2, MS SQL Server, Oracle, MySQL, ЛИНТЕР.
Встраиваемая СУБД — библиотека, которая позволяет унифицированным образом хранить большие объёмы данных на локальной машине. Доступ к данным может происходить через геоинформационные системы).
Ссылки
Русскоязычные сайты
Зарубежные сайты
Литература
См. также
DDL, SELECT | INSERT | UPDATE | MERGE | DELETE | JOIN | UNION | CREATE | ALTER | DROP
Сравнение синтаксиса
Типы реализаций
Flat file | Deductive | Dimensional | Иерархическая | Объектно-ориентированная | Temporal
Полезное
Смотреть что такое «Файл-серверная СУБД» в других словарях:
Клиент-серверная СУБД — СУБД, использующая технологию «клиент сервер». Клиент серверная СУБД позволяет обмениваться клиенту и серверу минимально необходимыми объёмами информации. При этом основная вычислительная нагрузка ложится на сервер. Клиент может выполнять функции … Википедия
Система управления базами данных — (СУБД) совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных[1]. Содержание 1 Основные функции СУБД 2 … Википедия
Microsoft SQL Server — Тип Реляционная СУБД Разработчик Sybase, Ashton Tate, Microsoft … Википедия
Btrieve — Btrieve программный продукт (СУБД), для организации транзакционных (или «навигационных»[1]) баз данных. Основан на методе организации данных ISAM, обеспечивающем высокую скорость поиска и извлечения данных. Существовало несколько версий… … Википедия
ZODB — Zope Object DataBase Тип Объектно ориентированная база данных Разработчик Zope Corporation и соавторы Написана на Python Операционная система Кроссплатформенное ПО Последняя версия 3.10.5 (19 ноября 2011 … Википедия
Программы UNIX-подобных операционных систем — Это список популярных программ, работающих в операционных системах основанных на UNIX (POSIX совместимых). Некоторые из этих программ являются стандартными для UNIX подобных систем. Содержание 1 Системный софт 1.1 Общего назначения … Википедия
CUBRID — Тип Реляционная СУБД Разработчик Search Solutions Написана на C, C++ Операционная система Кроссплатформенное программное обеспечение Язык интерфейса Ан … Википедия
mSQL — Тип Реляционная СУБД Разработчик Hughes Technologies Последняя версия 3.11 (1 июня 2012 года) Лицензия Коммерческая, для разработчиков Сайт … Википедия
ПАРУС (программный продукт) — У этого термина существуют и другие значения, см. Парус (значения). Программные продукты «ПАРУС» (ПП «ПАРУС») предназначены для автоматизации деятельности коммерческих предприятий и бюджетных учреждений разного уровня. Среди линеек ПП… … Википедия
BaseX — Графический интерфейс пользователя BaseX Тип Документо ориентированная СУБД … Википедия
Что такое серверные субд
Выше мы обсудили преимущества архитектуры «клиент-сервер», обусловленные ее базовыми принципами и не зависящие от того, какая конкретно СУБД выбрана. Однако помимо собственно средства современные серверные СУБД обычно предоставляют дополнительный набор сервисов, связанных с обслуживанием хранения и обработки данных, созданием клиентских приложений, сменой СУБД или ее версии, обслуживанием нескольких баз данных, публикацией данных в Internet. Поскольку в условиях конкуренции между различными производителями СУБД каждый из них стремится к завоеванию как можно большей части рынка, это приводит к тому, что все они пытаются перегнать друг друга и предоставить потенциальному потребителю (а также производителям средств разработки, средств проектирования данных и генераторов отчетов) как можно больше сервисов различного назначения, так как при выборе СУБД потребитель обычно ориентируется на то, что поддерживает в данная СУБД, с одной стороны, и чем она поддерживается — с другой. И, как и в случае настольных СУБД, в этой области также происходит процесс заимствования идей, решений и интерфейсов.
Ниже перечислены наиболее характерные для сегодняшнего дня сервисы, предоставляемые серверными СУБД.
Реализация для нескольких платформ
Почти все современные серверы баз данных существуют в нескольких версиях для различных платформ (как правило, различные коммерческие версии UNIX — Solaris, HP/UX и др., а также Windows NT Server и, с недавнего времени, Windows 2000). Многие производители серверных СУБД также выпускают версии своих серверов для Windows NT Workstationи Windows 95/98 (а иногда даже для Windows CE). В последнем случае такие серверы нередко бывают персональными (однопользовательскими), либо в их реализации отсутствуют возможности, характерные для полнофункциональных версий этих серверов. Подобные персональные серверы, как правило, используются в «переносных» системах, например на ноутбуках, применяемых для работы с базой данных отдельно от центрального офиса компании с последующей репликацией данных. Иногда такие серверы используются при создании приложений для изоляции разработчика от сервера баз данных, находящегося в процессе эксплуатации.
В последнее время многие производители серверных СУБД выпускают также версии для Linux — с этой точки зрения Linux в последние два года была весьма «модной» платформой.
Исключением из этого правила является Microsoft SQL Server. Однако для данной СУБД это вполне оправданно — компания Microsoft сама производит серверные операционные системы и в отличие от большинства других производителей серверных СУБД может себе позволить создавать серверы баз данных, тесно интегрированные с сервисами операционной системы собственного производства и поддерживающие исключительно их.
Административные утилиты
Администрирование сервера баз данных, конечно, — удел профессионалов. Однако и профессионал предпочтет удобные утилиты администрирования унылому окну с интерфейсом командной строки. Наличие удобных утилит администрирования, как ни странно, иногда оказывается одним из решающих факторов при выборе СУБД. Именно поэтому подавляющее большинство современных СУБД обычно поставляется с подобными утилитами, и их интерфейс в последнее время напоминает интерфейс Windows Explorer (даже неинтересно помещать в эту статью иллюстрации — все они нынче похожи, как близнецы).
Следует отметить, что производители СУБД, вовремя не заметившие эту тенденцию, оказались лишенными значительной части рынка или практически вытесненными с него. Весьма показателен здесь пример IB Database (InterBase Corporation) — производители этой СУБД, очень неплохой с точки зрения хранения данных и скорости обработки запросов, не позаботились вовремя об удобных утилитах администрирования (а также о средствах репликации данных), положившись на продукты третьих фирм и на продвижение этой СУБД в составе популярных средств разработки, — и в результате многие ее потенциальные пользователи сделали выбор в пользу других СУБД, а сама IB Database практически перешла в разряд некоммерческих продуктов с доступными исходными текстами.
Резервное копирование данных
Резервное копирование данных и журналов транзакций поддерживается всеми без исключения коммерческими серверными СУБД. Различия между СУБД в поддержке резервного копирования заключаются в том, возможно ли производить резервное копирование в процессе работы пользователей, и если да, то какие пользовательские операции в это время нельзя выполнять. Помимо этого в комплекте поставки некоторых СУБД могут содержаться утилиты для использования различных внешних устройств (например, накопителей на магнитных лентах) в качестве средств хранения резервных копий.
Обслуживание репликаций
Репликация по существу представляет собой гарантированное копирование информации из одной базы в несколько других. Репликации используются для разделения нагрузки между серверами в сети, для перемещения поднаборов данных на вспомогательные серверы, для синхронизации данных на нескольких серверах и многих других целей.
В том или ином виде репликации поддерживаются всеми современными серверными СУБД. Различия могут быть лишь в поддержке тех или иных конкретных сценариев репликаций (например, внесение изменений одновременно на нескольких серверах, возможность шифрования реплицируемых данных и др.). Исключение здесь составляет IB Database, в текущей версии не поддерживающая репликаций, но об этой СУБД мы уже упоминали.
Если вы планируете иметь несколько серверов баз данных с необходимостью синхронизации данных (например, у вашего предприятия существует несколько филиалов), стоит обратить внимание на то, какие сценарии репликаций поддерживаются в выбранной вами СУБД.
Параллельная обработка данных в многопроцессорных системах
О возможностях повышения производительности с помощью параллельной обработки запросов в многопроцессорных системах начали говорить несколько лет назад, после появления первого продукта такого класса — Oracle Parallel Server. Серверы, поддерживающие параллельную обработку, разрешают нескольким процессорам обращаться к одной базе данных, что позволяет обеспечить высокую скорость обработки транзакций.
В настоящее время подавляющее большинство производителей современных серверных СУБД поставляют на рынок версии, поддерживающие параллельную обработку данных. Обычно это версии для Windows NT и коммерческих версий UNIX.
Если вы рассчитываете использовать многопроцессорный компьютер в качестве сервера баз данных, вам имеет смысл обратить внимание на то, поддерживает ли выбранная вами СУБД параллельную обработку данных.
Поддержка OLAP и создания хранилищ данных
OLAP (On-Line Analytical Processing) представляет собой технологию построения многомерных хранилищ данных (Data Warehouses), как правило, агрегатных, то есть являющихся результатом обработки набора данных, нередко состоящего из нескольких таблиц. Такие хранилища данных в последнее время широко используются в системах поддержки принятия решений. Более подробно об идеях, лежащих в основе OLAP, будет рассказано в одной из последующих статей данного цикла, здесь же мы ограничимся лишь упоминанием этой возможности.
Многомерные хранилища данных могут быть реализованы как в виде набора обычных реляционных таблиц, так и в виде нереляционной многомерной базы данных. В последнем случае такое хранилище обычно управляется отдельным сервером. Многие производители серверных СУБД поставляют такие серверы отдельно (Oracle, Informix), некоторые включают их в состав сервера реляционных баз данных (Microsoft SQL Server 7.0). Нередко с целью повышения конкурентоспособности подобные OLAP-системы строят многомерные хранилища на основе данных из других СУБД, как это сделано, например, в Microsoft SQL Server OLAP Extensions и в Sybase Adaptive Server IQ.
Если вы планируете создавать системы поддержки принятия решений, вам необходимо обратить внимание на то, какие OLAP-серверы можно использовать на выбранной вами платформе, и поддерживают ли они выбранную вами СУБД.
Распределенные запросы и транзакции
О распределенных транзакциях и запросах заговорили в последнее время, когда наличие нескольких серверов баз данных в одной организации стало обычным явлением. Нужно отметить, что возможности выполнения распределенного запроса или распределенной транзакции поддерживаются сейчас почти всеми серверными СУБД, по крайней мере в том случае, когда все вовлеченные в транзакцию серверы — от одного и того же производителя. С этой целью используется механизм двухфазного завершения транзакций (two-phase commit), когда на первом этапе серверы, вовлеченные в транзакцию, сигнализируют о готовности ее завершить, а на втором этапе происходит реальная фиксация изменений в базах данных.
Что касается распределенных транзакций с участием «чужих» серверов, то они, как правило, реализуются с помощью мониторов транзакций или иных подобных сервисов, например Microsoft Distributed Transaction Coordinator.
Если вы планируете использовать несколько серверов баз данных и совершать операции, затрагивающие данные на нескольких серверах, есть смысл поинтересоваться, поддерживают ли выбранные вами СУБД двухфазное завершение транзакций.
Средства проектирования данных
Многие производители серверных СУБД производят также средства анализа бизнес-процессов и проектирования данных, иногда универсальные (как в случае Sybase DataArchitect), а порой ориентированные главным образом на конкретную СУБД (как в случае Oracle Designer/2000). Многие производители СУБД не имеют в своем арсенале собственных средств проектирования данных, ориентируясь на универсальные CASE-средства типа Platinum ERwin. Нередко производители СУБД встраивают в административные утилиты несложные средства проектирования данных, позволяющие визуально редактировать схемы данных, как это сделано, например, в Microsoft SQL Server 7.0.
Выбирая CASE-средство, обратите внимание на то, поддерживает ли оно выбранную вами СУБД.
Поддержка собственных и «чужих» средств разработки и генераторов отчетов
Многие производители серверных СУБД выпускают также средства разработки и генераторы отчетов. Иногда данные средства разработки используют тот же язык программирования, что применяется при написании триггеров и хранимых процедур (в этом случае, как правило, клиентское приложение должно включать интерпретатор этого языка), что позволяет отлаживать хранимые процедуры, помещая их в клиентское приложение. Типичный пример подобного подхода реализован в Oracle Developer/2000. Однако чаще средства разработки производителей серверных СУБД используют языки программирования, отличные от языков создания серверного кода (характерный пример — четыре средства разработки Microsoft).
Практически все производители серверных СУБД делают все возможное для того, чтобы клиентские приложения для их СУБД можно было создавать с помощью других средств разработки. С этой целью они предоставляют разработчикам описания API клиентской части, ODBC-драйверы, OLE DB-провайдеры, а нередко и объектные модели, позволяя использовать COM-объекты клиентской части в приложениях (как, например, это сделано в клиентских частях Oracle, Microsoft SQL Server, Informix).
Производители серверных СУБД, ориентирующиеся только на собственные средства разработки, как правило, оказываются вытесненными с рынка или теряют его часть. Показательной в этом плане явилась ситуация 1997 года, когда в комплекте поставки некогда популярного сервера SQLBase компании Gupta (ныне Centura) содержался ODBC-драйвер производства компании Intersolv, не поддерживавший хранимые «процедуры». Это вызвало недовольство пользователей Visual Basic и Delphi, и в конечном итоге они перешли на другой продукт, более совместимый с их средствами разработки.
Выбирая СУБД и средство разработки, обратите внимание на то, какие механизмы доступа к данным при этом можно использовать и какие именно серверные объекты в этом случае будут доступны клиентскому приложению. Есть смысл попробовать поработать с оценочными версиями этих продуктов, чтобы убедиться, что вы не попадете в ситуацию, описанную выше.
Поддержка доступа к данным с помощью Internet
Без поддержки публикации данных в Internet или получения данных от удаленных Internet-клиентов сегодня не обходится практически ни одна коммерческая СУБД, в том числе настольные базы данных. Тем или иным способом производители серверных СУБД поддерживают Web-технологии. Чаще всего эта поддержка осуществляется с помощью Web-серверов собственного производства, либо посредством создания расширений для существующих Web-серверов, либо просто путем включения в комплект поставки утилит, генерирующих Web-страницы согласно определенному расписанию.
Обсудив, какие сервисы предоставляют современные серверные СУБД, мы можем наконец поговорить и о конкретных серверах баз данных. Ниже мы рассмотрим наиболее популярные из них.
Системы управления базами данных¶
Система управления базами данных (СУБД) — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных.
Основные функции СУБД¶
Обычно современная СУБД содержит следующие компоненты:
Классификации СУБД¶
По модели данных¶
Иерархические¶
Используется представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней.
Между объектами существуют связи, каждый объект может включать в себя несколько объектов более низкого уровня. Такие объекты находятся в отношении предка (объект более близкий к корню) к потомку (объект более низкого уровня), при этом возможна ситуация, когда объект-предок не имеет потомков или имеет их несколько, тогда как у объекта-потомка обязательно только один предок. Объекты, имеющие общего предка, называются близнецами (в программировании применительно к структуре данных дерево устоялось название братья).
Иерархической базой данных является файловая система, состоящая из корневого каталога, в котором имеется иерархия подкаталогов и файлов.
Примеры: Caché, Google App Engine Datastore API.
Сетевые¶
Сетевые базы данных подобны иерархическим, за исключением того, что в них имеются указатели в обоих направлениях, которые соединяют родственную информацию.
Реляционные¶
Практически все разработчики современных приложений, предусматривающих связь с системами баз данных, ориентируются на реляционные СУБД. По оценке Gartner в 2013 году рынок реляционных СУБД составлял 26 млрд долларов с годовым приростом около 9%, а к 2018 году рынок реляционных СУБД достигнет 40 млрд долларов. В настоящее время абсолютными лидерами рынка СУБД являются компании Oracle, IBM и Microsoft, с общей совокупной долей рынка около 90%, поставляя такие системы как Oracle Database, IBM DB2 и Microsoft SQL Server.
Объектно-ориентированные¶
Управляют базами данных, в которых данные моделируются в виде объектов, их атрибутов, методов и классов.
Этот вид СУБД позволяет работать с объектами баз данных так же, как с объектами в программировании в объектно-ориентированных языках программирования. ООСУБД расширяет языки программирования, прозрачно вводя долговременные данные, управление параллелизмом, восстановление данных, ассоциированные запросы и другие возможности.
Объектно-реляционные¶
Этот тип СУБД позволяет через расширенные структуры баз данных и язык запросов использовать возможности объектно-ориентированного подхода: бъекты, классы и наследование.
Зачастую все те СУБД, которые называются реляционными, являются, по факту, объектно-реляционными.
В данном курсе мы будем, в первую очередь, гооврить об этом виде СУБД.
Примеры: PostgreSQL, DB2, Oracle, Microsoft SQL Server.
По степени распределённости¶
По способу доступа к БД¶
Файл-серверные¶
В файл-серверных СУБД файлы данных располагаются централизованно на файл-сервере. СУБД располагается на каждом клиентском компьютере (рабочей станции). Доступ СУБД к данным осуществляется через локальную сеть. Синхронизация чтений и обновлений осуществляется посредством файловых блокировок. Преимуществом этой архитектуры является низкая нагрузка на процессор файлового сервера. Недостатки: потенциально высокая загрузка локальной сети; затруднённость или невозможность централизованного управления; затруднённость или невозможность обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность. Применяются чаще всего в локальных приложениях, которые используют функции управления БД; в системах с низкой интенсивностью обработки данных и низкими пиковыми нагрузками на БД.
На данный момент файл-серверная технология считается устаревшей, а её использование в крупных информационных системах — недостатком.
Примеры: Microsoft Access, Paradox, dBase, FoxPro, Visual FoxPro.
Клиент-серверные¶
Клиент-серверная СУБД располагается на сервере вместе с БД и осуществляет доступ к БД непосредственно, в монопольном режиме. Все клиентские запросы на обработку данных обрабатываются клиент-серверной СУБД централизованно. Недостаток клиент-серверных СУБД состоит в повышенных требованиях к серверу. Достоинства: потенциально более низкая загрузка локальной сети; удобство централизованного управления; удобство обеспечения таких важных характеристик как высокая надёжность, высокая доступность и высокая безопасность.
Примеры: Oracle, Firebird, Interbase, IBM DB2, Informix, MS SQL Server, Sybase Adaptive Server Enterprise, PostgreSQL, MySQL, Caché, ЛИНТЕР.
Встраиваемые¶
Встраиваемая СУБД — СУБД, которая может поставляться как составная часть некоторого программного продукта, не требуя процедуры самостоятельной установки. Встраиваемая СУБД предназначена для локального хранения данных своего приложения и не рассчитана на коллективное использование в сети. Физически встраиваемая СУБД чаще всего реализована в виде подключаемой библиотеки. Доступ к данным со стороны приложения может происходить через SQL либо через специальные программные интерфейсы (API).
Примеры: OpenEdge, SQLite, BerkeleyDB, Firebird Embedded, Microsoft SQL Server Compact, ЛИНТЕР.
Стратегии работы с внешней памятью¶
СУБД с непосредственной записью — это СУБД, в которых все измененные блоки данных незамедлительно записываются во внешнюю память при поступлении сигнала подтверждения любой транзакции. Такая стратегия используется только при высокой эффективности внешней памяти.
СУБД с отложенной записью — это СУБД, в которых изменения аккумулируются в буферах внешней памяти до наступления любого из следующих событий:
Такая стратегия позволяет избежать частого обмена с внешней памятью и значительно увеличить эффективность работы СУБД.
Введение в базы данных. Часть 3. Серверные СУБД
Характерные черты современных серверных СУБД
Выше мы обсудили преимущества архитектуры «клиент-сервер», обусловленные ее базовыми принципами и не зависящие от того, какая конкретно СУБД выбрана. Однако помимо собственно средства современные серверные СУБД обычно предоставляют дополнительный набор сервисов, связанных с обслуживанием хранения и обработки данных, созданием клиентских приложений, сменой СУБД или ее версии, обслуживанием нескольких баз данных, публикацией данных в Internet. Поскольку в условиях конкуренции между различными производителями СУБД каждый из них стремится к завоеванию как можно большей части рынка, это приводит к тому, что все они пытаются перегнать друг друга и предоставить потенциальному потребителю (а также производителям средств разработки, средств проектирования данных и генераторов отчетов) как можно больше сервисов различного назначения, так как при выборе СУБД потребитель обычно ориентируется на то, что поддерживает в данная СУБД, с одной стороны, и чем она поддерживается — с другой. И, как и в случае настольных СУБД, в этой области также происходит процесс заимствования идей, решений и интерфейсов.
Ниже перечислены наиболее характерные для сегодняшнего дня сервисы, предоставляемые серверными СУБД.
Реализация для нескольких платформ
Почти все современные серверы баз данных существуют в нескольких версиях для различных платформ (как правило, различные коммерческие версии UNIX — Solaris, HP/UX и др., а также Windows NT Server и, с недавнего времени, Windows 2000). Многие производители серверных СУБД также выпускают версии своих серверов для Windows NT Workstationи Windows 95/98 (а иногда даже для Windows CE). В последнем случае такие серверы нередко бывают персональными (однопользовательскими), либо в их реализации отсутствуют возможности, характерные для полнофункциональных версий этих серверов. Подобные персональные серверы, как правило, используются в «переносных» системах, например на ноутбуках, применяемых для работы с базой данных отдельно от центрального офиса компании с последующей репликацией данных. Иногда такие серверы используются при создании приложений для изоляции разработчика от сервера баз данных, находящегося в процессе эксплуатации.
В последнее время многие производители серверных СУБД выпускают также версии для Linux — с этой точки зрения Linux в последние два года была весьма «модной» платформой.
Исключением из этого правила является Microsoft SQL Server. Однако для данной СУБД это вполне оправданно — компания Microsoft сама производит серверные операционные системы и в отличие от большинства других производителей серверных СУБД может себе позволить создавать серверы баз данных, тесно интегрированные с сервисами операционной системы собственного производства и поддерживающие исключительно их.
Административные утилиты
Администрирование сервера баз данных, конечно, — удел профессионалов. Однако и профессионал предпочтет удобные утилиты администрирования унылому окну с интерфейсом командной строки. Наличие удобных утилит администрирования, как ни странно, иногда оказывается одним из решающих факторов при выборе СУБД. Именно поэтому подавляющее большинство современных СУБД обычно поставляется с подобными утилитами, и их интерфейс в последнее время напоминает интерфейс Windows Explorer (даже неинтересно помещать в эту статью иллюстрации — все они нынче похожи, как близнецы).
Следует отметить, что производители СУБД, вовремя не заметившие эту тенденцию, оказались лишенными значительной части рынка или практически вытесненными с него. Весьма показателен здесь пример IB Database (InterBase Corporation) — производители этой СУБД, очень неплохой с точки зрения хранения данных и скорости обработки запросов, не позаботились вовремя об удобных утилитах администрирования (а также о средствах репликации данных), положившись на продукты третьих фирм и на продвижение этой СУБД в составе популярных средств разработки, — и в результате многие ее потенциальные пользователи сделали выбор в пользу других СУБД, а сама IB Database практически перешла в разряд некоммерческих продуктов с доступными исходными текстами.
Резервное копирование данных
Резервное копирование данных и журналов транзакций поддерживается всеми без исключения коммерческими серверными СУБД. Различия между СУБД в поддержке резервного копирования заключаются в том, возможно ли производить резервное копирование в процессе работы пользователей, и если да, то какие пользовательские операции в это время нельзя выполнять. Помимо этого в комплекте поставки некоторых СУБД могут содержаться утилиты для использования различных внешних устройств (например, накопителей на магнитных лентах) в качестве средств хранения резервных копий.
Обслуживание репликаций
Репликация по существу представляет собой гарантированное копирование информации из одной базы в несколько других. Репликации используются для разделения нагрузки между серверами в сети, для перемещения поднаборов данных на вспомогательные серверы, для синхронизации данных на нескольких серверах и многих других целей.
В том или ином виде репликации поддерживаются всеми современными серверными СУБД. Различия могут быть лишь в поддержке тех или иных конкретных сценариев репликаций (например, внесение изменений одновременно на нескольких серверах, возможность шифрования реплицируемых данных и др.). Исключение здесь составляет IB Database, в текущей версии не поддерживающая репликаций, но об этой СУБД мы уже упоминали.
Если вы планируете иметь несколько серверов баз данных с необходимостью синхронизации данных (например, у вашего предприятия существует несколько филиалов), стоит обратить внимание на то, какие сценарии репликаций поддерживаются в выбранной вами СУБД.
Параллельная обработка данных в многопроцессорных системах
О возможностях повышения производительности с помощью параллельной обработки запросов в многопроцессорных системах начали говорить несколько лет назад, после появления первого продукта такого класса — Oracle Parallel Server. Серверы, поддерживающие параллельную обработку, разрешают нескольким процессорам обращаться к одной базе данных, что позволяет обеспечить высокую скорость обработки транзакций.
В настоящее время подавляющее большинство производителей современных серверных СУБД поставляют на рынок версии, поддерживающие параллельную обработку данных. Обычно это версии для Windows NT и коммерческих версий UNIX.
Если вы рассчитываете использовать многопроцессорный компьютер в качестве сервера баз данных, вам имеет смысл обратить внимание на то, поддерживает ли выбранная вами СУБД параллельную обработку данных.
Поддержка OLAP и создания хранилищ данных
OLAP (On-Line Analytical Processing) представляет собой технологию построения многомерных хранилищ данных (Data Warehouses), как правило, агрегатных, то есть являющихся результатом обработки набора данных, нередко состоящего из нескольких таблиц. Такие хранилища данных в последнее время широко используются в системах поддержки принятия решений. Более подробно об идеях, лежащих в основе OLAP, будет рассказано в одной из последующих статей данного цикла, здесь же мы ограничимся лишь упоминанием этой возможности.
Многомерные хранилища данных могут быть реализованы как в виде набора обычных реляционных таблиц, так и в виде нереляционной многомерной базы данных. В последнем случае такое хранилище обычно управляется отдельным сервером. Многие производители серверных СУБД поставляют такие серверы отдельно (Oracle, Informix), некоторые включают их в состав сервера реляционных баз данных (Microsoft SQL Server 7.0). Нередко с целью повышения конкурентоспособности подобные OLAP-системы строят многомерные хранилища на основе данных из других СУБД, как это сделано, например, в Microsoft SQL Server OLAP Extensions и в Sybase Adaptive Server IQ.
Если вы планируете создавать системы поддержки принятия решений, вам необходимо обратить внимание на то, какие OLAP-серверы можно использовать на выбранной вами платформе, и поддерживают ли они выбранную вами СУБД.
Распределенные запросы и транзакции
О распределенных транзакциях и запросах заговорили в последнее время, когда наличие нескольких серверов баз данных в одной организации стало обычным явлением. Нужно отметить, что возможности выполнения распределенного запроса или распределенной транзакции поддерживаются сейчас почти всеми серверными СУБД, по крайней мере в том случае, когда все вовлеченные в транзакцию серверы — от одного и того же производителя. С этой целью используется механизм двухфазного завершения транзакций (two-phase commit), когда на первом этапе серверы, вовлеченные в транзакцию, сигнализируют о готовности ее завершить, а на втором этапе происходит реальная фиксация изменений в базах данных.
Что касается распределенных транзакций с участием «чужих» серверов, то они, как правило, реализуются с помощью мониторов транзакций или иных подобных сервисов, например Microsoft Distributed Transaction Coordinator.
Если вы планируете использовать несколько серверов баз данных и совершать операции, затрагивающие данные на нескольких серверах, есть смысл поинтересоваться, поддерживают ли выбранные вами СУБД двухфазное завершение транзакций.
Средства проектирования данных
Многие производители серверных СУБД производят также средства анализа бизнес-процессов и проектирования данных, иногда универсальные (как в случае Sybase DataArchitect), а порой ориентированные главным образом на конкретную СУБД (как в случае Oracle Designer/2000). Многие производители СУБД не имеют в своем арсенале собственных средств проектирования данных, ориентируясь на универсальные CASE-средства типа Platinum ERwin. Нередко производители СУБД встраивают в административные утилиты несложные средства проектирования данных, позволяющие визуально редактировать схемы данных, как это сделано, например, в Microsoft SQL Server 7.0.
Выбирая CASE-средство, обратите внимание на то, поддерживает ли оно выбранную вами СУБД.
Поддержка собственных и «чужих» средств разработки и генераторов отчетов
Многие производители серверных СУБД выпускают также средства разработки и генераторы отчетов. Иногда данные средства разработки используют тот же язык программирования, что применяется при написании триггеров и хранимых процедур (в этом случае, как правило, клиентское приложение должно включать интерпретатор этого языка), что позволяет отлаживать хранимые процедуры, помещая их в клиентское приложение. Типичный пример подобного подхода реализован в Oracle Developer/2000. Однако чаще средства разработки производителей серверных СУБД используют языки программирования, отличные от языков создания серверного кода (характерный пример — четыре средства разработки Microsoft).
Практически все производители серверных СУБД делают все возможное для того, чтобы клиентские приложения для их СУБД можно было создавать с помощью других средств разработки. С этой целью они предоставляют разработчикам описания API клиентской части, ODBC-драйверы, OLE DB-провайдеры, а нередко и объектные модели, позволяя использовать COM-объекты клиентской части в приложениях (как, например, это сделано в клиентских частях Oracle, Microsoft SQL Server, Informix).
Производители серверных СУБД, ориентирующиеся только на собственные средства разработки, как правило, оказываются вытесненными с рынка или теряют его часть. Показательной в этом плане явилась ситуация 1997 года, когда в комплекте поставки некогда популярного сервера SQLBase компании Gupta (ныне Centura) содержался ODBC-драйвер производства компании Intersolv, не поддерживавший хранимые «процедуры». Это вызвало недовольство пользователей Visual Basic и Delphi, и в конечном итоге они перешли на другой продукт, более совместимый с их средствами разработки.
Выбирая СУБД и средство разработки, обратите внимание на то, какие механизмы доступа к данным при этом можно использовать и какие именно серверные объекты в этом случае будут доступны клиентскому приложению. Есть смысл попробовать поработать с оценочными версиями этих продуктов, чтобы убедиться, что вы не попадете в ситуацию, описанную выше.
Поддержка доступа к данным с помощью Internet
Без поддержки публикации данных в Internet или получения данных от удаленных Internet-клиентов сегодня не обходится практически ни одна коммерческая СУБД, в том числе настольные базы данных. Тем или иным способом производители серверных СУБД поддерживают Web-технологии. Чаще всего эта поддержка осуществляется с помощью Web-серверов собственного производства, либо посредством создания расширений для существующих Web-серверов, либо просто путем включения в комплект поставки утилит, генерирующих Web-страницы согласно определенному расписанию.
Обсудив, какие сервисы предоставляют современные серверные СУБД, мы можем наконец поговорить и о конкретных серверах баз данных. Ниже мы рассмотрим наиболее популярные из них.