1. Τι θα μάθουμε;
Στην προηγούμενη υποενότητα είδαμε τι είναι μια βάση δεδομένων. Τώρα θα γνωρίσουμε διαφορετικούς τρόπους οργάνωσης των πληροφοριών.
Να αναγνωρίζουμε τα βασικά είδη βάσεων δεδομένων και να εξηγούμε απλά σε τι διαφέρουν. Δεν χρειάζεται να μάθουμε εγκατάσταση ή προγραμματισμό.
Ένα τμήμα θέλει να οργανώνει ραντεβού, να παρακολουθεί τεχνικές μετρήσεις και να βγάζει στατιστικά. Αυτές οι εργασίες δεν χρειάζονται πάντα τον ίδιο τρόπο οργάνωσης. Τα παραδείγματα του μαθήματος είναι υποθετικά.
2. Τρεις διαφορετικές ερωτήσεις για μια βάση
Όταν περιγράφουμε μια βάση, μπορεί να μιλάμε για διαφορετικά χαρακτηριστικά της:
| Ερώτηση | Παράδειγμα απάντησης |
|---|---|
| Πώς οργανώνει τα δεδομένα; | Σε πίνακες ή σε έγγραφα. |
| Πού και πώς λειτουργεί; | Τοπικά, σε κεντρικό σύστημα ή στο νέφος. |
| Τι εργασία εξυπηρετεί; | Καθημερινές καταχωρίσεις ή συγκεντρωτική ανάλυση. |
Μια βάση μπορεί να οργανώνει στοιχεία σε πίνακες και ταυτόχρονα να λειτουργεί στο νέφος. Οι δύο περιγραφές δεν αποκλείουν η μία την άλλη.
Να θυμάστε: άλλο ο τρόπος οργάνωσης, άλλο η εγκατάσταση και άλλο ο σκοπός χρήσης.
3. Η ίδια πληροφορία με διαφορετική οργάνωση
Ο υποθετικός ασθενής P001 έχει δύο εξετάσεις: την E101, μια αξονική, και την E102, μια μαγνητική.
| Μοντέλο | Πώς οργανώνει το παράδειγμα; |
|---|---|
| Ιεραρχικό | Κάτω από τον ασθενή βρίσκονται οι εξετάσεις του. |
| Σχεσιακό | Υπάρχει πίνακας ασθενών και πίνακας εξετάσεων, με συνδέσεις. |
| Εγγράφων | Ένα οργανωμένο έγγραφο περιέχει τον ασθενή και μια λίστα εξετάσεων ή αναφορές σε αυτές. |
| Γράφου | Ο ασθενής και οι εξετάσεις είναι σημεία που ενώνονται με σχέσεις. |
Η πληροφορία είναι ίδια, αλλά αλλάζει ο τρόπος αποθήκευσης και σύνδεσής της. Η επιλογή εξαρτάται και από το τι θα αναζητούμε.
4. Ιεραρχική βάση: σαν δέντρο φακέλων
Στην ιεραρχική βάση, τα δεδομένα οργανώνονται σαν δέντρο. Ένα ανώτερο στοιχείο έχει κάτω του άλλα στοιχεία. Στο βασικό μοντέλο, κάθε «παιδί» έχει έναν «γονέα».[1]
Σκεφτείτε έναν φάκελο ασθενούς. Μέσα του υπάρχουν φάκελοι εξετάσεων και μέσα σε κάθε εξέταση τα σχετικά στοιχεία. Ακολουθούμε μια διαδρομή από πάνω προς τα κάτω.
Η οργάνωση είναι εύκολη όταν οι πληροφορίες ταιριάζουν σε σταθερή ιεραρχία. Δυσκολεύει όταν το ίδιο στοιχείο χρειάζεται πολλές διαφορετικές συνδέσεις.
Για παράδειγμα, το ίδιο μηχάνημα χρησιμοποιείται για εξετάσεις πολλών ασθενών και δεν ανήκει αποκλειστικά σε έναν.
5. Δικτυωτή βάση: περισσότερες συνδέσεις
Το δικτυωτό μοντέλο επιτρέπει περισσότερες συνδέσεις ανάμεσα στις εγγραφές από ένα απλό δέντρο.[2]
Μια εξέταση μπορεί να συνδέεται με τον ασθενή, τον υπεύθυνο γιατρό και το μηχάνημα. Υπάρχουν περισσότερες διαδρομές για να φτάσουμε στη σχετική πληροφορία.
Οι πολλές συνδέσεις δίνουν δυνατότητες, αλλά κάνουν πιο σύνθετη την οργάνωση και τις αλλαγές.
Η λέξη «δικτυωτή» εδώ περιγράφει το μοντέλο των δεδομένων. Δεν σημαίνει απλώς ότι η βάση συνδέεται σε δίκτυο υπολογιστών. Επίσης, το ιστορικό δικτυωτό μοντέλο διαφέρει από τις σύγχρονες βάσεις γράφων.
6. Σχεσιακή βάση: πίνακες που συνδέονται
Στη σχεσιακή βάση, τα στοιχεία οργανώνονται σε πίνακες με γραμμές και στήλες. Οι πίνακες συνδέονται με κλειδιά, όπως είδαμε στο προηγούμενο μάθημα.[3]
| Εξέταση | Ασθενής | Είδος |
|---|---|---|
| E101 | P001 | Αξονική |
| E102 | P001 | Μαγνητική |
Ο κωδικός P001 συνδέει και τις δύο εξετάσεις με τη σωστή εγγραφή ασθενούς.
Μπορούμε να ορίζουμε κανόνες, όπως μοναδικούς αριθμούς και υποχρεωτικά πεδία. Οι κανόνες χρειάζονται σωστό σχεδιασμό· δεν εμφανίζονται όλοι αυτόματα επειδή χρησιμοποιούμε πίνακες.
7. Αντικειμενοστραφής βάση: σύνθετα αντικείμενα
Μια αντικειμενοστραφής βάση αποθηκεύει δεδομένα ως αντικείμενα, με χαρακτηριστικά και σχέσεις. Το «αντικείμενο» εδώ είναι μια οργανωμένη δομή που χρησιμοποιεί ένα πρόγραμμα.[2]
Ένα πρόγραμμα περιγράφει μια συσκευή μαζί με τις ιδιότητες και τα εξαρτήματά της. Μια τέτοια βάση μπορεί να διατηρεί αυτή τη σύνθετη οργάνωση.
Στην πράξη, οι κατηγορίες μπορεί να συνδυάζονται. Ένα σύστημα με σχεσιακούς πίνακες μπορεί να αποθηκεύει και έγγραφα με πρόσθετες δυνατότητες.[4]
Κρατάμε: το όνομα μιας κατηγορίας δεν περιγράφει πάντα όλες τις δυνατότητες ενός προϊόντος.
8. Τι σημαίνει NoSQL;
Το NoSQL είναι μια γενική ονομασία για διαφορετικές οικογένειες βάσεων που δεν περιορίζονται στο κλασικό σχεσιακό μοντέλο.[1]
Περιλαμβάνει, μεταξύ άλλων, βάσεις εγγράφων, κλειδιού–τιμής, wide-column και γράφων. Θα τις δούμε στις επόμενες ενότητες.
Σκεφτείτε τον όρο «οχήματα»: περιλαμβάνει πολλά διαφορετικά πράγματα. Παρόμοια, το NoSQL δεν περιγράφει έναν μόνο τρόπο λειτουργίας.
NoSQL δεν σημαίνει απουσία κανόνων. Ανάλογα με το συγκεκριμένο σύστημα, μπορεί να υπάρχουν έλεγχοι στοιχείων και συναλλαγές. Εξετάζουμε τις πραγματικές δυνατότητες της κάθε λύσης.
9. Βάση εγγράφων: πληροφορίες σε ομάδες
Μια βάση εγγράφων οργανώνει δεδομένα σε έγγραφα με πεδία και λίστες. Το «έγγραφο» δεν σημαίνει απαραίτητα αρχείο Word ή PDF· είναι μια οργανωμένη ομάδα δεδομένων.
Ένα έγγραφο μπορεί να περιέχει τον κωδικό P001 και μια λίστα με τις εξετάσεις E101 και E102. Έτσι τα σχετικά στοιχεία μπορούν να διαβάζονται μαζί.
Οι εξετάσεις μπορούν επίσης να αποθηκεύονται ξεχωριστά και να συνδέονται με αναφορές. Ο σχεδιασμός εξαρτάται από το ποια στοιχεία χρησιμοποιούνται και αλλάζουν μαζί.[5]
Η ευελιξία είναι χρήσιμη, αλλά χρειάζονται κανόνες για να μη δημιουργούνται ασαφείς ή επαναλαμβανόμενες πληροφορίες.
10. Βάση κλειδιού–τιμής: βρίσκω με το κλειδί
Στο μοντέλο κλειδιού–τιμής, κάθε κλειδί οδηγεί σε μια αντίστοιχη τιμή.[6]
| Κλειδί | Τιμή |
|---|---|
| Γλώσσα δοκιμαστικού χρήστη | Ελληνικά |
| Θέμα δοκιμαστικού χρήστη | Σκοτεινό |
Η εφαρμογή ζητά τη ρύθμιση «θέμα χρήστη» και παίρνει την τιμή «σκοτεινό». Η λογική θυμίζει μια ετικέτα που μας οδηγεί στο περιεχόμενο ενός συρταριού.
Αυτός ο τρόπος είναι χρήσιμος όταν γνωρίζουμε το κλειδί. Πιο σύνθετες αναζητήσεις χρειάζονται κατάλληλες πρόσθετες δυνατότητες ή διαφορετικό σχεδιασμό.
Μπορεί να χρησιμοποιείται για ρυθμίσεις ή προσωρινά δεδομένα, μαζί με άλλη βάση για τις κύριες πληροφορίες.
11. Wide-column: οργάνωση για συγκεκριμένες αναζητήσεις
Οι βάσεις wide-column οργανώνουν γραμμές και στήλες με διαφορετική λογική από τις σχεσιακές βάσεις. Συχνά ο σχεδιασμός ξεκινά από τις αναζητήσεις που θα γίνονται συχνότερα.[7]
Μια τεχνική ομάδα συγκεντρώνει πολλά συμβάντα από συσκευές. Μπορεί να τα οργανώνει σε ομάδες ανά συσκευή και ημέρα, ώστε να βρίσκει εύκολα τα συμβάντα μιας συγκεκριμένης περιόδου.
Το ότι βλέπουμε γραμμές και στήλες δεν σημαίνει ότι το σύστημα λειτουργεί όπως μια σχεσιακή βάση.
Προς το παρόν κρατάμε: η οργάνωση προσαρμόζεται σε συγκεκριμένους τρόπους πρόσβασης. Το wide-column δεν είναι ο ίδιος όρος με την αποθήκευση κατά στήλη που θα δούμε παρακάτω.
12. Βάση γράφου: δίνουμε έμφαση στις σχέσεις
Στη βάση γράφου, τα πράγματα που περιγράφουμε γίνονται κόμβοι και οι σχέσεις τους γίνονται συνδέσεις.[8]
Ο ασθενής P001 συνδέεται με την εξέταση E101. Η E101 συνδέεται με το μηχάνημα που την πραγματοποίησε. Έτσι μπορούμε να ακολουθούμε τις σχέσεις από το ένα στοιχείο στο άλλο.
Μπορούμε, για παράδειγμα, να αναζητούμε ποιοι ασθενείς έχουν εξετάσεις που σχετίζονται με ένα συγκεκριμένο μηχάνημα.
Σχέσεις υπάρχουν και στις σχεσιακές βάσεις. Η διαφορά είναι ο τρόπος που αναπαριστώνται και αναζητούνται. Η βάση γράφου δίνει ιδιαίτερη έμφαση στις διαδρομές συνδέσεων.
13. Χρονικές σειρές: μετρήσεις μέσα στον χρόνο
Μια βάση χρονικών σειρών δίνει έμφαση σε δεδομένα που συνοδεύονται από χρόνο, όπως επαναλαμβανόμενες μετρήσεις.[9]
| Ώρα | Τιμή |
|---|---|
| 10:00 | 20,2 °C |
| 10:05 | 20,5 °C |
| 10:10 | 20,4 °C |
Η τεχνική ομάδα θέλει να δει πώς άλλαξε η θερμοκρασία ενός χώρου στη διάρκεια της ημέρας. Ο χρόνος είναι το βασικό στοιχείο της αναζήτησης.
Τέτοια δεδομένα μπορούν να αποθηκευτούν και σε άλλες βάσεις. Η ύπαρξη μιας ημερομηνίας δεν σημαίνει ότι χρειαζόμαστε υποχρεωτικά ειδική βάση χρονικών σειρών.
14. Καθημερινές καταχωρίσεις και μεγάλες αναλύσεις
Διαφορετικές εργασίες έχουν διαφορετικές απαιτήσεις:
| Εργασία | Τι χρειάζεται; |
|---|---|
| Καθημερινή συναλλαγή — OLTP | Να κλείσουμε ή να αλλάξουμε ένα συγκεκριμένο ραντεβού. |
| Ανάλυση — OLAP | Να μετρήσουμε εξετάσεις πολλών ετών ανά μήνα και μέθοδο. |
Η αποθήκευση κατά στήλη συγκεντρώνει μαζί τιμές της ίδιας στήλης. Μπορεί να βοηθά αναλύσεις που διαβάζουν λίγα χαρακτηριστικά από πάρα πολλές εγγραφές.[10]
Κρατάμε: μια βάση που εξυπηρετεί καλά μεγάλες αναλύσεις δεν είναι αυτόματα καλύτερη για κάθε μικρή ενημέρωση.
15. Κεντρική και κατανεμημένη λειτουργία
Στην κεντρική οργάνωση, η κύρια υπηρεσία δεδομένων βρίσκεται σε κεντρική εγκατάσταση. Στην κατανεμημένη οργάνωση, δεδομένα ή αντίγραφά τους εξυπηρετούνται από περισσότερα συστήματα.
Μια υποδομή μπορεί να έχει κύριο σύστημα και ένα δεύτερο αντίγραφο. Πρέπει να είναι σαφές πότε μια αλλαγή φτάνει και στο δεύτερο σημείο.
Αναπαραγωγή σημαίνει διατήρηση αντιγράφων. Άλλη επιλογή είναι να μοιράζονται διαφορετικά τμήματα των δεδομένων σε διαφορετικούς κόμβους.
Το αντίγραφο λειτουργίας δεν αντικαθιστά αυτόματα το αντίγραφο ασφαλείας. Μια λανθασμένη διαγραφή μπορεί να μεταφερθεί και στα αντίγραφα. Χρειάζεται ξεχωριστή διαδικασία αποκατάστασης.
16. Τοπικά, ενσωματωμένα ή στο νέφος;
Η βάση μπορεί να λειτουργεί:
- Τοπικά: στον υπολογιστή ή στην υποδομή του οργανισμού.
- Ενσωματωμένη στην εφαρμογή: χωρίς ξεχωριστή δικτυακή υπηρεσία βάσης.
- Στο νέφος — cloud: σε υπηρεσία φιλοξενίας με πρόσβαση μέσω δικτύου.
Ένα εκπαιδευτικό εργαλείο με επινοημένα δεδομένα μπορεί να χρησιμοποιεί τοπικά SQLite. Ένα σύστημα πολλών τμημάτων έχει διαφορετικές ανάγκες πρόσβασης και συντονισμού.[12]
Η εγκατάσταση δεν καθορίζει από μόνη της το μοντέλο: μια σχεσιακή βάση μπορεί να λειτουργεί τοπικά ή στο νέφος. Και στις δύο περιπτώσεις χρειάζονται κατάλληλη προστασία και αντίγραφα ασφαλείας.
17. Μπορούν οι αλλαγές να γίνονται όλες μαζί;
Μια συναλλαγή μπορεί να συνδέει πολλές αλλαγές σε μία εργασία, ώστε να ολοκληρώνονται όλες μαζί ή να αναιρούνται αν αποτύχει κάποιο βήμα.
Μια εφαρμογή καταχωρίζει ένα ραντεβού και δεσμεύει την αντίστοιχη διαθέσιμη ώρα. Χρειάζεται να συντονιστούν οι αλλαγές, ώστε να μη μείνει μισοτελειωμένη η εργασία.
Εξετάζουμε τι υποστηρίζει το συγκεκριμένο σύστημα και πώς έχει σχεδιαστεί η εφαρμογή. Δεν θεωρούμε ότι όλες οι NoSQL βάσεις στερούνται συναλλαγών.[13]
Μια ολοκληρωμένη συναλλαγή δεν εγγυάται αληθινά δεδομένα. Αν επιλέξαμε λάθος ασθενή, η τεχνική επιτυχία δεν διορθώνει το λάθος.
18. Τα βασικά μοντέλα σε έναν πίνακα
Ο παρακάτω πίνακας βοηθά να ξεχωρίσουμε τη βασική ιδέα κάθε μοντέλου. Δεν αποτελεί κατάταξη από το καλύτερο στο χειρότερο.
| Μοντέλο | Πώς το θυμόμαστε; |
|---|---|
| Ιεραρχικό | Σαν δέντρο με γονείς και παιδιά. |
| Δικτυωτό | Εγγραφές με περισσότερες καθορισμένες διαδρομές σύνδεσης. |
| Σχεσιακό | Πίνακες που συνδέονται με κλειδιά. |
| Αντικειμενοστραφές | Σύνθετα αντικείμενα με χαρακτηριστικά και σχέσεις. |
| Εγγράφων | Οργανωμένα έγγραφα με πεδία και λίστες. |
| Κλειδιού–τιμής | Ένα κλειδί οδηγεί στην αντίστοιχη τιμή. |
| Wide-column | Ομάδες γραμμών οργανωμένες για συγκεκριμένες αναζητήσεις. |
| Γράφου | Κόμβοι και συνδέσεις με έμφαση στις σχέσεις. |
Η ευελιξία δεν καταργεί την ανάγκη για κανόνες. Κάθε εφαρμογή χρειάζεται κατάλληλη δομή και ελέγχους.
19. Μπορεί μια μονάδα να συνδυάζει λύσεις;
Μια μονάδα υγείας μπορεί να χρησιμοποιεί περισσότερους τρόπους αποθήκευσης για διαφορετικές εργασίες.
Μπορεί να αξιολογεί πίνακες για ασθενείς και ραντεβού, αποθήκευση χρονικών μετρήσεων για τεχνική παρακολούθηση και ξεχωριστή λύση για μεγάλες στατιστικές αναλύσεις. Αυτό είναι υποθετικό παράδειγμα, όχι έτοιμη αρχιτεκτονική.
Οι ίδιες οι ιατρικές εικόνες μπορεί να φυλάσσονται σε ξεχωριστό σύστημα, ενώ η εφαρμογή κρατά τις πληροφορίες και τις συνδέσεις τους.
Όποιος συνδυασμός κι αν επιλεγεί, χρειάζονται σωστή ταυτότητα ασθενούς, σαφής προέλευση, έλεγχοι πρόσβασης και δυνατότητα αποκατάστασης. Τα πρότυπα ανταλλαγής δεν επιβάλλουν μία μόνο εσωτερική βάση.[15]
20. Τι κρατάμε από το μάθημα;
Οι βάσεις δεδομένων διαφέρουν στον τρόπο οργάνωσης και λειτουργίας τους. Η επιλογή εξαρτάται από την εργασία που πρέπει να εξυπηρετήσουν.
- Σχεσιακή: πίνακες και κλειδιά.
- Εγγράφων: οργανωμένες ομάδες πεδίων και λιστών.
- Κλειδιού–τιμής: βρίσκουμε περιεχόμενο με ένα κλειδί.
- Γράφου: ακολουθούμε σχέσεις μεταξύ στοιχείων.
- Χρονικές σειρές: έμφαση στην εξέλιξη μετρήσεων στον χρόνο.
Ξεχωρίζουμε πάντα πώς οργανώνονται τα στοιχεία, πού λειτουργεί η βάση και ποια εργασία κάνει. Μια βάση μπορεί να έχει πολλές από αυτές τις περιγραφές ταυτόχρονα.
Η σωστή χρήση και οι έλεγχοι είναι απαραίτητα σε κάθε είδος βάσης.
Πηγές και περαιτέρω μελέτη
Οι παρακάτω πηγές περιλαμβάνονται στο αρχικό εκπαιδευτικό υλικό και προσφέρονται για περισσότερη μελέτη. Τα παραδείγματα είναι υποθετικά και δεν αποτελούν προτάσεις επιλογής συστήματος. Για το μάθημα αρκεί η κατανόηση των βασικών διαφορών. Οι σύνδεσμοι χρειάζονται σύνδεση στο διαδίκτυο.
- OpenStax, Rice University — Introduction to Computer Science, §8.4: Nonrelational Database Management Systems Ιεραρχικά και μη σχεσιακά μοντέλα. Η χρήση εδώ αφορά την ταξινόμηση, όχι τεχνική ανάλυση του θεωρήματος CAP.
- IBM — What Is a Database? Πλοηγούμενα, αντικειμενοστραφή, πολυμοντελικά και φιλοξενούμενα στο νέφος συστήματα.
- PostgreSQL 18 — §2.2: Concepts Σχεσιακό μοντέλο, πίνακες και βασική οργάνωση.
- PostgreSQL 18 — §8.14: JSON Types Δυνατότητες JSON/JSONB σε σχεσιακό σύστημα.
- MongoDB — Data Modeling Έγγραφα, ενσωμάτωση και αναφορές με βάση την πρόσβαση στα δεδομένα.
- Redis — Keys and Values Μοντέλο κλειδιού–τιμής και εντοπισμός αντικειμένων.
- Apache Cassandra — Architecture: Dynamo Wide-column μοντέλο, κατατμήσεις και οργάνωση γραμμών.
- Neo4j — What Is a Graph Database? Κόμβοι, σχέσεις, ιδιότητες και διαδρομές.
- InfluxData — What Is a Time Series Database? Χρονικά επισημασμένες μετρήσεις και συμβάντα, τακτικές και ακανόνιστες χρονικές σειρές.
- ClickHouse — What Is ClickHouse? Αναλυτική επεξεργασία και φυσική αποθήκευση κατά στήλη.
- PostgreSQL 18 — Chapter 26: High Availability, Load Balancing, and Replication Διάταξη υπηρεσιών, αναπαραγωγή και διαθεσιμότητα.
- SQLite — Appropriate Uses for SQLite Ενσωματωμένη και τοπική χρήση βάσης.
- MongoDB — Transactions Συναλλαγές πολλών εγγράφων και όρια υλοποίησης.
- MongoDB — Schema Validation Έλεγχοι σχήματος, τύπων και απαιτούμενων πεδίων.
- HL7 International — FHIR R4: Using FHIR in Persistent Stores Διάκριση ανταλλαγής και εσωτερικού μοντέλου αποθήκευσης.
- HL7 International — FHIR R5: ImagingStudy Αναπαράσταση μελέτης και αναφορές προς αρχεία εικόνων.
- ΑΠΔΠΧ — Ασφάλεια επεξεργασίας Τεχνικά και οργανωτικά μέτρα σε συνάρτηση με τους κινδύνους.
- PostgreSQL 18 — §3.4: Transactions Ατομικότητα και λογική ομαδοποίηση ενημερώσεων.
- PostgreSQL 18 — §5.5: Constraints Έλεγχοι δεδομένων και συσχετίσεων στο σχεσιακό μοντέλο.
- PostgreSQL 18 — Chapter 25: Backup and Restore Πολιτική αντιγράφων και αποκατάστασης, ως διαφορετική ανάγκη από την αναπαραγωγή.