powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно сохранять объекты бизнес-логики в базе данных
25 сообщений из 56, страница 2 из 3
Как правильно сохранять объекты бизнес-логики в базе данных
    #34642797
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ой. что такое импенданс?
а то у нас, за канавой возле Хрещатика такого слова не говорят.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643200
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реалист и оптимистВот я в самом начале и высказал мысль о том, что ОО парадигма программирования получила широкую популярность, а хранение и обработка данных, в подавляющем большинстве случаев, основана на реляционных моделях баз данных. И чтобы одно состыковать с другим приходится, выполнять «танцы шамана с бубном».
Если СУБД чисто объектная, то никаких танцев и импедансов нет.
Если СУБД табличная (рел., сет., иерарх), то и программы д.б. "табличные", тогда и танцы не нужны.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643275
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас, например, бизнес-классы наследуются от класса с идентификатором, временем создания, создателем, признаком актуальности, и методами "создать", "сохранить", "уничтожить". В зависимости от цели (и значения аргумента, передаваемого этим методам), используются различные стратегии сериализации и сохранения:
- создать новый/дописать существующий/переписать существующий файл в оперативной памяти, к-рый при выполнении определённого условия или по явной команде сохраняется на диск,
- создать новый запрос SQL CREATE/UPDATE "изменить и оставить актуальным"/UPDATE "объявить неактуальным", к-рый ставится в очередь и передаётся на сервер БД.
Т.о. бизнес-классы действительно не отвечают за сохранение себя - отвечает их родитель. Работает. Хотя классов бизнес-объектов у нас немного, чуть больше десятка, и ничего особенно сложного в их структуре и связях нет.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643280
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модЕсли СУБД табличная (рел., сет., иерарх), то и программы д.б. "табличные", тогда и танцы не нужны.
- видимо создатели Hibernate, TopLink, Kodo и других ORM (Object Relational Mapping) ерундой занимаются?

- какая бы ни была СУБД, а программирование хотелось бы объектное :)
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643371
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- видимо создатели Hibernate, TopLink, Kodo и других ORM (Object Relational Mapping) ерундой занимаются?
Именно так.
Kachalov
- какая бы ни была СУБД, а программирование хотелось бы объектное :)
Сделайте свою ОСУБД и вперед.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643413
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модСделайте свою ОСУБД и вперед.
- вот такой ерундой точно заниматься не буду. Мне вполне хватает реляционных СУБД и объектного маппинга существующего в EJB
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643464
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте свою ОСУБД и вперед. Согласен! Добавлю - дополните ее основанными на РМД возможностями по групповой обработке данных - и будет Вам вообще счастье .:)

модератору Насчет "аффтар"ов - ни хотел никого обидеть. Понимаю, что эти люди заслуживают уважение, поскольку они строили то, на чём мы сейчас сидим и что воспринимаем как само собой разумеющееся. Но все таки там выразительная цель такая была - создать атмосферу легкого стеба:). Например, написал магАзин, что тоже неправильно. А некоторые тут без заглавных и знков препинания пищут ;). стиль у них такой.сугубо индивидуальный, за что их и ценим.
Модератор:
))тут обиды не причем.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643467
igorolv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StalkerSМожет у кого-нибудь есть хорошие ссылки по теме, или даже электронные книжки, посвященные этой тематике ?
М. Фаулер. Архитектура корпорпоративных програмных приложений
Пожалуй, одна из лучших книжек, рассматривающих различные способы построения ORM, а также существующие решения.

StalkerS Как правильно сохранять объекты бизнес-логики в базе данных?
В зависимости от платформы разработки проекта, СУБД, размера проекта, квалификации разработчиков, желаемого времени входа новых разработчиков в проект и ряда других исходных условий выбрать один из коммерческих ORM, либо же писать свой ORM.

Если учитывать только платформу разработки (например), то:
.NET -> ADO.NET (DataSet)
J2EE -> Hibernate
(с криком убегает от HW на эту тему)

P.S.
В случае выбора варианта "писать свой ORM" нужно быть очень осторожным:
а) можно потратить кучу времени и денег и получить в результате бледный аналог DataSet-ов ADO.NET. Платят обычно за бизнес-логику, а не за разработку ORM.
б) по крайней мере учитывать, что один объект бизнес-логики может состоять из нескольких тысяч записей в нескольких десятках таблиц.
в) универсальное решение "для усех СУБД" может очень сильно выйти боком

P.P.S. Да, кстати, "единственно правильного способа сохранять объекты в базе данных" пока нет
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643612
sandreynik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странная постановка вопроса "Как правильно сохранять объекты бизнес-логики в базе данных". Зачем вообще их там сохранять. Объект - это свойство, методы , события (данные + код). Где хранится код наверное все знают. Наверно глупо его хранить в Базе Данных. Возможно речь идет только о хранении данных бизнес объекта а не самого объекта. А это уже совсем другая песня. Хранить можно где угодно в БД в XML файле и т.д. И я не вижу какие трудности здесь могут возникнуть. Храните в том виде в каком Вам удобно.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643650
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-geneДобавлю - дополните ее основанными на РМД возможностями по групповой обработке данных - и будет Вам вообще счастье .:)
ОСУБД хранит и обрабатывает объекты, представленные списками этих самых объектов. РМД вроде как не нужна.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643668
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- вот такой ерундой точно заниматься не буду.
Напрасно. Берем любую пром. СУБД, используем ее как метод доступа и делаем свою ОСУБД. При необходимости можно использовать оба уровня.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34643958
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод Kachalov- вот такой ерундой точно заниматься не буду.
Напрасно. Берем любую пром. СУБД, используем ее как метод доступа и делаем свою ОСУБД. При необходимости можно использовать оба уровня.
- реализуем адаптивное кэширование, объектные транзакции, сетевой доступ к объектам, панель управления и получаем 30% от возможностей сервера приложений + массу потеряного времени + продукт неизвестного качества (тестируем само собой на заказчике)
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644192
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- реализуем адаптивное кэширование, объектные транзакции, сетевой доступ к объектам, панель управления и получаем 30% от возможностей сервера приложений + массу потеряного времени + продукт неизвестного качества (тестируем само собой на заказчике)
ничего этого делать не надо (а что надо - вы не указали)
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644257
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модничего этого делать не надо (а что надо - вы не указали)
- может кому объектные транзакции и не нужны, так же как и удаленный доступ к бизнес объектам, а мне при работе с реляционными базами это необходимо. А Вы уважаемый мод могли бы поподробней написать, а то теперь все думают что Вы обладаете некоторыми сокровенными знаниями которыми не хотите поделиться с другими, да еще и флейм разводите.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644310
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovА Вы могли бы поподробней написать
Конечно можно.
Транзакциями занимается базовая РСУБД
Доступ к объектам (хоть удаленный хоть локальный) - "ОСУБД"
Вы работаете с "ОСУБД", РСУБД исп. только в исключительных случаях.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644437
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мод
Транзакциями занимается базовая РСУБД
Доступ к объектам (хоть удаленный хоть локальный) - "ОСУБД"
Вы работаете с "ОСУБД", РСУБД исп. только в исключительных случаях.
- представим такой случай:
Два клиента осуществляют транзакции с коллекциями объектов типа А, каждый из которых содержит объектное поле типа Б. В свою очередь объект типа Б имеет поле С типа INT. В обеих коллекциях содержатся объекты типа A, связаные с общим объектом Б1 типа Б. Один из клиентов меняет значение поля С в объекте Б1 в рамках свой транзакции. Второй клиент должен увидеть изменения значения поля С для объекта Б1 в соответствии с установленным уровнем изоляции транзакции.
Внимание вопрос: кто по вашему должен заниматься реализацией механизма маппинга объектной транзакции на РСУБД? Программист разработчик конечного приложения или сторонние программисты предоставляющие готовые универсальные ОТМ (Object Transact Manager)?
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644499
мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- представим такой случай:
Чессно говоря не понял в чем проблема
Kachalov кто по вашему должен заниматься реализацией механизма маппинга объектной транзакции на РСУБД?
Транзакции не надо маппить:
Код: plaintext
1.
2.
3.
4.
5.
6.
Создать объект1 -- операция ОСУБД
.....
Удалить объект2 -- операция ОСУБД
.....
Изменить объект3 -- операция ОСУБД
commit  -- отрабатывается РСУБД, изменения становяься видимыми для всех
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34644545
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
модcommit -- отрабатывается РСУБД, изменения становяься видимыми для всех
- с чего бы это? у меня как у второго клиента в памяти висит аналогичная коллекция с теми же объектами, почему они будут синхронизироваться с БД когда там первый клиент поменяет значение для одного из полей? Кроме того не факт что я "хочу видеть" все изменения - это должно регулироваться уровнем изоляции транзакции.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34645068
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov модcommit -- отрабатывается РСУБД, изменения становяься видимыми для всех
- с чего бы это? у меня как у второго клиента в памяти висит аналогичная коллекция с теми же объектами, почему они будут синхронизироваться с БД когда там первый клиент поменяет значение для одного из полей? Кроме того не факт что я "хочу видеть" все изменения - это должно регулироваться уровнем изоляции транзакции.

Так это не проблема объектной ориентированности.
Это проблема синхронизации различных кэшей.
Ваша коллекция объектов на втором клиенте есть (в какомто смысле) копией состояния БД - кэшем.
С классами это не связано вообще.
Другое дело, что, возможно, Вы хотите чтобы решение в терминах классов рассказали.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34645271
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizТак это не проблема объектной ориентированности. Это проблема синхронизации различных кэшей.
- проблема в том что можно отобразить объекты и действия над ними, в том числе в транзакционном контексте, на РСУБД, но реализация такого отображения это огромный и ненужный для рядового программиста (так как есть готовые ORM) труд.

tchingizДругое дело, что, возможно, Вы хотите чтобы решение в терминах классов рассказали.
- я не хочу что бы мне рассказывали как бы это могло быть, я знаю что все это уже реализовано в технологии EJB и мне непонятно зачем изобретать велосипед, когда весь мир уже давно этим успешно пользуется.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34645290
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
за бесплатно я не буду даже над этим думать.
До тех пор, пока не появится существенных причин, чтобы иметь два кэша.
Пока мне всегда хватало одного.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34645386
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizДо тех пор, пока не появится существенных причин, чтобы иметь два кэша.
Пока мне всегда хватало одного.
- о каких кэшах вообще идет речь? Обычная работа с данными в рамках двух параллельных транзакций. Будет три клиента - будет три транзакции и соответственно три выборки объектов с которыми ведется работа и данные этих выборок должны синхронизироваться с учетом уровня изоляции с данными из РСУБД. Будет десять клиентов - будет десять выборок.

tchingizза бесплатно я не буду даже над этим думать.
- не я начал этот топик. У меня проблем с отображением объектов на РСУБД нет. Так же нет проблем при работе с объектными транзакциями. Все технологии которые позволяют это делать легко и просто уже перечисленны выше: EJB, Hibernate, TopLink, Kodo и т. п. Хотите думайте, хотите не думайте - дело Ваше.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34645785
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
об этих
автору меня как у второго клиента в памяти висит аналогичная коллекция с теми же объектами, почему они будут синхронизироваться с БД когда там первый клиент поменяет значение для одного из полей?
коллекция чего угодно, которая должна синхронизироваться с базой данных,
есть второй кэш.
Первый живет в субд и не заметен для программиста.
Вопрос синхронизации управляемого Вами кэша с базой данной не имеет отношения к обьектной ориентированности. Это всегда проблема.
Нет коллекции чего угодно (байтов, списков, деревьев, объектов) которую надо с бд синхронизировать - нет проблемы.
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34646030
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tchingizНет коллекции чего угодно (байтов, списков, деревьев, объектов) которую надо с бд синхронизировать - нет проблемы.
- нет программы - нет проблемы.

- про терминологию: видимо любой объект вытащенный из базы - это, по вашему, уже кэш?
...
Рейтинг: 0 / 0
Как правильно сохранять объекты бизнес-логики в базе данных
    #34646299
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, но, возможно, не будет решена поставленная задача, для которой нужно писать программу.

Любая область памяти, для которой требуется выполнять синхронизацию с другой областью памяти
уже смахивает на кэш. Например, удаленная бд и локальная, между которыми происходит репликация.
Это таже проблема с который Вы начали.
Слово кэш не принципиально. Принципиально, что требуется синхронизация между,
возможно, исскуственно созданной коллекцией, возможно, искуственно созданных объектов и базой данных.



а по Вашему, что есть кэш?
...
Рейтинг: 0 / 0
25 сообщений из 56, страница 2 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как правильно сохранять объекты бизнес-логики в базе данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]