Database Solutions to Sports Applications
Abstract
Hver eneste dag genereres det enorme mengder data. Det estimeres at vi genererer 2.5 milliarder gigabyte med data hver eneste dag. Det har resultert i at en ny trend har utviklet seg, en trend som har brakt med seg nye metoder og teknologier innen lagring, prosessering, søk og visualisering av data. Idrett er et felt som har tatt i bruk mange av disse metodene og teknologiene. I dag brukes de blant annet til å forbedre en idrettsutøvers ytelse og til å analysere motstandere. En annen bransje som også har tatt i bruk disse metodene er pengespillbransjen. De bruker datanalyse til å forutse resultater og produsere odds til idrettsarrangement.
I denne avhandlingen utvikler vi en applikasjon som analyserer sportsdata levert av et eksternt API. Dataen hentes fra API-et og lagres i to forskjellige databaser, en grafdatabase og en relasjonsdatabase. Applikasjonen benyttes så til å undersøke hvilken database som egner seg best til analyse av denne type data. Vi benyttet oss av grafdatabasen til Neo4j og Oracle sin relasjonsdatabase MySQL.
Resultatene våre indikerer at relasjonsdatabaser yter bedre for små datamengder, men ettersom antall poster passerer en viss størrelse, vil en grafdatabase yte bedre. Under våre forsøk gikk den grensen ved cirka 1670 poster. Denne grensen vil endre seg avhengig av datasettet sin struktur, men vår konklusjon er at det vil være en ytelsesmessing fordel å lagre dataen i en grafdatabase, i stedet for en relasjonsdatabase for vår type datanalyse. The amount of data generated today is enormous. It is estimated that we generate 2,5 billion gigabytes of data every day. As a result of this, new trends in data analysis have emerged along with new methods and technologies within data storage, processing, management, search and visualization. Sports is a field that is known to use data analysis in order to improve athletes’ performance and to analyze competitors. In addition, bookmakers rely heavily on data analysis to predict results and provide betting odds.
In this thesis, we developed an application that analyzes sports data provided by an external API. The data retrieved from the API is stored in two different databases, a graph database and a relational database. The application is then used to determine which database technology performs best for the given use case of analyzing sports data. For the graph database we used Neo4j and for the relational database we used MySQL by Oracle.
Our results suggest that relational databases perform better for small datasets, but as soon as the number of records surpasses a certain size, graph databases perform better. For our experiments, that size was approximately 1670 records. That size will differ depending upon the exact structure of the dataset, but our conclusion is that for larger datasets, there will be a performance advantage in storing the data in a graph database rather than in a relational database for our kind of data analysis.