Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

СКБД - все лк

.pdf
Скачиваний:
11
Добавлен:
16.03.2016
Размер:
2.91 Mб
Скачать

МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ

ХАРКIВСЬКИЙ НАЦІОНАЛЬНИЙ УНIВЕРСИТЕТ РАДIОЕЛЕКТРОНIКИ

КОНСПЕКТ ЛЕКЦІЙ

з дисципліни

«СИСТЕМИ КЕРУВАННЯ БАЗАМИ ДАНИХ»

для студентiв денної форми навчання напряму 6.050102 «Комп’ютерна інженерія»

Електронне видання

ЗАТВЕРДЖЕНО кафедрою ЕОМ

Протокол № ____ від __________

ХАРКIВ 2013

Конспект лекцій з дисципліни «Системи керування базами даних» для студентів денної форми навчання напряму 6.050102 «Комп’ютерна інженерія» [Електронне видання] / Упоряд. С.С. Танянський. – Харків: ХНУРЕ, 2013. – 118 с.

Упорядник

С.С. Танянський

СУБД для специальности СП, III курс

Лекция №1 Общее представление об информационной системе

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

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

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

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

Задачи информационных систем

Конкретные задачи, которые должны решаться информационной системой, зависят от той прикладной области, для которой предназначена система.

Можно выделить следующие задачи, не зависящие от специфики прикладной области.

Первая – накопление информации для длительного хранения.

Вторая – хранение данных, обладающих разными структурами.

Третья – возможность развиваться (могут появиться новые

функции, для выполнения которых требуются дополнительные данные с новой структурой, при этом вся накопленная ранее информация должна остаться сохранной).

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

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

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

В результате развития большинства таких систем в них выделился отдельный компонент, который представляет собой систему управления базами данных (СУБД).

При этом для поддержки общих свойств данных и системы в целом, СУБД должна обрабатывать набор метаданных (данные о данных, структурах, индексах и т.д.), схему данных, выполнять произвольные запросы к БД и др.

Традиционным методом организации информационных систем является двухзвенная архитектура ИС (рисунок 1.1).

Рис. 1.1. Традиционная двухзвенная архитектура ИС

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

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

Для того чтобы клиенты могли быть "тонкими", а также и для повышения общей эффективности системы, все чаще применяются трехзвенные архитектуры ИС (рисунок 1.2).

Рис. 1.2. Трехзвенная архитектура ИС с выделенным сервером приложений

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

Отметим, что некоторые качества трезвенности могут присутствовать и в двухзвенной архитектуре.

Если, например, используемый сервер баз данных поддерживает развитый механизм хранимых процедур (например, такой, как в Oracle V.7, SQl Server), то можно перенести некоторую часть логики приложения на сторону баз данных.

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

Устно:

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

Общая классификация архитектур информационных приложений

Устно:

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

Файл-серверные приложения

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

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

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

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

Устно:

Почему-то часто разработчики файл-серверных приложений считают, что по причине простоты средств управления базами данных проблемой проектирования базы данных можно пренебречь. Конечно, это неправильно. База данных есть база данных. Чем качественнее она спроектирована, тем больше шансов впоследствии эффективно использовать информационную систему. Естественно, сложность проектирования базы данных определяется объективной сложностью моделируемой предметной области. Но, собственно, из чего должно следовать, что файл-серверные приложения пригодны только в простых предметных областях?

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

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

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

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

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

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

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

При этом:

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

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

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

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

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

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

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

Устно:

Здесь не будем обсуждать технические детали, поскольку они различаются в реализациях.

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

Выводы:

Сформулируем некоторые предварительные выводы.

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

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

Устно:

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

СУБД для специальности СП, III курс

Лекция №2

Организация СУБД

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

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

2.1. Функции, структура и основные характеристики СУБД

Косновным функциям СУБД принято относить следующие:

управление данными во внешней памяти;

управление буферами оперативной памяти;

управление транзакциями;

журнализация и восстановление БД после сбоев;

поддержка языков БД.

Управление данными во внешней памяти включает обеспечение необходимых структур внешней памяти как для хранения данных, непосредственно входящих в базу данных, так и ускорения доступа к ним.

Управление буферами оперативной памяти используется при обращении к любому элементу данных и определяет скоростью работы СУБД в целом.

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

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

Журнализация и восстановление БД после сбоя обеспечивает физическую целостность базы данных и полное или частичное восстановление данных.

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

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

При различной организации журнала всегда придерживаются стратегии упреждающей записи в журнал. То есть, запись об изменении любого объекта БД должна попасть во внешнюю память журнала раньше, чем измененный объект попадет во внешнюю память основной части БД. Если в СУБД корректно соблюдается это условие, то с помощью журнала можно решить все проблемы восстановления БД после любого сбоя.

Устно.

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

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

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

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

ядро СУБД;

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

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

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

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