Лекция № 6 Операции в моделях данных
При определении содержания понятия "модель данных" указывалось, что операции над данными выражаются при работе с СУБД средствами ЯМД и переводят базу данных из одного состояния в другое:
O
(DB) ----> (DB)' ( O входит в О*), где О* множество допустимых операций для соответствующей модели данных. Здесь (DB) - исходное состояние, (DB)' требуемое новое (или, если операция была задана некорректно, неопределенное) состояние базы данных. Изменение состояния происходит либо при изменении данных предметной области, хранящихся в БД, либо за счет изменения указателей на текущие элементы БД, либо за счет изменения индикаторов, ответственных за взаимодействие пользователя (прикладного процесса) с базой данных.
Вполне естественно, чтобы объектом операции была ограниченная часть БД. Это требование диктуется необходимостью адекватного восприятия операций пользователем, целесообразностью сокращения множества объектов, над которыми выполняется операция для повышения эффективности ее реализации. Такое ограничение достигается селекцией данных. Таким образом, операция над БД может рассматриваться в двух аспектах: селекция данных, действия над данными. ДЕЙСТВИЕ определяет характер операции, СЕЛЕКЦИЯ - критерий отбора данных, над которыми требуется выполнить действие.
Традиционно действие в табличной или графовой модели выражается одной из следующих обобщенных операций или их комбинаций:
¨ установка текущих,
¨ выборка данных,
¨ включение данных,
¨ удаление данных,
¨ обновление данных.
Эти действия одинаково применимы к типам сущностей, связям и, за исключением четвертой операции, к атрибутам. Важно, что при конкретной структуре и ограничениях целостности результат действий для операции определен не для любого исходного состояния базы данных. Однако в этом случае СУБД или корректно написанное приложение должны предотвратить попытку выполнения такого действия, а соответствующему прикладному процессу необходимо возвратить некоторый индикатор неуспешного завершения. Такая информация рассматривается как компонент состояния БД.
Cелекция может осуществляться посредством:
¨ логической позиции,
¨ адресуемости по значению данных,
¨ связей между данными.
Хотя абстракции, используемые при построении модели данных, могут не поддерживать понятие упорядоченности данных, программная реализация соответствующих структур данных в конечном итоге определяет некоторый порядок. Такой порядок может быть использован для селекции по логической позиции. Например, оператор
SET CURRENCY TO NEXT
устанавливает указатель на запись, следующую за текущей. Оператор
GET NEXT
обеспечивает выборку следующей записи после текущей, что подразумевает ее предварительную селекцию по логической позиции.
Селекция данных может быть задана значениями, относящимися к столбцам таблицы или вершинам графа. Для такого способа селекции используется также термин "адресуемость по содержимому". В языке манипулирования данными адресуемость по содержимому обычно принимает форму КРИТЕРИЯ СЕЛЕКЦИИ, определяющего простое или булево условие отбора данных. ПРОСТОЕ УСЛОВИЕ определяется на одном атрибуте или на одном значении атрибута и обычно имеет вид:
<имя атрибута><оператор сравнения><значение>.
Булево условие формируется из простых условий с использованием логических операций.
Селекция по логическим связям между данными (селекция по связности данных) может в зависимости от используемых при реализации МД структур выполняться двумя путями:
¨ c применением системы указателей в многосвязных структурах данных;
¨ путем использования значения, содержащегося в строке одной таблицы для селекции по значению в другой таблице.
НАВИГАЦИОННЫЕ И СПЕЦИФИКАЦИОННЫЕ ОПЕРАЦИИ.
Если результат операции представлен единичным объектом (значением атрибута, реализацией сущности или связи), полученным при прохождении по логическому пути (то есть навигации) в структуре базы данных, то соответствующая операция называется НАВИГАЦИОННОЙ.
Если операция может специфицировать на структурах базы данных новую структуру, которой в общем случае соответствует множество объектов, существующих в базе данных, то операция называется СПЕЦИФИКАЦИОННОЙ.
Пример навигационных операций рассмотрим применительно к таблицам записей. Мы будем предполагать возможность явного манипулирования, то есть разделения операций установки текущих и действий с ними. В соответствии с особенностями манипулирования текущими выделяют следующие виды таблиц:
¨ последовательные,
¨ упорядоченные,
¨ индексированные,
¨ таблицы с ключом.
В ПОСЛЕДОВАТЕЛЬНОЙ таблице каждой строке кроме последней можно сопоставить следующую. В любой момент одна из строк является текущей.
Если последовательная таблица упорядочена по содержимому одного из столбцов, соответствующих атрибутам типа сущности, то такая таблица называется УПОРЯДОЧЕННОЙ.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.