Це поєднання історичних / еволюційних та ринкових причин
Працюючи в Microsoft кілька років тому, було зрозуміло, що існує декілька різних пропозицій даних у розробці. Кожна з пропозицій була спрямована на конкретний ринок або випадок використання, наприклад:
Доступ був орієнтований на користувачів настільних комп’ютерів, зручних у системах індексації карт, які могли збирати програми за допомогою форм та звітів. SQL було природним доповненням. Це все використовувало власний механізм бази даних локальних машин під назвою "JET". Врешті-решт JET перейшов у бік - слово про виноградну лозу полягало в тому, що відсутність (надійного) контролю над джерелами означала, що вони втратили великий шматок джерела.
FoxPro був орієнтований на користувачів настільних ПК, які бажали швидкості порівняння реляційних даних.
SQL Server був «великою» системою баз даних на базі Enterprise / Server з усіма масштабами / потужністю / доступністю тощо, що потрібні підприємствам. IIRC, MS ліцензувала версію Sybase 6, на якій будували MSSQL.
З часом деякі межі стали розмитими - наприклад, SQL Server зараз може працювати на настільній машині, але випадок використання залишився.
Отже, це дає нам 3 "зворотні сторони" - продукти бази даних, що виробляються Microsoft.
Щоб додати до суміші, тоді доступні різні рівні API розробника для отримання доступу до цих систем:
Спочатку API не було багато в шляху - ви написали свій код всередині програми (FoxPro / Access). VBA був одним із методів.
Microsoft впровадила MS ODBC для того, щоб підключитися до конкуруючих систем, щоб Windows могла спілкуватися з великими базами даних, такими як Oracle, Sybase тощо. Excel був одним із найпомітніших програм для отримання інструментів ODBC - витягуйте дані з великої БД, маніпулюйте ними та діаграмами продуктів / графіки тощо. Багато постачальників баз даних закінчилися впроваджувати ODBC, щоб дозволити різним клієнтам підключитися, тому ця стратегія була успішною .. до певної міри - ODBC може розглядатися як представник найменшого загального знаменника.
Різні команди почали розробляти власні способи доступу до бази даних, таких як DAO (об’єкти доступу до даних) для локальних та RDO (віддалені об’єкти даних) для віддалених, доступних через VB, який був найпопулярнішим продуктом для розробників MS на той час.
Внутрішні зусилля щодо раціоналізації цих різноманітних API та надання єдиного / уніфікованого дуже гнучкого API доступу до бази даних дали нам OLEDB, але потрапити до нього було дуже важко (багато шаблонів C ++).
OLEDB не можна було використовувати від VB, тому ADO був розроблений з використанням методів ActiveX, тому він став повторно використовуватися будь-чим, що може зробити COM / OLE / ActiveX, тобто Access, Excel, VB і, отже, ASP стали доступними для баз даних.
Коли ми перейшли в епоху .NET, ADO, природно, перейшов у середовище .NET, що принесло різні переваги.
З появою LINQ, власне механізм доступу до бази даних став менш проблематичним.
Caveat - я покинув деякий час тому, тому моя пам’ять трохи нечітка