Te paso algo que tenía por ahí anotado, si, eso que mencionaste se usa (ej. ADO NET)
CONCURRENCIA DE DATOS ADO.NET
Cuando varios usuarios intentan modificar datos al mismo tiempo, es necesario establecer controles para impedir que las modificaciones de un usuario influyan negativamente en las otras
Pesimista: Bloqueo los registros a utilizar para que otros usuarios no puedan intervenir entre mi consulta y mi actualización (No disponible en una arquitectura desconectada)
Optimista: Se asume que no hay cambios, y cuando guardamos los datos se chequea si mi dato inicial(o el que voy a modificar) es tal(o sea que sigue siendo el mismo) para poder actualizarlo.
ElÚltimoGana: Se actualizan los datos sin tener en cuenta nada.
Ej.: JPA:
También podrías echarle un ojo a los Patrones
Observer y especialmente a
Model Control View, saludos