Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Состязания при использовании БД
 
 автор: Владимир55   (17.10.2008 в 23:19)   письмо автору
 
 

Как следует из других топиков, при использовании текстовых файлов для хранения информации и при отсутствии блокировки файла возможна ситуация, когда к одному файлу одновременно обращаются несколько скриптов, что приводит к искажению хранимой информации.

А какова ситуация при использовпнии БД?

Если одновременно поступает несколько запросов к БД, то в ней тоже возможно искажение информации? Или система управления БД предусматривает защиту от этой ситуации?

  Ответить  
 
 автор: Valick   (18.10.2008 в 00:09)   письмо автору
 
   для: Владимир55   (17.10.2008 в 23:19)
 

Или система управления БД предусматривает защиту от этой ситуации?
да
Более того существует такой страшный термин как транзакция. При которой несколько SQL-запросов обрабатываются как единое целое. И никакой другой процесс не вклиниться между ними. И ещё более того происходит откат изменений при неудачном выполнении хотябы одного запроса.
Как альтернатива транзакциям есть и блокировка таблиц. Но чипа чего откат придётся делать собственноручно если того требует логика скрипта.

  Ответить  
 
 автор: cheops   (18.10.2008 в 01:17)   письмо автору
 
   для: Владимир55   (17.10.2008 в 23:19)
 

Все запросы к одной таблице выстраиваются в очередь и выполняются поочередно. В любом случае ситуации, когда из-за одновременного обращения у вас полетит таблица - невозможна - блокирование выполненно на уровне. Кроме того, большая часть таблиц поддерживает механизм транзакций, когда вы можете обеспечить целостность не только физического носителя (файла), но и логическую целостность, т.е. грубо говоря поставить условие - не менять эту запись, пока я не выполнил эту последовательность SQL-операторов.

  Ответить  
 
 автор: Владимир55   (18.10.2008 в 01:28)   письмо автору
 
   для: cheops   (18.10.2008 в 01:17)
 

Как можно предположить, это немаловажное преимущество при построении сложных систем, ибо случайные сбои в хранении информации могут настолько усложнить понимание ситуации, что отыскать логическую ошибку может и вообще неудасться!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования