|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Уважаемые коллеги! Я недавно открыл для себя объектно-ориентированную базу данных (db4o). И вот какая мысль у меня в связи с этим возникла. Главный упрёк имеющимся реализациям ООБД, который обычно бросают -- слабая пригодность для выполнения разнообразных запросов, т.к. отсутствуют средства объединения и агрегирования данных. И это на самом деле так, РСУБД для выборки и анализа данных подходит гораздо больше. Однако, так ли уж прекрасно и РСУБД справляется с задачами анализа? Ведь обычно аналитики не используют OLTP-систему для формирования своих отчётов, а используют OLAP-кубы! Причины этого: а) в случае, если данные находятся в сильно нормализованном виде, запросы по ним выполняются довольно-таки медленно. Особенно, если не построены нужные индексы, а они ведь и не построены в OLTP-системе, т.к. индексы там заточены под задачи бизнес-транзакций, а не анализа; б) какой-нибудь тяжёлый аналитический запрос, этак на пару-тройку часов, может помешать выполнению бизнес-транзакций, что неприемлемо. Получается, что OLTP на РСУБД является типичной универсальной системой, которая справляется и с задачами текущей работы с информационной системой, и с задачами анализа. Но обе эти задачи она решает не идеально! Исходя из этого, не кажется ли вам, что перспективной структурой информационной системы может быть следующая: а) OLTP-система на ООБД, из отчётов -- только несколько наиболее стандартных. Имеем все преимущества ООБД, перечислять их не буду. б) данные из OLTP-системы ежедневно (во время наименьшей нагрузки, ночью) реплицируются в архивную базу на РСУБД. Это позволит иметь ООБД не слишком больших размеров, за счёт архивации неактуальных для текущей деятельности данных. в) по данным РСУБД ежедневно строятся необходимые аналитикам OLAP-кубы, как обычно. Получится, что каждую из задач мы решим наиболее оптимальным способом. Как вам кажется? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 09:11 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
а нифига ты не сможешь разделить базу на 2 части. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 09:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
А нафига делить базу на 2 части??? На какие части? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 09:58 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyУважаемые коллеги! Я недавно открыл для себя объектно-ориентированную базу данных (db4o). И вот какая мысль у меня в связи с этим возникла. Главный упрёк имеющимся реализациям ООБД, который обычно бросают -- слабая пригодность для выполнения разнообразных запросов, т.к. отсутствуют средства объединения и агрегирования данных. И это на самом деле так, РСУБД для выборки и анализа данных подходит гораздо больше. Однако, так ли уж прекрасно и РСУБД справляется с задачами анализа? Ведь обычно аналитики не используют OLTP-систему для формирования своих отчётов, а используют OLAP-кубы! Причины этого: а) в случае, если данные находятся в сильно нормализованном виде, запросы по ним выполняются довольно-таки медленно. Особенно, если не построены нужные индексы, а они ведь и не построены в OLTP-системе, т.к. индексы там заточены под задачи бизнес-транзакций, а не анализа; б) какой-нибудь тяжёлый аналитический запрос, этак на пару-тройку часов, может помешать выполнению бизнес-транзакций, что неприемлемо. Получается, что OLTP на РСУБД является типичной универсальной системой, которая справляется и с задачами текущей работы с информационной системой, и с задачами анализа. Но обе эти задачи она решает не идеально! Исходя из этого, не кажется ли вам, что перспективной структурой информационной системы может быть следующая: а) OLTP-система на ООБД, из отчётов -- только несколько наиболее стандартных. Имеем все преимущества ООБД, перечислять их не буду. б) данные из OLTP-системы ежедневно (во время наименьшей нагрузки, ночью) реплицируются в архивную базу на РСУБД. Это позволит иметь ООБД не слишком больших размеров, за счёт архивации неактуальных для текущей деятельности данных. в) по данным РСУБД ежедневно строятся необходимые аналитикам OLAP-кубы, как обычно. Получится, что каждую из задач мы решим наиболее оптимальным способом. Как вам кажется? Итого, вы предлагаете построить транзакционную систему на ООБД, а классическую аналитическую "архив+агрегаты+отчетность" - на РСУБД+OLAP. Пожалуйста. Никто не мешает, если ваша ООБД лучше справится с суточным потоком данных, а ночная репликация не будет глючить и создавать проблем. Только учтите все риски добавления новой технологии, посчитайте денежки и поймите, кто это будет создавать-поддерживать-оптимизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 10:25 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Да, Александр, совершенно точно, именно это я и предлагаю. Собственно, хотел здесь обсудить такое решение как одно из возможных практических применений ООБД. Мне кажется, что ООБД чисто для задач OLTP реально должно рвать РСУБД просто на части, и по скорости разработки, и по производительности, и по удобству рефакторинга. А недостатки ООБД мы решим через репликацию на, условно говоря, сервер отчётов с OLAP на РСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 10:38 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyДа, Александр, совершенно точно, именно это я и предлагаю. Собственно, хотел здесь обсудить такое решение как одно из возможных практических применений ООБД. Мне кажется, что ООБД чисто для задач OLTP реально должно рвать РСУБД просто на части, и по скорости разработки, и по производительности, и по удобству рефакторинга. А недостатки ООБД мы решим через репликацию на, условно говоря, сервер отчётов с OLAP на РСУБД. Удобство разработки - да. Рефакторинг - может быть... хотя все уже так привыкли к реляционкам, что ООБД может только добавить проблем. И очень сильно сомневаюсь насчет производительности, а в транзакционных системах только она и нужна :) ООБД интересна, когда надо быстро состряпать нечто, имеющее сложный пользовательский интерфейс, сложную бизнес-логику. Короче, когда БД вторична и на нее надо потратить минимум усилий. А вот в транзакционных системах БД первична. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:06 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Что есть такое "запрос на пару тройку часов"??? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:09 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
TORTЧто есть такое "запрос на пару тройку часов"??? Это есть кривая аналитическая система, работающая на той же схеме, куда сыпятся транзакционные данные. или "было мало денег" или "так исторически сложилось" :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:16 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
А почему сомнения насчёт производительности? Как насчёт object-relational impedance mismatch? Насколько я понимаю, OLTP-система только и делает, что создаёт и сохраняет объекты в базе данных. Значит, в случае РСУБД нужен маппинг объектной структуры на реляционную. Значит, тормоза по сравнению с ООБД. Или Вы предлагаете без ООП обойтись? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:23 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА почему сомнения насчёт производительности? Как насчёт object-relational impedance mismatch? Насколько я понимаю, OLTP-система только и делает, что создаёт и сохраняет объекты в базе данных. Значит, в случае РСУБД нужен маппинг объектной структуры на реляционную. Значит, тормоза по сравнению с ООБД. Или Вы предлагаете без ООП обойтись? ООБД дает производительность в случае, когда вы работаете с большим набором разнородных объектов и не можете прогнозировать, что приедет через секунду. Задача OLTP - быстро провести транзакцию по определенному, сто раз оптимизированному набору данных. Это совсем разные задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:38 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Давайте разберёмся. Как мне до сих пор казалось, функционирование обычной учётной системы (договора, счета, оплаты, приходы/расходы) как раз и характеризуется как "работа с большим набором разнородных объектов и нельзя прогнозировать, что приедет через секунду". Разве нет? Соответственно чтобы сохранить объект в РСУБД, нужно его замапить на реляционную структуру. Это же требует времени? В ООБД мы сразу просто сохраняем весь объект. Это ещё полбеды, а вот когда нужно вытащить некогда сохранённый объект из базы, это вообще жуть для РСУБД. С ООБД проблем никаких нет. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 11:52 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyДавайте разберёмся. Как мне до сих пор казалось, функционирование обычной учётной системы (договора, счета, оплаты, приходы/расходы) как раз и характеризуется как "работа с большим набором разнородных объектов и нельзя прогнозировать, что приедет через секунду". Разве нет? Соответственно чтобы сохранить объект в РСУБД, нужно его замапить на реляционную структуру. Это же требует времени? В ООБД мы сразу просто сохраняем весь объект. Это ещё полбеды, а вот когда нужно вытащить некогда сохранённый объект из базы, это вообще жуть для РСУБД. С ООБД проблем никаких нет. Верно? Озвучьте размеры вашей организации и кол-во филиалов, пожалуйста. Похоже, мы мыслим совсем разными масштабами :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:14 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
А причём тут моя организация? Вопрос чисто теоретический и принципиальный. В принципе -- объект сохранить быстрее в ООБД, чем в РБД? Объект прочитать быстрее из ООБД, чем из РБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:20 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА причём тут моя организация? Вопрос чисто теоретический и принципиальный. В принципе -- объект сохранить быстрее в ООБД, чем в РБД? Объект прочитать быстрее из ООБД, чем из РБД? То, о чем вы говорите - это не OLTP, а CMS. Задача OLTP-это insert и только он. Короче, ваш рецепт вполне может сработать в случае небольшой централизованной системы с небольшим объемом суточных данных в рамках небольшого предприятия, где данные заносятся в основном операторами. Позволит ускорить разработку новых фич бизнес-логики самой учетной системы. Может оказаться удачным применительно к конкретному случаю и процессу разработки. Если вы смотрите в сторону db4o, то она написана на джаве... без комментариев о производительности. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:40 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА причём тут моя организация? Вопрос чисто теоретический и принципиальный. В принципе -- объект сохранить быстрее в ООБД, чем в РБД? Объект прочитать быстрее из ООБД, чем из РБД? есть форум. сравнение СУБД, там сравнение идёт в темах по 50 старниц. А вот практических реализаций ООБД пока нет IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:42 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
А почему так вот сразу "небольшой" да "небольшой"? А вот если абстрагироваться от имеющейся практической реализации (dbo4o на java)? Аргументы можно увидеть какие-нибудь? С Вашим экспертным мнением я уже ознакомился :) А чем кстати плохо, что на яве? Если сервер приложений на яве, ну и база пусть на яве, почему нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:47 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрЗадача OLTP-это insert и только он. бедные, бедные update и delete... их выгнали из OLTP приюта. вместе с select впрочем. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 12:57 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Да, а что такое CMS (не думаю, что имеется в виду система управления сайтами :)), и почему OLTP вдруг только insert??? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 13:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА почему так вот сразу "небольшой" да "небольшой"? А вот если абстрагироваться от имеющейся практической реализации (dbo4o на java)? Аргументы можно увидеть какие-нибудь? С Вашим экспертным мнением я уже ознакомился :) А чем кстати плохо, что на яве? Если сервер приложений на яве, ну и база пусть на яве, почему нет. Мы тут практикой занимаемся или теориями? Давайте абстрагируемся. В теории можно. Реализуйте. Аргументы были приведены. Спасибо за внимание, но вы плохо ознакомились. Ява не позволяет создавать быстрые приложения. Она позволяет быстро создавать приложения. Если на обед суп грибной, пусть и на второе грибы будут. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 13:07 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Ещё раз перечитал топик, но так и не нашёл аргументов, почему сохранение/изменение объекта в ООБД было бы медленнее, чем в РБД. Пожалуйста, приведите их ещё раз, мне очень любопытно. Кстати, на сайте db4o приводятся бенчмарки, в которых эта база разрывает на таких операциях MySQL. Что и неудивительно, собственно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 13:20 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyЕщё раз перечитал топик, но так и не нашёл аргументов, почему сохранение/изменение объекта в ООБД было бы медленнее, чем в РБД. Пожалуйста, приведите их ещё раз, мне очень любопытно. Кстати, на сайте db4o приводятся бенчмарки, в которых эта база разрывает на таких операциях MySQL. Что и неудивительно, собственно. MySQL не является промышленной базой данных. Она используется для того же круга задач, что и ООБД (CMS - Content management system). Про сравнение БД вас уже направили на соотв. форум. Я пытался рассмотреть вопрос с позиций темы данного форума и сказал, что при определенных ограничениях этот подход может быть оправдан. Применение современных реализаций ООБД в транзакционной системе, занимающейся регистрацией большого объема данных в реальном времени ( OLTP - Online Transaction Processing), считаю неперспективным. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 13:58 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
P.S. Применение ООБД и, естественно, MySQL (как вполне достойной непромышленной реляционки), конечно не ограничавается только CMS. Прошу прощения за неточную формулировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 14:06 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Так я не в том форуме, значит? Ясно. А тут форум про крутейшие системы реального времени только, да? А с обычными учётными системами для средних по размерам оптово-розничных организаций мне куда? Спасибо за приведённые аргументы, кстати. А то всё "я так считаю!" да "я же сказал!"... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 14:08 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyТак я не в том форуме, значит? Ясно. А тут форум про крутейшие системы реального времени только, да? А с обычными учётными системами для средних по размерам оптово-розничных организаций мне куда? Спасибо за приведённые аргументы, кстати. А то всё "я так считаю!" да "я же сказал!"... Так я спрашивал про вашу организацию. Помните? Решение по архитектуре системы принимается не "теоретически". И не надо вопрос "можно ли применять ООБД в качестве хранилища данных самописной учетной системы средней по размерам оптово-розничной организации с учетом последующего построения над ней системы аналитической отчетности?" формулировать как теоретический вопрос о применении такой системы на все случаи жизни. Случаи разные бывают. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 14:27 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafmбедные, бедные update и delete... их выгнали из OLTP приюта. вместе с select впрочем. Забыли наверное что OLTP на 99% это select ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 14:46 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод iscrafmбедные, бедные update и delete... их выгнали из OLTP приюта. вместе с select впрочем. Забыли наверное что OLTP на 99% это select Ребята, вы OLTP с OLAP не путаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 15:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр _мод iscrafmбедные, бедные update и delete... их выгнали из OLTP приюта. вместе с select впрочем. Забыли наверное что OLTP на 99% это select Ребята, вы OLTP с OLAP не путаете? Видимо, ребята считают, что OLTP - это все то, чем занимаются не-OLAP системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 15:17 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрРебята, вы OLTP с OLAP не путаете? ребята просто считают, что в OLTP базы данные не только вставляют, а еще редактируют, удаляют. Просто немного интенсивней чем в OLAP и транзакции покороче. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 15:31 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
хотя... варианты с Helper Database, в которую только массово делаются insert конечно существуют. Любая биллинговая система тому пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 15:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
даже простой инсерт и то требует какой-то предварительной проверки. А уж ручной ввод документов - это десятки селектов на один инсерт. Т.е. для олтп тоже нужна РСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 15:55 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Если вся логика на сервере приложений, то какие там десятки селектов на один инсерт? Поэтому-то ООБД и рвёт РСУБД, что для РСУБД действительно кучу всякого лишнего нужно проделать, прежде чем объект корректно сохранится в базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 16:42 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Итого, вы предлагаете построить транзакционную систему на ООБД, а классическую аналитическую "архив+агрегаты+отчетность" - на РСУБД+OLAP. Поправлю. Транзакционная система с использованием ОО настройки над РСУБД , а аналитическая система "архив+агрегаты+отчетность" - на РСУБД+OLAP. Удобно, делал (делаю), но для каждого слона своя пуля со своей ценой ... ______________________________________________________ Ох ! Болять мои крылья ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 16:46 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Никаких надстроек! ОО надстройки -- это ещё тормознее и сложнее, чем просто вручную мапить объекты в РСУБД. Гораздо быстрее во всех смыслах использовать сразу ООБД. В этом и суть топика. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 16:51 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyГораздо быстрее во всех смыслах использовать сразу ООБД Скажу заказчеГу, чтобы выкинул из ТЗ слова типа "ORACLE" & "MS SQL" Мотивировка - "У вас неправильные пули для слонов" ______________________________________________________ Ох ! Болять мои крылья ... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 16:59 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Отчего же выкинуть, для OLAPа MS SQL отлично подойдёт... :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:05 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyНикаких надстроек! ОО надстройки -- это ещё тормознее и сложнее, чем просто вручную мапить объекты в РСУБД. Гораздо быстрее во всех смыслах использовать сразу ООБД. В этом и суть топика. А вы не задумавались, что "мапить" надо не всегда и не все. Ну на кой нагруженную транзакционным потоком базу забивать ненормализованной информацией уровня бизнес-логики или, не дай Бог, пользовательского интерфейса? Как раз реляционка заставляет задуматься - что надо хранить, а что - нет. Потом это все разгребать и реплицировать (сама по себе очень некислая задача - перелить то, что нужно, из изменчивой ООБД в нормализованное хранилище реляционки). Да на одну поддержку логики репликации у вас уйдет все, что вы наэкономили. Короче, нужно крепко думать, взвешивать за и против. Выгода даже без споров о производительности далеко не очевидна. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:23 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр А вы не задумавались, что "мапить" надо не всегда и не все. Ну на кой нагруженную транзакционным потоком базу забивать ненормализованной информацией уровня бизнес-логики или, не дай Бог, пользовательского интерфейса? Я извиняюсь, а кто же заставляет сохранять в ООБД все объекты подряд??? Титов Александр Как раз реляционка заставляет задуматься - что надо хранить, а что - нет. Что реляционка заставляет задуматься -- это просто не то слово :) Титов Александр Потом это все разгребать и реплицировать (сама по себе очень некислая задача - перелить то, что нужно, из изменчивой ООБД в нормализованное хранилище реляционки). Да на одну поддержку логики репликации у вас уйдет все, что вы наэкономили. Судя по описанию репликации между db4o и РСУБД, всё делается элементарно и почти автоматически. Реклама? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:34 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy какие там десятки селектов на один инсерт? напишите ввод хотя-бы накладной и посчитайте операторы ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:40 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод Fuzzy какие там десятки селектов на один инсерт? напишите ввод хотя-бы накладной и посчитайте операторы Вы понимаете, что означают слова "вся бизнес-логика на сервере приложений"? Причём тут селекты? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
авторЯ извиняюсь, а кто же заставляет сохранять в ООБД все объекты подряд??? Про подряд я не говорил. Прелесть ООБД в том, что вы храните объекты "как есть", со всеми связими и потрохами. Этим она вас и привлекла, по всей видимости. Для разработчика - супер : не надо на каждый чих лезть в базу и т.д. и т.п. Но, с другой стороны, это означает, что набор данных в ООБД для репликации очень изменчив. Кошмарный сон интегратора. авторЧто реляционка заставляет задуматься -- это просто не то слово :) И во многих случаях это очень неплохо, честное слово :) авторСудя по описанию репликации между db4o и РСУБД, всё делается элементарно и почти автоматически. Реклама? попробуйте, потом расскажите :) поверьте мне, наткнетесь на кучу всяческих "но". ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 17:49 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр авторЯ извиняюсь, а кто же заставляет сохранять в ООБД все объекты подряд??? Про подряд я не говорил. Прелесть ООБД в том, что вы храните объекты "как есть", со всеми связими и потрохами. Этим она вас и привлекла, по всей видимости. Для разработчика - супер : не надо на каждый чих лезть в базу и т.д. и т.п. Но, с другой стороны, это означает, что набор данных в ООБД для репликации очень изменчив. Кошмарный сон интегратора. Можно в этом месте поподробнее, что Вы имеете в виду? Чтобы реплицировать данные из ООБД, нужно всего лишь запросить у базы коллекцию объектов, изменившихся после последней репликации (специальным методом), и каждый из них реплицировать в другую базу (для этого тоже есть специальный метод, который всё сам сделает, но можно и руками). Вот вроде бы и всё. Чего я не догоняю? Титов Александр авторСудя по описанию репликации между db4o и РСУБД, всё делается элементарно и почти автоматически. Реклама? попробуйте, потом расскажите :) поверьте мне, наткнетесь на кучу всяческих "но". Договорились, самому интересно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2007, 18:11 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyВы понимаете, что означают слова "вся бизнес-логика на сервере приложений"? Причём тут селекты? И GUI тоже ? (товарищ явно чего-то не понимает). Предложение написать ввод накладной остается в силе. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 09:31 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
GUI естественно на клиенте. А бизнес-объекты на сервере приложений. Селекты всё ещё не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 09:40 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyGUI естественно на клиенте. А бизнес-объекты на сервере приложений. Селекты всё ещё не нужны. - на тяжёлых аналитических расчётах ООБД проигрывает (закрытие опер-дня) - программистов не найти на вашу бизнес-логику - обслугу на ООБД тоже - и т.д. красивая игрушка - не более того (стоимость владения очень высока) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 09:56 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123 FuzzyGUI естественно на клиенте. А бизнес-объекты на сервере приложений. Селекты всё ещё не нужны. - на тяжёлых аналитических расчётах ООБД проигрывает (закрытие опер-дня) - программистов не найти на вашу бизнес-логику - обслугу на ООБД тоже - и т.д. красивая игрушка - не более того (стоимость владения очень высока) про тяжёлые аналитические расчёты см. самый-самый первый пост. программистов на J2EE полным-полно про обслугу на ООБД где-то соглашусь, конечно. Ну так что ж, на всё новое всегда сначала не хватает персонала. Главное, что технология ООБД + OLAP на РБД -- перспективна. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 10:57 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzyпрограммистов на J2EE полным-полно покажи скрины их программ ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 11:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyСелекты всё ещё не нужны. Упорно не хотите вводить накладную. Для ввода надо прочитать: поставщика договор товар ед. измерения Добавить контроль остатков, оперативный анализ, справки и получите 99% селектов против 1%инсерт-апдейт-делете. Такой вот он олтп понимаешь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 11:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
автор про обслугу на ООБД где-то соглашусь, конечно. Ну так что ж, на всё новое всегда сначала не хватает персонала. Главное, что технология ООБД + OLAP на РБД -- перспективна. Давайте разложим все по полочкам. Благо сегодня время есть... ООБД позволяет быстро создавать приложения, требующие хранения разнообразных по своей природе объектов. Поэтому в первую очередь они нашли применение у веб-программистов. Очень удобно хранить сессии пользователей (персонализация интерфейса), порталы, и т.д. и т.п. Что из этого следует? Это означает, что фактически каждое изменение в логике приложения отражается на структуре данных. Добавление новых сущностей - это ерунда, это происходит и в системах на РСУБД. Главное - это изменение котракта (интерфейса), по которому ваша система взаимодействует с другими системами. Фактически есть 4 основных способа интеграции приложений : 1. на уровне GUI. Надежность - без комментариев, используется если ничего другого нет. 2. на уровне SDK. Требует разработки вменяемого SDK, поддержки контракта (совместимость снизу вверх и прочие прелести), подробная документация, интегратор должен знать "потроха" приложения. 3. на уровне БД. Наиболее часто используемый. Понятен большинству. Есть стандарт - SQL. Но и здесь обычно строят еще один слой в виде набора view, процедур или стабильной структуры таблиц. 4. на уровне сервисов. SOA, разговоры про слабое связывание и все остальные модные темы. Для информации : Промышленные ESB поставляются с адапторами, напрямую поддерживающими только 2 последних уровня. Вы предлагаете перевести уровень интеграции системы из 3-го во 2-й. И это именно так - ООБД меняется теми же темпами, что и логика приложения (иначе зачем она нужна?). И не надо питать иллюзий насчет волшебной репликации, которая все сделает за вас. Не сделает. Не питаем иллюзий также насчет того, что у вас - единая система учет+аналитическая отчетность. Это не так. Это две РАЗНЫЕ системы, требующие интеграции. И это ПРАВИЛЬНО, что они разные. Поскольку это надежнее. Почему продолжает жить идея Hibernate и сейчас получает развитие в новом детище Майкрософта - LINQ? Потому что это позволяет использовать РСУБД для интеграции и быструю разработку для быстрой реакции на изменение требований пользователя. Итого : использовать ООБД для создания отдельного приложения можно. Использовать его напрямую для интеграции, без некоторого более стабильного слоя, нельзя. Таким образом, на мой взгляд, область применения ООБД ограничивается приложениями, занимающимися отображением данных и введение этой технологии в приложение, экспортирующее данные, неоправдано. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 12:21 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод FuzzyСелекты всё ещё не нужны. Упорно не хотите вводить накладную. Для ввода надо прочитать: поставщика договор товар ед. измерения Добавить контроль остатков, оперативный анализ, справки и получите 99% селектов против 1%инсерт-апдейт-делете. Такой вот он олтп понимаешь Уважаемый _мод, ну прочитайте, наконец, определение OLTP, и не используйте этот термин применительно к системам другого класса. Fuzzy, кстати, изначально тоже неверно его применил. Правильное название систем, о которых вы говорите - это "модуль ERP" (предположительно - CRM). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 12:39 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрУважаемый _мод, ну прочитайте, наконец, определение OLTP, и не используйте этот термин применительно к системам другого класса. Fuzzy, кстати, изначально тоже неверно его применил. Правильное название систем, о которых вы говорите - это "модуль ERP" (предположительно - CRM). Уважаемый Александр, разберитесь наконец.., что такое OLTP,OLAP,ERP,CRM,CMS и т.п. смешали в кучу коней, людей и сусликов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 12:44 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm Титов АлександрУважаемый _мод, ну прочитайте, наконец, определение OLTP, и не используйте этот термин применительно к системам другого класса. Fuzzy, кстати, изначально тоже неверно его применил. Правильное название систем, о которых вы говорите - это "модуль ERP" (предположительно - CRM). Уважаемый Александр, разберитесь наконец.., что такое OLTP,OLAP,ERP,CRM,CMS и т.п. смешали в кучу коней, людей и сусликов. Я в курсе. Опять неверно понят по собственной вине :) Читать "модуль ERP" ИЛИ, возможно, CMS. У меня получилась, что CRM - это модуль ERP, а не другой класс систем. А разбираться в этих системах приходится уже давно и не теоретически. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 12:52 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Тьфу, уже самому смешно :) Читать "модуль ERP" ИЛИ, возможно, CRM . У меня получилась, что CRM - это модуль ERP, а не другой класс систем. А разбираться в этих системах приходится уже давно и не теоретически. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 12:56 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafmУважаемый Александр, разберитесь наконец.., что такое OLTP,OLAP,ERP,CRM,CMS и т.п. смешали в кучу коней, людей и сусликов. Присоединяюсь ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2007, 17:54 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Я понимаю OLTP так же, как написано в википедии тынц первый абзац авторOLTP (Online Transaction Processing) — онлайновая обработка транзакций. Способ организации БД, при котором система работает с транзакциями небольшими по размерам, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа. А Вы как, Александр? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 09:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyЯ понимаю OLTP так же, как написано в википедии тынц первый абзац авторOLTP (Online Transaction Processing) — онлайновая обработка транзакций. Способ организации БД, при котором система работает с транзакциями небольшими по размерам, но идущими большим потоком, и при этом клиенту требуется от системы максимально быстрое время ответа. А Вы как, Александр? Именно так, что, на мой взгляд, совершенно невозможно при 99% селектов, а также большой доле апдейтов (которые требуют тех же селектов) и уж тем более делитов, которых в нормальной системе всячески избегают. OLTP, как я понимаю, работают по принципу "сохрани, а вечером разбирайся". Я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 09:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
По теме топика еще что-нить будет, или очередная ветка ушла в безуспешные попытки оценить компетентность оппонентов? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 09:45 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Хорошо, раз мы разобрались, что такое OLTP-система, то продолжим. Насколько я Вас понял, вы утверждаете, что главные грабли в предлагаемой мной структуре инф.системы будут при организации репликации из ООБД в РБД? У меня вопрос, чем, по Вашем мнению, репликация ООБД->РБД намного сложнее репликации РБД->РБД? Ведь мы же всё равно должны переносить данные из OLTP-системы в хранилище данные для организации OLAP-системы, верно? С моей т.з. -- наоборот, перенос данных из ООБД должен быть намного проще, т.к. репликация -- это ни что иное, как перенос изменений из одного хранилища в другое, а изменяются у нас в OLTP-системах объекты , следовательно, и отследить эти изменения гораздо проще в ООБД, нежели в РБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 09:59 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyХорошо, раз мы разобрались, что такое OLTP-система, то продолжим. Насколько я Вас понял, вы утверждаете, что главные грабли в предлагаемой мной структуре инф.системы будут при организации репликации из ООБД в РБД? У меня вопрос, чем, по Вашем мнению, репликация ООБД->РБД намного сложнее репликации РБД->РБД? Ведь мы же всё равно должны переносить данные из OLTP-системы в хранилище данные для организации OLAP-системы, верно? С моей т.з. -- наоборот, перенос данных из ООБД должен быть намного проще, т.к. репликация -- это ни что иное, как перенос изменений из одного хранилища в другое, а изменяются у нас в OLTP-системах объекты , следовательно, и отследить эти изменения гораздо проще в ООБД, нежели в РБД. Еще раз прочтите, пожалуйста, вот это Кажется, я там довольно подробно все сформулировал и обосновал свою точку зрения. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 10:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Наверное, как грится, йа креведко :(( Чтоб мне хоть немного понять Ваши аргументы и объяснения, пожалуйста, приведите пример Титов Александр приложения, занимающегося отображением данных и Титов Александрприложения, экспортирующего данные ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 10:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
З.Ы. по поводу OLTP - это действительно более широкий класс систем, чем я думал. Признаю свою ошибку. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 10:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод FuzzyСелекты всё ещё не нужны. Упорно не хотите вводить накладную. Для ввода надо прочитать: поставщика договор товар ед. измерения Добавить контроль остатков, оперативный анализ, справки и получите 99% селектов против 1%инсерт-апдейт-делете. Такой вот он олтп понимаешь Полностью согласен -- OLTP именно такой. Только всё-таки не нужны селекты, чтобы выбрать поставщика, договор, товар и прочее, если на сервере приложений у нас имеется объектная модель, с которой мы работаем. Вместо селектов мы отлично используем навигацию по иерархии объектов, что проще, понятнее разработчику и гораздо БЫСТРЕЕ (ведь мы не шукаем постоянно объекты в базе данных по ключам, а просто сразу и непосредственно берём то, что нам нужно, используя объектную ссылку, которая ПРЯМО указывает на нужный объект). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 11:05 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy а просто сразу и непосредственно берём то, что нам нужно, используя объектную ссылку, которая ПРЯМО указывает на нужный объект).Интересно, а пользователь вводя накладную тоже будет брать объектную ссылку (например, на товар или контрагента)? Почему-то мне все больше попадались пользователи, которые хотели не по ссылке, а по названию искать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:32 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Обычно пользователям неинтересно искать по названию, а интересно выбирать из списка. Поэтому по ссылке получаем коллекцию товаров и показываем её пользователю. Можем в ней и поискать, по названию или как угодно. И, если уж на то пошло, то выбрать из базы коллекцию объектов, отфильтровав их по одному или нескольким полям, в ООБД не более сложно, чем в РБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:44 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyОбычно пользователям неинтересно искать по названию, а интересно выбирать из списка. Поэтому по ссылке получаем коллекцию товаров и показываем её пользователю. Можем в ней и поискать, по названию или как угодно. И, если уж на то пошло, то выбрать из базы коллекцию объектов, отфильтровав их по одному или нескольким полям, в ООБД не более сложно, чем в РБД. И всё выше сказанное ООБД проделает на порядок быстрее, чем РБД свои селекты, из результатов которых нужно будет ещё объекты сконструировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:46 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Вот что нашел по теме: Беседа Марго Зельцер с Майклом Стоунбрейкером ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:51 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy И всё выше сказанное ООБД проделает на порядок быстрее, чем РБД свои селекты, из результатов которых нужно будет ещё объекты сконструировать. Доказательства? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:51 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Чендлер Fuzzy И всё выше сказанное ООБД проделает на порядок быстрее, чем РБД свои селекты, из результатов которых нужно будет ещё объекты сконструировать. Доказательства? Доказательство №1 -- чтобы получить коллекцию по ссылке, ООБД не нужно просматривать хранящиеся данные, т.к. ссылка уже определяет точное местоположение объекта, нужно просто его оттуда взять. Доказательство №2 -- РБД вернёт набор примитивных типов, да ещё и в виде текста. Из этого добра нужно будет как-то собирать объекты (с учётом уникальности, взаимосвязей и кэширования, что есть форменный дурдом), и соответственно тратить на это время. Ну или забить на объектную ориентированность приложения. А ООБД вернёт уже полностью готовые объекты, ноль проблем. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 12:58 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрВот что нашел по теме: Беседа Марго Зельцер с Майклом Стоунбрейкером Действительно, забавная статья -- похоже, для OLAP системы РБД тоже не слишком подходит? :)) Ну с этим я не согласен, конечно же. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 13:16 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Да, тема-то совсем не нова... жмак ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 13:27 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Чендлер Fuzzy И всё выше сказанное ООБД проделает на порядок быстрее, чем РБД свои селекты, из результатов которых нужно будет ещё объекты сконструировать. Доказательства? Это же очевидно... 1. Contract->Org->INN 2. select c.inn .. from contract t inner join org c on c.id = t.orgid конечно разница между 1 и 2 на порядки.. в пользу 1. вопросы начинаются когда нужно отобрать contract по заданным условиям. в RDBMS пишется select ... where в OODB классической подобные интерфейсы - надстройка, не у всех. Работаете как с обычной коллекцией в C++ или Java.. самостоятельный перебор, compare и т.п. Хотя следует отметить, что скорость = работа с памятью. Во многих OODB реализованы готовые SQL интерфейсы. Не занимался db4o, только ObjectStore, думаю что db4o где-то аналог ObjectStore PSE, только на Java , а не на С++. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 13:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрДа, тема-то совсем не нова... жмак Сама тема ООБД ясен пень не нова. Но всегда всё заканчивается так: "а как тут среднее посчитать? ЧТО, ЦИКЛОМ ПО ВСЕЙ КОЛЛЕКЦИИ МЧАТЬСЯ??? Фуу, отстой!". А я ж и думаю себе: а кому нафих нужно по OLTP-системе средние-то считать? Всё равно для анализа всё в хранилище данных уходит. Ну и какая разница, откуда оно туда уходит, из РБД или из ООБД??? Вот и начал топик это обсудить. Не возражаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 13:35 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Титов АлександрДа, тема-то совсем не нова... жмак Сама тема ООБД ясен пень не нова. Но всегда всё заканчивается так: "а как тут среднее посчитать? ЧТО, ЦИКЛОМ ПО ВСЕЙ КОЛЛЕКЦИИ МЧАТЬСЯ??? Фуу, отстой!". А я ж и думаю себе: а кому нафих нужно по OLTP-системе средние-то считать? Всё равно для анализа всё в хранилище данных уходит. Ну и какая разница, откуда оно туда уходит, из РБД или из ООБД??? Вот и начал топик это обсудить. Не возражаете? ну, допустим. А чем показывать/сортировать на экране? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 15:49 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyВсё равно для анализа всё в хранилище данных уходит 1) не все (оперативные отчеты, ну допустим позволяющие найти ошибку в операционном дне банка до закрытия оного дня) 2) не сразу и не быстро - Единичный маппинг (как бы сказать одномоментный што-ли, весьма удобно-незаметный, когда пользователь вводит информацию и работает с ограниченным набором сущностей) заменяется на массовый 3) не дешево - неудобно становится уже онализаторам ;o) поскольку изменения в структуре ООБД переливаются в РСБУД, а вот ПО применяемое для анализа (или его настройки) автоматом не делаются ______________________________________________________ И говорил мне недавно директор детского сада - "пацан ты шо самый умный, шо больше всех надо" ... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 16:17 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
shelsoft FuzzyВсё равно для анализа всё в хранилище данных уходит 1) не все (оперативные отчеты, ну допустим позволяющие найти ошибку в операционном дне банка до закрытия оного дня) Согласен, какой-то необходимый минимум отчётов придётся либо сразу предусмотреть в объектной модели, либо делать "программным способом". shelsoft 2) не сразу и не быстро - Единичный маппинг (как бы сказать одномоментный што-ли, весьма удобно-незаметный, когда пользователь вводит информацию и работает с ограниченным набором сущностей) заменяется на массовый Это точно, да ведь мы этот массовый маппинг будем делать ночью, когда в базе нет никого. И пусть себе длится часами. В любом случае нужно формировать OLAP кубы для аналитиков. Да и маппинг будет только в направлении объект->реляционное представление, а это куда как проще, чем наоборот. shelsoft 3) не дешево - неудобно становится уже онализаторам ;o) поскольку изменения в структуре ООБД переливаются в РСБУД, а вот ПО применяемое для анализа (или его настройки) автоматом не делаются Вот тут не понял. Анализаторы так или иначе работают с теми же самыми OLAP кубами, для них ничего не меняется ______________________________________________________ И говорил мне недавно директор детского сада - "пацан ты шо самый умный, шо больше всех надо" ... [/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 16:32 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123 Fuzzy Титов АлександрДа, тема-то совсем не нова... жмак Сама тема ООБД ясен пень не нова. Но всегда всё заканчивается так: "а как тут среднее посчитать? ЧТО, ЦИКЛОМ ПО ВСЕЙ КОЛЛЕКЦИИ МЧАТЬСЯ??? Фуу, отстой!". А я ж и думаю себе: а кому нафих нужно по OLTP-системе средние-то считать? Всё равно для анализа всё в хранилище данных уходит. Ну и какая разница, откуда оно туда уходит, из РБД или из ООБД??? Вот и начал топик это обсудить. Не возражаете? ну, допустим. А чем показывать/сортировать на экране? Тонким клиентским приложением, естественно. Уточните вопрос, пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 16:40 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Тонким клиентским приложением, естественно. Уточните вопрос, пожалуйста. если нет пока инфраструктуры для заправок водородом машин - бестолку агитировать за это топливо. Если клиент ослик (IE) как будешь программировать (соединять) свою БД с осликом? Велосипеды писать? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 17:18 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123 Fuzzy Тонким клиентским приложением, естественно. Уточните вопрос, пожалуйста. если нет пока инфраструктуры для заправок водородом машин - бестолку агитировать за это топливо. Если клиент ослик (IE) как будешь программировать (соединять) свою БД с осликом? Велосипеды писать? Ну, во-первых, открой для себя J2EE и кучу бесплатных аппсерверов. Это вообще не вопрос. Это если брать только java. И, во-вторых, почему обязательно ослик??? Тонкий клиент != браузер ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 17:25 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Petro123 Fuzzy Тонким клиентским приложением, естественно. Уточните вопрос, пожалуйста. если нет пока инфраструктуры для заправок водородом машин - бестолку агитировать за это топливо. Если клиент ослик (IE) как будешь программировать (соединять) свою БД с осликом? Велосипеды писать? Ну, во-первых, открой для себя J2EE и кучу бесплатных аппсерверов. === да видел я как они пишут. Всё с нуля, начиная с полос прокрутки в таблицах. Дорого и долго. Особенно для ООБД Это вообще не вопрос. Это если брать только java. И, во-вторых, почему обязательно ослик??? Тонкий клиент != браузер ===== а что у Вас тонкий клиент? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 17:36 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123 Fuzzy Petro123 Fuzzy Тонким клиентским приложением, естественно. Уточните вопрос, пожалуйста. если нет пока инфраструктуры для заправок водородом машин - бестолку агитировать за это топливо. Если клиент ослик (IE) как будешь программировать (соединять) свою БД с осликом? Велосипеды писать? Ну, во-первых, открой для себя J2EE и кучу бесплатных аппсерверов. === да видел я как они пишут. Всё с нуля, начиная с полос прокрутки в таблицах. Дорого и долго. Особенно для ООБД Смешались в кучу кони, люди... Если мы сейчас серверную логику обсуждаем, то причём тут полосы прокрутки? Petro123 Это вообще не вопрос. Это если брать только java. И, во-вторых, почему обязательно ослик??? Тонкий клиент != браузер ===== а что у Вас тонкий клиент? Да что угодно, отображающее данные клиенту. Для явы это может быть приложение и на Swing, и на SWT. И не надо ничего с нуля писать. Но это уже всё другие вопросы, на другую тему, под названием "нужна ли трёхзвенка, а если нужна, то зачем, а если понятно, зачем, то как её делать". Предлагаю её здесь не обсуждать. А для двухзвенки ты не видишь преимуществ ООБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2007, 17:48 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Титов АлександрВот что нашел по теме: Беседа Марго Зельцер с Майклом Стоунбрейкером Действительно, забавная статья -- похоже, для OLAP системы РБД тоже не слишком подходит? :)) Ну с этим я не согласен, конечно же. Очень зря. Иначе не было бы Microsoft Analysis Services, Oracle Essbase, Cognos PowerPlay и других. Почитайте про column-oriented databases на том же citforum или на http://www.databasecolumn.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 00:49 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Юрий Кудрявцев Fuzzy Титов АлександрВот что нашел по теме: Беседа Марго Зельцер с Майклом Стоунбрейкером Действительно, забавная статья -- похоже, для OLAP системы РБД тоже не слишком подходит? :)) Ну с этим я не согласен, конечно же. Очень зря. Иначе не было бы Microsoft Analysis Services, Oracle Essbase, Cognos PowerPlay и других. Почитайте про column-oriented databases на том же citforum или на http://www.databasecolumn.com/ Да я, собственно, в том смысле, что одними гиберкубами анализ не ограничивается. Поэтому в любом случае нужна возможность легко создавать какие угодно объединения и агрегаты. А тут РБД рулят. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 09:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Возвращаясь к теме топика: получается ровно наоборот: OLTP на РСУБД, а OLAP на собственой структуре (которая не Р и не О). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 09:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_модВозвращаясь к теме топика: получается ровно наоборот: OLTP на РСУБД, а OLAP на собственой структуре (которая не Р и не О). У кого получается и почему именно так? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 09:37 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy А для двухзвенки ты не видишь преимуществ ООБД? imho основной недостаток исходит их её преимущества. Слой ООП разработки на клиенте не ограничен ничем. - Понадобилась новая сущность - "СчетаЗаКормМоейСобаки", нарисовал класс UML, сгенерировал код и ООБД стало его сериализовать в своей БД. - Удалили сущность - "Штрафники" ....... - в ООБД начнут переносить наследование классов, которое реально применяется достаточно редко в РСУБД Скока стоит архитектор всего это барахла и помойки в ООБД? Т.к. нет наработанных решений, его работа будет скорее искусством, а не ремеслом с гарантированным результатом. Чем значимее ИС для бизнеса, тем выше риск будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 09:53 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Возвращаясь к теме. При принятии архитектурного решения приходится взвешивать очень много за и против. Однозначного ответа хороша ли идея OLTP - ООБД, OLAP - РСУБД нет. Она может быть хороша в одних условиях и совершенно неприемлема в других. За промышленными РСУБД - многолетний опыт использования, устоявшаяся терминология, матаппарат, стандарты, широкий рынок специалистов, саппорт, известные приемы масштабирования, возможность применения акселератора на основе уже упомянутых column-oriented databases, псевдо-ООБД-настройки, интеграционные платформы, аналитические системы, перечислять можно долго... все эти факторы настолько снижают риски внедрения системы OLTP-OLAP на основе РСУБД от одного известного вендора, что применение дополнительной технологии становится неоправданным. С другой стороны, можно представить себе быстро растущий-изменяющийся бизнес, где фокус смещен на развитие OLTP, оперативной отчетности мало или вообще нет, быстрого роста объема данных не предвидится или хочется выиграть в деньгах здесь и сейчас, приняв и поняв все риски. В общем, рассматривать этот вопрос в отрыве от реальности, ИМХО, бессмысленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyОбычно пользователям неинтересно искать по названию, а интересно выбирать из списка. Поэтому по ссылке получаем коллекцию товаров и показываем её пользователю. Все сто тысяч товаров? И сколько времени ваше приложение будет грид рисовать? И что пользователь с этой коллекцией будет делать? А завтра ему потребуется найти накладную за прошлый месяц. Причем точного номера он не помнит, но вот помнит, что там апельсины с помидорами были. А накладных в базе полтора миллиона. Вы ему тоже всю коллекцию достанете и вывалите? FuzzyМожем в ней и поискать, по названию или как угодно. И, если уж на то пошло, то выбрать из базы коллекцию объектов, отфильтровав их по одному или нескольким полям, в ООБД не более сложно, чем в РБД.Расскажите, как в ООБД вы будете искать накладную за ноябрь в которой присутствуют помидоры и апельсины. Интересует как сам текст, так и скорость его выполнения. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:02 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm 1. Contract->Org->INN 2. select c.inn .. from contract t inner join org c on c.id = t.orgid конечно разница между 1 и 2 на порядки.. в пользу 1. вопросы начинаются когда нужно отобрать contract по заданным условиям. в RDBMS пишется select ... where что ловчее 1 или 2? 1.Contract->Org->INN 2.выбрать инн из контрактов, организаций где id контрактов равен id организаций помница мне что когда эта вся затея про РБД начиналась то предполагалось что в будующем человек будет писать запросы на ЧЕЛОВЕЧЕСКОМ языке, и конструкция "select ... from ..." куда ближе к человеческому. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:05 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов АлександрВозвращаясь к теме. При принятии архитектурного решения приходится взвешивать очень много за и против. Однозначного ответа хороша ли идея OLTP - ООБД, OLAP - РСУБД нет. Она может быть хороша в одних условиях и совершенно неприемлема в других. За промышленными РСУБД - многолетний опыт использования, устоявшаяся терминология, матаппарат, стандарты, широкий рынок специалистов, саппорт, известные приемы масштабирования, возможность применения акселератора на основе уже упомянутых column-oriented databases, псевдо-ООБД-настройки, интеграционные платформы, аналитические системы, перечислять можно долго... все эти факторы настолько снижают риски внедрения системы OLTP-OLAP на основе РСУБД от одного известного вендора, что применение дополнительной технологии становится неоправданным. С другой стороны, можно представить себе быстро растущий-изменяющийся бизнес, где фокус смещен на развитие OLTP, оперативной отчетности мало или вообще нет, быстрого роста объема данных не предвидится или хочется выиграть в деньгах здесь и сейчас, приняв и поняв все риски. В общем, рассматривать этот вопрос в отрыве от реальности, ИМХО, бессмысленно. Сказал -- как отрезал :)) Ни добавить, ни прибавить, поспорить не с чем. Предлагаю продолжить обсуждение возможных граблей в структуре с ООБД. Может, покажете на примере, в каких случаях, где и как, по Вашему мнению, в схеме с ООБД возникает "кошмарный сон интегратора", а при тех же условиях в схеме с РБД всё хорошо? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр это Кажется, я там довольно подробно все сформулировал и обосновал свою точку зрения. Есть такой дядька :) - Мартин Фаулер, типо крутой спец во всяких обьектных примочках. Он говорит что он ни разу ещё не встречал подтверждения тому что - "ООБД позволяет быстро создавать приложения" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123 Fuzzy А для двухзвенки ты не видишь преимуществ ООБД? imho основной недостаток исходит их её преимущества. Слой ООП разработки на клиенте не ограничен ничем. - Понадобилась новая сущность - "СчетаЗаКормМоейСобаки", нарисовал класс UML, сгенерировал код и ООБД стало его сериализовать в своей БД. - Удалили сущность - "Штрафники" ....... - в ООБД начнут переносить наследование классов, которое реально применяется достаточно редко в РСУБД Скока стоит архитектор всего это барахла и помойки в ООБД? Т.к. нет наработанных решений, его работа будет скорее искусством, а не ремеслом с гарантированным результатом. Чем значимее ИС для бизнеса, тем выше риск будет. Нифига не понял, что означает "нет наработанных решений". Это в построении объектных моделей нет наработанных решений??? Или где??? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:11 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyОбычно пользователям неинтересно искать по названию, а интересно выбирать из списка. Поэтому по ссылке получаем коллекцию товаров и показываем её пользователю. Все сто тысяч товаров? И сколько времени ваше приложение будет грид рисовать? И что пользователь с этой коллекцией будет делать? А в случае с РБД вы тоже все сто тысяч товаров пользователю покажете? Разница между ООБД и РБД в этом случае только в том, что из РБД вы получаете строки, содержащие нужную информацию, которую вам ещё нужно будет в виде дерева представить (раз их аж 100 000 позиций), а из ООБД вы получите готовые сущности "товарная позиция", уже с нужными взаимосвязями с иерархией сущностей "группа товара" и "вид товара". И ленивую загрузку для ООБД никто не отменял, причём для ООБД её реализация куда эффективней, чем для РБД (я имею в виду проблему т.н. "n+1 запроса"). Bogdanov Andrey А завтра ему потребуется найти накладную за прошлый месяц. Причем точного номера он не помнит, но вот помнит, что там апельсины с помидорами были. А накладных в базе полтора миллиона. Вы ему тоже всю коллекцию достанете и вывалите? FuzzyМожем в ней и поискать, по названию или как угодно. И, если уж на то пошло, то выбрать из базы коллекцию объектов, отфильтровав их по одному или нескольким полям, в ООБД не более сложно, чем в РБД.Расскажите, как в ООБД вы будете искать накладную за ноябрь в которой присутствуют помидоры и апельсины. Интересует как сам текст, так и скорость его выполнения. Во-первых, зайдите на сайт db4o и посмотрите сами, как строятся запросы к ООБД и какие они бывают, что могут и что нет. Тогда Вам действительно легко удастся придумать пример, на котором ООБД позорно сольёт РБД в построенни запросов. Что я предлагаю с этим делать, я описал в самом первом посте топика. А просто выбор объекта с заданными параметрами к сложным для ООБД задачам не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:23 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Чендлер iscrafm 1. Contract->Org->INN 2. select c.inn .. from contract t inner join org c on c.id = t.orgid конечно разница между 1 и 2 на порядки.. в пользу 1. вопросы начинаются когда нужно отобрать contract по заданным условиям. в RDBMS пишется select ... where что ловчее 1 или 2? 1.Contract->Org->INN 2.выбрать инн из контрактов, организаций где id контрактов равен id организаций помница мне что когда эта вся затея про РБД начиналась то предполагалось что в будующем человек будет писать запросы на ЧЕЛОВЕЧЕСКОМ языке, и конструкция "select ... from ..." куда ближе к человеческому. А пока, к сожалению, гораздо ближе к человеческому именно Contract->Org->INN, разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyВо-первых, зайдите на сайт db4o и посмотрите сами, как строятся запросы к ООБД и какие они бывают, что могут и что нет.Для доступа к документации там потребовалось регистрироваться (или я не тот сайт нашел?), а из элементарных примеров я возможностей построения запросов не понял. FuzzyТогда Вам действительно легко удастся придумать пример, на котором ООБД позорно сольёт РБД в построенни запросов. Что я предлагаю с этим делать, я описал в самом первом посте топика.То есть вы считаете, что поиск накладной за прошлый месяц для внесения в нее корректировок относится уже к задачам OLAP системы? FuzzyА просто выбор объекта с заданными параметрами к сложным для ООБД задачам не относится.Так все-таки описанный выше выбор по параметрам накладной реализуем или нет? PS. Хочу уточнить - я не противник объектного программирования, но я не видел еще устраивающих меня вариантов (даже теоретических) организации "хранилища объектов". Если db4o нашла какие-то решения, то я буду очень рад. Посему если не сложно, то предемонстрируйте их возможности поиска. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 10:42 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyВо-первых, зайдите на сайт db4o и посмотрите сами, как строятся запросы к ООБД и какие они бывают, что могут и что нет.Для доступа к документации там потребовалось регистрироваться (или я не тот сайт нашел?), а из элементарных примеров я возможностей построения запросов не понял. Да вот здесь http://www.db4o.com/ я всё нашёл, и даже API полностью скачал. Bogdanov Andrey FuzzyТогда Вам действительно легко удастся придумать пример, на котором ООБД позорно сольёт РБД в построенни запросов. Что я предлагаю с этим делать, я описал в самом первом посте топика.То есть вы считаете, что поиск накладной за прошлый месяц для внесения в нее корректировок относится уже к задачам OLAP системы? Нет, конечно Bogdanov Andrey FuzzyА просто выбор объекта с заданными параметрами к сложным для ООБД задачам не относится.Так все-таки описанный выше выбор по параметрам накладной реализуем или нет? Конечно, да, и с эффективностью такой же, как и у РБД. Поиск объекта в базе ООБД делает точно так же, как и РБД, используя индексы. ООБД сливает там, где необходимо объединение или агрегирование, причём непредусмотренное при проектировании (а если предусмотренное, то наоборот, сильно выигрывает). И вот такие задачи я безусловно отношу к OLAP. Bogdanov Andrey PS. Хочу уточнить - я не противник объектного программирования, но я не видел еще устраивающих меня вариантов (даже теоретических) организации "хранилища объектов". Если db4o нашла какие-то решения, то я буду очень рад. Посему если не сложно, то предемонстрируйте их возможности поиска. Я сам такой же, но вот ознакомился с серией статей Теда Ньюарда про db4o на http://www.ibm.com/developerworks/views/java/libraryview.jsp?search_by=db4o и довольно сильно впечатлился. Пожалуйста, посмотрите приводимые там примеры сами, я преподавать энто пока что не могу, сам новичок. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:04 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Чендлерконструкция "select ... from ..." куда ближе к человеческому. Вы просили доказательств скорости, а не человечности. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:11 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andreyя не противник объектного программирования, но я не видел еще устраивающих меня вариантов (даже теоретических) организации "хранилища объектов".а какие исследовали? Судя по тому, с каким "энтузиазмом" Вы обследовали сайт db4o ... хорошо смотрели :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:18 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm Bogdanov Andreyя не противник объектного программирования, но я не видел еще устраивающих меня вариантов (даже теоретических) организации "хранилища объектов".а какие исследовали? Судя по тому, с каким "энтузиазмом" Вы обследовали сайт db4o ... хорошо смотрели :) Пожалуйста, не нужно в этом топике постов с обсуждением качеств личностей участников. Пусть будут только посты с обсуждением качеств ООБД и РБД, OLTP и OLAP, а также взаимодействия между всем этим добром :)) Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:30 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy iscrafm Bogdanov Andreyя не противник объектного программирования, но я не видел еще устраивающих меня вариантов (даже теоретических) организации "хранилища объектов".а какие исследовали? Судя по тому, с каким "энтузиазмом" Вы обследовали сайт db4o ... хорошо смотрели :) Пожалуйста, не нужно в этом топике постов с обсуждением качеств личностей участников. Пусть будут только посты с обсуждением качеств ООБД и РБД, OLTP и OLAP, а также взаимодействия между всем этим добром :)) Спасибо! Fuzzy, хочется понять, чем уважаемому Андрею не подошла ни одна ООБД в качестве хранилища объектов. Вопрос, imho, по теме. никаких личностей. Просто интересно же до какой степени уважаемый Андрей проводил исследование возможностей OODB для озвученной задачи. если таким способом "Для доступа к документации там потребовалось регистрироваться... ", то это не интересно. Или Вам интересно? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:38 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Титов АлександрВозвращаясь к теме. При принятии архитектурного решения приходится взвешивать очень много за и против. Однозначного ответа хороша ли идея OLTP - ООБД, OLAP - РСУБД нет. Она может быть хороша в одних условиях и совершенно неприемлема в других. За промышленными РСУБД - многолетний опыт использования, устоявшаяся терминология, матаппарат, стандарты, широкий рынок специалистов, саппорт, известные приемы масштабирования, возможность применения акселератора на основе уже упомянутых column-oriented databases, псевдо-ООБД-настройки, интеграционные платформы, аналитические системы, перечислять можно долго... все эти факторы настолько снижают риски внедрения системы OLTP-OLAP на основе РСУБД от одного известного вендора, что применение дополнительной технологии становится неоправданным. С другой стороны, можно представить себе быстро растущий-изменяющийся бизнес, где фокус смещен на развитие OLTP, оперативной отчетности мало или вообще нет, быстрого роста объема данных не предвидится или хочется выиграть в деньгах здесь и сейчас, приняв и поняв все риски. В общем, рассматривать этот вопрос в отрыве от реальности, ИМХО, бессмысленно. Сказал -- как отрезал :)) Ни добавить, ни прибавить, поспорить не с чем. :) Fuzzy Предлагаю продолжить обсуждение возможных граблей в структуре с ООБД. Может, покажете на примере, в каких случаях, где и как, по Вашему мнению, в схеме с ООБД возникает "кошмарный сон интегратора", а при тех же условиях в схеме с РБД всё хорошо? Ок, рассмотрим. Как это все реплицируется? Если вы имели в виду в это , то оно совсем не приближает нас к построению реляционной схемы, пригодной для анализа. Другой вариант автоматической репликации - это нормализованная динамическая схема (но это придется писать самим, насколько я понимаю). Т.е. надо либо писать умную репликацию (и менять, отлаживать на каждое изменение объектной модели, что я назвал "кошмарным сном интегратора"), либо, перелив суточные данные в РСУБД автоматической репликацией в общий Hibernate-котел, создавать агрегаты из весьма плохо подходящей для этого структуры. Строить же аналитику прямо на таком архиве... гм Репликация между двумя РСУБД, особенно одного производителя, дает гораздо больше вариантов. А как решается такая задачка : есть 2 похожих объекта, имеющих много общего, но отличных в деталях, хранить их в архиве надо в одной таблице. А теперь добавим третий туда же, или поменяем один из 2-х. В случае РСУБД для OLTP все решится внутри OLTP, не затронув ничего снаружи. Теперь представим, что наша OLTP использует справочники, которые обычно ведутся отдельно в другой системе на реляционке. Как мы будем заливать эти справочники в ООБД? А их надо регулярно обновлять, желательно по факту изменения... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:50 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр Теперь представим, что наша OLTP использует справочники, которые обычно ведутся отдельно в другой системе на реляционке. Как мы будем заливать эти справочники в ООБД? А их надо регулярно обновлять, желательно по факту изменения... в чем сложности видите? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 11:59 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm Титов Александр Теперь представим, что наша OLTP использует справочники, которые обычно ведутся отдельно в другой системе на реляционке. Как мы будем заливать эти справочники в ООБД? А их надо регулярно обновлять, желательно по факту изменения... в чем сложности видите? Присоединяюсь к вопросу. В чём отличие от залития справочников в РБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр Ок, рассмотрим. Как это все реплицируется? Если вы имели в виду в это , то оно совсем не приближает нас к построению реляционной схемы, пригодной для анализа. Другой вариант автоматической репликации - это нормализованная динамическая схема (но это придется писать самим, насколько я понимаю). Т.е. надо либо писать умную репликацию (и менять, отлаживать на каждое изменение объектной модели, что я назвал "кошмарным сном интегратора"), либо, перелив суточные данные в РСУБД автоматической репликацией в общий Hibernate-котел, создавать агрегаты из весьма плохо подходящей для этого структуры. Строить же аналитику прямо на таком архиве... гм Репликация между двумя РСУБД, особенно одного производителя, дает гораздо больше вариантов. Теперь мне понятно, что Вы имели в виду под ужасом для интегратора -- в случае РБД интегратор будет параллельно менять структуры двух РБД, глядя только в структуру базы, да ещё и пользуясь штатными инструментами производителя РБД, а в случае ООБД интегратор должен будет лезть в код приложения, разбираться в нём и руками править метод для репликации. Так? Но я так понял, что репликация между ООБД и РБД сделана на движке Hibernate, т.е. нужно будет просто исправить маппинг в конфигурационных файлах, как и в случае с OLTP на РБД (нам ведь по-любому нужно исправить маппинг, если структура объектной модели поменялась, верно?). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:22 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyУважаемые коллеги! Я недавно открыл для себя объектно-ориентированную базу данных (db4o). И вот какая мысль у меня в связи с этим возникла. Главный упрёк имеющимся реализациям ООБД, который обычно бросают -- слабая пригодность для выполнения разнообразных запросов, т.к. отсутствуют средства объединения и агрегирования данных. И это на самом деле так, РСУБД для выборки и анализа данных подходит гораздо больше. Возможно, есть и другие главные упреки. Так или иначе сейчас идеи ООБД переживают не самые лучшие времена. Лучшие были в начале 90-х. Fuzzy Однако, так ли уж прекрасно и РСУБД справляется с задачами анализа? Ведь обычно аналитики не используют OLTP-систему для формирования своих отчётов, а используют OLAP-кубы! Разве обычно? Это только для поддержки принятий решений. В общем к хранилищам данных и ОЛАП для обощенных данных. А для поодержки опретивно прикладных задач полно запросов к детальным данным. Например, средние скользящие с такого-то числа по такое-то уже для ОЛАПа не лучшее из лучшего. Для него луче периоды. Если в имерениях много значений - тысчи, то ОЛАП может терять свои достоинства. Fuzzy Причины этого: а) в случае, если данные находятся в сильно нормализованном виде, запросы по ним выполняются довольно-таки медленно. Особенно, если не построены нужные индексы, а они ведь и не построены в OLTP-системе, т.к. индексы там заточены под задачи бизнес-транзакций, а не анализа; б) какой-нибудь тяжёлый аналитический запрос, этак на пару-тройку часов, может помешать выполнению бизнес-транзакций, что неприемлемо. Другие в основном причины. В ОЛАП Юзер сам может строить запросы в процессе оперативного анализа. Fuzzy Получается, что OLTP на РСУБД является типичной универсальной системой, которая справляется и с задачами текущей работы с информационной системой, и с задачами анализа. Но обе эти задачи она решает не идеально! Получается, но идея в том, что в хранилищах данных Данные могут быть не тока от РБД, но и иерахических и доисторичских, потому что для анализа нужны в общем случае и исторические данные. Fuzzy Исходя из этого, не кажется ли вам, что перспективной структурой информационной системы может быть следующая: а) OLTP-система на ООБД, из отчётов -- только несколько наиболее стандартных. Имеем все преимущества ООБД, перечислять их не буду. Пока не кажется. По, крайней мере, так как это могло казаться в начале 90-х. ОЛАП тут не поможет ООСУБД. Она должа сама выдавить РСУБД в оперативных БД. Во всех отношениях. Fuzzy б) данные из OLTP-системы ежедневно (во время наименьшей нагрузки, ночью) реплицируются в архивную базу на РСУБД. Это позволит иметь ООБД не слишком больших размеров, за счёт архивации неактуальных для текущей деятельности данных. Не. Совсем не кажется. Все же это разные МД. И одна из них, скорей всего, лишняя. Вместе они могут отрицательно повлиять на качество ЖЗ. Fuzzy в) по данным РСУБД ежедневно строятся необходимые аналитикам OLAP-кубы, как обычно. Получится, что каждую из задач мы решим наиболее оптимальным способом. Как вам кажется? Вот это кажется. Но тока када потребности в оперативном анализе установлены. Вряд ли это надо в любой ИС. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:26 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy iscrafm Титов Александр Теперь представим, что наша OLTP использует справочники, которые обычно ведутся отдельно в другой системе на реляционке. Как мы будем заливать эти справочники в ООБД? А их надо регулярно обновлять, желательно по факту изменения... в чем сложности видите? Присоединяюсь к вопросу. В чём отличие от залития справочников в РБД? Просто изучаю тему совместно с вами. Учусь, задаю вопросы :) Вот еще что нарыл по теме : раз и два ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:26 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Теперь мне понятно, что Вы имели в виду под ужасом для интегратора -- в случае РБД интегратор будет параллельно менять структуры двух РБД, глядя только в структуру базы, да ещё и пользуясь штатными инструментами производителя РБД, а в случае ООБД интегратор должен будет лезть в код приложения, разбираться в нём и руками править метод для репликации. Так? Да Fuzzy Но я так понял, что репликация между ООБД и РБД сделана на движке Hibernate, т.е. нужно будет просто исправить маппинг в конфигурационных файлах, как и в случае с OLTP на РБД (нам ведь по-любому нужно исправить маппинг, если структура объектной модели поменялась, верно?). Угу. "Исправить маппинг" - это задача, аналогичная мапингу объектной модели приложения на РСУБД, только делать мы это будем в другом месте, чем раньше - не на слое доступа к БД на с родным высокоуровневом ОО-языке, а в конфигурационных файлах, на PL\SQL и другим, мало подходящими для сложной логики, способом. Т.е. просто смещаем фокус, введя 2 новые технологии (ООБД и Hibernate) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:37 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfoТак или иначе сейчас идеи ООБД переживают не самые лучшие времена. но при этом OODB используются больше, чем об этом кто-то знает. Вспомнилась фраза про суслика ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:41 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyУ кого получается и почему именно так? 99.9..% OLTP построены на РСУБД, остальное на С и И СУБД а OLAP как МД придумали специально для задач, тяжелых в РСУБД, хотя есть и ROLAP такой вот расклад ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:42 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Fuzzy... Возможно, есть и другие главные упреки. Так или иначе сейчас идеи ООБД переживают не самые лучшие времена. Лучшие были в начале 90-х. всё развивается по спирали... может, уже настало время с новых позиций поглядеть на ООБД? vadiminfo Fuzzy Однако, так ли уж прекрасно и РСУБД справляется с задачами анализа? Ведь обычно аналитики не используют OLTP-систему для формирования своих отчётов, а используют OLAP-кубы! Разве обычно? Это только для поддержки принятий решений. В общем к хранилищам данных и ОЛАП для обощенных данных. А для поодержки опретивно прикладных задач полно запросов к детальным данным. Например, средние скользящие с такого-то числа по такое-то уже для ОЛАПа не лучшее из лучшего. Для него луче периоды. Если в имерениях много значений - тысчи, то ОЛАП может терять свои достоинства. возможно, я нечётко (:)) выразился, имелось в виду, что OLTP-система и OLAP-система -- это разные базы данных и даже часто физически на разных серверах. vadiminfo Fuzzy Причины этого: а) в случае, если данные находятся в сильно нормализованном виде, запросы по ним выполняются довольно-таки медленно. Особенно, если не построены нужные индексы, а они ведь и не построены в OLTP-системе, т.к. индексы там заточены под задачи бизнес-транзакций, а не анализа; б) какой-нибудь тяжёлый аналитический запрос, этак на пару-тройку часов, может помешать выполнению бизнес-транзакций, что неприемлемо. Другие в основном причины. В ОЛАП Юзер сам может строить запросы в процессе оперативного анализа. Какие же? Репортёр для юзера можно и к OLTP-системе прикрутить, как разница? vadiminfo Fuzzy Получается, что OLTP на РСУБД является типичной универсальной системой, которая справляется и с задачами текущей работы с информационной системой, и с задачами анализа. Но обе эти задачи она решает не идеально! Получается, но идея в том, что в хранилищах данных Данные могут быть не тока от РБД, но и иерахических и доисторичских, потому что для анализа нужны в общем случае и исторические данные. да ну и пусть, смысл моего вывода -- OLTP и OLAP это разные базы данных, и если для OLAP РБД однозначно (или неоднозначно?) рулят, то OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД. vadiminfo Fuzzy Исходя из этого, не кажется ли вам, что перспективной структурой информационной системы может быть следующая: а) OLTP-система на ООБД, из отчётов -- только несколько наиболее стандартных. Имеем все преимущества ООБД, перечислять их не буду. Пока не кажется. По, крайней мере, так как это могло казаться в начале 90-х. ОЛАП тут не поможет ООСУБД. Она должа сама выдавить РСУБД в оперативных БД. Во всех отношениях. Обоснуйте, пожалуйста. vadiminfo Fuzzy б) данные из OLTP-системы ежедневно (во время наименьшей нагрузки, ночью) реплицируются в архивную базу на РСУБД. Это позволит иметь ООБД не слишком больших размеров, за счёт архивации неактуальных для текущей деятельности данных. Не. Совсем не кажется. Все же это разные МД. И одна из них, скорей всего, лишняя. Вместе они могут отрицательно повлиять на качество ЖЗ. Аргументы? vadiminfo Fuzzy в) по данным РСУБД ежедневно строятся необходимые аналитикам OLAP-кубы, как обычно. Получится, что каждую из задач мы решим наиболее оптимальным способом. Как вам кажется? Вот это кажется. Но тока када потребности в оперативном анализе установлены. Вряд ли это надо в любой ИС. Ну, на любую ИС, конечно, не будем обобщать. Не уверен, что вообще что-то можно сказать о "любой ИС". Давайте обсудим, когда это надо, а когда нет! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод FuzzyУ кого получается и почему именно так? 99.9..% OLTP построены на РСУБД, остальное на С и И СУБД а OLAP как МД придумали специально для задач, тяжелых в РСУБД, хотя есть и ROLAP такой вот расклад А когда-то 99.9% всех программ писали на асме, и что? "Дела давно минувших дней, преданья старины глубокой..." ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:46 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyДела давно минувших дней Построены и строятся сейчас. А вот примеров OLTP на ООБД нет вообще. зы Вы все время говорите о ООБД, подразумевая видимо использование ОСУБД. Но ОСУБД не являются СУБД в обшепринятом смысле, следовательно и обсуждать-то нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 12:55 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzyвсё развивается по спирали... может, уже настало время с новых позиций поглядеть на ООБД? Ну по спирали да. А вот новые позиции каковы? Пока все, вроде, выглядит по старому. А судя по всему, это новое должно быть чем-то очень сильным, чтобы переломить ситуацию. Его бы все сразу заметили. Fuzzy возможно, я нечётко (:)) выразился, имелось в виду, что OLTP-система и OLAP-система -- это разные базы данных и даже часто физически на разных серверах. Это ничего не меняет, тем более, что я писал, что ОЛАП для хранилищ данных - это не тока две разных БД, но это и концепции БД разные. Но в Оракле они в одной БД. Т.е. это ни на что из сказанного не влияет. vadiminfo Какие же? Репортёр для юзера можно и к OLTP-системе прикрутить, как разница? Разница все же есть - это обеспечивается манипулированием данными с кубами. В частности, можно просто Йексель прикрутить. Можно просто кубы спроектировать. И все. Готово. Юзер может крутить по измерения и далать срезы - получая море запросов, которые сложно предвидеть. Включая так называемые шахматки, что важно для нанлиза. Получать тенденции. Т.е. это обеспеичвается самой МД - многемерные представления данных. Это и юзеру проще, чем в репортере. Без этого ОЛАП вряд ли бы так назывался и имел бы успех. Налабать просто заране выполненые отчеты в мат представлениях - моно и в ОРакле в РСУБД. Они будут по ночам заливаться. Fuzzy да ну и пусть, смысл моего вывода -- OLTP и OLAP это разные базы данных, и если для OLAP РБД однозначно (или неоднозначно?) рулят, то OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД. В общем случае OLAP не база данных, а инструмент. Кубы в хранилище только часть обощенных данных. Там есть и опреративные. Там все. Вот то, что "OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД." Это то как раз и ключевая проблема. Т.е. именно это и не установлено. На это надеялись в 90-х. Но убедительног подтвекрждения пока это не нашло. Будь оно так РБД бы уже значительно отодвинули. Возможно, где-то и кому-то удобней. Но этого не достаточно. РБД тоже удобна для многих типов приложений, как оказалось. Fuzzy Аргументы? Усложняется разработка, сопровождение (теперь две БД и разные МД, а с ОЛАП и три). Скорость роста энтропии програмного обеспечения возрастает - теперь примочек вдвое больше. Одним из существенных недостатков ООБД - большая сложность разработки. Плохо спроектированная, она более тяжело сопровождается, чем плохо спроетированная РБД. Fuzzy Ну, на любую ИС, конечно, не будем обобщать. Не уверен, что вообще что-то можно сказать о "любой ИС". Давайте обсудим, когда это надо, а когда нет! Это вопро о том, когда надо хранилище данных. Оно в общем случае должно взять и данные от разнх МД. Старых версий. ПОтому и из этих случаев нужно много отбросить. Что же останется? Взяли РСУБД. Там все есть чтобы лобать кубы в продвинутых РСУБД. На том дело и кончится. Потому и говорю Вам, нужно ООСУБД вытеснить РСУБД в главном. Но РСУБД налабали ОРСУБД. Что еще больше усложнило ситуацию для ООСУБД, так как сузило типы приложений для ООСУБД где РСУБД не адекватно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 13:31 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Fuzzyвсё развивается по спирали... может, уже настало время с новых позиций поглядеть на ООБД? Ну по спирали да. А вот новые позиции каковы? Пока все, вроде, выглядит по старому. А судя по всему, это новое должно быть чем-то очень сильным, чтобы переломить ситуацию. Его бы все сразу заметили. Fuzzy возможно, я нечётко (:)) выразился, имелось в виду, что OLTP-система и OLAP-система -- это разные базы данных и даже часто физически на разных серверах. Это ничего не меняет, тем более, что я писал, что ОЛАП для хранилищ данных - это не тока две разных БД, но это и концепции БД разные. Но в Оракле они в одной БД. Т.е. это ни на что из сказанного не влияет. vadiminfo Какие же? Репортёр для юзера можно и к OLTP-системе прикрутить, как разница? Разница все же есть - это обеспечивается манипулированием данными с кубами. В частности, можно просто Йексель прикрутить. Можно просто кубы спроектировать. И все. Готово. Юзер может крутить по измерения и далать срезы - получая море запросов, которые сложно предвидеть. Включая так называемые шахматки, что важно для нанлиза. Получать тенденции. Т.е. это обеспеичвается самой МД - многемерные представления данных. Это и юзеру проще, чем в репортере. Без этого ОЛАП вряд ли бы так назывался и имел бы успех. Налабать просто заране выполненые отчеты в мат представлениях - моно и в ОРакле в РСУБД. Они будут по ночам заливаться. Fuzzy да ну и пусть, смысл моего вывода -- OLTP и OLAP это разные базы данных, и если для OLAP РБД однозначно (или неоднозначно?) рулят, то OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД. В общем случае OLAP не база данных, а инструмент. Кубы в хранилище только часть обощенных данных. Там есть и опреративные. Там все. Вот то, что "OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД." Это то как раз и ключевая проблема. Т.е. именно это и не установлено. На это надеялись в 90-х. Но убедительног подтвекрждения пока это не нашло. Будь оно так РБД бы уже значительно отодвинули. Возможно, где-то и кому-то удобней. Но этого не достаточно. РБД тоже удобна для многих типов приложений, как оказалось. Fuzzy Аргументы? Усложняется разработка, сопровождение (теперь две БД и разные МД, а с ОЛАП и три). Скорость роста энтропии програмного обеспечения возрастает - теперь примочек вдвое больше. Одним из существенных недостатков ООБД - большая сложность разработки. Плохо спроектированная, она более тяжело сопровождается, чем плохо спроетированная РБД. Fuzzy Ну, на любую ИС, конечно, не будем обобщать. Не уверен, что вообще что-то можно сказать о "любой ИС". Давайте обсудим, когда это надо, а когда нет! Это вопро о том, когда надо хранилище данных. Оно в общем случае должно взять и данные от разнх МД. Старых версий. ПОтому и из этих случаев нужно много отбросить. Что же останется? Взяли РСУБД. Там все есть чтобы лобать кубы в продвинутых РСУБД. На том дело и кончится. Потому и говорю Вам, нужно ООСУБД вытеснить РСУБД в главном. Но РСУБД налабали ОРСУБД. Что еще больше усложнило ситуацию для ООСУБД, так как сузило типы приложений для ООСУБД где РСУБД не адекватно. Хорошо, давайте сперва обсудим ключевую проблему -- "OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД". Мне это кажется очевидным, по причинам: 1. Гораздо более быстрая разработка приложения 2. Более удобный рефакторинг 3. Более высокая производительность приложения. Вы с этим не согласны? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр Fuzzy iscrafm Титов Александр Теперь представим, что наша OLTP использует справочники, которые обычно ведутся отдельно в другой системе на реляционке. Как мы будем заливать эти справочники в ООБД? А их надо регулярно обновлять, желательно по факту изменения... в чем сложности видите? Присоединяюсь к вопросу. В чём отличие от залития справочников в РБД? Просто изучаю тему совместно с вами. Учусь, задаю вопросы :) Вот еще что нарыл по теме : раз и два интересные ссылки, добавил в свою копилку. Особенно первая. А вот вторая собственно о чём? О том, что рефакторинг штука нужная и что с ООБД рефакторинг гораздо проще? Так это и ежу ясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:07 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр Fuzzy Но я так понял, что репликация между ООБД и РБД сделана на движке Hibernate, т.е. нужно будет просто исправить маппинг в конфигурационных файлах, как и в случае с OLTP на РБД (нам ведь по-любому нужно исправить маппинг, если структура объектной модели поменялась, верно?). Угу. "Исправить маппинг" - это задача, аналогичная мапингу объектной модели приложения на РСУБД, только делать мы это будем в другом месте, чем раньше - не на слое доступа к БД на с родным высокоуровневом ОО-языке, а в конфигурационных файлах, на PL\SQL и другим, мало подходящими для сложной логики, способом. Т.е. просто смещаем фокус, введя 2 новые технологии (ООБД и Hibernate) Отвечу Вам цитатой из Вашей ссылки: [quot http://www.onjava.com/pub/a/onjava/2006/04/12/object-to-relational-database-replciation-with-db40.html?page=2]So what's the motivation to use db4o at all? Why not use a relational database in the first place? There are a number of reasons why you might choose db4o. The fact that the application and database use exactly the same model means that you don't have to write a lot of code to build and execute SQL statements that the compiler can't check and that can be difficult to refactor. You also don't need to write more code to assemble objects from the results. You could use Hibernate directly in the application, which would let you work only with objects in your code. However, the footprint and performance of the resultant application would probably make it unsuitable[quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Хорошо, давайте сперва обсудим ключевую проблему -- "OLTP гораздо удобнее строить на ООБД, т.к. для систем этого типа они намного лучше приспособлены, чем РБД". Мне это кажется очевидным, по причинам: 1. Гораздо более быстрая разработка приложения 2. Более удобный рефакторинг 3. Более высокая производительность приложения. Вы с этим не согласны? Вообще-то при сравнеии различных МД учитывать предпочтительнее все достоинства и недостатки, а не только часть из них. Поскольку нет гарантии, что что-то из неучтенного перевесит. Особенно в определенных типах приложений. Из названных мне, не кажестя очевидным 1. Гораздо более быстрая разработка приложения Наоборот, до сих пор считал, что проектированиее ООБД сложнее. Ну и вроде так и пишут в литератре. Это один из недостатков ООСУБД. В частности, они читаются из-за этого более дорогими. Одно из важных достоинств РБД - простота проектирования. Ее проектровать начинают кто угодно. 2.Рефакторинг? Не знаю. Думаю, что спопровождение при проч равных условиях сложнее и дороже. Т.е. даже неорефакторингенная РБД, может быть проще в соапровождении. И даже менне кавлифицированным персоналом. 3. Насчет большей производительности сложнеее сказать. Известно что на своей заре РСУБД значительно уступали иерархическим в этом. И даже не подходили из-за этого для OLTP. Типа это были ХП тех лет. Но это преодолелили. Но с 1986 года это изменилось, они сравнялись с иерархическими и вытеснили сразу последнии благодаря другим преимуществам. А ООСБуД почему быстрей иерархических? Методы доступа близкиу - навигация. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:18 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo 1. Гораздо более быстрая разработка приложения Наоборот, до сих пор считал, что проектированиее ООБД сложнее. Ну и вроде так и пишут в литератре. Это один из недостатков ООСУБД. В частности, они читаются из-за этого более дорогими. Одно из важных достоинств РБД - простота проектирования. Ее проектровать начинают кто угодно.Пожалуйста, ознакомьтесь с какой-нибудь из ссылок выше. Проектировать ООБД вообще не нужно, в отличие от РБД. Поэтому и гораздо более быстрая разработка. 2.Рефакторинг? Не знаю. Думаю, что спопровождение при проч равных условиях сложнее и дороже. Т.е. даже неорефакторингенная РБД, может быть проще в соапровождении. И даже менне кавлифицированным персоналом. [/quot]Хорошую ссылку дал Титов Александр в своём посте 5107052, ссылка "два" vadiminfo 3. Насчет большей производительности сложнеее сказать. Известно что на своей заре РСУБД значительно уступали иерархическим в этом. И даже не подходили из-за этого для OLTP. Типа это были ХП тех лет. Но это преодолелили. Но с 1986 года это изменилось, они сравнялись с иерархическими и вытеснили сразу последнии благодаря другим преимуществам. А ООСБуД почему быстрей иерархических? Методы доступа близкиу - навигация. Да, не думаю, что ООБД быстрей иерархических. Но с тех пор ещё кое-что изменилось -- широкую популярность приобрело ООП. А для объектов доступ через навигацию -- родной. Поэтому если у нас объектно-ориентированное приложение, то метод доступа иерархических баз и ООБД через навигацию начинает резко бороть методы доступа, применяемые РБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:28 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Что-то все мне это напоминает, "что лучше компилятор или интерпретатор ;o)" Fuzzyимелось в виду, что OLTP-система и OLAP-система -- это разные базы данных и даже часто физически на разных серверах. Мне кажется, что вы путаете (вернее смешиваете) OLAP систему с архивом. 1) Все данные попадают в архив 2) Но не все данные загружаются из архива в ОLAP (или все, но с некоторыми процедурами преобразования, дабы можно сделать адекватный кубик) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:48 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyПожалуйста, ознакомьтесь с какой-нибудь из ссылок выше. Проектировать ООБД вообще не нужно, в отличие от РБД. Поэтому и гораздо более быстрая разработка. Боюсь, что это проектирование приложений БД должно вообще начинаться с проектирования БД. В силу предположения, о том, что приложений может быть много и разных, и у них другой урваень абстракции (у первых уровень юзеров для которых они написаны, а у вторых более общие данные ПО). Т.е. если Вы проектровали приложения (клиентов), а потом их объекты стали хранить в БД, то возможно есть риски утратить вообще многие достоинства самой идеи БД, получив просто перманенто, сохраняемые на внешних носителях данные. Тут вообще всплывают другие достоинства и недостатки этих МД. В частности, независимость данных от приложений. В ООСУБД часто нет представлений. Иными словами, материя сохраняется: система с "вообще не проектированной БД" просто может быть хуже с системой, где БД проектировалось. FuzzyДа, не думаю, что ООБД быстрей иерархических. Но с тех пор ещё кое-что изменилось -- широкую популярность приобрело ООП. А для объектов доступ через навигацию -- родной. Поэтому если у нас объектно-ориентированное приложение, то метод доступа иерархических баз и ООБД через навигацию начинает резко бороть методы доступа, применяемые РБД. Для иерархических навигационный доступ совсем родной. Начинает то он может и резко (он и был раньше быстрее, но не теперь), но вопрос кончает ли - остается открытым. Как видно из истории производительность нарастает в РСУБД, и остается постоянно одним из направлений их развития. И не факт, что во всех вопросах и во всех данных ООСУБД превзойдет в запросах к большим объемам данных. И в частности, не факт, что РБД не позволяют добиться требуемой в приложениях производительности, включая средние и проч. Тем более Вы писали про всякие средние и проч. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 14:51 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfoБоюсь, что это проектирование приложений БД должно вообще начинаться с проектирования БД. немного для чтения . можно скачать или db4o или с сайте прогресса ObjectStore PSE, попробовать... Но смысл в том, что разрабатываются классы, они являются персистентными... это и есть DB. Никая структура БД отдельно не разрабатывается. Это не РДВ, в которой интерфейс отдельно, данные отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
shelsoftЧто-то все мне это напоминает, "что лучше компилятор или интерпретатор ;o)" Fuzzyимелось в виду, что OLTP-система и OLAP-система -- это разные базы данных и даже часто физически на разных серверах. Мне кажется, что вы путаете (вернее смешиваете) OLAP систему с архивом. 1) Все данные попадают в архив 2) Но не все данные загружаются из архива в ОLAP (или все, но с некоторыми процедурами преобразования, дабы можно сделать адекватный кубик) В своём самом первом топике я, кажется, разделил архив и OLAP. Но не суть важно. Главное, что система так или иначе должна состоять из двух более или менее независимых частей -- в одной данные вводятся и редактируются, и к ней одни требования, а в другой эти данные вытягиваются и анализируются, и к ней совсем другие требования. Вы согласны с этим? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:06 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Боюсь, что это проектирование приложений БД должно вообще начинаться с проектирования БД. В силу предположения, о том, что приложений может быть много и разных, и у них другой урваень абстракции (у первых уровень юзеров для которых они написаны, а у вторых более общие данные ПО). Т.е. если Вы проектровали приложения (клиентов), а потом их объекты стали хранить в БД, то возможно есть риски утратить вообще многие достоинства самой идеи БД, получив просто перманенто, сохраняемые на внешних носителях данные. Тут вообще всплывают другие достоинства и недостатки этих МД. В частности, независимость данных от приложений. В ООСУБД часто нет представлений. Иными словами, материя сохраняется: система с "вообще не проектированной БД" просто может быть хуже с системой, где БД проектировалось. +1 РСУБД проектируются обычно ведущими разработчиками, учитывающими много того, что менее опытный программист, имеющий ПРЯМОЕ ВЛИЯНИЕ на СТРУКТУРУ ООБД может не учесть. Т.е. грамотно спроектированная РСУБД далее действует как стабилизатор системы, направляя доработки в общее русло. Понятно, почему адепты аджайла - за ООБД и это то, почему аджайл в корпоративных проектах нужно использовать с большой осторожностью... блин, во тему поднял... сейчас налетят :) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:08 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafmа какие исследовали? Судя по тому, с каким "энтузиазмом" Вы обследовали сайт db4o ... хорошо смотрели :)Я интересовался этим вопросом несколько лет назад. Но очень детально вопрос не изучал. Сейчас же у меня совсем нет времени для подробного изучения. Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить. В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:22 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Титов Александр vadiminfo Боюсь, что это проектирование приложений БД должно вообще начинаться с проектирования БД. В силу предположения, о том, что приложений может быть много и разных, и у них другой урваень абстракции (у первых уровень юзеров для которых они написаны, а у вторых более общие данные ПО). Т.е. если Вы проектровали приложения (клиентов), а потом их объекты стали хранить в БД, то возможно есть риски утратить вообще многие достоинства самой идеи БД, получив просто перманенто, сохраняемые на внешних носителях данные. Тут вообще всплывают другие достоинства и недостатки этих МД. В частности, независимость данных от приложений. В ООСУБД часто нет представлений. Иными словами, материя сохраняется: система с "вообще не проектированной БД" просто может быть хуже с системой, где БД проектировалось. +1 РСУБД проектируются обычно ведущими разработчиками, учитывающими много того, что менее опытный программист, имеющий ПРЯМОЕ ВЛИЯНИЕ на СТРУКТУРУ ООБД может не учесть. Т.е. грамотно спроектированная РСУБД далее действует как стабилизатор системы, направляя доработки в общее русло. Понятно, почему адепты аджайла - за ООБД и это то, почему аджайл в корпоративных проектах нужно использовать с большой осторожностью... блин, во тему поднял... сейчас налетят :) +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:25 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey iscrafmа какие исследовали? Судя по тому, с каким "энтузиазмом" Вы обследовали сайт db4o ... хорошо смотрели :)Я интересовался этим вопросом несколько лет назад. Но очень детально вопрос не изучал. Сейчас же у меня совсем нет времени для подробного изучения. Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить. В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств. OFF это то же самое, что пытаться всё и вся готовить на микроволновой печке. Пока сам пироги там не испекёшь (или кто другой), бесполезный разговор. Удачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:27 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Нууу, по-любому у нас уже серьёзный прогресс в отношении к ООБД. Раньше, насколько я мог заметить по форуму, было только "Фууу, отстой!". А теперь уже скорее "надо попробовать что-то реализовать, а потом уже можно и обсудить", не правда ли? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:31 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить. В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств. Андрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства? Описали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:36 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyНууу, по-любому у нас уже серьёзный прогресс в отношении к ООБД. Раньше, насколько я мог заметить по форуму, было только "Фууу, отстой!". А теперь уже скорее "надо попробовать что-то реализовать, а потом уже можно и обсудить", не правда ли? :)) :) не так. Направо пойдёшь - коня потеряешь (я там был уже :)) ). ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:36 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm Bogdanov Andrey Именно поэтому я и задаю вопросы здесь - может быть разобравшиеся люди на них смогут ответить. В ответ же вижу только язвительные замечания и заверения о том, что "все круто" без каких-либо доказательств. Андрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства? Описали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. для начала лучше OXMLDB - они проще и уже работают ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:41 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Petro123для начала лучше OXMLDB - они проще и уже работают так и OODB работают Если Вы разрабатываете приложение, допустим на Java, то зачем еще дополнительная морока с БД, создал персистент класс и все. Жаль только что к языку привязано, что в общем-то естественно. Для делфи пришлось самим делать :( ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 15:50 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafm Petro123для начала лучше OXMLDB - они проще и уже работают так и OODB работают Если Вы разрабатываете приложение, допустим на Java, то зачем еще дополнительная морока с БД, создал персистент класс и все. Жаль только что к языку привязано, что в общем-то естественно. Для делфи пришлось самим делать :( С одной стороны, жаль, а с другой -- зато компилятор может всё проверить перед компиляцией, что по сравнению с непроверяемым текстом SQL-запроса, как мне кажется, реальная фича. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:00 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. Именно так - ОО подход это попытка обойтись без моделирования данных и МД вообще. Понятно какие системы так можно построить :). Поэтому т.н. "ООСУБД" СУБД по сути не являются, т.к. не имеют никакой МД. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:12 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
iscrafmАндрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства? Проще не значит лучше. Еще проще взять memory-mapped файл. Но база данных отличается еще и тем, что предоставляет возможности поиска. iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. Я привел конкретный пример поиска по входящим в накладную товарам. Я не верю, что следуя вашей рекомендации "просто описать класс на java" я получу такой поиск за приемлимое время. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:12 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. Именно так - ОО подход это попытка обойтись без моделирования данных и МД вообще. Понятно какие системы так можно построить :). Поэтому т.н. "ООСУБД" СУБД по сути не являются, т.к. не имеют никакой МД. Ну вот до чего мы уже договорились, и ОО подход это какая-то "попытка" чего-то там, и ООБД вообще не БД ни разу... Асм рулит? Давайте без холиваров обойдёмся, пожалуйста. Есть ещё мнения, почему не использовать ООБД в описанной в первом топике конфигурации, кроме: 1) необкатанная технология, чёрт её знает, чего от неё ожидать, 2) можем получить какие-нибудь грабли при репликации (см.п.1), 3) плохо уже то, что не будем долго думать над структурой БД, и вообще это не для крутых перцев. (кажется, это всё, что было упомянуто?) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:18 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey iscrafmАндрей, если Вам нужно хранить коллекцию объектов, то что может быть проще использования для этих целее OODB.. Может чего-то не понимаю, но какие требуются доказательства? Проще не значит лучше. Еще проще взять memory-mapped файл. Но база данных отличается еще и тем, что предоставляет возможности поиска. iscrafmОписали класс на той же Java и все. Не нужно проектировать для хранения свойств какую-то немыслимую структуру БД. Я привел конкретный пример поиска по входящим в накладную товарам. Я не верю, что следуя вашей рекомендации "просто описать класс на java" я получу такой поиск за приемлимое время. Ну чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то??? Три метода запросов есть: по образцу (особенно ништяк должен быть, когда ищем документ тупо по номеру или по дате), S.O.D.A. (выглядит достаточно страшно, но не страшнее SQL-a), и native query (самый супер с виду, но возможны тормоза, если анализатор не сможет распознать алгоритм отбора). Для приведённого конкретного примера я бы попробовал сперва native query, а потом S.O.D.A. (тут уж промашки не будет). Хотя можно и образцом обойтись, если подумать. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:24 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyДавайте без холиваров обойдёмся, пожалуйста. Да пожалуйста. Но не разобравшись в основах нет смысла идти дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2007, 16:49 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyНу чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то???Если все так просто, то неужели так трудно привести пример. Я очень хочу поверить, но моя естественнонаучноя сущность не позволяет просто верить. Я не очень понимаю где тут индекс строить. Давайте я начну с примера (прошу прощения за ошибки в java-синтаксисе). Вот пара классов (по крайне мере именно такая реализация возникла у меня как "первое желание") - как будет выглядеть поиск документов по товару? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Для сравнения (уверен, что каждый из читающих и сам бы нарисовал) приведу реляционный вариант (использую синтаксис Oracle). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 09:19 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov AndreyЯ не очень понимаю где тут индекс строить. Теоретически по значению свойств объектов ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 09:24 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
_мод Bogdanov AndreyЯ не очень понимаю где тут индекс строить. Теоретически по значению свойств объектовНу так это опять "теоретически". Неужто никто не может практически? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 10:39 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyНу чего невероятного-то? Всё то же самое, что и РБД -- индекс по полю, по нему быстро ищется то, что нужно. Чего особенного-то???Если все так просто, то неужели так трудно привести пример. Я очень хочу поверить, но моя естественнонаучноя сущность не позволяет просто верить. Я не очень понимаю где тут индекс строить. Давайте я начну с примера (прошу прощения за ошибки в java-синтаксисе). Вот пара классов (по крайне мере именно такая реализация возникла у меня как "первое желание") - как будет выглядеть поиск документов по товару? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Для сравнения (уверен, что каждый из читающих и сам бы нарисовал) приведу реляционный вариант (использую синтаксис Oracle). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Насколько я блин понял документацию и примеры, поиск будет выглядеть примерно так: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 10:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey _мод Bogdanov AndreyЯ не очень понимаю где тут индекс строить. Теоретически по значению свойств объектовНу так это опять "теоретически". Неужто никто не может практически? В доках написано, для случая выше индекс устанавливать нуно как-то так: Код: plaintext 1.
Андрей, я очень извиняюсь, но как насчёт того, чтобы самому просто взять, да поглядеть, как и чего делается? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 10:46 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyАндрей, я очень извиняюсь, но как насчёт того, чтобы самому просто взять, да поглядеть, как и чего делается?Если я соберусь что-то писать используя данный прордукт, то я буду подробно знакомится с документацией. Пока же я всего лишь хочу понять, как это может работать. Я думал, что тут есть люди работавшие с продуктом и могущие ответить на некоторые вопросы. Если таковых нет, то можно честно сказать, что опыт практического применения пока отсутствует. В ближайшие полгода мне не светит использование никаких новых технологий, поэтому углубляться в предмет и тратить время на самостоятельное изучение мне не хочется. Но быдь хоть немного в курсе - хотелось бы. Fuzzy Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 11:13 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey Fuzzy Код: plaintext
Может, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 11:21 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyМожет, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль.По правде говоря, писать уже тяжело - шампанское мешает. Но попробую объяснить свои затруднения. Даже для строковых значений простое индексирование не очень помогает при операциях типа like. Нужно иметь "специальный" индекс. Ну и с коллекциями похожая тружность. Что именно индексируется при написании коллекция.indexed(true)? Как физически работает такой индекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 13:32 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyМожет, я чего-то сильно не догоняю? А почему невозможна для инкапсулированных коллекций? Индексация она и в Африке индексация, как и поиск. Чем тут ООБД отличается от РБД? Я не могу никак понять, что Вы имеете в виду, какие трудности??? Поясните, пожалуйста, Вашу мысль.По правде говоря, писать уже тяжело - шампанское мешает. Но попробую объяснить свои затруднения. Даже для строковых значений простое индексирование не очень помогает при операциях типа like. Нужно иметь "специальный" индекс. Ну и с коллекциями похожая тружность. Что именно индексируется при написании коллекция.indexed(true)? Как физически работает такой индекс? Честно говоря, юх его знает, чего там делается внутри энтой самой db4o... Но я бы сам, если бы реализовывал такое индексирование, сделал бы так: при поступлении требования построить индекс по полю lines класса Invoice создавал бы таблицу, где по ID объекта Article можно быстро найти ID тех объектов Invoice, у которых этот данный объект Article встречается в коллекции в поле lines. Может быть, даже писал бы такую инфу прямо в объект Article. Вот. А ID объекта в ООБД прямо указывает на месторасположение нужного объекта, ничего больше искать нигде не нужно. Как Вам такая реализация? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 14:05 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy ...Может быть, даже писал бы такую инфу прямо в объект Article. ... Как Вам такая реализация? Вот это меня и напрягает немного. Это как-то нарушает мои представления об ООП. Aricle ничего не знает (и не должен знать) о том, что есть какие-то там накладные. Этот класс должен уметь существовать сам по себе. Сегодня мы подключили модуль с наладными, а завтра - инвентаризацию - нам что теперь Article каждый раз пересобирать? У нас в системе на таблицу Account более двухсот ссылок, общий объем ссылающихся таблиц гигабайтами меряется, так что все это удовольствие в Account запихивать? Может быть все не так мрачно, а у меня паранойя? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 14:11 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey Fuzzy ...Может быть, даже писал бы такую инфу прямо в объект Article. ... Как Вам такая реализация? Вот это меня и напрягает немного. Это как-то нарушает мои представления об ООП. Aricle ничего не знает (и не должен знать) о том, что есть какие-то там накладные. Этот класс должен уметь существовать сам по себе. Сегодня мы подключили модуль с наладными, а завтра - инвентаризацию - нам что теперь Article каждый раз пересобирать? У нас в системе на таблицу Account более двухсот ссылок, общий объем ссылающихся таблиц гигабайтами меряется, так что все это удовольствие в Account запихивать? Может быть все не так мрачно, а у меня паранойя? Секундочку, я имел в виду, что так делает сама db4o , а не клиентский программист! Клиентский программист пишет только лишь Код: plaintext 1.
Вы же об этом меня спрашивали? Я отнюдь не имел в виду, что в приложении нужно как-то менять объектную модель! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 14:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyСекундочку, я имел в виду, что так делает сама db4o , а не клиентский программист!Я понимаю. Просто представьте, что работает у меня приложение есть там класс Article и в базе уже много экземпляров хранится и тут кто-то новый модуль пишет и имеющимся классом ползуется. Ведь это не должно требовать пересборки класса Article, и вообще никаких изменений в хранящиеся экземпляры вносить не должно. То есть идея "писал бы такую инфу прямо в объект Article." однозначно не подходит. Ну а если для каждой связи "создавал бы таблицу", то вся ООБД просто в настройку на РБД превращается, просто процесс мапинга между объектными и реляционными структурами скрыт от программиста и не управляем. Честно скажу особых преимуществ и тут не вижу - я предпочитаю "понимать" подноготную. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 14:44 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyСекундочку, я имел в виду, что так делает сама db4o , а не клиентский программист!Я понимаю. Просто представьте, что работает у меня приложение есть там класс Article и в базе уже много экземпляров хранится и тут кто-то новый модуль пишет и имеющимся классом ползуется. Ведь это не должно требовать пересборки класса Article, и вообще никаких изменений в хранящиеся экземпляры вносить не должно. То есть идея "писал бы такую инфу прямо в объект Article." однозначно не подходит. Ну а если для каждой связи "создавал бы таблицу", то вся ООБД просто в настройку на РБД превращается, просто процесс мапинга между объектными и реляционными структурами скрыт от программиста и не управляем. Честно скажу особых преимуществ и тут не вижу - я предпочитаю "понимать" подноготную. А кто говорил про преимущества ООБД перед РБД в поиске ??? Я лишь утверждал, что потерь при этом нет. Примерный паритет. Выигрыш будет, когда найденные документы начнём из базы доставать, юзеру показывать, менять и обратно в базу сохранять. Т.е. выполнять непосредственно саму работу с базой, для чего OLTP-система и предназначена. Тут-то Вы со мной согласны? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 14:48 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА кто говорил про преимущества ООБД перед РБД в поиске ??? Я лишь утверждал, что потерь при этом нет. Примерный паритет. Выигрыш будет, когда найденные документы начнём из базы доставать, юзеру показывать, менять и обратно в базу сохранять. Т.е. выполнять непосредственно саму работу с базой, для чего OLTP-система и предназначена. Тут-то Вы со мной согласны?Вы вовсю хотите чтобы я с вами спорить начал. А я всего лишь понять хочу. В данном случае я вижу, что если мы просто храним объекты, как есть, то непонятно как организовать приемлимый по скорости работы поиск. В качестве решения вы предложили хранить объекты в таблицах, но если мы храним объекты в таблицах, то занчит, что ООБД при чтении/сохранении занимается преобразованием данных (пусть это скрыто от программиста) из объектного представления в реляционное и обратно. Но тогда я не понимаю как мы можем получить выигрыш в производительности на этих операциях, если сейчас все системы построенные на РБД делают ровно то же самое. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 15:00 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyА кто говорил про преимущества ООБД перед РБД в поиске ??? Я лишь утверждал, что потерь при этом нет. Примерный паритет. Выигрыш будет, когда найденные документы начнём из базы доставать, юзеру показывать, менять и обратно в базу сохранять. Т.е. выполнять непосредственно саму работу с базой, для чего OLTP-система и предназначена. Тут-то Вы со мной согласны?Вы вовсю хотите чтобы я с вами спорить начал. А я всего лишь понять хочу. В данном случае я вижу, что если мы просто храним объекты, как есть, то непонятно как организовать приемлимый по скорости работы поиск. В качестве решения вы предложили хранить объекты в таблицах, но если мы храним объекты в таблицах, то занчит, что ООБД при чтении/сохранении занимается преобразованием данных (пусть это скрыто от программиста) из объектного представления в реляционное и обратно. Но тогда я не понимаю как мы можем получить выигрыш в производительности на этих операциях, если сейчас все системы построенные на РБД делают ровно то же самое. Проясню свою мысль: объекты мы безусловно храним как есть. В таблице я предложил хранить только индекс , причём скрыто от программиста и от объектной модели приложения, чиста где-то внутри ООБД. Так понятнее? И ещё: я же не разработчик ООБД. Может, там другой какой подход к индексам используется... Вы можете похвастаться, что полностью понимаете, как строятся индексы тем же ораклом каким-нибудь? Многим программистам непонимание таких деталей не мешает успешно трудиться. Просто все знают -- хочешь ускорить поиск, используй соответствующий индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 15:04 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyПроясню свою мысль: объекты мы безусловно храним как есть. В таблице я предложил хранить только индекс , причём скрыто от программиста и от объектной модели приложения, чиста где-то внутри ООБД. Так понятнее?Понятно, но за счет чего получается выигрыш в производительности? Если ООБД делает те же операции при сохранении (пусть скрыто от программиста), что и написанный руками маппинг Java-классов в РБД? С выигрышем в скорости разработки я согласен (правда по моему опыту использование средств быстрого написания приводит к тяжелому сопровождению :) ), но обоснования для выигрыша в скорости сохранения пока не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 15:28 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyПроясню свою мысль: объекты мы безусловно храним как есть. В таблице я предложил хранить только индекс , причём скрыто от программиста и от объектной модели приложения, чиста где-то внутри ООБД. Так понятнее?Понятно, но за счет чего получается выигрыш в производительности? Если ООБД делает те же операции при сохранении (пусть скрыто от программиста), что и написанный руками маппинг Java-классов в РБД? С выигрышем в скорости разработки я согласен (правда по моему опыту использование средств быстрого написания приводит к тяжелому сопровождению :) ), но обоснования для выигрыша в скорости сохранения пока не вижу. Не делает ООБД те же операции, что и маппинг. Объект сохраняется как есть , а не раскладывается по десятку таблиц. За счёт этого и выигрыш в скорости. Основной же выигрыш, как мне кажется, не при сохранении объекта в базу (тут в конце концов ничего особо сложного нет, замапить объект в РБД), а при извлечении объекта из базы . Тут-то понятно, почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 15:40 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Объект сохраняется как есть , а не раскладывается по десятку таблиц. За счёт этого и выигрыш в скорости. Тогда объясните мне, что значит "сохраняется как есть"? Прямо байт за байтом из памяти переписывается? Всякие указатели в любом случае должны "перекодироваться", индексы нужно расчитать и т.п. FuzzyОсновной же выигрыш, как мне кажется, не при сохранении объекта в базу (тут в конце концов ничего особо сложного нет, замапить объект в РБД), а при извлечении объекта из базы . Тут-то понятно, почему?А вот тут я как раз обратного эффекта ожидаю. Берем ту же накладную. В РБД есть две таблички - заголовок и строки, в ООБД лежат объекты с коллекцией внутри. Что происходит, когда я грид заполняю? В РБД считываются данные из таблицы с заголовками (несколько блоков с диска). А в ООБД? Все накладные будут полностью читаться? Или вложенные в них коллекции будут чудесным образом пропускаться? Где у нас чтений будет меньше? А заметьте, что именно дисковые операции самые дорогие. Я понимаю, что и в ООБД, наверное, можно как-то заставить ее вложенные коллекции отдельно храниьт. Но чем тогда это будет отличаться от хранения в РБД? В случае РБД я имею возможность считать с диска те данные, которые мне нужны, тем самым минимизируя дисковые операции. Я понимаю, что есть екоторые операции на которых ООБД немного быстрее, на некоторых РБД, но говорить о том что в классе OLTP систем ООБД рвет всех на части - на мой взгялд абсурдно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2007, 21:21 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey Fuzzy Объект сохраняется как есть , а не раскладывается по десятку таблиц. За счёт этого и выигрыш в скорости. Тогда объясните мне, что значит "сохраняется как есть"? Прямо байт за байтом из памяти переписывается? Всякие указатели в любом случае должны "перекодироваться", индексы нужно расчитать и т.п. FuzzyОсновной же выигрыш, как мне кажется, не при сохранении объекта в базу (тут в конце концов ничего особо сложного нет, замапить объект в РБД), а при извлечении объекта из базы . Тут-то понятно, почему?А вот тут я как раз обратного эффекта ожидаю. Берем ту же накладную. В РБД есть две таблички - заголовок и строки, в ООБД лежат объекты с коллекцией внутри. Что происходит, когда я грид заполняю? В РБД считываются данные из таблицы с заголовками (несколько блоков с диска). А в ООБД? Все накладные будут полностью читаться? Или вложенные в них коллекции будут чудесным образом пропускаться? Где у нас чтений будет меньше? А заметьте, что именно дисковые операции самые дорогие. Я понимаю, что и в ООБД, наверное, можно как-то заставить ее вложенные коллекции отдельно храниьт. Но чем тогда это будет отличаться от хранения в РБД? В случае РБД я имею возможность считать с диска те данные, которые мне нужны, тем самым минимизируя дисковые операции. Я понимаю, что есть екоторые операции на которых ООБД немного быстрее, на некоторых РБД, но говорить о том что в классе OLTP систем ООБД рвет всех на части - на мой взгялд абсурдно. Ну конечно, если мы не собираемся строить объектную модель и работать с ней, то ООБД нам абсолютно не нужна. Просто забываем про ООП, и колбасимся с отдельными записями, запросами по ним и т.д. Тут и обсуждать нечего. А вот если мы всё-таки хотим использовать ООП и все его преимущества? Как в этом случае РБД сможет минимизировать дисковые операции, которых будет на порядок или два больше, чем в ООБД? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2007, 11:29 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА вот если мы всё-таки хотим использовать ООП и все его преимущества? Как в этом случае РБД сможет минимизировать дисковые операции, которых будет на порядок или два больше, чем в ООБД?И зачем вы мне эти цифры взятые с потолка суете? Возможно, что в для ваших реализаций систем с использованием РБД эти цифры и имеют отношение к реальности, но это скорее говорит о вашем неумении использовать РБД, чем о преимуществах ООБД. Расскажите, ради каких преимуществ ООП вы делаете такое количество ненужных дисковых операци? Приведите реальные примеры, в которых РБД делает на два порядка чтений больше. Я еще раз повторю реальный пример, который нужен во всех OLTP системах и который пока в ООБД выглядит менее привлекательно - показать пользователю "грид" с некоторым списком. РБД позволит прочитать с диска и передать по сети ровно те данные, которые будут показаны пользователю (в реальности читается несколько больше, но максимум в два раза). Для ООБД я не знаю достаточно оптимального решения. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2007, 23:05 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov Andrey FuzzyА вот если мы всё-таки хотим использовать ООП и все его преимущества? Как в этом случае РБД сможет минимизировать дисковые операции, которых будет на порядок или два больше, чем в ООБД?И зачем вы мне эти цифры взятые с потолка суете? Возможно, что в для ваших реализаций систем с использованием РБД эти цифры и имеют отношение к реальности, но это скорее говорит о вашем неумении использовать РБД, чем о преимуществах ООБД. Расскажите, ради каких преимуществ ООП вы делаете такое количество ненужных дисковых операци? Приведите реальные примеры, в которых РБД делает на два порядка чтений больше. Я еще раз повторю реальный пример, который нужен во всех OLTP системах и который пока в ООБД выглядит менее привлекательно - показать пользователю "грид" с некоторым списком. РБД позволит прочитать с диска и передать по сети ровно те данные, которые будут показаны пользователю (в реальности читается несколько больше, но максимум в два раза). Для ООБД я не знаю достаточно оптимального решения. А я тогда ещё раз повторю свой вопрос: вы НЕ используете ООП в своих приложениях и НЕ строите и НЕ используете объектную модель? В ваших приложениях нет и не было классов вроде Договор, Документ, Счёт, Накладная, Товар и т.п.? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2007, 23:31 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА я тогда ещё раз повторю свой вопрос: вы НЕ используете ООП в своих приложениях и НЕ строите и НЕ используете объектную модель? В ваших приложениях нет и не было классов вроде Договор, Документ, Счёт, Накладная, Товар и т.п.? ООП не обязательно классы "вроде Договор, Документ, Счёт, Накладная, Товар и т.п.". Это могут быть классы вроде Датагрид, Рекордсет и т.д. Причем в плане одного из основных преимуществ ООП - повторного использования, скорей всего, значительно превосходят классы Объектной модели. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2007, 11:33 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo FuzzyА я тогда ещё раз повторю свой вопрос: вы НЕ используете ООП в своих приложениях и НЕ строите и НЕ используете объектную модель? В ваших приложениях нет и не было классов вроде Договор, Документ, Счёт, Накладная, Товар и т.п.? ООП не обязательно классы "вроде Договор, Документ, Счёт, Накладная, Товар и т.п.". Это могут быть классы вроде Датагрид, Рекордсет и т.д. Причем в плане одного из основных преимуществ ООП - повторного использования, скорей всего, значительно превосходят классы Объектной модели. Зато значительно уступают по скорости разработки, наглядности, надёжности, и лёгкости внесения изменений и дополнений. Абстракция уровнем ниже. Не так ли? Ну да ладно, мы отклонились от темы. Ещё раз -- если не строить объектную модель, то ООБД вообще просто-напросто не нужна. А вот если объектную модель строить, то ООБД даст РБД сто очков форы и всё равно выиграет. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2007, 12:53 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyЗато значительно уступают по скорости разработки, наглядности, надёжности, и лёгкости внесения изменений и дополнений. Абстракция уровнем ниже. Не так ли? Ну да ладно, мы отклонились от темы. Ещё раз -- если не строить объектную модель, то ООБД вообще просто-напросто не нужна. А вот если объектную модель строить, то ООБД даст РБД сто очков форы и всё равно выиграет. Все от того, что Вы выбираете отдельные достоинства и недостатки. Вы сказали про ООП. Я привел Вам, пример, что главное достоинство ООП с другими классами. И абстракиция там возможно выше: она в БД выше, чем в приложении ориентированном на конкретных юзеров. Вы тогда начали говорить о других достоинствах ООБД. Причем, тоже все не очевидно. И последний Ваш вывод, потому тоже далеко не очевиден. Судите сами, если бы так было, то с начала 90-х ООБД давно бы вытеснила РБД. Потому, что они не просто так "строят" на удачу, а сначала выбирают принцип построения. Единственное на что Вы расчитывали, это сохранить объекты приложения в БД, и тогда типо не надо проектировать БД. В это могут верить проггеры знающие ООП, но пришедшие в область БД из других проблемных областей. Но все дело в том, что технолгоии БД имеют такое значние в ИТ, и по сути дали наиболее значительный прирост в производительности ИС, не за счет того, что научились сохранять перманенто данные прог. Есть кое-что и другое. И это другое предполагает, что БД в общем случае проектируется еще до приложений. И имеет значение именно МД в БД, а не внешние МД приложений при сравнении БД. Потому Ваше преимущество, может впечатлять, скорее всего, ООП прогерров недавно пришедших в БД из других областей. Есть, скорей всего, значительно более важные для господства той или иной МД в ИТ. Ну, это известно, что на ООПшников из других областей часто и составляют большинство двигателей ООБД. Но этого вряд ли достаточно. Сами производители ООСУБД в основном не них, скорей всего расчитывали. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2007, 13:26 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Проснулся в Новом году и почему-то на sql.ru потянуло. :) Всех с праздником. FuzzyА я тогда ещё раз повторю свой вопрос: вы НЕ используете ООП в своих приложениях и НЕ строите и НЕ используете объектную модель? В ваших приложениях нет и не было классов вроде Договор, Документ, Счёт, Накладная, Товар и т.п.?Отвечаю на ваш вопрос: В моих приложениях были указанные классы. Более того, они описывались не только как java-классы, но и как классы в "машине операций" - надстройке, позволяющей модифицировать поведение бизнес объектов без "программирования". Но это не значит, что мне всегда и везде требовались полностью инстанцированные экземпляры класса. В подавляющем числе случаев от класса требуется один-два атрибута. Соответственно в большинстве случаев при создании экземпляра и грузятся из базы только данные одной "заголовочной записи". Остальные атрибуты подгружаются по мере необходимости, при обращении к ним. И именно РБД балгодаря тому, что объект хранится "кусочками" позволяет здесь добиться выигрыша. И, кстати, я с ходу не припомню случаев, в которых мне бы требовался сразу весь бизнес-объект целиком. Ну и все вышесказанное не отменяет использования упомянутых vadiminfo классов визуализации. Есть класс "датагрид", который умеет работать с коллекцией объектов. И т.п. FuzzyЗато значительно уступают по скорости разработки, наглядности, надёжности, и лёгкости внесения изменений и дополнений.По поводу скорости разработки соглашусь, ну а все остальное (наглядность, надежность, легкость изменений) достаточно спорно. За свою практику у меня сложилось устойчивое мнение, что хорошая модель данных на порядок важнее для последующей жизни системы. Видел много "быстро разработанных приложений", где структура базы данных подчинялась используемой при пограммировании приложения структуре классов. После двух-трех лет существования такой системы разобраться в ней и попытаться что-то доработать было уже весьма затруднительно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.01.2008, 15:00 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo FuzzyЗато значительно уступают по скорости разработки, наглядности, надёжности, и лёгкости внесения изменений и дополнений. Абстракция уровнем ниже. Не так ли? Ну да ладно, мы отклонились от темы. Ещё раз -- если не строить объектную модель, то ООБД вообще просто-напросто не нужна. А вот если объектную модель строить, то ООБД даст РБД сто очков форы и всё равно выиграет. Все от того, что Вы выбираете отдельные достоинства и недостатки. Вы сказали про ООП. Я привел Вам, пример, что главное достоинство ООП с другими классами. И абстракиция там возможно выше: она в БД выше, чем в приложении ориентированном на конкретных юзеров. А с чего Вы взяли, я извиняюсь, что повторное использование кода-- это главное преимущество ООП? К тому же, Вы, видимо, имели в виду повторное использование в разных приложениях? vadiminfoВы тогда начали говорить о других достоинствах ООБД. Причем, тоже все не очевидно. Потому, что мне лично эти преимущества кажутся более важными. vadiminfo И последний Ваш вывод, потому тоже далеко не очевиден. Судите сами, если бы так было, то с начала 90-х ООБД давно бы вытеснила РБД. Потому, что они не просто так "строят" на удачу, а сначала выбирают принцип построения. С моей т.з., ООБД не вытеснила РБД потому, что в ООБД очень сложно выполнять заранее не предусмотренные запросы. vadiminfo Единственное на что Вы расчитывали, это сохранить объекты приложения в БД, и тогда типо не надо проектировать БД. В это могут верить проггеры знающие ООП, но пришедшие в область БД из других проблемных областей. Но все дело в том, что технолгоии БД имеют такое значние в ИТ, и по сути дали наиболее значительный прирост в производительности ИС, не за счет того, что научились сохранять перманенто данные прог. Есть кое-что и другое. И это другое предполагает, что БД в общем случае проектируется еще до приложений. И имеет значение именно МД в БД, а не внешние МД приложений при сравнении БД. Потому Ваше преимущество, может впечатлять, скорее всего, ООП прогерров недавно пришедших в БД из других областей. Есть, скорей всего, значительно более важные для господства той или иной МД в ИТ. Ну, это известно, что на ООПшников из других областей часто и составляют большинство двигателей ООБД. Но этого вряд ли достаточно. Сами производители ООСУБД в основном не них, скорей всего расчитывали. Уважаемый vadiminfo, Вы так утверждаете, будто на сегодняшний день не существует решений, где программер полностью практически изолирован от МД в БД, а работает лишь с объектной моделью. Довожу до Вашего сведения, что это не утопия. Такие фреймворки мало того, что существуют, но некоторые из них являются де-факто стандартом корпоративной разработки (в частности, в России). И вот когда мы хотим работать с объектной моделью и РБД, мы и сталкиваемся с object-relation impedance mismatch. А ООБД позволяет этого избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 12:37 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov AndreyПроснулся в Новом году и почему-то на sql.ru потянуло. :) Всех с праздником. FuzzyА я тогда ещё раз повторю свой вопрос: вы НЕ используете ООП в своих приложениях и НЕ строите и НЕ используете объектную модель? В ваших приложениях нет и не было классов вроде Договор, Документ, Счёт, Накладная, Товар и т.п.?Отвечаю на ваш вопрос: В моих приложениях были указанные классы. Более того, они описывались не только как java-классы, но и как классы в "машине операций" - надстройке, позволяющей модифицировать поведение бизнес объектов без "программирования". Но это не значит, что мне всегда и везде требовались полностью инстанцированные экземпляры класса. В подавляющем числе случаев от класса требуется один-два атрибута. Соответственно в большинстве случаев при создании экземпляра и грузятся из базы только данные одной "заголовочной записи". Остальные атрибуты подгружаются по мере необходимости, при обращении к ним. И именно РБД балгодаря тому, что объект хранится "кусочками" позволяет здесь добиться выигрыша. И, кстати, я с ходу не припомню случаев, в которых мне бы требовался сразу весь бизнес-объект целиком. Ещё разок -- ООБД (по крайней мере db4o) прекрасно позволяет гибко управлять загрузкой иерархии объектов. Можно инстанциировать объект, но не загружать все его мемберы, а загружать их по мере навигации по объектным ссылкам. И как раз именно благодаря тому, что объект в РБД хранится "кусочками", размазанными по разным таблицам, она и проигрывает ООБД. Например. Допустим, нам нужно реализовать просмотр накладных из прошлого примера, класс Invoice. В ООБД мы сделаем так: выбираем из базы интересующие нас (по условиям отбора) объекты соответствующего класса, глубину иерархии указываем 0. База вернёт нам коллекцию объектов, у каждого из которых вместо члена lines стоит null. Примерно то же самое будет и для РБД, только объекты нужно будет самому собирать, верно? Затем юзер выбрал какую-то накладную, хочет её поглядеть. Что делает РБД, чтобы полностью загрузить объект -- выполняет селект(-ы), да ещё и с объединением (-ями) таблиц, или другими словами, шарится по всей базе в поисках нужной информации. И потом из полученных данных опять-таки руками нужно строить объекты и связывать их друг с другом. Не правда ли? А что делает ООБД, когда мы просим её полностью инстанциировать нужный объект -- используя объектные ссылки, которые непосредственно указывают на месторасположение объектов, сразу и без всякого поиска загружает нужные объекты. И руками при этом делать ничего не нужно, а следовательно, нет возможности ошибиться (особенно при внесении изменений). Согласны, что по времени ООБД однозначно разорвёт РБД? Bogdanov Andrey Ну и все вышесказанное не отменяет использования упомянутых vadiminfo классов визуализации. Есть класс "датагрид", который умеет работать с коллекцией объектов. И т.п. FuzzyЗато значительно уступают по скорости разработки, наглядности, надёжности, и лёгкости внесения изменений и дополнений.По поводу скорости разработки соглашусь, ну а все остальное (наглядность, надежность, легкость изменений) достаточно спорно. Кажется, у Вас небольшой опыт разработки в ОО-стиле. Другим ничем такое мнение не могу себе объяснить. Вся ОО парадигма имеет своей целью наглядность, надёжность и лёгкость изменений. Если не это, зачем она вообще нужна, по Вашему мнению? Bogdanov Andrey За свою практику у меня сложилось устойчивое мнение, что хорошая модель данных на порядок важнее для последующей жизни системы. Видел много "быстро разработанных приложений", где структура базы данных подчинялась используемой при пограммировании приложения структуре классов. После двух-трех лет существования такой системы разобраться в ней и попытаться что-то доработать было уже весьма затруднительно. Совершенно с Вами согласен -- если мы подчиняем структуру РБД объектной модели, то через какое-то время разобраться в этой структуре невозможно. То же самое происходит и в обратном случае -- если у нас отличная модель данных в РБД, то от объектной модели у нас остаются рожки да ножки, пародия на ООП. Отсюда вывод -- или ООБД, или забыть про ООП. Или иметь проблемы, либо с МД в РБД, либо с объектной структурой. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 13:12 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyА с чего Вы взяли, я извиняюсь, что повторное использование кода-- это главное преимущество ООП? К тому же, Вы, видимо, имели в виду повторное использование в разных приложениях? Одно из главных. Не я взял, а типа так ООПшники всегда декларировали. Что, впрочем, действительно, никто вроде до этого момента не отрицал. И не "к тому же", а именно в разных приложениях. Оно тем более важно, что проектиование классов не имеет теор обоснования, а вместо этого используются паттерны. Fuzzy Потому, что мне лично эти преимущества кажутся более важными. Не все что кажется есть золото. По крайней мере, подход при выборе на том, что в какой-то момент что-то показалось, не является самым распространенным на данный момент. Как быть , например, если нам всем разное кажется. Ну можем перекреститься. А что еще остается? Поэтому часто предпочтения отдаются более осторожным подходам. Fuzzy С моей т.з., ООБД не вытеснила РБД потому, что в ООБД очень сложно выполнять заранее не предусмотренные запросы. Однако, мы же не можем ссылаться на Вашу точку зрения, до тех пор пока Вы не будет установлена безоговорчная его авторитетность. А пока это только предположение. В литературе по БД приводятся и другие недостатки, как, впрочем, и достоинства. Fuzzy Уважаемый vadiminfo, Вы так утверждаете, будто на сегодняшний день не существует решений, где программер полностью практически изолирован от МД в БД, а работает лишь с объектной моделью. Довожу до Вашего сведения, что это не утопия. Такие фреймворки мало того, что существуют, но некоторые из них являются де-факто стандартом корпоративной разработки (в частности, в России). И вот когда мы хотим работать с объектной моделью и РБД, мы и сталкиваемся с object-relation impedance mismatch. А ООБД позволяет этого избежать. До появления СУБД проггеры тоже были изолированы, от МД в БД так как ее не было. Так что я не мог утверждать, что таких решений не существует. Они были вообще до появления БД. Будьте внимательней. Я утверждал, что они, скорей всего, не дали желаемой эффективности (мягко говоря). БД является ядром ИС. В ней вся инфа (данные и интерпритация), а проги можно менять, выкидывать и т.д. Потому придумали СУБД и оная поддерживает МД. Именно это и дало такой успех от применения БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 14:45 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Fuzzy Потому, что мне лично эти преимущества кажутся более важными. Не все что кажется есть золото. По крайней мере, подход при выборе на том, что в какой-то момент что-то показалось, не является самым распространенным на данный момент. Как быть , например, если нам всем разное кажется. Ну можем перекреститься. А что еще остается? Как что остаётся? Давайте поспорим, обменяемся мнениями, мы же с Вами на форуме. Сообщите, пожалуйста, почему лично Вам наглядность, надёжность и лёгкость внесения изменений в программу не кажется более важным, чем использование разными приложениями одного и того же кода. Вы что, разработчик ОО-библиотек каких-то? vadiminfo Fuzzy С моей т.з., ООБД не вытеснила РБД потому, что в ООБД очень сложно выполнять заранее не предусмотренные запросы. Однако, мы же не можем ссылаться на Вашу точку зрения, до тех пор пока Вы не будет установлена безоговорчная его авторитетность. А пока это только предположение. В литературе по БД приводятся и другие недостатки, как, впрочем, и достоинства. А приведите, пожалуйста, какие-нибудь другие принципиальные недостатки ООБД, о которых Вы говорите. Я встречал только упоминания о сложности расчёта агрегатов и невозможность объединений, всё остальное было критикой каких-то конкретных особенностей каких-то конкретных реализаций ООБД, но не ООБД в принципе. vadiminfo Fuzzy Уважаемый vadiminfo, Вы так утверждаете, будто на сегодняшний день не существует решений, где программер полностью практически изолирован от МД в БД, а работает лишь с объектной моделью. Довожу до Вашего сведения, что это не утопия. Такие фреймворки мало того, что существуют, но некоторые из них являются де-факто стандартом корпоративной разработки (в частности, в России). И вот когда мы хотим работать с объектной моделью и РБД, мы и сталкиваемся с object-relation impedance mismatch. А ООБД позволяет этого избежать. До появления СУБД проггеры тоже были изолированы, от МД в БД так как ее не было. Так что я не мог утверждать, что таких решений не существует. Они были вообще до появления БД. Будьте внимательней. Будьте Вы внимательней, я утверждал, что такие решения существуют СЕЙЧАС, и корпоративным стандартом являются СЕЙЧАС. vadiminfo Я утверждал, что они, скорей всего, не дали желаемой эффективности (мягко говоря). А я утверждал, что они, скорей всего, дали желаемую эффективность (поэтому и стали стандартом де-факто). Я имею в виду 1С, если до сих пор неясно. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 18:43 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Как что остаётся? Давайте поспорим, обменяемся мнениями, мы же с Вами на форуме. Сообщите, пожалуйста, почему лично Вам наглядность, надёжность и лёгкость внесения изменений в программу не кажется более важным, чем использование разными приложениями одного и того же кода. Вы что, разработчик ОО-библиотек каких-то? Я про "наглядность, надёжность и лёгкость внесения изменений в программу" и как это соотносится с повторным использованием ничего не говорил. Я говорил, что повторность кода одно из важных достоинств ООП. Что до "наглядность, надёжность и лёгкость внесения изменений в программу" это все нуждается в уточнениях, что за этим скрывается. Например, причем тут надежность вообще? В каком смысле? ООП проги более надежны? Впервые слышу. Наглядность и легкость - это вообще что-то субъектитвное. Пожалуйста, смотрите что я пишу. Вы приписываете мне левые мыстли и потом просите их пояснять. Fuzzy А приведите, пожалуйста, какие-нибудь другие принципиальные недостатки ООБД, о которых Вы говорите. Я встречал только упоминания о сложности расчёта агрегатов и невозможность объединений, всё остальное было критикой каких-то конкретных особенностей каких-то конкретных реализаций ООБД, но не ООБД в принципе. Вот из книг по БД. Зачем Вы их не читаете перед открытиме топика? Это про ООСУБД Отсутствие универсальной модели данных Недостаточность опыта эксплуатации Влияние оптимизации запросов на инкапсуляцию Влияние блокировки на уровне объекта на производительность Сложность Отсутствие поддержки представлений Fuzzy Будьте Вы внимательней, я утверждал, что такие решения существуют СЕЙЧАС, и корпоративным стандартом являются СЕЙЧАС. Я был внимателен. И уточнил, что такие решения были и до появления СУБД. Fuzzy А я утверждал, что они, скорей всего, дали желаемую эффективность (поэтому и стали стандартом де-факто). Я имею в виду 1С, если до сих пор неясно. Стандарт где-то там принятый, не есть подтверждение эффективности. Подтверждение последней подтверждается иначе: распространееность, лидирующее положение в технологиях, там всякие тесты. А стандарты и я могу налабать. Мало ли их. 1С имело в качестве СУБД MS SQL или вообще файлы dbf. Т.е. там ниче подтверждающего эффективность ООМД вроде не декларировалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 21:22 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Fuzzy Как что остаётся? Давайте поспорим, обменяемся мнениями, мы же с Вами на форуме. Сообщите, пожалуйста, почему лично Вам наглядность, надёжность и лёгкость внесения изменений в программу не кажется более важным, чем использование разными приложениями одного и того же кода. Вы что, разработчик ОО-библиотек каких-то? Я про "наглядность, надёжность и лёгкость внесения изменений в программу" и как это соотносится с повторным использованием ничего не говорил. Я говорил, что повторность кода одно из важных достоинств ООП. Что до "наглядность, надёжность и лёгкость внесения изменений в программу" это все нуждается в уточнениях, что за этим скрывается. Например, причем тут надежность вообще? В каком смысле? ООП проги более надежны? Впервые слышу. Наглядность и легкость - это вообще что-то субъектитвное. Пожалуйста, смотрите что я пишу. Вы приписываете мне левые мыстли и потом просите их пояснять. Хм, я вовсе не приписываю Вам левых мыслей. Я просто переформулирую Ваши слова так, как я их понял, для того, чтобы Вы поправили меня и мы пришли бы к взаимному пониманию. В данном случае я понял Вас так, что Вы считаете, что главным предназначением ООП является повторное использование кода, поэтому и попросил Вас объяснить, почему остальные преимущества Вам не кажутся более важными. А то, что повторность кода одно из важных достоинств ООП, я с этим и не спорю вовсе. В любом случае, мы уклонились от темы топика. vadiminfo Fuzzy А приведите, пожалуйста, какие-нибудь другие принципиальные недостатки ООБД, о которых Вы говорите. Я встречал только упоминания о сложности расчёта агрегатов и невозможность объединений, всё остальное было критикой каких-то конкретных особенностей каких-то конкретных реализаций ООБД, но не ООБД в принципе. vadiminfo Вот из книг по БД. Зачем Вы их не читаете перед открытиме топика? Ну как Вам сказать, зачем... Некоторые читаю, жаль, конечно, что не все :) vadiminfo Это про ООСУБД Отсутствие универсальной модели данных Недостаточность опыта эксплуатации Влияние оптимизации запросов на инкапсуляцию Влияние блокировки на уровне объекта на производительность Сложность Отсутствие поддержки представлений О, вот это очень интересно, особенно пп. 3 и 4. А из каких именно книг по БД сведения? Вы не могли бы подробнее развернуть эти тезисы, если Вам не трудно? Это-то я и хотел обсудить, начиная данный топик. vadiminfo Fuzzy Будьте Вы внимательней, я утверждал, что такие решения существуют СЕЙЧАС, и корпоративным стандартом являются СЕЙЧАС. Я был внимателен. И уточнил, что такие решения были и до появления СУБД. Fuzzy А я утверждал, что они, скорей всего, дали желаемую эффективность (поэтому и стали стандартом де-факто). Я имею в виду 1С, если до сих пор неясно. Стандарт где-то там принятый, не есть подтверждение эффективности. Подтверждение последней подтверждается иначе: распространееность, лидирующее положение в технологиях, там всякие тесты. А стандарты и я могу налабать. Мало ли их. 1С имело в качестве СУБД MS SQL или вообще файлы dbf. Т.е. там ниче подтверждающего эффективность ООМД вроде не декларировалось. Я имел в виду, что 1С -- это сейчас стандарт де-факто , т.е. я как раз и сужу об этом по распространённости этой платформы. Конечно, 1С имеет МД на РБД, всё верно, но тем не менее программист работает не с записями и таблицами, а с объектами, описывающими предметную область. В более-менее удачной объектной модели и кроется, на мой взгляд, успех 1С. Но и здесь object-relational impedance mismatch приводит к ужасной производительности и страшной структуре данных, ничего не пропишешь. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 22:12 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Хм, я вовсе не приписываю Вам левых мыслей. Я просто переформулирую Ваши слова так, как я их понял, для того, чтобы Вы поправили меня и мы пришли бы к взаимному пониманию. В данном случае я понял Вас так, что Вы считаете, что главным предназначением ООП является повторное использование кода, поэтому и попросил Вас объяснить, почему остальные преимущества Вам не кажутся более важными. А то, что повторность кода одно из важных достоинств ООП, я с этим и не спорю вовсе. В любом случае, мы уклонились от темы топика. Вот именно - "одно из важных достоинств ООП". Про это и говорил. Стало быть, если классы чаще повторно используются, то они удачные. Рекордсеты - часто используются. Тем более, что писать библиотеки классов не считается простым занятием, если за библиотекой не скрывается три класса. Fuzzy О, вот это очень интересно, особенно пп. 3 и 4. А из каких именно книг по БД сведения? Вы не могли бы подробнее развернуть эти тезисы, если Вам не трудно? Это-то я и хотел обсудить, начиная данный топик. Из Томас Конноли "Базы данных" Переписывать из Коннроли? Рука устанет. Я привел их в пример. Суть в том, что на выбор могут влиять различные достоинства и недостатки. А не то что нам кажется в данный момент. Fuzzy Я имел в виду, что 1С -- это сейчас стандарт де-факто , т.е. я как раз и сужу об этом по распространённости этой платформы. Конечно, 1С имеет МД на РБД, всё верно, но тем не менее программист работает не с записями и таблицами, а с объектами, описывающими предметную область. В более-менее удачной объектной модели и кроется, на мой взгляд, успех 1С. Но и здесь object-relational impedance mismatch приводит к ужасной производительности и страшной структуре данных, ничего не пропишешь. Не уверен, что 1С стандарт. И распростране он тока у нас на мелких и средних предприятиях. Вы говорите про объектную модель в приложении, а не в БД. Но хотите навязать ее БД. Однако, в общем случае не много разные МД. У них есть свои достоинства и недостатки, которые могут иметь большее значение, чем проблемы object-relational impedance mismatch Тем более, что стандартами пока являются де-факто рекордсеты, для типовых приложений И именно повторяемость использования у них высока. И там все match. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 22:35 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
vadiminfo Fuzzy О, вот это очень интересно, особенно пп. 3 и 4. А из каких именно книг по БД сведения? Вы не могли бы подробнее развернуть эти тезисы, если Вам не трудно? Это-то я и хотел обсудить, начиная данный топик. Из Томас Конноли "Базы данных" Переписывать из Коннроли? Рука устанет. Я привел их в пример. Суть в том, что на выбор могут влиять различные достоинства и недостатки. А не то что нам кажется в данный момент. Вот их-то, эти достоинства и недостатки, мы здесь с Вами и обсуждаем, не правда ли? Книгу нашёл, качаю. Посмотрим, что там они имеют в виду! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2008, 22:59 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Извиняюсь за долгое отсутствие - праздники... FuzzyИ как раз именно благодаря тому, что объект в РБД хранится "кусочками", размазанными по разным таблицам, она и проигрывает ООБД.Забавно... А я считаю, что именно благодаря этому РМД выигрывает. FuzzyСогласны, что по времени ООБД однозначно разорвёт РБД? Пока не согласен. Вы все напираете на трудоемкость "самому собирать". В чем эта трудоемкость заключается? И чем это "самому" собрать отличается от ООБД? Я пока не вижу, что количество чтений диска существенным образом меньше. А значит ни о каком "порвать" речи пока быть не может. Если хотите доказать свой тезис, то попробуйте посторить реальный тест и операровать цифрами, а не лозунгами. Если вы не готовы доказывать, то не надо с таким напором спорить. Я понимаю - вы начали использовать db4o и вам это понравилось, но пока кроме эмоций я ничего не вижу. FuzzyЕщё разок -- ООБД (по крайней мере db4o) прекрасно позволяет гибко управлять загрузкой иерархии объектов. Можно инстанциировать объект, но не загружать все его мемберы, а загружать их по мере навигации по объектным ссылкам.А почему "еще разок"? Вы раньше упоминали о частичной загрузке объектов? Вот расскажите, как будут лежать на диске накладные со строками? Если внутри каждой накладной лежат ее строки, то каким образом будет производиться загрузка только "хэдеров" без считывания с диска всех данных? Если же строки лежат отдельно, то чем это отличается от РМД? Fuzzy Кажется, у Вас небольшой опыт разработки в ОО-стиле. Другим ничем такое мнение не могу себе объяснить. Вся ОО парадигма имеет своей целью наглядность, надёжность и лёгкость изменений. Если не это, зачем она вообще нужна, по Вашему мнению? Так мы модель данных обсуждаем или опыт собеседников? Давайте для того чтобы опытом меряться отдельный топик откроем и будем там резюме выкладывать. ООП имеет некоторые преимущества перед процедурным программированием для крупных проектов. Но какое это имеет значение при сравнении моделей данных - я не знаю. Реляционная модель с равным успехом позволяет вам использовать преимущества ООП (или других парадигм) при программировании приложения. FuzzyОтсюда вывод -- или ООБД, или забыть про ООП. Или иметь проблемы, либо с МД в РБД, либо с объектной структурой.Хм. А может быть вы просто не умеете их готовить? У меня прекрасно сочетались ООП в приложении с реляционной моделью данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2008, 21:01 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov AndreyИзвиняюсь за долгое отсутствие - праздники... FuzzyИ как раз именно благодаря тому, что объект в РБД хранится "кусочками", размазанными по разным таблицам, она и проигрывает ООБД.Забавно... А я считаю, что именно благодаря этому РМД выигрывает. FuzzyСогласны, что по времени ООБД однозначно разорвёт РБД? Пока не согласен. Вы все напираете на трудоемкость "самому собирать". В чем эта трудоемкость заключается? И чем это "самому" собрать отличается от ООБД? Я пока не вижу, что количество чтений диска существенным образом меньше. А значит ни о каком "порвать" речи пока быть не может. Послушайте, ну это уже смешно. Я же в предыдущем своём посте подробно расписал все операции, которые, по моему мнению, должны делать РБД и ООБД. И дело именно в количестве чтений диска -- РБД "шарится по всей базе в поисках нужной информации", а ООБД "сразу и без всякого поиска загружает нужные объекты". С какими именно моментами в моём описании технологии работы РБД и ООБД Вы не согласны, можно по пунктам и с аргументами? А иначе становится неинтересно -- я стараюсь подробнейшим образом расписать даже абсолютно очевидные вещи, а Вы просто пишете "я не согласен". Так у нас с Вами диалога не получится. Bogdanov Andrey Если хотите доказать свой тезис, то попробуйте посторить реальный тест и операровать цифрами, а не лозунгами. Если вы не готовы доказывать, то не надо с таким напором спорить. Я понимаю - вы начали использовать db4o и вам это понравилось, но пока кроме эмоций я ничего не вижу. Не считаю нужным лично самому перепроверять данные тестов, приведённые на сайте db4o (о чём я, кстати, упоминал ), просто потому, не сомневаюсь в них -- по-моему, всё логично. Вот Вам ссылка , если возражаете против этих тестов, пожалуйста, обоснуйте. Bogdanov Andrey FuzzyЕщё разок -- ООБД (по крайней мере db4o) прекрасно позволяет гибко управлять загрузкой иерархии объектов. Можно инстанциировать объект, но не загружать все его мемберы, а загружать их по мере навигации по объектным ссылкам.А почему "еще разок"? Вы раньше упоминали о частичной загрузке объектов? Вот здесь, например. Кажется, Вы невнимательно читаете. Bogdanov Andrey Вот расскажите, как будут лежать на диске накладные со строками? Если внутри каждой накладной лежат ее строки, то каким образом будет производиться загрузка только "хэдеров" без считывания с диска всех данных? Если же строки лежат отдельно, то чем это отличается от РМД? Отличается тем, что в РБД связь между строчкой и хэдером организуется как ID хэдера, сохранённая в строчке, а в ООБД наоборот -- ID строчек сохраняются в хэдере. Когда загружаем только хэдер, то сами строчки с диска не читаем, а читаем только их ID. Так понятно? Bogdanov Andrey Fuzzy Кажется, у Вас небольшой опыт разработки в ОО-стиле. Другим ничем такое мнение не могу себе объяснить. Вся ОО парадигма имеет своей целью наглядность, надёжность и лёгкость изменений. Если не это, зачем она вообще нужна, по Вашему мнению? Так мы модель данных обсуждаем или опыт собеседников? Давайте для того чтобы опытом меряться отдельный топик откроем и будем там резюме выкладывать. ООП имеет некоторые преимущества перед процедурным программированием для крупных проектов. Но какое это имеет значение при сравнении моделей данных - я не знаю. Реляционная модель с равным успехом позволяет вам использовать преимущества ООП (или других парадигм) при программировании приложения. FuzzyОтсюда вывод -- или ООБД, или забыть про ООП. Или иметь проблемы, либо с МД в РБД, либо с объектной структурой.Хм. А может быть вы просто не умеете их готовить? У меня прекрасно сочетались ООП в приложении с реляционной моделью данных. Согласен с Вами, что это отдельная тема, но не могу не заметить, что Вы, наверное, единственный человек, который всерьёз утверждает, что никаких проблем с сочетанием ООП и реляционной модели не существует. Для всех остальных неоднократно упоминавшийся в этом топике object-relational impedance mismatch является сильнейшей головной болью и острейшим геморроем одновременно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2008, 10:07 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Fuzzy Послушайте, ну это уже смешно. Я же в предыдущем своём посте подробно расписал все операции, которые, по моему мнению, должны делать РБД и ООБД. И дело именно в количестве чтений диска -- РБД "шарится по всей базе в поисках нужной информации", а ООБД "сразу и без всякого поиска загружает нужные объекты". С какими именно моментами в моём описании технологии работы РБД и ООБД Вы не согласны, можно по пунктам и с аргументами? Я не согласен с утверждением "РБД шарится по всей базе в поисках нужной информации". РБД точно также по ключам достает всю нужную информацию из того места где она лежит. Запрос типа select * from Lines where Doc = :id считывает с диска не более десятка блоков. Для особых извращенцев в Oracle есть возможность читать по rowid, и при этом даже индекс читаться не будет. Правда существеннго выигрыша в скорости при этом я не замечал. Повторю - я согласен с тем, что полная загрузка объекта в ООБД будет выполняться чуть-чуть быстрее, но мне кажется, что это отнюдь не самая массовая операция. Может быть у нас разные представления о "типичных операциях OLTP системы"? Fuzzy Отличается тем, что в РБД связь между строчкой и хэдером организуется как ID хэдера, сохранённая в строчке, а в ООБД наоборот -- ID строчек сохраняются в хэдере. Когда загружаем только хэдер, то сами строчки с диска не читаем, а читаем только их ID. Так понятно? Понятно. И это означает, что при загрузке хэдера в ООБД мы вынуждены также прочитать все ID строчек. Учитывая, что хэдер накладной содержит десяток полей, а строчек в ней до нескольких сотен, то имеем огромное количество лишних чтений с диска. РБД же читает с диска ровно то, что надо. Ничего лишнего. Согласны, что заполнение грида в РБД-системах требует несколько меньше дисковых операций? Bogdanov AndreyСогласен с Вами, что это отдельная тема, но не могу не заметить, что Вы, наверное, единственный человек, который всерьёз утверждает, что никаких проблем с сочетанием ООП и реляционной модели не существует. Для всех остальных неоднократно упоминавшийся в этом топике object-relational impedance mismatch является сильнейшей головной болью и острейшим геморроем одновременно.Я не говорил, что проблем нет. Более того я даже писал, что интересовался подобными решениями. Но это определенно не было самым большим геморроем. Я согласен с тем, что db4o предлагает хорошее решение, которое упростит разработку, но в отличии от вас я пока не вижу в этом решении "серебрянной пули". Более того, по моим ощущениям упрощение разработки получается за счет некоторого поигрыша в производительности (что вполне закономерно) - правда видимо значительно меньшего, чем при использовании hibernate. Когда у меня появится возможность я обязательно попробую этот продукт в деле. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 11:10 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
Bogdanov AndreyЯ не говорил, что проблем нет. Более того я даже писал, что интересовался подобными решениями. Но это определенно не было самым большим геморроем. Я согласен с тем, что db4o предлагает хорошее решение, которое упростит разработку, но в отличии от вас я пока не вижу в этом решении "серебрянной пули". Более того, по моим ощущениям упрощение разработки получается за счет некоторого поигрыша в производительности (что вполне закономерно) - правда видимо значительно меньшего, чем при использовании hibernate. Когда у меня появится возможность я обязательно попробую этот продукт в деле. В общем и целом, согласен с Вашими выводами, разве что обобщу их не только на hibernate, а на любой ORM, даже и самописный. Я сам сейчас как раз пробую db4o в деле -- в общем, конечно, очень приятно, хотя и не без своих нюансов и подводных камней... Однако, чтобы строить информационную систему на db4o или другой ООБД, необходимо всё-таки решить вопрос с отчётностью. Ведь отчёты на ООБД лабать -- это ужасный ужас. Как Вы считаете, решит ли эту проблему сервер отчётов с OLAP на РБД? Может, другое видите решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 15:25 |
|
ООБД + OLAP
|
|||
---|---|---|---|
#18+
FuzzyОднако, чтобы строить информационную систему на db4o или другой ООБД, необходимо всё-таки решить вопрос с отчётностью. Ведь отчёты на ООБД лабать -- это ужасный ужас. Как Вы считаете, решит ли эту проблему сервер отчётов с OLAP на РБД? Может, другое видите решение?Я вижу три вида "отчетности". 1. Печатные бланки выполняемых операций - например ту же накладную надо напечатать на бумажке, проштамповать и в папочку положить (для проверяющих органов). С этой отчетностью сама OLTP система должна легко справиться и ООБД может быть даже удобнее. 2. Оперативные сводные отчеты - например, бухгалтерский журнал, реестр операций и т.п. В случае когда OLTP строится на основе РБД проблем не возникает. Ну а если возникают, то решаются парой индексов. Насколько сложны данные проблемы в случвае ООБД - точно сказать не могу. Но вполне возможно, что для этих отчетов потребуется иметь специализированное хранилище. Основная проблема в том, что это хранилище должно во-первых синхронизироваться с OLTP в online, а во-вторых его структура также изменчива, как и структура OLTP. То есть практически необходимо разрабатывать две параллельные системы. Мне кажется, что этот вариант трудоемок и нужно попытаться решить задачу непосредственно в ООБД. 3. Аналитическая отчетность. Это и в случае с РБД чаще всего делается с использованием отдельного хранилища, где строятся всякие кубы и т.п. В случае ООБД существенных изменений не вижу. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2008, 17:06 |
|
|
start [/forum/topic.php?all=1&fid=33&tid=1548904]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
135ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
142ms |
get tp. blocked users: |
1ms |
others: | 281ms |
total: | 599ms |
0 / 0 |