Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вопросы по буяльскому 2.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
433.58 Кб
Скачать

Серверы баз данных

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

Серверы реляционных и нереляционных баз данных могут быть различного вида и масштабов. Большинство программ-серверов баз данных - такие как Oracle7 и Sybase System 11 - выполняются на выделенных машинах. При этом серверы баз данных работают на разнообразных процессорах и в различных операционных средах. Следовательно, у создателей систем клиент-сервер имеется выбор для удовлетворения потребностей прикладных программ. Oracle, например, работает на большинстве RISC- и CISC-ориентированных Unix-системах, включая HP/UX фирмы Hewlett-Packard и Solaris компании Sun. Кроме того, Oracle выполняется на серверах, использующих процессоры Intel под управлением SCO Unix и Netware компании Novell.

Некоторые изготовители серверов баз данных, такие как компании Borland (Interbase) и Sybase (SQL Server), предоставляют версии своих серверов для запуска на системах-клиентах (например, в процессах Microsoft Windows 3.1 или Windows 95). Это позволяет разработчику систем клиент-сервер создавать клиентскую часть программ, избежав необходимости немедленной покупки отдельного сервера баз данных.

Серверы реляционных баз данных (известные также как SQL-серверы или SQL-процессоры) составляют большинство применяемых в настоящее время серверов. Однако, в нескольких секторах рынка их догоняют объектно-ориентированные и многомерные серверы баз данных.

Серверы объектно-ориентированных баз данных, такие как GemStone компании GemStone Systems, хранят информацию в форме объектов, что больше подходит дл средств разработки программ-клиентов, которые работают с чисто объектной моделью.

Более того, в объектно-ориентированных СУБД лучше, чем в реляционных, организовано хранение сложных структур данных. Серверы многомерных баз данных, такие как Essbase Analysis Server фирмы Arbor Software Corp., обеспечивают более понятное конечным пользователям представление данных и обладают новыми средствами оперативного анализа (OLAP).

Функции сервера

Серверы баз данных занимаются не только обслуживанием данных. В них предусмотрены также механизмы блокировок и элементы управлени многопользовательским доступом, которые обеспечивают защиту данных от опасности параллельного доступа. Кроме этого, серверу баз данных приходится ограждать данные от несанкционированного доступа, оптимизировать запросы к базе данных, обеспечивать кэширование и предоставлять место для размещения словаря данных.

Две другие важные особенности, на которые стоит обратить внимание, - способность сервера обеспечивать целостность ссылочных данных и обоюдный контроль завершения транзакции. Ссылочная целостность данных (referential integrity) - это механизм, обеспечивающий каждому внешнему ключу соответствующий первичный ключ. Обоюдный контроль завершения транзакций (two-phase commit) - гарантия того, что ваши данные не будут повреждены даже при аппаратном сбое.

С помощью хранимых процедур, триггеров и правил разработчики могут составить программу непосредственно самого сервера баз данных и, таким образом, появляетс еще одно место для размещения логики программы. Хранимые процедуры (stored procedures) - это группа предложений на языке SQL и процедурная логика, которые разработчики могут компилировать и хранить на сервере баз данных в качестве объектов. Программы-клиенты способны выполнять хранимые процедуры, также как и другой вид хранимых процедур или триггеров, путем посылки сообщений серверу баз данных.

Триггеры (triggers) - это хранимые процедуры, которые активизируются автоматически, как только серверу баз данных встречается связанное с данными событие. Правило (rule) - это специальный тип триггера, который проверяет данные до внесения их в базу данных.

Большая часть имеющихся на данный момент хранимых процедур, триггеров и правил обладает весьма узкой специализацией и отличающимися возможностями. SQL Server способен запускать только один триггер дл операции вставки, в то время как CA-OpenIngres обеспечивает работу нескольких триггеров. Более того, расширения процедур SQL у разных изготовителей разные.