Oracle Database 23ai: Tối ưu hóa phát triển với JSON Relational Duality Views

Oracle Database 23ai: Tối ưu hóa phát triển với JSON Relational Duality Views

Oracle Database 23ai đã mang đến một cuộc cách mạng trong cách thức phát triển ứng dụng thông qua tính năng JSON Relational Duality Views^1_1. Đây là một khả năng đột phá cho phép các nhà phát triển kết hợp được ưu điểm của cả mô hình dữ liệu quan hệ truyền thống và tính linh hoạt của mô hình tài liệu JSON^1_2.

Oracle Database 23ai JSON Relational Duality Views architecture diagram

Oracle Database 23ai JSON Relational Duality Views architecture diagram

Giới thiệu về JSON Relational Duality Views

JSON Relational Duality Views là một tính năng mô hình dữ liệu mới trong Oracle Database 23ai, cho phép dữ liệu được lưu trữ hiệu quả trong các bảng quan hệ nhưng có thể được truy cập như các tài liệu JSON đơn giản^1_1. Tính năng này giải quyết vấn đề lâu đời về sự không khớp giữa đối tượng và quan hệ (object-relational mismatch), cho phép các ứng dụng đồng thời xử lý cùng một dữ liệu nền tảng như tài liệu JSON hoặc bảng quan hệ, tùy thuộc vào trường hợp sử dụng^1_3.

Duality Views tách biệt định dạng truy cập khỏi định dạng lưu trữ cho dữ liệu cư trú trong cơ sở dữ liệu^1_3. Khả năng này cho phép các ứng dụng xử lý dữ liệu một cách linh hoạt như tài liệu JSON hoặc bảng quan hệ tùy thuộc vào trường hợp sử dụng cụ thể^1_1.

Vấn đề mà JSON Relational Duality Views giải quyết

Trong quá trình phát triển ứng dụng hiện đại, các nhà phát triển thường gặp phải thách thức khi phải lựa chọn giữa mô hình dữ liệu quan hệ và mô hình tài liệu^1_4. Mỗi mô hình đều có những ưu điểm và hạn chế riêng:

Thách thức với mô hình quan hệ

Mô hình quan hệ cung cấp hiệu quả và tính phức tạp của SQL, nhưng các nhà phát triển cần phải ánh xạ dữ liệu bảng sang các đối tượng ứng dụng^1_5. Những thay đổi trong ứng dụng có thể yêu cầu tái định nghĩa bảng, điều này có thể cản trở việc phát triển linh hoạt^1_5.

Thách thức với mô hình tài liệu

Mô hình tài liệu cho phép biểu diễn trực tiếp các đối tượng ứng dụng, nắm bắt mối quan hệ phân cấp giữa các thành phần của chúng^1_5. Tuy nhiên, các ứng dụng cần định nghĩa và xử lý mối quan hệ giữa các tài liệu, đặc biệt là việc chia sẻ giá trị giữa các tài liệu thay vì nhân bản chúng^1_4.

Developer working with Oracle Database 23ai JSON Relational Duality

Developer working with Oracle Database 23ai JSON Relational Duality

Kiến trúc và nguyên lý hoạt động

JSON Relational Duality Views hoạt động dựa trên nguyên lý rằng dữ liệu được lưu trữ trong các bảng quan hệ chuẩn hóa nhưng có thể được truy cập thông qua các API tài liệu^1_1. Các tài liệu được tạo ra theo yêu cầu chứ không được lưu trữ dưới dạng như vậy, cho phép dữ liệu có cả tính nhị nguyên khái niệm và hoạt động^1_6.

Dữ liệu được tổ chức cả theo quan hệ và phân cấp, cho phép tạo ra các duality views khác nhau dựa trên dữ liệu được lưu trữ trong một hoặc nhiều bảng giống nhau^1_6. Điều này cung cấp các phân cấp JSON khác nhau trên cùng một dữ liệu được chia sẻ^1_5.

Cú pháp tạo Duality Views

Việc tạo JSON Relational Duality Views sử dụng cú pháp tương tự như GraphQL, rất trực quan và dễ hiểu^1_7. Cấu trúc của duality view phản ánh cấu trúc của tài liệu JSON mong muốn^1_8.

Ví dụ về cú pháp cơ bản:

CREATE OR REPLACE JSON RELATIONAL DUALITY VIEW department_dv AS
SELECT JSON {
    '_id' : d.deptno,
    'departmentName' : d.dname,
    'location' : d.loc,
    'employees' : [
        SELECT JSON {
            'employeeNumber' : e.empno,
            'employeeName' : e.ename,
            'job' : e.job,
            'salary' : e.sal
        }
        FROM emp e WITH INSERT UPDATE DELETE
        WHERE d.deptno = e.deptno
    ]
}
FROM dept d WITH INSERT UPDATE DELETE;

Ưu điểm của JSON Relational Duality Views

1. Tính thống nhất và linh hoạt

JSON Relational Duality Views thống nhất lợi ích của tính đơn giản của JSON với hiệu quả và sự phức tạp của mô hình quan hệ mà không có bất kỳ sự đánh đổi nào^1_1. Các nhà phát triển có thể tự do kết hợp JSON APIs, REST và SQL chuẩn tùy thuộc vào trường hợp sử dụng của họ^1_3.

2. Phát triển ứng dụng dễ dàng

Duality Views giúp dễ dàng phát triển ứng dụng khi chúng thêm các trường hợp sử dụng mới mà không yêu cầu tạo bản sao mới của dữ liệu^1_1. Tính năng này là database native và độc lập với ngôn ngữ, loại bỏ các hạn chế và tính không hiệu quả của các ORM được gắn kết^1_3.

3. Kiểm soát đồng thời không khóa

Duality Views sử dụng cơ chế kiểm soát đồng thời tối ưu hoặc không khóa, cho phép các nhà phát triển dễ dàng xây dựng các ứng dụng có tính đồng thời cao^1_1. Điều này cho phép đọc và ghi cơ sở dữ liệu nhất quán hoàn toàn mà không cần giữ khóa qua các lần truy cập^1_10.

Visual representation of JSON and relational data integration

Visual representation of JSON and relational data integration

Tính năng Optimistic Concurrency Control

Một trong những tính năng quan trọng nhất của JSON Relational Duality Views là khả năng kiểm soát đồng thời tối ưu ở mức tài liệu^1_10. Tính năng này sử dụng các giá trị ETAG được nhúng trong trường etag, nằm trong đối tượng là giá trị của trường _metadata^1_10.

Cơ chế này hoạt động theo nguyên lý:

  1. Đọc dữ liệu cần được sửa đổi và ghi lại trạng thái không được sửa đổi của dữ liệu
  2. Sửa đổi bản sao cục bộ của dữ liệu
  3. Ghi (lưu trữ) dữ liệu đã sửa đổi chỉ khi trạng thái liên tục hiện tại giống với trạng thái đã được ghi lại^1_10

Tích hợp với các công nghệ hiện đại

Hỗ trợ MongoDB APIs

Oracle Database 23ai cung cấp cho người dùng JSON sự lựa chọn truy cập dữ liệu JSON bằng cách sử dụng kết nối SQL truyền thống hoặc các API tương thích với MongoDB^1_11. Việc chuyển đổi qua lại giữa các API tài liệu JSON và SQL giờ đây trở nên liền mạch hơn^1_11.

REST API tự động

Với ORDS phiên bản 24.1 trở lên, các nhà phát triển có thể REST Enable một Duality View trong 23ai và sẽ nhận được một bộ REST APIs hoàn chỉnh để làm việc với dữ liệu của họ^1_12. Chỉ cần REST Enable DV và bạn đã sẵn sàng sử dụng^1_12.

Tích hợp với Spring Boot

Oracle Database 23ai cho phép sử dụng JSON Relational Duality Views với Spring Boot thông qua dependency oracle-spring-boot-starter-json-collections^1_13. Điều này giúp ánh xạ tài liệu JSON trực tiếp sang các đối tượng Java, làm cho quá trình phát triển trở nên đơn giản và hiệu quả hơn^1_13.

Cải thiện năng suất phát triển

JSON Relational Duality Views mang lại những cải thiện đáng kể về năng suất phát triển:

1. Đơn giản hóa truy cập dữ liệu

Các nhà phát triển có thể truy cập duality view bằng SQL thông qua SQL Plus hoặc SQL Developer, hoặc sử dụng các document APIs như mongosh^1_8. Điều này mang lại sự đơn giản cực kỳ cho các nhà phát triển – họ chỉ cần lấy một tài liệu từ view^1_8.

2. Quản lý thay đổi dễ dàng

Khi cần thay đổi, các nhà phát triển chỉ cần thực hiện thay đổi trong tài liệu và đưa tài liệu trở lại view^1_8. Cơ sở dữ liệu sẽ tự động phát hiện các thay đổi trong tài liệu mới và sửa đổi các hàng nền tảng trong các bảng quan hệ^1_8.

3. Loại bỏ ORM phức tạp

Duality Views loại bỏ nhu cầu viết các ánh xạ quan hệ đối tượng phức tạp bên ngoài cơ sở dữ liệu^1_8. Các nhà phát triển ứng dụng giờ đây có thể ánh xạ trực tiếp các đối tượng lập trình sang duality views^1_8.

Hiệu suất và khả năng mở rộng

JSON Relational Duality Views mang lại hiệu suất cơ sở dữ liệu và khả năng mở rộng tốt hơn cho các workload hỗn hợp, quan hệ và bán cấu trúc^1_8. Vì dữ liệu được lưu trữ trong các bảng quan hệ chuẩn hóa, nó vẫn có thể tận dụng tất cả các tối ưu hóa hiệu suất của Oracle Database^1_14.

Các tính năng hiệu suất bao gồm:

  • Tận dụng các chỉ mục hiện có trên bảng nền tảng
  • Hỗ trợ Multi-value JSON indexes không yêu cầu chỉ định loại dữ liệu trước^1_11
  • Khả năng thực hiện các truy vấn SQL phức tạp cho báo cáo và phân tích^1_8

Tích hợp với các tính năng Oracle Database 23ai khác

JSON Relational Duality Views có thể được kết hợp với tất cả các tính năng hội tụ của Oracle Database 23ai, bao gồm AI Vector Search, Graph và Spatial^1_1. Điều này cho phép các nhà phát triển xây dựng các ứng dụng phức tạp và hiện đại với khả năng AI tích hợp.

AI Vector Search

Khả năng tích hợp với AI Vector Search cho phép thực hiện các truy vấn tương tự semantic trên dữ liệu JSON, mở ra khả năng xây dựng các ứng dụng AI/ML tiên tiến^1_15.

Graph Database Support

Oracle Database 23ai hỗ trợ các tiêu chuẩn công nghiệp cho cơ sở dữ liệu đồ thị, cho phép các nhà phát triển mô hình hóa các mối quan hệ phức tạp hiệu quả hơn^1_16.

Trường hợp sử dụng thực tế

1. Hệ thống quản lý đơn hàng

JSON Relational Duality Views rất phù hợp cho các hệ thống quản lý đơn hàng phức tạp, nơi dữ liệu được lưu trữ trong nhiều bảng quan hệ như customer, product, purchase_order và order_item^1_13. Thông qua duality views, toàn bộ thông tin đơn hàng có thể được truy cập như một tài liệu JSON duy nhất^1_13.

2. Ứng dụng di động và web

Các ứng dụng di động và web thường yêu cầu định dạng dữ liệu JSON linh hoạt, trong khi vẫn cần tận dụng sức mạnh của cơ sở dữ liệu quan hệ cho việc báo cáo và phân tích^1_4. Duality Views cung cấp giải pháp hoàn hảo cho trường hợp này^1_17.

3. API Development

Với khả năng tự động tạo REST endpoints, Duality Views làm cho việc phát triển API trở nên cực kỳ đơn giản^1_12. Các nhà phát triển có thể nhanh chóng tạo ra các API RESTful mà không cần viết mã phức tạp^1_1.

Hướng dẫn triển khai

Bước 1: Chuẩn bị môi trường

Để sử dụng JSON Relational Duality Views, bạn cần Oracle Database 23ai^1_17. Có thể tải xuống Oracle Database 23ai Free từ trang web chính thức của Oracle^1_17.

Bước 2: Tạo bảng quan hệ

Tạo các bảng quan hệ cần thiết với các ràng buộc khóa ngoại phù hợp^1_2. Điều này đảm bảo tính toàn vẹn dữ liệu và mối quan hệ giữa các bảng^1_17.

Bước 3: Định nghĩa Duality View

Sử dụng cú pháp GraphQL-like để định nghĩa cấu trúc JSON mong muốn^1_7. Chỉ định các quyền updatability cho các bảng và trường khác nhau^1_2.

Bước 4: Kiểm tra và tối ưu hóa

Thực hiện các thao tác CRUD trên duality view và kiểm tra hiệu suất^1_18. Sử dụng các công cụ monitoring để đảm bảo hiệu suất tối ưu^1_19.

Kết luận

Oracle Database 23ai’s JSON Relational Duality Views đại diện cho một bước đột phá trong công nghệ cơ sở dữ liệu, mang lại giải pháp thống nhất cho cuộc tranh luận lâu dài giữa mô hình quan hệ và mô hình tài liệu^1_1. Tính năng này không chỉ tăng cường năng suất phát triển mà còn cung cấp tính linh hoạt chưa từng có trong việc truy cập và thao tác dữ liệu^1_20.

Với khả năng kết hợp ưu điểm của cả hai mô hình mà không có sự đánh đổi, JSON Relational Duality Views mở ra những khả năng mới cho việc phát triển ứng dụng hiện đại^1_14. Các nhà phát triển có thể tận dụng sức mạnh của SQL cho các truy vấn phức tạp và báo cáo, đồng thời sử dụng tính linh hoạt của JSON cho việc phát triển ứng dụng nhanh chóng^1_9.

Tính năng này đặc biệt có giá trị trong bối cảnh phát triển ứng dụng AI/ML, nơi khả năng xử lý cả dữ liệu có cấu trúc và bán cấu trúc là rất quan trọng^1_15. Với Oracle Database 23ai, các tổ chức có thể xây dựng các ứng dụng tương lai mà không cần phải lựa chọn giữa hiệu suất và tính linh hoạt^1_16.