Diamant |
Отправлено: 20.06.2006, 09:15 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
как использовать и зачем — знаю, догадываюсь...
вопрос, в том насколько целесообразно их использовать в какой-либо работе. Не подскажете ли какой толстый он-лайн мануал на англ/рус языках?
Общие книги по аля-SQL-БД не дают подобной информации.
Спасиб
Отредактировано Diamant — 20/06/2006, 09:18 |
|
olegenty |
Отправлено: 20.06.2006, 09:17 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
http://sql.ru
|
|
Diamant |
Отправлено: 20.06.2006, 09:24 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
в статьях, такого нет...
толкаться в форуме? да там много местных лиц, так что разницы нет |
|
olegenty |
Отправлено: 20.06.2006, 09:38 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
классический пример применения транзакции — банковский перевод денег со счёта на счёт.
без транзакции есть варианты.
вариант1.
деньги списались со счёта 1 и не зачислились на счёт 2 (произошла ошибка). в результате клиент остался без денег.
вариант2.
деньги зачмслились на счёт 2 но не списались со счёта 1 (произошла ошибка). в результате клиент счастлив, зато банк в пролёте.
вывод: действие списания и зачисления должны обязательно выполнять парой, при этом, если при любом из них происходит ошибка, то должны быть отменены ОБА.
вот это и обеспечивает транзакция, смысл которой — логическое объединение действий, которые либо ВСЕ выполняются безошибочно и ПОДТВЕРЖДАЮТСЯ, либо ВСЕ ОТМЕНЯЮТСЯ.
|
|
Diamant |
Отправлено: 20.06.2006, 09:45 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
значит, смысл, есть в том, чтобы возложить ответственность за принятие/непринятие решения о выполненных операциях на механизмы БД? Тоже самое можно сделать самому и вручную на клиентском ПО, последнее ИМХО достовернее, но медленнее.
Где золотая середина?
тут, как мне кажется , всплывает вопрос о удаленности базы данных от клиента и нагрузке на базу...
Отредактировано Diamant — 20/06/2006, 09:48 |
|
Diamant |
Отправлено: 20.06.2006, 09:58 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
кажется вникаю...
многопользовательская система, контакт с любым пользователем не надежен...
если пользователь хочет выполнить несколько операций, остальных нужно временно залочить, пользователь выполнил операции, но разлочить не успел, остальные сидят в раздумьях...
плюс похожее на ту же тему...
транзакция пройдет в БД целиком и таких проблем не будет?
ОНО? |
|
olegenty |
Отправлено: 20.06.2006, 10:07 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
ну примерно оно. короче, псевдо-транзакции с клиента — это неверное решение. суть транзакции, помимо прочего, перевод БД из одного ЦЕЛОСТНОГО, НЕПРТИВОРЕЧИВОГО состояния в другое ЦЕЛОСТНОЕ, НЕПРОТИВОРЕЧИВОЕ.
а то, что "залочили", "разлочили" — это зависит от конкретной СУБД. например, блокировочники будут лочить, версионники — порождать новую ветку версий и т.д... это вопросы внутренней реализации конкретной СУБД.
самое главное — целостность БД должна обеспечиваться на серверной стороне, а не на клиентской.
|
|
Diamant |
Отправлено: 20.06.2006, 10:20 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
QUOTE | это вопросы внутренней реализации конкретной СУБД. |
а умного фака по основным видам не видели?
интересуют MySQL, FireBird (она, вроде, порождение от MySQL), PostgreSQL, Access.
Обычно, темы по реализации, а равно сравнение лучше/хуже, сваливаются на размахивание 5 конечностью, каждый хвалит, то, что больше знает...
Механизмы реализации производители описывают? Иль это тайна? |
|
olegenty |
Отправлено: 20.06.2006, 10:29 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Firebird НЕ порождение MySQL, всё начиналось с Groton Database. Потом Interbase, и, наконец, Firebird.
на FAQ я тебя уже отсылал: http://sql.ru
|
|
Valdemar |
Отправлено: 20.06.2006, 16:51 |
|
Мастер участка
Группа: Участник
Сообщений: 433
|
По MySQL есть документация на русском языке http://www.mysql.ru. Там есть и про транзакции.
По поводу транзакций в Interbase/Firebird можно почитать в книге "Мир Interbase". Если поискать, то можно найти ее в электронном виде. Еще есть хороший сайт http://www.ibase.ru |
|
Diamant |
Отправлено: 21.06.2006, 07:53 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 6
|
Valdemar
ОООУ!!!! за майскуловский сайт отдельное спасибо, я его проглядел! iBase — тоже респект! |
|