단순 파일을 사용할 때는 데이터를 백업하거나 복원하는 프로그램을 직접 만들어야 합니다. 데이터베이스에는 이러한 기능이 기본으로 많이 내장되어 있습니다.
파일에 저장할 때는 둘 이상의 프로세스나 스레드가 동시에 액세스하는 상황을 여러분이 중재해야 하지만, 데이터베이스는 이러한 상황을 알아서 해결해 줍니다. 특히 데이터 2개 이상을 프로세스 2개 이상이 동시에 액세스할 때, 데이터 경쟁 상태(data race condition) 같은 현상이 생기지 않게 합니다.
파일에 저장할 때는 잘못된 범위 값이 들어가는 것을 막을 방법이 없습니다. 전적으로 여러분이 알아서 해결해야 합니다. 하지만 데이터베이스에서는 잘못된 범위 값이 들어가거나 잘못된 조건 값이 들어가는 것을 예방할 수 있습니다. 예를 들어 이름이 같은 플레이어 캐릭터가 2개 이상 존재하지 못하게 할 수 있습니다.
플레이어 A와 플레이어 B가 있다고 칩시다. 플레이어 A와 플레이어 B 사이에 물물 교환을 하는 상황을 생각해 봅시다. 혹은 플레이어 A가 플레이어 B에게 현금을 지불하고 유료 아이템을 구매하는 경우를 생각해 봅시다. 이때 우리가 원하는 것은 플레이어 A와 플레이어 B의 데이터가 거래를 완료한 후 모두 변경되거나 거래가 중도 와해된 후 어느 쪽도 변경되지 않는 것입니다. 어떠한 경우라도 플레이어 A와 플레이어 B 중 데이터 하나만 변경된 상태가 되어서는 안 됩니다. 데이터베이스는 이러한 요구 사항도 해결해 줍니다.
어떤 플레이어 정보를 기록하고 있는데, 갑자기 파일을 보관하는 서버가 죽거나 게임을 담당하는 서버가 죽는다면 어떻게 될까요? 일부만 기록되거나 데이터 전체가 망가져 있으면 안 되겠지요. 파일에 플레이어 정보를 저장하고 있다면 이러한 상황은 여러분이 직접 해결해야 하지만, 데이터베이스는 이러한 문제를 알아서 해결해 줍니다.