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

Mô hình trình quan sát trong Oracle

Thường nên tránh triển khai một mẫu Observer từ cơ sở dữ liệu.

Tại sao? Nó dựa trên công nghệ độc quyền của nhà cung cấp (không phải tiêu chuẩn), thúc đẩy việc khóa và hỗ trợ nhà cung cấp cơ sở dữ liệu rủi ro, và gây ra một chút cồng kềnh. Từ góc độ doanh nghiệp, nếu không được thực hiện một cách có kiểm soát, nó có thể giống như "skunkworks" - thực hiện theo một cách khác thường hành vi thường được bao phủ bởi các mẫu và công cụ ứng dụng và tích hợp. Nếu được triển khai ở cấp độ chi tiết, nó có thể dẫn đến kết hợp chặt chẽ với những thay đổi dữ liệu nhỏ với lượng lớn quá trình giao tiếp và xử lý không được bảo vệ, ảnh hưởng đến hiệu suất. Một bánh răng phụ trong máy có thể là một điểm đột phá bổ sung - nó có thể nhạy cảm với O / S, mạng và cấu hình bảo mật hoặc có thể có lỗ hổng bảo mật trong công nghệ của nhà cung cấp.

Nếu bạn đang quan sát dữ liệu giao dịch do ứng dụng của mình quản lý:

  • triển khai mẫu Người quan sát trong ứng dụng của bạn. Ví dụ. Trong Java, các thông số kỹ thuật của CDI và javabeans hỗ trợ điều này trực tiếp và thiết kế tùy chỉnh OO theo cuốn sách Gang Of Four là một giải pháp hoàn hảo.
  • tùy chọn gửi tin nhắn đến các ứng dụng khác. Bộ lọc / bộ chặn, tin nhắn MDB, sự kiện CDI và dịch vụ web cũng hữu ích cho việc thông báo.

Nếu người dùng đang trực tiếp sửa đổi dữ liệu chính trong cơ sở dữ liệu thì:

  • cung cấp một trang quản trị riêng trong ứng dụng của bạn để kiểm soát việc làm mới dữ liệu chính HOẶC
  • cung cấp một ứng dụng quản lý dữ liệu chính riêng biệt và gửi tin nhắn đến các ứng dụng phụ thuộc HOẶC
  • (cách tiếp cận tốt nhất) quản lý các chỉnh sửa dữ liệu chính về chất lượng (đánh giá, kiểm tra, v.v.) và thời gian (coi như thay đổi mã), quảng bá thông qua các môi trường, triển khai và làm mới dữ liệu / khởi động lại ứng dụng đến một kho được quản lý

Nếu bạn đang quan sát dữ liệu giao dịch được quản lý bởi một ứng dụng khác (tích hợp cơ sở dữ liệu được chia sẻ) HOẶC bạn sử dụng tích hợp cấp dữ liệu như ETL để cung cấp cho ứng dụng của bạn dữ liệu:

  • cố gắng để các thực thể dữ liệu chỉ được viết bởi một ứng dụng (chỉ được đọc bởi những người khác)
  • bảng điều khiển dàn dựng cuộc thăm dò / ETL để hiểu những gì / khi các thay đổi xảy ra HOẶC
  • sử dụng tiện ích mở rộng độc quyền cấp JDBC / ODBC để thông báo hoặc thăm dò ý kiến, cũng như được đề cập trong câu trả lời HOẶC của Alex Poole
  • cấu trúc lại các hoạt động dữ liệu chồng chéo từ 2 ứng dụng thành một dịch vụ SOA dùng chung có thể tránh yêu cầu quan sát hoặc nâng nó từ hoạt động dữ liệu lên thông báo SOA / ứng dụng cấp cao hơn
  • sử dụng ESB hoặc bộ điều hợp cơ sở dữ liệu để gọi ứng dụng của bạn để thông báo hoặc điểm cuối WS để truyền dữ liệu hàng loạt (ví dụ:Apache Camel, Apache ServiceMix, Mule ESB, Openadaptor)
  • tránh sử dụng cơ sở hạ tầng mở rộng cơ sở dữ liệu như đường ống hoặc xếp hàng nâng cao

Nếu bạn sử dụng tính năng nhắn tin (gửi hoặc nhận), hãy làm như vậy từ (các) ứng dụng của bạn. Nhắn tin từ DB là một chút phản vật chất. Phương án cuối cùng, có thể sử dụng trình kích hoạt gọi các dịch vụ web ( http://www.oracle.com/technetwork/developer-tools/jdev/dbcalloutws-howto-084195.html ). Tốt nhất để kích hoạt một công việc và yêu cầu công việc gọi đến dịch vụ web bên ngoài giao dịch.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách chèn một chuỗi dài vào kiểu dữ liệu CLOB trong Oracle

  2. Cách thả bảng trong oracle

  3. Oracle không phân biệt giữa null và chuỗi rỗng?

  4. AUTONOMOUS_TRANSACTION

  5. Làm cách nào để lấy dấu thời gian này ở định dạng tôi muốn, Oracle SQL