Кстати, интересно было бы проанализировать технологии, которые позволяют добиться "базонезависимости". Я неплохо знаю SAP R/3, так вот там это свойство поддерживаетсмя (в очень общих чертах) следующими средствами:zVlad wrote:Многие приложения пишутся базо-независимыми, как то PeopleSoft, SAP R3, and so on.
- ядро системы (SAP kernel, несколько сотен мегабайт исполняемых файлов, пишется на C/C++, в последнее время и на Java) свое для каждой СУБД. Конечно, на уровне исходников, вероятно, это единая система кода, но все же.
- SAP R/3 никак не использует возможности СУБД для поддержания ссылочной целостности, вместо этого имеет собственный словарь данных на уровне приложения. В БД из нескольких десятков тысяч объектов нет ни одного constraint'а, даже primary key (если не считать таковым not null, который по умолчанию имеется на практически всех полях).
- используются только три типа данных - varchar2, number и long row. long row ипользуется в "непрозрачных" таблицах словаря данных R/3, для которых отсутствует прямое отображение объекта R/3 в объект БД.
- на уровне приложения используется собственная система блокировок и собственная реализация SQL, которая работает с объектами словаря R/3. Разрешено, впрочем, использовать и native SQL, но это сразу убивает переносимость.
Как Вы понимаете, подобное использование СУБД полностью исключает возможность их сравнения по уровню поддержки стандартов и вообще по функциональности. Играют роль только стабильность, производительность на большом объеме элементарных операций и средства администрирования.