ODBC εναντίον OLEDB
Συνήθως, οι εφαρμογές λογισμικού είναι γραμμένες σε μια συγκεκριμένη γλώσσα προγραμματισμού (όπως Java, C, κ.λπ.), ενώ οι βάσεις δεδομένων δέχονται ερωτήματα σε κάποια άλλη γλώσσα συγκεκριμένης βάσης δεδομένων (όπως η SQL). Επομένως, όταν μια εφαρμογή λογισμικού χρειάζεται πρόσβαση σε δεδομένα σε μια βάση δεδομένων, απαιτείται μια διεπαφή που μπορεί να μεταφράζει γλώσσες μεταξύ τους (εφαρμογή και βάση δεδομένων). Διαφορετικά, οι προγραμματιστές εφαρμογών πρέπει να μάθουν και να ενσωματώσουν συγκεκριμένες γλώσσες βάσης δεδομένων στις εφαρμογές τους. Το ODBC (Open Database Connectivity) και το OLEDB (Object Linking and Embedding, Database) είναι δύο διεπαφές που λύνουν αυτό το συγκεκριμένο πρόβλημα. Το ODBC είναι μια ανεξάρτητη διεπαφή πλατφόρμας, γλώσσας και λειτουργικού συστήματος που μπορεί να χρησιμοποιηθεί για το σκοπό αυτό. Το OLEDB είναι ο διάδοχος του ODBC.
Τι είναι το ODBC;
Το ODBC είναι μια διεπαφή για πρόσβαση σε συστήματα διαχείρισης βάσεων δεδομένων (DBMS). Το ODBC αναπτύχθηκε από την SQL Access Group το 1992 σε μια εποχή που δεν υπήρχε τυπικό μέσο για την επικοινωνία μεταξύ μιας βάσης δεδομένων και μιας εφαρμογής. Δεν εξαρτάται από μια συγκεκριμένη γλώσσα προγραμματισμού ή ένα σύστημα βάσης δεδομένων ή ένα λειτουργικό σύστημα. Οι προγραμματιστές μπορούν να χρησιμοποιήσουν τη διεπαφή ODBC για να γράψουν εφαρμογές που μπορούν να αναζητήσουν δεδομένα από οποιαδήποτε βάση δεδομένων, ανεξάρτητα από το περιβάλλον στο οποίο εκτελείται ή τον τύπο του DBMS που χρησιμοποιεί.
Επειδή το πρόγραμμα οδήγησης ODBC λειτουργεί ως μεταφραστής μεταξύ της εφαρμογής και της βάσης δεδομένων, το ODBC είναι σε θέση να επιτύχει την ανεξαρτησία της γλώσσας και της πλατφόρμας. Αυτό σημαίνει ότι η εφαρμογή απαλλάσσεται από το βάρος της γνώσης της συγκεκριμένης γλώσσας της βάσης δεδομένων. Αντίθετα, θα γνωρίζει και θα χρησιμοποιεί μόνο τη σύνταξη ODBS και το πρόγραμμα οδήγησης θα μεταφράσει το ερώτημα στη βάση δεδομένων σε μια γλώσσα που μπορεί να κατανοήσει. Στη συνέχεια, τα αποτελέσματα επιστρέφονται σε μορφή κατανοητή από την εφαρμογή. Το API λογισμικού ODBC μπορεί να χρησιμοποιηθεί τόσο με σχεσιακά όσο και με μη σχεσιακά συστήματα βάσεων δεδομένων. Ένα άλλο σημαντικό πλεονέκτημα της ύπαρξης του ODBC ως καθολικού ενδιάμεσου λογισμικού μεταξύ μιας εφαρμογής και μιας βάσης δεδομένων είναι ότι κάθε φορά που αλλάζει η προδιαγραφή της βάσης δεδομένων, το λογισμικό δεν χρειάζεται να ενημερώνεται. Μόνο μια ενημέρωση του προγράμματος οδήγησης ODBC θα ήταν αρκετή.
Τι είναι το OLEDB;
Το OLEDB είναι ένα API δεδομένων που αναπτύχθηκε από τη Microsoft. Επιτρέπει την πρόσβαση σε δεδομένα από μια μεγάλη γκάμα πηγών δεδομένων. Υλοποιείται χρησιμοποιώντας τη λειτουργία COM (Component Object Mode) της Microsoft. Το OLEDB θεωρείται διάδοχος του ODBC και μπορεί να χειριστεί πηγές δεδομένων σε πολύ υψηλότερο επίπεδο σε σύγκριση με το ODBC. Στην ουσία, το OLEDB επεκτείνει τις δυνατότητες ODBC σε μη σχεσιακές βάσεις δεδομένων (π.χ. βάσεις δεδομένων αντικειμένων και υπολογιστικά φύλλα). Αυτό σημαίνει ότι το OLEDB μπορεί να χρησιμοποιηθεί με βάσεις δεδομένων που δεν χρησιμοποιούν SQL. Το OLEDB αναπτύχθηκε ως μέρος του Microsoft Data Access Components (MDAC).
Ποια είναι η διαφορά μεταξύ ODBC και OLEDB;
Εάν ο προγραμματιστής δεν είναι εξοικειωμένος με το COM, τότε το ODBC είναι η καλύτερη επιλογή. Όμως, το ODBC είναι καλό μόνο για σχεσιακές βάσεις δεδομένων, ενώ το OLEDB είναι κατάλληλο τόσο για σχεσιακές όσο και για μη σχεσιακές βάσεις δεδομένων. Εάν η βάση δεδομένων δεν υποστηρίζει OLE (non-OLE περιβάλλοντα) τότε το ODBC είναι η καλύτερη επιλογή. Εάν το περιβάλλον δεν είναι SQL, τότε πρέπει να χρησιμοποιήσετε OLEDB (επειδή το ODBC λειτουργεί μόνο με SQL). Ομοίως, εάν απαιτούνται διαλειτουργικά στοιχεία βάσης δεδομένων, τότε πρέπει να χρησιμοποιηθεί το OLEDB αντί για το ODBC. Ωστόσο, για δεδομένα 16-bit, η πρόσβαση στο ODBC είναι η μόνη επιλογή (το OLEDB δεν υποστηρίζει 16-bit). Τέλος, το OLEDB είναι η καλύτερη επιλογή για σύνδεση σε πολλές βάσεις δεδομένων ταυτόχρονα (το ODBC μπορεί να συνδεθεί μόνο σε μία βάση δεδομένων τη φορά).