4.+Εισαγωγή

Εισαγωγή
**Στόχοι / Προσδοκώμενα Αποτελέσματα** Ο μαθητής/τρια πρέπει να είναι ικανός/ή:
 * να κατανοεί τη σημασία των γλωσσών βάσεων δεδομένων
 * να κατανοεί τη σημασία μιας πρότυπης γλώσσας βάσεων δεδομένων
 * να κατανοεί τη διαφορά ανάμεσα στον ορισμό και τον χειρισμό των δεδομένων
 * να αναγνωρίζει τη σημασία της SQL στην εξέλιξη και επιτυχία των σχεσιακών βάσεων δεδομένων

**SQL** = **Structured Query Language** (προφέρεται έs-qu-έl ή sίkwel)

Η γλώσσα **SQL (Structured Query Language)** είναι γλώσσα διαχείρισης Σχεσιακών Βάσεων Δεδομένων. Η SQL αναπτύχθηκε στην εταιρεία IBM στις αρχές της δεκαετίας του 1970 και αρχικά ονομαζόταν SEQUEL. Η γλώσσα SQL θεωρείται μια από τις κύριες αιτίες της εμπορικής επιτυχίας των Σχεσιακών Βάσεων Δεδομένων, επειδή ήταν απλή και εύκολη στη χρήση της.

Το 1986 η SQL έγινε //πρότυπο (standard)// από τον αμερικανικό οργανισμό προτύπων ANSI (American National Standards Institute) και το 1987 από το διεθνή οργανισμό ISO (International Organization for Standardization). Από τότε έχουν γίνει επτά (7) αναθεωρήσεις της SQL με πιο πρόσφατη αυτή του 2011. Η καθιέρωση της SQL ως προτύπου σημαίνει ότι όλοι μπορούν να την χρησιμοποιούν με τον ίδιο ακριβώς τρόπο σε οποιοδήποτε σύστημα την υποστηρίζει. Έτσι, αν οι σχεδιαστές ή οι διαχειριστές Βάσεων Δεδομένων προγραμματίσουν σε SQL, οι εντολές που θα γράψουν θα μπορούν εύκολα να μεταφερθούν σε οποιοδήποτε σύστημα υποστηρίζει το πρότυπο της SQL. Θα μπορούν δηλαδή να μεταφέρουν εύκολα τον κώδικά τους από το ένα σύστημα στο άλλο, π.χ. από MySQL σε Postgres ή αντίστροφα, κλπ. Επιπλέον, αν ένας προγραμματιστής εφαρμογών χρησιμοποιήσει τη γλώσσα SQL για να γράψει ερωτήσεις ανάκτησης δεδομένων, τότε θα μπορεί να κάνει τις ίδιες ακριβώς ερωτήσεις σε διαφορετικές βάσεις δεδομένων που υποστηρίζουν το πρότυπο της SQL, για να αντλεί τα δεδομένα των εφαρμογών του.

**DDL** = Data Definition Language, δηλ. Γλώσσα Ορισμού Δεδομένων

Γλώσσα Χειρισμού Δεδομένων
 * DML** = Data Manipulation Language, δηλ.

Η SQL αποτελείται από δύο βασικά μέρη: τη **γλώσσα SQL Ορισμού Δεδομένων (SQL DDL)** και τη **γλώσσα SQL χειρισμού δεδομένων (SQL DML)**. Με την γλώσσα ορισμού δεδομένων ορίζεται το //σχήμα// των δεδομένων, δηλαδή η μορφή τους, ενώ με τη γλώσσα χειρισμού δεδομένων ορίζονται //οι λειτουργίες αποθήκευσης και ανάκτησης// των δεδομένων. Επομένως η γλώσσα SQL περιέχει εντολές για τη δημιουργία και την επεξεργασία της μορφής των πινάκων (ορισμός δεδομένων), αλλά και εντολές για την εισαγωγή, ενημέρωση, διαγραφή και ανάκτηση των δεδομένων που είναι αποθηκευμένα σε πίνακες (χειρισμός δεδομένων).

Αν για παράδειγμα θέλουμε να αποθηκεύσουμε τα στοιχεία των μαθητών ενός σχολείου σε σχεσιακή βάση δεδομένων, θα χρησιμοποιήσουμε τη γλώσσα SQL DDL για να δημιουργήσουμε τους σχεσιακούς πίνακες και κατόπιν θα χρησιμοποιήσουμε τη γλώσσα SQL DML για να εισάγουμε τα στοιχεία των μαθητών και για να κάνουμε ερωτήσεις που θα ανακτούν δεδομένα από τη βάση. Το παράδειγμα του Μαθητολογίου αποτελεί το βασικό παράδειγμα της συγκεκριμένης ενότητας και παρουσιάζεται αναλυτικά παρακάτω.

Σε ένα Σχεσιακό Σύστημα Διαχείρισης Βάσεων Δεδομένων:
 * Δημιουργώ πίνακες με τη Γλώσσα Ορισμού Δεδομένων (DDL)
 * Εισάγω δεδομένα στους σχεσιακούς πίνακες με τη Γλώσσα Χειρισμού Δεδομένων (DML)
 * Ενημερώνω/διαγράφω τα δεδομένα των πινάκων με τη Γλώσσα Χειρισμού Δεδομένων (DML)
 * Εκτελώ ερωτήματα ανάκτησης για τα δεδομένα των πινάκων με τη Γλώσσα Χειρισμού Δεδομένων (DML)

Φυσικά η δημιουργία πινάκων και η εισαγωγή/ενημέρωση/διαγραφή δεδομένων σε αυτούς μπορεί να γίνει και με γραφικά εργαλεία στα περισσότερα ΣΔΒΔ, όμως η χρήση της γλώσσας SQL εξασφαλίζει ανεξαρτησία από τον κατασκευαστή του συστήματος και εύκολη μεταφορά των προγραμμάτων ανάμεσα σε συστήματα κατασκευαστών.

Η ενότητα 4.1 παρουσιάζει βασικές λειτουργίες ορισμού δεδομένων σε σχεσιακή βάση με την SQL, ενώ η ενότητα 4.2 παρουσιάζει λειτουργίες χειρισμού δεδομένων.

**Ερωτήσεις / Δραστηριότητες** 1) Σε ένα σχολείο, οι ανάγκες μηχανογράφησης επιβάλλουν τη χρήση σχεσιακής βάσης δεδομένων για την διαχείριση των στοιχείων μαθητών, μαθημάτων, εκπαιδευτικών, αναθέσεων, βαθμολογιών κλπ. Γι’ αυτό το σκοπό και για λόγους οικονομίας, το σχολείο αποφασίζει την εγκατάσταση δωρεάν (free) ΣΔΒΔ. Ειδικός σε ΣΔΒΔ αναλαμβάνει την εγκατάσταση και προετοιμασία (διαχείριση) του συστήματος ώστε αυτό να μπορεί να χρησιμοποιηθεί από τη σχολική κοινότητα. Ενέργειες στις οποίες πρέπει να προβεί είναι ο ορισμός των δεδομένων και ο καθορισμός των λειτουργιών χειρισμού δεδομένων που ανταποκρίνονται στις ανάγκες του προβλήματος και των χρηστών του. α) Εντοπίστε και περιγράψτε ενέργειες ορισμού δεδομένων (δημιουργία πινάκων) που πρέπει να γίνουν από τον διαχειριστή του συστήματος πριν αυτό διατεθεί προς χρήση. β) Εντοπίστε και περιγράψτε ενέργειες χειρισμού δεδομένων (εισαγωγές, ενημερώσεις, διαγραφές) που θα πραγματοποιούνται από τους χρήστες του συστήματος.