Η χρήση NoSQL λύσεων σε σύγχρονες εφαρμογές: Μελέτη περίπτωσης Neo4j.
Using NoSQL systems in modern applications: A Neo4j case study.
Προβολή/ Άνοιγμα
Ημερομηνία
2019-10-07Συγγραφέας
Χατζηιωάννου, Παναγιώτης-Ιωσήφ
Chatziioannou, Panagiotis-Iosif
Μεταδεδομένα
Εμφάνιση πλήρους εγγραφήςΕπιτομή
Η παρούσα πτυχιακή εργασία μελετά τη χρήση NoSQL συστημάτων διαχείρισης και οργάνωσης κοινωνικών δεδομένων. Συγκεκριμένα η εργασία μελετά το σύστημα διαχείρισης δεδομένων γράφων Neo4j, το θεμελιώδης μοντέλο δεδομένων του, και την γλώσσα υποβολής ερωτημάτων την οποία υποστηρίζει. Η αναφορά αρχίζει με μια πλήρης ανάλυση των διαφορετικών NoSQL μοντέλων δεδομένων που έχουν αναπτυχθεί τα τελευταία χρόνια επικεντρώνοντας στις βάσεις δεδομένων γράφων και το μοντέλο property graph. Για την αποτελεσματική κατανόηση των βασικών εννοιών του property graph, καταδείχθηκαν απλά παραδείγματα σεναρίων ανάκτησης δεδομένων.
Στόχος της έρευνας είναι να αναδείξει το πώς μπορεί να χρησιμοποιηθεί μια βάση δεδομένων γράφων για την επίλυση σύνθετων προβλημάτων διαχείρισης δεδομένων τα οποία αντικατοπτρίζουν αληθινές περιπτώσεις χρήσης. Αυτό επιτυγχάνεται με την ανάπτυξη μίας πρωτότυπης εφαρμογής που σχετίζεται με κλάδους ιδιαίτερου ενδιαφέροντος όπως είναι ο τουρισμός, ο πολιτισμός ή/και αγροδιατροφικός τομέας. Για λόγους επίδειξης, η εφαρμογή βασίζεται σε μικρά σύνολα υποθετικών δεδομένων τα οποία ωστόσο επαρκούν για την παρουσίαση τόσο του είδους των προβλημάτων των οποίων προκύπτουν, όσο και των λύσεων που ευνοούνται από τη Neo4j και τους προηγμένους μηχανισμούς ερωτημάτων τροχιάς οι οποίοι προορίζονται να υποστηρίξουν ορισμένα από τα σύνθετα σενάρια ανάκτησης δεδομένων.
Το γεγονός ότι χρησιμοποιήθηκαν μικρά σύνολα δεδομένων δημιουργώντας έναν σχετικά μικρό γράφο, επιτρέπει περαιτέρω βελτιώσεις τόσο στις πρακτικές όσο και στις θεωρητικές πτυχές της μελέτης. Πολλά ενδιαφέροντα ερωτήματα προκύπτουν όταν ο όγκος των δεδομένων είναι αρκετά μεγάλος. Μελλοντικές εργασίες θα μπορούσαν να εξετάσουν τον τρόπο με τον οποίο ένας γράφος πρέπει να δομηθεί για την αποτελεσματική υποστήριξη μεγάλων όγκων δεδομένων. Είναι εφικτός ο διαχωρισμός ενός γράφου έτσι ώστε να επιτευχθεί η αποτελεσματική λειτουργία του σε ένα κατανεμημένο περιβάλλον και πως αυτό θα επηρέαζε τα ερωτήματα τροχιάς.
Η θεωρητική μελέτη της εργασίας και η πρακτική ανάπτυξη της εφαρμογής έφερε σε επαφή των φοιτητή με μια πληθώρα διαφορετικών τεχνολογιών βάσεων δεδομένων της τρέχουσας τεχνολογικής τροχιάς που επιλύουν σύνθετα προβλήματα διαχείρισης δεδομένων, αλλά και με ένα σύνολο βιβλιοθηκών και frameworks που αφορούν την ανάπτυξη λογισμικού. Αποκτήθηκαν νέες δεξιότητες όσον αφορά την επίλυση προβλημάτων τόσο στον σχεδιασμό όσο και στην ανάπτυξη σύγχρονων διαδικτυακών εφαρμογών. The present thesis is concerned with the use of NoSQL systems for the development of data-intensive social applications. Specifically, the thesis elaborates on the Neo4j graph data storage, its underlying data model and its querying language. The report begins with a thorough analysis of the different NoSQL technologies and their data models focusing on graph databases and the property graph data model. Basic examples were demonstrated to understand its core concepts.
The specific goal of the work presented here within is to study how a graph database can be used to store and manage data that reflect real life use cases. This is done by referring to a prototypical implementation of an application broadly related to the domains of tourism, culture and / or agri-food. For purposes of illustration we rely on small hypothetical datasets which however suffice to showcase both the type of problems arising as well as the solutions favored by Neo4j and the advanced path querying mechanisms intended to support some of the complex data retrieval scenarios.
The fact that we used small datasets on a relatively small graph allows for further improvements in the practical as well as the theoretical aspects of the study. Multiple questions are of interest in cases where the volume of data is significant. Future work can contemplate on how a graph can be structured to efficiently support large volumes of data. Can a graph be partitioned to work in a distributed environment and how would that affect the path queries?
The development of this project exposed me to a plethora of different state of the art database technologies that solve complex data storage problems as well as software development libraries and frameworks. New problem-solving skills were acquired in both designing and developing modern scalable web applications.
Συλλογές
Οι παρακάτω άδειες σχετίζονται με αυτό το τεκμήριο:
Αυτός ο ιστότοπος χρησιμοποιεί cookies για την λειτουργία του.
Συνέχεια
Περισσότερες πληροφορίες