Τι είναι οι βάσεις δεδομένων

Τι είναι οι βάσεις δεδομένων
Τι είναι οι βάσεις δεδομένων

Τις χρησιμοποιούμε καθημερινά, είναι απαραίτητες, οι περισσότεροι δεν γνωρίζουμε το τι είναι και ίσως καν την ύπαρξη τους… Μιλάμε για τις βάσεις δεδομένων.

Τι ορίζουμε όμως ως βάση δεδομένων;

Σαν όρο ορίζουμε κάθε σύνολο οργανωμένων δεδομένων αποθηκευμένων σε ένα φυσικό μέσο. Πρακτικά ακόμα και ένα excel που γράφουμε μία λίστα με πελάτες είναι μια βάση δεδομένων.

Που χρησιμοποιείται;

Όταν κάνουμε μια συναλλαγή πχ αγορά στο σουπερμάρκετ, ανάληψη σε τράπεζα, να δούμε το υπόλοιπο της κάρτα μας στο καρτοκινητό, να κλείσουμε εισιτήριο στο σινεμά, κ.τ.λ.. Για όλες αυτές τις ενέργειες-συναλλαγές(transactions) κάθε φορά στην πραγματικότητα εκτελείται πίσω ένα ερώτημα σε μια βάση δεδομένων που ονομάζεται query.

Οι ιδιώτητες ACID

Δεν πρέπει να μην αναφερθεί ότι οι συναλλαγές στις βάσεις δεδομένων πρέπει να έχουν τις εξής τέσσερίς ιδιότητες ACID που είναι η Ατομικότητα, Συνέπεια, Απομόνωση και Μονιμότητα. Δεν θέλω να σας κουράσω αναλύοντας το τι σημαίνει η κάθε μία, αλλά θα σας δώσω ένα παράδειγμα. Τι θα γινόταν εάν σε μια συναλλαγή π.χ. για κράτηση μίας θέσης σινεμά ξαφνικά έπεφτε το ρεύμα; Θα χανότανε η πληροφορία του ότι κάποιος πλήρωσε τη θέση; ή όταν κατά τη διάρκεια της κράτηση της θέσης, ένας δεύτερος πελάτης έψαχνε την θέση θα μπορούσανε δύο πελάτες να κλείσουν από λάθος την ίδια θέση; Φυσικά και όχι.

Αυτό συμβαίνει χάρις των σχεσιακών βάσεων δεδομένων, υπάρχουν και άλλοι τύποι όπως οι NoSQL οι οποίες αξίζουν ένα δικό τους θέμα.

Τι ορίζουμε σχεσιακή βάση δεδομένων ή αλλιώς relational database

Είναι οι βάσεις δεδομένων που οι οντότητες που περιέχουν αλληλεξαρτώνται μεταξύ τους. Ως οντότητα μπορούμε να σκεφτούμε έναν πελάτη που έχει κάποια διεύθυνση και αγοράζει κάποια προϊόντα. Όλα αυτές οι οντότητες στα συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων(RDBMS) τις ορίζουμε ως πίνακες(tables).

Η δομή μια βάσης δεδομένων
Τι είναι η κανονικοποίηση

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

Ας δούμε ένα παράδειγμα έναν πίνακα πριν την ολική κανονικοποίηση και μετά:

Τι είναι οι βάσεις δεδομένων

Βλέπετε η πληροφορία της Χώρας, ΑΜΚΑ, ΑΦΜ, Διεύθυνσης κλπ. ότι επαναλαμβάνονται κάθε φορά που γίνεται η συναλλαγή. Αυτό έχει σαν αποτέλεσμα να χρειάζεται μεγαλύτερος χώρος για την αποθήκευση τους και περισσότερη επεξεργαστική ισχύ για να διαχειριστείς τα δεδομένα.

Πάμε να δούμε το μετά:

Βλέπετε η πληροφορία δεν επαναλαμβάνεται π.χ. η χώρα Ελλάδα έχει γραφτεί στην βάση μόνο σε ένα πεδίο. Η σχεσιακή(relational) σύνδεση μεταξύ τους πετυχαίνετε με τη χρήση των κλειδιών/keys.

Τι είναι τα κλειδιά

Ως primary key ορίζουμε ένα πεδίο ή έναν συνδυασμό πεδίων το οποίο παραμένει μοναδικό στον πίνακα και συνήθως το ορίζουμε και σαν clustered index key που θα το αναλύσουμε σε άλλο άρθρο.

Ως foreign key ορίζουμε ένα πεδίο ή έναν συνδυασμό πεδίων το αναφέρεται ως primary key σε έναν άλλον πίνακα.

Σχέσεις μεταξύ πινάκων

Έχουμε 3 ειδών σχέσεις μεταξύ των πινάκων:

Ένα προς ένα ο κάθε πελάτης έχει ένα ΑΜΚΑ και ένα ΑΦΜ. Βλέπουμε το διαφορετικό foreign key σε κάθε εγγραφή στον πίνακα:

Τι είναι οι βάσεις δεδομένων

Πολλά προς πολλά ο κάθε πελάτης παραγγέλνει πολλά προϊόντα και πολλά προϊόντα τα παραγγέλνουν πολλοί πελάτες. Για να γίνει αυτό θα πρέπει να δημιουργηθεί ο ενδιάμεσος πίνακας των πωλήσεων  ώστε τα primary key και των δύο πινάκων να υπάρχουν ως foreign σε ένα:

Τι είναι οι βάσεις δεδομένων

Ένα προς πολλά η κάθε χώρα έχει πολλές διευθύνσεις:

Τι είναι οι βάσεις δεδομένων
Τι είναι τα constraints

Τι θα γίνει όμως στις διευθύνσεις άμα σβήσουμε μία χώρα; Δεν θα ξέρουμε μετά ποιας χώρας είναι η διεύθυνση; Εκεί κάνουν kick-in τα λεγόμενα foreign key constraints. Μπορούμε και τα δηλώνουμε κατά την δημιουργία του πίνακα ή και έπειτα. Ουσιαστικά δεν μας επιτρέπουν να σβήσουμε χώρα αν πρώτα δεν έχουμε σβήσει όλες τις διευθύνσεις που αναφέρεται ως foreign key. Οπότε μας διασφαλίζει ότι αυτό δεν θα συμβεί.

Τι άλλο υπάρχει πέρα από πίνακες σε μία σχεσιακή βάση δεδομένων

Υπάρχουν τα εξής:

  1. Views είναι όψεις πινάκων που επιτρέπουν στους χρήστες να βλέπουν πεδία από διαφορετικούς πίνακες ή από το ίδιο. Δίνουν την δυνατότητα για φιλτράρισμα με κριτήρια.
  2. Stored procedures είναι queries που έχουν αποθηκευτεί, ώστε να καλούνται με ένα όνομα (π.χ. execute sp_tade) ξανά και ξανά. Μπορούν επίσης να περιέχουν παραμέτρους (π.χ. execute sp_tade @AFM=’1024921′) και να επιστρέψουν το αντίστοιχο αποτέλεσμα.
  3. Functions είναι σαν τις procedures με την διαφορά ότι μπορούν να δέχονται μόνο μια παράμετρο. Επίσης πάντα πρέπει να επιστρέφουν ένα αποτέλεσμα. Ενώ στις procedures δεν είναι υποχρεωτικό επιστραφεί κάτι (π.χ. function UPPER() θα κάνει κεφαλαία όποια παράμετρο της δώσεις).
  4. Triggers είναι είδος stored procedure που εκτελούνται αυτόματα όταν συμβεί κάποια ενέργεια στην βάση. Όπως π.χ. άμα αλλάξει τιμή αυτό το πεδίο κράτα την τιμή κάπου αλλού.

Αυτή είναι η βασική θεωρεία των βάσεων δεδομένων.

Κλείνοντας θα ήθελα να αναφέρω ότι υπάρχουν πολλά διαφορετικά συστήματα διαχείρισης σχεσιακών βάσεων δεδομένων(DBMS). Όπως Microsoft SQL Server, Oracle Database, MySQL/MariaDB, Netezza, Sybase, DB2 και PostgreSQL. Έχουν διαφορές μεταξύ τους όμως οι βασικές αρχές που αναλύσαμε στο άρθρο ισχύουν.

Πηγές:

Μοιράσου το

Αφήστε μία απάντηση