Sự khác nhau giữa mô hình phát triển database dùng chung và chuyên dụng

Iworld.com.vn – Cùng tìm hiểu về Sự khác nhau giữ Shared vs Dedicated Development Models!

Phát triển database một cách an toàn và hiệu quả là vấn đề rất quan trọng đối với mỗi nhà phát triển khi làm việc trong nhóm. Để duy trì và theo dõi những thay đổi nào được thực hiện đối với database, giải quyết xung đột và quay trở lại các phiên bản trước đó nếu cần, giải pháp tốt nhất là sử dụng công cụ kiểm soát phiên bản. Nó cũng có thể giúp các nhà phát triển so sánh các phiên bản hoặc xác định những thay đổi nào đã được thực hiện và ai là tác giả.Các nhà phát triển có thể làm việc về phát triển database riêng biệt, có một bản sao cục bộ (mô hình phát triển database chuyên dụng), hoặc chia sẻ cùng một bản sao (mô hình phát triển database dùng chung).

Trong bài viết này, chúng ta sẽ tìm hiểu những khác biệt chính giữa mô hình phát triển database dùng chung và chuyên dụng được thực hiện với dbForge Source Control.
Để bắt đầu, chúng ta sẽ tìm hiểu ý nghĩa của mô hình phát triển database dùng chung và chuyên dụng.

Mô hình phát triển database dùng chung (Shared Database Development Model)

Mô hình phát triển dùng chung cho phép mọi nhà phát triển làm việc trên cùng một database và kho lưu trữ chứa phiên bản database mới nhất. Điều này có nghĩa là bạn sẽ không phải đối mặt với bất kỳ xung đột nào và bạn không cần phải tải phiên bản mới nhất của database mỗi khi bạn thực hiện các thay đổi đối với kho lưu trữ.

Trong mô hình này, tất cả các thay đổi của bạn được áp dụng trực tiếp vào database, và sau đó bạn có thể commit và đưa chúng vào kho lưu trữ. Do đó hãy cẩn thận, nếu bạn là người cập nhật database cuối cùng, những thay đổi của bạn sẽ ghi đè lên những thay đổi do các nhà phát triển khác thực hiện trước đó và ngược lại.
Việc bạn muốn kiểm tra các thay đổi của mình trước khi đẩy chúng vào kho lưu trữ không thể thực hiện được vì chúng có thể ảnh hưởng đến các thay đổi của người khác.

Mô hình phát triển database chuyên dụng (Dedicated Database Development Model)

Trong một mô hình phát triển chuyên dụng, các nhà phát triển sẽ làm việc với bản sao database của riêng họ hoặc được sao chép chạy cục bộ. Họ có thể tự cập nhật bản sao và kiểm tra chúng mà không lo sẽ ảnh hưởng đến code của các nhà phát triển khác. Sau khi các thay đổi được committed và đẩy đến kho lưu trữ từ xa, các thành viên trong nhóm của bạn có thể kéo về và áp dụng chúng vào các bản sao cục bộ hoặc mô phỏng của họ.

Không giống như mô hình phát triển dùng chung, một bản sao cục bộ sẽ ngăn không ghi đè những thay đổi do các nhà phát triển khác thực hiện. Tuy nhiên, nếu bản sao đang làm việc của bạn khác với bản mới nhất được lưu trữ trong kho, bạn sẽ bị xung đột sau khi nhận được các thay đổi gần đây nhất từ ​​kho lưu trữ. Do đó, để tránh xung đột, bạn cần cập nhật bản sao của mình thường xuyên và nạp phiên bản làm việc mới nhất của database từ kho lưu trữ trước khi thực hiện bất kỳ thay đổi nào.
Bây giờ, hãy xem các mô hình này hoạt động như thế nào trong Trình kiểm soát nguồn dbForge (dbForge Source Control).

Triển khai sự khác biệt bằng cách sử dụng dbForge Source Control

Để bắt đầu, bạn cần tải và cài đặt dbForge Source Control trên máy tính của mình.
Sau đó, trong Object Explorer of SSMS, click chuột phải vào database bạn muốn liên kết với hệ thống kiểm soát nguồn và bấm Source Control > Link to Source Control. Để biết thêm thông tin về cách liên kết với các hệ thống điều khiển nguồn khác nhau, hãy tham khảo tài liệu của chúng tôi.
Sau đó, bạn cần kết nối với kho lưu trữ kiểm soát nguồn. Để thực hiện, hãy nhấp vào dấu “+” trong Source control repository, chọn hệ thống kiểm soát nguồn, thực hiện các cài đặt và nhấp vào Ok.

Bây giờ, chọn một mô hình phát triển database và nhấp vào Link. Nó sẽ liên kết database với điều khiển nguồn và thêm các đối tượng vào bản sao database. Trong Object Explorer, mỗi database được liên kết sẽ được hiển thị với một nhãn cụ thể.

Hãy nhớ rằng mỗi liên kết database chỉ kết nối với một bản sao database tới kho lưu trữ. Để có thể làm việc với database và thực hiện các thay đổi, người liên kết database với kho lưu trữ phải thực hiện một initial commit.

Khi chọn mô hình phát triển cơ sở dữ liệu dùng chung, Source Control Manager sẽ liệt kê tất cả các thay đổi cục bộ được thực hiện trên các đối tượng database: added, removed, hoặc modified. Click chọn Refresh, hệ thống sẽ cập nhật bản sao cục bộ của bạn với những thay đổi do các nhà phát triển khác thực hiện từ xa.

Sau khi thực hiện xong các thay đổi, bạn có thể đẩy chúng vào kho lưu trữ kiểm soát nguồn bằng cách thực hiện một trong các bước sau:

  1. Trong Source Control Manager, chọn các thay đổi, viết chú thích và chọn Commit.
  2. Trong Object Explorer, click chuột phải vào database và sau đó chọn Source Control > Commit. Mặc định sẽ chọn tất cả các thay đổi cục bộ để commit. Để commit các thay đổi, hãy thêm nhận xét và nhấn vào Commit.

Sau khi hoàn tất, kho lưu trữ sẽ cập nhật tất cả các thay đổi được thực hiện trên các đối tượng database. Trong trường hợp nếu một số nhà phát triển đang làm việc trên cùng một đối tượng, cũng sẽ không có xung đột nào phát sinh. Thay vào đó, trong mô hình phát triển dùng chung, commit mới nhất sẽ ghi đè lên commit trước đó và những thay đổi đó sẽ bị mất.

Khi làm việc trong mô hình phát triển database chuyên dụng, bạn sẽ có một bản sao database cục bộ riêng. Do đó, trước khi thực hiện các thay đổi đối với database, bạn nên cập nhật bản sao cục bộ và nhận các thay đổi từ xa từ kho lưu trữ bằng cách chọn Remote changes và click vào Get latest trong Source Control Manager.

Bây giờ, bạn có thể làm việc với bản sao database cục bộ, thực hiện các thay đổi, kiểm tra và commit chúng vào kho lưu trữ kiểm soát nguồn để các thành viên trong nhóm của bạn có thể dùng chúng vào các bản sao database cục bộ của họ.
Nếu bất kỳ ai trong nhóm của bạn đã sửa đổi đối tượng trong bản sao cục bộ của họ và committed các thay đổi vào kho lưu trữ, thì bạn cần cập nhật bản sao cục bộ của mình để tránh xung đột. Để làm điều này, nhấn vào Refresh. Trong Source Control Manager sẽ có một danh sách các thay đổi từ xa. Nếu bạn muốn kiểm tra chính xác những gì đã được thực hiện trên đối tượng, hãy nhấp chuột vào đối tượng, thay đổi sẽ được đánh dấu trong code.
Tuy nhiên, có thể có tình huống bạn và một nhà phát triển khác đang làm việc trên cùng một đối tượng database và comitted các thay đổi lên kho lưu trữ. Không giống như mô hình phát triển dùng chung, bạn sẽ bị xung đột và có thể được giải quyết theo hai cách:

  • Get Local. Chọn tùy chọn này hệ thống sẽ áp dụng các thay đổi của bạn.
  • Get Remote. Tùy chọn này sẽ áp dụng các thay đổi do nhà phát triển khác thực hiện

Kết luận

Trong bài viết này, chúng tôi đã đề cập đến sự khác biệt giữa các mô hình phát triển database chuyên dụng và dùng chung. Như bạn có thể thấy, việc quản lý và phát triển database dễ dàng hơn nhiều với sự giúp đỡ của dbForge Source Control. Bạn có thể thúc đẩy sự phát triển database, theo dõi và xem những gì đã được thay đổi, bởi ai và khi nào cũng như giải quyết các xung đột nếu có.

Tùy thuộc vào yêu cầu dự án, bạn có thể quyết định mô hình nào phù hợp nhất với nhóm của mình. Chọn một mô hình chuyên dụng sẽ giúp bạn theo dõi và cải thiện việc phát triển database bằng cách thử nghiệm các thay đổi trong sandbox. Điều này có thể làm giảm lỗi và an toàn cho dữ liệu của bạn. Ngoài ra, mô hình phát triển chuyên dụng có thể dễ dàng loại bỏ nguy cơ mất dữ liệu và tránh trường hợp các thay đổi bị ghi đè hoặc code bị hỏng. Tuy nhiên, với mô hình phát triển database dùng chung, bạn không cần phải theo dõi bản sao database vì bản sao của bạn sẽ luôn được cập nhật.

Nếu bạn muốn biết thêm về công cụ dbForge Source Control, hãy tham khảo tại đây.
Muốn đánh giá hoạt động của công cụ, hãy tải xuống phiên bản dùng thử của dbForge Source Control!

Biên dịch bởi Ngô Lâm Đoon – Iworld.com.vn