Что такое соединение в алгебре
Соединения (матем.)
Смотреть что такое «Соединения (матем.)» в других словарях:
Сочетания — (матем.) см. Соединения … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона
СИНТЕЗ — (от греч. соединение, сочетание, составление), соединение различных элементов, сторон предмета в единое целое (систему), которое осуществляется как в практич. деятельности, так и в процессе познания. В этом значении С. противоположен… … Философская энциклопедия
АЛГЕБРА ЛОГИКИ — система алгебраич. методов решения логич. задач, а также совокупность задач, решаемых такими методами. А. л. в узком смысле слова алгебраич. (табличное, матричное) построение классич. логики высказываний, в котором рассматриваются… … Философская энциклопедия
РЕНТГЕНОВСКИЙ СТРУКТУРНЫЙ АНАЛИЗ — методы исследования структуры в ва по распределению в пр ве и интенсивностям рассеянного на анализируемом объекте рентгеновского излучения. Р. с. а. наряду с нейтронографией и электронографией явл. дифракц. структурным методом; в его основе лежит … Физическая энциклопедия
ФИЛОСОФИЯ — (от греч. phileo люблю, sophia мудрость, philosophia любовь к мудрости) особая форма общественного сознания и познания мира, вырабатывающая систему знаний о фундаментальных принципах и основах человеческого бытия, о наиболее общих сущностных… … Философская энциклопедия
ГРУППА — множество, на к ром определена операция, наз. умножением и удовлетворяющая спец. условиям (групповым аксиомам): в Г. существует единичный элемент; для каждого элемента Г. существует обратный; операция умножения ассоциативна. Понятие Г. возникло… … Физическая энциклопедия
АЛГОРИТМИЧЕСКАЯ ПРОБЛЕМА — проблема, в к рой требуется найти единый метод ( алгоритм).для решения бесконечной серии однотипных единичных задач. Такие проблемы иногда наз. также массовыми проблемами. А. п. возникали и решались в различных областях математики на протяжении… … Математическая энциклопедия
Ломоносов, Михаил Васильевич — — ученый и писатель, действительный член Российской Академии Наук, профессор химии С. Петербургского университета; родился в дер. Денисовке, Архангельской губ., 8 ноября 1711 г., скончался в С. Петербурге 4 апреля 1765 года. В настоящее… … Большая биографическая энциклопедия
АВТОМАТИЗАЦИЯ ЭКСПЕРИМЕНТА — комплекс средств и методов для ускорения сбора и обработки эксперим. данных, интенсификации использования эксперим. установок, повышения эффективности работы исследователей. Характерной особенностью А. э. является использование ЭВМ, что позволяет … Физическая энциклопедия
Основы реляционной алгебры
Реляционная алгебра базируется на теории множеств и является основой логики работы баз данных.
Когда я только изучал устройство баз данных и SQL, предварительное ознакомление с реляционной алгеброй очень помогло дальнейшим знаниям правильно уложиться в голове, и я постараюсь что бы эта статья произвела подобный эффект.
Так что если вы собираетесь начать свое обучение в этой области или вам просто стало интересно, прошу под кат.
Реляционная база данных
Для начала введем понятие реляцинной базы данных, в которой будем выполнять все действия.
Реляционной базой данных называется совокупность отношений, содержащих всю информацию, которая должна хранится в базе. В данном определении нам интересен термин отношение, но пока оставим его без строго определения.
Лучше представим себе таблицу продуктов.
таблица PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
156 | Чай | ООО ”Темная сторона” | 60 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
Таблица состоит из 4х строк, строка в таблице является кортежем в реляционной теории. Множество упорядоченных кортежей называется отношением.
Перед тем как дать определение отношения, введем еще один термин — домен. Домены применительно к таблице это столбцы.
Для ясности, теперь введем строгое определение отношения.
Ключи в отношениях
В отношении требованием является то, что все кортежи должны различаться. Для однозначной идентификации кортежа существует первичный ключ. Первичный ключ это атрибут или набор из минимального числа атрибутов, который однозначно идентифицирует конкретный кортеж и не содержит дополнительных атрибутов.
Подразумевается, что все атрибуты в первичном ключе должны быть необходимыми и достаточными для идентификации конкретного кортежа, и исключение любого из атрибутов в ключе сделает его недостаточным для идентификации.
Например, в такой таблице ключом будет сочетание атрибутов из первого и второго столбца.
COMPANY | DRIVER |
ООО ”Темная сторона” | Владимир |
ООО ”Темная сторона” | Михаил |
ОАО ”Фрукты” | Руслан |
ООО ”Овощи” | Владимир |
Видно, что в организации может быть несколько водителей, и чтобы однозначно идентифицировать водителя необходимо и значение из столбца “Название организации” и из “Имя водителя”. Такой ключ называется составным.
В реляционной БД таблицы взаимосвязаны и соотносятся друг с другом как главные и подчиненные. Связь главной и подчиненнной таблицы осуществляется через первичный ключ (primary key) главной таблицы и внешний ключ ( foreign key ) подчиненной таблицы.
Внешний ключ это атрибут или набор атрибутов, который в главной таблице является первичным ключем.
Этой подготовительной теории будет достаточно для знакомства с основными операциями реляционной алгебры.
Операции реляционной алгебры
Для понимания важно запомнить, что результатом любой операции алгебры над отношениями является еще одно отношение, которое можно потом так же использовать в других операциях.
Создадим еще одну таблицу, которая нам пригодится в примерах.
ID | SELLER |
123 | OOO “Дарт” |
156 | ОАО ”Ведро” |
235 | ЗАО “Овоще База” |
623 | ОАО ”Фирма” |
Условимся, что в этой таблице ID это внешний ключ, связанный с первичным ключом таблицы PRODUCTS.
Для начала рассмотрим самую простую операцию — имя отношения. Её результатом будет такое же отношение, то есть выполнив операцию PRODUCTS, мы получим копию отношения PRODUCTS.
Проекция
Проекция является операцией, при которой из отношения выделяются атрибуты только из указанных доменов, то есть из таблицы выбираются только нужные столбцы, при этом, если получится несколько одинаковых кортежей, то в результирующем отношении остается только по одному экземпляру подобного кортежа.
Для примера сделаем проекцию на таблице PRODUCTS выбрав из нее ID и PRICE.
Синтаксис операции:
π (ID, PRICE) PRODUCTS
В результате этой операции получим отношение:
ID | PRICE |
123 | 190 |
156 | 60 |
235 | 100 |
623 | 130 |
Выборка
Выборка — это операция, которая выделяет множество строк в таблице, удовлетворяющих заданным условиям. Условием может быть любое логическое выражение.
Для примера сделаем выборку из таблицы с ценой больше 90.
Синтаксис операции:
σ (PRICE>90) PRODUCTS
ID | NAME | COMPANY | PRICE |
123 | Печеньки | ООО ”Темная сторона” | 190 |
235 | Ананасы | ОАО ”Фрукты” | 100 |
623 | Томаты | ООО ”Овощи” | 130 |
В условии выборки мы можем использовать любое логическое выражение. Сделаем еще одну выборку с ценой больше 90 и ID товара меньше 300:
σ (PRICE>90 ^ ID π COMPANY σ (PRICE 123 Для примера использования этой операции представим себе необходимость выбрать продавцов с ценами меньше 90. Без произведения необходимо было бы сначала получить ID продуктов из первой таблицы, потом по этим ID из второй таблицы получить нужные имена SELLER, а с использованием произведения будет такой запрос: Существуют различные типы операций соединения : Операция тета-соединения в языке SQL называется INNER JOIN (внутреннее соединение ) и используется, когда нужно включить все строки из обеих таблиц, удовлетворяющие условию объединения. Внутреннее соединение имеет место и тогда, когда в предложении WHERE сравниваются значения полей из разных таблиц. В этом случае строится декартово произведение строк первой и второй таблиц, а из полученного набора данных отбираются записи, удовлетворяющие условиям объединения. В условиях объединения могут участвовать поля, относящиеся к одному и тому же типу данных и содержащие один и тот же вид данных, но они не обязательно должны иметь одинаковые имена. Блоки данных из двух таблиц объединяются, как только в указанных полях будут найдены совпадающие значения. Если перечислять ряд таблиц или запросов и не указывать условия объединения, в качестве результирующей таблицы будет выбрано декартово (прямое) произведение всех таблиц. Пример 5.6. Вывести информацию о проданных товарах. Можно создать вложенные объединения, добавив третью таблицу к результату объединения двух других таблиц. Пример 5.7. Получить сведения о товарах, дате сделок, количестве проданного товара и покупателях. Использование общих имен таблиц для идентификации столбцов неудобно из-за их громоздкости. Каждой таблице можно присвоить какое-нибудь краткое обозначение, псевдоним. Пример 5.8. Получить сведения о товарах, дате сделок, количестве проданного товара и покупателях. В запросе используются псевдонимы таблиц. Пример 5.11. Вывести информацию о всех товарах. Для проданных товаров будет указана дата сделки и количество. Для непроданных эти поля останутся пустыми. Запрос SQL Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. В таблице ниже дано одно отношение, с которым работает эта операция. Просматриваем столбец А3 и устанавливаем, что предикату A3>’d0′ удовлетворяют записи в первой и третьей строках исходного отношения (так как номер буквы y в алфавите больше номера буквы d). В результате получаем следующее новое отношение, в котором две строки: Комбинировать всевозможные логические условия для выборок Вам поможет материал «Булева алгебра (алгебра логики)». А в материалах раздела «Программирование PHP/MySQL» Вы найдёт немало примеров комбинаций различных логических условий для выборок из базы данных. Запрос SQL Пусть вновь дано то же отношение R3 : Результатом объединения двух множеств (отношений) А и В ( Запрос SQL Важно следующее: операция объединения может быть выполнена только тогда, когда два отношения обладают одинаковым числом и названиями атрибутов (столбцов), или, говоря формально, совместимы по объединению. Результатом пересечения двух множеств (отношений) А и В ( Запрос SQL В некоторых диалектах SQL отсутствует ключевое слово INTERSECT. Поэтому, например, в MySQL и других, операция пересечения множеств может реализована с применением предиката EXISTS. Теперь посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2: Разность двух отношений R1 и R2 ( Запрос SQL Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Вновь даны два отношения R1 и R2: В некоторых диалектах SQL отсутствует ключевое слово EXCEPT. Поэтому, например, в MySQL и других, операция пересечения множеств может реализована с применением предиката NOT EXISTS. Операция декартова произведения ( Запрос SQL Установим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4: В новом отношении должны присутствовать все атрибуты (столбцы) двух отношений. Сначала первая строка отношения R3 сцепляется с каждой из двух строк отношения R4, затем вторая строка отношения R3, затем третья. В результате должно получиться 3 Х 2 = 6 кортежей (строк). Получаем такое новое отношение: Результатом операции деления ( Запрос SQL Давайте посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R5 и R6: Комбинации всех кортежей отношения R6 соответствуют вторая и третья строки отношения R5. Но после исключения атрибутов (столбцов) А2 и А3 эти строки становятся идентичными. Поэтому в новом отношении присутствует эта строка один раз. Новое отношение: Запрос SQL Посмотрим, что получится в результате выполнения этой операции реляционной алгебры и соответствующего ей запроса SQL. Даны два отношения R3 и R4:Печеньки ООО ”Темная сторона” 190 123 OOO “Дарт” 156 Чай ООО ”Темная сторона” 60 156 ОАО ”Ведро” 123 Печеньки ООО ”Темная сторона” 190 156 ОАО ”Ведро” 156 Чай ООО ”Темная сторона” 60 123 OOO “Дарт” Соединения и теоретико-множественные операции над отношениями
Операция соединения по двум отношениям (таблицам)
Операция тета-соединения
Таблица 5.2.
R.a1 R.a2 S.b1 S.b2 a 1 1 h a 2 2 g b 3 3 h b 1 1 h Естественное соединение
Таблица 5.3.
R.a1 R.a2 или S.b1 S.b2 a 1 h a 2 g b 3 h b 1 h Левое внешнее соединение
Таблица 5.4.
R.a1 R.a2 S.b1 S.b2 a 1 1 h a 2 2 g b 1 1 h b 3 3 h b 4 null null Полусоединение
Реляционная алгебра, операции реляционной алгебры
Что такое реляционная алгебра
Операция выборки
,
R3 A1 A2 A3 A4 3 hh yl ms 4 pp a1 sr 1 rr yl ms R A1 A2 A3 A4 3 hh yl ms 1 rr yl ms Операция проекции
R3 A1 A2 A3 A4 3 hh yl ms 4 pp a1 sr 1 rr yl ms R A4 A3 ms yl sr a1 Операция объединения
) будет такое множество (отношение) С, которое включает в себя те и только те элементы, которые есть или во множестве А или во множестве В. Говоря упрощённо, все элементы множества А и множества В, за исключением дубликатов, образующихся за счёт того, что некоторые элементы есть и в первом, и во втором множестве. Операция объединения реляционной алгебры идентична операции объединения множеств, которая также описана в материале «Множества и операции над множествами».
R1 R2 A1 A2 A3 A1 A2 A3 Z7 aa w11 X8 pp k21 B7 hh h15 Q2 ee h15 X8 pp w11 X8 pp w11 R A1 A2 A3 Z7 aa w11 B7 hh h15 X8 pp w11 X8 pp k21 Q2 ee h15 Операция пересечения
) будет такое множество (отношение) С, которое включает в себя те и только те элементы, которые есть и во множестве А, и во множестве В. Операция пересечения реляционной алгебры идентична операции пересечения множеств, которая также описана в материале «Множества и операции над множествами».
R1 R2 A1 A2 A3 A1 A2 A3 Z7 aa w11 X8 pp k21 B7 hh h15 Q2 ee h15 X8 pp w11 X8 pp w11 R A1 A2 A3 X8 pp w11 Операция разности
) состоит из кортежей (или записей, или строк), которые имеются в отношении R1, но отсутствуют в отношении R2. Отношения R1 и R2 должны быть совместимы по объединению. Операция разности реляционной алгебры идентична операции разности множеств, которая также описана в материале «Множества и операции над множествами».
R1 R2 A1 A2 A3 A1 A2 A3 Z7 aa w11 X8 pp k21 B7 hh h15 Q2 ee h15 X8 pp w11 X8 pp w11 R A1 A2 A3 X8 pp w11 Q2 ee h15 Операция декартова произведения
) определяет новое отношение R, которое является результатом конкатенации каждого кортежа отношения R1 с каждым кортежем отношения R2.
R3 R4 A1 A2 A3 A4 A5 A6 3 hh yl ms 3 hh 4 pp a1 sr 4 pp 1 rr yl ms R A1 A2 A3 A4 A5 A6 3 hh yl ms 3 hh 3 hh yl ms 4 pp 4 pp a1 sr 3 hh 4 pp a1 sr 4 pp 1 rr yl ms 3 hh 1 rr yl ms 4 pp Операция деления
) является набор кортежей (строк) отношения R1, которые соответствуют комбинации всех кортежей отношения R2. Для этого нужно, чтобы в отношении R2 была часть атрибутов (можно и один), которые есть в отношении R1. В результирующем отношении присутствуют только те атрибуты отношения R1, которых нет в отношении R2.
R5 R6 A1 A2 A3 A4 A2 A3 2 S3 4 sun R4 8 3 X8 7 kab X8 7 3 R4 8 kab Операция тета-соединения
R3 R4 A1 A2 A3 A4 A5 A6 3 hh yl ms 3 hh 4 pp a1 sr 4 pp 1 rr yl ms