DB2 UDB V8.1 Oracle9i R2 MS SQL Server 2000 A technical comp

hren
Уже с Приветом
Posts: 507
Joined: 15 May 2002 13:30
Location: Moscow, Russia

Post by hren »

zVlad wrote:Многие приложения пишутся базо-независимыми, как то PeopleSoft, SAP R3, and so on.
Кстати, интересно было бы проанализировать технологии, которые позволяют добиться "базонезависимости". Я неплохо знаю SAP R/3, так вот там это свойство поддерживаетсмя (в очень общих чертах) следующими средствами:

- ядро системы (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, но это сразу убивает переносимость.

Как Вы понимаете, подобное использование СУБД полностью исключает возможность их сравнения по уровню поддержки стандартов и вообще по функциональности. Играют роль только стабильность, производительность на большом объеме элементарных операций и средства администрирования.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

Мда
А учитывая что MS SQL server для таблиц без primary key работает значитально хуже... Особенно по блокировкам...

Я бы выразил это так.
Аппликация, которая одинаково хорошо работает со всеми СУБД, одинаково плохо работает с каждой в отдельности (c) я
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
zVlad
Уже с Приветом
Posts: 15409
Joined: 30 Apr 2003 16:43

Post by zVlad »

hren wrote:
zVlad wrote:Многие приложения пишутся базо-независимыми, как то PeopleSoft, SAP R3, and so on.
Кстати, интересно было бы проанализировать технологии, которые позволяют добиться "базонезависимости"............


Аналогичная картина наблюдается в приложении (класса ERP), которое мы сапортим. Никаких примудростей, ради которых вендоры БД выпускают новые версии не используются. Я бы очертил глубину использования РБД сикуэлом и индексами для производительности. Плюс администрирование данных, конечно.
А странно это. Все три основных игрока имеют много больше сходств не сегодня. Может играет роль инерция набранная в прошлом? Наш вендор начинал еще на VSAM, так у него и таблички все как VSAM файлы. Даже VARCHAR не используется и все NOT NULL.
Да что БД. У нас вся бизнес-логика написана и пишется на CICS/Кобол-е, как для DB2 на мэйнфрэйм, так и для Оракла на Unix (про версию на MS SQL не слышал). Клиент был на VB - скрин-скрапер с CICS экранов. Недавно появился клиент на Java - тот же скрин-скрапер плюс кеширование панелек на Web Server-e, и конфигуратор с использованием сервлет. Ни строчки бизнес-логики не перешло на Java. Дизайн кнопок меняется - больше ничего не меняется.
Мне кажется у PeopleSoft-a мозгов больше в БД. Не знаю.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

А еще кто то мне говорил что в какой то ERP... не Axapta ли ? Хвалились что они не используют серверных транзакций потому что у них "свои" транзакции
Убил бы.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
hren
Уже с Приветом
Posts: 507
Joined: 15 May 2002 13:30
Location: Moscow, Russia

Post by hren »

Про транзакции и вообще среду программирования в САПе я забыл написать. Там тоже свои транзакции. Весь функционал системы написан на ее собственном языке - ABAP, код хранится в базе виде исходников и прекомпилированного кода. Из ABAPа можно использовать его встроенный SQL, который работает с объектами словаря приложения и с локальными для программы объектами (внутренними таблицами), которые представляют собой довольно своеобразный механизм, сочетающий буферизацию и управление курсорами. Контроля над курсорами почти нет, многие вещи на уровне БД выглядят совсем не так, как в коде. Например, join внутри ABAPовской программы в базу может прийти в виде множества одинаковых запросов - ABAP сделает из него вложенный цикл, причем каждая итерация, естественно, сделает open и fetch. Для обработки апдейтов тоже есть свой механизм, включающий специализированные update-процессы. Апдейты делаются группами, каждая группа состоит из шагов, причем эти шаги имеют множество атрибутов, значения которых определяют их критичность для всей транзакции, возможность параллельной обработки и порядок обработки в целом. Несмотря на то, что SAP утверждает, что его бизнес-транзакции - это all or nothing примитивы, на деле при неудаче откатываются не все шаги (не буду вдаваться в детали - сложно), а при некоторых типах неудач - только один шаг. Транзакции БД как-то используются, конечно, но как - решает интерфейс (ядро). В явном виде можно контролировать (до некоторой степени) только бизнес-транзакции приложения.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Post by Dmitry67 »

hren, ну что я скажу - мрак
Одно хорошо - наверное зарплата Саповца компенсирует количество геморроя архитектуры
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014

Return to “Вопросы и новости IT”