Динамические свойства модели данных выражаются множеством операций ЯМД над некоторой реализацией БД для перевода ее из одного состояния в другое.
Реализация любой конкретной операции над данными включает в себя селекцию данных, т.е. выделение по некоторому критерию из всей совокупности именно нужных данных. Селекция выполняется любым из способов с использованием логической позиции данного; значений данных, связей между данными.
Селекция на основе логической позиции данного базируется на определенной упорядоченности данных в памяти системы и использует специальные дополнительные объекты (индикаторы текущего состояния, указатели записей и т.п.) для выявления позиций данных. При выполнении прикладной программы СУБД автоматически поддерживает ее индикаторы текущего состояния.
При селекции по значениям данных критерий селекции может определять простые или булевые условия отбора данных. Простое условие обычно имеет вид «имя атрибута _ оператор условия_значение атрибута». Например: а) ВОЗРАСТ £ 27; б) НОМЕР = 7331; в) МАРКА ¹ А15. На основе простых условий с использованием скобок и операторов AND OR, NOT можно построить булевы условия. Например, ДОЛЖНОСТЬ = доцент AND СТАЖ ³ 15.
Если в БД реализована некоторая связь данных (например, связь УЧИТЬСЯ В ГРУППЕ между объектами СТУДЕНТ и ГРУППА), то селекцию данных можно выполнять по этой связи. Например, можно выполнять селекцию характеристик (показателей) группы, в которых учатся иногородние студенты (если, конечно, в описании студента присутствует соответствующий атрибут), или студенты, проживающие в общежитии.
По характеру производимого действия различают следующие виды операций:
1) идентификацию данного и нахождение его позиции в БД;
2) выборку (чтение) данного из БД;
3) включение (запись) данного в БД;
4) удаление данного из БД;
5) модификацию данного в БД.
МОД должны также предусматривать специальные операции для установления и разрыва связей между данными в базе.
По характеру способа получения результата различают навигационные и спецификационные операции. Если результат операции получается путем прохождения по связям (манипулированием указателей), реализованным в структуре БД, то операции называются навигационными. Если в операции определяются только требования к результату, но не задается способ его получения, то операции называются спецификационными.
Обобщенные операции (более сложные действия над данными) называют процедурами базы данных. Процедура БД - это последовательность операций, позволяющих реализовать определенный алгоритм обработки данных. Процедура БД рассматривается как единая макрооперация, при выполнении которой ни одна другая процедура или прикладная программа не могут обратиться к данным, обрабатываемым стартовавшей процедурой, до ее окончания, поэтому такие процедуры или операции еще называют транзакциями. С помощью процедур СУБД может выполнять автоматическую обработку различных ситуаций, возникающих при функционировании системы (контроль целостности данных и доступа к ним, сбор статистики обращения к данным и т.п.).
Особый вид процедуры - вычисление значения атрибутов, отсутствующих в БД, но которые можно вычислить на основании значений других атрибутов. Например, вычисление возраста сотрудника по дате его рождения и текущей календарной дате. В этом случае атрибут ВОЗРАСТ является виртуальным атрибутом. Для пользователя он представляется как обычный атрибут наравне с другими атрибутами схемы БД.
Язык запросов QBE и SQL
Query-By-Example (запрос по примеру) – табличный язык запросов.
2 зоны – таблицы, участвующие в запросе, и условия запроса.
Поле 1
Поле 2
Поле 3
Поле 4
Поле 5
Условия
…
…
…
…
Допускаются простые и сложные условия (с логическими связками).
И – на одной строке, and
ИЛИ – на разных. Or
Between
like
Совместная обработка нескольких таблиц. Связи. 3 варианта. Не откр лишних таблиц. Если нет связи, то каждая запись одной таблицы связывается с каждой записью другой. Самообъединение.
В условии запроса указываются, какие атрибуты и в какой последовательности входят, выполняя роль иерархической группировки.
Вычисляемые поля (виртуальный атрибут): агрегирующие и обычные.
Перекрестные запросы
Запрос с параметром [параметр]
Корректирующие запросы: Запрос на обновление, удаление, добавление записей; создание таблицы.
Специальные запросы: поиск записей, не имеющих подчиненных; поиск повторяющихся записей (по конкретным значениям полей).