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

Вид материалаДокументы

Содержание


Тема: Структуры, операции, ограничения
Агрегат данных
База данных
Элемент данных
Группа – это поименованная совокупность элементов данных или элементов и других групп. Групповое отношение
Основные операции над данными
Подобный материал:
1   2   3   4   5   6   7   8   9   ...   23

Тема: Структуры, операции, ограничения


Структура данных


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

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

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

Пример. Предметная область языкознание. Компоненты или аксиомы-понятия: Грамматика, фонетика, семантика …, т.е. точно договариваемся что понимаем под "Грамматикой", "Фо..", и т.д., только тогда можно сравнивать, например, два иностранных языка.) из четырех основных типов логических структур данных:
  1. Поле – наименьшая поименованная единица данных;
  2. Запись – поименованная совокупность полей;
  3. Файл – поименованная совокупность экземпляров записей одного типа;
  4. Библиотека файлов (набор) – поименованная совокупность файлов, обрабатываемых в системе.


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

Существует большое количество терминов, используемых для обозначения определенных типов структур данных. Широко распространена терминология, предложенная CODASIL (Conference on Data Systems Languages) – Ассоциацией по языкам систем обработки данных.


Элемент

данных

Агрегат

данных

Запись

Набор

База

данных












Рис.1 Структура данных в моделт КОДАСИЛ


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

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

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

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

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

Элемент данных соответствует определению, приведенному в терминологии CODASYL. Понятие «группа» одновременно соответствует и понятию «агрегат» и понятию «запись».

Группа – это поименованная совокупность элементов данных или элементов и других групп.

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

База данных – поименованная совокупность экземпляров групп и групповых отношений.

Основные операции над данными


Динамические свойства модели данных выражаются множеством операций, которые определяют допустимые действия над некоторой реализацией базы данных для перевода ее из одного состояния в другое. Реализация любой конкретной операции над данными включает в себя селекцию данных, т. е. выделение из совокупности именно тех данных, над которыми должна быть выполнена требуемая операция, и действие над выделенными данными, которое определяет характер операции. Селекция выполняется любым из способов с использованием: логической позиции данного, значений данных, связей между данными. В существующих языках конкретных СУБД наблюдаются различные комбинации видов селекции данных и формы их выражения средствами конкретного языка. По характеру производимого действия различают следующие виды операций:
  1. Идентификацию данного и нахождение его позиции в БД;
  2. Выборку (чтение) данного из БД;
  3. Включение (запись) данного в БД;
  4. Удаление данного из БД;
  5. Модификацию данного в БД;

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

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

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

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

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


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

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

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

1 – атомарность – требует, чтобы все операции (части) транзакции были завершены, иначе транзакция отменяется

2_ - устойчивость гарантирует, что если транзакция завершена, то БД достигает непротеворичивого состояния; это состояние не может быть утрачено даже в случае сбоя системы

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

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


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

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

Транзакция, которая изменяет содержимое БД, переводит БД из одного устойчивого состояния в другое.

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