ODBC vs OLEDB
Tipik olarak, yazılım uygulamaları belirli bir programlama dilinde yazılır (Java, C vb. gibi), veritabanları ise sorguları başka bir veritabanına özel dilde (SQL gibi) kabul eder. Bu nedenle, bir yazılım uygulamasının bir veritabanındaki verilere erişmesi gerektiğinde, dilleri birbirine çevirebilen bir arayüze (uygulama ve veritabanı) ihtiyaç duyulur. Aksi takdirde, uygulama programcılarının veritabanına özgü dilleri öğrenmesi ve uygulamalarına dahil etmesi gerekir. ODBC (Açık Veritabanı Bağlantısı) ve OLEDB (Nesne Bağlama ve Gömme, Veritabanı), bu özel sorunu çözen iki arabirimdir. ODBC, bu amaçla kullanılabilecek platform, dil ve işletim sisteminden bağımsız bir arayüzdür. OLEDB, ODBC'nin halefidir.
ODBC nedir?
ODBC, veritabanı yönetim sistemlerine (DBMS) erişmek için bir arayüzdür. ODBC, SQL Access Group tarafından 1992 yılında, bir veritabanı ile bir uygulama arasında iletişim kurmak için standart bir ortamın olmadığı bir zamanda geliştirilmiştir. Belirli bir programlama diline veya bir veritabanı sistemine veya bir işletim sistemine bağlı değildir. Programcılar, üzerinde çalıştığı ortamdan veya kullandığı DBMS türünden bağımsız olarak herhangi bir veritabanından veri sorgulayabilen uygulamalar yazmak için ODBC arabirimini kullanabilir.
ODBC sürücüsü, uygulama ve veritabanı arasında bir çevirmen görevi gördüğü için, ODBC, dil ve platform bağımsızlığını elde edebilir. Bu, uygulamanın veritabanına özgü dili bilme yükünden kurtulduğu anlamına gelir. Bunun yerine yalnızca ODBS sözdizimini bilip kullanacak ve sürücü sorguyu anlayabileceği bir dilde veritabanına çevirecektir. Daha sonra sonuçlar uygulamanın anlayabileceği bir formatta döndürülür. ODBC yazılım API'si hem ilişkisel hem de ilişkisel olmayan veritabanı sistemleriyle kullanılabilir. Bir uygulama ile bir veritabanı arasında evrensel bir ara katman yazılımı olarak ODBC'ye sahip olmanın bir başka büyük avantajı da, veritabanı spesifikasyonu her değiştiğinde, yazılımın güncellenmesine gerek olmamasıdır. Yalnızca ODBC sürücüsünün güncellenmesi yeterli olacaktır.
OLEDB nedir?
OLEDB, Microsoft tarafından geliştirilen bir veri API'sidir. Çok çeşitli veri kaynaklarından verilere erişmeyi sağlar. Microsoft'un COM (Bileşen Nesne Modu) kullanılarak uygulanır. OLEDB, ODBC'nin halefi olarak kabul edilir ve ODBC'ye kıyasla çok daha yüksek düzeyde veri kaynaklarını işleyebilir. Özünde, OLEDB, ODBC özelliklerini ilişkisel olmayan veritabanlarına (örneğin nesne veritabanları ve elektronik tablolar) genişletir. Bu, OLEDB'nin SQL kullanmayan veritabanlarıyla kullanılabileceği anlamına gelir. OLEDB, Microsoft Data Access Components'ın (MDAC) bir parçası olarak geliştirilmiştir.
ODBC ve OLEDB arasındaki fark nedir?
Programcı COM'a aşina değilse, ODBC daha iyi bir seçenektir. Ancak, ODBC yalnızca ilişkisel veritabanları için iyidir, OLEDB ise hem ilişkisel hem de ilişkisel olmayan veritabanları için uygundur. Veritabanı OLE'yi (OLE olmayan ortamlar) desteklemiyorsa, ODBC en iyi seçimdir. Ortam SQL değilse, OLEDB kullanmanız gerekir (çünkü ODBC yalnızca SQL ile çalışır). Benzer şekilde, birlikte çalışabilir veritabanı bileşenleri gerekiyorsa, ODBC yerine OLEDB kullanılması gerekir. Ancak, 16-bit veri için ODBC'ye erişim tek seçenektir (OLEDB 16-bit'i desteklemez). Son olarak, OLEDB aynı anda birden çok veritabanına bağlanmak için en iyi seçimdir (ODBC aynı anda yalnızca bir veritabanına bağlanabilir).