Database
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Database

Tạo và triển khai nhiều phiên bản cơ sở dữ liệu thông qua ảnh chụp nhanh lược đồ

Tổng quan

Bài viết này nói về cách sử dụng ảnh chụp nhanh lược đồ cơ sở dữ liệu để duy trì các phiên bản khác nhau của cơ sở dữ liệu được triển khai cho các môi trường khác nhau.

Ảnh chụp nhanh lược đồ cơ sở dữ liệu là các bản sao theo thời gian của trạng thái hiện tại của cơ sở dữ liệu thường được sử dụng để điều hòa sự khác biệt khi triển khai các thay đổi từ môi trường này sang môi trường khác.

Bài viết này sẽ tập trung vào một tình huống cụ thể trong đó ảnh chụp nhanh lược đồ cơ sở dữ liệu không chỉ là bản sao tại thời điểm của cơ sở dữ liệu mà chúng được sử dụng để tạo các phiên bản mới của môi trường cụ thể.

Ảnh chụp sơ đồ cơ sở dữ liệu là gì

Ảnh chụp nhanh lược đồ cơ sở dữ liệu chỉ đơn giản là một bản sao lưu tại thời điểm của cơ sở dữ liệu.

Nói cách khác, ảnh chụp nhanh lược đồ cơ sở dữ liệu là bản sao chính xác của cấu trúc cơ sở dữ liệu không bao gồm dữ liệu ở dạng ban đầu.

Lược đồ cơ sở dữ liệu đề cập đến tất cả các đối tượng cơ sở dữ liệu bao gồm bảng, dạng xem và các thủ tục được lưu trữ. Chúng tôi tạo một ảnh chụp nhanh lược đồ cơ sở dữ liệu để đóng băng các định nghĩa đối tượng để sử dụng sau này.

Tại sao Cần có Ảnh chụp Lược đồ Cơ sở dữ liệu

Ảnh chụp nhanh lược đồ cơ sở dữ liệu có thể được sử dụng cho các mục đích sau:

  1. Sao chép trạng thái hiện có của cơ sở dữ liệu để tham khảo hoặc sử dụng trong tương lai.
  2. Tạo phiên bản cho cơ sở dữ liệu thông qua nhiều ảnh chụp nhanh giản đồ cơ sở dữ liệu.
  3. Tạo một bản sao kịp thời của cấu trúc cơ sở dữ liệu để khôi phục nhanh chóng.
  4. Tạo một bản sao của lược đồ cơ sở dữ liệu đích trước khi triển khai các thay đổi mới.
  5. Tạo bản sao ổn định gần đây nhất của giản đồ cơ sở dữ liệu trước khi tiếp tục với các thay đổi khác.
  6. Tạo và chia sẻ các thay đổi trong cơ sở dữ liệu cho một thành viên nhóm bên ngoài không thể truy cập trực tiếp vào môi trường cơ sở dữ liệu.
  7. Ảnh chụp nhanh giản đồ cơ sở dữ liệu cũng có thể được sử dụng để so sánh sự khác biệt giữa công việc hiện tại và công việc đã làm trong quá khứ.
  8. Ảnh chụp nhanh giản đồ cơ sở dữ liệu cũng có thể được sử dụng để xuất bản bị ngắt kết nối.

Yêu cầu giữ nhiều phiên bản cơ sở dữ liệu

Nếu nhóm phát triển cơ sở dữ liệu của bạn đã nhận được yêu cầu đặc biệt để giữ và duy trì nhiều phiên bản cơ sở dữ liệu sẽ được triển khai trên nhiều môi trường thì một trong những giải pháp là sử dụng ảnh chụp nhanh lược đồ cơ sở dữ liệu để đáp ứng yêu cầu.

Tạo nhiều phiên bản cơ sở dữ liệu

Như đã thảo luận trước đó, ảnh chụp nhanh lược đồ cơ sở dữ liệu không chỉ được sử dụng làm bản sao tại thời điểm của cấu trúc cơ sở dữ liệu mà còn có thể được sử dụng để tạo và triển khai nhiều phiên bản cơ sở dữ liệu cùng một lúc.

Thiết lập cơ sở dữ liệu mẫu (đào tạo kỹ thuật)

Mở dbForge Studio cho SQL Server hoặc SSMS (SQL Server Management Studio) để thiết lập cơ sở dữ liệu mẫu có tên là TechnicalTraining trong đó có thông tin về các khóa học kỹ thuật, sinh viên và giảng viên với một vài bảng như sau:

 - (1) Tạo cơ sở dữ liệu mẫu TechnicalTraining TẠO CƠ SỞ DỮ LIỆU TechnicalTraining; GOUSE TechnicalTraining-- (2) Tạo bảng Student NULL, CONSTRAINT PK_Student_StudentId KEY PRIMARY CLUSTERED (StudentId)) ĐI-- (3) Tạo bảng TrainerBảng huấn luyện viên CONSTRAINT PK_Trainer_TrainerId PRIMARY KEY CLUSTERED (TrainerId)) ĐI-- (4) Tạo bảng khóa họcCREATE TABLE Course (CourseId INT IDENTITY, Name VARCHAR (50) NOT NULL, TrainerId INT NULL, Detail VARCHAR (200) NULL, CONSTRAINT PK_Course_CourseYId CourseId)) TRÊN [CHÍNH] BẢNG MỤC TIÊU Khóa họcADD CONSTRAINT FK_Course_TrainerId NGOẠI KHÓA (TrainerId) TÀI LIỆU THAM KHẢO dbo.Trainer (TrainerId) GO-- (5) Tạo bảng StudentCourse TẠO BẢNG [dbo]. [StudentCourse] ([StudentCou rseId] INT IDENTITY (1,1) NOT NULL, [StudentId] INT NULL, [CourseId] INT NULL, [PercentScore] DECIMAL (5, 2) NULL, CONSTRAINT [PK_StudentCourse_StudentCourseId] PRIMARY KEY CLUSTERED ([StudentCourseId] ASC), CONSTRAINT [FK_StudentCourse_Student_StudentId] FOREIGN KEY ([StudentId]) TÀI LIỆU THAM KHẢO [dbo]. [Student] ([StudentId]), CONSTRAINT [FK_StudentCourse_Course_CourseId] FOREIGN KEY ([CourseId]) THAM KHẢO [Khóa học]) (Khóa học). ĐI-- (6) Tạo chế độ xem để xem báo cáo tiến độ của học sinh StudentIdINNER JOIN Course con c.CourseId =sc.CourseIdINNER JOIN Trainer ton t.TrainerId =c.TrainerIdGO 

Xin lưu ý rằng cơ sở dữ liệu TechnicalTraining được cấu trúc theo cách mà nhiều sinh viên có thể tham gia nhiều khóa học trong khi mỗi khóa học chỉ có thể có một giảng viên như hình dưới đây:

Xin lưu ý rằng tôi đang sử dụng dbForge Studio cho SQL Server nên giao diện đầu ra có thể khác nếu bạn chạy cùng một mã trong SSMS (SQL Server Management Studio). Tuy nhiên, không có sự khác biệt giữa các tập lệnh và kết quả của chúng.

Điền vào cơ sở dữ liệu bằng cách sử dụng tập lệnh sau:

 SỬ DỤNG TechnicalTraining-- (1) Đang điền bảng của TrainerSET IDENTITY_INSERT [dbo]. [Trainer] ONINSERT INTO [dbo]. [Trainer] ([TrainerId], [Name], [Qualification], [Notes]) VALUES (1 , N'George ', N'MSc Computer Science', NULL) CHÈN VÀO [dbo]. [Trainer] ([TrainerId], [Name], [Qualification], [Notes]) VALUES (2, N'Akeel ', N'MSc Database Management ', NULL) CHÈN VÀO [dbo]. [Trainer] ([TrainerId], [Name], [Qualification], [Notes]) VALUES (3, N'Sarah', N'MSc Data Science ' , NULL) INSERT INTO [dbo]. [Trainer] ([TrainerId], [Name], [Qualification], [Notes]) VALUES (4, N'Ben ', N'BSc Computer Science', NULL) ĐẶT IDENTITY_INSERT [ dbo]. [Giảng viên] TẮT-- (2) Đang điền bảng Khóa họcSET IDENTITY_INSERT [dbo]. [Khóa học] ONINSERT INTO [dbo]. [Khóa học] ([Khóa học], [Tên], [Người huấn luyện], [Chi tiết]) GIÁ TRỊ (1, N'Database Development ', 1, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [Name], [TrainerId], [Detail]) VALUES (2, N'Data Analysis', 2 , NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [Name], [TrainerId], [Det ail]) VALUES (3, N'Data Reports Development ', 2, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [Name], [TrainerId], [Detail]) VALUES (4, N' Khái niệm cơ bản về Business Intelligence ', 3, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [Name], [TrainerId], [Detail]) VALUES (5, N'Big Data Fundamentals', 4, NULL ) SET IDENTITY_INSERT [dbo]. [Khóa học] TẮT-- (3) Đang điền bảng Sinh viênSET IDENTITY_INSERT [dbo]. [Sinh viên] ONINSERT INTO [dbo]. [Sinh viên] ([Sinh viên], [Tên], [Ngày đăng ký], [ Notes]) VALUES (1, N'Asif ', N'2017-01-01 00:00:00', NULL) CHÈN VÀO [dbo]. [Student] ([StudentId], [Name], [registerDate], [Ghi chú]) VALUES (2, N'Mike ', N'2017-02-01 00:00:00', NULL) CHÈN VÀO [dbo]. [Student] ([StudentId], [Name], [RegisterDate] , [Ghi chú]) VALUES (3, N'Naveed ', N'2017-03-10 00:00:00', NULL) CHÈN VÀO [dbo]. [Student] ([StudentId], [Name], [RegisterDate ], [Ghi chú]) VALUES (4, N'Sam ', N'2017-04-15 00:00:00', NULL) CHÈN VÀO [dbo]. [Student] ([StudentId], [Name], [ Ngày đăng ký], [Ghi chú]) VALUES (5, N'Mona ', N'2017-07-10 00:00:00', NULL) SET IDENTITY_INSERT [dbo]. [Student] OFF-- (4) Đang điền bảng StudentCourseSET IDENTITY_INSERT [dbo]. [StudentCourse ] ONINSERT INTO [dbo]. [StudentCourse] ([StudentCourseId], [StudentId], [CourseId], [PercentScore]) CÁC GIÁ TRỊ (1, 1, 1, CAST (72,00 AS Decimal (5, 2))) CHÈN VÀO [ dbo]. [StudentCourse] ([StudentCourseId], [StudentId], [CourseId], [PercentScore]) CÁC GIÁ TRỊ (2, 1, 2, CAST (75,00 AS Decimal (5, 2))) CHÈN VÀO [dbo]. [ StudentCourse] ([StudentCourseId], [StudentId], [CourseId], [PercentScore]) CÁC GIÁ TRỊ (3, 2, 2, CAST (80,00 AS Decimal (5, 2))) CHÈN VÀO [dbo]. [StudentCourse] ([ StudentCourseId], [StudentId], [CourseId], [PercentScore]) CÁC GIÁ TRỊ (4, 2, 3, CAST (70,00 AS Decimal (5, 2))) CHÈN VÀO [dbo]. [StudentCourse] ([StudentCourseId], [ StudentId], [CourseId], [PercentScore]) CÁC GIÁ TRỊ (5, 3, 5, CAST (80,00 AS Decimal (5, 2))) ĐẶT IDENTITY_INSERT [dbo]. [StudentCourse] OFF 

Kiểm tra cơ sở dữ liệu

Nhấp chuột phải vào StudentProgress trong Chế độ xem và nhấp vào Truy xuất dữ liệu hoặc cách khác là nhập mã T-SQL sau:

 - Xem tiến trình của học sinh ton t.TrainerId =c.TrainerIdorder bởi s.Name 

Kết quả như sau:

Thiết lập Phiên bản 1 bằng cách Tạo Ảnh chụp Lược đồ Cơ sở dữ liệu

Đây là lúc để lưu bản sao tại thời điểm của lược đồ cơ sở dữ liệu vì cấu trúc cơ sở dữ liệu hiện tại đáp ứng các yêu cầu cho phiên bản 1 của cơ sở dữ liệu.

Tạo bản chụp nhanh giản đồ 1

Nhấp chuột phải vào Đào tạo kỹ thuật cơ sở dữ liệu trong Trình khám phá cơ sở dữ liệu của dbForge Studio dành cho SQL Server (hoặc bạn có thể sử dụng bất kỳ công cụ tương tự nào mà bạn chọn có khả năng tạo ảnh chụp nhanh giản đồ cơ sở dữ liệu), nhấp vào Công việc và sau đó nhấp vào Tạo Thư mục Tập lệnh hoặc Ảnh chụp nhanh… như hình dưới đây:

Tạo ảnh chụp nhanh tại vị trí mong muốn của bạn và đặt tên là TechnicalTraining-Version-001-StudentCourseTrainer.snap như sau:

Kiểm tra Bản chụp nhanh giản đồ 1

Kiểm tra thư mục để xem ảnh chụp nhanh giản đồ cơ sở dữ liệu được tạo gần đây của phiên bản 1:

Thêm Loại Khóa học Bảng Mới

Bây giờ, hãy để chúng tôi thêm một bảng khác có tên là CourseType vào cơ sở dữ liệu hiện có với sự trợ giúp của tập lệnh sau:

 - Thêm bảng CourseType TẠO BẢNG CourseType (CourseTypeId INT IDENTITY, Name VARCHAR (50) NOT NULL, Detail VARCHAR (250) NULL, CONSTRAINT PK_CourseType_CourseId PRIMARY KEY CLUSTERED (CourseTypeId)); ĐI 

Chèn dữ liệu vào bảng như sau:

 SET IDENTITY_INSERT [dbo]. [CourseType] ONINSERT INTO [dbo]. [CourseType] ([CourseTypeId], [Name], [Detail]) VALUES (1, N'Basic ', NULL) CHÈN VÀO [dbo] . [CourseType] ([CourseType], [Name], [Detail]) CÁC GIÁ TRỊ (2, N'Inter Instant ', NULL) CHÈN VÀO [dbo]. [CourseType] ([CourseTypeId], [Name], [Detail]) VALUES (3, N'Advanced ', NULL) ĐẶT IDENTITY_INSERT [dbo]. [CourseType] TẮT 

Sửa đổi bảng khóa học để thêm cột loại khóa học

Cập nhật bảng Khóa học để thêm khóa ngoại CourseType:

 - Bỏ ràng buộc khóa ngoạiALTER TABLE StudentCourseDrop Constraint [FK_StudentCourse_Course_CourseId] - Bỏ qua bảng CourseDROP TABLE Course - Tạo bảng Course với cột mới CourseTypeIdCREATE TABLE [dbo]. [Course] ([CourseId] INT IDENTITY (1, 1) NOT NULL, [CourseTypeId] INT, [Name] VARCHAR (50) NOT NULL, [TrainerId] INT NULL, [Detail] VARCHAR (200) NULL, CONSTRAINT [PK_Course_CourseId] PRIMARY KEY CLUSTERED ([CourseId] ASC), CONSTRAINT [FK_Course_Trainer ] FOREIGN KEY ([TrainerId]) TÀI LIỆU THAM KHẢO [dbo]. [Trainer] ([TrainerId]), CONSTRAINT [FK_Course_CourseTypeId] FOREIGN KEY ([CourseTypeId]) TÀI LIỆU THAM KHẢO [CourseType] ([CourseTypeId])); ĐI  

Thêm dữ liệu vào bảng Khóa học mới được sửa đổi như sau:

 - Thêm dữ liệu vào bảng CourseSET IDENTITY_INSERT [dbo]. [Course] ONINSERT INTO [dbo]. [Course] ([CourseId], [CourseTypeId], [Name], [TrainerId], [Detail]) GIÁ TRỊ (1, 1, N'Database Development ', 1, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [CourseTypeId], [Name], [TrainerId], [Detail]) GIÁ TRỊ (2, 3 , N'Data Analysis ', 2, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [CourseTypeId], [Name], [TrainerId], [Detail]) VALUES (3, 2, N'Data Phát triển báo cáo ', 2, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [CourseTypeId], [Name], [TrainerId], [Detail]) GIÁ TRỊ (4, 1, N'Basics of Business Intelligence ', 3, NULL) CHÈN VÀO [dbo]. [Course] ([CourseId], [CourseTypeId], [Name], [TrainerId], [Detail]) VALUES (5, 1, N'Big Data Fundamentals', 4 , NULL) SET IDENTITY_INSERT [dbo]. [Khóa học] TẮT-- Thêm ràng buộc khóa ngoại trở lại bảng Biểu tượng sinh viên 

Thêm các khóa học xem mới

Bây giờ, hãy thêm một chế độ xem mới để xem tất cả các khóa học với các loại của chúng như sau:

 - Tạo chế độ xem để xem các khóa học với các loại của chúng; ĐI 

Kiểm tra cơ sở dữ liệu

Xem cấu trúc cơ sở dữ liệu để biết những thay đổi gần đây nhất:

Chạy chế độ xem CoursesWithTypes:

Thiết lập Phiên bản 2 bằng cách Tạo Ảnh chụp Lược đồ Cơ sở dữ liệu

Tạo một bản sao theo thời gian khác của cấu trúc cơ sở dữ liệu để đánh dấu Phiên bản 2 của cơ sở dữ liệu.

Tạo Ảnh chụp nhanh giản đồ cơ sở dữ liệu và gọi nó là TechnicalTraining-Version-002-StudentCourseTrainerCourseType.snap như sau:

Triển khai nhiều phiên bản cơ sở dữ liệu

Sau khi tạo thành công ảnh chụp nhanh lược đồ cơ sở dữ liệu cho phiên bản 1 và phiên bản 2, giờ đây chúng tôi có thể triển khai bất kỳ phiên bản nào cho bất kỳ môi trường nào theo yêu cầu.

Tạo cơ sở dữ liệu nhà phát triển từ bản chụp nhanh lược đồ phiên bản 1

Nhấp vào So sánh-> So sánh giản đồ mới từ thanh menu trong dbForge Studio cho SQL Server:

Tiếp theo đặt Loại nguồn là Ảnh chụp nhanh và Xác định vị trí của Bản chụp nhanh giản đồ cơ sở dữ liệu phiên bản 1 TechnicalTraining-Version-001-StudentCourseTrainer.snap chúng tôi đã tạo trước đó và nhấp vào biểu tượng dấu cộng để tạo cơ sở dữ liệu mục tiêu một cách nhanh chóng:

Nhập tên cơ sở dữ liệu TechnicalTrainingV1_DEV và nhấp vào OK:

Nhấp vào Tiếp theo :

Nhấp vào Tiếp theo một lần nữa để chọn Tùy chọn mặc định rồi nhấp vào Tiếp theo để tiếp tục với các tùy chọn Ánh xạ lược đồ mặc định và sau đó nhấp vào So sánh :

Đồng bộ hóa Nguồn và Mục tiêu bằng cách nhấp vào Biểu tượng Màu xanh lá cây ở giữa như hình dưới đây:

Sau một vài bước nữa, hãy nhấp vào Đồng bộ hóa :

Tiếp theo, thực thi tập lệnh để cuối cùng tạo TechnicalTrainingV1_DEV cơ sở dữ liệu từ ảnh chụp nhanh lược đồ cơ sở dữ liệu đại diện cho phiên bản 1 của cơ sở dữ liệu:

Xem cơ sở dữ liệu mới được tạo là bản sao của cơ sở dữ liệu TechnicalTraining phiên bản 1:

Tạo cơ sở dữ liệu nhà phát triển từ bản chụp nhanh lược đồ phiên bản 2

Bây giờ, hãy tạo Phiên bản 2 của cơ sở dữ liệu bằng cách làm theo các bước được đề cập để tạo Phiên bản 1 chỉ bằng cách trỏ đến Ảnh chụp sơ đồ cơ sở dữ liệu Phiên bản 2 TechnicalTraining-Version-002-StudentCourseTrainerCourseType lúc này:

So sánh Phiên bản 1 và Phiên bản 2

Hãy để chúng tôi so sánh nhanh cả hai cơ sở dữ liệu để xem sự khác biệt.

Xin chúc mừng! Bạn đã tạo thành công nhiều phiên bản cơ sở dữ liệu thông qua ảnh chụp nhanh giản đồ cơ sở dữ liệu.

Việc cần làm

Giờ đây, bạn có thể dễ dàng sử dụng ảnh chụp nhanh lược đồ cơ sở dữ liệu để tạo và triển khai nhiều phiên bản cơ sở dữ liệu.

  1. Tạo nhiều phiên bản SQLDevBlogTDD được đề cập trong bài viết trước của tôi.
  2. Tạo nhiều phiên bản của cơ sở dữ liệu với cuộc họp phiên bản 1 Tổng số bài báo cho mỗi báo cáo tác giả yêu cầu và cuộc họp phiên bản 2 Báo cáo Tổng số bài báo mỗi năm tiếp theo bài viết trước của tôi.
  3. Xem qua bài viết trước của tôi Nghệ thuật tách biệt sự phụ thuộc và dữ liệu trong thử nghiệm đơn vị cơ sở dữ liệu và xem liệu bạn có thể tạo hai phiên bản khác nhau của cơ sở dữ liệu thông qua ảnh chụp nhanh giản đồ cơ sở dữ liệu, một với các thử nghiệm đơn vị tSQLt và một không có thử nghiệm đơn vị tSQLt.

Công cụ hữu ích:

dbForge Studio dành cho SQL Server - IDE mạnh mẽ để quản lý, quản trị, phát triển, báo cáo và phân tích dữ liệu SQL Server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để lọc các hàng không có NULL trong một cột

  2. Cách sắp xếp trong SQL

  3. Ngưỡng tối ưu hóa - Dữ liệu nhóm và tổng hợp, Phần 3

  4. Giám sát các bản sao lưu trong các phiên bản

  5. Chuyển đổi dữ liệu ODBC trong CloverDX