Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kolokvium / REV1_ИЗМ.DOC
Скачиваний:
49
Добавлен:
19.04.2013
Размер:
122.37 Кб
Скачать

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

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

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

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

Использование для селекции логической позиции данного ба­зируется на определенной упорядоченности данных в памяти си­стемы. В соответствии с этим можно выполнить селекцию дан­ного, находящегося на первой -последней, следующей или пре­дыдущей позиции, или на n-ой позиции (например, НАЙТИ СЛЕДУЮЩУЮ или НАЙТИ-ПРЕДЫДУЩУЮ запись). Этот тип селекции еще называют селекцией посредством текущей. В качестве текущих выступают специальные дополнительные объекты «индикаторы текущего состояния». При выполнении прик­ладной программы СУ'БД автоматически поддерживает ее инди­каторы текущего состояния. Количество и состав индикаторов определяется подсхемой, используемой в данной ПП. Индикатор, как правило, указывает на некоторый экземпляр записи в БД.

В некоторых моделях данных «текущие» задаются явно, в дру­гих - неявно.

При селекции по значениям данных критерий селекции мо­жет определять простые или булевы условия отбора данных. Про­стое условие задается на одном атрибуте и одном значении атри­бута и обычно имеет вид: «имя атрибута_ оператор условия_ значение атрибута». Примеры простого условия: а) ТАБЕЛЬНЫЙ-НОМЕР=211907, что означает селекцию описания слу­жащего с табельным номером 211907; б) ВОЗРАСТ <= 30 - озна­чает селекцию описаний сотрудников, у которых значение атри­бута ВОЗРАСТ не превышает 30 лет.

Оператор условия -это один из следующих операторов: =, не =, >, >=, <, <=. На основе простых условий можно построить булевы условия с использованием операторов И (AND), ИЛИ (OR), «НЕ» (NOT). Например, ОБРАЗОВАНИЕ = высшее _AND_СТАЖ>=1 -означает селекцию описаний сотрудников, имеющих высшее образование н стаж работы не менее 1 года. Поскольку булевы операторы подчиняются правилам предшест­вования, а в отдельных случаях возникает необходимость изме­нить порядок предшествования, могут использоваться скобки. На­пример, СТАЖ>=2._AND__(специальность = 0646_ОR_специальность = 0647) означает селекцию описаний сотрудников, имеющих специальность 0646 или 0647 и стаж работы не менее 2 лет.

Если МД позволяет выполнять селекцию данных по их свя­зям между собой и в БД реализована, например, связь РАБО­ТАЕТ - В - ОТДЕЛЕ между сущностями СЛУЖАЩИЙ и ОТ­ДЕЛ, то можно выполнять селекцию данных по этой связи. Например, можно выполнить селекцию описаний всех отделов, в ко­торых в настоящий момент работают служащие, являющиеся молодыми специалистами (если, конечно, в описании служащего присутствует соответствующий атрибут). Таким образом, с по­мощью условия селекции выполняется идентификация требуе­мых данных в БД.

В существующих языках конкретных СУБД наблюдаются раз­личные комбинации рассмотренных видов селекции данных и формы их выражения средствами конкретного языка.

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

  1. идентификацию данного и нахождение его позиции в БД;

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

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

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

  5. модифи­кацию (изменение) данного в БД.

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

1) идентифицировать экземпляр группы и найти его позицию в БД (по значениям элементов данных или по связям с другими экземплярами групп в указанных экземплярах групповых отно­шений);

2) выборка (чтение) идентифицированного экземпляра группы из БД;

3) включить (записать)* экземпляр группы в БД, устанавли­вая одновременно связи с другими экземплярами групп в соот­ветствующих экземплярах групповых отношений (в соответствии со схемой базы данных);

4) удалить идентифицированный экземпляр группы из БД, одновременно скорректировав (согласно принятым в конкретной СУБД правилам выполнения этой операции) соответствующие экземпляры групповых отношений;

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

6) установить (разорвать) связь между двумя идентифицированными экземплярами групп (с целью модификации соответствующего экземпляра группового отношения).

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

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

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

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

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

Особый вид процедуры -вычисляющие значения атрибутов. отсутствующих в БД, но которые можно вычислить на основа­нии значений других атрибутов. Например, вычисление возраста сотрудника по дате его рождения и текущей календарной дате. В этом случае атрибут ВОЗРАСТ является виртуальным атрибу­том. Для пользователя он представляется как обычный атрибут наравне с другими атрибутами схемы БД.

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

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

Соседние файлы в папке Kolokvium