Операции над базой данных
Стандартным способом доступа к данным базы является вход по ассоциативному адресу {образцу), осуществляемый операцией "поиск по образцу". Аргумент операции "поиск по образцу" представляет собой структуру, характер которой может меняться в достаточно широком диапазоне в зависимости от функций, выполняемых базой данных. Результатом этой операции является множество (возможно, пустое — негативный результат) всех референтов образца-аргумента, т.е. фрагментов базы данных, каждый из которых представляет собой ответ на запрос, специфицированный в форме этого образца.
Можно выделить несколько типов образцов.
Простой образец — это фрагмент структуры того же типа, что и каркас. В вершинах простого образца компоненты могут указываться частично, например, только имя или только тип. Характер процедуры, реализуемой операцией "поиск по образцу", может быть двух видов:
- точное совпадение — референты изоморфны образцу с точностью до отсутствующих элементов в образце;
- покрытие — может выполняться в тех случаях, когда задается частичный порядок над символами, выступающими в качестве элементов образца. Референтами в этом случае являются фрагменты каркаса, покрываемые образцом, в том смысле, что графы образца и референта изоморфны, а элементы образца либо совпадают с соответствующим символом референта, либо находятся выше его по иерархии.
Разрывный образец — это совокупность простых образцов, связанных дугами специального вида, отсутствующими в каркасе. В этом случае графы образца и референта не являются изоморфными, поскольку в последнем отсутствуют специальные дуги. Можно сказать, что при разрывном образце поиск происходит не на самом каркасе, а на его транзитивном замыкании по одному или нескольким типам отношений. В. Образец с отрицательным контекстом представляет собой пару
< положительный образец, отрицательный образец >,
в которой каждый из образцов простой или разрывный. Процедура поиска для такого образца определяется следующим образом. Выполняется поиск по положительному образцу, найденному референту R определяются имена вершин, общих для положительного и отрицательного образцов. Эти имена подставляются на соответствующие позиции в отрицательный образец, по которому вновь осуществляется поиск. Если множество референтов в этом случае пусто, то R принимается в качестве референта поиска по образцу с отрицательным контекстом. В противном случае поиск не выдает результат.
Отсутствие связи между положительным и отрицательным образцами представляет собой частный случай описанной выше процедуры, при которой поиск по обоим образцам осуществляется независимо, а общий результат определяется так же.
Сложный образец — представляет собой совокупность видов образцов, перечисленных выше. Результатом поиска по сложному образцу является сочетание процедур поиска по каждому из образцов совокупности.
Будем делить операцию "поиск по образцу" на два основных вида: одновариантный и многовариантный поиск.
В случае одновариантного поиска в базе данных отыскивается единственный (первый подходящий) референт, в то время как при многовариантном поиске процесс продолжается до тех пор, пока не будут найдены все возможные фрагменты базы данных, которые могут быть референтами для данного образца.
Одним из существенных факторов, определяющих результат операции "поиск по образцу" при одновариантном поиске, является то, фиксируется или нет порядок сканирования каркаса при выполнении операции "поиск по образцу". Например, при каркасе-цепочке это может быть просмотр слева направо или справа налево, при дереве — от корня к листьям или в обратном направлении. В тех случаях, когда порядок просмотра является внешней характеристикой базы данных, он может быть фиксированным (встроенным) или изменяемым в процессе работы (настраиваемым).
Еще одной операцией над базой данных является добавление. Смысл этой операции — присоединение новых данных к данным, находящимся в базе. Аргумент этой операции состоит из двух частей: первая представляет собой тот фрагмент, который присоединяется к базе данных, и имеет ту же организацию, т.е. состоит из каркаса и набора компонент, сопоставленных его вершинам; вторая часть является, в общем случае, ассоциативным адресом, указывающим, к каким вершинам каркаса будет присоединяться новый фрагмент.
Операция исключение удаляет из базы данных фрагменты, которые являются аргументом этой операции. Так же как и при операции "добавление", вершины, входящие в описание аргумента, могут специфицироваться именем или образцом.
Таким образом, функции базовых операций управления определяются выбором характера операции "поиск по образцу", поскольку все остальные операции являются стандартными и однозначно определяются выбором каркаса и памяти. С помощью этих операций можно описывать процедуры редактирования базы данных произвольной сложности.
Дата добавления: 2016-03-05; просмотров: 948;