Как стать автором
Обновить

Комментарии 30

Хм, простите, но как по мне это статья из разряда «Хозяйкам на заметку» :)
У базы есть пул соединений

Да ладно! Подозреваю, что речь таки про какой-то сервер приложений…
А там вместо миллиона строк осталось 100 тысяч! Если база реальная, то это очень подозрительно

Если база реальная и Вы выполнили подобную операцию, заблокировав все задетые строки и НЕ сделали сразу commit или rollback, то Ваше подозрение будет наименьшей Вашей проблемой — так как все эти строки заблокированы и прилетит скорее всего оттуда, откуда не ждали :)
Да, это статья именно из этого разряда! :)
А главное — пока транзакция не закрыта, нужно рассказать про блокировки.
Ага, точно! Дала ссылку в «см также» блоке, спасибо))
А еще нужно рассказать про чтение фантомных данных
и вот эти все уровни изоляции транзакций
Ну а не проще просто взять и прочитать википедию? Там ведь все это написано, на русском языке, и более подробно? Зачем такие пересказы для детского сада с картинками? Для кого?

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

Не, я не имею ничего против просветительской деятельности. Если есть какое-то число людей, которым такой уровень подачи хорош, то и пусть себе.

Мне просто как-то сомнительно что именно тут, в ИТ-сообществе, найдется много людей, которые все еще не знают, что такое транзакции.

Вы, наверное, удивитесь, узнав, как много школьников сейчас в айти-сообществе, знающих только JS/Python.

Не, не удивлюсь. Мне просто кажется, дело немного не в школьниках. Если вы школьник, и хотите понять, что такое базы данных, транзакции, и т.п., т.е. серьезно этим заниматься, и сделать это своей профессией в конечном счете — то на мой взгляд, лучше читать нормальные серьезные книги. А не такие вводные тексты, которые может и интереснее, но тут реально опущены ряд важнейших тем, типа тех же уровней изоляции (уже тут упомянули).

Ну т.е. школьники, которые хотят в ИТ как в профессию — все равно странная аудитория для таких текстов (опять же — ничего не имею против такого формата подачи как такового). Но я давно не школьник, так что это лишь чисто ссубъективное мнение человека, который еще самую первую SQL базу видел живьем :)
ИМХО такие книги часто сложно написаны и если ты читаешь такое в первый раз, подобные статьи в которых это рассказывается как ребенку могут помочь
лучше читать нормальные серьезные книги

лично я предпочитаю такой же подход в обучение, либо нормальные книги, либо сразу в исходники. Но для новичка это может быть достаточно сложно
П.с я сам начинал программировать лет в 16 и тогда такого большого разнообразия материалов для обучения не было и я все еще помню как было больно учиться по тем книгам
Ну, когда я начинал программировать, книги издавались в бумажном виде. И чтобы купить что-то приличное, приходилось записываться в начале года, чтобы тебе прислали открытку о выходе той или иной книги.

>Но для новичка это может быть достаточно сложно
Несомненно. Но я все же думаю, что учиться по комиксам это перебор :)
>Но я все же думаю, что учиться по комиксам это перебор :)

Первая и лучшая книга в мой жизни была комиксом по сути и называлась
«Энциклопедия профессора Фортрана». Скажу точно, она не была перебором.
Вы знаете, тут уже очень давно публиковали статью на тему монад, функторов и т.п. в картинках. Типичный комикс, в общем-то. Она, на мой взгляд, более чем достойная. Вопрос скорее в том, что учиться только по таким все-таки не стоит — лучше все равно почитать что-то более фундаментальное. Но как стимул изучить что-то — комиксы тоже годятся.

P.S. Книга про которую вы говорите, вышла кажется в 1991. Я к этому времени руководил группой системных программистов большого ВЦ, так что мы видимо из разных поколений. Но разные взгляды — это вполне нормально, так что я тут не спорю, если что, а просто изгалаю свой взгляд на вещи.

Мне кажется, тут проблема в некотором искажении информации (выше уже говорили про пул, что он не в базе заводится, точнее — бывает пулинг рядом с бд, чтобы бороться с приложениями, не умеющими в свой пулинг, но для приложения такие пулы совершенно прозрачный и незакрытую транзакцию должны обрабатывать через rollback).


Для нормального просветительского уровня надо убрать инфу про пулы (либо расписать отдельно) и убрать про вкладки sql developer-а — чересчур специфичный опыт для начально-ознакомительного уровня.

Так я в общем примерно об этом с начала и писал — что не очень понятно, для кого такой текст? Он содержит ряд упрощений и искажений (вероятно, с той же целью упростить), который делает текст плохим для начального ознакомления с предметом. Упрощать нужно — но упростить так, чтобы это осталось правильным, это сложно.
Обожаю книги из серии Head First O`Reilly, хотя там тоже такая же «несерьезная» подача материала. Каждому своё )
Да я могу и в третий раз сказать — ничего не имею против такого формата. Он просто сложный — важно ничего не упустить, а то создается искаженное понимание (при этом нюансов в этой тебе вообще вагон). В этом случае на мой взгляд немного не получилось, но бывает.
Возможно, просто у меня, как у автора, была идея донести конкретные мысли — как открыть, как закрыть, потому что сама лично с этим сталкивалась. Понятно, что еще много всякого интересного можно нагуглить про транзакции, если дадите хорошие ссылки, добавлю в статью)
Ссылки — вряд ли. Есть одна тема, достаточно сложная — у Oracle есть такая штука, как www.orafaq.com/wiki/SCN, системный номер изменения (ну или коммита). И там можно просто в рамках select запросить данные в том виде, какими они были после конкретной транзакции, указав этот конкретный SCN (с кучей нюансов). Но вряд ли это нужно той аудитории, которой могут зайти статьи в подобном формате.
Да да, я уже на статью с блокировками дала ссылку, спасибо)
Программирование — детям! Не осуждаю, у самого в детстве была книга японских авторов с картинками, логика работы ЭВМ прививается решительно
Если строки уже удалены — то и значит, что транзакция подтверждена. А пока она не подтверждена — об этом знает только тот, кто их удалил (фантомные чтения не рассматриваем).
Так что КДПВ несколько неточная.
+1 за форму подачи. Художник — сам автор, или кто-то другой? Где можно посмотреть другие работы?
Художник — это кто-то другой ) Раньше у меня была одна художница, сейчас уже около 7, чтобы быстрее книгу закончить)) Другие работы художников можно посмотреть тут testbase.ru/book-beginner
Интересная форма подачи информации! Автору- респект!
Спасибо ^_^
Картинки классные
Лет 20 назад, когда интернет был через dial-up с оплатой скретч карами, у моего провайдера несколько раз удавалось пополнить баланс одним кодом более одного раза. Сейчас конечно за это стыдно, но что было то было.
Т.е. в 2-3 браузерах открывалась форма оплаты и максимально быстро отправлялся один и тот же код.
Суть в отсутствии все тех же транзакций и медленных серверах (да и вообще железе в целом) в то время. Их скрипт видимо сперва проверял правильность кода, был ли он ранее использован, потом добавлял сумму на баланс и в конце добавлял код в базу использованных. Так вот до последнего этапа можно было вполне реально вклиниться еще как минимум раз с тем же самым кодом.
Вот один из реальных примеров как отсутствие транзакций может навредить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории