Базы данных

Автор работы: Пользователь скрыл имя, 23 Октября 2011 в 21:07, лекция

Краткое описание

Важнейшая задача компьютерных систем - хранение и обработка данных. Для ее решения были предприняты усилия, которые привели к появлению специализированного программного обеспечения - систем управления базами данных (database management systems). СУБД позволяют структурировать, систематизировать и организовать данные для их компьютерного хранения и обработки.

Содержимое работы - 1 файл

КонспектБД.doc

— 138.00 Кб (Скачать файл)

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

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

      Такая архитектура суть воплощение концепции  активного сервера. Она опирается на четыре "столпа":

    • процедуры базы данных
    • правила (триггеры)
    • события в базе данных
    • типы данных, определяемые пользователем

      Процедуры базы данных В различных СУБД они носят название хранимых (stored),  присоединенных, разделяемых и т. д. Использование процедур базы данных преследует четыре цели.

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

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

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

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

      В современных СУБД процедура хранится непосредственно в базе данных и контролируется ее администратором БД.

      Правила

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

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

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

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

      Одна  из целей механизма правил - отражение  некоторых внешних правил деятельности организации.

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

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

      События в базе данных

      Механизм  событий в базе данных (database events) позволяет прикладным программам и серверу базы данных уведомлять другие программы о наступлении в базе данных определенного события и тем самым синхронизировать их работу. Операторы языка SQL,  обеспечивающие уведомление, часто называют сигнализаторами событий в базе данных (database event alerters).

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

      Механизм  событий используется следующим  образом. Вначале в базе данных для  каждого события создается флажок, состояние которого будет оповещать прикладные программы о том, что некоторое событие имело место (оператор CREATE DBEVENT - СОЗДАТЬ СОБЫТИЕ). Далее, во все прикладные программы, на ход выполнения которых может повлиять это событие, включается оператор REGISTER DBEVENT (ЗАРЕГИСТРИРОВАТЬ СОБЫТИЕ), который оповещает сервер базы данных, что данная программа заинтересована в получении сообщения о наступлении события. Теперь любая прикладная программа или процедура базы данных может вызвать событие оператором RAISE DBEVENT (ВЫЗВАТЬ СОБЫТИЕ). Как только событие произошло,  каждая зарегистрированная программа может получить его, для чего она должна запросить очередное сообщение из очереди событий (оператор GET DBEVENT – ПОЛУЧИТЬ СОБЫТИЕ) и запросить информацию о событии, в частности, его имя (оператор SQL INQUIRE_SQL). 

      Типы  данных, определяемые пользователем 

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

      Распределенные  БД и распределенная обработка данных

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

      Распределенная  СУБД (СУРБД) – комплекс программ, предназначенный для управления распределенными БД и позволяющий сделать распределенность информации прозрачной для конкретного пользователя.

      

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

      Гомогенные  СУРБД – все сайты используют один и тот же тип СУБД.

      Гетерогенные  СУРБД – могут быть на разных сайтах разные СУБД ( реляционные, сетевые, иерархические, например).

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

      Задачи, которые уже решаются, - разработать:

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

      Понятие транзакции

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

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

      Существуют  различные модели транзакций, которые  могут быть классифицированы на основании  различных свойств, включающих структуру  транзакции, параллельность внутри транзакции,  продолжительность и т. д. Чаще всего имеют в виду традиционные транзакции,  характеризуемые четырьмя классическими свойствами:  атомарности, согласованности, изолированности, долговечности (прочности) - ACID (Atomicity, Consistency,  Isolation, Durability). Иногда традиционные транзакции называют ACID-транзакциями. Упомянутые выше свойства означают следующее.

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

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

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

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

      Таким образом, возможны два варианта завершения транзакции.  Если все операторы  выполнены успешно, и в процессе выполнения транзакции не произошло никаких сбоев программного или аппаратного обеспечения, транзакция фиксируется.

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

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

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

Информация о работе Базы данных