Jump to content

Чейз (алгоритм)

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

Погоня берет свое начало в двух основополагающих статьях 1979 года, одна из которых написана Альфредом В. Ахо , Катриэль Бири и Джеффри Д. Уллманом. [1] а другой — Дэвидом Майером , Альберто О. Мендельзоном и Иеошуа Сагивом . [2]

В простейшем применении погоня используется для проверки того, может ли проекция схемы отношения , ограниченной некоторыми функциональными зависимостями , быть восстановлена ​​на заданную декомпозицию путем повторного соединения проекций . Пусть t будет кортежем в где R отношение , а F – множество функциональных зависимостей (ФЗ). Если кортежи в R представлены как t 1 , ..., t k , соединение проекций каждого ti должно согласовываться с t на где я = 1, 2, ..., к . Если я включен не , значение неизвестно.

Погоню можно выполнить, нарисовав таблицу (это тот же формализм, который используется в запросе таблицы ). Предположим, что R имеет атрибуты A, B,... и компоненты t — это a, b,... . Для ti S используйте ту же букву, что и t, в компонентах, входящих в S i, но добавляйте букву i, если компонент не входит в i . Тогда t i будет согласовываться с t, если оно находится в Si , и в противном случае будет иметь уникальное значение.

Процесс преследования является слитным . Существуют реализации алгоритма преследования, [3] некоторые из них также имеют открытый исходный код. [4]

Пусть R ( A , B , C , D ) — схема отношений, о которой известно, что она подчиняется множеству функциональных зависимостей F = { A B , B C , CD→A }. Предположим, что R разложено на три схемы отношений S 1 = { A , D }, S 2 = { A , C } и S 3 = { B , C , D }. Определить, является ли это разложение без потерь, можно, выполнив поиск, как показано ниже.

Исходная таблица для этого разложения:

А Б С Д
а б 1 с 1 д
а б 2 с д 2
aа3 б с д

Первая строка представляет S 1 . Компоненты атрибутов A и D не имеют индексов, а компоненты атрибутов B и C имеют индекс i = 1. Вторая и третья строки заполняются таким же образом S 2 и S 3 соответственно.

Цель этого теста — использовать заданный F , чтобы доказать, что = ( a , b , c , d ) действительно находится в R. t Для этого таблицу можно просмотреть, применив FD в F для приравнивания символов в таблице. Итоговая таблица со строкой, такой же, как t, подразумевает, что любой кортеж t в соединении проекций на самом деле является кортежем R .
Чтобы выполнить тест преследования, сначала разложите все FD в F так, чтобы каждый FD имел один атрибут в правой части «стрелки». (В этом примере F остается неизменным, поскольку все его FD уже имеют один атрибут в правой части: F = { A B , B C , CD A }.)

При приравнивании двух символов, если один из них не имеет индекса, сделайте другой таким же, чтобы в окончательной таблице могла быть строка, точно такая же, как t = ( a , b , c , d ). Если оба имеют свой собственный индекс, измените один на другой. Однако во избежание путаницы все вхождения следует изменить.
Сначала примените A B к таблице.Первая строка — это ( a , b 1 , c 1 , d ), где a не имеет индекса, а b 1 имеет индекс 1. Сравнивая первую строку со второй, измените b 2 на b 1 . третьей строке есть 3 Поскольку в , b в третьей строке остается прежним. Итоговая таблица:

А Б С Д
а б 1 с 1 д
а б 1 с д 2
aа3 б с д

рассмотрим B C. Затем И первая, и вторая строки имеют b 1 и обратите внимание, что вторая строка имеет безиндексный c . Поэтому первая строка меняется на ( , b1 , ) c , d a . Тогда результирующая таблица будет такой:

А Б С Д
а б 1 с д
а б 1 с д 2
aа3 б с д

рассмотрим CD A. Теперь В первой строке есть c без индекса и d без индекса , что такое же, как и в третьей строке. Это означает, что значение A для первой и третьей строк также должно быть одинаковым. Следовательно, измените в 3 строке на . третьей Итоговая таблица:

А Б С Д
а б 1 с д
а б 1 с д 2
а б с д

На этом этапе обратите внимание, что третья строка — это ( a , b , c , d ), которая совпадает с t . это окончательная таблица для теста преследования с заданными R и F. Таким образом , Следовательно, всякий раз, когда R проецируется на S 1 , S 2 и S 3 и снова соединяется, результат находится в R . В частности, результирующий кортеж такой же, как кортеж R , который проецируется на { B , C , D }.

  1. ^ Альфред В. Ахо , Катриэль Бири и Джеффри Д. Уллман : «Теория объединений в реляционных базах данных», ACM Trans. Данныеб. Сист. 4(3):297-314, 1979.
  2. ^ Дэвид Майер , Альберто О. Мендельзон и Иеошуа Сагив : «Тестирование последствий зависимостей данных». АКМ Транс. Данныеб. Сист. 4(4):455-469, 1979.
  3. ^ Майкл Бенедикт , Джордж Константинидис , Джансальваторе Мекка , Борис Мотик , Паоло Папотти , Донателло Санторо , Эфтимия Цамура : Сравнительный анализ погони . В Proc. ПОДС, 2017.
  4. ^ «Lunatic Mapping and Clean Chase Engine» . 6 апреля 2021 г.

Дальнейшее чтение

[ редактировать ]
  • Серджио Греко; Франческа Спеццано; Кристиан Молинаро (2012). Неполные данные и зависимости данных в реляционных базах данных . Издательство Морган и Клейпул. ISBN  978-1-60845-926-1 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: c4951fe4ebc8d13b3f3f148e0c01c0c7__1632666840
URL1:https://arc.ask3.ru/arc/aa/c4/c7/c4951fe4ebc8d13b3f3f148e0c01c0c7.html
Заголовок, (Title) документа по адресу, URL1:
Chase (algorithm) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)