Идея «транзакции» в программной транзакционной памяти явно заимствована из баз данных. Разница в том, где осуществляются транзакции и как они используются.
STM - это концепция уровня языка: последовательность операций не вступает в силу, пока транзакция не будет зафиксирована. Обычно это означает, что значения некоторых глобальных / общих переменных изменяются только при успешном выполнении транзакции. Свойство обеспечивается языковой средой выполнения. Не существует понятия постоянства: переменные, участвующие в транзакции, могут иметь чисто динамический характер (например, размер рабочей очереди).
Транзакции базы данных - это концепция уровня приложения: последовательность операций с данными не вступает в силу, пока транзакция не будет зафиксирована. Поскольку это база данных, постоянство является основополагающим: значение «вступления в силу» внутри базы данных заключается в том, что данные сохраняются в каком-то постоянном хранилище.
Вы можете потенциально использовать базу данных и транзакции базы данных для реализации алгоритма в стиле STM, но вы потеряете простоту и удобство (и, вероятно, в большинстве случаев производительность) реализации на уровне языка.