Файл: Определение и задачи распределенной системы (СУБД Oracle).pdf
Добавлен: 04.04.2023
Просмотров: 476
Скачиваний: 1
Итак, в результате работа построена следующим образом:
- База данных в виде набора файлов находится на жестком диске специально выделенного компьютера (сервера сети).
- СУБД располагается также на сервере сети.
- Существует локальная сеть, состоящая из клиентских компьютеров, на каждом из которых установлено клиентское приложение для работы с БД.
- На каждом из клиентских компьютеров пользователи имеют возможность запустить приложение. Используя предоставляемый приложением пользовательский интерфейс, он инициирует обращение к СУБД, расположенной на сервере, на выборку/обновление информации. Для общения используется специальный язык запросов SQL, т.е. по сети от клиента к серверу передается лишь текст запроса. [22]
- СУБД инкапсулирует внутри себя все сведения о физической структуре БД, расположенной на сервере.
- СУБД инициирует обращения к данным, находящимся на сервере, в результате которых на сервере осуществляется вся обработка данных и лишь результат выполнения запроса копируется на клиентский компьютер. Таким образом СУБД возвращает результат в приложение. [20]
- Приложение, используя пользовательский интерфейс, отображает результат выполнения запросов. Рассмотрим, как выглядит разграничение функций между сервером и клиентом.
Функции приложения-клиента:
− посылает серверу запрос.
− получает результаты и интерпретирует результат запроса.
− обладает понятным интерфейсом, который обеспечивает представление результатов пользователю в некоторой форме.
Функции серверной части:
− принимает запросы от приложений-клиентов.
− интерпретирует запросы.
− производит оптимизацию запросов к БД и выполняет его.
− отправляет результат запроса приложению - клиенту.
− обеспечивает систему разграничение доступа и безопасности.
− управляет целостностью БД.
− реализует стабильность многопользовательского режима работы.
В архитектуре «клиент – сервер» используются так называемые «удаленные» (или «промышленные») СУБД. Промышленными они называются из-за того, что именно СУБД этого класса могут обеспечить работу информационных систем масштаба среднего и крупного предприятия, организации, банка. Локальные СУБД предназначены для однопользовательской работы или для обеспечения работы информационных систем, рассчитанных на небольшие группы пользователей.
К разряду промышленных СУБД принадлежат Oracle, Gupta, Informix, Sybase, MS SQL Server, DB2, InterBase и ряд других.
Далее рассмотрим наиболее распространенные.
Системы управления базами данных
СУБД Oracle
Каждая база данных Oracle имеет связанный с ней экземпляр. Организация экземпляра позволяет СУБД обслуживать множество типов транзакций, обеспечивать целостность данных, безопасность и высокую производительность. Термин «процесс» означает любую задачу, выполняемую без вмешательства пользователя.
Открытие БД Oracle включает три стадии.
На первой стадии формируется экземпляр Oracle (предустановочная стадия).
На второй стадии происходит установка базы данных экземпляром (установочная стадия).
На третьей стадии происходит открытие БД (стадия открытия).
Экземпляр, в котором нет базы данных, называется незанятым (idle), но он занимает память и не выполняет никакой работы. Экземпляр может подсоединиться только к одной БД, а до тех пор, пока не будет использован Parallel Server, БД может быть подключена только к одному экземпляру Oracle. Экземпляр – это мозг системы обработки данных. В экземпляре выполняются все операции, в то время как в БД хранятся все данные. Большинство настроек экземпляра связано с компонентами в глобальной системной области. Но кроме них существуют и некоторые опции настройки, касающиеся фоновых процессов.
В процессе работы СУБД ORACLE просматривает тысячи записей в таблицах данных, отвечает на сотни запросов пользователей одновременно. Вся работа распределяется между множеством программ, которые работают независимо одна от другой, причем у каждой своя роль. В совокупности эти программы называются фоновыми процессами ORACLE.
Процессы PMON и SMON выполняют автоматическую уборку после внезапно прекратившихся или завершившихся аварийно процессов. После запуска БД процесс SMON (System Monitor) выполняет автоматическое восстановление экземпляра.
Если при последнем выключении БД что-либо не было завершено, SMON автоматически запускает незавершенные операции.
PMON Process Monitor (Монитор процессов) выполняет автоматическую уборку после внезапно прекратившихся или завершившихся аварийно процессов. Эта уборка включает удаление сеанса, блокировок, которые были им установлены, непринятых транзакций, освобождение ресурсов глобальной системной области, выделенных этому процессу.
Процесс DBWR (DataBase Writer) отвечает за перенос обновленных блоков, занесенных в dirty-cписок из кэш-буфера данных в файлы данных. Вместо того, чтобы записывать каждый блок на диск сразу, DBWR ждет, пока не будет выполнено одно из условий, а затем просматривает dirty-cписок и все отмеченные в нем блоки переписывает на диск.
Процесс LGWR (Log Writer) четвертый и последний фоновый процесс, запуск которого обязателен для работы СУБД ORACLE. Этот процесс отвечает за перезапись информации из буфера журнала транзакций, который находится в глобальной системной области, в файлы оперативного журнала. ORACLE не считает транзакцию выполненной до тех пор, пока процесс LGWR не перезапишет данные о ней из буфера журнала транзакций в файл.
Все процессы сервера могут закрепляться за определенными пользовательскими процессами, либо использоваться несколькими процессами пользователя. В последнем случае они называются разделяемые (shared) процессами или серверами.
Для работы с применением разделяемого сервера необходима установка Multi Threaded Server (MTS). При использовании разделяемых процессов, в системе должен существовать как минимум один процесс диспетчер. Процесс-диспетчер передает запросы пользователей в очередь SGA и возвращает ответы сервера соответствующему процессу пользователя.
Дополнительный фоновый процесс ARCH (Archiver) отвечает за копирование полностью заполненного оперативного журнала транзакций в архивные файлы журналов транзакций. Во время перезаписи в архив никакой другой процесс не может получить доступ к журналу. Во время копирования в архив система должна находиться в состоянии ожидания.
CKPT (Check Point) это дополнительный фоновый процесс, который отвечает за обработку контрольных точек. Необходимость в нем возникает, когда надо снизить нагрузку на LGWR.
Процесс RECO (Recovery) отвечает за восстановление незавершенных транзакций в распределенной системе БД. Когда возникает подозрительная транзакция, RECO выполняет свои функции автоматически без вмешательства администратора БД.
Процесс SNPn (Snapshot) выполняет автоматические обновления снимков БД и запускает процедуры в соответствии с расписанием, зафиксированным в пакете DBMS_JOB. В файле init.ora задается количество запускаемых процессов SNPn и длительность интервала, в течение которого процесс засыпает прежде чем выполнить задание.
Процесс LCKn (Parallel Server Lock) в среде, производящей параллельное обслуживание нескольких экземпляров БД, на LCKn возлагается ответственность за координацию блокировок, устанавливаемых разными экземплярами БД. Если в системе нет параллельного обслуживания, то запуск LCKn не нужен.
Oracle поддерживает реляционную модель данных, поэтому, естественно, что к числу основных объектов Oracle относятся: таблица, представление, пользователь.
Таблица (TABLE) является базовой структурой реляционной модели. Вся информация в базе данных хранится в таблицах. Таблицы состоят из множества поименованных столбцов или атрибутов. Множество значений столбца определено с помощью ограничений целостности, то есть поддерживается ограниченная концепция домена. Полное имя таблицы в базе данных состоит из имени схемы, в данной реализации совпадающем с именем пользователя, создавшего таблицу, и собственно имени таблицы. Таблица может быть пустой или состоять из одной или более строк значений атрибутов. Строки значений атрибутов таблицы называются также кортежами.
Представление (VIEW) это поименованная, динамически поддерживаемая сервером выборка из одной или нескольких таблиц. Оператор SELECT, определяющий выборку, ограничивает видимые пользователем данные. Сервер гарантирует актуальность представления, то есть формирование представления (материализация соответствующего запроса), производится каждый раз при использовании представления. Используя представления, администратор безопасности ограничивает доступную пользователям часть базы данных только теми данными, которые реально необходимы для выполнения его работы. [16]
Пользователь (USER) объект, обладающий возможностью создавать и использовать другие объекты ORACLE, а также запрашивать выполнение функций сервера. К числу таких функций относятся организация сессии, изменение состояния сервера и базы данных, запрос на выполнение операторов SQL и др. Для упрощения решения задач идентификации и именования в базе данных ORACLE поддерживает объекты: последовательность и синоним.
Последовательность (SEQUENCE) – это объект, обеспечивающий генерацию уникальных номеров в условиях многопользовательского асинхронного доступа. Обычно элементы последовательности используются для вставки уникальных идентификационных номеров для элементов таблиц базы данных.
Синоним (SYNONYM) – это альтернативное имя-псевдоним объекта ORACLE, который позволяет пользователям базы данных иметь доступ к данному объекту. Синоним может быть частным и общим. Общий (public) синоним позволяет всем пользователям базы данных обращаться к соответствующему объекту по альтернативному имени.
Для управления эффективностью доступа к данным Oracle поддерживает объекты: индекс, табличная область и кластер.
Индекс (INDEX) – это объект базы данных, создаваемый для повышения производительности выборки данных. Индекс создается для столбцов таблицы или для представления в пространстве базы данных и обеспечивает более быстрый доступ к данным базы данных за счет хранения прямых ссылок на место расположения строк, содержащих требуемые данные.
Табличная область (TABLESPACE) – именованная часть базы данных, используемая для распределения памяти для таблиц и индексов.
Кластер (CLUSTER) – объект, задающий способ совместного хранения данных нескольких таблиц, содержавших информацию, обычно обрабатываемую совместно. Кластеризация столбцов таблиц позволяет уменьшить время выполнения выборки. Строки таблиц, имеющие одинаковое значение в кластеризованных столбцах, хранятся в базе данных специальным образом.
Для эффективного управления разграничением доступа к данным Oracle поддерживает объект роль. Роль (ROLE) – именованная совокупность привилегий, которые могут быть предоставлены пользователям или другим ролям. [16]
Cнимок и связь базы данных ORACLE поддерживает несколько стандартных или предопределенных ролей. Специфичными для распределенных систем являются объекты ORACLE: снимок и связь базы данных. Снимок (SNAPSHOT) – локальная копия таблицы удаленной базы данных, которая используется либо для тиражирования (копирования) всей или части таблицы, либо для тиражирования результата запроса данных из нескольких таблиц. Снимки могут быть модифицируемыми или предназначенными только для чтения. Снимки только для чтения возможно периодически обновлять, отражая изменения основной таблицы. Изменения, сделанные в модифицируемом снимке, распространяются на основную таблицу и другие копии.
Связь базы данных (DATABASE LINK) – это объект базы данных, который позволяет обратиться к объектам удаленной базы данных. Имя связи базы данных можно рассматривать как ссылку на параметры механизма доступа к удаленной базе данных (имя узла, протокол и т.п.). Использование одного имени упрощает работу с объектами удаленной базы данных.
Для программирования алгоритмов обработки данных, реализации механизмов поддержки целостности базы данных Oracle использует объекты: процедура, функция, пакет и триггер.
Процедура (PROCEDURE) – это поименованный, структурированный набор переменных и операторов SQL и PL/SQL, предназначенный для решения конкретной задачи.
Функция (FUNCTION) – это поименованный, структурированный набор переменных и операторов SQL и PL/SQL, предназначенный для решения конкретной задачи и возвращающий значение переменной.
Пакет (PACKAGE) – это поименованный, структурированный набор переменных, процедур и функций, связанных единым функциональным замыслом. Например, ORACLE поставляет пакет DBMS_OUTPUT, в котором собраны процедуры и функции, предназначенные для организации ввода-вывода.
Триггер (TRIGGER) – это хранимая процедура, которая запускается (автоматически выполняется) тогда, когда происходит связанное с триггером событие. Обычно события связаны с выполнением операторов INSERT, UPDATE или DELETE в некоторой таблице. [2]
СУБД MS SQL Server
СУБД MS SQL Server обладает широкими возможностями по разработке и сопровождению баз данных.
Основным компонентом является SQL Server Database Engine, в его состав входит компонент Database Engine – служба для хранения, обработки и обеспечения безопасности данных, репликации, полнотекстового поиска и средств управления реляционными и XML-данными.