01 - Εισαγωγή σε Βάσεις Δεδομένων

8
Βάσεις Δεδομένων Ι - 01 Εισαγωγή Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας

description

Μια εισαγωγική και κατά βάση πρακτική προσέγγιση στο θέμα, με έμφαση στη γλώσσα SQL και τη σχεδίαση Βάσεων Δεδομένων. Το υλικό αυτό χρησιμοποιείται επικουρικά σε σχετικό εργαστηριακό μάθημα.

Transcript of 01 - Εισαγωγή σε Βάσεις Δεδομένων

Page 1: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Βάσεις Δεδομένων Ι - 01

Εισαγωγή Φώτης Κόκκορας (MSc/PhD) Τμήμα Μηχανικών Πληροφορικής ΤΕ ΤΕΙ Θεσσαλίας

Page 2: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 2 ‐  Βάσεις Δεδομένων Ι 

Τι είναι μια Βάση Δεδομένων;

Στην ουσία: είναι μια συλλογή πληροφοριών που διατηρείται για μεγάλο χρονικό διάστημα, συνήθως αρκετά χρόνια.

Πιο τεχνικά: ο όρος βάση δεδομένων αναφέρεται σε μια συλλογή δεδομένων που ελέγχεται από ένα Σύστημα Διαχείρισης Βάσεων Δεδομένων (ΣΔΒΔ). ΣΔΒΔ DBMS: Database Management System

Βάσεις Δεδομένων υπάρχουν πίσω από κάθε σύγχρονη σημαντική υπηρεσία: web search / δυναμικά sites / ηλεκτρονικό εμπόριο τραπεζικές συναλλαγές, χρηματιστήριο, ασφάλειες, κρατήσεις εισιτηρίων εταιρικές δραστηριότητες (πελατολόγιο, πωλήσεις, αποθήκες, κτλ) επιστήμες, όπως για παράδειγμα:

βιολογία / ανάλυση ανθρώπινου γονιδιώματος, μετεωρολογία / δορυφορικά δεδομένα / πρόγνωση καιρού επιστήμες / εξόρυξη μη προφανούς αλλά πιθανώς χρήσιμης γνώσης π.χ. ιατρικής ή οικονομικής φύσεως

κτλ δημόσιος τομέας (εξαιρείται ο Ελληνικός!!!) κτλ

Page 3: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 3 ‐  Βάσεις Δεδομένων Ι 

Σύστημα Διαχείρισης Βάσεων Δεδομένων

Εξειδικευμένο πακέτο λογισμικού (βασισμένο σε γνώσεις και τεχνολογία δεκαετιών) για την αποτελεσματική οργάνωση και διαχείριση μεγάλου όγκου δεδομένων, καθώς και την ασφαλή διατήρησή τους για μεγάλο χρονικό διάστημα. Από τα πιο σύνθετα λογισμικά που υπάρχουν!

Ένα DBMS υποστηρίζει: δημιουργία νέων βάσεων δεδομένων μέσω προσδιορισμού της λογικής διάρθρωσης

(οργάνωσης) των δεδομένων (δημιουργία του σχήματος/schema) μέσω ειδικής γλώσσας ορισμού δεδομένων (data definition language - DDL)

υποβολή "ερωτήσεων" στις βάσεις δεδομένων μέσω ειδικής γλώσσας ερωτημάτων (data query language – DQL)

αποθήκευση μεγάλου όγκου δεδομένων (terabyte ή και περισσότερο, εκατομμύρια ή δισεκα-τομμύρια καταχωρήσεις) για μεγάλο χρονικό διάστημα και ταχεία προσπέλαση σε αυτά

ανάκαμψη του συστήματος μετά από βλάβη, σφάλματα ή και εσκεμμένη προσπάθεια καταστροφής (καθιστούν μια βάση δεδομένων ανθεκτική)

ταυτόχρονη προσπέλαση πολλών χρηστών στα ίδια δεδομένα διασφαλίζοντας ότι: οι ενέργειες ενός χρήστη δεν επηρεάζουν τους άλλους (μόνωση) οι ενέργειες εκτελούνται πλήρως (ή δεν εκτελούνται καθόλου) (ολομέρεια)

Page 4: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 4 ‐  Βάσεις Δεδομένων Ι 

Σύντομη Ιστορική Αναδρομή

Ίσως η παλαιότερη (πρώτη?) ευρεία εφαρμογή πληροφορικής. δεκαετία '60 τα πρώτα εμπορικά συστήματα

Αποτελούν εξέλιξη των συστημάτων διαχείρισης αρχείων... ...τα οποία παρέχουν ορισμένες από τις ιδιότητες της προηγούμενης διαφάνειας αλλά

υστερούν σε πολλά σημεία: δεν διασφαλίζουν τη διάσωση των δεδομένων – απαιτείται back-up δεν παρέχουν γενικά ταχεία προσπέλαση δεν υποστηρίζουν κάποια γλώσσα ερωτημάτων υψηλού επιπέδου η οργάνωση που παρέχουν είναι συνήθως ιεραρχική (ιεραρχικό πρότυπο οργάνωσης) ή γράφος (δικτυακό πρότυπο οργάνωσης)

επιτρέπουν ταυτόχρονη προσπέλαση αλλά όχι και ταυτόχρονη τροποποίηση 1970: ο Ted Codd προτείνει να παρουσιάζουν τα ΣΔΒΔ τα δεδομένα στους χρήστες

σε οργάνωση πινάκων (tables ή σχέσεις/relations) αλλά στο παρασκήνιο να υπάρχει μια πιο σύνθετη οργάνωση που να επιτρέπει υψηλές επιδόσεις. Γένεση του Σχεσιακού Μοντέλου (Relational Model). Οι προγραμματιστές πλέον (ΣΣΔΒΔ/RDBMS) δεν χρειάζεται να γνωρίζουν την πραγματική

διάρθρωση των δεδομένων. Υποβάλλουν ερωτήσεις σε μια γλώσσα πολύ υψηλού επιπέδου (την SQL – Structured Query Language) που αυξάνει δραματικά την παραγωγικότητα!

Συνεχής εξέλιξη για κάλυψη ιδιαίτερων αναγκών (πχ Google Search)

Page 5: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 5 ‐  Βάσεις Δεδομένων Ι 

Σύγχρονες Τάσεις

Ολοένα και μικρότερα συστήματα Τα ΣΣΔΒΔ μπορούν πλέον και λειτουργούν και σε προσωπικούς Η/Υ, ενώ εφαρμογές ΒΔ

υπάρχουν ακόμη και σε μικρές υπολογιστικές συσκευές (σε κινητά!) Ολοένα και μεγαλύτερα συστήματα Google Search – ευρετήρια για δισεκατομμύρια ιστοσελίδων και ταχύτατη απόκριση! Δορυφορικά δεδομένα όγκου την τάξεως των petabyte (103 terabyte) ή exabyte (103 petabyte) Flickr – εκατομμύρια εικόνες, Facebook – δεδομένα ~1 δισεκατομμυρίου χρηστών youTube – εκατομμύρια video clip Ομότιμα Δίκτυα Ανταλλαγής Αρχείων (peer to peer) – torrents –

τεράστια συνολική βάση δεδομένων (αρχείων) διαμοιρασμένη σε πολλούς Η/Υ Ενοποίηση Πληροφοριών/Δεδομένων (Data Fusion) Συνένωση δεδομένων που προέρχονται από πολλές βάσεις δεδομένων σε ένα ενιαίο σύνολο.

υποκαταστήματα εταιριών με δική του βάση δεδομένων το καθένα συγχώνευση εταιριών συνύπαρξη παλαιών συστημάτων (legacy systems) με σύγχρονα

Χρήση αποθηκών δεδομένων όπου μεταφέρονται τα επί μέρους data επεξεργασμένα. Χρήση διαμεσολαβητών (middleware) που παρέχουν στο χρήστη ενιαίο πρότυπο δεδομένων.

Page 6: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 6 ‐  Βάσεις Δεδομένων Ι 

Κατηγορίες Χρηστών σε ΣΔΒΔ Σχεδιαστές/Προγραμματιστές σχεδιάζουν τις βάσεις δεδομένων και υλοποιούν εφαρμογές για την εύκολη χρήση τους από

απλούς χρήστες Απλοί Χρήστες καταχωρούν ή προσπελαύνουν δεδομένα, συνήθως μέσω κάποια εφαρμογής υψηλού

επιπέδου που αποκρύπτει την πολυπλοκότητα του συστήματος π.χ. οι φοιτητές που χρησιμοποιούν web φόρμες στις ηλεκτρονικές υπηρεσίες της γραμματείας

δεν γνωρίζουν την δομή της βάσης δεδομένων του υποστηρίζει αυτές τις υπηρεσίες! Διαχειριστές (administrators) φροντίζουν το σχήμα της βάσης δεδομένων και το ΣΔΒΔ (π.χ. ορίζουν χρήστες και

δικαιώματα, επαναφέρουν το σύστημα σε περίπτωση αστοχίας/βλάβης, κτλ)

Οδικόςσαςρόλοςστοπλαίσιοτουμαθήματος Σχεδίαση Βάσεων Δεδομένων σχεσιακό μοντέλο, μοντέλο οντοτήτων/συσχετίσεων, ημιδομημένο μοντέλο (XML)

Προγραμματισμός Βάσεων Δεδομένων χρήση SQL για δημιουργία "ερωτημάτων" διαφόρων ειδών XPath και XQuery, εφόσον καταστεί χρονικά εφικτό (αφορούν σε XML δεδομένα)

Διαχειριστές (αλλά σε μικρό βαθμό)

Page 7: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 7 ‐  Βάσεις Δεδομένων Ι 

Λογισμικά Εργαστηρίου

MySQL open source RDBMS έκδοση Community Server εξαιρετικά διαδεδομένη σε web εφαρμογές

MySQL Workbench εφαρμογή "3 σε 1" που παρέχει εύχρηστη γραφική διεπαφή για:

μοντελοποίηση/σχεδίαση βάσεων δεδομένων (σε σχεσιακό μοντέλο), διαχείριση και χρήση βάσεων δεδομένων (δημιουργία ερωτημάτων, κτλ) σε

MySQL Server, και διαχείριση του ίδιου του MySQL Server

FlySpeed SQL Query λογισμικό (MS Windows) υποβοήθησης δημιουργίας SQL ερωτημάτων, ανεξάρτητο RDBMS - θα χρησιμοποιηθεί σε συνδυασμό με MySQL

Page 8: 01 - Εισαγωγή σε Βάσεις Δεδομένων

Φ. Κόκκορας / Μηχανικών Πληροφορικής ΤΕ – ΤΕΙ Θεσσαλίας  ‐ 8 ‐  Βάσεις Δεδομένων Ι 

Βιβλιογραφία

Τα slides φτιάχτηκαν στο χειμερινό εξάμηνο της περιόδου 2012-2013, ως βοηθητικό διδακτικό υλικό για το μάθημα Βάσεις Δεδομένων Ι.

Χρησιμοποιήθηκε το ακόλουθο σύγγραμμα (αν και εξαιρετικό, δεν είναι αναγκαία η απόκτησή του): Συστήματα Βάσεων Δεδομένων (Τόμος Ι)

GARCIA-MOLINA, ULLMAN, WIDOM ISBN: 978-960-524-310-4, Έτος: 2010 ΙΤΕ-Πανεπιστημιακές Εκδόσεις Κρήτης

Επικοινωνία

email: fkokkoras [at] teilar [dot] gr