Các nhà phát triển Google đã phát hành Mangle , một ngôn ngữ lập trình mã nguồn mở mở rộng Datalog cho lập trình cơ sở dữ liệu suy diễn. Dự án này nhằm mục đích làm cho việc truy vấn dữ liệu phức tạp trở nên dễ tiếp cận hơn với các nhà phát triển đồng thời giải quyết một số hạn chế lâu đời của SQL .
Các tính năng chính của Mangle:
- Mở rộng ngôn ngữ lập trình Datalog
- Hỗ trợ tổng hợp dữ liệu, gọi hàm và kiểm tra kiểu tùy chọn
- Quy tắc đệ quy và cấu trúc chương trình
- Có thể biểu diễn quan hệ n-ngôi (không giới hạn ở vị từ nhị phân)
- Được triển khai dưới dạng thư viện Go để dễ dàng tích hợp
- Mã nguồn mở với kho lưu trữ GitHub và tài liệu hướng dẫn
Cộng đồng đặt câu hỏi về nhiều dự án ngôn ngữ truy vấn của Google
Việc phát hành này đã khơi dậy cuộc thảo luận về cách tiếp cận của Google đối với các ngôn ngữ truy vấn, với các thành viên cộng đồng lưu ý rằng đây có vẻ là ngôn ngữ truy vấn dựa trên logic thứ ba xuất hiện từ công ty. Mặc dù Mangle mang tuyên bố từ chối trách nhiệm Đây không phải là sản phẩm được Google hỗ trợ chính thức, các nhà quan sát cho rằng đây có thể là một trường hợp khác của việc nhân viên Google bị yêu cầu mở nguồn công việc của họ dưới danh nghĩa công ty, ngay cả đối với các dự án cá nhân.
Cộng đồng cũng đã rút ra mối liên hệ với các dự án khác của Google như Logica , được tham chiếu trong tài liệu của Mangle . Một số nhà phát triển đang đặt câu hỏi liệu các phòng ban khác nhau trong Google có đang độc lập phát triển các công cụ truy vấn riêng của họ hay không.
Các phần mở rộng Datalog giải quyết nhu cầu phát triển thực tế
Một điểm thảo luận chính tập trung vào lý do tại sao hầu như mọi triển khai Datalog , bao gồm cả Mangle , đều mở rộng ngôn ngữ gốc. Các thành viên cộng đồng lưu ý rằng các triển khai Datalog thuần túy rất hiếm, với Datomic là một trong số ít ví dụ về triển khai tương đối gốc. Mô hình này phản ánh cách các triển khai SQL thường thêm các phần mở rộng riêng để giải quyết các hạn chế thực tế.
Mangle thêm một số tính năng vào Datalog cơ bản, bao gồm tổng hợp, gọi hàm và kiểm tra kiểu tùy chọn. Những phần mở rộng này làm cho ngôn ngữ trở nên thực tế hơn cho việc sử dụng trong thế giới thực, mặc dù chúng hy sinh một số đảm bảo lý thuyết của Datalog như đảm bảo kết thúc.
So sánh các lựa chọn thay thế SQL:
- Mangle: Dựa trên Datalog, tập trung vào lập trình cơ sở dữ liệu suy diễn
- PreQL/Trilogy: Ngôn ngữ chuyển đổi dữ liệu
- Malloy: Ngôn ngữ mô hình hóa ngữ nghĩa cho dữ liệu
- PRQL: Ngôn ngữ truy vấn quan hệ theo pipeline
- EdgeQL: Ngôn ngữ truy vấn đồ thị-quan hệ
Các nhà phát triển tìm kiếm các giải pháp thay thế cho những hạn chế của SQL
Việc phát hành này đã khơi lại các cuộc thảo luận về những thiếu sót của SQL ngoài các vấn đề cú pháp. Phản hồi từ cộng đồng nêu bật các vấn đề với việc thiếu các kiểu đại số của SQL , khả năng kết hợp kém và khó khăn trong việc xử lý dữ liệu phân cấp như cây trong cơ sở dữ liệu quan hệ.
Những thiếu sót của SQL không chỉ là cú pháp và quy ước của TỪ KHÓA VIẾT HOA. Còn có việc thiếu các kiểu đại số, khả năng kết hợp kém, thiếu bất kỳ hệ thống module nhất quán nào.
Mangle gia nhập danh sách ngày càng tăng các giải pháp thay thế cho SQL , bao gồm PreQL/Trilogy , Malloy , PRQL và EdgeQL , mỗi cái đều cố gắng giải quyết các khía cạnh khác nhau của những hạn chế truy vấn cơ sở dữ liệu truyền thống trong khi vẫn bảo tồn các lợi ích của đại số quan hệ.
Dự án được triển khai như một thư viện Go có thể được nhúng vào các ứng dụng, với tài liệu và ví dụ có sẵn trên GitHub . Đối với các nhà phát triển quan tâm đến việc thử nghiệm các khái niệm cơ sở dữ liệu suy diễn, Mangle cung cấp một điểm khởi đầu thực tế vào các phương pháp lập trình dựa trên logic cho quản lý dữ liệu.
Tham khảo: Mangle
