Với đặc điểm của phần mềm: quy mô lớn, thực hiện triển khai và phát triển đồng thời là điểm khó khăn đối với quá trình phát triển phần mềm. Mỗi phần mềm khi phát triển luôn có những thay đổi và sửa chữa. Sự thay đổi và sửa chữa đó ở một mức độ sẽ tạo ra một phiên bản. Như vậy trong vòng đời phát triển của phần mềm có rất nhiều phiên bản được tạo ra. Đôi lúc ta cần xem lại nội dung phiên bản cũ. Các công cụ hỗ trợ kiểm soát phiên bản ra đời giúp kiểm soát lịch sử phiên bản đồng thời có khả năng truy vết các phiên bản đó. Kiểm soát các phiên bản chính là ta kiểm soát được một số thông tin như: nội dung thay đổi của từng phiên bản, thời gian thay đổi, người thay đổi và vị trí thay đổi của nội dung từ đó hỗ trợ cho việc kiểm soát chất lượng của phần mềm khi thay đổi, đồng thời kiểm soát được tiến độ thực hiện phát triển phần mềm. Trên thực tế có rất nhiều kỹ thuật hỗ trợ kiểm soát phiên bản như: Subversion, Git, Bazaar, CVS, Code Co-op… Ứng với mỗi cách quản lý CSDL của dự án thì đội phát triển sẽ lựa chọn cho mình công cụ hỗ trợ kiểm soát phiên bản thích hợp. Ví dụ: Đối với dự án quản lý CSDL tập trung thì ta có thể sử dụng CVS, SVN,…để hỗ trợ kiểm soát phiên bản. Còn đối với dự án quản lý CSDL không tập trung thì ta dùng Git, Code Co-op, BitKeeper, Bazaar…. Kỹ thuật kiểm soát phiên bản được áp dụng phổ biến hiện nay tại Việt Nam cũng như trên Thế giới là SVN đối với CSDL tập trung và Git đối với CSDL không tập trung.
Đặc điểm cơ bản của hệ thống kiểm soát phiên bản là: tạo ra kho lưu trữ, tạo ra các phiên bản khi thay đổi được lưu vào kho lưu trữ, thực hiện lấy dữ liệu từ kho lưu trữ về máy và gửi thay đổi của mỗi thành viên lên máy chủ…
Với đặc điểm phần mềm có quy mô lớn, phát triển phần mềm theo nhóm. Yêu cầu đặt ra là phải có máy chủ để lưu trữ CSDL, lưu thay đổi trong quá trình phát triển và được giám sát bởi người quản lý dự án. Để thực hiện kiểm soát các phiên bản thì server được cài đặt phần mềm quản lý máy chủ, các client phải được cài đặt phần mềm trợ giúp cho việc trao đổi thông tin với máy chủ.