Теория СУБД

ОБЗОР РЫНКА

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

Рынок корпоративных серверных СУБД представлен Oracle, MS SQL, DB2, Sybase и InterBase.

ORACLE (WWW.ORACLE.COM)

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

MS SQL (WWW.MICROSOFT.COM)

Продукт известной всем фирмы. Первая версия была разработана сов­местно с Sybase в 1988 году и пред­назначалась только для платформы OS/2. Следующие версии этого про­дукта были созданы для NT-based сис­тем и тесно интегрированы с ОС, что не удивительно. Для компании гораз­до выгоднее, чтобы ее СУБД исполь­зовались на ее же операционной сис­теме — так совместимость лучше (кто знает операционную систему лучше, чем ее производитель?).

DB2 (WWW-4.IBM.COM)

Это детище IBM (DB2 Universal Database), которое представляет со­бой серию продуктов для различных систем. Впервые проект появился на рынке в 1996 году. Приятно, что при переносе DB2 на другую (не IBM’овс-кую) платформу компания старается максимально эффективно использо­вать возможности новой платформы.

SYBASE (WWW.SYBASE.COM)

Изначально компания разрабаты­вала серверную СУБД совместно с Microsoft. В 1994 году компании ра­зошлись и стали разрабатывать свои программные продукты независимо друг от друга. В результате у Sybase получился продукт под названием Adaptive Server Enterprise. Продукт су­ществует под разные оси и предназ­начен для применения на крупных предприятиях. Существует еще одна линия серверных продуктов Sybase, которая ведет свое начало от СУБД Watcom SQL Anywhere. Этот продукт называется SQL Anywhere Studio, от­личается своей компактностью и простотой администрирования. Пред­назначен в основном для обслужива­ния небольших групп пользователей. Также существуют версии для приме­нения в мобильных устройствах.

INTERBASE

(WWW.BORLAND.COM,

WWW.INTERBASE-WORLD.COM)

Продукт компании Borland Inc. До­вольно компактная, устойчивая и про­изводительная СУБД, способная ра­ботать на различных ОС. Визитная карточка системы — отсутствие острой необходимости напрягаться при раз­работке БД. Так как в другие пакеты этой фирмы (например, Delphi) встро­ены весьма удобные средства для разработки приложений на базе Interbase. Продукт стал популярным вследствие того, что долгое время распространялся бесплатно вместе со средствами разработки. Но кушать хо­чется всем, и Interbase стал платным (что-то странное вообще происходит со многими серьезными проектами).

БЕСПЛАТНЫЕ СУБД

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

MySQL– быстрая, но немного огра­ниченная СУБД. Хорошо подходит для проектов, не требующих сложных баз (например, для web-проектов).

PostgreSQL– мощная и тяжелая сис­тема, отвечающая всем современным стандартам СУБД. Больше подходит для серьезных проектов, требующих сложных баз данных. По скорости ра­боты PostgreSQL уступает MySQL. И администрирование PostgreSQL — ог­ромный геморрой. PostgreSQL — это реляционно-объектная СУБД, в кото­рой есть некоторые расширения для работы с таблицами, на которые мож­но легко отображать иерархии объек­тов. Но это еще не чисто объектная СУБД.

Не забывай, что выбор СУБД зави­сит от поставленной задачи. Ассорти­мент услуг, которые предлагают опи­санные выше СУБД, в основном при­ходится на "клиент-серверную" архи­тектуру. Но кроме больших корпора­ций, которым необходима серверная технология СУБД, существуют еще и маленькие фирмы, которым нет смыс­ла ставить дорогостоящий сервер в одном углу офиса, а компьютер-кли­ент — в другом. Для этого и использу­ют локальные (настольные) СУБД. Основные представители этого рынка: Microsoft Access, Paradox, Visual FoxPro и dBase.

В ЧЕМ СХОДСТВА И РАЗЛИЧИЯ?

Изначально компании сами созда­вали свои форматы файлов баз дан­ных и свои языки программирования для работы с этими БД. Но прогресс необратимо продвигался вперед, и вскоре пользователи и разработчики стали ощущать потребность в стан­дартизации. Производителям приш­лось сделать свои интерфейсы откры­тыми (типа ADO, BDE, ODBC, JDBC и т.д.). Другими словами, ко всем СУБД мож­но получить доступ по одному и тому же интерфейсу.

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

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

ВЫБИРАЕМ БД

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

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

РЕАЛЬНЫЕ ПРОЕКТЫ

Наиболее ярким примером являет­ся популярный проект Open Source -форум phpBB (www.phpBB.com). Мно­гие крупные компании (такие как Fujitsu Siemens Computers, Greenball Corporation) используют в своей ра­боте различные СУБД. Да и любой банк не обойдется без базы данных. Конкретно в нашей стране многие предприятия используют старые СУБД, написанные еще под DOS. При­чина этого — высокая стоимость пере­хода на более современные СУБД плюс лень тамошних администрато­ров и программистов.