metaclass: (Default)
[personal profile] metaclass
http://theiced.livejournal.com/238346.html
Собственно, про кобол я не знаю, на дельфи пишу уже 15 лет и никак избавится от него не могу (слишком много легаси кода), а вот про SQL я с ним не согласен.
Сам по себе SQL очень хорошо подходит для генерации отчетов. Если отчет сводится к фильтрации-сортировке-группировке множеств - идеально. С рекурсивными CTE - еще и деревья можно обрабатывать, не особо включая мозг. Всунув поверх этого минимальных размеров постобработку на какой-нибудь функциональщине, можно сделать почти любой отчет, пришедший в голову свихнувшимся на Excel выпускникам нархоза, работающим в минстате, минфине и МНС.

Но когда доходит до процедурных расширений, API между СУБД и клиентскими приложениями или каких-нибудь вещей, которые забыли вовремя добавить в стандарт - начинается полная, немыслимая жопа.
Например, проклятая тема - генерация автоинкрементных ключей и возвращение значений автоматически заполненных полей. Кто во что горазд - identity, генераторы, sequence, функции (в каждой СУБД названные по разному), returning, заебы на тему "вызывать в той же транзакции и сессии" и прочая и прочая. Про вариации на тему "вернуть поле, которое заполняется автоматически, но не является ключом/identity" лучше даже не думать.
Неудивительно, что люди при первой же возможности сбегают в ORM (которые являются уже второй производной от всего этого маразма и несут на себе его неизгладимый след).

Date: 2013-04-03 04:04 pm (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Про блокировки транзакциями - почитайте про оптимистические и пессимистические блокировки
http://ibase.ru/devinfo/plocks.htm

Блокировка НЕ транзакцией - например если сервер не поддерживает транзакции. Или если надо блокировать на длительное время что транзакцией делать крайне нежелательно - тогда флагами, таблицами со списком блокировок, отдельным приложением которое ведет списки блокированных объектов... мало ли чего можно придумать.
Вот атомарность транзакции или ее свойство Repeatable Read никаким другим механизмом не заменишь. А блокировку в принципе можно.

Date: 2013-04-03 04:20 pm (UTC)
From: [identity profile] norguhtar.livejournal.com
Я вообще в курсе что такое блокировки. И да все серверы РСУБД в данный момент так или иначе поддерживают транзакции. А то что вы описываете это не блокировка на уровне РСУБД это логическая блокировка.

Date: 2013-04-03 04:31 pm (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Так я про то и говорю что для реализации уверенности в актуальности имеющихся данных не обязательно пользоваться средствами блокировки на уровне СУБД.

Date: 2013-04-03 05:29 pm (UTC)
From: [identity profile] norguhtar.livejournal.com
Вообще при использовании РСУБД обязательно. Так-как даже если вы их не используете транзакции никуда не деваются.

Date: 2013-04-03 05:47 pm (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Объясните мне еще про транзакции, я про них первый раз слышу.

Date: 2013-04-04 02:28 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Шли бы вы почитали вот этот вот курс http://citforum.ru/database/osbd/contents.shtml
А то специальные формы, данные изменяются на сервере.

Date: 2013-04-04 02:48 am (UTC)
From: [identity profile] fraks-nsk.livejournal.com
Сарказм был не виден?

Date: 2013-04-04 03:09 am (UTC)
From: [identity profile] norguhtar.livejournal.com
Увы нет. Пока вы мне рассказываете про специальные некешируемые формы его не видно.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 12th, 2025 02:40 pm
Powered by Dreamwidth Studios