Liitosalgoritmit ja niiden soveltuvuus liitosoperaation toteuttamiseen relaatiotietokannanhallintajärjestelmissä

Tässä tutkielmassa tarkastellaan liitosoperaation toteuttavia liitosalgoritmeja relaatiotietokannanhallintajärjestelmissä. Tutkielman tavoitteena on esitellä kolme yleisintä liitosalgoritmia – nested loop, sort-merge ja hash join – toimintaperiaatteineen sekä selvittää, mikä näistä liitosalgoritmeis...

Full description

Bibliographic Details
Main Author: Alila, Juuso
Other Authors: Informaatioteknologian tiedekunta, Faculty of Information Technology, Informaatioteknologia, Information Technology, University of Jyväskylä, Jyväskylän yliopisto
Format: Bachelor's thesis
Language:fin
Published: 2017
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/53709
Description
Summary:Tässä tutkielmassa tarkastellaan liitosoperaation toteuttavia liitosalgoritmeja relaatiotietokannanhallintajärjestelmissä. Tutkielman tavoitteena on esitellä kolme yleisintä liitosalgoritmia – nested loop, sort-merge ja hash join – toimintaperiaatteineen sekä selvittää, mikä näistä liitosalgoritmeista on soveltuvin toteuttamaan liitoksen. Lisäksi tutkielmassa kerrotaan lyhyesti tietokantakyselyn käsittelystä ja optimoinnista, jotta lukija saisi käsityksen siitä, mikä on liitosalgoritmin rooli osana tietokantakyselyn käsittelyprosessia, ja miten kyselyn optimointi vaikuttaa liitosalgoritmin valintaan. Tutkimuksessa selvisi, että yksikään kolmesta yleisimmästä liitosalgoritmista ei ole kaikkien liitosoperaatioiden osalta soveltuvin vaihtoehto, vaan algoritmin soveltuvuuteen vaikuttaa liitosoperaatiossa käsiteltävien relaatioiden koko ja relaatioiden sisältämä data. Lisäksi optimoinnilla on osuutta liitosalgoritmin valintaan. This thesis presents three common algorithms (nested loop, sort-merge and hash join) which implement the join operation in relational database management systems. The aim of this thesis is to present the operating principles of these algorithms and find out which one of them is the most suitable for implementing a join between two relations. Also the processing and optimizing of the database query is briefly discussed in order to present what is the role of a join algorithm in query processing and how does query optimization affect the choosing of a join algorithm. It turns out that none of the three common algorithms is the suitable choice in every join operation and the data in relations and the size of the relations which are supposed to be joined determines which of the algorithms the suitable choice is. Also, the optimization of the database query has an effect on the choosing of the join algorithm.