Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Реализации инструкций DML в различных СУБД

Реализации инструкций DML в различных СУБДРеализации инструкций DML в различных СУБД различаются. Наименьшей информационной единицей, к которой можно применить инструкции INSERT и DELETE, является одна строка; инструкцию UPDATE можно применить и к одному столбцу одной строки. Очень важно осознать всю важность предложения WHERE в инструкциях UPDATE, DELETE и MERGE. Если это предложение опустить, изменениям подвергнется вся таблица. Некоторые производители СУБД вводят собственные инструкции, дублирующие функциональность стандартных инструкций DML. В настоящей главе описана одна из таких инструкций —TRUNCATE. В СУБД Microsoft SQL Server и Oracle ее функциональность сходна с DELETE, однако в ней отсутствует предложение WHERE В идеальном мире с базой данных одновременно работал бы только один пользователь, и все изменения выполнялись и сохранялись бы в правильном порядке. Однако на практике базы данных совместно используются массой пользователей. Базы наполняются из множества источников (некоторые из них нельзя назвать проверенными) разных форматов, часто в непредсказуемое время; при этом только в исключительные моменты времени с базой данных работает только один пользователь (если такое вообще происходит). Реляционные базы данных изначально разрабатывались для функционирования в многопользовательской среде. Когда с одним и тем же набором данных одновременно работает несколько клиентов, возникает масса вопросов. Какие данные должны быть видимы пользователям? Какой из модификаций при сохранении данных отдать предпочтение? Как гарантировать сохранность данных в ходе выполнения длительной процедуры? Ответ на этот и множество других вопросов дается в терминах сеансов, транзакций и блокировок. Транзакции предлагают решение потенциальных проблем целостности данных (этот вопрос детально обсуждается далее); блокировки решают проблемы параллельной работы с информацией множества пользователей, а сеансы обеспечивают поддержку контекста, в котором, кроме прочего, происходят транзакции и блокировки.