Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
DataAcc.doc byajhvfnbrf.doc
Скачиваний:
23
Добавлен:
02.03.2016
Размер:
759.3 Кб
Скачать

2.2.2. Базы данных и субд

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

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

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

2.2.2.1. Типология БД

По форме хранимой информации выделяют:

  • фактографические БД;

  • документальные БД;

  • мультимедийные БД.

По типу используемой модели данных выделяют:

  • иерархические БД;

  • сетевые БД;

  • реляционные БД.

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

2.2.2.2. Реляционная модель данных и операции над отношениями

Реляционная модель предложена сотрудником компании IBMЕ.Ф.Коддом в 1970 г.

Декартово произведение: Для заданных конечных множеств D1,D2, …,DN(не обязательно различных) декартовым (прямым) произведениемD1D2…DNназывается множество наборов{<d1,d2, …,dN>}, гдеd1D1,d2D2, …dNDN.

Отношение: Отношением R, определенным на множествахD1,D2, …,DN, называется подмножество декартова произведенияD1D2…DN. При этом:

множества D1,D2, …,DNназываются доменами отношения;

элементы декартова произведения < d1,d2, …,dN> называются кортежами;

число Nопределяет степень отношения;

количество кортежей называется мощностью отношения.

Отношения удобно представлять в виде таблиц. Строки таблиц называются экземплярами отношения, столбцы – атрибутами; каждый атрибут имеет область значений, называемую доменом.

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

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

Взаимосвязь таблиц поддерживается внешними ключами (externalkey).

Таблицы невозможно хранить и обрабатывать, если в БД отсутствуют «данные о данных» (метаданные), например, описатели таблиц, столбцов и т.д. Метаданные также представлены в табличной форме и хранятся в словаре данных (DD–DataDictionary) или описателе БД (DBD–DataBaseDefinition) – служебном файле или системной таблице БД.

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

Преобразование и обработка данных в реляционной модели описываются аппаратом так называемой реляционной алгебры. Операндами реляционной алгебры являются отношения. К операциям относятся следующие преобразования отношений:

  1. Теоретико-множественные операции над подобными отношениями (отношениями, имеющими одинаковую структуру): объединение, пересечение, разность.

  2. Операции над одним отношением:

    1. селекция – построение отношения-результата из отношения-источника путем отбора экземпляров по критерию;

    2. проекция – построение результирующего отношения путем отбора части атрибутов всех экземпляров исходного отношения.

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

2.2.2.3. Язык SQL

С целью стандартизации формального описания запросов к базе данных они формулируются на стандартном языке запросов (ЯМД – язык манипулирования данными), которым для многих СУБД является SQL. Появление и развитие этого языка как средства описания доступа к БД связано с созданием теории реляционных БД. Прообраз языкаSQLвозник в 1970 г. в рамках научно-исследовательского проектаSystem/RфирмыIBM.

SQLофициально стандартизируетсяANSI/ISO.

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

2.2.2.4. Обработка транзакций

Транзакция – законченный блок обращений к ресурсу (БД) и некоторых действий над ним, описываемых последовательностью операторов ЯМД, которое рассматривается как некоторое неделимое действие над базой данных, осмысленное с точки зрения пользователя. Пример: банковская транзакция по переводу средств со счета на счет.

Традиционные транзакции – ACID-транзакции – характеризуются четырьмя свойствами:

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

  2. Согласованность (Consistency). Транзакция не нарушает согласованности данных. По завершении транзакции данные являются согласованными.

  3. Изолированность (Isolation). Одновременный доступ транзакций к БД координируется таким образом, чтобы они не влияли друг на друга.

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

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

Автоматическое объединение последовательных операторов SQLв транзакции невозможно, поскольку транзакционность относится к сфере логики приложения. Следовательно, для того, чтобы указать серверу, когда транзакция начинается и заканчивается, необходимы специальные операторы. ОператорыCOMMIT(фиксация) иROLLBACK(откат) определены в стандартеANSI/ISOSQL.

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

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

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

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

Устранить данные проблемы позволяет следование правилам:

  1. В процессе выполнения транзакции пользователь (программа) «видит» только согласованные состояния БД. Пользователь никогда не может получить доступ к незафиксированным изменениям, достигнутым в результате действий другого пользователя.

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

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

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

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

OLTP (On-Line Transaction Processing) – оперативная обработка транзакций. Данный термин применяют к системам, функции которых ориентированы на единовременную обработку сотен транзакций, изменяющих данные. Типичными предметными областями являются системы обслуживания операций по кредитным карточкам, системы бронирования билетов, телекоммуникационные системы.

2.2.2.5. Классы и структуры СУБД

СУБД обеспечивает:

  • описание и контроль данных;

  • манипулирование данными (запись, поиск, выдачу, изменение содержания);

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

  • защиту от сбоев, поддержку целостности и восстановление;

  • работу с транзакциями и файлами;

  • безопасность данных.

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

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

В структурном составе СУБД могут быть выделены ядро и среда.

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

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

Утилиты АБД образуют библиотеку программ обслуживания БД в привилегированном режиме (работа пользовательских средств одновременно с программами обслуживания не разрешена). Основные функции утилит АБД:

  • физическая подготовка носителя к размещению БД;

  • подготовка справок о составе БД, структуре файлов, количестве данных и занимаемом объеме;

  • загрузка файла БД из последовательного набора данных ОС;

  • дозагрузка (расширение существующего файла);

  • модификация БД: расширение или перемещение физических наборов данных, реорганизация;

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

  • выгрузка образа БД (файла таблицы) для сохранения в архивном наборе данных;

  • создание и ведение словаря данных и др.

К средствам пользователя, поставляемым разработчиками СУБД, относятся:

  • диалоговые интерфейсы;

  • генераторы отчетов;

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

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