Разница между транзакционной и нетранзакционной
Проще говоря: в чем разница между "транзакционным" и "нетранзакционным"?
В моем случае я задал этот вопрос, читая следующее определение для "MDM":
"В вычислениях управление основными данными" (MDM) включает в себя набор процессов и инструментов, которые последовательно определяют и управляют нетранзакционными объектами данных организации (которые могут включать в себя справочные данные) ".
5 ответов
Я думаю, что лучший способ понять разницу между транзакционными и нетранзакционными данными - это примеры
Нетранзакционные (эта информация актуальна для предприятия в течение более длительного периода времени, чем транзакционные данные.)
- Заказчик: имя, настройки
- Продукт: Имя, Иерархия
- Сайт / Расположение: Адреса
- Аккаунт: Контракт Детали
Транзакционный (имеет временное измерение и становится историческим после завершения транзакции)
- Финансовый: заказы, счета, платежи
Когда вы собираете и объединяете набор операций в одну, тогда ваша группа операций является атомарной, и любой сбой подоперации приводит к откату целого, что делает набор операций надежным. Свойство такого рода структуры операций называется транзакционным.
Привести пример о транзакции;
Подумайте о том, что у вас есть база данных, которая занимается заказами клиентов, платежами и другими платежными материалами, поэтому эти данные очень важны. Вы предоставляете веб-интерфейс, а веб-интерфейс вызывает классы и методы бизнес-пакетов. И эти методы также, после завершения задания bi, будут вызывать классы dao (обозначает объект доступа к данным), чтобы обрабатывать операции crud. Таким образом, внутренний сервер строится с использованием n-уровневой модели приложения, и есть объекты dom (расшифровывается как объектная модель домена), которые передают данные обоими способами из конечной точки службы в базу данных вверх и вниз.
В случае, если пользователь хочет обновить некоторую информацию, скажем, номер телефона, тип оплаты и кредитную карту. Пока сервер обновляет три из этих данных, что, если проблема возникла на одном из них? Допустим, тип платежа и номер телефона обновлены, но при обновлении кредитной карты произошла ошибка? Вы закончите день или месяц неудачной попыткой выставления счета.
Но если у вас есть механизм, который объединит все обновления информации в группу обновлений информации, то в случае ошибки все обновление будет отменено. Это пример транзакции.
Если нет механизма транзакций, допустим, вы храните всю информацию в пользовательском файле, который обрабатывает механизм io, тогда вашему приложению придется обрабатывать все возможные сценарии ошибок.
для получения дополнительной информации, вы должны проверить эти полезные статьи Википедии;
По сути, транзакция - это одно или несколько добавлений, обновлений, удалений, изменений в базе данных, которые должны быть выполнены полностью, или ни один из шагов не должен быть выполнен. Транзакционные базы данных полезны, когда важна целостность данных. Если один из шагов в транзакции завершился неудачей, то эти шаги необходимо откатить до состояния, когда в базу данных не было внесено никаких изменений.
Пример того, когда вам понадобится транзакция, - это когда вы совершаете банковскую транзакцию, чтобы перевести деньги с одного счета на другой. Сделка состоит из двух действий.
1) Взять деньги со счета А
2) Положите деньги на счет Б.
Если вам не удастся снять деньги со счета A, то транзакция завершится неудачно, и деньги не будут удалены со счета A, и деньги не будут зачислены на счет B.
Если вы успешно удалили деньги со счета A, но не смогли добавить деньги на счет B, транзакция завершается неудачно, и транзакция должна быть откатана, чтобы деньги не были взяты со счета A.
Только если деньги будут удалены со счета А и добавлены к счету Б, транзакция зафиксирует изменения в базе данных.
Вот ссылка на пример кода для использования объекта SQLTransaction для начала транзакции, ее фиксации и отката при сбое: /questions/34293/kak-ispolzovat-sqltransaction-v-c/34297#34297
Нетранзакционная база данных, вероятно, будет иметь лучшую производительность, потому что ей не придется беспокоиться об откате изменений. Отдельные данные в нетранзакционной базе данных могут не требовать транзакционной обработки, как при управлении деньгами между банковскими счетами.
Примеры возможных нетранзакционных списков включают: списки клиентов, контактную информацию, информацию о поставщиках, списки местоположений и списки деталей.
Master Data Services был разработан для поддержки нетранзакционных данных, которыми вы хотите поделиться с несколькими приложениями.
Например, вы можете использовать один основной список контактной информации о членах компании и сделать ее доступной для различных приложений. Если у вас много приложений, которым требуется эта же информация, это гораздо лучше, чем пытаться поддерживать разные списки контактов для каждого приложения.
Дополнительные источники: https://en.wikipedia.org/wiki/Database_transaction
https://dba.stackexchange.com/questions/17246/diff-in-transactional-and-non-transactional-tables
Транзакция в общих словах означает, что ДАННЫЕ получены в процессе транзакции, например, когда вы регистрируете продажу или тикет.
Когда он говорит, что нетранзакционный, я полагаю, что это означает, что данные не имеют прямого доступа к системам OLTP (Online Transaction Processing), они хранятся в центральном хранилище, где все системы отправляют и публикуют обновления один раз каждые X часов (включено). заранее установленный интервал)