Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Engine-independent DB Application - мосты и окна   Найти похожие ветки 

 
Vlad ©   (2004-06-29 20:54) [40]


> Sergey Masloff   (29.06.04 20:46) [38]


> Да там компоненты и не нужны. Таким компонентом является
> ADO

Ну как это не нужны ? Разве не лучше когда прямой доступ (ну или хотябы через библиотеки клиента), а ADO пока там эти данные через свои OLE объекты перекачает, это ж какая потеря скорости.


 
Mim1 ©   (2004-06-29 20:54) [41]

К стати при реализации среднего зверна можно на него возложить задачу синхронизации баз данных между удаленными серверами.


 
Игорь Шевченко ©   (2004-06-29 22:33) [42]

Ihor Osov"yak ©   (29.06.04 20:04)


> А задач, где Оракл с его мощью действительно нужен - не
> так уж много.


Вот мы, например, используем Oracle по нескольким причинам. Во-первых, мы с ним начали работать 10 лет назад, когда серьезной альтернативы ему, все-таки, не было по всем его возможностям. У нас был выбор - либо Sybase либо Oracle, выбор решился в пользу Oracle из-за его масштабируемости. Во-вторых, у Oracle очень сильно, по сравнению с Interbase, развит язык процедур и триггеров (про MSSQL ничего не скажу, я его совсем не знаю), В-третьих, сервер Oracle все-таки попроизводительней будет на зубодробительных запросах, а их есть у нас. В четвертых, объем обрабатываемых данных, все-таки, не маленький, и масштабируемость Oracle очень удачно вписывается в эту обработку. И в пятых, на данный момент у нас довольно большая часть бизнес-логики написана именно на PL/SQL и я не представляю, чтобы ее можно было безболезненно и в относительно разумные сроки перенести на какую-либо платформу сервера баз данных.

С уважением,


 
Ломброзо ©   (2004-06-30 01:16) [43]

Vlad ©   (29.06.04 20:54) [40]

Я надеюсь, Вы понимаете, что выбор, скажем, 100000 строк вовсе не означает создания движком ADO 100000 COM-объектов? И откуда такое отношение к COM/OLE? Работа через COM подразумевает всего-навсего более частый вызов виртуальных методов, каковые используются в ООП сплошь и рядом, и даже, представьте, в VCL.


 
Ihor Osov'yak ©   (2004-06-30 01:56) [44]

2 [42] Игорь Шевченко ©   (29.06.04 22:33)

У Вас, все же, как я представляю, задачи под стать Ораклу. Я  же имел в виду случаи, когда ставят ворованный Оракл, совершенно не думая,  сколько потом обойдется легализация, в сколько обойдется администрирование.. А задачу в конечном итоге решают такову и такими методами, что толку от этого Оракла..

> Oracle очень сильно, по сравнению с Interbase
Это все же вещи с разных весовых категорий. Это как бы шустренького ЗИЛа с БЕЛАЗом сравнить.

относительно масштабируемости. Да, в IБ это одно из относительно слабых мест, кажется, в седьмой версии есть некоторые улучшения в этом направлении, но конкреино сказать не могу, я сейчас активно базами не занимаюсь, так, поддерживаю на ходу 2 проекта примерно 4-летней давности..

> развит язык процедур
Смотрел немного, действительно мощь.. И они будут после этого еще говорить о многоплатформенности с точки зрения движка :-). На MSSQL делал один маленький проект, после ИБ немного непрывычно было, но я бы не сказал, что там намного мощнее с точки зрения процедур, тригерров (вопросы той-же масштабируемости не запрагиваем). Есть также вещи, которые на ИБ заметно удобнее делаются, но может это костность мышления, все же мозги в сторону ИБ закручены. Вообще-то ожидал более сильного впечатления.. Может не разобрался, все таки с ИБ работал года четыре, с MSSQL от силы месяца два.


 
vuk ©   (2004-06-30 11:50) [45]

to Ihor Osov"yak ©   (30.06.04 01:56) [44]:
>И они будут после этого еще говорить о многоплатформенности с
>точки зрения движка
Игорь, речь не о переносимости серверного процедурного кода. Никто этого и не говорил. Речь о том, что если есть привычка к работе с только процедурами, легко придумать схему переносимого промежуточного слоя (ПС). Со стороны клиента это будут вызовы процедур ПС (не в смысле БД, а в смысле языка, на котором написан клиент), а уже сам этот ПС будет работать с БД. Как он это будет делать - уже не важно.

>На MSSQL делал один маленький проект, после ИБ немного
>непрывычно было, но я бы не сказал, что там намного мощнее с
>точки зрения процедур
Единственное отличие, в MSSQL нельзя делать select из результата процедуры. А так, разницы не очень много.

>тригерров
Вот здесь согласен, с триггерами в IB несколько проще.

>Есть также вещи, которые на ИБ заметно удобнее делаются
Многие вещи, связанные с манипуляцией данными в MSSQL делаются проще, чем в IB т.к. сам язык запросов помощнее будет.


 
iZEN ©   (2004-06-30 18:27) [46]

to vuk ©   (30.06.04 11:50) [45].
Вы, вот, всё упираете на хранимые процедуры, каждый раз переписывая их на сервере под конкретную СУБД.
Что ж, это один из выходов в переноси большей части логики на сервер БД, да и из других языков достучаться более реально, нежели через сервер приложений (написанный, скажем, на Delphi/ADO).
Но в то же время теряется всякий смысл использования продвинутой логики в клиентском приложении (зачем? всё же определено на сервере, И на ДРУГОМ языке - SQL).
Таким образом, слой СУБД превращается в СЕРВЕР ПРИЛОЖЕНИЙ, который программируется хранимыми процедурами. Плохо это или хорошо - вопрос не в этом (в зависимости от целей).
Но почему-то в других парадигмах полностью отказываются от сервера приложений в СУБД, заменяя универсальным промежуточным слоем, который работает лиш с тупыми плоскими таблицами без триггеров и хранимых процедур (очень простая схема БД) - всё это (целостность данных, внесение данных, предварительный обсчёт, выдачу данных) он обеспечивает сам. При этом клиент ВООБЩЕ не знает, что он работает с СУБД - сервер приложений закрывает всю видимость таблиц от клиента. Получается такая вот информационная система с чётко определённым набором видимых для клиента методов: клиент физически не может послать произвольный SQL-запрос, а в Вашем случае - может, если забыли "запретить".

Лучше РАЗРЕШАТЬ чем ЗАПРЕЩАТЬ. Иначе Вы моделируете ненадёжную систему безопасности Windows.


 
vuk ©   (2004-06-30 18:57) [47]

to iZEN ©   (30.06.04 18:27) [46]:
>Вы, вот, всё упираете на хранимые процедуры
Я говорю не столько про хранимые процедуры, сколько про процедурный интерфейс к данным. Разница есть.

>Но в то же время теряется всякий смысл использования продвинутой
>логики в клиентском приложении
Совершенно верно. Клиент, по большей части, только отображением данных и занимается.

>Но почему-то в других парадигмах полностью отказываются от
>сервера приложений в СУБД, заменяя универсальным промежуточным
>слоем, который работает лиш с тупыми плоскими таблицами без
>триггеров и хранимых процедур (очень простая схема БД) - всё это
>(целостность данных, внесение данных, предварительный обсчёт,
>выдачу данных) он обеспечивает сам.

Вот при очень простой схеме БД это еще может и прокатит. Но на деле сложность БД зависит не от желания разработчиков, а от представления предметной области. А вынесение проверок целостности с сервера - вообще неразумный шаг. Зачем, если сервер это сделает проще и эффективнее?

>а в Вашем случае - может, если забыли "запретить".
Кто сказал? Наоборот. Не может, пока не разрешили.

>Иначе Вы моделируете ненадёжную систему безопасности Windows.
Что-то у Вас странное какое-то представление о системе безопасности Windows...


 
iZEN ©   (2004-06-30 19:10) [48]

/**vuk ©   (30.06.04 18:57) [47]:
Вот при очень простой схеме БД это еще может и прокатит. Но на деле сложность БД зависит не от желания разработчиков, а от представления предметной области. А вынесение проверок целостности с сервера - вообще неразумный шаг. Зачем, если сервер это сделает проще и эффективнее?
*/
Вот именно. Предметная область часто плохо "ложится" в реляционную схему, иногда даже невозможно её смоделировать на языке SQL, поэтому появляются примочки к СУБД в виде стороннего кода в DLL.

А почему бы тогда вообще не отказаться какого-либо кода в сервере СУБД, а перенести ВСЮ логику на сервер приложений, где можно использовать полную мощь ООП-языка программирования, а не "костыли" в виде "примочек" и заплаток проблемной области.
В этом случае в СУБД хранятся только плоские таблицы и больше ничего. СУБД обеспечивает только быстрый поиск записей, соединения и т.д. и выдачу запрошенного набора данных серверу приложений, а тот сам пусть разбирается, моделирует, устанавливает связи. Это же эффективнее (программирование на языке высокого уровня более приближено к предметной области, чем SQL), не так ли?

/**
>а в Вашем случае - может, если забыли "запретить".
Кто сказал? Наоборот. Не может, пока не разрешили.
*/
Тогда прошу прощения.

/**
>Иначе Вы моделируете ненадёжную систему безопасности Windows.
Что-то у Вас странное какое-то представление о системе безопасности Windows...
*/
Простите, но в Windows многое разрешено с момента установки, приходится закрывать очевидные вещи, вместо того, чтобы открывать когда это понадобится РЕАЛЬНО. В последних версиях одумались немножко.


 
wisekaa ©   (2004-06-30 19:15) [49]

Можно юзать dbExpress + Отказаться от наворотов на серверной части.

Драйвера для dbExpress есть почти, для любой БД, а каких нет можно самим написать, это и есть та прослойка которая не зависит от СУБД


 
vuk ©   (2004-06-30 19:30) [50]

to iZEN ©   (30.06.04 19:10) [48]:
>Предметная область часто плохо "ложится" в реляционную схему,
>иногда даже невозможно её смоделировать на языке SQL, поэтому
>появляются примочки к СУБД в виде стороннего кода в DLL.
Проблемы стоит решать по мере поступления. Когда будет эта невозможность - бум думать. А пока все что-то замечательно раскладывается в реляционные данные.

>СУБД обеспечивает только быстрый поиск записей, соединения и
>т.д. и выдачу запрошенного набора данных серверу приложений, а
>тот сам пусть разбирается, моделирует, устанавливает связи.
Красиво конечно, но эффективность именно работы с данными падает. Я уже неоднократно говорил, что вообще не вижу смысла из любви к искусству городить сервера приложений там, где можно обойтись двузвенкой.

>Это же эффективнее (программирование на языке высокого уровня
>более приближено к предметной области, чем SQL), не так ли?
Эффективнее не это, а использование для каждой задачи адекватных средств. SQL код в процедурах боле близок к данным, которыми он манипулирует и поэтому более эффективен.


 
Igorek ©   (2004-07-01 10:56) [51]

Всем большое спасибо за участие в обсуждении.

Спешу уведомить что данный подход уже практически реализован и работает. Осталось подправить клиента. Если кому интересно - могу описать подробности.


 
Vlad ©   (2004-07-01 11:06) [52]


> Ломброзо ©   (30.06.04 01:16) [43]


> выбор, скажем, 100000 строк вовсе не означает создания движком
> ADO 100000 COM-объектов?

Ну совсем за дурака-то меня не надо считать. Есть конечно чуть чуть, но не на столько же :-)


> Работа через COM подразумевает всего-навсего более частый
> вызов виртуальных методов, каковые используются в ООП сплошь
> и рядом, и даже, представьте, в VCL.

А вот представьте, мне весьма часто приходится сравнивать скорость работы ADO и компонент прямого доступа. И знаете, ADO намного(!) проигрывает. С чем это связано ? Предполагаю, именно с COM. Хотя, возможно ошибаюсь. Но факт остается фактом.


 
Игорь Шевченко ©   (2004-07-01 11:15) [53]


> Простите, но в Windows многое разрешено с момента установки,
> приходится закрывать очевидные вещи, вместо того, чтобы
> открывать когда это понадобится РЕАЛЬНО. В последних версиях
> одумались немножко.


А руководство администратора Windows почитать, конечно, не судьба


 
Ломброзо ©   (2004-07-01 11:38) [54]

Vlad ©   (01.07.04 11:06) [52]

А причём тут ADO? ADO всего-навсего делегирует вызовы соответствующему OLE DB драйверу, тот - или Native-драйверу, или сам дёргает СУБД... И если бойцы из Oracle не хотят или не могут написать нормальный OLE DB драйвер - это их проблемы. Мне лично удобнее абстракция. Зачем мне забивать голову тонкостями очередной библиотеки?


 
Igorek ©   (2004-07-01 11:53) [55]


> И если бойцы из Oracle не хотят или не могут написать нормальный
> OLE DB драйвер

MSDAORA ?


 
Vlad ©   (2004-07-01 12:25) [56]


> Ломброзо ©   (01.07.04 11:38) [54]


> И если бойцы из Oracle не хотят или не могут написать нормальный
> OLE DB драйвер

если бы да кабы...
Потому и говорю, если требуется высокое быстродействие, то глупо использовать ADO, когда есть компоненты прямого доступа.
И это касается не только Оракла, кстати.



Страницы: 1 2 вся ветка

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.6 MB
Время: 0.032 c
3-1087482339
Сергей Г
2004-06-17 18:25
2004.07.18
DBGrid


8-1083744370
Guf
2004-05-05 12:06
2004.07.18
OpenGL, текст, 2D


6-1084509491
r9000
2004-05-14 08:38
2004.07.18
Помогите, пожалуйста разобраться с trap сообщениями


1-1088683954
Plt
2004-07-01 16:12
2004.07.18
Выполнение запроса с помощью TOracleQuery (DOA) в потоке.


1-1089035087
sirsergio
2004-07-05 17:44
2004.07.18
Ошибка компиляции программы