Semi Join vs Bloom Join
Semi join och Bloom join är två sammanfogningsmetoder som används vid frågebehandling för distribuerade databaser. Vid bearbetning av frågor i distribuerade databaser måste data överföras mellan databaser som finns på olika platser. Detta kan bli en dyr operation beroende på mängden data som behöver överföras. När du bearbetar frågor i en distribuerad databasmiljö är det därför viktigt att optimera frågorna för att minimera mängden data som överförs mellan webbplatser. Semi join och bloom join är två metoder som kan användas för att minska mängden dataöverföring och utföra effektiv frågebehandling.
Vad är Semi Join?
Semi join är en metod som används för effektiv frågebehandling i en distribuerad databasmiljö. Tänk på en situation där en anställd databas (innehåller information såsom anställds namn, avdelningsnummer hon arbetar för, etc) finns på plats 1 och en avdelningsdatabas (innehåller information som avdelningsnummer, avdelningsnamn, plats, etc) på plats 2. Om vi till exempel vill få anställds namn och avdelningsnamn som hon arbetar för (endast för avdelningar i "New York"), genom att utföra en fråga hos en frågeprocessor på plats 3, finns det flera sätt att data skulle kunna överföras mellan de tre platserna för att uppnå denna uppgift. Men vid överföring av data är det viktigt att notera att det inte är nödvändigt att överföra hela databasen mellan webbplatserna. Endast några av de attribut (eller tupler) som krävs för sammanfogningen behöver överföras mellan platserna för att sökningen ska kunna utföras effektivt. Semi join är en metod som kan användas för att minska mängden data som skickas mellan sajterna. I semi-join överförs endast sammanfogningskolumnen från en plats till en annan och sedan används den överförda kolumnen för att minska storleken på de skickade relationerna mellan de andra platserna. För exemplet ovan kan du bara överföra avdelningsnummer och avdelningsnamn för tuplar med plats=”New York” från plats 2 till plats 1 och utföra sammanfogningen på plats 1 och överföra den slutliga relationen tillbaka till plats 3.
Vad är Bloom Join?
Som nämnts tidigare är bloom join en annan metod som används för att undvika överföring av onödig data mellan webbplatser när man kör frågor i en distribuerad databasmiljö. I bloom join, istället för att överföra själva sammanfogningskolumnen, överförs en kompakt representation av sammanfogningskolumnen mellan platserna. Bloom join använder ett bloomfilter som använder en bitvektor för att utföra medlemsförfrågningar. Först byggs ett blomfilter med hjälp av sammanfogningskolumnen och det överförs mellan platserna och sedan utförs sammanfogningsoperationerna.
Vad är skillnaden mellan Semi Join och Bloom Join?
Även om både semi-join- och bloom-join-metoder används för att minimera mängden data som överförs mellan sajterna vid exekvering av frågor i en distribuerad databasmiljö, minskar bloom join mängden data (antal tupler) som överförs jämfört med semi join genom att använda konceptet med blomfilter, som använder en bitvektor för att bestämma setmedlemskap. Därför kommer det att vara mer effektivt att använda bloom join än att använda semi join.