Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на СУБД.docx
Скачиваний:
6
Добавлен:
30.08.2019
Размер:
146.57 Кб
Скачать
  1. Файл-серверные приложения

Компоненты информационной системы, выполняемые на разных рабочих станциях (PC), взаимодействуют только за счет наличия общего хранилища файлов, которое хранится на файл-сервере. В классическом случае в каждой PC дублируются не только прикладные программы, но и средства управления базами данных. Файл-сервер представляет собой разделяемое всеми PC комплекса расширение дисковой памяти (рисунок 2.1).

Основным достоинством является простота организации.

Рис. 2.1. Классическое представление информационной системы в архитектуре "файл-сервер"

С другой стороны, во-первых, информационной системе предстоит работать с базой данных. Следовательно, эта база данных должна быть качественно спроектирована.

Во-вторых, необходимыми требованиями к базе данных информационной системы являются поддержание ее целостного состояния и гарантированная надежность хранения информации.

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

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

В целом, в файл-серверной архитектуре имеем "толстого" клиента и очень "тонкий" сервер в том смысле, что почти вся работа выполняется на стороне клиента, а от сервера требуется только достаточная емкость дисковой памяти.

Клиент-серверные приложения

Под клиент-серверным приложением будем понимать информационную систему, основанную на использовании серверов баз данных. Общее представление информационной системы в архитектуре "клиент-сервер" показано на рисунке 2.3.

При этом:

  • На стороне клиента выполняется код приложения, в который обязательно входят компоненты, поддерживающие интерфейс с конечным пользователем, производящие отчеты и выполняющие другие, специфичные для приложения функции (пока нас не будет занимать, как строится код приложения).

  • Клиентская часть приложения взаимодействует с частью программного обеспечения управления базами данных.

Рис. 2.3. Общее представление информационной системы в архитектуре "клиент-сервер"

Процессы, происходящие на стороне сервера баз данных следующие:

(Отметим, что в продуктах практически всех компаний сервер получает от клиента текст оператора на языке SQL).

  • Сервер производит компиляцию полученного оператора.

  • Если компиляция завершилась успешно происходит выполнение оператора.

2. Поддержка языков БД обеспечивает поддержку языка обработки данных и языка манипулирования данными, а также другие инструкции поддержки данных.

Стандартным языком наиболее распространенных в настоящее время реляционных СУБД является язык SQL (Structured Query Language).

В типовой структуре реляционной СУБД логически можно выделить

  • ядро СУБД;

  • компилятор языка БД;

  • подсистему поддержки времени выполнения;

  • набор утилит.

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

Основной функцией компилятора языка БД является преобразование операторов языка БД в выполняемую программу.

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

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

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

Утилиты программируются с использованием интерфейса ядра СУБД.

Производительность СУБД оценивается:

  • временем выполнения запросов;

  • скоростью поиска информации в неиндексированных полях;

  • временем выполнения операций импортирования базы данных из других форматов;

  • скоростью создания индексов и выполнения операций обновление, добавления и, удаление данных;

  • максимальным числом параллельных обращений к данным в многопользовательском режиме;

  • временем генерации отчета.