9. Συστήματα Βάσεων Δεδομένων

Κεφάλαιο 9: Συστήματα Βάσεων Δεδομένων
9.1 Βασικές αρχές βάσεων δεδομένων
9.2 Το σχεσιακό μοντέλο
9.3 Αντικειμενοστρεφείς βάσεις δεδομένων
9.4 Διατήρηση της ακεραιότητας μιας βάσης
δεδομένων
• 9.5 Παραδοσιακές δομές αρχείων
• 9.6 Εξόρυξη δεδομένων
•
•
•
•
Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές
που συνοδεύονται με το προτεινόμενο σύγγραμμα.
1
Βάση Δεδομένων
• Βάση δεδομένων (database): Μια συλλογή δεδομένων που είναι
πολυδιάστατη, με την έννοια ότι οι εσωτερικοί σύνδεσμοι
μεταξύ των καταχωρήσεών της κάνουν τις πληροφορίες
προσπελάσιμες από πληθώρα οπτικών γωνιών
– Π.χ. Όλες οι δουλειές ενός συνθέτη, όλοι οι συνθέτες για ένα είδος
μουσικής, οι συνθέτες που γράφουν παραλλαγές κομματιών άλλων
συνθετών
• Εν αντιθέσει με το αρχείο (file) που είναι ένα μονοδιάστατο
σύστημα αποθήκευσης (παριστάνει την πληροφορία από μια
οπτική γωνία)
– Π.χ. Λίστα από συνθέτες και τα κομμάτια τους
2
Οργάνωση αρχείου σε σχέση με οργάνωση
βάσης δεδομένων
Η βάση δεδομένων παρέχει
ενοποιημένη πληροφορία
3
Σχήματα και Υπο-σχήματα
• Για να παρέχεται πρόσβαση σε διαφορετικούς χρήστες για
διαφορετική πληροφορία στη βάση δεδομένων,
δημιουργούνται τα σχήματα (schemas)
• Σχήμα: περιγραφή της δομής της βάσης δεδομένων που
χρησιμοποιείται από το λογισμικό για τη συντήρηση της βάσης
• Υπο-σχήμα (sub-schema): Περιγραφή μόνο αυτού του
τμήματος της βάσης δεδομένων που σχετίζεται με τις ανάγκες
ενός συγκεκριμένου χρήστη
– Αναφέρει διασυνδέσεις μεταξύ διαφορετικών τμημάτων της βάσης
– Καθορίζει το που επιτρέπεται πρόσβαση συγκεκριμένων τμημάτων της
βάσης και σε ποιους
– χρησιμοποιείται για αποτροπή της προσπέλασης ευαίσθητων
δεδομένων από μη εξουσιοδοτημένο προσωπικό
4
Τα νοητικά επίπεδα της υλοποίησης
μιας βάσης δεδομένων
Database
Management Systems
(DBMS)
5
Συστήματα Διαχείρισης Βάσεων
Δεδομένων
• Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ): Ένα επίπεδο
λογισμικού που χειρίζεται μια βάση δεδομένων σε απάντηση
των αιτήσεων των εφαρμογών
– Όταν το λογισμικό εφαρμογής καθορίσει τι ζητά ο χρήστης,
χρησιμοποιεί το ΣΔΒΔ για να πάρει τα αποτελέσματα
– Κρατά τις λεπτομέρειες αποθήκευσης και οργάνωσης της βάσης
μακρυά από το χρήστη (π.χ. Αν η βάση είναι αποθηκευμένη σε έναν ή
πολλούς υπολογιστές, πως είναι δομημένη εσωτερικά, κλπ)
– Έλέγχει την πρόσβαση στα δεδομένα
• Κατανεμημένη (distributed) βάση δεδομένων: Μια βάση
δεδομένων που είναι αποθηκευμένη σε πολλά μηχανήματα
– Το ΣΔΒΔ θα αποκρύψει από τους χρήστες αυτή την οργανωτική
λεπτομέρεια
• Ανεξαρτησία δεδομένων (data independence): Η ικανότητα
αλλαγής της οργάνωσης μιας βάσης δεδομένων χωρίς να
αλλάζει το λογισμικό εφαρμογών που τη χρησιμοποιεί
6
Μοντέλα Βάσεων Δεδομένων
• Μοντέλο βάσης δεδομένων: Μια νοητική, αφαιρετική εικόνα
μιας βάσης δεδομένων
• Αποκρύπτει τις πολυπλοκότητες της εσωτερικής δομής της
βάσης
• Επιτρέπει στον χρήστη να φαντάζεται την πληροφορία ως
αποθηκευμένη στην βάση με έναν συγκεκριμένο (και απλό)
τρόπο
• Π.χ. Η πληροφορία για έναν υπάλληλο μπορεί να είναι ένας
πίνακας, κάθε γραμμή αποτελείται από στοιχεία ενός
υπαλλήλου (όνομα, επώνυμο, ΑΔΤ, κλπ)
– Σχεσιακό (relational) μοντέλο βάσης δεδομένων
– Αντικειμενοστρεφές (object-oriented) μοντέλο βάσης δεδομένων
7
Σχεσιακό Μοντέλο Βάσης Δεδομένων
• Σχέση (relation): Ένας ορθογώνιος πίνακας (κάτι σαν στο
excel)
– Ιδιότητα (attribute): Μια στήλη του πίνακα, ορίζει ένα
χαρακτηριστικό
– Πλειάδα (tuple): Μια γραμμή του πίνακα, εδώ περιέχει
πληροφορία για έναν υπάλληλο
8
Σχεσιακός Σχεδιασμός
• Κομβικό σημείο σχεδιασμού είναι ο καθορισμός των σχέσεων
• Αποφυγή πολλαπλών εννοιών μέσα σε μια σχέση
– Μπορεί να οδηγήσει σε πλεονάζοντα δεδομένα
– Η διαγραφή μιας πλειάδας μπορεί επίσης να διαγράψει απαραίτητες αλλά
μη σχετιζόμενες πληροφορίες
• Παράδειγμα: Αν στην προηγούμενη σχέση θέλουμα να
συμπεριλάβουμε πληροφορία για
– την προϋπηρεσία ενός υπαλλήλου (με ιδιότητες όπως τίτλος εργασίας,
διευθυντής, κλπ)
– Αναγνωριστικό εργασίας
– Ικανότητες, κλπ
9
Μια σχέση με πλεονάζουσες πληροφορίες
• Πλεονάζουσες πληροφορίες στην βάση (επαναλαμβάνονται όποτε κάποιος υπάλληλος έχει
προϋπηρεσία ή όταν σε μια θέση έχουν εργαστεί πάνω από 1 υπάλληλοι)
• Κίνδυνος διαγραφής χρήσιμων δεδομένων όταν θέλουμε να διαγράψουμε κάτι άλλο (π.χ.
στην 2η γραμμή)
10
• Η διαγραφή μέρους μιας γραμμής χαλάει την οργάνωση της βάσης
Βελτίωση Σχεσιακού Σχεδιασμού
• Διαίρεση (decomposition): Διαίρεση των στηλών μιας σχέσης
σε δύο ή περισσότερες σχέσεις, με επανάληψη των στηλών που
απαιτούνται για τη διατήρηση των συσχετίσεων μεταξύ των
σχέσεων
– Μη απωλεστική (non-loss ή lossless) διαίρεση: Μια “σωστή”
διαίρεση που δεν οδηγεί σε απώλεια πληροφοριών
– Χρειάζεται ιδιαίτερη προσοχή στο στάδιο του σχεδιασμού
για τον καθορισμό των σωστών σχέσεων
11
Παράδειγμα Βάσης δεδομένων που
αποτελείται από τρεις σχέσεις
12
Παράδειγμα: Εντοπισμός των τμημάτων στα
οποία έχει εργαστεί ο υπάλληλος 23Y34
13
Μια σχέση και μια προτεινόμενη
διαίρεσή της
Αναζήτηση του τμήματος που δουλεύει ένας υπάλληλος: αναζήτηση στην 1η και 2η στήλη
Τι συμβαίνει όταν διαφορετικά τμήματα έχουν επαγγέλματα με τον ίδιο τίτλο;
14
Σχεσιακές Λειτουργίες
(Relational Operations)
• Select (Επιλογή): Επιλογή γραμμών
• Project (Προβολή): Επιλογή στηλών
• Join (Σύνδεση): Συγκέντρωση πληροφοριών
από δύο ή περισσότερες σχέσεις
15
Η λειτουργία SELECT (Επιλογή)
16
Η λειτουργία PROJECT (Προβολή)
17
Η λειτουργία JOIN (Σύνδεση)
18
Άλλο ένα παράδειγμα της λειτουργίας JOIN
19
Μια εφαρμογή της λειτουργίας JOIN
Σκοπός: να βρεθούν όλα τα Id υπαλλήλων με το τμήμα όπου ΤΩΡΑ εργάζεται κάθε υπάλληλος
20
Δομημένη Γλώσσα Ερωτημάτων (SQL)
• SQL: Structured Query Language
– Γλώσσα στην οποία υλοποιούνται ερωτήματα σε
βάσεις δεδομένων με το σχεσιακό μοντέλο
– MySQL: σχεσιακό σύστημα διαχείρισης βάσης
δεδομένων, πολύ διαδεδομένο
– Η Oracle χρησιμοποιεί SQL
• Λειτουργίες για το χειρισμό πλειάδων
–
–
–
–
insert
update
delete
select
21
Παραδείγματα SQL
• Μορφή επερωτήματος (query) σε ΒΔ με την SQL
• select EmplId, Dept #attributes
from ASSIGNMENT, JOB #relations
where ASSIGNMENT.JobId = JOB.JobId
and ASSIGNMENT.TermData = “*”
#(condition)
Ισοδύναμο με: JOIN (from) + SELECT (where) + PROJECT (select)
• insert into EMPLOYEE
values (‘43212’, ‘Sue A. Burt’,
’33 Fair St.’, ‘444661111’)
22
Παραδείγματα SQL (2)
• (είναι ουσιαστικά PROJECT)
• (είναι ουσιαστικά SELECT)
• (είναι ουσιαστικά SELECT + PROJECT)
• (είναι ουσιαστικά JOIN+ SELECT + PROJECT)
23
Παραδείγματα SQL (3)
• delete from EMPLOYEE
where Name = ‘G. Jerry Smith’
• update EMPLOYEE
set Address = ‘1812 Napoleon Ave.’
where Name = ‘Joe E. Baker’
24
Αντικειμενοστρεφείς Βάσεις Δεδομένων
• Αντικειμενοστρεφής βάση δεδομένων: βάση δεδομένων που
κατασκευάζεται με εφαρμογή του αντικειμενοστρεφούς
μοντέλου
– Κάθε οντότητα αποθηκεύεται ως διατηρούμενο αντικείμενο (object)
– Οι συσχετίσεις υποδηλώνονται από συνδέσμους μεταξύ των αντικειμένων
– Το ΣΔΒΔ συντηρεί τους συνδέσμους μεταξύ των αντικειμένων
• Πλεονεκτήματα:
• Ταιριάζουν με το σχεδιαστικό μοντέλο των αντικειμενοστρεφών
εφαρμογών
– Σε αντίθεση με το προστακτικό (παραδοσιακό) μοντέλο
• Στα χειριστήρια των χαρακτηριστικών μπορούν να
ενσωματωθούν ευφυείς λειτουργίες
• Μπορούν να χειρίζονται προχωρημένους τύπους δεδομένων
– Παράδειγμα: πολυμέσα
25
Οι συσχετίσεις μεταξύ των αντικειμένων σε
μια αντικειμενοστρεφή βάση δεδομένων
26
Διατήρηση της Ακεραιότητας μιας
Βάσης Δεδομένων
• Ακεραιότητα (integrity): η ιδιότητα του να μην αλλάζει η ΒΔ
είτε κατά λάθος είτε με κακόβουλους σκοπούς
• Συναλλαγή (transaction): Μια ακολουθία λειτουργιών που
πρέπει να συμβούν όλες μαζί
– Παράδειγμα: μεταφορά χρημάτων μεταξύ τραπεζικών λογαριασμών
– Ή, η αναζήτηση από την ΒΔ στοιχείων ενός υπαλλήλου
• Ημερολόγιο συναλλαγών (transaction log): Μια μη πτητική
καταγραφή των δραστηριοτήτων κάθε συναλλαγής, που
κατασκευάζεται πριν επιτραπεί στη συναλλαγή να εκτελεστεί
– Σημείο δέσμευσης (commit point): Το σημείο στο οποίο έχει
καταγραφεί η συναλλαγή στο ημερολόγιο
– Στο σημείο δέσμευσης, η ΒΔ δεσμεύεται ότι μπορεί να εκτελέσει
σωστά την συναλλαγή ακόμη και στην περίπτωση που υπάρχει
λειτουργική βλάβη
27
Διατήρηση της Ακεραιότητας μιας
Βάσης Δεδομένων (2)
• Αναίρεση (roll back): Η διαδικασία ακύρωσης μιας μερικώς
εκτελεσμένης, αποτυχημένης συναλλαγής
– Αναίρεση: αν υπάρξει βλάβη πριν φτάσουμε στο σημείο δέσμευσης
– Αναίρεση των ενεργειών που έγιναν στο μεταξύ
• Συνεχόμενη αναίρεση (cascading rollback): το φαινόμενο
της διαδοχικής αναίρεσης λειτουργιών αν η τελευταία είχε
χρησιμοποιηθεί από μια άλλη, η οποία με τη σειρά της είχε
χρησιμοποιηθεί από άλλη, κοκ
• Προβλήματα ταυτόχρονης πρόσβασης
– Πρόβλημα της λανθασμένης σύνοψης (incorrect summary problem):
Παράδειγμα, όταν μια συναλλαγή είναι στην διαδικασία μεταφοράς
ενός ποσού από έναν λογαριασμό σε άλλον, και μια άλλη
συναλλαγή προσπαθεί να υπολογίσει το σύνολο των καταθέσεων
– Πρόβλημα της χαμένης ενημέρωσης (lost update problem):
Παράδειγμα, όταν 2 συναλλαγές προσπαθούν ταυτόχρονα να
αφαιρέσουν ένα ποσό από έναν λογαριασμό.
• Θα δώσουν λανθασμένα αποτελέσματα
28
Διατήρηση της Ακεραιότητας μιας
Βάσης Δεδομένων (3)
• Για να αποτρέψουμε καταστάσεις σαν τις προηγούμενες,
ένα ΣΔΒΔ πρέπει να αναγκάζει τις συναλλαγές να
εκτελούνται μια κάθε φορά
– Χρησιμοποιούνται τεχνικές χρονοπρογρογραμματισμού όμοιες με
αυτές που είδαμε στο Κεφ.3 για τις διεργασίες
– Σε μια ΒΔ πρέπει να επιτρέπονται να εκτελούνται ταυτόχρονα
συναλλαγές που δεν επηρεάζουν η μια το αποτέλεσμα της άλλης
• Κλείδωμα (lock): αποτροπή των άλλων συναλλαγών από το
να προσπελάσουν τα δεδομένα που χρησιμοποιούνται από
μια συναλλαγή
– Τα δεδομένα που χρησιμοποιούνται από μια συναλλαγή
«μαρκάρονται»
– Κοινόχρηστο (shared) κλείδωμα: χρησιμοποιείται κατά την
ανάγνωση δεδομένων (δεν τροποποιούνται τα δεδομένα)
– Αποκλειστικό (exclusive) κλείδωμα: χρησιμοποιείται κατά την
τροποποίηση δεδομένων
– Επιτρέπεται ταυτόχρονη πρόσβαση σε συναλλαγές που ζητούν
κοινόχρηστη πρόσβαση
29
Διατήρηση της Ακεραιότητας μιας
Βάσης Δεδομένων (4)
• Αδιέξοδο αν 2 συναλλαγές που απαιτούν η καθεμία
αποκλειστική πρόσβαση σε 2 ίδια δεδομένα (μπορούν
να μπλοκάρουν η μια την άλλη)
– Αν η καθεμιά παίρνει αποκλειστική πρόσβαση σε ένα
(διαφορετικό) τμήμα δεδομένων και επιμένει να περιμένει
την άλλη
• Αποφυγή τέτοιων φαινομένων με ανάθεση
προτεραιότήτων σε συναλλαγές
• Προτεραιότητα σε παλαιότερες συναλλαγές
– Αν μια παλαιότερη συναλλαγή απαιτεί πρόσβαση σε
δεδομένα που είναι κλειδωμένα από μια νεώτερη συναλλαγή,
η τελευταία αναγκάζεται να απελευθερώσει τα δεδομένα από
το κλείδωμα, και η παλαιότερη αποκτά πρόσβαση
– Οι συναλλαγές καθώς «παλιώνουν» παίρνουν μεγαλύτερη
προτεραιότητα
30
Σειριακά Αρχεία
• Σειριακό αρχείο (sequential file): Ένα αρχείο του
οποίου τα περιεχόμενα μπορούν να διαβαστούν
μόνο με τη σειρά
– Π.χ. Αρχεία μουσικής, βίντεο, αρχεία κειμένου
– Πρέπει να αποθηκεύονται στον σκληρό δίσκο με τρόπο
που να διατηρεί την σειριακή φύση του αρχείου
• Π.χ όπως σε ένα CD ή σε διαδοχικούς τομείς του σκληρού δίσκου
– Ο αναγνώστης θα πρέπει να μπορεί να ανιχνεύσει το
τέλος αρχείου (end of file, EOF)
– Τα δεδομένα μπορεί να είναι αποθηκευμένα σε λογικές
εγγραφές, ταξινομημένες με βάση ένα πεδίο-κλειδί
• Π.χ. Αρχείο υπαλλήλων με διάφορα πεδία (όνομα, ΑΔΤ,
διεύθυνση κατοικίας κλπ)
• Μακρυά αλυσίδα χαρακτήρων που δίνουν διαδοχικά τα διάφορα
πεδία
31
Παράδειγμα Σειριακού Αρχείου
Η Η δομή ενός απλού αρχείου υπαλλήλων που έχει υλοποιηθεί ως αρχείο κειμένου
32
Μια διαδικασία για τη συγχώνευση
δύο σειριακών αρχείων
33
Συγχώνευση δύο σειριακών αρχείων
Εφαρμογή του αλγορίθμου
συγχώνευσης (Χρησιμοποιούνται
γράμματα για την
αναπαράσταση ολόκληρων
εγγραφών. Το συγκεκριμένο
γράμμα δείχνει την τιμή του
πεδίου-κλειδιού της εγγραφής.)
Οι εγγραφές στα 2 αρχεία
εισόδου υποτίθεται ότι είναι
διευθετημένες σε αύξουσα
σειρά με βάση κάποιο κοινό
πεδίο-κλειδί
Το αρχείο εξόδου έχει τις τιμές
των πεδίων-κλειδιών επίσης σε
αύξουσα σειρά
34
Ευρετηριασμένα (indexed) Αρχεία
• Ευρετήριο (index): Μια λίστα με τιμές-κλειδιά του αρχείου και
θέσεις των συσχετισμένων εγγραφών τους
– δείχνουν που είναι αποθηκευμένη η εγγραφή που περιέχει κάθε κλειδί
• Λειτουργεί ακριβώς όπως το ευρετήριο σε ένα βιβλίο για να
βρεθούν τμήματα του βιβλίου ή λέξεις-κλειδιά
• Για να βρεθεί μια πληροφορία: ανατρέχουμε στο ευρετήριο,
βρίσκουμε το αντίστοιχο κλειδί και μετά βρίσκουμε την
πληροφορία που είναι αποθηκευμένη στη θέση (μέσα στο
αρχείο) που συσχετίζεται με το κλειδί
• Π.χ. Στο αρχείο υπαλλήλων οι τιμές-κλειδιά μπορεί να είναι οι
ΑΔΤ των υπαλλήλων
35
Άνοιγμα ευρετηριασμένου αρχείου
Σημ: Χρειάζεται επιπλέον αποθηκευτικός χώρος για την διατήρηση του ευρετηρίου
36
Κατακερματισμένα Αρχεία (Hash files)
• Κατακερματισμός (hashing)
• Κάθε εγγραφή έχει ένα πεδίο-κλειδί
– Δεν απαιτείται ευρετήριο, με τον κατακερματισμό βρίσκεται η θέση της
εγγραφής απευθείας από το κλειδί
• Ο χώρος αποθήκευσης χωρίζεται σε κάδους (buckets)
– Κάθε κάδος μπορεί να αποθηκεύει αρκετές εγγραφές
• Μια συνάρτηση κατακερματισμού (hash function) υπολογίζει
έναν αριθμό κάδου για κάθε τιμή κλειδιού
• Κάθε εγγραφή αποθηκεύεται στον κάδο που αντιστοιχεί στον
κατακερματισμό του κλειδιού της
• Για να εντοπιστεί μια εγγραφή:
–
–
–
–
εφαρμόζεται η συνάρτηση κατακερματισμού στο πεδίο-κλειδί
προκύπτει ο αριθμός κάδου
οδηγούμαστε σε αυτόν τον κάδο
βρίσκουμε την εγγραφή ανάμεσα στις εγγραφές αυτού του κάδου
37
Παράδειγμα κατακερματισμού
Κατακερματισμός της τιμής πεδίου κλειδιού 25Χ3Ζ σε έναν από 41 κάδους
Αποτέλεσμα της συνάρτησης
κατακερματισμού
38
Παράδειγμα κατακερματισμού (2)
39
Κατακερματισμός (2)
• Όταν ο κατακερματισμός εφαρμόζεται στον σκληρό δίσκο,
μιλάμε για αρχείο κατακερματισμού (hash file)
• Όταν ο κατακερματισμός εφαρμόζεται στην κύρια μνήμη,
μιλάμε για πίνακα κατακερματισμού (hash table)
• Κατακερματισμός χρησιμοποιείται και για αυθεντικοποίηση
(authentication) στο ίντερνετ
• Αυθεντικοποίηση: η επιβεβαίωση ότι ο αποστολέας ενός
μηνύματος είναι πράγματι αυτός που διατείνεται ότι είναι
– Σύστημα αυθεντικοποίησης MD5
40
Σχεδίαση συνάρτησης κατακερματισμού
• Γιατί στην συνάρτηση κατακερματισμού διαιρούμε με το 41;
• Για να έχουμε αποδοτική αποθήκευση πρέπει οι εγγραφές να
κατανεμηθούν έτσι ώστε παρόμοιος αριθμός εγγραφών να
ανήκουν σε κάθε κάδο
– Διαφορετικά, υπάρχει το φαινόμενο της συσταδοποίησης (clustering)
– Πολλές εγγραφές συγκεντρώνονται σε λίγους κάδους (ή και σε έναν κάδο)
– Η αναζήτηση μιας εγγραφής σε έναν κάδο καθίσταται επίπονη
• Αν διαιρούσαμε με το 40
• Αν οι τιμές-κλειδιά στο αρχείο μας ήταν πολλαπλάσια του 5 θα
προέκυπτε ότι αυτοί θα αποθηκεύονταν μόνο στους κάδους 0, 5,
10, 15, 20, 25, 30, 35
• Επιλέγουμε να διαιρούμε με πρώτους (prime) αριθμούς για να
μειώσουμε το ενδεχόμενο συσταδοποίησης
41
Συγκρούσεις στον Κατακερματισμό
• Σύγκρουση (collision): Η περίπτωση να κατακερματίζονται δύο
κλειδιά στον ίδιο κάδο
• Παράδειγμα: Εισαγωγή εγγραφών σε 41 κάδους με τυχαίο τρόπο (όχι
με το υπόλοιπο που είδαμε πριν)
–
–
–
–
–
–
Αρχικά όλοι οι κάδοι είναι αδειοι
Η 1η εγγραφή μπαίνει σε άδειο κάδο
Η 2η εγγραφή μπαίνει σε άδειο κάδο με πιθανότητα 40/41
Η 3η εγγραφή μπαίνει σε άδειο κάδο με πιθανότητα 39/41
...
Η 8η εγγραφή μπαίνει σε άδειο κάδο με πιθανότητα 34/41
• Πιθανότητα και οι 8 εγγραφές να μπουν σε άδειο κάδο = 1 x (40/41) x
(39/41) x (38/41) x … x (34/41) = 0.482
– Στις 8 πρώτες εισαγωγές θα έχει συμβεί μια τουλάχιστον σύγκρουση με
πιθανότητα 52%
• Πρόβλημα όταν ο παράγοντας φορτίου (load factor) δηλαδή ο λόγος
(# εγγραφών )/ (συνολική χωρητικότητα) είναι πάνω από 75%
• Λύση: αύξηση του αριθμού των κάδων και εκ νέου κατακερματισμός
42
Εξόρυξη Δεδομένων
• Εξόρυξη δεδομένων (data mining): Ο τομέας της επιστήμης
υπολογιστών που ασχολείται με την ανακάλυψη προτύπων
(patterns), τάσεων (trends) και κρυμμένων ή άγνωστων
συμπερασμάτων (inference) σε συλλογές δεδομένων
– Εφαρμογές: Κοινωνικά δίκτυα, συστήματα συστάσεων, παγκόσμιος ιστός,
οικονομία, βιοπληροφορική, ασφάλεια υπολογιστών
– Στις μέρες μας είναι ένας από τους πιο εξελισσόμενους τομείς της
επιστήμης λόγω των Μεγάλων Δεδομένων (Big Data)
– Διαφέρει από τον τομέα των ΒΔ
• Αποθήκη δεδομένων (data warehouse): Μια στατική συλλογή
δεδομένων απ’ όπου θα γίνει η εξόρυξη
43
Η διαδικασίας της ανακάλυψης γνώσης
Αποτίμηση
προτύπων
Εξόρυξη δεδομένων- πυρήνας
της διαδικασίας ανακάλυψης γνώσης
Εξόρυξη Δεδομένων
Επιλογή δεδομένων με
βάση την επιθυμητή
εργασία
Αποθήκες Δεδομένων
Επιλογή
Data Cleaning
Εκκαθάριση δεδομένων
Ενοποίηση δεδομένων
ΒΔ
44
Γιατί όχι παραδοσιακή ανάλυση δεδομένων ;
• Εξαιρετικά μεγάλος όγκος δεδομένων
– Οι αλγόριθμοι πρέπει να είναι υψηλής κλιμάκωσης ώστε να
μπορούν να διαχειρίζονται tera-bytes από δεδομένα
• Υψηλών διαστάσεων δεδομένα
• Υψηλής πολυπλοκότητας δεδομένα
– Ροές δεδομένων (Data streams) και δεδομένα αισθητήρων
– Χρονολογικές σειρές (Time-series data), χρονικά δεδομένα,
ακολουθιακά δεδομένα (sequential data)
– Δομημένα δεδομένα, γραφήματα, κοινωνικά δίκτυα (social
networks)
– Ετερογενείς βάσεις δεδομένων
– Χωρικά, χωροχρονικά, πολυμέσα, κείμενο
45
Στρατηγικές Εξόρυξης Δεδομένων
• Περιγραφή κλάσεων (class description): αναγνώριση ιδιοτήτων
που χαρακτηρίζει μια ομάδα δεδομένων
– Π.χ. Αναγνώριση χαρακτηριστικών των ανθρώπων που αγοράζουν Smart
• Διάκριση κλάσεων (class discrimination): αναγνώριση ιδιοτήτων
που ξεχωρίζουν δυο ή περισσότερες ομάδες δεδομένων
– Π.χ. Αναγνώριση χαρακτηριστικών που ξεχωρίζουν αυτούς που
αγοράζουν καινούρια από αυτούς που αγοράζουν μεταχειρισμένα
αυτοκίνητα
• Ανάλυση συστάδων (cluster analysis): ανακάλυψη κλάσεων δηλ.
ανακάλυψη ιδιοτήτων δεδομένων που οδηγούν σε ομαδοποίηση
– Π.χ. Άτομα 4-10 ετών και 25-40 ετών είδαν μια φωτογραφική μηχανή
• Ανάλυση συσχετισμών (association analysis): εύρεση
συσχετισμών ανάμεσα σε ομάδες δεδομένων
– Π.χ. Πελάτες που αγοράζουν πατατάκια, αγοράζουν και κοκα-κόλα
46
Στρατηγικές Εξόρυξης Δεδομένων (2)
• Ανάλυση αποκλίσεων (outlier analysis): Αναγνωρίζει δεδομένα
που δεν εμπίπτουν στην κανονικότητα των υπολοίπων
– Π.χ. Για αναγνώριση λαθών σε συλλογές δεδομένων, για ανίχνευση
υποκλοπής πιστωτικής κάρτας, για τρομοκρατία
• Σειριακή ανάλυση προτύπων (sequential pattern analysis):
Αναγνώριση τάσεων κατά τη διάρκεια του χρόνου
– Π.χ. Συστήματα μετοχών, αναγνώρισή τάσεων (trend detection) σε
κοινωνικά δίκτυα
47
Κατασκευή Μοντέλου
Αλγόριθμος
Κατηγοριοποίησης
Εκπαιδευτικά
Δεδομένα
(training
data)
NAME
Mike
Mary
Bill
Jim
Dave
Anne
Κατηγοριοποιητής
(classifier)
(Μοντέλο)
RANK
YEARS TENURED
Assistant Prof
3
no
Assistant Prof
7
yes
Professor
2
yes
Associate Prof
7
yes
Assistant Prof
6
no
Associate Prof
3
no
48
IF rank = ‘professor’
OR years > 6
THEN tenured = ‘yes’
Κατασκευή Μοντέλου (2)
Κατηγοριοποιητής
(classifier)
Δεδομένα για
έλεγχο (test
data)
Άγνωστα δεδομένα
(Jeff, Professor, 4)
NAME
Tom
Merlisa
George
Joseph
RANK
YEARS TENURED
Assistant Prof
2
no
Associate Prof
7
no
Professor
5
yes
Assistant Prof
7
yes
49
Tenured?
Κοινωνικές επιπτώσεις της τεχνολογίας
των βάσεων δεδομένων
● Προβλήματα:
– Συλλογή προσωπικών δεδομένων σε μαζική κλίμακα
● Συνήθως χωρίς τη γνώση και την οικειοθελή συναίνεση των
εμπλεκόμενων ατόμων
– Τα δεδομένα μπορεί να χρησιμοποιηθούν από τρίτους που ο
χρήστης που τα δίνει ούτε καν τους γνωρίζει
• Π.χ. Δεδομένα που συλλέγονται από Google, Yahoo!, Amazon, κλπ
• Μπορούν να πουληθούν σε τρίτους με σκοπό κυρίως την στοχευμένη
διαφήμιση (targeted advertising)
– Η συγχώνευση δεδομένων παράγει νέες, πιο διεισδυτικές
πληροφορίες
– Ζητήματα Ιδιωτικότητας (privacy)
● Κυρώσεις:
– Οι υπάρχουσες ποινικές κυρώσεις είναι αρκετά
αναποτελεσματικές.
– Η «αρνητική δημοσιότητα» (negative publicity) μπορεί ναι
είναι πιο αποτελεσματική αποτρεπτική τακτική
50
Παραδείγματα Κινδύνων
Ιδιωτικότητας Δεδομένων
Περίπτωση
Προφίλ χρήστη
Εμπλεκόμενοι
Σκοπός
Πλοήγηση στο web
Συμπεριφορά
πλοήγησης
(επισκεψιμότητα
ιστοσελίδων,
συχνότητα, κκλ)
Google, Yahoo!,
Facebook, Twitter,
Amazon, …
Στοχευμένη διαφήμιση
Θέση (κινητού)
Θέσεις που πέρασε το
κινητό, διάρκεια
διαμονής, τροχιά
Πάροχοι κινητής
τηλεφωνίας,
κατασκευαστές
εξοπλισμού για κινητά
(π.χ. Apple, Samsung…)
Υπηρεσίες με βάση τη
θέση (Location-based
services), διαφημίσεις
(location-based ads,
εντοπισμός στο χάρτη,
ειδοποιήσεις, κλπ
Έξυπνοι μετρητές ηλ.
Ενέργειας
Προφίλ κατανάλωσης
ενέργειας, συσκευές
ανοιχτές, κλπ
Πάροχοι ηλ. Ενέργειας
Υπηρεσίες όπως
demand response,
εκπτώσεις,
διαφημίσεις
Συστήματα Συστάσεων
Βαθμολόγηση
αντικειμένων (ταινίες,
βιβλία, ξενοδοχεία)
Online αγορές
(Amazon), πάροχοι
περιεχομέμου (Spotify,
Netflix),…
Συστάσεις
αντικειμένων στο
χρήστη
51
Βασικές Ερωτήσεις
• Μοντελοποίηση ενός προφίλ χρήστη (μπορεί να είναι και
χρονικά μεταβαλλόμενο)
• Ποσοτικοποίηση της ιδιωτικότητας
• Σημασία της διατήρησης της ιδιωτικότητας και
ποσοτικοποίησή της
• Μέτρηση ποιότητας προσωποποιημένης υπηρεσίας (π.χ.
Web αναζήτηση, ιατρική κλπ)
• Τι μπορεί να κάνει ο χρήστης εκτός από να μην δηλώσει
καθόλου το προφίλ του;
52
Παραδείγματα προφίλ χρήστη
Πλοήγηση στο διαδίκτυο
P = (w1, …wt) : κατηγορίες ιστοσελίδων
που επισκέπτεται ο χρήστης
Υπηρεσίες με βάση την κινητή θέση
P = (L(1),L(2),…L(t),..): Τοποθεσίες που
Πέρασε το κινητό
Έξυπνοι μετρητές
P=(a1,…an) : Κατανάλωση ηλ. συσκευών
Συστήματα συστάσεων
P=(a1,…an) : Βαθμολόγηση
53
Αγορές Μεγάλων δεδομένων
• Κοινωνικά μέσα (Social media), Κοινωνικά Δίκτυα (Social Networks) ως
πηγές μεγάλου όγκου δεδομένων (Big Data)
• Η ιδιωτικότητα και η πληροφορία μπορούν να θεωρηθούν εμπόρευμα
και να διακινηθούν σαν σε αγορές
• Οι χρήστες θυσιάζουν την ιδιωτικότητά τους και φανερώνουν
προσωπική πληροφορία
– Θέλουν να πληρωθούν για αυτό
• Αγορά για προσωπικά δεδομένα: Οι εταιρείες και οι ενδιάμεσοι που
συλλέγουν και μεταπωλούν δεδομένα
54