Computer >> Máy Tính >  >> Lập trình >> Redis

Giải thích về tính nhất quán của cơ sở dữ liệu

Tính nhất quán của cơ sở dữ liệu là gì?

Tính nhất quán của cơ sở dữ liệu được xác định bởi một tập hợp các giá trị mà tất cả các điểm dữ liệu trong hệ thống cơ sở dữ liệu phải căn chỉnh để được đọc và chấp nhận đúng cách. Nếu bất kỳ dữ liệu nào không đáp ứng các giá trị được điều chỉnh trước vào cơ sở dữ liệu, điều đó sẽ dẫn đến lỗi nhất quán cho tập dữ liệu. Tính nhất quán của cơ sở dữ liệu đạt được bằng cách thiết lập các quy tắc. Bất kỳ giao dịch dữ liệu nào được ghi đối với cơ sở dữ liệu chỉ được thay đổi dữ liệu bị ảnh hưởng như được xác định bởi các ràng buộc, trình kích hoạt, biến, tầng cụ thể, v.v., được thiết lập bởi các quy tắc do nhà phát triển cơ sở dữ liệu đặt ra.

Ví dụ:giả sử bạn làm việc cho Viện An toàn Giao thông Quốc gia (NTSI). Bạn được giao nhiệm vụ tạo cơ sở dữ liệu về các giấy phép lái xe mới của California. Dân số California đã bùng nổ trong mười năm qua, tạo ra nhu cầu về bảng chữ cái và định dạng số mới cho tất cả những người có bằng lái xe lần đầu. Nhóm của bạn đã xác định rằng giá trị đặt mới cho giấy phép lái xe California trong cơ sở dữ liệu của bạn như sau: 1 Alpha + 7 Numeric. Mọi mục nhập bây giờ phải tuân theo quy tắc này. Mục nhập có nội dung “C08846024” - sẽ trả về có lỗi. Tại sao? Vì giá trị được nhập là 1 Alpha + 8 Numeric, về bản chất, đây là một dạng dữ liệu không nhất quán .

Tính nhất quán cũng ngụ ý rằng mọi thay đổi dữ liệu đối với bất kỳ đối tượng cụ thể nào trong một bảng cần được thay đổi trong tất cả các bảng khác có đối tượng đó. Giữ ví dụ về giấy phép lái xe tiếp tục, nếu địa chỉ nhà của người lái xe mới thay đổi, bản cập nhật đó phải được thể hiện trên tất cả các bảng có địa chỉ trước đó. Nếu một bảng có địa chỉ cũ và tất cả các bảng khác có địa chỉ mới, thì đó sẽ là ví dụ điển hình về sự không nhất quán về dữ liệu .


Lưu ý :Tính nhất quán của cơ sở dữ liệu không đảm bảo rằng dữ liệu được giới thiệu trong bất kỳ giao dịch cụ thể nào là chính xác. Nó chỉ đảm bảo rằng dữ liệu được ghi và đọc trong hệ thống đáp ứng tất cả các điều kiện tiên quyết của dữ liệu đủ điều kiện để nhập vào cơ sở dữ liệu. Nói một cách đơn giản hơn, với ví dụ ở trên, bạn rất có thể nhập một giao dịch dữ liệu đáp ứng quy tắc 1 Alpha + 7 Số, nhưng điều đó không đảm bảo rằng dữ liệu tương ứng với giấy phép lái xe thực tế. Tính nhất quán của cơ sở dữ liệu không giải thích cho những gì dữ liệu đại diện, chỉ là định dạng của nó.

Tại sao tính nhất quán của cơ sở dữ liệu lại quan trọng?

Dữ liệu nhất quán là thứ giữ cho cơ sở dữ liệu hoạt động như một cỗ máy được bôi dầu tốt. Các quy tắc / giá trị được thiết lập giữ dữ liệu không nhất quán ngoài cơ sở dữ liệu chính và bản sao giữ cho hoạt động của nó trơn tru với:

  • Độ chính xác
  • Tăng không gian cơ sở dữ liệu
  • Truy xuất dữ liệu nhanh hơn và hiệu quả hơn

Tính nhất quán của cơ sở dữ liệu quy định tất cả dữ liệu đến. Vì vậy, mặc dù cơ sở dữ liệu thay đổi khi chấp nhận dữ liệu mới, nhưng ít nhất nó cũng thay đổi nhất quán và phù hợp với các quy tắc xác thực được thiết lập ngay từ đầu. Trong thế giới ngày nay, có những quyết định hàng tỷ đô la được thực hiện hàng ngày trên toàn cầu dựa trên nhận thức tính nhất quán của một cơ sở dữ liệu. Khi thông tin thời gian thực trở thành hiện trạng mới cho các doanh nghiệp kỹ thuật số thời hiện đại, thì điều tối quan trọng là các quy tắc xác thực phải được đưa ra để giữ cho bộ dữ liệu không có thông tin sai sót, vì điều đó cũng làm tăng độ trễ, khiến trải nghiệm thời gian thực không thực như vậy- sau tất cả.

Ví dụ về tính nhất quán của cơ sở dữ liệu

Ví dụ về hoạt động nhất quán cơ sở dữ liệu trong thế giới thực là gì? Chúng tôi đã khám phá một ví dụ với kịch bản NTSI của chúng tôi ở trên. Hãy xoay trục sang thế giới ngân hàng.

Giả sử bạn đang chuyển tiền từ tài khoản này sang tài khoản khác. Bạn vừa chuyển 1200 đô la vào tài khoản đã có 300 đô la. Bạn làm mới, tích cực, bạn sẽ tìm thấy số dư $ 1500. Tuy nhiên, hoạt động gần đây này không được phản ánh trong số dư của bạn. Trên thực tế, số dư mới của bạn hiện là 0 đô la. Điểm yếu kỹ thuật này là một ví dụ điển hình về tính nhất quán yếu và có thể sẽ dẫn đến việc dành thời gian khắc phục sự cố với đại diện ngân hàng. Những vấn đề như thế này có thể làm hoen ố danh tiếng của thương hiệu và tiêu tốn một số tiền đáng kể. Tính nhất quán mạnh mẽ trong các hệ thống cơ sở dữ liệu ngày càng trở nên không thể thương lượng, đối với các nhà phát triển cũng như người tiêu dùng.

Tính nhất quán mạnh so với tính nhất quán yếu

Nhất quán mạnh mẽ có nghĩa là tất cả dữ liệu trong một bản sao chính, bản sao và tất cả các nút tương ứng của nó đều phù hợp với các quy tắc xác thực và giống nhau tại bất kỳ thời điểm nào. Với tính nhất quán cơ sở dữ liệu mạnh mẽ, không quan trọng khách hàng đang truy cập dữ liệu nào - họ sẽ luôn thấy dữ liệu được cập nhật gần đây nhất tuân theo các quy tắc được thiết lập cho cơ sở dữ liệu.

Tính nhất quán yếu là một chút giống như phương ngôn hoang dã, hoang dã miền tây. Không có gì đảm bảo rằng dữ liệu của bạn trong các nút chính, bản sao hoặc nút của bạn là giống nhau tại bất kỳ thời điểm nào. Một khách hàng ở Ấn Độ có thể truy cập dữ liệu và xem thông tin vượt qua các quy tắc xác thực, nhưng có thể không phải là dữ liệu được cập nhật gần đây nhất, dẫn đến lỗi nhất quán . Họ rất có thể đang xử lý thông tin không còn phù hợp nữa, ngay cả khi nó có thể đã xảy ra ở một thời điểm nào đó.

Mức độ nhất quán

Mức độ nhất quán là một tập hợp các giá trị được điều chỉnh trước khác quy định số lượng bản sao hoặc nút phải phản hồi với dữ liệu được phép mới trước khi nó được thừa nhận là một giao dịch hợp lệ. Hoạt động này có thể được thay đổi trên cơ sở mỗi giao dịch. Vì vậy, ví dụ, một lập trình viên có thể ra lệnh rằng chỉ có hai nút cần đọc dữ liệu mới đầu vào trước khi nó thừa nhận tính nhất quán của dữ liệu. Khi nó vượt qua phong vũ biểu đó, nó sẽ được coi là dữ liệu nhất quán sau đó.

Các mức cô lập

Mức cô lập là một phần của thuộc tính ACID (Tính nguyên tử, Tính nhất quán, Cô lập, Độ bền) của cơ sở dữ liệu. ACID là một khái niệm nền tảng về tính nhất quán của cơ sở dữ liệu với cơ sở dữ liệu SQL và là những gì cơ sở dữ liệu nhất định tuân theo để tối ưu hóa tính nhất quán của cơ sở dữ liệu. Cô lập là một trong những thuộc tính của ACID và nó phân chia một số phần dữ liệu nhất định khỏi tất cả thông tin trong một mạng cơ sở dữ liệu nhất định, giúp nó không bị sửa đổi bởi các giao dịch của người dùng khác. Sự cô lập được tận dụng để hạn chế việc đọc và ghi dữ liệu không quan trọng được tạo ra trong các giao dịch đồng thời.

Có bốn loại mức độ cách ly:

  • Đọc Chưa xác nhận :Cấp độ thấp nhất. Dừng cập nhật hàng nếu giao dịch trước đó cung cấp bản cập nhật chưa cam kết cho hàng đó.
  • Đã cam kết đọc :Điều này không cho phép "đọc bẩn." Điều này chặn mọi lần đọc hoặc ghi nếu một giao dịch đã được cập nhật nhưng vẫn chưa được cam kết.
  • Đọc lặp lại :Cấp độ này giúp hàng dữ liệu đang đọc không bị truy cập và có khả năng được cập nhật.
  • Có thể nối tiếp hóa :Mức cách ly cao nhất, có thể tuần tự hóa thường khóa toàn bộ bảng hơn là một hàng dữ liệu cụ thể.

Câu hỏi thường gặp về tính nhất quán của cơ sở dữ liệu

Điều gì có nghĩa là nếu dữ liệu nhất quán?

Dữ liệu nhất quán nếu nó xuất hiện giống nhau trong tất cả các nút tương ứng tại cùng một thời điểm, bất kể người dùng và nơi họ đang truy cập dữ liệu, về mặt địa lý.

Tính nhất quán của dữ liệu có giống với tính nhất quán của cơ sở dữ liệu không?

Không. Tính nhất quán của cơ sở dữ liệu yêu cầu các quy tắc xác thực cho dữ liệu đi vào mạng để dữ liệu đó nhất quán, theo công thức, với tất cả các dữ liệu khác trong bảng.

Tính nhất quán dữ liệu là quá trình dữ liệu được lưu giữ một cách đồng nhất nhất có thể trong toàn bộ mạng và giữa nhiều ứng dụng tận dụng dữ liệu đó.

Tính nhất quán cuối cùng là gì?

Với tính nhất quán cuối cùng, dữ liệu đã trải qua một bản cập nhật cuối cùng sẽ được phản ánh trong tất cả các nút nơi dữ liệu đó được lưu trữ. Cuối cùng, tất cả các nút sẽ tạo ra cùng một dữ liệu bất cứ khi nào bất kỳ máy khách nào truy cập nó trong mạng thông qua tính nhất quán cuối cùng.

Một bảng trong cơ sở dữ liệu quan hệ bao gồm?

Tất cả dữ liệu trong cơ sở dữ liệu quan hệ được lưu trữ trong các bảng, bao gồm các hàng và cột. Các điểm dữ liệu được tổ chức trong các hàng và cột này. Các hàng, thường được gọi là "bản ghi" thường đại diện cho các loại dữ liệu, trong khi cột hoặc "trường", thay thế cho "phiên bản". Một bảng được tìm thấy trong cơ sở dữ liệu và giúp dữ liệu của bạn không bị dư thừa với thiết kế dựa trên chủ đề của nó.

Cơ sở dữ liệu quan hệ bao gồm tập hợp?

Bảng

Mô hình ACID so với Mô hình BASE như thế nào?

Sự khác biệt chính giữa các mô hình ACID và BASE (Về cơ bản có sẵn, Trạng thái mềm, Cuối cùng nhất quán) là trong khi ACID hoạt động để tối ưu hóa tính nhất quán của cơ sở dữ liệu, BASE tăng cường tính khả dụng cao. ACID giữ cho các giao dịch nhất quán, vì vậy nếu bạn sử dụng mô hình BASE, hãy đảm bảo rằng tính nhất quán vẫn là ưu tiên hàng đầu và được giải quyết triệt để.

Các cơ sở dữ liệu của Redis có nhất quán không?

Khi Redis được sử dụng làm bộ nhớ đệm, tính nhất quán được đề cập có thể là giữa các phiên bản Redis (chính / bản sao) và giữa bộ đệm Redis và Redis làm cơ sở dữ liệu chính. Trong trường hợp này, dữ liệu có thể không nhất quán nếu dữ liệu giữa hai dữ liệu đó không khớp. Blog của chúng tôi, Ba cách để duy trì tính nhất quán của bộ nhớ cache, đề cập đến cách giải quyết vấn đề này.

Đối với nguồn mở Redis, có tính nhất quán yếu, nhưng Phân phối địa lý chủ động của Redis Enterprise cung cấp tính nhất quán cuối cùng mạnh mẽ.

Quan tâm đến các kỹ thuật bộ nhớ đệm đám mây cho các ứng dụng doanh nghiệp? Nhấp vào bên dưới để đọc Caching at Scale with Redis của Lee Atchison .