Tương Lai Của CSDL Quan Hệ

Vũ Huy Tâm

Bác Nhữ Đình Thuận có một seri bài viết về NoSQL rất đầy đủ và chi tiết:

Cơ sở dữ liệu quan hệ sẽ chết?
Một số thông tin về NoSQL và thị trường database
NoSQL – seminar và article
NoSQL

Tôi thấy bác nhận xét rất chính xác về những nhược điểm của các hệ CSDL quan hệ, và NoSQL phát huy vai trò thế nào khi có thể lấp vào những nhược điểm ấy. Không nghi ngờ gì nữa đây là một xu hướng sẽ còn tiếp tục phát triển mạnh. Tôi chưa có nhiều thời gian tìm hiểu về món này, trừ việc dịch bài này vì thấy nó hay hay. Cũng không có điều kiện thử nghiệm do môi trường công việc. Nhưng có lẽ đã đến lúc anh em làm CSDL chúng ta cần ngó nghiêng sắm sửa thêm “kiếm” mới chuẩn bị cho con đường chinh chiến phía trước.

Điều làm tôi thắc mắc là liệu “Cơ sở dữ liệu quan hệ sẽ chết?“, hoặc sau bao lâu nữa sẽ chết? Theo tôi hiểu thì NoSQL ra đời để đáp ứng một lớp ứng dụng mới, chủ yếu là các hệ thống web2.0, đặc trưng bởi lượng dữ liệu tạo ra khổng lồ và đòi hỏi hoạt động liên tục (không được phép down), nhưng đồng thời có thể chấp nhận một sự không nhất quán có giới hạn và thường có cấu trúc đơn giản (ít nhất thì không phức tạp như cái này). Với những yêu cầu như thế thì các hệ CSDL quan hệ không đáp ứng được về dung lượng dữ liệu và độ sẵn sàng, trong khi những yêu cầu chặt chẽ về toàn vẹn dữ liệu lại không cần thiết và làm cản trở đến tốc độ.

Tuy nhiên vẫn còn rất nhiều các ứng dụng khác đòi hỏi rất cao về tính toàn vẹn dữ liệu và độ tin cậy của giao dịch. Có thể lấy các ví dụ như các ứng dụng về tài chính, giao dịch chứng khoán, ngân hàng, ERP, các ứng dụng trong sản xuất hay xét nghiệm thuốc, hoặc các ứng dụng Business Intelligence về đủ các lĩnh vực… Các hệ thống CSDL quan hệ đáp ứng rất tốt yêu cầu của những ứng dụng này, thông qua các ràng buộc toàn vẹn dữ liệu và các cơ chế quản lý giao dịch chặt chẽ. Các ứng dụng này dựa hoàn toàn vào mô hình dữ liệu được định nghĩa trước, và những tính năng như không cần khai báo lược đồ (schema-less) hay có thể thêm cột từ ứng dụng là hoàn toàn không có ý nghĩa.

Trong một bài báo tôi đọc cách đây ít lâu có một nhận định rằng mô hình quan hệ và các hệ thống dựa trên nó sẽ qua khỏi thời hoàng kim trong vòng 10-15 năm nữa. Điều này không phải vì các ứng dụng đòi hỏi toàn vẹn cao mất đi, mà vì các ứng dụng mới không tương thích với mô hình quan hệ trở nên chiếm số đông trên thị trường công nghệ. Chính xác đến đâu thì khó có thể xác định được, vì tất cả đang đóng vai Gia Cát Dự.

Bài post này xin được hiểu như một câu hỏi mở. Nhận định của bạn là gì?




5 Comments
Posted on 22/11/2010 | Categories: Eventual Consistency, Linh tinh

Các bài viết tương tự

Comments
  • yen nguyen (24/11/2010 4:00 am)

    CSDL quan hệ ko còn phù hợp nữa

    mọi thứ bh đều theo kiểu hướng đối tượng

  • Kiem Nguyen (24/11/2010 7:11 pm)

    Cũng đọc mấy bài của bác nhu thuan viết về xu hướng nosql rồi. Nhưng không biết về kĩ thuật thì làm sao ta? Bác có bài viết và ex nào simple post lên không. Bên mình cũng làm 1 trang về chia sẻ dữ liệu trực tuyến, hệ thống thì ngày 1 lớn và mình thấy db đang ko đáp ứng được. Chỉ số botle neck lên quá cao hiện tại cũng ko biết nếu nó tiếp tục tăng nhanh thế này thì giữ được bao lâu. Mà mỗi lần reindex thì mất cả mấy tiếng đồng hồ.

  • Vũ Huy Tâm (24/11/2010 8:28 pm)

    @Kiem Nguyen: như đã viết trong bài, tôi không có kinh nghiệm gì về món này và hiện cũng chưa có điều kiện thử nghiệm. Đợi lúc nào tôi cài thử rồi mở trang nosqlviet.com blog để post lên nhé :)

    • Tawny (03/07/2015 1:44 pm)

      Yo, that’s what’s up trlfutuhly.

  • Red Devilic (26/11/2010 1:43 am)

    Minh cũng chưa biết đến khái niệm về NoSQL.

    Tuy nhiên có thể suy đoán dựa theo những gì mình được đọc + kinh nghiệm tích lũy trước đây thì

    - NoSQL cũng gần giống với việc phi chuẩn hóa CSDL

    - Đúng là với việc chuẩn hóa CSDL thì đảm bảo được tính nhất quán, tránh dư thừa và trùng lặp dữ liệu. Tuy nhiên performance sẽ giảm.

    Rõ ràng nhất có thể thấy là việc INNER JOIN giữa 2 bảng mà data trong 2 bảng này lớn

    - Cách giải quyết thường là CHẤP NHẬN dư thừa dữ liệu, số cột trong bảng sẽ tăng lên để tránh phải look up sang các bảng khác.

    - Điều này tương tự như việc khi cần truy xuất thông tin, ta chỉ cần xem trong duy nhất 1 bảng.

    Có phải như vậy không ?

Leave a Reply

Hướng dẫn: Để nhập mã T-SQL bạn dùng thẻ <pre lang="tsql"> và </pre>.
Ví dụ: <pre lang="tsql">SELECT * FROM MyTable</pre>