Στην παρούσα διπλωματική εργασία μελετάται το πρόβλημα αναζήτησης δεδομένων με βάση το περιεχόμενό τους και εξετάζεται η αποθήκευση των metadata των αρχείων με τρόπους που ευνοούν την γρήγορη απόκριση της αναζήτησης. Ο εντοπισμός δεδομένων με βάση το περιεχόμενό τους γίνεται με χρήση των metadata, αρχείων που περιέχουν την περιγραφή του περιεχομένου τους. Τα αρχεία στα οποία θα εκτελεστεί η αναζήτηση συνδυάζονται με metadata που υπακούν σε διάφορα πρότυπα περιγραφής περιεχομένου με γνωστότερο το MPEG-7. Τα αρχεία βρίσκονται αποθηκευμένα σε repositories, ενώ για τα metadata τους επιλέγεται κατάλληλος μετασχηματισμός και αποθήκευσή τους, ανάλογα με τον τύπο της υπηρεσίας που προσφέρει την εφαρμογή αναζήτησης και της διαθέσιμης υποδομής. Ευρέως χρησιμοποιούνται σκληροί δίσκοι και σχεσιακές βάσεις δεδομένων για την διατήρηση των metadata, πρακτικές που παρουσιάζουν διάφορα προβλήματα στην ταχύτητα εκτέλεσης της αναζήτησης, καθώς για την εξέταση των metadata απαιτούνται εργαλεία XML Parsing και εφαρμογή πολλών πολύπλοκων JOINS. Η διπλωματική αυτή προσπαθεί να λύσει το παραπάνω πρόβλημα με εφαρμογή εναλλακτικών τρόπων αποθήκευσης, και συνεπώς εκτέλεσης της αναζήτησης, με χρήση των σύγχρονων τεχνολογιών cloud. Συγκεκριμένα μελετάται ο τρόπος αποθήκευσης και αναζήτησης περιεχομένου σε 3D αρχεία, τα metadata των οποίων υπακούν στα πρότυπα MPEG-7, MPEG-21 και X3D. Καθώς τα πρότυπα αυτά χαρακτηρίζονται από πολλές ελευθερίες στον τρόπο περιγραφής του περιεχομένου, η αναπαράστασή τους σε σχεσιακές βάσεις δεδομένων απαιτεί χρήση πολλών διαφορετικών tables και διατήρηση πολλών relations για την πλήρη αναπαράσταση των μεταξύ τους σχέσεων. Για το λόγο αυτό επιλέχθηκε για την αποθήκευση των metadata η NoSQL βάση δεδομένων MongoDB, η οποία επιτρέπει την ευέλικτη και χωρίς περιορισμούς αναπαράσταση των metadata σε αρχεία τύπου BSON, τα οποία διατηρούν τα δεδομένα τους σε key/value pairs. Ένας ακόμα λόγος που επιλέχθηκε η MongoDB είναι το άμεσο scalability που προσφέρει με προσθήκη κόμβων στο MongoDB cluster, κάτι που σε σχεσιακές βάσεις δεδομένων αποτελεί πολύπλοκη διαδικασία και απαιτεί μεγάλη μεταφορά δεδομένων στο δίκτυο. Η αναζήτηση εκτελείται με εφαρμογή MongoDB Queries, προς πλήρη εκμετάλλευση των βελτιστοποιημένων τεχνικών που έχουν αναπτυχθεί ειδικά για το σκοπό αυτό. Παράλληλα υλοποιήθηκε μια μέθοδος αναζήτησης ενός query που απαιτεί aggregation των δεδομένων με εφαρμογή του προγραμματιστικού μοντέλου MapReduce. Στόχος είναι η συγκριτική μελέτη των σύγχρονων τεχνικών αναζήτησης περιεχομένου και της νέας προσέγγισης που προτείνεται από την διπλωματική αυτή, προς ανάδειξη των καταλληλότερων τεχνικών για κάθε είδους εφαρμογή που υλοποιεί αναζήτηση αρχείων με βάση το περιεχόμενό τους.
The presented diploma thesis deals with the issues raised by content-based data search and examines different approaches on storing metadata in order to achieve fast response time. Locating data according to their content is done by using their metadata, term that refers to the description of the content of the data, which obey in various standards of describing content. One of the most known standards for describing multimedia content is MPEG-7, introduced by the MPEG expert working group. Search regards files that are stored in repositories, while their metadata are appropriately modified and stored according to the needs and available infrastructure of the service provider. Most commonly metadata are stored in hard drives in a form of directory-hierarchy and alternatively within relational databases. Both practices have issues regarding the response time of the search, due to the XML Parsing tools used to access the metadata and to the complicated structure that is required to perform the search. This diploma thesis attempts to solve these problems by applying alternative methods of storing the metadata and therefore by using different, most advanced tools to perform the search, with the use of modern cloud technologies. The search will be performed on 3D object files, whose metadata obey to the MPEG-7, MPEG-21 and X3D standards. These standards are characterized by many freedoms regarding the way of representing the description of the content of the data. Therefore the use of relational databases would require the maintenance of a large number of tables in conjunction with the complex in between relations to fully represent the structure of the metadata. To address this problem the NoSQL Database MongoDB is used for the storing of the metadata. MongoDB uses BSON files, which store their data in key/value pairs. This kind of format allows the representation of complex schemes in the simplest and most flexible ways. Another reason for choosing MongoDB is the easy and immediate scalability provided, simply by adding compute nodes to the MongoDB cluster. With relational databases such an addition would require large amount of data to be transferred through the network in order to perform even the simplest tasks. The search is performed with the use of MongoDB queries, in order to fully exploit the advantages of using the optimized internal techniques developed by MongoDB. Finally, in order to tackle the problems issued by applying aggregation functions to relational databases, a technique that conforms to the MapReduce programming model was developed. Goal is the comparative study of current ways to perform content-based search with the new approach suggested by this diploma thesis, in order to highlight the advantages of each technique according to the type of provided service that performs content-based search.