Базы данных. Вводный курс


Формальные определения - часть 2


Элементы располагаются в том порядке, в котором они появляются в заголовке таблицы table1. Обозначим через SLT1 (SLT2) список имен столбцов таблицы table1 (table2), которые не являются соответствующими столбцами соединения. Имена располагаются в том же порядке, в котором они появляются в заголовке соответствующей таблицы;
  • заголовок результата совпадает с заголовком результата запроса

    SELECT SLCC, SLT1, SLT2 FROM table1, table2;

  • Набор строк результата (множество или мультимножество) определяется по следующим правилам. Обозначим через T следующие наборы строк:
    • если видом соединения является UNION JOIN, то T – пусто;
    • если видом соединения является CROSS JOIN, то T включает все строки, входящие в CP;
    • если в спецификацию вида соединения входит раздел ON, то T включает все строки CP, для которых результатом вычисления условного выражения является true;
    • если в спецификацию вида соединения входят разделы NATURAL или USING, и список SLCC не является пустым, то T включает все строки CP, для которых значения соответствующих столбцов соединения совпадают;
    • если в спецификацию вида соединения входят разделы NATURAL или USING, и список SLCC является пустым, то T включает все строки CP.
  • Обозначим через P1 (P2) набор (множество или мультимножество) всех строк таблицы table1 (table2), каждая из которых участвует в образовании некой строки T.
  • Обозначим через U1 (U2) набор (множество или мультимножество) всех строк таблицы table1 (table2), ни одна из которых не участвует в образовании какой-либо строки T.
  • Обозначим через X1 набор (множество или мультимножество) всех строк, образуемых из строк набора U1 путем добавления справа подстроки из неопределенных значений, содержащей столько неопределенных значений, сколько столбцов содержит таблица table2. Обозначим через X2 набор (множество или мультимножество) всех строк, образуемых из строк набора U2 путем добавления слева подстроки из неопределенных значений, содержащей столько неопределенных значений, сколько столбцов содержит таблица table1.
  • Для соединений вида CROSS JOIN и INNER JOIN пусть S обозначает тот же набор строк, что и T.
  • Для соединений вида LEFT OUTER JOIN пусть S обозначает набор строк, являющийся результатом выражения запросов




    - Начало -  - Назад -  - Вперед -