uzluga.ru
добавить свой файл
1



Значение реляционной алгебры

  • Значение реляционной алгебры

  • Основные операторы реляционной алгебры

  • Операции расширения и подведения итогов

  • Операторы обновления





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

  • Реляционная алгебра это набор операций, которые принимают отношения в качестве операндов и возвращают отношение в качестве результата

  • Первая версия этой алгебры была определена Э. Коддом



В основе всех реляционных БД лежит использование реляционной алгебры, которая обеспечивает запись выражений для реализации на некотором языке, например, SQL

  • В основе всех реляционных БД лежит использование реляционной алгебры, которая обеспечивает запись выражений для реализации на некотором языке, например, SQL

  • Если возможности языка как минимум соответствуют возможностям, обеспеченным алгебраическими операциями, то его называют реляционно полным





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

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

    • традиционные операции с множествами
    • специальные реляционные операции


1. Традиционные операции с множествами, модифицированные для таблиц (отношений):

  • 1. Традиционные операции с множествами, модифицированные для таблиц (отношений):

  • объединение

  • пересечение

  • вычитание

  • произведение



Объединение: A UNION B

  • Объединение: A UNION B

  • Результатом операции объединения является отношение, содержащее все кортежи, принадлежащие одному из двух или обоим отношениям

  • В отличие от объединения множеств, результатом объединения отношений должно стать отношение, а не набор разнородных кортежей



При объединении должны соблюдаться два условия:

  • При объединении должны соблюдаться два условия:

  • отношения должны быть совместимы по типу, т.е. иметь одно и то же множество атрибутов, определённых на одних и тех же доменах;

  • результатом каждой операции должно быть тоже отношение (свойство замкнутости)



Пересечение: A INTERSECT B

  • Пересечение: A INTERSECT B

  • Результатом операции пересечения является отношение, содержащее кортежи, которые принадлежат обоим отношениям.

  • Для операции пересечения необходимы те же два условия, что и для объединения: совместимость по типу и замкнутость



Вычитание: A MINUS B

  • Вычитание: A MINUS B

  • Результатом операции вычитания является отношение, которое содержит все кортежи, принадлежащие первому отношению и не принадлежащие второму отношению

  • Условия необходимы те же: совместимость по типу и замкнутость



Произведение: A TIMES B

  • Произведение: A TIMES B

  • Результатом является отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих двум отношениям



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

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

  • В реляционной алгебре каждая пара кортежей заменяется одним, благодаря сцеплению (сцепление – это объединение в смысле теории множеств, а не реляционной алгебры)



При выполнении произведения может возникнуть проблема одинаковых имён атрибутов

  • При выполнении произведения может возникнуть проблема одинаковых имён атрибутов

  • В этом случае одно из конфликтующих полей необходимо переименовать:

  • A RENAME a1 AS a2,

  • где a1 и a2 – имена атрибутов



2. Специальные реляционные операции:

  • 2. Специальные реляционные операции:

  • выборка (или ограничение)

  • проекция

  • соединение

  • деление



Выборка (или ограничение) – SELECT

  • Выборка (или ограничение) – SELECT

  • Результатом выборки является отношение, содержащее все кортежи из исходного отношения, которые удовлетворяют определённому условию



Проекция

  • Проекция

  • Результатом проекции является отношение, содержащее все кортежи после удаления из них некоторых атрибутов

  • В этом случае результирующие кортежи называются подкортежами



Есть два важных момента:

  • Есть два важных момента:

  • возможно указание всех атрибутов исходного отношения для проекции –получится тождественная проекция

  • возможно указать пустой список атрибутов – получится нулевая проекция



Осуществить проекцию можно указанием после SELECT списка необходимых атрибутов

  • Осуществить проекцию можно указанием после SELECT списка необходимых атрибутов



Соединение

  • Соединение

  • Результат соединения – это отношение, кортежи которого являются сочетанием двух кортежей, принадлежащих двум начальным отношениям и имеющих общие значения для одного или нескольких атрибутов (общее значение в результирующем отношении появляется только один раз)



Деление: A DIVIDEBY B

  • Деление: A DIVIDEBY B

  • Результатом деления двух отношений (бинарного и унарного) является отношение, содержащее все значения атрибута первого бинарного отношения, которые соответствуют всем значениям унарного отношения





Рассмотрим две дополнительные алгебраические операции – расширения и подведения итогов

  • Рассмотрим две дополнительные алгебраические операции – расширения и подведения итогов



Расширение

  • Расширение

  • С помощью операции расширения из отношения создаётся новое отношение, содержащее новый атрибут, значения которого получены посредством скалярных вычислений



Подведение итогов

  • Подведение итогов

  • Операция подведения итогов даёт возможность «вертикальных» вычислений

  • Для этого используются агрегатные функции, которые для набора значений возвращают одно единственное

  • Наиболее распространенные функции: Sum, Count, Avg, Min, Max





Предназначены для управления данными в таблицах

  • Предназначены для управления данными в таблицах

  • Существует три операции обновления:

    • вставка записи
    • удаление записи
    • обновление записи