Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Các đối tượng Oracle được sử dụng rộng rãi như thế nào?

Đối với người mới bắt đầu, một số chức năng tiêu chuẩn của Oracle sử dụng các Kiểu, ví dụ như XMLDB và Không gian (bao gồm khai báo các cột của kiểu dữ liệu Bảng lồng nhau).

Ngoài ra, nhiều nhà phát triển PL / SQL luôn sử dụng các kiểu để khai báo các tập hợp PL / SQL hoặc các hàm tổng hợp.

Nhưng tôi đồng ý rằng một số nơi sử dụng rộng rãi các Loại và xây dựng các API PL / SQL từ chúng. Có một số lý do giải thích cho điều này.

  1. Oracle đã triển khai Đối tượng rất chậm. Mặc dù chúng đã được giới thiệu trong phiên bản 8.0 nhưng phải đến 9.2 chúng mới hỗ trợ đầy đủ các hàm tạo Thừa kế, Đa hình và do người dùng xác định. Lập trình hướng đối tượng thích hợp là không thể nếu không có các tính năng đó. Chúng tôi không nhận được SUPER() cho đến phiên bản 11g. Ngay cả bây giờ vẫn còn thiếu các tính năng, đáng chú ý nhất là các khai báo riêng tư trong TYPE BODY.
  2. Cú pháp thường khó hiểu hoặc tối nghĩa. Tài liệu này không giúp ích được gì.
  3. Hầu hết những người làm việc với Oracle có xu hướng đến từ trường phái lập trình quan hệ / thủ tục. Điều này có nghĩa là họ có xu hướng không hiểu OOP, hoặc họ không hiểu nó có thể hữu ích ở đâu trong lập trình cơ sở dữ liệu. Ngay cả khi mọi người nghĩ ra một ý tưởng gọn gàng, họ vẫn cảm thấy khó hoặc không thể thực hiện bằng cách sử dụng cú pháp của Oracle.

Điểm cuối cùng là điểm mấu chốt. Chúng ta có thể học cú pháp mới, có thể thuyết phục Oracle hoàn thành bộ tính năng, nhưng nó chỉ đáng giá nếu chúng ta có thể sử dụng các Loại. Điều đó có nghĩa là chúng ta cần những vấn đề có thể được giải quyết bằng cách sử dụng Tính kế thừa và Đa hình.

Tôi đã làm việc trên một hệ thống sử dụng nhiều loại. Đó là một hệ thống kho dữ liệu và hệ thống phụ tải dữ liệu được xây dựng từ các Loại. Lý do cơ bản rất đơn giản:

  • chúng tôi cần áp dụng cùng một mẫu quy tắc nghiệp vụ cho mọi bảng chúng tôi tải, vì vậy quy trình này là chung;
  • mọi bảng đều có phép chiếu riêng, vì vậy các câu lệnh SQL là duy nhất cho mỗi bảng.

Việc triển khai Kiểu là sạch:quy trình chung được xác định trong Kiểu; việc triển khai cho mỗi bảng được xác định trong một Kiểu kế thừa từ Kiểu chung đó. Các loại cụ thể có thể được tạo từ siêu dữ liệu. Tôi đã trình bày về chủ đề này tại UKOUG vài năm trước và tôi đã viết nó chi tiết hơn trên blog của mình. Tìm hiểu thêm.

Nhân tiện, Lý thuyết quan hệ bao gồm khái niệm Miền, là các kiểu dữ liệu do người dùng định nghĩa, bao gồm các ràng buộc, v.v. Không có hương vị nào của RDBMS thực sự hỗ trợ Miền nhưng Triển khai kiểu của Oracle chắc chắn là một bước tiến trên đường đi.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Tiếp tục gặp lỗi với BẬT CẬP NHẬT CASCADE

  2. Không thể chèn hàng loạt vào Oracle DB bằng MyBatis

  3. ORA-29283:thao tác tệp không hợp lệ ORA-06512:tại SYS.UTL_FILE, dòng 536

  4. cx_Oracle:Làm cách nào để nhận từng hàng dưới dạng từ điển?

  5. Trình tự Oracle không tạo ra số liên tục