# 48: Dữ liệu liên kết lớn thuộc về cơ sở dữ liệu

Nếu chương trình ứng dụng của bạn chuẩn bị xử lý một loạt các tài nguyên dữ liệu rộng lớn và liên kết, đừng chần chừ mà hãy đặt nó vào trong cơ sở dữ liệu quan hệ. Trong quá khứ RDBMS (Hệ Quản trị Cơ Sở Dữ Liệu Quan Hệ) từng được coi như một con “linh thú” vừa đắt tiền, khan hiếm, phức tạp và rất khó sử dụng. Nhưng rồi điều đó cũng không còn quan trọng nữa. Hiện nay rất dễ dàng để tìm kiếm các hệ thống RDBMS, giống như là mọi hệ thống bạn đang sử dụng luôn sẵn có một hoặc hai RDBMS đã được cài đặt trong đó vậy.

Một vài RDBMS có tiềm năng, như MySQLPostgreSQL là các phần mềm mã nguồn mở, vì thế nên vấn đề về bản quyền không thành vấn đề. Hơn cả vậy, cái được gọi là Hệ Thống Nhúng Cơ Sở Dữ Liệu có thể được liên kết bằng các library trực tiếp vào chương trình ứng dụng của bạn và hầu như không đòi hỏi phải thiết lập hay quản lý — hai hệ thống nguồn mở đáng chú ý là SQLiteHSQLDB, những hệ thống đó thực sự rất có hiệu quả.

Nếu dữ liệu các ứng dụng của bạn lớn hơn dung lượng RAM của hệ thống, một bảng mục của RDBMS sẽ đưa ra các mệnh lệnh quan trọng nhanh hơn tập hợp library map của bạn, đồng thời giải phóng bộ nhớ ảo. Dịch vụ cơ sở dữ liệu hiện đại có thể dễ dàng phát triển với nhiều nhu cầu. Với sự chăm sóc chu đáo, bạn có thể phát triển quy mô một Hệ Thống Nhúng Cơ Sở Dữ Liệu thành một Hệ Thống Cơ Sở Dữ Liệu lớn hơn khi cần. Sau này bạn có thể chuyển đổi từ một nguồn mở miễn phí sang hệ thống độc quyền được hỗ trợ tốt và mạnh mẽ hơn.

Một khi bạn hiểu rõ về SQL, viết ứng dụng cơ sở dữ liệu trung tâm sẽ là một việc rất thú vị. Sau khi đã đặt dữ liệu được chuẩn hóa chính xác của mình và cơ sở dữ liệu, thật dễ dàng để trích xuất thông tin một cách hiệu quả với truy vấn SQL mà không cần viết bất cứ đoạn code phức tạp nào. Tương tự vậy, một lệnh đơn SQL có thể đưa ra các thay đổi dữ liệu phức tạp. Với những sự sửa đổi một lần, nó thay đổi cách bạn sắp xếp dữ liệu liên tục, thậm chí bạn không cần phải viết code, chỉ cần kích hoạt trực tiếp giao diện SQL của cơ sở dữ liệu. Sự giống nhau về giao diện cũng cho phép bạn thực hiện với các truy vấn và vượt qua trình chỉnh sửa biên dịch ngôn ngữ lập trình thông thường.

Một lợi ích khác của việc dựa vào code trong một RDBMS sẽ liên quan đến việc xử lý các mối quan hệ giữa các thành phần dữ liệu của bạn. Có thể miêu tả các ràng buộc nhất quán trên dữ liệu của mình bằng cách khai báo, tránh hiện tượng Dangling Pointers trong trường hợp lỡ quên cập nhật dữ liệu của mình. Ví dụ, ta hiểu rằng khi một người dùng bị “ban”, các tin nhắn được gửi bởi người dùng đó cũng sẽ bị loại bỏ.

Bạn cũng có thể tạo các đường dẫn hiệu quả giữa các đối tượng được lưu trữ trong cơ sở dữ liệu bất cứ khi nào mình muốn bằng cách tạo một bản mục lục. Việc đưa ra các lần tái cấu trúc đắt đỏ và mông lung cho vùng class fields là thật sự không cần thiết.

Ngoài ra, viết code cho cơ sở dữ liệu giúp kết nối rất nhiều các ứng dụng đến dữ liệu của bạn một cách an toàn, điều này làm cho việc nâng cấp ứng dụng để sử dụng cùng lúc và đồng thời cũng để việc viết code mỗi phần cho hầu hết các ứng dụng sử dụng ngôn ngữ và nền tảng thích hợp được dễ dàng hơn. Giả sử bạn có thể viết back — end cho một ứng dụng chạy trên nền web bằng Java, một vài bản kiểm tra bằng ngôn ngữ Ruby và một giao diện đẹp mắt bằng Processing. Cuối cùng, hãy nhớ rằng RDBMS sẽ hoạt động tốt để tối ưu hóa các lệnh SQL của bạn, cho phép bạn tập trung vào chức năng của các ứng dụng hơn là vào điều chỉnh thuật toán. Các hệ thống cơ sở dữ liệu cao cấp sẽ tận dụng lợi thế của bộ xử lý đa lõõi, và khi công nghệ được cải thiện, hiệu suất ứng dụng của bạn cũng vậy.