База данных хранится во внешней памяти компьютера, за которым работают один или несколько человек, или на выделенном сервере, доступ к которому осуществляется по сети.
Локальными или настольными называют СУБД типа Access, Paradox и т.д. В них уже есть свой формат данных, который учитывает параллельное выполнение операций, возможность доступа к БД нескольких пользователей и т.д. (в принципе, в клиент-серверных ОС БД тоже часто хранятся в файлах на диске, к которым идет доступ средствами ОС, за исключением гигантов типа Oracle, где есть своя файловая система). Делается это, ко нечно, менее эффективно, чем в клиент-серверных СУБД.
Недостатки становятся очевидными не сразу, а по мере увеличения количества данных и числа пользователей. Если снижается производительность и случаются сбои, то знай, что с этими недостатками ты уже познакомился. Объяснить это можно довольно просто: при выполнении какого-либо запроса от клиента программе необходимо прочитать некоторую часть БД из памяти (вся база в память не считывается - это было бы слишком неэффективно), что-то там намутить (в зависимости от запроса) и потом снова записать в память. Представь, сколько данных идет по сети, если БД хранится на выделенном сервере! А если база весит 10 Гб?…
Реальными минусами настольных СУБД являются: неэффективное расходование сетевого трафика и низкая эффективность при большом количестве пользователей.
Однако решение этой проблемы есть. Тебе на помощь придет одна из самых известных и распространенных сейчас технологий – "клиент-сервер".
АРХИТЕКТУРЫ СУБД: ТЕХНОЛОГИЯ "КЛИЕНТ-СЕРВЕР"
Принцип централизации хранения и обработки данных лежит в основе архитектуры "клиент-сервер". При использовании этой технологии весь непосильный труд по обработке данных полностью перекладывается на сервер. Машина-клиент посылает запросы, а сервер их выполняет и посылает ответы клиенту. При таком подходе разгружается сеть (хотя все зависит от запроса) и пропадает необходимость использовать мощные рабочие станции. Можно хранить бизнес-правила на сервере, что поможет избежать дублирования кода в клиентских приложениях. Серверные СУБД обладают расширенными возможностями управления привилегиями пользователей.
Кроме того, современные серверные СУБД предоставляют много возможностей резервного копирования и оптимизации запросов. Поддерживают параллельную обработку запросов, а также предоставляют возможность параллельной обработки данных сразу несколькими процессорами (при использовании в качестве сервера БД многопроцессорной системы).
ОБЗОР РЫНКА
В настоящее время существует множество различных СУБД. Некоторые из них просят денег, некоторые нет (но думаю, тоже не откажутся при случае).
Рынок корпоративных серверных СУБД представлен Oracle, MS SQL, DB2, Sybase и InterBase.
ORACLE (WWW.ORACLE.COM)
Oracle была первой коммерческой реляционной СУБД, поддерживающей язык SQL, который в последствии стал стандартом де-факто. Первая версия продукта появилась на свет в 1979 году. В наши дни компания является лидером рынка производителей коммерческих СУБД и, как написано на сайте, крупнейшим в мире поставщиком корпоративного программного обеспечения.
MS SQL (WWW.MICROSOFT.COM)
Продукт известной всем фирмы. Первая версия была разработана совместно с Sybase в 1988 году и предназначалась только для платформы OS/2. Следующие версии этого продукта были созданы для NT-based систем и тесно интегрированы с ОС, что не удивительно. Для компании гораздо выгоднее, чтобы ее СУБД использовались на ее же операционной системе – так совместимость лучше (кто знает операционную систему лучше, чем ее производитель?).