310 likes | 616 Views
Теоретические языки запросов. Операции, выполняемые над отношениями разделенными на две группы: Первая группа : операции объединения, пересечения, деления и произведения. Вторая группа : операции проекции, разъединения и выбора.
E N D
Операции, выполняемые над отношениями разделенными на две группы: • Первая группа: операции объединения, пересечения, деления и произведения. • Вторая группа: операции проекции, разъединения и выбора.
В реляционных СУБД выполняются операции над отношениями, использующими две группы языков, имеющими в качестве математической основы теоретические языки запросов: • Реляционная алгебра • Реляционное исчисление
В реляционной алгебре получение искомого результата описывается явным образом, путем указания набора операций, которые нужно выполнить для получения результата.
В реляционных исчислениях указывается свойство искомого отношения, без конкретизации процедуры его получения.
Такой язык называют не процедурным (декларативным или описательным). Он позволяет формировать запросы с помощью условий которых должны удовлетворяться картежи и домены.
Для этих языков характерно наличие правил для записи запросов
Реляционная алгебра • Языки реляционной алгебры более наглядны. • Например: ISBL (базовый язык информационных систем) основанный на реляционной алгебре. Широкого распространения не получил.
Основные операции Объединение Разность Пересечение Произведение Деление
ВАРИАНТ РЕЛЯЦИОННОЙ АЛГЕБРЫ,ПРЕДЛОЖЕННЫЕ КОДДОМ, ВКЛЮЧАЕТ В СЕБЯ СЛЕДУЮЩИЕ ОСНОВНЫЕ ОПЕРАЦИИ, КОТОРЫЕ МОЖНО РАЗДЕЛИТЬ НА ДВЕ ГРУППЫ:БАЗОВЫЕ ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ И СПЕЦИАЛЬНЫЕ РЕЛЯЦИОННЫЕ.
БАЗОВЫЕ ТЕОРЕТИКО-МНОЖЕСТВЕННЫЕ ВКЛЮЧАЮТ:ОБЪЕДИНЕНИЕ РАЗНОСТЬ ПЕРЕСЕЧЕНИЕ ПРОИЗВЕДЕНИЕ
СПЕЦИАЛЬНЫЕ РЕЛЯЦИОННЫЕ ВКЛЮЧАЮТ СОЕДИНЕНИЕ ДЕЛЕНИЕ А А В А С А Х А В Х В С У С А Х У
ДВУХ СОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ЯВЛЯЕТСЯ ОТНОШЕНИЕ R , СОДЕРЖАШЕЕ ВСЕ ЭЛЕМЕНТЫ ИСХОДНЫХ ОТНОЩЕНИЙ(C ИСКЛЮЧЕНИЕМ ПОВТОРЕНИЙ). ОБЪЕДИНЕНИЕМ
СОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ЕСТЬ ОТНОШЕНИЕ, ТЕЛО КОТОРОГО СОСТОИТ ИЗ МНОЖЕСТВА РАЗНОСТЬ
ДВУХ СОВМЕСТИМЫХ ОТНОШЕНИЙ R1 И R2 ОДИНАКОВОЙ РАЗМЕРНОСТИ ПОРОЖДАЕТ ОТНОШЕНИЕ R С ТЕЛОМ, ВКЛЮЧАЮЩИМ В СЕБЯ КОРТЕЖИ, ОДНОВРЕМЕННО ПРИНАДЛЕЖАЩИЕ ОБОИМ ИСХОДНЫМ ОТНОШЕНИЯМ. ПЕРЕСЕЧЕНИЕ
ОТНОШЕНИЯ R1СТЕПЕНИ К1 И ОТНОШЕНИЯ R2 СТЕПЕНИ К2 , КОТОРЫЕ НЕ ИМЕЮТ ОДИНАКОВЫХ ИМЕН АТРИБУТОВ, ЕСТЬ ТАКОЕ ОТНОШЕНИЕ R СТЕПЕНИ(К1+К2), ЗАГОЛОВОК КОТОРОГО ПРЕДСТАВЛЯЕТ СЦЕПЛЕНИЕ ЗАГОЛОВКОВ ОТНОШЕНИЙ R1 И R2, А ТЕЛО-ИМЕЕТ КОРТЕЖИ, ТАКИЕ, ЧТО К1 ЭЛЕМЕНТОВ КОРТЕЖЕЙ ПРИНАДЛЕЖАТ МНОЖЕСТВУ R1,А ПОСЛЕДНИЕ К2 ЭЛЕМЕНТОВ-МНОЖЕСТВУ R2. ПРОИЗВЕДЕНИЕ
ОТНОШЕНИЯ R ПО ФОРМУЛEf ПРЕДСТАВЛЯЕТ СОБОЙ НОВОЕ ОТНОШЕНИЕ С ТАКИМ ЖЕ ЗАГОЛОВКОМ ТЕЛОМ, СОСТОЯЩИМ ИЗ ТАКИХ КОРТЕЖЕЙ ОТНОШЕНИЯ R,КОТОРЫЕ УДОВЛЕТВОРЯЮТ ИСТИННОСТИ ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ, ЗАДАННОГО ФОРМУЛОЙ f. ВЫБОРКА
SP WHERE П#=“S1”AND Д#=“P1” ДЛЯ ЗАПИСИ ФОРМУЛЫ ИСПОЛЬЗУЮТСЯ ОПЕРАНДЫ-ИМЕНА АТРИБУТОВ(ИЛИ НОМЕРА СТОЛБЦОВ), КОНСТАНТЫ, ЛОГИЧЕСКИЕ ОПЕРАЦИИ(AND-И, OR-ИЛИ, NOT-НЕ),ОПЕРАЦИИ СРАВНЕНИЯ И СКОБКИ.ПРИМЕР ВЫБОРКИ. Д# НАЗВАНИЕ ТИП ВЕС ГОРОД_Д P1 ГАЙКА КАЛЕНЫЙ 12 МОСКВА P5 ПАЛЕЦ ТВЕРДЫЙ 12 КИЕВ П# Д# КОЛИЧЕСТВО 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 S2 P2 S3 P2 S4 P2 S4 P4 S4 P5
соединение Сf(R1,R2) ОТНОЩЕНИЙ R1 И R2 ПО УСЛОВИЮ, ЗАДАННОМУ ФОРМУЛОЙ f, ПРЕДСТАВЛЯЕТ СОБОЙ ОТНОШЕНИЕ R, КОТОРОЕ МОЖНО ПОЛУЧИТЬ ПУТЁМ ДЕКАРТОВА ПРОИЗВЕДЕНИЯ ОТНОШЕНИЙ R1 И R2 С ПОСЛЕДУЮЩИМ ПРИМЕНЕНИЕМ К РЕЗУЛЬТАТУ ОПЕРАЦИИ ВЫБОРКИ ПО ФОРМУЛЕ f.
Реляционное исчисление Преимущество реляционного исчисления заключается в том, что пользователю самому не требуется строить алгоритм запроса.
Язык запросов по образцу Запрос представляет собой специальный образец, описывающий требования, определенный состав проводимых над базой данных операций по выборке, модификации и удалению данных.
Для подготовки запросов в СУБД часто используют язык запросов по образцу и структуре языка запросов.
Разница между ними заключается в способе формирования запроса
КБЕ предполагает ручное или визуальное формирование запроса. • SQLпредполагает программирование запросов.
Структурирование языка запросов SELECT [ ] <список данных> FROM <список таблиц> [WHERE <условие>] GROUPBY<имя столбца> HAVING ORDER BY