Лекция 2. Обзор SQL-серверов
-
Серверные СУБД
Характерные черты современных серверных СУБД
Сервисы, предоставляемые серверными СУБД
Заключение
Серверные СУБД
На сегодняшний день известно более двух десятков серверных СУБД, однако наиболее популярными следует признать Oracle, Microsoft SQL Server, Informix, Sybase, DB2. Сведения о производителях этих СУБД представлены в следующей таблице:
СУБД
|
Производитель
|
Url
|
Oracle
|
Oracle Corp.
|
http://www.oracle.com
|
Microsoft SQL Server
|
Microsoft
|
http://www.microsoft.com
|
Informix
|
Informix
|
http://www.informix.com
|
Sybase
|
Sybase
|
http://www.sybase.com
|
DB2
|
IBM
|
http://www-4.ibm.com
|
Характерные черты современных серверных СУБД
Помимо собственно средства создания и поддержания работоспособности БД современные серверные СУБД предоставляют дополнительный набор сервисов, связанных с обслуживанием хранения и обработки данных, созданием клиентских приложений, сменой СУБД или ее версии, обслуживанием нескольких БД, публикацией данных в Internet. Поскольку в условиях конкуренции между различными производителями СУБД каждый из них стремится к завоеванию как можно большей части рынка, это приводит к тому, что все они пытаются перегнать друг друга и предоставить потенциальному потребителю как можно больше сервисов различного назначения, так как при выборе СУБД потребитель обычно ориентируется на то, что поддерживает данная СУБД, с одной стороны, и чем она поддерживается — с другой. И, как и в случае настольных СУБД, в этой области также происходит процесс заимствования идей, решений и интерфейсов.
-
Инсталляция и настройка
Процесс инсталляции и настройки имеет исключительно важное значение для использования сервера в любой организации. Ресурсы большинства рабочих групп, отделов и организаций часто ограничены, и потому очень важно правильно ими управлять. Как правило, требуется возможность установки сервера человеком не сведущим. Кроме того, многие организации имеют стандартизованные сетевые среды, поэтому добавление нового программного обеспечения требует увеличения накладных расходов на сопровождение. Короче говоря, чем проще инсталляция и настройка, тем лучше.
Все рассмотренные продукты предлагают программы инсталляции/деинсталляции, обладающие примерно равными возможностями. Выделилась только ORACLE, инсталлятор которой является фирменной разработкой и по внешнему виду сильно отличается от принятого в мире Windows. Но по функциональным возможностям он ничем не уступает другим продуктам, а кое в чем даже превосходит их. В процессе инсталляции продуктов создаются базы, содержащие данные для примеров, описанных в документации. В комплект всех продуктов входят утилиты, которые позволяют протестировать правильность установки и настройки.
В целом можно сказать, что по критерию сложности установки рассмотренные продукты находятся на одном уровне.
-
Соответствие стандарту языка SQL
Все рассматриваемые продукты, по заявлениям поставщиков, поддерживают стандарт ANSI SQL 89 и ANSI SQL 92 частично. Однако даже после беглого ознакомления со справочными руководствами становится ясно, что стандарт стандартом, а свой продукт ближе к телу! Каждый из продуктов имеет большее или меньшее число расширений и модификаций стандартных команд языка. Особенно здесь выделяется Personal ORACLE, со своим PL SQL. Этот фирменный диалект языка обеспечивает удобство работы, посредством введения процедурных расширений. Наличие таких расширений существенно облегчает и упрощает процесс разработки приложений для сервера.
Соответствие стандарту, как можно более полное, является залогом того, что вы можете безболезненно перейти на другой сервер базы данных, в случае необходимости. Причем это может быть не только старшие версии продуктов линии одного производителя, но и совершенно другой продукт. Отклонения от стандарта могут выражаться как в наличии расширений, так и в неполной реализации тех или иных средств и свойств языка.
Кратко следует остановиться на следующих возможностях описанных стандартом. Одним из первых в стандарте описывается набор типов данных, которые должны быть реализованы на сервере. Все рассматриваемые серверы соответствуют в этом отношении стандарту. Кроме того, все серверы поддерживают строковые данные переменной длины, описание реализации которых отсутствует в стандарте. Эта возможность описывается стандартом SQL92. Этот же стандарт описывает битовые данные фиксированной и переменной длины, и темпоральные типы данных (data, time, interval). Все рассматриваемые серверы позволяют реализовать хранимые процедуры, триггеры, курсоры и декларативную целостность, что соответствует стандарту SQL92. Однако не все реализации не отличаются полнотой. Например только SQL Anywhere и INTERBASE поддерживаетают каскадное обновление. INTERBASE также поддерживает каскадное обновление. А SQLBase выделилась реализацией сохраненных процедур – они пишутся на специальном языке – SAL. Это может свести на нет переносимость сервера, поскольку язык больше не кем не поддерживается. В стандарте SQL92 введено понятие схемы . Из всех серверов рассмотренных в обзоре только INTERBASE не поддерживает схемы.Все рассмотренные сервера поддерживают это понятие или его эквивалент. По мнению автора одной из наиболее важной особенностей описанной стандартом SQL92 является поддержка национальных языков. Все серверы позволяют указать при создании базы данных, какой национальный язык будет использоваться. Правда стоит отметить, что качество поддержки заметно отличается от продукта к продукту. Так например сервер SQL Anywhere поддерживает только кодировку 866.
Сервисы, предоставляемые серверными СУБД:
-
Реализация для нескольких платформ.
Почти все современные серверы БД существуют в нескольких версиях для различных платформ. Исключением из этого правила является Microsoft SQL Server. Однако для данной СУБД это вполне оправданно — компания Microsoft сама производит серверные ОС и в отличие от большинства других производителей серверных СУБД может себе позволить создавать серверы БД, тесно интегрированные с сервисами ОС собственного производства и поддерживающие исключительно их.
-
Административные утилиты.
Администрирование сервера БД — удел профессионалов. Однако и профессионал предпочтет удобные утилиты администрирования унылому окну с интерфейсом командной строки. Наличие удобных утилит администрирования иногда оказывается одним из решающих факторов при выборе СУБД. Именно поэтому подавляющее большинство современных СУБД обычно поставляется с подобными утилитами, и их интерфейс в последнее время напоминает интерфейс Windows Explorer.
-
Резервное копирование данных.
Резервное копирование данных и журналов транзакций поддерживается всеми без исключения коммерческими серверными СУБД. Различия между СУБД в поддержке резервного копирования заключаются в том, возможно ли производить резервное копирование в процессе работы пользователей, и если да, то какие пользовательские операции в это время нельзя выполнять. Помимо этого в комплекте поставки некоторых СУБД могут содержаться утилиты для использования различных внешних устройств (например, CD) в качестве средств хранения резервных копий.
-
Обслуживание репликаций.
Репликация представляет собой гарантированное копирование информации из одной базы в несколько других. Репликации используются для разделения нагрузки между серверами в сети, для перемещения поднаборов данных на вспомогательные серверы, для синхронизации данных на нескольких серверах и многих других целей.
Репликации поддерживаются всеми современными серверными СУБД. Различия могут быть лишь в поддержке конкретных сценариев репликаций (например, внесение изменений одновременно на нескольких серверах, возможность шифрования реплицируемых данных и др.).
-
Параллельная обработка данных в многопроцессорных системах.
Серверы, поддерживающие параллельную обработку, разрешают нескольким процессорам обращаться к одной БД, что позволяет обеспечить высокую скорость обработки транзакций. Первым программным продуктом такого класса является Oracle Parallel Server.
В настоящее время подавляющее большинство производителей современных серверных СУБД поставляют на рынок версии, поддерживающие параллельную обработку данных.
-
Поддержка OLAP и создания хранилищ данных.
Технология оперативной аналитической обработки данных OLAP (On-Line Analytical Processing) представляет собой технологию построения многомерных хранилищ данных (Data Warehouses), как правило, агрегатных, т. е. являющихся результатом обработки набора данных, нередко состоящего из нескольких таблиц.
Многомерные хранилища данных реализуются в виде нереляционной многомерной БД. Такое хранилище обычно управляется отдельным сервером. Многие производители серверных СУБД поставляют такие серверы отдельно (Oracle, Informix), некоторые включают их в состав сервера реляционных БД (Microsoft SQL Server 7.0). Нередко с целью повышения конкурентоспособности подобные OLAP-системы строят многомерные хранилища на основе данных из других СУБД, как это сделано, например, в Microsoft SQL Server OLAP Extensions и в Sybase Adaptive Server IQ.
-
Распределенные запросы и транзакции.
Возможности выполнения распределенного запроса или распределенной транзакции поддерживаются сейчас почти всеми серверными СУБД. С этой целью используется механизм двухфазного завершения транзакций (two-phase commit), когда на первом этапе серверы, вовлеченные в транзакцию, сигнализируют о готовности ее завершить, а на втором этапе происходит реальная фиксация изменений в БД.
-
Средства проектирования данных.
Многие производители серверных СУБД производят также средства анализа бизнес-процессов и проектирования данных, иногда универсальные (как в случае Sybase DataArchitect), а порой ориентированные на конкретную СУБД (как в случае Oracle Designer 2000). Многие производители СУБД не имеют в своем арсенале собственных средств проектирования данных, ориентируясь на универсальные CASE-средства типа Platinum ERwin. Нередко производители СУБД встраивают в административные утилиты несложные средства проектирования данных, позволяющие визуально редактировать схемы данных, как это сделано, например, в Microsoft SQL
Server 7.0.
-
Поддержка собственных и «чужих» средств разработки и генераторов отчетов.
Многие производители серверных СУБД выпускают также средства разработки и генераторы отчетов. Иногда данные средства разработки используют тот же язык программирования, что применяется при написании триггеров и хранимых процедур. Типичный пример подобного подхода реализован в Oracle Developer 2000. Однако чаще средства разработки производителей серверных СУБД используют языки программирования, отличные от языков создания серверного кода (характерный пример — четыре средства разработки Microsoft).
Практически все производители серверных СУБД делают все возможное для того, чтобы клиентские приложения для их СУБД можно было создавать с помощью других средств разработки.
-
Поддержка доступа к данным с помощью Internet.
Без поддержки публикации данных в Internet или получения данных от удаленных Internet-клиентов сегодня не обходится практически ни одна коммерческая СУБД, в том числе настольные БД. Тем или иным способом производители серверных СУБД поддерживают Web-технологии. Чаще всего эта поддержка осуществляется с помощью Web-серверов собственного производства, либо посредством создания расширений для существующих Web-серверов, либо просто путем включения в комплект поставки утилит, генерирующих Web-страницы согласно определенному расписанию.
Заключение
Итак, мы рассмотрели преимущества архитектуры «клиент-сервер». Мы узнали, что по сравнению с информационными системами, основанными на настольных СУБД, системы, использующие серверные СУБД, обладают более высокой производительностью, меньшим сетевым трафиком, более совершенными средствами обеспечения безопасности, а также возможностями перенести на сервер БД часть кода, связанную с реализацией бизнес-правил и обработкой данных.
Мы также рассмотрели наиболее популярные на сегодняшний день СУБД и признаки, которыми они характеризуются.
Существующие на сегодняшний день возможности наиболее популярных серверных СУБД отражают современные тенденции развития ИС, такие как использование многопроцессорных систем и распределенной обработки данных, создание распределенных систем, в том числе с использованием технологий Internet, применение средств быстрой разработки приложений, создание систем поддержки принятия решений с использованием аналитической обработки данных, с помощью интеллектуального анализа, а также все более повышающиеся требования к надежности и отказоустойчивости ИС.
|