> SQLite3 не поддерживает клиент-серверный режим по сети и блокирует файл от других то есть ненужного протокола (написанного специалистом по тазам банных - т.е. как правило либо плохого, либо с дырой вместо аутентификации, либо то и другое сразу, и все бережно завернуто в openssl)
> процессов при записи в БД. То есть SQLite3 - это встраиваемая
чудес не бывает, ни одна таза банных не умеет писать в одно и то же место (это не обязательно "файл") из двух процессов - "такая фигня получается!"
> СУБД с монопольным доступом на запись. Firebird работает с несколькими транзакционными
> моделями, например, даже тогда, когда данные могут не блокироваться от модификации
> при доступе к базе из нескольких процессов.
не могут. Это называется "транзакционная целостность".
Просто то, что в случае sqlite, решается банальным lockf, и ожиданием других процессов, в случае "больших" баз может решаться постановкой запросов в очередь единственного процесса (а чаще то и другое - пул процессов плюс взаимный локинг). Что совой об пень, что пнем о сову - пока данные не запишутся на диск, сообщить сказавшему 'commit' об успешном завершении (или дать ему по морде forced rollback'ом, если пока он копался, данные протухли) мы не можем.
у других есть еще всякие гранулярные локи, но выигрыш от них, как правило, преувеличен, по сравнению со сложностью реализации.
А "транзакционные модели" вида immediate/exclusive/deferred есть, не поверишь, и у sqlite. row locks вот нету, не очень и нужны.