Ανακαλύπτοντας την Πληροφορική: Βάσεις Δεδομένων Γεώργιος Χατζημηλιούδης Ειδικός Επιστήμονας 8 Οκτωβρίου 2015
Βάσεις Δεδομένων = is an organized collection of data (Wikipedia) Βάσεις – Πως αποθηκεύονται; – Που αποθηκεύονται; – Τι αποθηκεύεται; – Πως ανανεώνονται; – Ποιος και πως έχει πρόσβαση; Δεδομένα – Πως αναπαρίστανται; – Πως ανακτώνται; – Πως επιταχύνεται η ανάκτηση; – Πως συνδυάζονται;
Βάσεις Σχεσιακές ΒΔ Μη-σχεσιακές ΒΔ ΒΔ για Μεγάλα Δεδομένα Κατανεμημένες ΒΔ Παράλληλες ΒΔ ΒΔ στο Νέφος (Cloud)
Δεδομένα Δομές δεδομένων Αναπαράσταση δεδομένων Σύστημα αποδοτικής ευρετηρίασης Ελαχιστοποίηση πόρων για την επεξεργασία Αλφαβητικά δεδομένα, δεδομένα τοποθεσίας, αριθμητικά δεδομένα Ασφάλεια δεδομένων Εξόρυξη γνώσης από τα δεδομένα Βελτιστοποίηση ερωτημάτων
H ΔΙΚΗ ΜΟΥ ΕΡΕΥΝΑ = ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΕΡΩΤΗΜΑΤΩΝ
Παράδειγμα προβλήματος επεξεργασίας δεδομένων Δεδομένα: μια λίστα από τοποθεσίες Ερώτηση: ποιες είναι οι k κοντινότερες τοποθεσίες κάθε τοποθεσίας; Ανανέωση: κάθε 5 δευτερόλεπτα => θέλουμε αποτελέσματα σε < 5secs
Παράδειγμα προβλήματος επεξεργασίας δεδομένων Απλός τρόπος επίλυσης: – Για κάθε τοποθεσία (n) υπολογίζουμε τις αποστάσεις τις από τις υπόλοιπες τοποθεσίες (n- 1) και κρατάμε τις k κοντινότερες – Χρόνος ολοκλήρωσης: Ο(n 2 )
Παράδειγμα προβλήματος επεξεργασίας δεδομένων Έξυπνος τρόπος – Ορίζω √n=n 1/2 γειτονιές και να χωρίσω τις τοποθεσίες σύμφωνα με τις γειτονιές στις οποίες ανήκουν - O(n) – Για κάθε γειτονιά βρίσκω το ελάχιστο σύνολο από τοποθεσίες γύρω από τα όρια που χρειάζεται να ψάξω για να βρω τις k πλησιέστερες τοποθεσίες μιας οποιαδήποτε τοποθεσίας μέσα στη γειτονιά – ~Ο(n*n 1/2 ) = Ο(n 3/2 ) – Για κάθε τοποθεσία ψάχνω μόνο μέσα στη γειτονιά του και στο ελάχιστο σύνολο που υπολόγισα για τη γειτονιά – ~O(n*n/n 1/2 ) = O(n 3/2 ) – Χρόνος ολοκλήρωσης: ~Ο(n 3/2 )
Παράδειγμα προβλήματος επεξεργασίας δεδομένων Επιτάχυνση έξυπνου τρόπου – χρησιμοποιώ δίκτυο m υπολογιστών, όπου m < n / k – ορίζω m γειτονιές – σε κάθε υπολογιστή (εξυπηρετητή) αναθέτω μια γειτονιά και τα δεδομένα που πέφτουν σε αυτήν την γειτονιά (δλδ ~n/m δεδομένα) – Ο(n) – o κάθε εξυπηρετητής υπολογίζει το ελάχιστο σύνολο τοποθεσιών που πρέπει να στείλει στους εξυπηρετητές με εφαπτόμενη γειτονιά, ώστε να υπολογιστούν οι σωστές k πλησιέστερες τοποθεσίες σε κάθε εξ/τη – ~Ο(m*n/m) = O(n) – ο κάθε εξυπηρετητής υπολογίζει τις k πλησιέστερες τοποθεσίες για κάθε τοποθεσία που του ανατέθηκε – ~Ο( (n/m) 3/2 ) – Χρόνος ολοκλήρωσης: ~Ο( (n/m) 3/2 ) για ομοιόμορφη κατανομή
Ευχαριστώ για την προσοχή σας