Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
mad_nazgul
Используя мощь SQL мы можем вытащит данные в том виде как нам удобно.
И это не ограничивает в написании бизнес-логики на ООП.

Мы и не говорим об ограничении бизнес-логики.
Просто "плохо ложится". Это и означает, что забывать про ООП при общении с базой действительно легче, чем заставить РМ танцевать под дудку ООП.
12 авг 15, 13:55    [18007985]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5824
Сергей Арсеньев
mad_nazgul
Используя мощь SQL мы можем вытащит данные в том виде как нам удобно.
И это не ограничивает в написании бизнес-логики на ООП.

Мы и не говорим об ограничении бизнес-логики.
Просто "плохо ложится". Это и означает, что забывать про ООП при общении с базой действительно легче, чем заставить РМ танцевать под дудку ООП.


"Смешались в кучу..."

SQL - это декларативный подход, как минимум так проектировался.
Грубо говоря мы формулируем что нам нужно получить, а ЯП сам решает как это сделает.
ООП работает в рамках императивного подхода.
Т.е. мы должны не только знать что нам надо, но и как это получить.
Т.к. ИИ нет, то декларативный подход имеет множество ограничений.
В частности смогли более менее его реализовать на РМД.
Более общий декларативный подход не осилили (см. Prolog).

Если "статичные" данные более-менее укладываются в РМД, то уже такие вещи как бизнес-логика и бизнес-процесс в РМД ложатся очень трудно.
Т.е. в БД нужно хранить только данные, а все остальное выносить на уровень приложения.
И объекты уж точно нельзя хранить в БД, только данные для объектов.

А уж ООБД и NoSQL это химеры.
Предназначенные для "честного отъема денег у населения"

<:o)
12 авг 15, 15:07    [18008523]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
ViPRos
Member

Откуда:
Сообщений: 9965
mad_nazgul,

никакой декларативности в СКЛ нет
Селект требует Фром, Джойн, Юнион - т.е. требует всю навигационную информацию
когда такая инфа есть, то любо дурак может сгенерировать цикл выборки
т.е. СКЛ - просто синтаксический сахар
12 авг 15, 15:16    [18008603]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
mad_nazgul,

Прежде чем смешивать, где Вы увидели слова про SQL?
Мы про Реляционную модель и принципы ООП. Про способы реализации оных только абстрактно.
В целом вопрос звучит так. Почему приходится думать по разному при работе в ООП и РМ.
Т.е. всякие ОRМ это могут и за людей, но как то коряво. :)
12 авг 15, 15:30    [18008720]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
этта
Guest
ViPRos
mad_nazgul,

никакой декларативности в СКЛ нет
Селект требует Фром, Джойн, Юнион - т.е. требует всю навигационную информацию
когда такая инфа есть, то любо дурак может сгенерировать цикл выборки
т.е. СКЛ - просто синтаксический сахар

таки любой дурак запутался в 3-х соснах

скл -- это именно декларации
но декларации над плоскими отношениями, которые "любой дурак" умеет превращать в цыклы.
вся якобы навигационщина -- декларативные сказания о множествах.
быть может за исключением order by LIMIT offset -- тут уже немного прямой нафигации]

т.е. сермяжка не в том, что сахар, а в том что модель (рмд) подразумевает сравнительно лехкую трансляцию деклараций в цыклы и т.п. вещи

что кладется в РМД кучки -- то и обрабатывается простыми и не очень трансляторами деклараций в инструкции. что нет -- то и нет.

поленился разложить -- имей дело с неформализованной хренью, о которой никаких трансляторов нетути.
12 авг 15, 16:20    [18009112]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
ViPRos
Member

Откуда:
Сообщений: 9965
этта
ViPRos
mad_nazgul,

никакой декларативности в СКЛ нет
Селект требует Фром, Джойн, Юнион - т.е. требует всю навигационную информацию
когда такая инфа есть, то любо дурак может сгенерировать цикл выборки
т.е. СКЛ - просто синтаксический сахар

таки любой дурак запутался в 3-х соснах

скл -- это именно декларации
но декларации над плоскими отношениями, которые "любой дурак" умеет превращать в цыклы.
вся якобы навигационщина -- декларативные сказания о множествах.
быть может за исключением order by LIMIT offset -- тут уже немного прямой нафигации]

т.е. сермяжка не в том, что сахар, а в том что модель (рмд) подразумевает сравнительно лехкую трансляцию деклараций в цыклы и т.п. вещи

что кладется в РМД кучки -- то и обрабатывается простыми и не очень трансляторами деклараций в инструкции. что нет -- то и нет.

поленился разложить -- имей дело с неформализованной хренью, о которой никаких трансляторов нетути.

хреновая это декларация
12 авг 15, 16:59    [18009283]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
CawaSPb
Member

Откуда: Питер/Москва/Wroclaw
Сообщений: 1207
Какой сра.. дисскуссию пропустил!

Подливая масла в огонь:
http://martinfowler.com/bliki/OrmHate.html

Ну и конечно же упоминаемая там же классика:
http://blogs.tedneward.com/2006/06/26/The Vietnam Of Computer Science.aspx
12 авг 15, 17:04    [18009297]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5824
ViPRos
хреновая это декларация


Какая есть.
Для другой нужен ИИ. :-)
13 авг 15, 06:05    [18011040]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Сергей Арсеньев
...Вопрос именно в том, что у реляционной модели одни подходы к представлению данных, у ООП другие.
...

Я не понимаю. какие-такие у собственно ООП есть "подходы к представлению данных".

Объясню на примере. Используя какой-нибудь ООЯ я могу создать разные объекты с разным представлением данных. Например я могу реализовать класс "Таблица" и два его подкласса "ХранимаяТаблица" и "Вид". Для класса "Таблица" я сделаю разные методы, например метод "Проекция", который будет принимать у меня набор имен, и выдавать новый объект класса "Таблица". То есть эти мои объекты будут моделировать реляционное хранилище в соответствии с РМД.

Вопрос. В этом примере какое представление данных получилось - объектное или реляционное?

Ответ. ООП - очень важная штука, но это не модель данных, которая задает какое-то определённое, как Вы сказали, "представление данных". Модель - это набор типов, переменные которых интересны пользователю. Это может быть переменная типа "строка", или типа "реляционное отношение", или типа "Накладная" или что то еще. То есть каждый раз речь идет о какой-то новом наборе типов, то есть, по факту, о новой модели. Это может быть реализация обще-формальной модели как РМД, или чего то очень специфического.

ООП - очень важная штука, потому что изначально в инф. системах мы имеем очень ограниченный набор простых типов. а ООП - универсальная парадигма того, как из такого ограниченного набора простых типов можно построить любой тип. ООП не имеет собственного "представления данных", зато позволяет реализовать любое нужное представление. Это не модель, это парадигма перехода от одной модели к другой, вообще говоря ортогональная любой МД.

Поэтому сравнивать ООП И РМД по их "представлениям данных" некорректно, ибо сравнивать нечего.

Кстати, собственных операция над данными в ООП тоже нет. По этому пункту она тоже - не МД.

Если у Вас есть другой ответ на мой впрос по примеру, давайте. Только, ради бога, не надо словоблудий, обходитесь простыми, понятными терминами, типа "тип", "переменная", "операция", "модель данных"(по Кодду, а не просто так), "схема данных" и т.п. Как только начинаешь их понимать и использовать, сразу многое в голове проясняется и становится на свои места.

По остальной части вашего поста вижу кучу обычных ляпов. Типа в разговоре про концепции и про формализмы вдруг начинается обсуждение эффективности систем и т.п. Здесь они обсуждаются..

И в конце концов мне кааца, Вы о чем-то своем спорите, аргументируя какими то прикладными приложениями, где, видимо, живут объекты, которые, видимо, надо запихнуть в БД. Нет у меня этого.
13 авг 15, 14:40    [18013341]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
mad_nazgul

"Смешались в кучу..."

SQL - это декларативный подход, как минимум так проектировался.
Грубо говоря мы формулируем что нам нужно получить, а ЯП сам решает как это сделает.
ООП работает в рамках императивного подхода.
Т.е. мы должны не только знать что нам надо, но и как это получить.
Т.к. ИИ нет, то декларативный подход имеет множество ограничений.
В частности смогли более менее его реализовать на РМД.
Более общий декларативный подход не осилили (см. Prolog).

Если "статичные" данные более-менее укладываются в РМД, то уже такие вещи как бизнес-логика и бизнес-процесс в РМД ложатся очень трудно.
Т.е. в БД нужно хранить только данные, а все остальное выносить на уровень приложения.
И объекты уж точно нельзя хранить в БД, только данные для объектов.

А уж ООБД и NoSQL это химеры.
Предназначенные для "честного отъема денег у населения"

<:o)


Тоже смешались в кучу :) Вы постоянно путаете сами концепции и существующие реализации этих концепций.

Существующие реализации ООП работают в рамках императивного подхода, ибо создавались как развитие средств программирования. В самой ООП нет не слова ни про императивность ни про декларации.

В самой РМД вообще нет понятия алгоритма, потому бизнес-логику туда вообще не уложить. Проблемы возникают в существующих реализациях РМД.
13 авг 15, 14:59    [18013485]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
CawaSPb
Какой сра.. дисскуссию пропустил!

Да разве это дискуссия! Вот лет десять назад тут кипело, а щас так, пузырек какой-то.

CawaSPb
Подливая масла в огонь:
http://martinfowler.com/bliki/OrmHate.html

Ну и конечно же упоминаемая там же классика:
http://blogs.tedneward.com/2006/06/26/The Vietnam Of Computer Science.aspx

И я подливаю, подливаю.
13 авг 15, 15:04    [18013522]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
BusInt
Все просто - ООП не нужно!
Тока не так категорично. Но согласен, существующие реализации ООП местами приносят больше граблей, чем пользы.
13 авг 15, 15:25    [18013671]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
U-gene
Вопрос. В этом примере какое представление данных получилось - объектное или реляционное?

Встречный вопрос у топиккастера - почему ООП плохо ложиться на РМ? Вопрос как РМ переложить на ООП из другой оперы.
Придумать нечто урезанное до того, что легко вписывается в те и другие рамки, тоже не ответ на первоначальный вопрос.
Это мы еще не рассматривали ООП в терминах прототипирования (а не наследования) с динамической сменой цепочки прототипов.
13 авг 15, 17:09    [18014401]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Сергей Арсеньев
Встречный вопрос у топиккастера - почему ООП плохо ложиться на РМ? Вопрос как РМ переложить на ООП из другой оперы.
Придумать нечто урезанное до того, что легко вписывается в те и другие рамки, тоже не ответ на первоначальный вопрос.
Это мы еще не рассматривали ООП в терминах прототипирования (а не наследования) с динамической сменой цепочки прототипов.


Не надо уходить от ответа.
Я дал совершенно четкий пример и задал очень понятный вопрос по непонятному мне "представлению данных" в ООП Это не "встречный" вопрос, а лишь попытка понять, о чем Вы вообще говорите. Также я объяснил, почему никакого "представления данных" в ООП вообще нет (видимо Вы этого не поняли, раз пишете про "и те и другие рамки").
13 авг 15, 17:33    [18014542]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Сергей Арсеньев
Member

Откуда:
Сообщений: 4118
U-gene,

Мы говорим о том, что часть парадигм составляющих ООП плохо представимы в виде РМ.
Если же пытаться напрямую сбросить это в базу, не задумываясь, что хорошо для РМ, а что плохо, то каким бы ни был умным ОРМ возникают сложности.
13 авг 15, 18:38    [18014811]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
То есть от прямого ответа на мой вопрос о "представлении данных в ООП" мы упрямо уходим. Хорошо, будем считать что это молчание является знаком согласия с ответом, предложенным мною.

Сергей Арсеньев
U-gene,

Мы говорим о том, что часть парадигм составляющих ООП плохо представимы в виде РМ.
Если же пытаться напрямую сбросить это в базу, не задумываясь, что хорошо для РМ, а что плохо, то каким бы ни был умным ОРМ возникают сложности.


А я не говорю "о том, что часть парадигм составляющих ООП плохо представимы в виде РМ." У меня все базовые парадигмы очень даже представимы. И вообще, что такое "плохо"? Мы же говорим о формальных вещах, там либо ""представимы" либо "не представимы".

Какой ОРМ? Откуда Вы ОРМ то взяли? Я ж говорю , что Вы о чем то своем поёте. Нету никакого ОРМа, забудьте же про это. ОРМ - это когда какая-то реализация ООП в системе с линейной памятью отображается в реляционную память, а у меня речь идет о реализация ООП в системе с реляционной памятью, там в принципе маппинга нет, данные уже там где нужно и в каком надо виде.

В общем этот наш разговор - наглядное подтверждение слов Дейкстра о незаметном и сильном влиянии языка на мышление программистов. Все привыкли к принципиально схожим реализациям ООП для программирования систем с линейной памятью и мучаются, пытаясь отобразить линейную память в реляционную (на момент исполнения данные лежат в линейной памяти, а все эти "объекты" остались в исходном тексте и/или в голове программиста).

Кстати, мы же не говорим, что"часть парадигм, составляющих ООП плохо представимы в виде" линейной памяти.

Вы таки помедитируйте о чем я говорю. :)
13 авг 15, 21:29    [18015344]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5824
U-gene
Тоже смешались в кучу :) Вы постоянно путаете сами концепции и существующие реализации этих концепций.

Существующие реализации ООП работают в рамках императивного подхода, ибо создавались как развитие средств программирования. В самой ООП нет не слова ни про императивность ни про декларации.

В самой РМД вообще нет понятия алгоритма, потому бизнес-логику туда вообще не уложить. Проблемы возникают в существующих реализациях РМД.


Давайте пофлудим о парадигмах.
Давным давно ЯП делили на императивные и декларативные.
Причем императивные считали "устаревшими", а за декларативными видели будущее.

Так вот ООП ЯП работают в рамках императивного подхода, потому что это и есть императивные ЯП.
Он проектировались как императивные ЯП, и создавались как императивные ЯП и работают как императивные ЯП.
См. первый ООП ЯП SmallTalk.

А вот с декларативными ЯП вышла промашка.
Для того, чтобы создать декларативный ЯП нужна "машина вывода".
Т.е. ядро, которое по "хотелкам" выдаст результат.
Единственное решение которое "состоялось" это был SQL.
Т.к. "ядром" для него была РМД.
Очень простая "машина вывода", которая имела предсказуемое время решения.

Тот же Prolog не взлетел из-за того, что можно было "влететь" в комбинаторный взрыв и "привет вселенная".
Т.е. кроме как лабораторных опытов не годился.

Но т.к. в РМД в лучшем случае хорошо "ложатся" только данные, то различные РСУБД начали включать в себя "императивщину".
Например psql или TSQL. Чтобы пользы от СУБД было чуть больше, т.к. голая РМД может только ограниченный круг задач.
14 авг 15, 06:44    [18016051]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Bogdanov Andrey
Member

Откуда: Да уже и сам не знаю...
Сообщений: 2203
mad_nazgul
Так вот ООП ЯП работают в рамках императивного подхода, потому что это и есть императивные ЯП.

Хм. Всё-таки объектность и декларативность вполне себе ортогональны. Какой из принципов ООП не совместим с декларативностью?Scala вполне себе объектная и декларативная.
14 авг 15, 21:00    [18020245]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11459
Вот соглашусь с безумным назгулом - не надо напяливать ООП на РМД только потому, что это можно сделать.
14 авг 15, 21:12    [18020292]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
mad_nazgul,

Я не буду флудить. Я сказал,что в собственно ООП никакой императивности нет, это, по большому счету концепция конструирования новых типов. Подавляющее большинство реализаций ООП - это императивные ЯП. И что? Наберите в яндексе "парадигмы программирования", там ОО парадигма программирования описывается отдельно от императивной. То есть "ОО" и "императивный" - это две независимые характеристики, одна из другой не следует, но язык может сочетать эти (и другие) парадигмы.

А Вы, я гляжу, знаток, дааа. Извините за следующий вопрос. Правильно я понял, что Вы РМД назвали машиной вывода?
15 авг 15, 04:10    [18021502]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
U-gene
Member

Откуда: Москва. Россия
Сообщений: 1576
Basil A. Sidorov
Вот соглашусь с безумным назгулом - не надо напяливать ООП на РМД только потому, что это можно сделать.
Так напялено уже давным-давно. Принцип напяливания давным-давно используется в куче систем (в том же 1С). Почему бы его не формализовать и не запихнуть в СУБД?
15 авг 15, 04:17    [18021504]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
этта
Guest
U-gene
<> Так напялено уже давным-давно. Принцип напяливания давным-давно используется в куче систем (в том же 1С). Почему бы его не формализовать и не запихнуть в СУБД?

патамушта в РСУБД есть штуки, которые нужны вчера, и которые делать лень [и неясно как]. даже за большие дэнги


например кросс-табличные индексы.
не только делать как объекты субд, но и научить планер ими пользоваться (при запросах к джойнам и т.п. "составным наборам").
пока вместо этого имеем возможность или денормализации или сбора мат-представлений (лишних чемоданов без ручки) а уж на результаты -- натягивать directly запросы и индексы.
М--системщики, если я из правильно на слух уловил -- тут могут руками "индекс" собрать из чего угодно. И руками же нафигироваться вдоль оного.

вот это вот всё гораздо нужнее банального орм-ирования, чем тот же 1С занят. (маппинг -- полезная подпорка для ленивых, но всегда тупее рук пряморукого скл-кодера)

именно поэтому, кстати, дальше ОО--манифестации постгрес и не пошёл -- потому, что
а. никому не надо, кроме фриков с "ООП головного мозга"
б. не ясно, как сделать, чтобы хоть кому--то понадобилось для дела

а как дысали -- множественное наследование нарисовали -- не чуй собачий...
15 авг 15, 14:20    [18022144]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
ViPRos
Member

Откуда:
Сообщений: 9965
U-gene
Basil A. Sidorov
Вот соглашусь с безумным назгулом - не надо напяливать ООП на РМД только потому, что это можно сделать.
Так напялено уже давным-давно. Принцип напяливания давным-давно используется в куче систем (в том же 1С). Почему бы его не формализовать и не запихнуть в СУБД?

потому что сразу потеряется основной козырь - "n транзакций в секунду"
15 авг 15, 16:52    [18022387]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
ViPRos
Member

Откуда:
Сообщений: 9965
РМД, ЯП универсальные - это возможность любой тупоте сотворить хоть что нить
а ООП на базе РМД убивает половину этих возможностей, так как РМД с его вседозволенным языком становится недоступна тупарям, тут уже надо думать о модели, а не методом тыка селектить хоть что нить из кое как слепленных табличек
порог становится выше для проектирования, а доходы вендоров падают
15 авг 15, 16:59    [18022415]     Ответить | Цитировать Сообщить модератору
 Re: парадигма OOP плохо ложиться на реляционные отношения...?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
ViPRos
РМД, ....- это возможность любой тупоте сотворить хоть что нить

Вы еще упускаете из виду - любой тупоте достаточно просто извлечь достаточно сложную инфу из БД. Это существенно укрепляет потребность в РМД.
15 авг 15, 21:51    [18023281]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить