Duvida na construção de aplicação(apenas uma aplicação, ou cliente e servidor)

Galera bom dia,

Eu sou estudante de ciência da computação e no meu estagio existe um programa bem antigo de cadastro e movimentação de processos. Eu gostaria de fazer um programa similar a este, porem com varias melhorias. Irei fazer apenas por aprendizado. A estrutura é a seguinte: um servidor com o banco de dados e mais duas ou 3 maquinas usando o programa e acessando o banco(no servidor tambem trabalha um operador utilizando o programa). minha duvida é se faço apenas um programa(executavel) para todas as maquinas, ou se criou no servidor uma programa mais robusto que fica responsavel por “monitorar” o acesso de todos os clientes a base de dados. Tenho essa duvida porque cada cliente tem a apção de alterar os registros ja gravados, então imagine a seguinte situação: o cliente A lista todos os registros e presiona uma tecla qualquer e abre uma nova janela com todos os dados daquele registro para alteração, enquanto o cliente A faz algumas alterações(como nome e etc) um segundo cliente(cliente B) pode em sua estação de trabalho listar os registros e apagar justamente o registro que esta sendo alterado pelo cliente A. Quando o cliente A confirmar a alteração vai gerar um erro, pois aquele registro que ele esta tentando alterar ja não existe mais pois o cliente B o deletou da base de dados. O que vocês me aconselham fazer? Vou desenvolver em java SE, utilizando JDBC ou Hibernate(tenho poucos conhecimentos). Acho que ja li em algum lugar q eu posso meio que “travar” algum registro do banco de dados enquanto eu estiver alterando o mesmo(tipo avisar ao banco que aquele registro esta sendo alterado e mais ninguem pode ter acesso a ele), mais não tenho certeza. Se fizer uma aplicação servidora eu sei que posso fazer “manualmente” esse controle apesar de ser muito mais trabalhoso.
Espero que possam me tirar essa duvida.
Grato a todos.

Acredito que suas dúvidas são mais relacionadas a lock de registros de banco de dados. Antes de desenvolver, sugiro que você dê uma estudada em concorrência em banco de dados e estratégias de lock. Fazendo uma breve pesquisa no google:

http://www.macoratti.net/vbn5_icd.htm - Introdução a concorrência de dados
http://en.wikipedia.org/wiki/Concurrency_control - Wikipedia, Concurrency Control (em inglês)

http://wiki.eclipse.org/Introduction_to_EclipseLink_Application_Development_(ELUG)#Locking - Introduction to EclipseLink Application Development

Você pode usar tanto arquitetura cliente-servidor quando uma arquitetura 3 camadas com um servidor de aplicação. Se usar JDBC puro você terá que implementar as regras de concorrência, se usar hibernate ou alguma implementação de JPA, pode usar uma implementação pronta.(mais fácil)

vou dar uma estudada, obrigado pela resposta!