Mục lục:
Video: Bài 1 Giới thiệu về Oracle và một số tài liệu tham khảo 2025
PL / SQL là ngôn ngữ để sử dụng khi viết mã nằm trong cơ sở dữ liệu. Trong bài viết sau đây, bạn sẽ thấy các tình huống khác nhau trong đó bạn sẽ thấy PL / SQL hữu ích.
Sử dụng trigger cơ sở dữ liệu
Kích hoạt là một sự kiện trong DBMS có thể gây ra một số mã để thực hiện tự động. Có bốn loại trình kích hoạt cơ sở dữ liệu:
- Trình kích hoạt cấp độ bảng có thể bắt đầu hoạt động trước hoặc sau sự kiện INSERT, UPDATE hoặc DELETE. Các thông tin này thường được sử dụng để theo dõi thông tin lịch sử và thay đổi cơ sở dữ liệu, để đồng bộ hóa dữ liệu dự phòng, hoặc để tăng cường an ninh bằng cách ngăn ngừa các hoạt động nhất định xảy ra.
- Trình kích hoạt mức mức xem rất hữu ích. Một view là một câu lệnh SQL được lưu trữ mà các nhà phát triển có thể truy vấn như thể nó là một bảng cơ sở dữ liệu chính nó. Bằng cách đặt các trình kích hoạt INSTEAD OF trên chế độ xem, các lệnh INSERT, MODIFY và DELETE có thể được áp dụng cho chế độ xem bất kể sự phức tạp của nó, bởi vì trình tự INSTEAD OF xác định xem có thể làm gì với chế độ xem.
- Các trình kích hoạt mức cơ sở dữ liệu có thể được kích hoạt khi khởi động và tắt máy. Ví dụ, khi cơ sở dữ liệu bắt đầu, bạn có thể muốn kiểm tra tính khả dụng của các cơ sở dữ liệu khác hoặc các dịch vụ Web. Trước khi tắt máy cơ sở dữ liệu, bạn có thể muốn thông báo cho cơ sở dữ liệu khác và các dịch vụ Web mà cơ sở dữ liệu đang ngoại tuyến.
- Các trình kích hoạt cấp độ phiên có thể được sử dụng để lưu trữ thông tin cụ thể. Ví dụ: khi người dùng đăng nhập hoặc tắt, bạn có thể muốn thực thi mã chứa các sở thích của người dùng và nạp chúng vào bộ nhớ để truy cập nhanh. Khi phiên đóng cửa, trình kích hoạt có thể lưu các tuỳ chọn để sử dụng trong tương lai.
Scripting với tốc độ
Khi viết mã, khả năng gõ một phần của mã và thực hiện nó mà không cần lưu nó vào cơ sở dữ liệu là rất hữu ích. Oracle cung cấp khả năng này, được hỗ trợ bởi tất cả các IDE PL / SQL.
Giữ lại phía máy chủ mã
Phần lớn mã PL / SQL được lưu trữ dưới dạng các đơn vị chương trình trong máy chủ. Một ứng dụng điển hình có nhiều dòng mã.
Một số lập trình viên, đặc biệt là các nhà phát triển dựa trên Web làm việc trong J2EE hoặc. NET, cố gắng viết hầu hết các mã của họ trong máy chủ ứng dụng trong Java (cho các nhà phát triển J2EE) hoặc VB. NET (dành cho các nhà phát triển NET). Đây không phải là thực hành tốt. Trong một ứng dụng cơ sở dữ liệu, phần lớn logic được dành cho việc truy xuất và cập nhật thông tin. Nếu mã để hoàn thành nhiệm vụ này nằm trong một máy chủ ứng dụng, nó phải gửi yêu cầu tới cơ sở dữ liệu qua mạng. Sau đó, cơ sở dữ liệu phải xử lý yêu cầu và gửi lại thông tin qua mạng để ứng dụng được xử lý.Bởi vì mạng và máy tính bây giờ rất nhanh, bạn có thể nghĩ rằng điều này sẽ chỉ có phần phân số của một giây. Mặc dù đây là trường hợp cho một yêu cầu duy nhất, nếu một ứng dụng rất phức tạp yêu cầu hàng triệu hoặc thậm chí hàng trăm triệu tương tác với cơ sở dữ liệu, nhân số tương tác thậm chí các phân số của một giây có thể dẫn đến hiệu suất rất kém.
Thậm chí các hoạt động tương đối đơn giản chỉ yêu cầu một vài yêu cầu về cơ sở dữ liệu có thể là vấn đề nếu ứng dụng đang được truy cập bởi hàng trăm, hàng ngàn hoặc hàng chục ngàn người dùng cùng một lúc. Rất khó để xây dựng một ứng dụng chuyên sâu về cơ sở dữ liệu mà không sử dụng mã hóa phía máy chủ hơn là viết toàn bộ mã để chạy trên một máy chủ ứng dụng.
Một trong các lập luận chống lại việc viết mã phía máy chủ là ứng dụng sẽ không di động (không thể di chuyển từ nền tảng này sang nền khác). Tuy nhiên, hầu hết các tổ chức sử dụng Oracle đã sử dụng nó trong một thời gian rất dài (mười năm hoặc nhiều hơn) và không dự định chuyển sang một nền tảng khác. Ngoài ra, phát triển Web hiện đang ở trong một trạng thái thông lượng nhanh. Tổ chức thường xuyên thay đổi giữa. NET, J2EE, và các môi trường khác cho việc phát triển ứng dụng trên nền Web của họ.
Cả hai. Các môi trường NET và J2EE cũng ở trong luồng. Trong môi trường J2EE, tiêu chuẩn công nghiệp cho phát triển Web một năm trước đây là tạo các trang JavaServer (JSP). Hiện tại, chuẩn công nghiệp là làm việc trong môi trường JSP / Struts. Trong năm tới hoặc tương lai, JavaServer Faces (JSFs) có thể sẽ trở thành tiêu chuẩn ngành. Do đó, mã được viết ở tầng trung lưu có nguy cơ cao cần được viết lại trong tương lai.
Mã phía máy chủ chạy nhanh hơn, dễ dàng hơn để duy trì và kiểm tra, và ít nhạy cảm với thay đổi hơn mã được đặt ở tầng giữa. Do đó, tạo ra một phần quan trọng của một ứng dụng trong cơ sở dữ liệu là một cách tiếp cận tốt hơn.
Có một số nơi bạn có thể viết mã mà các ứng dụng của bạn có thể sử dụng:
- Các phần của ứng dụng: Các đơn vị chương trình PL / SQL có thể trả về một tập các giá trị (các hàm) hoặc các thói quen PL / SQL có thể thực hiện các hoạt động cơ sở dữ liệu (thủ tục). Các hàm và thủ tục này có thể được gọi bởi các hàm và thủ tục khác hoặc (trong trường hợp các hàm) được sử dụng trong câu lệnh SQL. Các thủ tục PL / SQL có thể phức tạp và lớn như bạn cần. Một số thói quen phức tạp có thể chứa hàng ngàn dòng mã. Toàn bộ hệ thống có thể chứa hàng triệu dòng mã.
- Mã PL / SQL được nhúng trong khung nhìn: Oracle cho phép bạn nhúng mã vào chế độ xem cơ sở dữ liệu. Mã có thể thực sự được đặt ở một trong hai nơi trong chế độ xem. Trước tiên, bạn có thể đặt các hàm được tạo ra một cách chính xác trả về một giá trị trong phần SELECT của câu lệnh SQL để lấy thông tin bổ sung, có thể hoặc không có thể là một phần của các bảng đang được truy vấn. Bạn cũng có thể nhúng PL / SQL vào các trình kích hoạt INSTEAD OF trên một chế độ xem. Các trình kích hoạt này cho phép bạn thực hiện các thao tác INSERT, UPDATE, và DELETE trên các chế độ xem phức tạp, với PL / SQL lập trình xử lý các thao tác này như thế nào.
- Các thói quen hàng tuần: Các chương trình chạy hàng loạt chạy, xử lý một số lượng lớn hồ sơ cùng một lúc. Tạo hoá đơn cho mọi khách hàng trong hệ thống hoặc kiểm tra biên chế cho toàn bộ tổ chức là ví dụ về các thói quen hàng loạt. Những thói quen thường lớn, phức tạp, và cơ sở dữ liệu chuyên sâu. Loại thủ tục này chắc chắn sẽ được viết bằng PL / SQL.