Теоретические языки запросов Операции, выполняемые над отношениями разделенными на две группы: Первая группа: операции объединения, пересечения, деления и произведения. Вторая группа: операции проекции, разъединения и выбора. В реляционных СУБД выполняются операции над отношениями, использующими две группы языков, имеющими в качестве математической основы теоретические языки запросов: Реляционная алгебра Реляционное исчисление В реляционной алгебре получение искомого результата описывается явным образом, путем указания набора операций, которые нужно выполнить для получения результата. В реляционных исчислениях указывается свойство искомого отношения, без конкретизации процедуры его получения. Такой язык называют не процедурным (декларативным или описательным). Он позволяет формировать запросы с помощью условий которых должны удовлетворяться картежи и домены. Для этих языков характерно наличие правил для записи запросов Реляционная алгебра Языки реляционной алгебры более наглядны. Например: ISBL (базовый язык информационных систем) основанный на реляционной алгебре. Широкого распространения не получил. Основные операции Объединение Разность Пересечение Произведение Деление Реляционная алгебра ВАРИАНТ РЕЛЯЦИОННОЙ АЛГЕБРЫ,ПРЕДЛОЖЕННЫЕ КОДДОМ, ВКЛЮЧАЕТ В СЕБЯ СЛЕДУЮЩИЕ ОСНОВНЫЕ ОПЕРАЦИИ, КОТОРЫЕ МОЖНО РАЗДЕЛИТЬ НА ДВЕ ГРУППЫ: БАЗОВЫЕ ТЕОРЕТИКОМНОЖЕСТВЕННЫЕ И СПЕЦИАЛЬНЫЕ РЕЛЯЦИОННЫЕ. БАЗОВЫЕ ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ВКЛЮЧАЮТ: ОБЪЕДИНЕНИЕ РАЗНОСТЬ ПЕРЕСЕЧЕНИЕ ПРОИЗВЕДЕНИЕ СПЕЦИАЛЬНЫЕ РЕЛЯЦИОННЫЕ ВКЛЮЧАЮТ СОЕДИНЕНИЕ ДЕЛЕНИЕ А А В А С А Х А В Х В С У С А Х У ВЫБОРКА ПРОЕКЦИЯ ОБЪЕДИНЕНИЕМ ДВУХ СОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ЯВЛЯЕТСЯ ОТНОШЕНИЕ R , СОДЕРЖАШЕЕ ВСЕ ЭЛЕМЕНТЫ ИСХОДНЫХ ОТНОЩЕНИЙ(C ИСКЛЮЧЕНИЕМ ПОВТОРЕНИЙ). РАЗНОСТЬСОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ЕСТЬ ОТНОШЕНИЕ, ТЕЛО КОТОРОГО СОСТОИТ ИЗ МНОЖЕСТВА ПЕРЕСЕЧЕНИЕ ДВУХ СОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ПОРОЖДАЕТ ОТНОШЕНИЕ R С ТЕЛОМ, ВКЛЮЧАЮЩИМ В СЕБЯ КОРТЕЖИ, ОДНОВРЕМЕННО ПРИНАДЛЕЖАЩИЕ ОБОИМ ИСХОДНЫМ ОТНОШЕНИЯМ. ПРОИЗВЕДЕНИЕОТНОШЕНИЯ R1 СТЕПЕНИ К1 И ОТНОШЕНИЯ R2 СТЕПЕНИ К2 , КОТОРЫЕ НЕ ИМЕЮТ ОДИНАКОВЫХ ИМЕН АТРИБУТОВ, ЕСТЬ ТАКОЕ ОТНОШЕНИЕ R СТЕПЕНИ(К1+К2), ЗАГОЛОВОК КОТОРОГО ПРЕДСТАВЛЯЕТ СЦЕПЛЕНИЕ ЗАГОЛОВКОВ ОТНОШЕНИЙ R1 И R2, А ТЕЛО-ИМЕЕТ КОРТЕЖИ, ТАКИЕ, ЧТО К1 ЭЛЕМЕНТОВ КОРТЕЖЕЙ ПРИНАДЛЕЖАТ МНОЖЕСТВУ R1, А ПОСЛЕДНИЕ К2 ЭЛЕМЕНТОВМНОЖЕСТВУ R2. ВЫБОРКА ОТНОШЕНИЯ R ПО ФОРМУЛE f ПРЕДСТАВЛЯЕТ СОБОЙ НОВОЕ ОТНОШЕНИЕ С ТАКИМ ЖЕ ЗАГОЛОВКОМ ТЕЛОМ, СОСТОЯЩИМ ИЗ ТАКИХ КОРТЕЖЕЙ ОТНОШЕНИЯ R, КОТОРЫЕ УДОВЛЕТВОРЯЮТ ИСТИННОСТИ ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ, ЗАДАННОГО ФОРМУЛОЙ f. ДЛЯ ЗАПИСИ ФОРМУЛЫ ИСПОЛЬЗУЮТСЯ ОПЕРАНДЫИМЕНА АТРИБУТОВ(ИЛИ НОМЕРА СТОЛБЦОВ), КОНСТАНТЫ, ЛОГИЧЕСКИЕ ОПЕРАЦИИ(AND-И, OR-ИЛИ, NOT-НЕ),ОПЕРАЦИИ СРАВНЕНИЯ И СКОБКИ. ПРИМЕР ВЫБОРКИ. Д# НАЗВАНИЕ ТИП ВЕС ГОРОД_Д P1 ГАЙКА КАЛЕНЫЙ 12 МОСКВА P5 ПАЛЕЦ ТВЕРДЫЙ 12 КИЕВ SP WHERE П# =“S1”AND Д# =“P1” П# Д# КОЛИЧЕСТВО S1 P1 300 ПРОЕКЦИЯ ОТНОШЕНИЯ А НА АТРИБУТЫ X,Y,…,Z(A[X,Y,…,Z]), ГДЕ МНОЖЕСТВО (X,Y,…,Z) ЯВЛЯЕТСЯ ПОДМНОЖЕСТВОМ ПОЛНОГО СПИСКА АТРИБУТОВ ЗАГОЛОВКА ОТНОШЕНИЯ А, ЗА ИСКЛЮЧЕНИЕМ ПОВТОРЯЮЩИХСЯ КОРТЕЖЕЙ. ПОВТОРЕНИЕ ОДИНАКОВЫХ АТРИБУТОВ В СПИСКЕ X,Y,…,Z ЗАПРЕЩАЕТСЯ. ПРИМЕР ПРОЕКЦИИ. P[ТИП, ГОРОД_Д] ТИП ГОРОД_Д КАЛЕНЫЙ МОСКВА МЯГКИЙ КИЕВ ТВЕРДЫЙ РОСТОВ ТВЕРДЫЙ КИЕВ (S WHERE ГОРОД_П=“КИЕВ”) [П#] П# ГОРОД_П S2 КИЕВ S3 КИЕВ РЕЗУЛЬТАТОМ ДЕЛЕНИЯ ОТНОШЕНИЯ R1 C АТРИБУТАМИ А И Б НА ОТНОШЕНИЕ R2 С АТРИБУТОМ В(R1 DIVIDEBY R2), ГДЕ А И Б ПРОСТЫЕ ИЛИ СОСТАВНЫЕ АТРИБУТЫ, ПРИЧЁМ АТРИБУТ В-ОБЩИЙ АТРИБУТ, ОПРЕДЕЛЕННЫЙ НА ОДНОМ И ТОМ ЖЕ ДОМЕНЕ, ЯВЛЯЕТСЯ ОТНОШЕНИЕ R С ЗАГОЛОВКОМ А И ТЕЛОМ, СОСТОЯЩИМ ИЗ КОРТЕЖЕЙ r ТАКИХ,ЧТО В ОТНОШЕНИИ R1 ИМЕЮТСЯ КОРТЕЖИ(r, s), ПРИЧЁМ МНОЖЕСТВО ЗНАЧЕНИЙ s ВКЛЮЧАЕТ МНОЖЕСТВО ЗНАЧЕНИЙ АТРИБУТА В ОТНОШЕНИЯ R2. ПРИМЕР ДЕЛЕНИЯ ОТНОШЕНИЯ. ПУСТЬ R1-ПРОЕКЦИЯ SP [П#,Д#], а R2-ОТНОШЕНИЕ С ЗАГОЛОВКОМ Д# И ТЕЛОМ{P2,P4}, ТОГДА РЕЗУЛЬТАТОМ ДЕЛЕНИЯ R1 НА R2 БУДЕТ ОТНОШЕНИЕ R С ЗАГОЛОВКОМ П# И ТЕЛОМ {S1,S4}. R1 R2 R1 DIVIDEBY R2 П# Д# Д# П# S1 P1 P2 S1 S1 P2 P4 S4 S1 P3 S1 P4 S1 P5 S1 P6 S2 P1 P2 S2 S3 S4 P2 P2 S4 P4 S4 P5 соединение Сf(R1,R2) ОТНОЩЕНИЙ R1 И R2 ПО УСЛОВИЮ, ЗАДАННОМУ ФОРМУЛОЙ f, ПРЕДСТАВЛЯЕТ СОБОЙ ОТНОШЕНИЕ R, КОТОРОЕ МОЖНО ПОЛУЧИТЬ ПУТЁМ ДЕКАРТОВА ПРОИЗВЕДЕНИЯ ОТНОШЕНИЙ R1 И R2 С ПОСЛЕДУЮЩИМ ПРИМЕНЕНИЕМ К РЕЗУЛЬТАТУ ОПЕРАЦИИ ВЫБОРКИ ПО ФОРМУЛЕ f. Реляционное исчисление Преимущество реляционного исчисления заключается в том, что пользователю самому не требуется строить алгоритм запроса. Язык запросов по образцу Запрос представляет собой специальный образец, описывающий требования, определенный состав проводимых над базой данных операций по выборке, модификации и удалению данных. Для подготовки запросов в СУБД часто используют язык запросов по образцу и структуре языка запросов. Разница между ними заключается в способе формирования запроса КБЕ предполагает ручное или визуальное формирование запроса. SQL предполагает программирование запросов. Структурирование языка запросов SELECT [ ] <список данных> FROM <список таблиц> [WHERE <условие>] GROUP BY<имя столбца> HAVING ORDER BY