Рекурсивное соединение
Рекурсивное соединение — это операция, используемая в реляционных базах данных , которую также иногда называют «соединением с фиксированной точкой». Это составная операция , которая включает в себя повторение операции соединения , обычно каждый раз накапливая больше записей, пока повторение не приведет к изменению результатов (по сравнению с результатами предыдущей итерации). [1]
Например, если необходимо выполнить поиск в базе данных семейных отношений и запись для каждого человека имеет поля «мать» и «отец», рекурсивное соединение будет одним из способов получить всех известных предков человека: сначала будут извлечены записи родителей, затем информация о родителях будет использоваться для получения записей бабушек и дедушек и так далее, пока новые записи не будут найдены.
В этом примере, как и во многих реальных случаях, повторение включает только одну таблицу базы данных и, более конкретно, представляет собой «рекурсивное самообъединение».
Рекурсивные соединения могут занимать очень много времени. [2] если не оптимизировано с помощью индексации, добавления дополнительных ключевых полей или других методов. Обход графа обходится дешевле, чем метод рекурсивных соединений. [3]
Рекурсивные соединения очень характерны для иерархических данных и поэтому становятся серьезной проблемой для данных XML . В XML такие операции, как определение того, содержит ли один элемент другой, чрезвычайно распространены, и рекурсивное соединение, возможно, является наиболее очевидным способом их реализации, когда данные XML хранятся в реляционной базе данных.
Стандартный способ определения рекурсивных объединений в стандарте SQL:1999 — это использование рекурсивных общих табличных выражений . К системам управления базами данных, поддерживающим рекурсивные CTE, относятся Microsoft SQL Server , Oracle , PostgreSQL и другие.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Зигиарис, Сотириос (23 августа 2018 г.). Системы управления базами данных: бизнес-ориентированный подход с использованием ORACLE, MySQL и MS Access . Издательство Изумрудной группы. п. 136. ИСБН 978-1-78756-696-5 .
- ^ Хили, Кристофер Г. (17 ноября 2016 г.). Дисковые алгоритмы для больших данных . ЦРК Пресс. п. 127. ИСБН 978-1-315-30286-7 .
- ^ Ресурсы, Ассоциация менеджмента, Информация (20 апреля 2016 г.). Большие данные: концепции, методологии, инструменты и приложения: концепции, методологии, инструменты и приложения . IGI Global. п. 596. ИСБН 978-1-4666-9841-3 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка )