OODB
Τι είναι αντικειμενοστραφής βάση δεδομένων (Object-Oriented Database – OODB);
Ερώτηση που πιάνει τον πυρήνα του “αντικειμενοστραφούς” τρόπου σκέψης τόσο στον προγραμματισμό όσο και στις βάσεις δεδομένων.
“αντικειμενοστραφές” (object-oriented) γενικά; σημαίνει ότι:
- Η πληροφορία και οι ενέργειες πάνω της οργανώνονται σε αντικείμενα (objects).
- Κάθε αντικείμενο συνδυάζει δεδομένα (data) και συμπεριφορές (methods)./ behaviours
- Χρησιμοποιείται κυρίως για δομημένο, επεκτάσιμο και επαναχρησιμοποιήσιμο κώδικα (loop-return;;;;)
OOP γλώσσες
Τι είναι αντικειμενοστραφής γλώσσα προγραμματισμού (π.χ. Java, Python, C++, Ruby);
Είναι γλώσσες που βασίζονται στην έννοια της κλάσης (class) και του αντικειμένου (object).
Οι βασικές ιδιότητες τους είναι:
Ιδιότητα | Περιγραφή |
---|---|
Encapsulation (Εγκλεισμός) | Τα δεδομένα + μέθοδοι είναι σε “πακέτο” |
Inheritance (Κληρονομικότητα) | Κλάσεις κληρονομούν ιδιότητες από άλλες |
Polymorphism (Πολυμορφισμός) | Ένα interface – πολλές διαφορετικές υλοποιήσεις |
Abstraction (Αφαίρεση) | Κρύβεται η πολυπλοκότητα πίσω από απλά interfaces |
Τι είναι αντικειμενοστραφής βάση δεδομένων (Object-Oriented Database – OODB);
Είναι μια βάση δεδομένων όπου:
- Αποθηκεύονται δεδομένα ως αντικείμενα, με την ίδια δομή που έχουν στον κώδικα.
- Υποστηρίζονται κλάσεις, υποκλάσεις, μέθοδοι, και συσχέτιση αντικειμένων (όπως στον OOP κώδικα).
- Αντί για πίνακες (όπως στις σχεσιακές βάσεις), έχεις αντικείμενα που περιέχουν άλλα αντικείμενα, ακόμα και μεθόδους.
Ποια είναι η σχέση ανάμεσα σε OOP γλώσσες και OODB βάσεις;
Η σχέση είναι στενή – ουσιαστικά, η αντικειμενοστραφής βάση δεδομένων είναι το φυσικό “ταίρι” μιας object-oriented γλώσσας.
Παραδείγματα:
- Σε μια Java εφαρμογή έχεις μια
class Book
και σε μια OODB μπορείς να αποθηκεύσεις το ίδιο αντικείμενο Book, με τις ιδιότητές του (π.χ. τίτλος, συγγραφέας) και τις μεθόδους του (π.χ. getAuthor()). - Δεν χρειάζεται να “μεταφράσεις” το αντικείμενο σε πίνακα, όπως σε SQL.
➤ Αυτό ονομάζεται impedance mismatch (ασυμβατότητα αναπαράστασης), και είναι κάτι που οι OODB προσπαθούν να εξαλείψουν.
Ιδιότητες αντικειμενοστραφών βάσεων δεδομένων:
Ιδιότητα | Ανάλυση |
---|---|
Αντικείμενα | Οι εγγραφές είναι instances αντικειμένων, όχι απλοί πίνακες |
Κλάσεις και Ιεραρχίες | Υποστηρίζεται κληρονομικότητα, όπως στις OOP γλώσσες |
Εγκλεισμός (Encapsulation) | Τα δεδομένα “ζουν” μέσα στα αντικείμενα με τις μεθόδους τους |
Αναφορές (References) | Τα αντικείμενα μπορούν να περιέχουν άλλα αντικείμενα |
Επιμονή (Persistence) | Τα αντικείμενα αποθηκεύονται και συνεχίζουν να υπάρχουν μετά την εκτέλεση |
Πολυμορφισμός | Μπορεί να έχεις διαφορετικές μορφές της ίδιας κλάσης αποθηκευμένες |
Πώς χρησιμοποιούνται σήμερα;
- Οι αντικειμενοστραφείς βάσεις (OODBMS όπως ObjectDB, db4o) δεν είναι τόσο διαδεδομένες όσο οι σχεσιακές (SQL), αλλά χρησιμοποιούνται σε εξειδικευμένες εφαρμογές (CAD, επιστημονικά μοντέλα, μεγάλα συστήματα αντικειμένων).
- Αντίθετα, σήμερα πολλές εφαρμογές χρησιμοποιούν object-relational mappers (ORM) όπως Hibernate ή SQLAlchemy που γεφυρώνουν την απόσταση μεταξύ OOP κώδικα και σχεσιακών βάσεων.
Συνοψίζοντας:
Όρος | Αντικειμενοστραφής Γλώσσα | Αντικειμενοστραφής Βάση Δεδομένων |
---|---|---|
Σκοπός | Οργάνωση λογικής και συμπεριφοράς | Αποθήκευση δεδομένων ως αντικείμενα |
Βασική μονάδα | Κλάση / Αντικείμενο | Αντικείμενο με ιδιότητες + μεθόδους |
Υποστηρίζει | Encapsulation, Inheritance, Polymorphism | Classes, Hierarchies, Object identity |
Σχέση | Παράγει και διαχειρίζεται αντικείμενα | Αποθηκεύει και επαναχρησιμοποιεί αυτά τα αντικείμενα |
πιο φιλοσοφικά ή καλλιτεχνικά:
πώς θα έμοιαζε μια αντικειμενοστραφής βάση “μνήμης” ή “αισθήσεων” σε ένα γενερατίβε έργο τέχνης! Έχει πολύ ενδιαφέρον.
Ευχαριστούμε βαθιά το φίλο μας για τη σημαντική βοήθειά του
Τα ανάποδα εξολομογητήρια του Rauschenberg μπορεί με όλα αυτά..