|
|
Сервер базы данныхСервер БД обслуживает базу данных и отвечает за целостность и сохранность данных, а также обеспечивает операции ввода-вывода при доступе клиента к информации. Архитектура клиент-сервер состоит из клиентов и серверов. Основная идея состоит в том, чтобы размещать серверы на мощных машинах, а приложениям, использующим языковые компоненты СУБД, обеспечить доступ к ним с менее мощных машин-клиентов посредством внешних интерфейсов.
[править] Язык SQLБольшинство СУБД используют язык SQL (Structured Query Language — язык структурированных запросов), так как он удобен для описания логических подмножеств БД. [править] Хранимые и присоединенные процедуры
[править] Операционная среда серверовСерверы БД: SQL SERVER (Microsoft), SQL BASE SERVER, Oracle SERVER (Oracle Corporation).Каждый сервер БД может работать на определенных типах компьютеров и сетей. Операционными системами серверов могут быть MSDOS, OS/2, Xenix,Unix, Dec VMS/ Рабочии станции пользователей обычно работают под управление MSDOS, OS/2, Xenix, Unix. [править] Ссылочная целостность реляционных БДБольшинство SQL-серверов поддерживают ссылочную целостность реляционных БД, состоящих из отдельных таблиц, которые могут быть объединены на основе общей информации Рассмотрим на следующем примере: база данных содержит таблицу клиентов и таблицу заказов, которые связаны полем номера клиента, содержащимся в обеих таблицах. Поскольку может быть более одного заказа от одного клиента, соотношение таблиц – «один-ко-многим». Когда таблицы соединены, то таблица клиентов является родительской, а таблица заказов – дочерней. Если запись-родитель стирается, а соответствующие ей дочерние записи – нет, то говорят, что дочерние записи «осиротели». Ссылочная целостность означает, что ни в одной таблице не допустимы записи-«сироты». Запись может осиротеть тремя способами: 1)родительская запись удалена; 2)родительская запись изменена таким образом, что связь между «родителем» и «потомками» потеряна; 3)введена дочерняя запись без соответствующей родительской. Поддержание ссылочной целостности возможно несколькими способами: 1)Через ключи, хранящиеся в таблицах БД (родительские таблицы содержат первичные ключи, представляющие собой комбинации внешних ключей, которые могут быть найдены внутри каждой из дочерних таблиц). 2)Использование присоединенных процедур – процедурная ссылочная целостность. Присоединенные программы обеспечивают ссылочную целостность за счет автоматического выполнения предложений SQL всякий раз, когда встречается одно из предложений UPDATE/INSERT или DELETE (либо запрещается удаление родительской записи, либо стираются все дочерние записи). [править] Транзакции и целостность БДТранзакция — совокупность логически взаимосвязанных запросов, направленных на согласованное изменение некоторого множества строк в одной или нескольких таблицах БД. Обычно при выполнении транзакций обновляется несколько таблиц и индексов, связанных с этими таблицами. Для того чтобы гарантировать синхронизацию обновления и целостность данных, в серверах обычно используется принцип «все или ничего», означающий, что в БД вносятся либо все обновления или ни одно из них. С этой целью ведется журнал транзакций, в котором регистрируется информация обо всех затребованных изменениях. Этот журнал обеспечивает возможность «прокрутить назад» совершенных транзакции и восстановить предыдущее состояние БД. Это становится важно, когда изменения в БД, предусмотренные в одной транзакции, реализованы лишь частично, например, из-за сбоя аппаратуры. [править] Согласованность чтенияХарактерна для многопользовательских СУБД. Для ее реализации серверы обладают средствами автоматической блокировки. [править] Тупиковые ситуацииСерверы БД должны иметь средства определения состояния взаимоблокировки (dead lock)При возникновении такой ситуации выполнение одной из транзакций прерывается, выводя другую транзакцию из состояния вечного ожидания. Прерванная транзакция после исключения возможности ее блокировки выполняется сначала. [править] Схемы оптимизации работ на языке SQLЦель оптимизации состоит в обеспечении как можно более быстрого получения ответа на запрос с минимальным числом обращений к БД
|