Зачем NoSQL программистам

Jun 10, 2010 11:58


В последнее время, как видим, пошла мода на NoSQL.
Термин, собака, размыт до черезвычайности, под ним все подразумевают разное, кто во что горазд - кто-то интересуется переработанными RDBMS типа BigTable, кто-то болеет за key-value storage, парни с PostgreSQL вообще пошутили на тему QUEL.

Сконцентрируемся всё-таки на основном значении: системы ( Read more... )

программизм

Leave a comment

metaclass June 10 2010, 11:34:46 UTC
Я не понимаю, почему в SQL до сих пор нет типа поля результата "список"?
Т.е. делая запрос к таблице, мы одно из полей делаем подзапросом, выбирающим список из связанной таблицы и так его и возвращаем. Конечно, придется массово переделывать API, придумывать, как это все дело отобразить(и вставлять тоже) но "выбрать объект и его подчиненные объекты одним запросом" было бы весьма удобно.

Reply

plumqqz June 10 2010, 11:35:43 UTC
Ну как нет. Есть. Оракловые курсоры. В постгресе мне пришлось эмулировать.

Reply

metaclass June 10 2010, 11:38:45 UTC
Что-то они больше нигде мне не попадались.

Reply

plumqqz June 10 2010, 11:39:21 UTC
Ну, в ответ могу только развести руками.

Reply

rainman_rocks June 10 2010, 11:43:45 UTC
Да оно даже понятно как переделывать API: содрать идею с ORM'ов.

Например.

В моём примере объект Post будет возвращаться с полями Proxy user и ProxyList comments. В каждом конкретном запросе указываем - дёргать связанные сущности сразу или лениво. Если лениво - при доступе к свойству post.user.value и post.comments.value сущности выдёргиваются на лету и возвращаются.

Reply

plumqqz June 10 2010, 11:46:38 UTC
Скажите честно - а Вам не лень вместо одного простенького запроса, который можно написать и вставить куда надо за полминуты городить какие-то методы, ленивые-неленивые и проч.? Хотя бы в терминах топтания клавиатуры (бог с ней, с энтропией)?

Reply

rainman_rocks June 10 2010, 11:51:49 UTC
Потому что "простенький запрос" в коде сопровождаться будет ещё и заворачиванием параметров/разворачиванием результатов, каковое в типизированных языках, например, довольно хлопотно.

А "ленивые методы" единожды написаны в ORM и будут радовать собою долгие годы.

Это не говоря уж о психологическом дискомфорте от реляционных БД, каковой я описал в основном посте.

Reply

plumqqz June 10 2010, 11:54:40 UTC
Потому что "простенький запрос" в коде сопровождаться будет ещё и заворачиванием параметров/разворачиванием результатов, каковое в типизированных языках, например, довольно хлопотно.

Зато единообразно.

Это не говоря уж о психологическом дискомфорте от реляционных БД, каковой я описал в основном посте.

Ну понятно, "OU are old, Father William," the young man said, "And your hair has become very white;" и т.д.

Reply

rainman_rocks June 10 2010, 11:57:20 UTC
Вообще насчёт SQL и единообразности - спорное утверждение. Тут и разные диалекты, и аццкий цырк, который начинается в сложных запросах.

Reply

plumqqz June 10 2010, 11:58:31 UTC
Вообще насчёт SQL и единообразности - спорное утверждение. Тут и разные диалекты, и аццкий цырк, который начинается в сложных запросах.

Цырк, говорите? Адский? Хм.

Reply

metaclass June 10 2010, 12:07:33 UTC
Цырк, цырк. В MSSQL одно, в PGSQL другое, в Firebird воще третье.
Хорошо хоть на уровне общих понятий они единообразны.

Reply

dartbear June 10 2010, 12:21:18 UTC
именно что адский. как только станет нужно сделать шаг в сторону от ANSI SQL-92. я не заикаюсь про триггеры, хранимые процедуры и временные таблицы. достаточно хинтов для SQL запроса.

Reply

plumqqz June 10 2010, 12:23:32 UTC
Стало быть, я аццкий цыркач. Вот ведь, век живи - век учись, дураком помрешь.

Ха-ха-ха, мои маленькие зрительки! Сейчас я буду показывать недобрые трюки!

Reply

plumqqz June 10 2010, 12:26:18 UTC

... )

Reply

dartbear June 10 2010, 12:29:55 UTC
с удовольствием посмотрим.
только одна мааааленькая просьба - постарайтесь обойтись без использования CREATE VIEW :)

Reply

plumqqz June 10 2010, 12:30:39 UTC
view вы боитесь, по всей видимости, инстинктивно? :-)

Reply


Leave a comment

Up