|
|
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Представьте тот же самый Hibernate, но завязанный на конкретную базу. Система генерирует не голые insert/update/delet'ы/select'ы, а разумные процедуры и функции на стороне БД на ее родном языке, используя все ее фичы, а на стороне клиента java (например) классы обертки для этих процедур/функций. Т.о. субд'эшники получают полную свободу действий в своей любимой БД, а клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базе. Существует ли такое и насколько востребовано? Может кто то использовал или пытался воплотить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2012, 21:16 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
А что такое - эти "разумные процедуры и функции"? что они делают то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 02:10 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Cпецифические фичи IBM в EJB 10 лет назад уже были http://publib.boulder.ibm.com/infocenter/wsadhelp/v5r1m2/index.jsp?topic=%2Fcom.ibm.etools.dbbeanstools.spitool.doc%2Ftopics%2Ftcreatebeanmeth.html до сих пор расхлёбывать приходится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 02:47 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Максим Н клиентские программисты избавляются от ненавистного им sqlвыделенное уже предопределяет провал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 04:28 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
SERG1257Максим Н клиентские программисты избавляются от ненавистного им sqlвыделенное уже предопределяет провал. Выделенное должно было быть в "кавычках", пардон. Я имею ввиду, что sql (в основном) сконцентрирован в базе и его не "размазывают" по клиенту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 06:34 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Максим НЯ имею ввиду, что sql (в основном) сконцентрирован в базе и его не "размазывают" по клиенту. А что такое "клиент" ? А база - это всего лишь данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 09:40 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
а клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базеБез sql в прикладном коде работают многие системы. Те же 1С, Навижн. Почему-то не все понимают ущербность этого подхода. :) А вот не задумываться о базе не получится. Потому что все равно кому-то надо сначала задуматься о базе, т.к. это источник первичной информации (таблицы, поля). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 10:38 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
[quot LSV]А вот не задумываться о базе не получится. Потому что все равно кому-то надо сначала задуматься о базе, т.к. это источник первичной информации (таблицы, поля). Я же как раз об этом. Т.е. в базе реализовывается слой работы с данными: запросы, инсерты, делеты, апдейты (причем на специфичном для конкретной СУБД языке, причем с возможностью в любой момент этот код доделать, отрефакторить протестировать, допилить и т.д.). Т.е. здесь разработчик полностью "задумывается о базе". На клиенте пишутся обертки для всего этого и уже клиент смело их гоняет по своему коду. Некое разделение труда. Полная реализация слоя "Model" (если по MVC'шному выражаться) на стороне базы. В отличие от того же Hibernate, где программисты зачастую и знать не знают какие происходят запросы к базе, сколько, зачем. Приходится заново описывать эти таблицы в xml (или что там) повторять связи между ними и т.д. сами знаете. Или когда sql-код аккуратно "размазан" по коду приложения и любой чих разработчика на базе приводит к многочасовым поискам и рефакторингу клиентского кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 11:02 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
LSVа клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базеБез sql в прикладном коде работают многие системы. Те же 1С, Навижн. Почему-то не все понимают ущербность этого подхода. :) А вот не задумываться о базе не получится. Потому что все равно кому-то надо сначала задуматься о базе, т.к. это источник первичной информации (таблицы, поля).гм. вы давно в 1С смотрели, чудо ? в 7-ке таки пытались "бз скл", вернее "со своим скл", но сначала таки подключили правильный скл, а в 8-ке он изначально практически нормальный, и за работу с множествами через объектную модель 1с, а не через запросы, вас пошлют далеко и надолго. даже из конфигурастов. про навижн не скажу, не знаю. думаю либо это и там не так, либо навижн надо выкинуть до того, как а не после. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 11:44 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
1счайникв 8-ке он изначально практически нормальный, и за работу с множествами через объектную модель 1с, а не через запросы, вас пошлют далеко и надолго. даже из конфигурастов. Нормальный он там только на чтение, для модификации данных придется таки использовать объектную модель. То бишь при проведении документа для отражения данных в регистрах сервер приложений (в ранних версиях зачастую клиент) обращается к СУБД и тянет данные записанного документа, создает объекты для записи в регистр и пишет их обратно в СУБД Что характерно пишет INSERT по каждой записи, а не групповым оператором: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 11:53 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Naf1счайникв 8-ке он изначально практически нормальный, и за работу с множествами через объектную модель 1с, а не через запросы, вас пошлют далеко и надолго. даже из конфигурастов. Нормальный он там только на чтение, для модификации данных придется таки использовать объектную модель. То бишь при проведении документа для отражения данных в регистрах сервер приложений (в ранних версиях зачастую клиент) обращается к СУБД и тянет данные записанного документа, создает объекты для записи в регистр и пишет их обратно в СУБД Что характерно пишет INSERT по каждой записи, а не групповым оператором: Код: sql 1. скажите еще, что работа с регистрами сведений рекомендуется через объекты-экземпляры, а не через групповые методы, являющиеся на деле обертками к Код: plsql 1. 2. то что работа с экземплярами (update/unsert/delete) устроена через объектную модель - это нормально. То что то же самое приходиться делать при работе с множествами экземпляров - то скорее всего оттого, что это нужно редко. (но руки бы им поотпилить нахер не мешало бы за это) а позаписная запись в регистр [накоплений] при проведении - из-за того, что логика проведения позаписна, и лежит на клиенте (сервере приложения) а не в СУБД. за это тоже надо бы всю компашку свидетелей 1С-а сгноить на болотах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 12:34 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
_модМаксим НЯ имею ввиду, что sql (в основном) сконцентрирован в базе и его не "размазывают" по клиенту. А что такое "клиент" ? А база - это всего лишь данные Клиентское приложение, где реализуется бизнесс-логика и визуализация результатов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 12:40 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Максим НПредставьте тот же самый Hibernate, но завязанный на конкретную базу. Система генерирует не голые insert/update/delet'ы/select'ы, а разумные процедуры и функции на стороне БД на ее родном языке, используя все ее фичы, а на стороне клиента java (например) классы обертки для этих процедур/функций. Т.о. субд'эшники получают полную свободу действий в своей любимой БД, а клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базе. Существует ли такое и насколько востребовано? Может кто то использовал или пытался воплотить? В такой архитектуре просто нет смысла, и заниматься этим можно только от безысходности на фоне использования "реляционных систем". Если на уровне БД не поддерживаются основные принципы БД, в том числе, такие как: 1. В БД что-то должно отражать факт существования объекта независимо от его свойств. 2. Модель данных должна быть одна и та же на концептуальном и логическом уровнях. 3. Результатом запроса должна быть часть БД со всей присущей БД семантикой. 4. Содержательные метаданные (в рамках МД, удовлетворяющей пункту 2) должны поддерживаться на уровне БД. то Вы "попадаете" на банальный маппинг по всем трем аспектам МД. А если поддерживаются, то нет никакой необходимости в предлагаемой Вами архитектуре:) Очевидно, что в популярных SQL-системах ни один из принципов БД не поддерживается и даже теоретически не может поддерживаться. Вероятно, и по этим причинам тоже SQL бесполезен для подавляющего большинства приложений - это известный доказанный факт. Системы, не использующие SQL, и удовлетворяющие принципам БД, быстрее разрабатываются, быстрее работают, и трудоемкость их сопровождения и развития намного меньше. Разумеется, разработчики "реляционных приложений" делают для себя периодически нечто подобное тому, что Вы описали:) Или EAV:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 12:47 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Максим НКлиентское приложение, где реализуется бизнесс-логика и визуализация результатов. Под это определение попадают вообще все программы, включая хранимки, триггеры и пр. Т.о. вопрос о структуре ПО: сколько слоев, какие они и т.д. Наверное можно запретить использование sql на определенном уровне для большей независимости верхних уровней от БД, но это зависит от многих факторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 13:00 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Максим НПредставьте тот же самый Hibernate, но завязанный на конкретную базу. Система генерирует не голые insert/update/delet'ы/select'ы, а разумные процедуры и функции на стороне БД на ее родном языке, используя все ее фичы, а на стороне клиента java (например) классы обертки для этих процедур/функций. Т.о. субд'эшники получают полную свободу действий в своей любимой БД, а клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базе. Существует ли такое и насколько востребовано? Может кто то использовал или пытался воплотить? Еще можно "клиентских программистов" языку SQL обучить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 15:06 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
И чем это вышеописанное отличается от нынешней ситуации. Размазан sql по коду - дак это бардак - не размазывай его нарушены границы слоев (слой логики, данных, интерфейса) - ну дак не надо так делать. Наличие ЕЩЕ одного слоя ничего не улучшит. Бардак он в головах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:13 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
Вероятно, и по этим причинам тоже SQL бесполезен для подавляющего большинства приложений - это известный доказанный факт.Ну началось..... Топик можно закрывать (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:19 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
SERG1257нарушены границы слоев (слой логики, данных, интерфейса) - ну дак не надо так делать. Вот как раз есть желание четко разграничить эти слои - вот таким способом ... Просто смотрю я на сумасшедшую популярность ORM'ок всяких и не понимаю, почему? И работает ведь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:33 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
vvmМаксим НПредставьте тот же самый Hibernate, но завязанный на конкретную базу. Система генерирует не голые insert/update/delet'ы/select'ы, а разумные процедуры и функции на стороне БД на ее родном языке, используя все ее фичы, а на стороне клиента java (например) классы обертки для этих процедур/функций. Т.о. субд'эшники получают полную свободу действий в своей любимой БД, а клиентские программисты избавляются от ненавистного им sql в своем коде, оперируя как и раньше классами, объектами и методами, не задумываясь о базе. Существует ли такое и насколько востребовано? Может кто то использовал или пытался воплотить? Еще можно "клиентских программистов" языку SQL обучить... Не, проблема не в том что клиенты sql не знают, а в том чтобы его централизованно применять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:34 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
LSVВероятно, и по этим причинам тоже SQL бесполезен для подавляющего большинства приложений - это известный доказанный факт.Ну началось..... Топик можно закрывать (с) Та рано еще ...... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 17:35 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
LSVВероятно, и по этим причинам тоже SQL бесполезен для подавляющего большинства приложений - это известный доказанный факт.Ну началось..... Топик можно закрывать (с) Ну что Вы:) Удобнее игнорировать принципы БД, чтобы была возможность пообсуждать всякие проблемы, связанные с игнорированием этих принципов. Этим проблемам, собственно, и посвящены большинство топиков в этом форуме. Так держать:) Лишь бы по существу ничего не обсуждать:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 20:04 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
БредятинаУдобнее игнорировать принципы БД, ... Можно, отметить, что мешочки и "бяда с ключами" тоже хорошо подходят для игнорирования. Впрочем, и другие выдумки ЧАЛа типа объектный навигатор и "крах РМД" обладают, скорее всего, повышенной игнорностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 22:34 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
vadiminfoБредятинаУдобнее игнорировать принципы БД, ... Можно, отметить, что мешочки и "бяда с ключами" тоже хорошо подходят для игнорирования. Впрочем, и другие выдумки ЧАЛа типа объектный навигатор и "крах РМД" обладают, скорее всего, повышенной игнорностью. :) Да нет, дорогой. У меня все всегда по существу. Я Вам доходчиво про принципы объясняю, чтобы Вы могли темы по существу обсуждать. Эту, как видно, не можете. Потому что не усвоили предыдущий материал. А стиль, в котором на sql.ru принято обижаться на свое незнание или непонимание меня уже давно не удивляет. Так что, продолжайте:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 22:51 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
БредятинаЕсли на уровне БД не поддерживаются основные принципы БД, в том числе, такие как: 1. В БД что-то должно отражать факт существования объекта независимо от его свойств. 2. Модель данных должна быть одна и та же на концептуальном и логическом уровнях. 3. Результатом запроса должна быть часть БД со всей присущей БД семантикой. 4. Содержательные метаданные (в рамках МД, удовлетворяющей пункту 2) должны поддерживаться на уровне БД. то Вы "попадаете" на банальный маппинг по всем трем аспектам МД. А если поддерживаются, то нет никакой необходимости в предлагаемой Вами архитектуре:)давайте попробуем перевести ваши рассуждения в практическую плоскость. Может быть, вы назовёте наконец СУБД, удовлетворяющую этим принципам? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 23:32 |
|
||
|
DB specific ORM
|
|||
|---|---|---|---|
|
#18+
egorychБредятинаЕсли на уровне БД не поддерживаются основные принципы БД, в том числе, такие как: 1. В БД что-то должно отражать факт существования объекта независимо от его свойств. 2. Модель данных должна быть одна и та же на концептуальном и логическом уровнях. 3. Результатом запроса должна быть часть БД со всей присущей БД семантикой. 4. Содержательные метаданные (в рамках МД, удовлетворяющей пункту 2) должны поддерживаться на уровне БД. то Вы "попадаете" на банальный маппинг по всем трем аспектам МД. А если поддерживаются, то нет никакой необходимости в предлагаемой Вами архитектуре:)давайте попробуем перевести ваши рассуждения в практическую плоскость. Может быть, вы назовёте наконец СУБД, удовлетворяющую этим принципам? А я все время в практической плоскости. 1. Вы "попадаете" на банальный маппинг? Попадаете. 2. Вы не согласны с принципами БД (не мной сформулированными)? Поясните. 3. Система этим принципам не удовлетворяющая СУБД не является, поскольку для управления данными приходится использовать, фактически, еще одну систему. Таким образом, ЛЮБАЯ СУБД УДОВЛЕТВОРЯЕТ ЭТИМ ПРИНЦИПАМ. Автор темы рассуждает о некой СУБД, которая получится, когда к "реляционной системе" приделают нечто. И я напоминаю, что эта СУБД должна удовлетворять базовым принципам БД. Вполне возможно, что она и будет им удовлетворять:) Но ее часть - "реляционная система" - не может им удовлетворять в принципе:) Так же я напоминаю, что для разработки СУБД существует, к моему искреннему сожалению, только одна среда (технология), которая позволяет любому небольшому коллективу грамотных специалистов (и даже одному грамотному специалисту) выполнить эту, казалось бы сложную, разработку за вполне приемлемые сроки, сравнимые со сроками создания среднего приложения в "реляционной системе". То есть, автор темы предлагает значительно более трудоемкий путь создания СУБД. И что же Вы видите не практичного в моем первом сообщении? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 23:55 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=42&tid=1541400]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 367ms |

| 0 / 0 |
