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

Базы данных. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
11.08.2026
Размер:
604 Кб
Скачать

1)выбирается очередная запись из списка данной тран- закции;

2)выполняется противоположная по смыслу операция (например, вставка вместо удаления); тем самым вос-

станавливается предыдущее состояние объекта базы данных;

3)обратные операции журнализируются;

4)при успешном завершении отката в журнал заносится запись о конце транзакции; с точки зрения механизма журнализации такая транзакция является зафиксиро- ванной.

3.8. Восстановление после мягкого сбоя

К числу проблем, возникающих при мягком сбое, отно- сится тот факт, что одна логическая операция модификации

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

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

состояние внешней памяти базы данных называют физически согласованным.

Контрольные точки

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

установленный временной интервал и включают выполнение следующих действий:

1)запись всех имеющихся в оперативной памяти записей журнала во вторичную память;

2)запись всех модифицированных блоков в буферах ба- зы данных во вторичную память;

61

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

3.9. Восстановление БД после жесткого сбоя

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

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

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

Восстановления начинается с обратного копирования базы данных из архивной копии; затем для всех закончив-

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

новление не к последнему согласованному состоянию базы данных.

62

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

3.10.Администратор базы данных

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

Обязанности администратора БД перечислены ниже.

Определение информационного содержания базы дан-

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

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

Определение структуры памяти и стратегии доступа.

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

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

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

Определение стратегии отказа и восстановления. Ра-

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

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

63

нистратор должен определить и реализовать соответст- вующую стратегию восстановления.

Модернизация и эффективность работы базы данных.

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

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

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

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

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

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

64

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

Итак, администратор базы данных - это:

управляющий данными, а не хозяин;

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

лицо, принимающее окончательное решение в своей области, и человек, обладающий способностями к общению, совместному планированию и компро-

миссам.

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

Инструментом администратора БД является словарь данных, описанный в Словаре вычислений от IBM как "цен- тральное хранилище информации о данных, такой, как значе- ние, взаимосвязи с другими данными, их источник, примене- ние и формат." Термин может иметь одно из близких по смыслу значений, относясь к базам данных и СУБД:

документ, описывающий базу данных или комплект баз данных;

целый компонент СУБД, необходимый для определе- ния ее структуры;

65

Вопросы для самопроверки

1.Каковы основные функции СУБД?

2.Как вы понимаете смысл терминов:

žядро базы данных;

žадминистратор БД;

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

3.Какие функции выполняет ядро БД?

4.Каковы функции утилит, встроенных в СУБД?

5.В чем конкретно заключается такая функция СУБД,

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

6.Что означает термин транзакция?

7.Перечислите виды сбоев БД и дайте характеристику каждому.

8.Расскажите своими словами стратегию восстановления БД:

žпри откате транзакции;

žпосле мягкого сбоя;

žпосле жёсткого сбоя.

9.Что такое журнализация?

10.Что такое буферизация?

11.Перечислите обязанности администратора баз данных.

12.В каких случаях проводится индивидуальный откат транзакции?

13.Какую информацию содержат контрольные точки?

14.Поясните необходимость журнализации и буферизации.

15.Каков состав типовой БД?

16.Перечислите категории пользователей БД.

17.Каким образом может быть организован поиск в СУБД?

18.Что такое словарь данных?

19.Что понимается под термином эффективность базы дан- ных?

20.Каков порядок создания базы данных?

66

ГЛАВА 4. ЯЗЫК SQL

4.1. Язык SQL - фактический стандарт для реляционных СУБД

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

SQL (Structured Query Language) — Структурированный Язык Запросов стандартный язык запросов по работе с ре- ляционными БД. Язык SQL появился после реляционной ал- гебры, и его прототип был разработан в конце 70-х годов в компании IBM Research. Он был реализован в первом прото- типе реляционной СУБД фирмы IBM System R. В дальней-

шем этот язык применялся во многих коммерческих СУБД и в силу своего широкого распространения постепенно стал стандартом «де-факто» для языков манипулирования данны- ми в реляционных СУБД.

Первый международный стандарт языка SQL был при- нят в 1989 г. (SQL/89 или SQL1). В конце 1992 г. был принят новый международный стандарт языка SQL (SQL/92 или SQL2). И он не лишен недостатков, но в то же время является существенно более точным и полным, чем SQL/89.

В 1999 году появился новый стандарт, названный SQL3. Если отличия между стандартами SQL1 и SQL2 во многом были количественными, то стандарт SQL3 соответствует ка- чественным серьезным преобразованиям. В SQL3 введены новые типы данных, при этом предполагается возможность задания сложных структурированных типов данных, которые в большей степени соответствуют объектной ориентации. В

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

67

ку. Это повышает гибкость реализации сложных алгоритмов обработки информации.

В настоящее время действует стандарт, принятый в 2003 году (SQL:2003) с небольшими модификациями, внесён- ными позже в 2008 г.

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

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

ANSI/ISO SQL.

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

Поскольку SQL- это язык запросов, то с его помощью невозможно написать сколько-нибудь сложные программы, которые работают с базой данных. Для этой цели в совре- менных СУБД используют язык четвертого поколения (4GL - Forth Generation Language), обладающий как основными воз-

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

68

Процесс обработки SQL- запроса представлен схема- тично на рис.4.1.

SQL

Database

 

Request

Database

 

Manage-

 

ment Sys-

 

Requested

tem

 

 

 

Data

 

 

Рис.4.1. Обработка SQL–запроса базой данных

4.2. Основные классы операторов языка SQL

4.2.1.Операторы определения данных Data Definition Language (DDL)

Эта составляющая языка содержит 5 операторов, позво- ляющие создавать, модифицировать и уничтожать базы дан- ных и объекты внутри них (таблицы, представления) (табл. 4.1).

 

Таблица 4.1

Оператор

Описание

 

 

CREATE TABLE

Добавление новой таблицы к базе данных

 

 

DROP TABLE

Удаление таблицы из базы данных

 

 

ALTER TABLE

Изменение структуры имеющейся таблицы

 

 

CREATE VIEW

Добавление нового представления к базе дан-

 

ных

DROP VIEW

Удаление представления

 

 

CREATE INDEX

Создание нового индекса

 

 

DROP INDEX

Удаление существующего индекса

 

 

69

4.2.2.Операторы манипулирования данными Data Manipulation Language (DML)

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

Описание операторов представлено в табл. 4 2.

Таблица 4.2

Оператор

Описание

 

 

SELECT

Выбор данных

 

 

INSERT

Вставка данных

 

 

DELETE

Удаление данных

 

 

UPDATE

Обновление данных

 

 

Иногда оператор SELECT относят к отдельной катего-

рии Data Query Language (DQL).

4.2.3.Контроль транзакций Transaction Control Language (TCL)

Операторы данного класса (табл. 4.3) применяются для управления изменениями, выполняемыми группой операторов

DML.

 

Таблица 4.3

Оператор

Описание

 

 

COMMIT

Завершение транзакции и со-

 

хранение изменений в базе дан-

 

ных

ROLLBACK

Откат транзакции и отмена из-

 

менений в базе данных

SET

Установка параметров доступа к

TRANSACTION

данным в текущей транзакции

70

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]