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




 

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

 

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

 

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

• поле – наименьшая поименная единица данных;

• запись – поименованная совокупность полей;

• файл – поименованная совокупность экземпляров записей одного типа;

• набор файлов (или библиотека) – поименованная совокупность
файлов, обрабатываемых в системе.

 

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

Существует много терминов, используемых для обозначения определенных типов структур данных. Широко распространена терминология, предложенная КОДАСИЛ (CODASYL – the Conference on Data Systems Languages) – Ассоциацией по языкам систем обработки данных (рис. 2.1). Схема рисунка определяет порядок композиции структур данных этой модели.

 

 

 

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

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

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

Набор – поименованная совокупность записей, образующих двухуровневую иерархическую структуру. Каждый тип набора представляет собой отношение (связь) между двумя или несколькими типами записей. Для каждого типа набора один тип записи может быть объявлен владельцем набора, тогда остальные типы записи объявляются членами набора. Каждый экземпляр набора должен содержать только один экземпляр записи типа записи-владельца и столько экземпляров записей типа записи-члена, сколько их связано с записью-владельцем. Основное назначение набора – представление связей между записями. Если запись используется для представления сущности, то набор для представления связей между рассматриваемыми сущностями представляют записями, входящими в набор. В схеме набора задают типы составляющих его записей, определяют тип записи-владельца и типы записей-членов, присваивают имя набору. Тип набора является основным композиционным элементом, с помощью которого строится структура всей базы данных в модели КОДАСИЛ. Заметим, что в данном случае термин не является аналогом набора файлов.

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

Выше рассмотрены структуры модели данных КОДАСИЛ. Однако не во всех СУБД используют рассмотренную терминологию. Поэтому при рассмотрении МД часто бывает удобным использовать следующую терминологию: элемент данных; группа; групповое отношение; БД.

Элемент данных соответствует определению, приведенному в терминологии КОДАСИЛ.

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

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

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

Рассмотренные типы структур позволяют использовать различные формы представления схемы данных, включая обычное представление в виде исходного текста на ЯОД.

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

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

 

Операции над данными

 

Динамические свойства МД выражаются множеством операций, которые определяют допустимые действия над некоторой реализацией БД для ее перевода из одного состояния в другое. Это множество операций соотносят с ЯМД.

 

 

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

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

 

<ИМЯ АТРИБУТА><ОПЕРАТОР УСЛОВИЯ><ЗНАЧЕНИЕ АТРИБУТА>

 

Оператор условия

 

 

Из простых условий можно построить булевы условия с использованием операций И (AND), ИЛИ (OR), HE (NOT), например:

 

Образование = высшее AND Стаж =12.

 

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

По характеру проводимого действия различают следующие виды операций:

• идентификация данного и нахождение его позиции в БД;

• выборка (чтение) данного из БД;

• включение (запись) данного в БД;

• удаление данного из БД;

• модификация (изменение) данного в БД.

 

По характеру способа получения результата различают навигационные и спецификационные операции. Если результат операции получается путем прохождения по связям, реализованным в структуре БД, то операции называются навигационными. Навигация в БД основывается на манипулировании значениями «текущих» (или курсоров, текущих указателей и т.п.), хотя это манипулирование в некоторых языках может быть неявным. Текущий указатель – это специальный объект, значением которого является адрес считанного экземпляра записи. Результат навигационной операции – это единичный объект БД, например экземпляр записи.

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

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

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

 

Ограничения целостности

 

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

 

S(t 1) → S(t 2) → … → S(ti) → … S(tj) → … S(tm).

 

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

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

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: