Τι Σημαίνει Δομημένη Γλώσσα Ερωτημάτων (SQL)?
Η δομημένη γλώσσα ερωτημάτων (SQL) είναι γλώσσα προγραμματισμού που χρησιμοποιείται συνήθως σε σχεσιακές βάσεις δεδομένων ή συστήματα διαχείρισης ροής δεδομένων.
Αναπτύχθηκε από την IBM στις αρχές της δεκαετίας του 1970. Αποτελεί πλέον επίσημα αναγνωρισμένο πρότυπο από το Αμερικανικό Εθνικό Ινστιτούτο Προτύπων (ANSI) και τον Διεθνή Οργανισμό Τυποποίησης ( ISO).
Η Techopedia Εξηγεί τη Δομημένη Γλώσσα Ερωτημάτων (SQL)
Η SQL παρέμεινε μια σταθερά δημοφιλής επιλογή για τους χρήστες βάσεων δεδομένων εδώ και πολλά χρόνια. Κυρίως λόγω της ευκολίας χρήσης της και του εξαιρετικά αποτελεσματικού τρόπου με τον οποίο αναζητά, χειρίζεται, συγκεντρώνει δεδομένα. Επίσης εκτελεί ένα ευρύ φάσμα άλλων λειτουργιών για να μετατρέψει μαζικές συλλογές δομημένων δεδομένων σε πληροφορίες που μπορούν να χρησιμοποιηθούν.
Για το λόγο αυτό, έχει ενσωματωθεί στις βάσεις δεδομένων πολλών εμπορικών προϊόντων. Εξαιρετικά παραδείγματα είναι MySQL, Oracle, Sybase, SQL Server, Postgres και άλλα. Στην πραγματικότητα, πολλές μη σχεσιακές βάσεις δεδομένων όπως MongoDB και η DynamoBD ονομάζονται προϊόντα NoSQL λόγω της έλλειψης προγραμματισμού SQL.
Ενώ διαφορετικές εκδόσεις SQL χρησιμοποιούν διαφορετική σύνταξη για βασικές λειτουργίες. Γενικά όμως οι βασικές εντολές όπως η επιλογή, εισαγωγή, ενημέρωση και δημιουργία είναι κοινές σε όλες τις εκδόσεις της SQL. Αυτό καθιστά πολύ εύκολο για κάποιον με βασικές γνώσεις SQL να εργάζεται σε πολλά διαφορετικά περιβάλλοντα. Του δίνει τη δυνατότητα επίσης να εκτελεί μια μεγάλη ποικιλία εργασιών.
Τέσσερις Κατηγορίες Εντολών της SQL
Γλώσσα Ορισμού Δεδομένων (DDL)
Αυτή περιλαμβάνει το CREATE (ΔΗΜΙΟΥΡΓΙΑ) (πίνακες, προβολές, αντικείμενα κ.λπ.), ALTER (ΤΡΟΠΟΠΟΙΗΣΗ) και DROP (ΔΙΑΓΡΑΦΗ).
Γλώσσα Χειρισμού Δεδομένων (DML)
SELECT, INSERT, UPDATE, DELETE (ΕΠΙΛΟΓΗ, ΕΙΣΑΓΩΓΗ, ΕΝΗΜΕΡΩΣΗ, ΔΙΑΓΡΑΦΗ) εγγραφών σε πίνακες.
Γλώσσα Ελέγχου Δεδομένων (DCL)
GRANT (ΠΑΡΑΧΩΡΗΣΗ) ή/και REVOKE (ΑΝΑΚΛΗΣΗ) προνομίων χρήστη κ.λπ.
Ευρετηρίαση Βάσεων Δεδομένων
Το CREATE INDEX (ΔΗΜΙΟΥΡΓΙΑ ΕΥΡΕΤΗΡΙΟΥ) και DROP INDEX (ΔΙΑΓΡΑΦΗ ΕΥΡΕΤΗΡΙΟΥ) χρησιμοποιούνται για τη δημιουργία και τη διαγραφή ευρετηρίων σε πίνακες.
Εξορθολογισμός Αναζήτησης και άλλων Λειτουργιών στο SQL
Η SQL επιτρέπει επίσης στους χρήστες να δημιουργούν περιορισμούς στους πίνακες ή στις στήλες. Με αυτόν τον τρόπο μπορεί να περιοριστεί ο τύπος των δεδομένων που περιέχουν. Αυτό βοηθά στη διασφάλιση της ακρίβειας και της συνάφειας των δεδομένων. Απλοποιεί τη συνολική διαχείριση της βάσης δεδομένων με τον εξορθολογισμό της αναζήτησης και άλλων λειτουργιών.
Μερικά παραδείγματα περιορισμών της SQL περιλαμβάνουν:
NOT NULL (ΧΩΡΙΣ ΚΕΝΑ)
Αυτό εμποδίζει τις στήλες να έχουν μηδενική τιμή.
UNIQUE (ΜΟΝΑΔΙΚΟ)
Για να διασφαλιστεί ότι όλες οι τιμές είναι διαφορετικές.
Επιπλέον, οι DBA μπορούν να χρησιμοποιήσουν την SQL για να δημιουργήσουν ακεραιότητα στη βάση δεδομένων, αποτρέποντας τη δημιουργία διπλότυπων σειρών, επιτρέποντας μόνο την εισαγωγή έγκυρων δεδομένων και απαγορεύοντας τη διαγραφή δεδομένων που συνδέονται με πολλαπλές εγγραφές και άλλες λειτουργίες.
Ωστόσο, ταυτόχρονα η Structured Query Language παρέχει μια σειρά από εργαλεία κανονικοποίησης που έχουν σχεδιαστεί για να εξορθολογίζουν τις εξαρτήσεις των δεδομένων και γενικά να μειώνουν το μέγεθος και το εύρος της βάσης δεδομένων, ώστε να είναι λειτουργικά αποτελεσματική και αποδοτική ως προς τους πόρους.
Προφανώς, η Structured Query Language δεν είναι η καλύτερη επιλογή για όλες τις εφαρμογές βάσεων δεδομένων, διαφορετικά δεν θα υπήρχαν εναλλακτικές. Αρχικά, ενώ η SQL ήταν αποτελεσματική σε κλίμακες δεδομένων μέχρι τη δεκαετία του 1990 και μετά, η υλοποίηση και τα συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων (και όχι η ίδια η γλώσσα) άρχισαν να παραπαίουν στα επίπεδα της υπερκλίμακας στις αρχές του αιώνα.
Ορισμένοι χρήστες παραπονιόταν επίσης για τους περιορισμούς sharding (διαμοιρασμού), οι οποίοι εμποδίζουν τη δυνατότητα διάσπασης μεγάλων βάσεων δεδομένων σε μικρότερες, πιο διαχειρίσιμες.
Αυτά τα μειονεκτήματα, στην πραγματικότητα, είναι που οδήγησαν στη δημιουργία της NoSQL και της πιο πρόσφατης NewSQL, η οποία προσπαθεί να βελτιώσει την επεκτασιμότητα της παραδοσιακής SQL χωρίς να θυσιάζει την εγγενή ατομικότητα, συνέπεια, απομόνωση και ανθεκτικότητά της (atomicity, consistency, isolation and durability – ACID).