|
|
|
| Как следует из других топиков, при использовании текстовых файлов для хранения информации и при отсутствии блокировки файла возможна ситуация, когда к одному файлу одновременно обращаются несколько скриптов, что приводит к искажению хранимой информации.
А какова ситуация при использовпнии БД?
Если одновременно поступает несколько запросов к БД, то в ней тоже возможно искажение информации? Или система управления БД предусматривает защиту от этой ситуации? | |
|
|
|
|
|
|
|
для: Владимир55
(17.10.2008 в 23:19)
| | Или система управления БД предусматривает защиту от этой ситуации?
да
Более того существует такой страшный термин как транзакция. При которой несколько SQL-запросов обрабатываются как единое целое. И никакой другой процесс не вклиниться между ними. И ещё более того происходит откат изменений при неудачном выполнении хотябы одного запроса.
Как альтернатива транзакциям есть и блокировка таблиц. Но чипа чего откат придётся делать собственноручно если того требует логика скрипта. | |
|
|
|
|
|
|
|
для: Владимир55
(17.10.2008 в 23:19)
| | Все запросы к одной таблице выстраиваются в очередь и выполняются поочередно. В любом случае ситуации, когда из-за одновременного обращения у вас полетит таблица - невозможна - блокирование выполненно на уровне. Кроме того, большая часть таблиц поддерживает механизм транзакций, когда вы можете обеспечить целостность не только физического носителя (файла), но и логическую целостность, т.е. грубо говоря поставить условие - не менять эту запись, пока я не выполнил эту последовательность SQL-операторов. | |
|
|
|
|
|
|
|
для: cheops
(18.10.2008 в 01:17)
| | Как можно предположить, это немаловажное преимущество при построении сложных систем, ибо случайные сбои в хранении информации могут настолько усложнить понимание ситуации, что отыскать логическую ошибку может и вообще неудасться! | |
|
|
|