ОРГАНИЗАЦИЯ БАЗ ДАННЫХ И ЗНАНИЙ ТЕМА 4 ДОСТУП К ДАННЫМ В РЕЛЯЦИОННЫХ МОДЕЛЯХ ХРАНЕНИЯ ДАННЫХ
ТЕМА 3. РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ 2.4. Манипуляционная часть В манипуляционной части реляционной модели утверждаются два фундаментальных механизма работы с реляционными БД – реляционная алгебра и реляционное исчисление (механизмы эквивалентны друг другу). Первый механизм базируется в основном на классической теории множеств, а второй – на классическом логическом аппарате исчисления предикатов первого порядка. Их назначением является обеспечение меры реляционности любого конкретного языка РБД: язык называется реляционным, если он обладает не меньшей мощностью (имеет не меньшее число соответствующих операций), чем реляционная алгебра или реляционное исчисление.
Оба аппарата обладают одним важным свойством: они замкнуты относительно понятия отношения РБД. Это означает, что операции реляционного исчисления и реляционной алгебры определяются над отношениями, и результатом их вычисления также являются отношения. Оба аппарата обладают одним важным свойством: они замкнуты относительно понятия отношения РБД. Это означает, что операции реляционного исчисления и реляционной алгебры определяются над отношениями, и результатом их вычисления также являются отношения. Эти механизмы манипулирования данными различаются уровнем процедур насти: Эти механизмы манипулирования данными различаются уровнем процедур насти: запрос, представленный на языке реляционной алгебры, может быть вычислен на основе вычисления элементарных алгебраических операций с учетом их старшинства и возможных скобок запрос, представленный на языке реляционной алгебры, может быть вычислен на основе вычисления элементарных алгебраических операций с учетом их старшинства и возможных скобок формула реляционного исчисления только устанавливает условия, которым должны удовлетворять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными. формула реляционного исчисления только устанавливает условия, которым должны удовлетворять кортежи результирующего отношения. Поэтому языки реляционного исчисления являются более непроцедурными или декларативными.
Другими словами, реляционная алгебра показывает, что из любой структуры таблиц, отвечающей требованиям оптимального проектирования, с помощью нескольких видов реляционных операций можно получить структуру данных, удобную для пользователя, и наоборот. Другими словами, реляционная алгебра показывает, что из любой структуры таблиц, отвечающей требованиям оптимального проектирования, с помощью нескольких видов реляционных операций можно получить структуру данных, удобную для пользователя, и наоборот. Кроме, того, формальное представление запросов к БД позволяет их оптимизировать (например, за счёт упрощения сложных алгебраических выражений с использованием свойств входящих в эти выражения операций). Кроме, того, формальное представление запросов к БД позволяет их оптимизировать (например, за счёт упрощения сложных алгебраических выражений с использованием свойств входящих в эти выражения операций). В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. В реализациях конкретных реляционных СУБД сейчас не используется в чистом виде ни реляционная алгебра, ни реляционное исчисление. Фактическим стандартом доступа к реляционным данным стал язык SQL - смесь операторов реляционной алгебры и выражений реляционного исчисления. Фактическим стандартом доступа к реляционным данным стал язык SQL - смесь операторов реляционной алгебры и выражений реляционного исчисления.
Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной с определенной для нее областью допустимых значений и понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы. В зависимости от того, что является областью определения переменной, различаются исчисление кортежей и исчисление доменов. Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной с определенной для нее областью допустимых значений и понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы. В зависимости от того, что является областью определения переменной, различаются исчисление кортежей и исчисление доменов. В исчислении кортежей областями определения переменных являются отношения базы данных, т.е. допустимым значением каждой переменной является кортеж некоторого отношения. В исчислении кортежей областями определения переменных являются отношения базы данных, т.е. допустимым значением каждой переменной является кортеж некоторого отношения. В исчислении доменов областями определения переменных являются домены, на которых определены атрибуты отношений базы данных, т.е. допустимым значением каждой переменной является значение некоторого домена. Реляционное исчисление доменов является основой большинства языков запросов, основанных на использовании форм, например, известный язык Query-by-Example, который был первым (и наиболее интересным) языком в семействе языков, основанных на табличных формах. В исчислении доменов областями определения переменных являются домены, на которых определены атрибуты отношений базы данных, т.е. допустимым значением каждой переменной является значение некоторого домена. Реляционное исчисление доменов является основой большинства языков запросов, основанных на использовании форм, например, известный язык Query-by-Example, который был первым (и наиболее интересным) языком в семействе языков, основанных на табличных формах.
В исчислении кортежей используемый синтаксис близок, но не полностью совпадает с синтаксисом языка баз данных QUEL, который долгое время являлся основным языком СУБД Ingres. В исчислении кортежей используемый синтаксис близок, но не полностью совпадает с синтаксисом языка баз данных QUEL, который долгое время являлся основным языком СУБД Ingres. Для определения кортежной переменной используется оператор RANGE. Для определения кортежной переменной используется оператор RANGE. Например, для того, чтобы определить переменную СОТРУДНИК, областью определения которой является отношение СОТРУДНИКИ, нужно употребить конструкцию : Например, для того, чтобы определить переменную СОТРУДНИК, областью определения которой является отношение СОТРУДНИКИ, нужно употребить конструкцию : RANGE СОТРУДНИК IS СОТРУДНИКИ Из этого определения следует, что в любой момент времени переменная СОТРУДНИК представляет некоторый кортеж отношения СОТРУДНИКИ. Из этого определения следует, что в любой момент времени переменная СОТРУДНИК представляет некоторый кортеж отношения СОТРУДНИКИ. При использовании кортежных переменных в формулах можно ссылаться на значение атрибута переменной (это аналогично тому, как, например, при программировании на языке Си можно сослаться на значение поля структурной переменной). При использовании кортежных переменных в формулах можно ссылаться на значение атрибута переменной (это аналогично тому, как, например, при программировании на языке Си можно сослаться на значение поля структурной переменной). Например, для того, чтобы сослаться на значение атрибута СОТР_ИМЯ переменной СОТРУДНИК, нужно употребить конструкцию СОТРУДНИК.СОТР_ИМЯ. Например, для того, чтобы сослаться на значение атрибута СОТР_ИМЯ переменной СОТРУДНИК, нужно употребить конструкцию СОТРУДНИК.СОТР_ИМЯ.
Правильно построенные формулы (WFF - Well-Formed Formula) служат для выражения условий, накладываемых на кортежные переменные. Основой WFF являются простые сравнения (comparison), представляющие собой операции сравнения скалярных значений (значений атрибутов переменных или литерально заданных констант). Правильно построенные формулы (WFF - Well-Formed Formula) служат для выражения условий, накладываемых на кортежные переменные. Основой WFF являются простые сравнения (comparison), представляющие собой операции сравнения скалярных значений (значений атрибутов переменных или литерально заданных констант). Сложные варианты WFF строятся с помощью логических связок NOT, AND, OR и IF... THEN. Сложные варианты WFF строятся с помощью логических связок NOT, AND, OR и IF... THEN. WFF обеспечивают средства формулировки условия выборки из отношений БД. Чтобы можно было использовать исчисление для реальной работы с БД, требуется еще один компонент, который определяет набор и имена столбцов результирующего отношения - целевой список (target_list). WFF обеспечивают средства формулировки условия выборки из отношений БД. Чтобы можно было использовать исчисление для реальной работы с БД, требуется еще один компонент, который определяет набор и имена столбцов результирующего отношения - целевой список (target_list). Целевой список строится из целевых элементов, каждый из которых может иметь следующий вид: var.attr, где Целевой список строится из целевых элементов, каждый из которых может иметь следующий вид: var.attr, где var - имя свободной переменной соответствующей WFF, а attr - имя атрибута отношения, на котором определена переменная var; var - имя свободной переменной соответствующей WFF, а attr - имя атрибута отношения, на котором определена переменная var; var, что эквивалентно наличию подсписка var.attr1, var.attr2,..., var.attrn, где attr1, attr2,..., attrn включает имена всех атрибутов определяющего отношения; var, что эквивалентно наличию подсписка var.attr1, var.attr2,..., var.attrn, где attr1, attr2,..., attrn включает имена всех атрибутов определяющего отношения; new_name = var.attr; new_name - новое имя соответствующего атрибута результирующего отношения. new_name = var.attr; new_name - новое имя соответствующего атрибута результирующего отношения.
Выражением реляционного исчисления кортежей называется конструкция вида target_list WHERE wff. Значением выражения является отношение, тело которого определяется WFF, а набор атрибутов и их имена - целевым списком. Выражением реляционного исчисления кортежей называется конструкция вида target_list WHERE wff. Значением выражения является отношение, тело которого определяется WFF, а набор атрибутов и их имена - целевым списком. В исчислении доменов областью определения переменных являются не отношения, а домены. Применительно к базе данных СОТРУДНИКИ-ОТДЕЛЫ можно говорить, например, о доменных переменных ИМЯ (значения - допустимые имена) или НОСОТР (значения - допустимые номера сотрудников). Основным формальным отличием исчисления доменов от исчисления кортежей является наличие дополнительного набора предикатов, позволяющих выражать так называемые условия членства. В исчислении доменов областью определения переменных являются не отношения, а домены. Применительно к базе данных СОТРУДНИКИ-ОТДЕЛЫ можно говорить, например, о доменных переменных ИМЯ (значения - допустимые имена) или НОСОТР (значения - допустимые номера сотрудников). Основным формальным отличием исчисления доменов от исчисления кортежей является наличие дополнительного набора предикатов, позволяющих выражать так называемые условия членства. Формулы в реляционном исчислении с переменными на доменах используют логические связки и, или, не и кванторы всеобщности и существования. Формулы в реляционном исчислении с переменными на доменах используют логические связки и, или, не и кванторы всеобщности и существования.
Если R - это n-арное отношение с атрибутами a1, a2,..., an, то условие членства имеет вид R (ai1:vi1, ai2:vi2,..., aim:vim) (m <= n), где vij - это либо литерально задаваемая константа, либо имя доменной переменной. Условие членства принимает значение true в том и только в том случае, если в отношении R существует кортеж, содержащий указанные значения указанных атрибутов. Если vij - константа, то на атрибут aij задается жесткое условие, не зависящее от текущих значений доменных переменных; если же vij - имя доменной переменной, то условие членства может принимать разные значения при разных значениях этой переменной. Если R - это n-арное отношение с атрибутами a1, a2,..., an, то условие членства имеет вид R (ai1:vi1, ai2:vi2,..., aim:vim) (m <= n), где vij - это либо литерально задаваемая константа, либо имя доменной переменной. Условие членства принимает значение true в том и только в том случае, если в отношении R существует кортеж, содержащий указанные значения указанных атрибутов. Если vij - константа, то на атрибут aij задается жесткое условие, не зависящее от текущих значений доменных переменных; если же vij - имя доменной переменной, то условие членства может принимать разные значения при разных значениях этой переменной. o Теорема 1: Еесли Е – выражение реляционной алгебры, то существует эквивалентное ему базисное выражение в реляционном исчислении с переменными кортежами o Теорема 2: Для каждого безопасного выражения реляционного исчисления с переменными кортежами существует эквивалентное безопасное выражение реляционного исчисления на доменах o Теорема 3: Для каждого безопасного выражения реляционного исчисления с переменными на доменах существует эквивалентное ему выражение реляционной алгебры.
Язык доступа к данным называется реляционно полным, если он по выразительной силе не уступает реляционной алгебре (реляционному исчислению), т.е. любой оператор реляционной алгебры может быть выражен средствами этого языка. Язык доступа к данным называется реляционно полным, если он по выразительной силе не уступает реляционной алгебре (реляционному исчислению), т.е. любой оператор реляционной алгебры может быть выражен средствами этого языка. Замкнутость реляционной алгебры Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов: Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата. Таким образом, реляционный оператор выглядит как функция с отношениями в качестве аргументов: Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу: Реляционная алгебра является замкнутой, т.к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу: Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры. Таким образом, в реляционных выражениях можно использовать вложенные выражения сколь угодно сложной структуры.
Каждое отношение обязано иметь уникальное имя в пределах базы данных. Имя отношения, полученного в результате выполнения реляционной операции, определяется в левой части равенства. Отношения, полученные в результате реляционных выражений, могут не иметь имен, если эти отношения подставляются в качестве аргументов в другие реляционные выражения. Такие отношения называются неименованными отношениями. Каждое отношение обязано иметь уникальное имя в пределах базы данных. Имя отношения, полученного в результате выполнения реляционной операции, определяется в левой части равенства. Отношения, полученные в результате реляционных выражений, могут не иметь имен, если эти отношения подставляются в качестве аргументов в другие реляционные выражения. Такие отношения называются неименованными отношениями. Неименованные отношения реально не существуют в базе данных, а только вычисляются в момент вычисления значения реляционного оператора. Неименованные отношения реально не существуют в базе данных, а только вычисляются в момент вычисления значения реляционного оператора. Традиционно, вслед за Коддом, определяют восемь реляционных операторов, объединенных в две группы. Традиционно, вслед за Коддом, определяют восемь реляционных операторов, объединенных в две группы. I. Теоретико-множественные операторы: II. Специальные реляционные операторы: Не все операторы из этих групп являются независимыми, т.е. некоторые из этих операторов могут быть выражены через другие реляционные операторы. Не все операторы из этих групп являются независимыми, т.е. некоторые из этих операторов могут быть выражены через другие реляционные операторы.
Теоретико-множественные операторы: 1. Объединение 2. Пересечение 3. Вычитание 4. Декартово произведение Все четыре операции являются ассоциативными, т.е. (А ОР В) ОР С = А ОР (В ОР С) или А ОР В ОР С Все три операции, кроме вычитания, являются коммутативными, т.е. А ОР В = В ОР А Специальные реляционные операторы: 5. Выборка 6. Проекция 7. Соединение 8. Деление
В состав реляционной алгебры включаются также две операции: 9. Операция присваивания, позволяющая сохранить в БД результаты вычисления алгебраических выражений; 10. Операция переименования атрибутов, дающая возможность корректно сформировать заголовок(схему) результирующего отношения. Определение 1. Будем называть отношения совместимыми по типу, если они имеют идентичные заголовки, а именно: Определение 1. Будем называть отношения совместимыми по типу, если они имеют идентичные заголовки, а именно: Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении, Отношения имеют одно и то же множество имен атрибутов, т.е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении, Атрибуты с одинаковыми именами определены на одних и тех же доменах. Атрибуты с одинаковыми именами определены на одних и тех же доменах.
Некоторые отношения не являются совместимыми по типу, но становятся таковыми после некоторого переименования атрибутов. Некоторые отношения не являются совместимыми по типу, но становятся таковыми после некоторого переименования атрибутов. Оператор переименования атрибутов Оператор переименования атрибутов Оператор переименования атрибутов имеет следующий синтаксис: R Rename Atr 1, Atr 2, … AS NewAtr 1, NewAtr 2,..., где Оператор переименования атрибутов имеет следующий синтаксис: R Rename Atr 1, Atr 2, … AS NewAtr 1, NewAtr 2,..., где R - отношение, Atr 1, Atr 2 - исходные имена атрибутов, NewAtr 1, NewAtr 2 - новые имена атрибутов. В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов. В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов. Пример: Следующий оператор возвращает неименованное отношение, в котором атрибут City_Num переименован в Cityld: City RENAME City_Num AS Cityld
Теоретико-множественные операторы Теоретико-множественные операторы Результат операций теории множеств можно сделать нагляднее посредством диаграмм Эйлера-Венна. Объединение Объединение Определение 2. Объединением двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. Синтаксис операции объединения: A UNION B Синтаксис операции объединения: A UNION B Построим диаграмму для операции объединения: Мы видим, что результатом объединения двух множеств является множество, включающее в себя все элементы исходных множеств. В случае, когда A и B – отношения, результатом их объединения является отношение, заголовок которого совпадает с заголовками A и B, а тело включает кортежи из обоих отношений (исключая возможные дубликаты). Построим диаграмму для операции объединения: Мы видим, что результатом объединения двух множеств является множество, включающее в себя все элементы исходных множеств. В случае, когда A и B – отношения, результатом их объединения является отношение, заголовок которого совпадает с заголовками A и B, а тело включает кортежи из обоих отношений (исключая возможные дубликаты).
Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение A, и отношение B, то в объединение он входит один раз. Например, отношение COMP_BOOKS содержит данные по компьютерным книгам в библиотеке, а отношение MATH_BOOKS – по математическим книгам. Отношение, являющееся результатом оператора (COMP_BOOKS UNION MATH_BOOKS), содержит перечень книг из обоих разделов, причем книги, включенные в оба раздела (например, по численным методам), будут представлены в результирующем отношении в единственном экземпляре. Например, отношение COMP_BOOKS содержит данные по компьютерным книгам в библиотеке, а отношение MATH_BOOKS – по математическим книгам. Отношение, являющееся результатом оператора (COMP_BOOKS UNION MATH_BOOKS), содержит перечень книг из обоих разделов, причем книги, включенные в оба раздела (например, по численным методам), будут представлены в результирующем отношении в единственном экземпляре.
Отношения-операнды в этом случае должны быть определены по одной схеме. Результирующее отношение содержит все строки операндов за исключением повторяющихся
Табельный номер Фамилия Зарплата 1Иванов Петров Сидоров 3000 Фамилия Зарплата 1Иванов Пушников Сидоров 3000 Фамилия Зарплата 1Иванов Петров Сидоров Пушников Сидоров 3000 Отношение A Отношение B Отношение A UNION B Замечание. Потенциальные ключи, которые были в отношениях не наследуются объединением этих отношений. Поэтому, в объединении отношений атрибут "Табельный номер" может содержать дубликаты значений. Если бы это было не так, и ключи наследовались бы, то это противоречило бы понятию объединения как "объединение множеств". Объединение отношений имеет, как и любое отношение, потенциальный ключ, например, состоящий из всех атрибутов.
Пересечение Пересечение Определение 3. Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В. Определение 3. Пересечением двух совместимых по типу отношений А и В называется отношение с тем же заголовком, что и у отношений А и В, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям А и В. Cинтаксис операции пересечения: A INTERSECT B Cинтаксис операции пересечения: A INTERSECT B Для этого оператора отношения- операнды также должны быть совместимы по типу. В случае пересечения двух отношений результат – отношение, заголовок которого совпадает с заголовками исходных отношений, а тело включает кортежи, имеющиеся в обоих отношениях. Для этого оператора отношения- операнды также должны быть совместимы по типу. В случае пересечения двух отношений результат – отношение, заголовок которого совпадает с заголовками исходных отношений, а тело включает кортежи, имеющиеся в обоих отношениях. Диаграмма для пересечения
Результатом пересечения двух множеств является множество, элементы которого принадлежат одновременно обоим множествам.
Табельный номер Фамилия Зарплата 1Иванов 1000 Замечание. Никакие реляционные операторы не передают результатирующему отношению никаких данных о потенциальных ключах. Причина глубока, и заключается в том, что потенциальный ключ - семантическое понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут "знать" о смысле данных. Трактовка результата реляционных операций - дело пользователя.
Вычитание Вычитание Определение 4. Вычитанием двух совместимых по типу отношений A и B называется отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. Синтаксис операции вычитания: A MINUS B Синтаксис операции вычитания: A MINUS B Отношения-операнды должны быть совместимы по типу. Отношения-операнды должны быть совместимы по типу. Как видно на диаграмме, результирующее множество состоит из элементов, принадлежащих A и не принадлежащих B. Очевидно, что эта операция дает отношение, заголовок которого совпадает с заголовками исходных отношений, а тело включает все кортежи первого отношения, не включенные во второе. Как видно на диаграмме, результирующее множество состоит из элементов, принадлежащих A и не принадлежащих B. Очевидно, что эта операция дает отношение, заголовок которого совпадает с заголовками исходных отношений, а тело включает все кортежи первого отношения, не включенные во второе.
Операция во многом похожая на ПЕРЕСЕЧЕНИЕ, за исключением того, что в результирующем отношении содержатся кортежи, присутствующие в первом и отсутствующие во втором исходных отношениях.
Табельный номер Фамилия Зарплата 2Петров Сидоров 3000 Отношение A MINUS B
Декартово произведение Декартово произведение Определение 5. Декартовым произведением двух отношений A(A1,A2,…,An) и B(B1,B2,…,Bm) называется отношение, заголовок которого является сцеплением заголовков отношений A и B : (A1,A2,…,An,B1,B2,…,Bm), Определение 5. Декартовым произведением двух отношений A(A1,A2,…,An) и B(B1,B2,…,Bm) называется отношение, заголовок которого является сцеплением заголовков отношений A и B : (A1,A2,…,An,B1,B2,…,Bm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B: (a1,a2,…,an,b1,b2,…,bm), таких, что а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B: (a1,a2,…,an,b1,b2,…,bm), таких, что (a1,a2,…,an) Є A, (a1,a2,…,an,b1,b2,…,bm) Є B. (a1,a2,…,an) Є A, (a1,a2,…,an,b1,b2,…,bm) Є B. Синтаксис операции декартового произведения: Синтаксис операции декартового произведения: A TIMES B A TIMES B Здесь совместимости по типу исходных отношений не требуется. Более того, если отношения содержат атрибуты с одинаковыми именами, атрибут одного из отношений необходимо переименовать, чтобы избежать неоднозначности имен в результирующем отношении. Здесь совместимости по типу исходных отношений не требуется. Более того, если отношения содержат атрибуты с одинаковыми именами, атрибут одного из отношений необходимо переименовать, чтобы избежать неоднозначности имен в результирующем отношении. Операция самостоятельной ценности не имеет. Применяется она обычно только в сочетании с реляционными операциями. Операция самостоятельной ценности не имеет. Применяется она обычно только в сочетании с реляционными операциями.
Замечание. Мощность произведения A TIMES B Замечание. Мощность произведения A TIMES B равна произведению мощностей отношений A и B, т.к. каждый кортеж отношения A соединяется с каждым кортежем отношения B. равна произведению мощностей отношений A и B, т.к. каждый кортеж отношения A соединяется с каждым кортежем отношения B. Замечание. Если в отношения A и B имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. Замечание. Если в отношения A и B имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. Замечание. Перемножать можно любые два отношения, совместимость по типу при этом не требуется. Замечание. Перемножать можно любые два отношения, совместимость по типу при этом не требуется.
Входные отношения могут быть определены по разным схемам. Схема результирующего отношения включает все атрибуты исходных. Кроме того: степень результирующего отношения равна сумме степеней исходных отношений; мощность результирующего отношения равна произведению мощностей исходных отношений.
Номер поставщика Наименование поставщика 1Иванов 2Петров 3Сидоров Номер поставщика Наименование поставщика Номер детали Наименование детали 1Иванов 1Болт 1Иванов 2Гайка 1Иванов 3Винт 2Петров 1Болт 2Петров 2Гайка 2Петров 3Винт 3Сидоров 1Болт 3Сидоров 2Гайка 3Сидоров 3Винт Номер детали Наименование детали 1Болт 2Гайка 3Винт Отношение A (Поставщики) Отношение B (Детали) Отношение A TIMES B