Đây là nơi mà cuộc họp của các bộ óc, có nghĩa là, tâm trí của Nhà phát triển (DV) và DBA, chắc chắn phải xảy ra. Làm việc với Business Logic (BL) và lưu trữ như vậy trong cơ sở dữ liệu có thể có tác động có thể tôn vinh hoặc làm kinh hoàng việc thực hiện nó.
Đối với một số sản phẩm RDBMS, tồn tại các thư viện / công cụ / API ưu việt cho Cơ sở hạ tầng đối tượng và logic nghiệp vụ, người ta có thể nhanh chóng tìm hiểu và sử dụng trong các ứng dụng của mình. Đối với RDBMS khác, không có thư viện / công cụ / API nào tồn tại.
Trước đây, các ứng dụng máy chủ của khách hàng đã biến cầu nối thành BL thông qua Thủ tục lưu trữ (SP). Đối với các sản phẩm như Oracle và SQL Server, việc này đã được thực hiện sớm. Khi các cơ sở dữ liệu nguồn mở như PostgreSQL và MySQL ra đời, những người sử dụng chúng có nguy cơ phá vỡ nền tảng mới với các thủ tục được lưu trữ trong BL. PostgreSQL trưởng thành rất nhanh trong việc này, vì không chỉ các thủ tục lưu trữ được thực hiện mà cả khả năng tạo ngôn ngữ của khách hàng cũng xuất hiện. MySQL về cơ bản đã ngừng phát triển trong thế giới của các thủ tục được lưu trữ và xuất hiện dưới dạng một ngôn ngữ bị loại bỏ với nhiều hạn chế. Do đó, khi nói đến BL, bạn hoàn toàn chịu trách nhiệm về MySQL và ngôn ngữ Thủ tục lưu trữ của nó.
Thực sự chỉ còn một câu hỏi: Bất kể RDBMS, BL nên cư trú toàn bộ hay một phần trong cơ sở dữ liệu?
Hãy nghĩ về Nhà phát triển. Khi mọi thứ trở nên tồi tệ trong một ứng dụng, quá trình gỡ lỗi sẽ có Nhà phát triển nhảy vào và ra khỏi cơ sở dữ liệu để theo dõi các dữ liệu có thể có hoặc không chính xác không liên tục. Nó giống như mã hóa một ứng dụng C ++ và gọi mã Trình biên dịch ở giữa. Bạn phải chuyển từ mã nguồn, các lớp và cấu trúc sang các ngắt, thanh ghi và offset và TRỞ LẠI !!! Điều này lấy gỡ lỗi đến mức đó.
Các nhà phát triển có thể tạo ra một phương thức tốc độ cao để thực thi BL kết hợp với các cấu hình ngôn ngữ (cờ trình biên dịch cho C ++, các cài đặt khác nhau cho PHP / Python, v.v.) thông qua các đối tượng kinh doanh ngồi trong bộ nhớ thay vì trong cơ sở dữ liệu. Một số người đã cố gắng kết nối hệ tư tưởng này để mã runnng nhanh hơn vào cơ sở dữ liệu bằng cách viết các thư viện trong đó gỡ lỗi Thủ tục lưu trữ và Triggers được tích hợp tốt trong Cơ sở dữ liệu và dường như có thể sử dụng được.
Do đó, Nhà phát triển được thử thách phát triển, gỡ lỗi và duy trì mã nguồn và BL trong hai ngôn ngữ.
Bây giờ nghĩ về DBA. DBA muốn giữ Cơ sở dữ liệu tinh gọn và có nghĩa là càng nhiều càng tốt trong lĩnh vực thủ tục được lưu trữ. DBA có thể xem BL như một cái gì đó bên ngoài Cơ sở dữ liệu. Tuy nhiên, khi SQL gọi dữ liệu cần thiết cho BL, thì SQL cần phải gọn và có nghĩa.
Bây giờ, cho cuộc họp của tâm trí !!!
Mã nhà phát triển SP và sử dụng các phương thức lặp. DBA nhìn vào SP. DBA xác định rằng một câu lệnh SQL có thể thay thế các phương thức lặp được viết bởi Nhà phát triển. Nhà phát triển thấy rằng câu lệnh SQL được DBA đề xuất yêu cầu gọi mã hoặc SQL liên quan đến BL khác không tuân theo các kế hoạch thực hiện thông thường của câu lệnh SQL.
Theo cách này, cấu hình, điều chỉnh hiệu suất và mã hóa SP trở thành một chức năng về độ sâu và cường độ dữ liệu của BL để truy xuất dữ liệu. BL càng chuyên sâu và tăng cường dữ liệu, càng nhiều Nhà phát triển và DBA phải ở trên cùng một trang về lượng dữ liệu và sức mạnh xử lý được cung cấp cho Cơ sở dữ liệu.
PHẦN KẾT LUẬN
Cách thức truy xuất dữ liệu phải luôn liên quan đến cả hai trại Nhà phát triển và DBA. Phải luôn luôn phải nhượng bộ về phương thức mã hóa và mô hình truy xuất dữ liệu nào có thể làm việc cùng nhau, cho cả tốc độ và hiệu quả. Nếu việc chuẩn bị dữ liệu cho mã nguồn để xử lý chỉ được thực hiện một lần trước khi mã nhận được dữ liệu, DBA sẽ ra lệnh sử dụng SQL nạc và trung bình. Nếu BL là thứ mà DBA không đồng điệu, thì dây cương sẽ nằm trong tay Nhà phát triển. Đây là lý do tại sao DBA nên nhìn thấy bản thân và một phần của nhóm dự án chứ không phải là một hòn đảo cho chính mình, trong khi Nhà phát triển phải để DBA thực hiện tinh chỉnh SQL nếu điều đó đảm bảo.