Βάσεις δεδομένων Π. Φιτσιλής pfitsilis@gmail.com
Στόχοι In this chapter, you will learn: Διαφορά data και information Τι είναι database, τα είδη, και πως βοηθούνε στη λήψη αποφάσεων Η σημασία database design Από τι αποτελείται μια database 2
3
Εισαγωγή Οι καλές αποφάσεις απαιτούν καλές πληροφορίες που προέρχονται από ακατέργαστα γεγονότα Τα δεδομένα διαχειρίζονται πιο αποτελεσματικά όταν αποθηκεύονται σε μια βάση δεδομένων Οι βάσεις δεδομένων εξελίχθηκαν από συστήματα αρχείων υπολογιστή Η κατανόηση των χαρακτηριστικών του συστήματος αρχείων είναι σημαντική 4
Πόσα δεδομένα παράγονται καθημερινά? 5
6
Κάθε λεπτό 7
Γιατί Databases? Οι βάσεις δεδομένων λύνουν πολλά από τα προβλήματα που αντιμετωπίζουμε στη διαχείριση δεδομένων Χρησιμοποιούνται σχεδόν παντού: Επιχείρηση Έρευνα Διοίκηση Είναι σημαντικό να κατανοήσετε πώς λειτουργούν οι βάσεις δεδομένων και πως αλληλοεπιδρούν με άλλες εφαρμογές 8
Δεδομένα Δεδομένα (data) είναι τα γεγονότα που γνωρίζουμε και μπορούμε να καταγράψουμε
Πληροφορίες Πληροφορία (information) είναι δεδομένα τα οποία έχουν επεξεργαστεί σε μία μορφή που είναι χρήσιμη για τους τελικούς χρήστες.
Επεξεργασίες Δεδομένων Η επεξεργασία των δεδομένων πολύ συχνά περιλαμβάνει τις εξής πράξεις: Καταμέτρηση Αριθμητικές πράξεις Σύγκριση Ταξινόμηση Ομαδοποίηση
Εξαγωγή πληροφορίας από δεδομένα Τα δεδομένα: Οι οφειλέτες μίας επιχείρησης Ονοματεπώνυμο Πωλητής που τον εξυπηρετεί Χατζής Ιωάννη Άδάμου 3.400 Ανδρέου Γεώργιος Αδάμου 4.500 Δημητρίου Τάσος Βασιλείου 1.200 Αλεξίου Ορέστης Πέτρου 500 Ιακώβου Δήμητρα Βασιλείου 3.400 Λευκή Γεωργία Βασιλείου 4.000 Διαμαντή Βασιλική Πέτρου 3.200 Ποσό οφειλής
Πληροφορία από καταμέτρηση Το πλήθος των πελατών (7) που οφείλουν στην επιχείρηση βρίσκεται με καταμέτρηση Ονοματεπώνυμο Πωλητής που τον εξυπηρετεί 1 Χατζής Ιωάννη Άδάμου 3.400 2 Ανδρέου Γεώργιος Αδάμου 4.500 3 Δημητρίου Τάσος Βασιλείου 1.200 4 Αλεξίου Ορέστης Πέτρου 500 5 Ιακώβου Δήμητρα Βασιλείου 3.400 6 Λευκή Γεωργία Βασιλείου 4.000 7 Διαμαντή Βασιλική Πέτρου 3.200 Ποσό οφειλής
Πληροφορία από άθροιση Το συνολικό ποσό που χρωστούν οι πελάτες (20.200 ) προκύπτει με άθροιση του ποσού οφειλής Ονοματεπώνυμο Πωλητής που τον εξυπηρετεί Χατζής Ιωάννη Άδάμου 3.400 Ανδρέου Γεώργιος Αδάμου 4.500 Δημητρίου Τάσος Βασιλείου 1.200 Αλεξίου Ορέστης Πέτρου 500 Ιακώβου Δήμητρα Βασιλείου 3.400 Λευκή Γεωργία Βασιλείου 4.000 Διαμαντή Βασιλική Πέτρου 3.200 Συνολικό ποσό: 20.200 Ποσό οφειλής
16 Πληροφορία από αριθ. πράξεις Ο μέσος όρος του ποσού οφειλής προκύπτει με τη διαίρεση 20.200/7 Ονοματεπώνυμο Πωλητής που τον εξυπηρετεί 1 Χατζής Ιωάννη Άδάμου 3.400 2 Ανδρέου Γεώργιος Αδάμου 4.500 3 Δημητρίου Τάσος Βασιλείου 1.200 4 Αλεξίου Ορέστης Πέτρου 500 5 Ιακώβου Δήμητρα Βασιλείου 3.400 6 Λευκή Γεωργία Βασιλείου 4.000 7 Διαμαντή Βασιλική Πέτρου 3.200 Συνολικό ποσό 20.200 Ποσό οφειλής
17 Πληροφορία από σύγκριση Οι μεγάλοι οφειλέτες (δηλ. οι πελάτες που οφείλουν άνω των 3.000 ) προκύπτουν με σύγκριση του ποσού οφειλής με το 3.000 Ονοματεπώνυμο Πωλητής που τον εξυπηρετεί Χατζής Ιωάννη Άδάμου 3.400 Ανδρέου Γεώργιος Αδάμου 4.500 Δημητρίου Τάσος Βασιλείου 1.200 Αλεξίου Ορέστης Πέτρου 500 Ιακώβου Δήμητρα Βασιλείου 3.400 Λευκή Γεωργία Βασιλείου 4.000 Διαμαντή Βασιλική Πέτρου 3.200 Ποσό οφειλής
18 Πληροφορία από ομαδοποίηση και άθροιση σε κάθε ομάδα Το συνολικό ποσό οφειλής ανά πωλητή προκύπτει από ομαδοποίηση που γίνεται με βάση τον πωλητή και άθροιση μέσα σε κάθε Ονοματεπώνυμο ομάδα Πωλητής που τον εξυπηρετεί Ποσό οφειλής Χατζής Ιωάννη Αδάμου 3.400 Ανδρέου Γεώργιος Αδάμου 4.500 Δημητρίου Τάσος Βασιλείου 1.200 Ιακώβου Δήμητρα Βασιλείου 3.400 Λευκή Γεωργία Βασιλείου 4.000 Διαμαντή Βασιλική Πέτρου 3.200 Αλεξίου Ορέστης Πέτρου 500 Η ομάδα πελατών του Αδάμου Η ομάδα πελατών του Βασιλείου Η ομάδα πελατών του Πέτρου Οφείλει 8.000 Οφείλει 8.600 Οφείλει 3.700
Χαρακτηριστικά 19 Για να είναι χρήσιμα τα δεδομένα και οι πληροφορίες πρέπει να είναι: Ακριβή Πλήρη Σχετικά Έγκαιρα
Data vs. Information Τα δεδομένα (data) είναι ακατέργαστα γεγονότα Οι πληροφορίες (information) είναι το αποτέλεσμα της επεξεργασίας δεδομένων προκειμένου να εξάγουμε συμπεράσματα Οι πληροφορίες χρειάζονται ένα πλαίσιο για να αποκτήσουν νόημα Τα ακατέργαστα δεδομένα πρέπει να μορφοποιηθούν για αποθήκευση, επεξεργασία και παρουσίαση Τα δεδομένα είναι η βάση της πληροφορίας. Η πληροφορία είναι η βάση της γνώσης 20
Εισαγωγή στις Database Βάση δεδομένων: κοινή, ολοκληρωμένη δομή υπολογιστή που αποθηκεύει μια συλλογή από: Δεδομένα τελικού χρήστη: ακατέργαστα γεγονότα που παρουσιάζουν ενδιαφέρον για τον τελικό χρήστη Μεταδεδομένα: δεδομένα σχετικά με τα δεδομένα Παρέχει περιγραφή των χαρακτηριστικών δεδομένων και των σχέσεων στα δεδομένα Συμπληρώνει και επεκτείνει την αξία των δεδομένων 21
Σύστημα διαχείρισης βάσεων δεδομένων Σύστημα διαχείρισης βάσεων δεδομένων (DBMS): συλλογή προγραμμάτων Σχεσιακό Σύστημα διαχείρισης βάσεων δεδομένων (RDBMS): συλλογή προγραμμάτων Διαχειρίζεται τη δομή και ελέγχει την πρόσβαση στα δεδομένα 22
Ποιες είναι οι μεγαλύτερες ΒΔ στον κόσμο Μεγαλύτερες βάσεις δεδομένων Library of Congress CIA AMAZON YouTube ChoicePoint Sprint Google AT&T World Data Centre for Climate 23
O ρόλος και τα πλεονεκτήματα μιας DBMS Το DBMS είναι ο ενδιάμεσος μεταξύ του χρήστη και της βάσης δεδομένων Η δομή της DBMS είναι μια συλλογή αρχείων Ο χρήστης μπορεί να έχει πρόσβαση μόνο σε αρχεία μέσω της DBMS Η DBMS επιτρέπει την κοινή χρήση δεδομένων Η DBMS ενσωματώνει τις απόψεις πολλών χρηστών για τα δεδομένα 24
25
O ρόλος και τα πλεονεκτήματα μιας DBMS Πλεονεκτήματα ενός ΣΔΒΔ: κοινή χρήση δεδομένων ασφάλεια δεδομένων Ολοκλήρωση δεδομένων Ελαχιστοποίηση ασυνέπειας δεδομένων Βελτιωμένη πρόσβαση δεδομένων Βελτιωμένη λήψη αποφάσεων Αυξημένη παραγωγικότητα τελικού χρήστη 26
Είδη Databases Οι βάσεις δεδομένων μπορούν να ταξινομηθούν σύμφωνα με: Αριθμός χρηστών Θέση (εις) βάσης δεδομένων Αναμενόμενος τύπος και έκταση χρήσης Η βάση δεδομένων για ένα χρήστη υποστηρίζει μόνο έναν χρήστη τη φορά Βάση δεδομένων για επιτραπέζιους υπολογιστές: για ένα χρήστη. τρέχει σε υπολογιστή Η βάση δεδομένων πολλαπλών χρηστών υποστηρίζει ταυτόχρονα πολλούς χρήστες Βάσεις δεδομένων για ομάδες εργασίας και επιχειρήσεις 27
Είδη Databases Centralized database Distributed database Operational database: υποστηρίζει τις καθημερινές λειτουργίες μιας εταιρείας Βάση δεδομένων συναλλαγών (transactional) ή παραγωγής (production) Data warehouse: αποθηκεύει τα δεδομένα που χρησιμοποιούνται για στρατηγικές αποφάσεις 28
Είδη Databases Μη δομημένα δεδομένα που υπάρχουν στην αρχική τους κατάσταση Με δομημένα δεδομένα που προκύπτουν από τη μορφοποίηση τους Η δομή εφαρμόζεται ανάλογα τον τύπο της επεξεργασίας που πρόκειται να εκτελεστεί Ημι-δομημένα δεδομένα έχουν επεξεργαστεί σε κάποιο βαθμό Η Επεκτάσιμη Γλώσσα Σήμανσης (XML) αντιπροσωπεύει στοιχεία δεδομένων σε μορφή κειμένου Η βάση δεδομένων XML υποστηρίζει ημι-δομημένα δεδομένα XML 29
30
Η εξέλιξη της επεξεργασίας των δεδομένων σε File System ΟΙ λόγοι που μελετούμε file systems: Είναι πιο εύκολα στην κατανόηση File systems Είναι μια συλλογή φακέλων και αρχείων Οργανώνονται ανάλογα με τη χρήση 31
32
33
34
Προβλήματα με File System Data Processing Απαιτούν αρκετό προγραμματισμό Δεν μπορούμε να τα παραμετροποιήσουμε εύκολα. Δυσκολότερος χειρισμός της ασφάλειας Επαναλαμβανόμενα δεδομένα. 35
36
Γιατί χρειάζεται να σχεδιάζουμε προσεκτικά? 37
Προβλήματα Κενές γραμμές Πώς να πάρουμε την αλφαβητική λίστα των εργαζομένων Πώς να μετρήσουμε πόσοι εργαζόμενοι έχουν πιστοποιηθεί Η καθαρότητα των δεδομένων Τι γίνεται αν κάποιος εργαζόμενος θελήσει και 4 η πιστοποίηση 38
Καλός σχεδιασμός
Η απάντηση στα προβλήματα Η παραγωγή της αλφαβητικής λίστας SELECT * FROM EMPLOYEE ORDER BY EMPLOYEE_LNAME; Πώς να μετρήσουμε πόσοι εργαζόμενοι έχουν πιστοποιηθεί SELECT Count(*) FROM SKILL JOIN CERTIFIED ON SKILL.SKILL_ID = CERTIFIED.SKILL_ID WHERE SKILL_NAME = Basic Database Manipulation ; Θα τα δούμε όλα αυτά σε επόμενο μάθημα 40
Το περιβάλλον ενός Database System Database system: ορίζει και διαχειρίζεται Την συλλογή δεδομένων Την αποθήκευση Την διαχείριση Έχει πέντε βασικά τμήματα : Hardware Software Χρήστες/Χειριστές/Διαχειριστές Διαδικασίες Δεδομένα 41
Database Systems, 10th Edition 42
Το περιβάλλον ενός Database System Hardware: Software: Λειτουργικό σύστημα (Operating system software) DBMS software Εφαρμογές και λογισμικό διαχείρισης Database Systems, 10th Edition 43
Το περιβάλλον ενός Άνθρωποι : System and database administrators Database designers Systems analysts και programmers Τελικοί χρήστες End users Διαδικασίες (Procedures): διαδικασίες και κανόνες που αφορούν το σχεδιασμό και λειτουργία ενόςdatabase system Data: Η συλλογή των δεδομένων που αποθηκεύονται στη ΒΔ. 44
Οι λειτουργίες ενός DBMS Διαχείριση λεξικού δεδομένων (Data dictionary management) Το DBMS αποθηκεύει ορισμούς στοιχείων και σχέσεων (μεταδεδομένα) σε ένα λεξικό δεδομένων ή κατάλογος (catalog) H περιγραφή των δεδομένων είναι δεδομένα. Τα δεδομένα αυτά λέγονται μετα-δεδομένα (meta-data). Το DBMS αναζητά τις δομές και τις σχέσεις που απαιτούνται Οι αλλαγές καταγράφονται αυτόματα στο λεξικό Το DBMS υλοποιεί αφαίρεση στη δεδομένων (data abstraction) και καταργεί τη δομική και την εξάρτηση των δεδομένων 45
46
Οι λειτουργίες ενός DBMS Αποθήκευση δεδομένων Το DBMS δημιουργεί και διαχειρίζεται σύνθετες δομές που απαιτούνται για την αποθήκευση δεδομένων Επίσης, αποθηκεύει φόρμες εισαγωγής δεδομένων, αναφορές, ερωτήματα κ.λπ. Ρύθμιση απόδοσης (Performance tuning): δραστηριότητες που καθιστούν την βάση δεδομένων αποτελεσματικότερη Το ΣΔΒΔ αποθηκεύει τη βάση δεδομένων σε πολλά φυσικά αρχεία δεδομένων 47
48
Οι λειτουργίες ενός DBMS Μετασχηματισμός (transformation) και παρουσίαση δεδομένων Το ΣΔΒΔ μετασχηματίζει τα δεδομένα που εισάγονται για να συμμορφώνονται με τις απαιτούμενες δομές δεδομένων Το ΣΔΒΔ μετασχηματίζει τα φυσικά ανακτημένα δεδομένα ώστε να συμμορφώνονται με τις λογικές προσδοκίες του χρήστη Διαχείριση ασφάλειας Το ΣΔΒΔ δημιουργεί ένα σύστημα ασφαλείας που επιβάλλει την ασφάλεια των χρηστών και την προστασία προσωπικών δεδομένων Οι κανόνες ασφαλείας καθορίζουν ποιοι χρήστες μπορούν να έχουν πρόσβαση στη βάση δεδομένων, σε ποια στοιχεία μπορούν να έχουν πρόσβαση κλπ. 49
Οι λειτουργίες ενός DBMS Έλεγχος πρόσβασης πολλαπλών χρηστών Το ΣΔΒΔ χρησιμοποιεί εξελιγμένους αλγόριθμους για να εξασφαλίσει ότι η ταυτόχρονη πρόσβαση (concurrent access) δεν επηρεάζει την ακεραιότητα Διαχείριση αντιγράφων ασφαλείας και ανάκτησης απολεσθέντων δεδομένων Το ΣΔΒΔ υλοποιεί διαδικασίες αποθήκευσης αντιγράφων ασφαλείας (backup) και ανάκτηση δεδομένων μετά από καταστροφές (recovery) για την εξασφάλιση της ακεραιότητας των δεδομένων Η διαχείριση ανάκτησης αφορά την αποκατάσταση της βάσης δεδομένων μετά από αποτυχία Κρίσιμη για τη διατήρηση της ακεραιότητας της βάσης δεδομένων 50
Οι λειτουργίες ενός DBMS Διαχείριση ακεραιότητας δεδομένων Το ΣΔΒΔ προωθεί και επιβάλλει κανόνες ακεραιότητας Ελαχιστοποιεί τον πλεονασμό δεδομένων (όχι πάντα) Μεγιστοποιεί τη συνοχή των δεδομένων Οι σχέσεις μεταξύ των δεδομένων που αποθηκεύονται στο λεξικό δεδομένων χρησιμοποιούνται για την επιβολή της ακεραιότητας των δεδομένων Η ακεραιότητα είναι ιδιαίτερα σημαντική σε συστήματα βάσεων δεδομένων που βασίζονται σε συναλλαγές (transactional) 51
Οι λειτουργίες ενός DBMS Γλώσσες πρόσβασης βάσεων δεδομένων και διεπαφές προγραμματισμού εφαρμογών - Application Programming Interfaces (APIs) Το ΣΔΒΔ παρέχει πρόσβαση μέσω μιας γλώσσας ερωτημάτων Η de facto γλώσσα για ερωτήματα είναι η γλώσσα SQL 52
Σύντομο ιστορικό της SQL Η γλώσσα SQL (Structured Query Language Γλώσσα Δομημένων Ερωτημάτων) αναπτύχθηκε από το 1974 από τον D. Chamberlin, ο οποίος εργαζόταν στην IBM και αρχικά χρησιμοποιήθηκε σε ΣΔΒΔ της IBM. Στα τέλη της δεκαετίας του 70, η γνωστή εταιρεία ORACLE δημιούργησε το δικό της σχεσιακό ΣΔΒΔ, υιοθέτησε την SQL. Σύντομα ακολούθησαν και άλλες εταιρείες λογισμικού που ανέπτυξαν τα δικά τους συστήματα τα οποία υιοθέτησαν την SQL. Η ευρεία διάδοση της SQL οφείλεται στο γεγονός ότι τόσο το Αμερικανικό Ινστιτούτο Τυποποίησης (American National Standards Institute ANSI) όσο και ο Παγκόσμιος Οργανισμός Τυποποίησης (International Organisation for Standardisation ISO) όρισαν την SQL ως την κοινή γλώσσα των σχεσιακών ΣΔΒΔ.
Το μέλλον Very Large Databases (VLDB). ΒΔ που διαχειρίζονται petabyte. (petabyte is 1024 terabytes.) Oracle Exadata, IBM s Netezza, HP s Vertica, και Teradata. Big Data databases. Cassandra (Facebook) BigTable (Google) Διαχείριση nontabular data. In-memory databases.. IBM s soliddβ, Oracle s TimesTen, SAP HANA. Cloud databases.