В реляционном исчислении используется алфавит (совокупность обозначений), термы (элементарные конструкции) и формулы, представляющие собой некоторые аксиомы, записанные с помощью предикатов, термов и обозначений в виде выражений.
В реляционном исчислении вводится следующий алфавит A:
· Отдельные константы.
· Индексные переменные.
· Переменные выборки.
· Одноместные (монадические) предикаты.
· Двуместные предикаты (диадические предикаты или операции сравнения).
· Логические символы, включая кванторы.
· Разделители (круглые и квадратные скобки).
В реляционном исчислении вводится однозначное соответствие между одноместным предикатом и отношением в конкретной базе данных. Так, если в БД даны отношения R1, ¼. Rn, то предикат Pj показывает принадлежность выборки к отношению Rj.
В реляционном исчислении используются следующие термы:
Терм диапазона (ТД). Одноместный предикат, за которым следует переменная выборки, называется термом диапазона. Терм диапазона , где v – переменная выборки, понимается как некоторое высказывание, заключающееся в том, что переменная выборки v имеет в качестве своего значения кортежи отношения Rj (диапазон отношения). Для определения N – го компонента выборки v вводится понятие операции индексной выборки, которая имеет вид v[N]. N индексная константа, указывающая на атрибут с номером N.
Для упрощения записи будем использовать следующую нотацию терма диапазона и индексной выборки:
Терм объединения (ТО). Пусть l и m - индексные выборки, а a - отдельная константа. Тогда lqm и lqa называются термом диапазона, где q - двухместный предикат.
q = {>, <, =, ¹, ³, £}
В SQL появляются более сложные предикаты Like, Between, In, которые будут рассмотрены в своем месте.
Эти два терма являются единственными в реляционном исчислении. Из термов с помощью логических связок и разделителей строятся формулы РИ. Правильно построенные формулы (ППФ) в РИ определяются следующим образом:
1. Любой ТД или ТО есть ППФ.
2. Если F – ППФ, то -- ППФ.
3. Если F, G – ППФ, то (FÚG), (FÙG) – ППФ.
4. Если F – ППФ, в которой v переменная, то ($v)F, ("v)F – ППФ.
5. Никакие другие формулы не являются ППФ.
Диапазонной ППФ является, свободная от кванторов ППФ, все термы которой являются ТД.
ППФ, имеющая четко определенные диапазоны для всех своих переменных, называется диапазонно – сепарабельной, и определяется как конъюнкция из форм:
где
1.n³1.
2.- соответствующие диапазонные ППФ по n различным переменным.
3.v или пусто, или это ППФ с тремя свойствами:
а) каждый квантор в v диапазонно связан.
б) каждая свободная переменная в v принадлежит к множеству, чьи диапазоны определены в .
в) v не содержит термы диапазона.
Запрос в РИ записывается в виде a - выражений, имеющих вид:
где
1. w – диапазонно – сепарабельная ППФ.
2. - термы, причем каждый состоит из переменных выборки или индексных переменных.
3. Множество переменных выборки из входит в множество переменных в w.
.Виды запросов РИ
Простой запрос. Найти фамилии всех студентов.
Список аргументов пуст (присутствует только диапазонная ППФ). Данный запрос можно трактовать, как проекцию отношения Student на домен FIOS.
- список цели. - терм диапазона.
Отображение состоит из имени отношения Student и имени атрибута FIOS. Значением являются все фамилии.
Множество различных фамилий из атрибута FIOS отношения Student копируется в рабочее поле w, которое можно рассматривать как унарное отношение с единственным атрибутом FIOS.
Запрос с квалифицирующим выражением. Составить список студентов, обучающихся в группе АП71.
Выполняется отображение, которое моделирует обычный способ работы с таблицей. В данном случае просматривается столбец SGroup отношения Student и при удовлетворении условий строится множество различных пар <NZach, FIOS>, которые копируются в поле w. К w можно обращаться как к бинарному отношению с атрибутами и FIOS.
Запрос с единственным квантором существования. Найти предметы, которые сдавала группа АП71.
Этот запрос можно перефразировать следующим образом: Найти наименования тех предметов, для которых в отношении Vedom существует тот же код предмета и одновременно, для которых шифр группы равен АП71.
Заметим, что термы объединения могут быть разрешены только в тех случаях, если единицы измерения их составляющих могут быть преобразованы к единой единице измерения.
Приводимый пример является примером композиции отношений. Поиск ответа на запрос можно проинтерпретировать, как просмотр двух взаимосвязанных таблиц.
В этом примере используется естественное правило умолчания для введения квантора существования: если переменной нет в целевом списке, то для нее предполагается квантор существования.
Запрос с несколькими переменными выборки в общем диапазоне. Найти Ф.И.О. студентов, учащихся в одной группе с Ивановым М.М.
Заметим, что имеют общий диапазон Student, но должны быть различимы в запросе. Ответ на этот запрос включает фамилию самого Иванова М.М.. Пример показывает, что в композиции отношений может использоваться одно и то же отношение. Это приводит к двукратному просмотру отношения Student.
Запрос с отрицанием. Найти студентов, которые не учатся в группе АП71.
Запрос с единственным квантором общности. Найти предметы, которые не сдавала группа АП71.
Учитывая, что получим:
Мощность реляционного исчисления запросов возрастает, если в нем разрешить использование функций. Здесь используем функцию count , подсчитывающую количество элементов в конечном множестве. Другие функции рассмотрим при описании QBE и SQL.
Запрос с функцией в целевом списке. Определить количество студентов в группе АП71.
Запрос с функцией в квалифицирующем выражении. Найти преподавателей, которые принимали более десяти экзаменов.
Практически все другие запросы можно рассматривать как комбинации этих запросов.
.Алгоритм редукции
Алгоритм редукции предназначен для трансляции запросов, записанных в реляционном исчислении, в реляционную алгебру и основывается на простых соотношениях между выражениями РИ и операторами РА.
Алгоритм
Шаг 1. Определяются диапазоны, существующих в a - выражении переменных выборки путем просмотра отношений из базы и путем применения операций объединения, пересечения и вычитания.
Шаг 2. Берется декартово произведение этих диапазонов.
Шаг 3. Выборки, которые не удовлетворяют комбинации термов объединения, удаляются из отношения.
Шаг 4. Оставшиеся произведения сокращаются с помощью операций проекции и деления с тем, чтобы удовлетворять требованиям, содержащимся в выражениях с кванторами общности и существования.
Шаг 5. Выполняется проекция в соответствии с целевым списком и тем самым определяется требуемое отношение.
.Реляционное исчисление доменов
В реляционном исчислении доменов используются переменные, значения которых берутся из доменов, а не из кортежей отношений. Если обозначает предикат с переменными , то множество всех переменных доменов, для которых предикат или формула истинны обозначается:
Описание языка SQL
Язык структурированных запросов SQL (Structured Query Language) представляет собой специализированный набор программных команд, позволяющий пользователю выполнять следующие задачи:
1. Выбирать данные из одной или нескольких таблиц в одной или нескольких базах данных.
2. Манипулировать данными, вставляя, удаляя или обновляя записи.
3. Получать для таблиц итоговые данные, например, суммы итогов, число записей, минимальное, максимальное, среднее значение и т.д.
4. Создавать, модифицировать или удалять таблицы в БД.
5. Создавать или удалять индексы в таблицах.
Операторы SQL позволяют при помощи одной или нескольких строк выполнять такие операции, которые в программном коде потребовали бы несколько десятков стандартных операторов.
Операторы SQL создают запросы, которые обрабатывают ядро БД. В запросе задаются рабочие поля, таблицы, в которых они находятся, диапазон записей и при выборе записей порядок представления результата.
Обычно SQL – оператор возвращает затребованные записи в виде динамического набора. Динамический набор представляет собой обновляемый набор записей, в котором фактически содержатся указатели на записи. Динамические наборы являются временными и после закрытия становятся недоступными.
.Элементы SQL – оператора
SQL – оператор состоит из трех элементов:
1. Объявления параметров – необязательные параметры, которые программа передает оператору SQL.
2. Команды – сообщает СУБД тип выполняемой операции, например, Select.
3. Объявления опций – указывает на условия фильтрации, порядок группировки или сортировки.
Синтаксис оператора:
[Объявление операторов] Команда [Опции]
Команды SQL – операторов:
Команда
Функция
Delete
Удаляет записи из таблицы
Insert
Добавляет в таблицу группу записей
Select
Выбирает группу записей и помещает их в динамический набор данных