Cấu trúc chương trình PL/SQL

Một phần của tài liệu Xây dựng hệ thống bán hàng tại công ty VINDA bằng hệ quản trị cơ sở dữ liệu Oracle (Trang 31 - 36)

II.2 CÁC THÀNH PHN CA MT KHI PL/SQL. Bt k mt khi PL/SQL nào cũng cĩ ba thành phn: Phn Khai báo biến. Phn thc thi . Phn x lý exception. VD: Declare

So NUMBER;/* Khai báo biến*/

Begin /*Phn thc thi*/ If (so> 3) Then DBMS_OUTPUT.PUT_LINE(‘Hello, World’); Else RAISE bad_data; End If; Exceptions /*X lý exception*/

When bad_data Then

DBMS_PUTLINE(‘Error condition’); End;

II.3 CÁC KIU D LIU

NUMBER: chứa bất kỳ số nào.

CHAR( size), VARCHAR2(size): dùng để lưu trữ các chuỗi ký tự số.

kiểu CHAR thêm các khoảng trắng vào lưu trữ đủ chiều dài.

DATE: dùng để lưu trữ ngày.

LONG: Lưu trữ các Text lớn, đến 2 gigabyte chiều dài.

LONG RAW: dùng lưu trữ những khối dữ liệu lớn ở khuơn dạng nhị phân.

RAW: Lưu trữ những khối dữ liệu nhỏ hơn khuơn dạng nhị phân.

MLSLABEL: Sử dụng trong Oracle Trusted.

ROWID: sử dụng để lưu trữ khuơn dạng đặc biệt của ROWID trong cơ sở dữ liệu.

BOOLEAN: Lưu trữ giá trị True/false.

TABLE/RECORD: Các bảng cĩ thể sử dụng để lưu các giá trị tương đương

với một dãy, các record lưu các biến cĩ kiểu dữ liệu composite.

II.4. ĐIU KHIN LUNG X LÝ PL/SQL. 1. Các vịng lp: Declare … begin exec get_it; A:=fcnt(5) End; Các khối PL/SQL

Loop-exit: Là vịng lặp đơn giản nhất trong PL/SQL. Từ khố loop định nghĩa bắt đầu của khối mã lệnh sẽ được lặp lại, end loop chỉ định kết thúc vịng lặp.Từ khố exit chỉ định thốt khỏi vịng lặp. VD: Declare My_leg NUMBER:=0; My_hypotenuse NUMBER:=0; BEGIN LOOP My_leg:=my_leg+1; Execute find_hypotenuse(my_leg,my_leg,my_hypotenuse); If my_leg=25 Then EXIT; END IF; END LOOP; END;

Vịng lp While-Loop:tương đương loop-exit.

Vd: Decclare So1 NUMBER:=0; So 2 NUMBER:=0; Kq NUMBER:=0; BEGIN

While ( So1<10) and (So 2<20) Loop

Kq:=So1+So2; End Loop; END; Vịng lp For-loop VD: Declare So1 NUMBER:=0; BEGIN

For So1 IN 1..25 Loop

Execute Tinh(So1,So1); End Loop;

END;

2. LP TRÌNH VI CON TR( CURSOR).

Cĩ hai loại : Cursor ngầm và Cursor tường minh.

Cursor tường minh được đặt tên bỡi nhà phát triển ứng dụng. Nĩ chính là một lệnh select được đặt tên. Bất kỳ lệnh nào cũng cĩ thể sử dụng trong một cursor tường minh bằng cách sử dụng cú pháp.

Cursor cursor_name is.

1) X LÝ EXCEPTION.

Ba loại Exception trong PL/SQL là:

Predefined Exceptions: Để tiện ích việc xử lý lỗi trong PL/SQL, Oracle đã thiết kế một số Exception xây dựng sẵn tức là các predefined exception.

Những exception này được sử dụng để xử lý những tình huống chung cĩ thể xảy ra trong cơ sở dữ liệu.

User- defined Exceptions:Ngồi các Predefined Exception cĩ thể tạo ra các User defined Exception để quản lý các tình huống xuất hiện trong mã lệnh. Khơng như các predefined exception xảy ra ngầm khi điều kiện lỗi tương ứng phát sinh, một user defined exception cần cĩ mã lệnh tường minh trong PL/SQL. để sinh ra. Cần cĩ mã lệnh trong ba phần của một khối PL/SQL . Các phần mã lệnh yêu cầu được mơ tả như sau:

Khai báo exception: Trong phần khai báo của khối PL/SQL, tên exception cần phải khai báo. Tên này sẽ sử dụng để yêu cầu exception trong phần thực thi nếu các điều kiện của exception xảy ra.

Kim tra exception: Trong phần thực thi của một khối PL/SQL, cần cĩ mã lệnh kiểm tra tường minh các điều kiện lỗi user-defined để gọi exception nếu điều kiện được thỏa.

X lý Exception: Trong phần exception handler của khối PL/SQL, cần cĩ một mệnh đề đặc biệt when gọi tên exception và mã lệnh cần thực hiện nếu exception xảy ra.

2) EXCEPTION_INIT PRAGMA.

Lệnh pragma cho phép nhà phát triển ứng dụng khai báo một lỗi được đánh số kết hợp với một exception được đặt tên trong khối. Việc dùng này cho phép dùng mã lệnh xử lý các lỗi chưa được xử lý rõ ràng.

4. CHỈĐỊNH CÁC EXCEPTION CHUNG(COMMON EXCEPTION).

Một số predefined exception:

invalid_cursor: Xảy ra khi đĩng một cursor khơng mở.

cursor_already_open: Xảy ra khi mở một cursor chưa đĩng.

dup_val_on_index:Xâm phạm ràng buộc unique hay primary key.

no_data_found: Khơng cĩ hàng nào được chọn hay thay đổi bởi tác vụ SQL.

too_many_rows: Nhận được hơn một hàng bỡi một subquery một hàng hay trong một lệnh SQL mà Oracle mong đợi một hàng.

zero_divide: Chia cho khơng.

rowtype_mismatch: Các kiểu dữ liệu của record mà dữ liệu từ cursor được gán khơng tương thích.

invalid_number: Một chuỗi các ký số được tham trỏ như một số.

5. MÃ HỐ TRÌNH X LÝ LI.

Mỗi user-defined exception trong phần khai báo và thực thi của một khối PL/SQL nên cĩ một exception handler kết hợp viết cho nĩ. Cách tốt nhất để xử lý một exception là gọi tên nĩ rõ ràng khi sử dụng mệnh đề when trong khối exception của chương trình PL/SQL. Exception handler cĩ lẽ là một thành tựu lớn nhất đạt được bằng cách sử dụng PL/SQL để viết các store procedure trong Oracle. Tính linh hoạt và dễ dàng giúp đơn giãn hố việc phát triển những chương trình lớn

CHƯƠNG IV: PHƯƠNG PHÁP LUN PHÂN TÍCH THIT K H

THNG.

Phương pháp phân tích cĩ cấu trúc,trãi qua thời gian đã chứng tỏ được tính kinh điển của nĩ. Nĩ là phương pháp dung dị, khơng cầu kỳ như một số phương pháp khác, dễ áp dụng, nhưng lại rất hữu hiệu. Ngày nay nĩ chưa lạc hậu, mà vẫn cịn phát huy tác dụng tốt. Bằng chứng là một hệ thống lớn và hiện đại như ORACLE vẫn tiếp sử dụng nĩ.

I.1 Phương pháp phân tích h thng v chc năng.

Đĩ là phương pháp SA(Structured Analysis) do De Macro và những những

người khác như (Yourdon, Constatine…) đưa ra năm 70 nhưng vẫn cịn phát huy tác dụng cho đến ngày nay. Nĩ vẫn là nền tảng của những phần mềm trợ giúp phân tích , thiết kế nổi tiếng như Designer 2000 của ORACLE. Cơng cụ chính là biểu đồ luồng dữ liệu.

I.1.1 Biểu đồ phân cp chc năng.

Là một loại biểu đồ diễn tả sự phân rã dần dần các chức năng từ đại thể đến

chi tiết. Mỗi nút trong biểu đồ là một chức năng, và quan hệ duy nhất giữa các chức năng, diển tả bỡi các cung nối liền các nút, là quan hệ bao hàm. Như vậy biểu đồ phân cấp chức năng là một cấu trúc cây.

Đặc đim ca biu đồ phân cp chc năng là:

Cho một cách nhìn khái quát ,dễ hiểu, từ đại thể đến chi tiết về các chức

năng, nhiệm vụ cần thực hiện.

Dễ thành lập, bằng cách phân rã dần các chức năng từ trên xuống.

Cĩ tính chất tĩnh, bởi chúng chỉ cho thấy các chức năng mà khơng cho thấy

trình tự xử lý.

Thiếu vắng sự trao đổi thơng tin giữa các chức năng.

Vì những đặc điểm kể trên mà biểu đồ phân cấp chức năng thường được sử dụng làm mơ hình chức năng trong bước đầu phân tích, hoặc cho các hệ thống đơn giãn. Nếu hệ thống là phức tạp thì mơ hình chức năng dưới dạng biểu đồ phân cấp chức năng là quá sơ lược và các thiếu sĩt nêu trên trong hai đặc điểm cuối ở trên là khơng thể châm chước được. Lúc đĩ người dùng biểu đồ luồng dữ liệu thay cho biểu đồ phân cấp chức năng.

I.1.2 Biu đồ lung d liu.

Biểu đồ luồng dữ liệu(BLD) là một loại biểu đồ nhằm mục đích diển tả một quá trình xử lý thơng tin với các yêu cầu sau:

Sự diễn tả là ở mức logic, nghĩa là nhằm trả lời câu hỏi “Làm gì”, mà bỏ

qua câu hỏi “Làm thế nào?”.

Chỉ rõ các chức năng con phải thực hiện để hồn tất quá trình xử lý cần mơ

tả.

Chỉ rõ các thơng tin được chuyển giao giữa các chức năng đĩ, và qua đĩ phần nào thấy được trình tự thực hiện của chúng.

(1) Chc năng: Là một quá trình biến đổi dữ liệu( thay đổi giá trị, cấu trúc, vị trí của một dữ liệu, hoặc từ một số dữ liệu đã cho, tạo ra một dữ liệu mới). Biu din: Bởi hình trịn hoặc ovan bên trong cĩ tên chức năng.

Tên chức năng.

Tên chức năng phải là động từ, cĩ thêm bổ ngữ nếu cần, cho phép hiểu vắn tắt chức năng làm gì.

(2) Các lung d liu.

Luồng dữ liệu là một tuyến truyền dẫn thơng tin vào hay ra một chức năng nào đĩ.

Biu din: Một luồng dữ liệu được vẽ trong một BLD dưới dạng một mũi tên, trên đĩ cĩ viết tên của luồng dữ liệu.

Tên luồng dữ liệu là danh từ, kèm theo tính ngữ nếu cần, cho phép hiểu vắn tắt nội dung dữ liệu được chuyển giao.

(3) Kho d liu.

Một kho dữ liệu là một dữ liệu đơn hay cĩ cấu trúc được lưu lại, để cĩ thể truy cập nhiều lần về sau.

Biu din: Một kho dữ liệu được vẽ trong BLD dưới dạng hai đoạn thẳng nằm ngang, kẹp giữa tên của kho dữ liệu.

(4) Các đối tác.

Một đối tác ( hay tác nhân ngồi, hay điểm nút) là một thực thể ngồi hệ thống, cĩ trao đổi thơng tin với hệ thống.

Biểu diễn: Đối tác trong biểu đồ luồng dữ liệu vẽ bằng hình chữ nhật, bên trong cĩ tên đối tác.

(5) Tác nhân trong

Một tác nhân trong là một chức năng hay 1 hệ con của hệ thống, được mơ tả ở một trang khác của mơ hình, nhưng cĩ trao đổi thơng tin với các phần tử thuộc trang hiện tại của mơ hình. Như vậy tác nhân trong xuất hiện trong biểu đồ chỉ để làm nhiệm vụ tham chiếu.

Biểu diễn: Tác nhân trong biểu đồ luồng dữ liệu được vẽ dưới dạng một hình chữ nhật thiếu cạnh trên, trong đĩ viết tên tác nhân trong ( chức năng hay hệ thống con).

Tên tác nhân trong phải là động từ, kèm theo bổ ngữ nếu cần.

Một phần của tài liệu Xây dựng hệ thống bán hàng tại công ty VINDA bằng hệ quản trị cơ sở dữ liệu Oracle (Trang 31 - 36)

Tải bản đầy đủ (PDF)

(83 trang)