Введение в модель данных SQL

В стандарте определяется несколько правил,


В стандарте определяется несколько правил, на основе которых устанавливаются известные функциональные зависимости соединенных таблиц, но здесь мы приведем только простейшее из этих правил. Если соединенная таблица производится на основе одной из двух указанных выше операций, то в первой таблице-источнике присутствует один или более столбцов, соответствующих одноименным столбцам второй таблицы-источника. Обозначим через SLCC список следующих выражений (элемент списка соответствует общему столбцу):

COALESCE (t1.colname, t2.colname) AS colname

6)

Пусть JT обозначает ключевые слова, определяющие тип соединения (INNER, LEFT, RIGHT, FULL и т.д.), и пусть TN1 и TN2 обозначают имена таблиц или (если они заданы) имена псевдонимов двух таблиц-источников соответственно. Обозначим через IR результат вычисления следующего выражения запросов:

SELECT SLCC, T1*, T2* FROM T1 JT JOIN T2;

Тогда, в соответствии с правилами SQL, дополнительными известными функциональными зависимостями являются следующие:

  • если JT задает INNER или LEFT, то действует FD COALESCE (T1.Ci, T2.Ci)T1.Ci для всех i от единицы до числа столбцов в IR;
  • если JT задает INNER или RIGHT, то действует FD COALESCE (T1.Ci, T2.Ci)T2.Ci для всех i от единицы до числа столбцов в IR.


Обозначим через SL некоторый список выборки. Пусть:

  • если все столбцы первой и второй таблиц-источников являются общими, то SL совпадает с SLCC;
  • если среди столбцов таблиц-источников нет общих столбцов, то SL состоит из списка столбцов первой таблицы-источника, за которым следует список столбцов второй таблицы-источника;
  • если все столбцы первой таблицы-источника являются общими, но у второй таблицы-источника имеются необщие столбцы, то SL состоит из SLCC, за которым следует список необщих столбцов второй таблицы-источника;
  • аналогично, если все столбцы второй таблицы-источника являются общими, но у первой таблицы-источника имеются не общие столбцы, то SL состоит из SLCC, за которым следует список не общих столбцов первой таблицы-источника;
  • наконец, если среди столбцов первой таблицы-источника и среди столбцов второй таблицы-источника имеются необщие столбцы, то SL состоит из SLCC, за которым следует список необщих столбцов первой таблицы-источника, а далее располагается список не общих столбцов второй таблицы-источника.



Содержание  Назад  Вперед