Jump to content

Соединение вложенного цикла

Соединение вложенных циклов — это простой алгоритм , который объединяет два отношения с помощью двух вложенных циклов . [1] Операции соединения важны для управления базами данных .

Алгоритм

[ редактировать ]

Два отношения и соединяются следующим образом:

algorithm nested_loop_join is
    for each tuple r in R do
        for each tuple s in S do
            if r and s satisfy the join condition then
                yield tuple <r,s>

Этот алгоритм будет включать n r *b s + b r блочные передачи и n r +br r поиск, где br и b s — количество блоков в отношениях R и S соответственно, а n r — количество кортежей в отношении R. .

Алгоритм работает в ввод/вывод, где и количество кортежей, содержащихся в и соответственно, и его можно легко обобщить для объединения любого количества отношений...

Алгоритм вложенных циклов блоков соединения [2] является обобщением простого алгоритма вложенных циклов, который использует дополнительную память для уменьшения количества раз, когда отношение сканируется. Он загружает большие фрагменты отношения R в основную память. Для каждого фрагмента он сканирует S и оценивает условие соединения для всех пар кортежей, находящихся в данный момент в памяти. Это уменьшает количество сканирований S до одного раза для каждого фрагмента.

Вариант соединения индекса

[ редактировать ]

Если внутреннее отношение имеет индекс атрибутов, используемых в соединении, то наивное соединение вложенного цикла можно заменить объединением индекса.

algorithm index_join is
    for each tuple r in R do
        for each tuple s in S in the index lookup do
            yield tuple <r,s>

Временная сложность для этого варианта улучшается с

См. также

[ редактировать ]
  1. ^ «Понимание соединений вложенных циклов» . 4 октября 2012 г.
  2. ^ http://www.databaselecture.com/slides/9_Operator_Implementations.pdf. [ только URL-адрес PDF ]


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 53616516433c75c18250d6ccc9f2af36__1707888120
URL1:https://arc.ask3.ru/arc/aa/53/36/53616516433c75c18250d6ccc9f2af36.html
Заголовок, (Title) документа по адресу, URL1:
Nested loop join - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)