TẠO VIEW, TRIGGE R, STORE PROCEDURE VÀ FUNCTION

Một phần của tài liệu Đồ án tốt nghiệp xây dựng chương trình thi trắc nghiệm bằng VB NET (Trang 66)

FUNCTION

View là phương tiện cho phép ta lưu một câu truy vấn thành một đối tượng trong CSDL . Sau khi tạo xong ta cĩ thể làm việc với view tương tự như với Table. Tuy nhiên view chỉ là một khung nhìn, dữ liệu thực sự chỉ chứa trong table mà thơi. Các View (bảng nhìn ) cho phép bạn chia ngang hoặc chia dọc thơng tin từ một hoặc nhiều bảng trong một CSDL .

1.1 Tạo View : Cú pháp :

CREATE VIEW View_name [(colunm1] [,…])] AS Select statement

1.2 Xĩa View :

DROP VIEW View_Name [, …] 1.3 Điều chỉnhView :

ALTER VIEW View_name [(column] [, …])] AS Select_statement

2. Làm việc với các thủ tục lưu trữ hệ thống :

Các thủ tục lưu trữ hệ thống là các tập lệnh T-SQL chạy nhanh được lưu trữ trong một CSDL của SQL Server . Các thủ tục lưu trữ hệ thống cĩ rất nhiều lợi ích như :

+ Sau khi nĩ thực hiện , lược đồ của thủ tục được lưu trữ trong vùng đệm cĩ thủ tục .

+ Bạn cĩ thể sử dụng thủ tục lưu trữ hệ thống để đĩng gĩi các quy tắc nghiệp vụ + Hiệu quả thực hiện được nâng lên cho tất cả các thủ tục lưu trữ hệ thống và thậm chí nhiều hơn so với các thủ tục lưu trữ hệ thống được chạy nhiều hơn một lần là do kế hoạch truy vấn được lưu trong vùng đệm thủ tục .

+ Với các thủ tục lưu trữ hệ thống , bạn cĩ thể truyền đối số vào và nhận dữ liệu trả về .

+ Các thủ tục lưu trữ hệ thống cĩ thể được thiết lập để chạy tự động .

+ Các thủ tục lưu trữ hệ thống cĩ thể được sử dụng để trích xuất hoặc hiệu chỉnh dữ liệu .

+ Các thủ tục lưu trữ hệ thống được gọi một cách rõ ràng . Khơng giống như trigger , các thủ tục lưu trữ hệ thống phải được gọi bởi ứng dụng , script , batch , tác vụ của bạn .

Cú pháp :

CREATE PROC[ EDURE ] procedore_name {;number} [{@parameter data_type} [ VARYING] [ = default] [ OUTPUT ]] [, …n ]

[WITH { RECOMPILE | ENCRYTION | RECOMPILE ,ENCRYPTION} ]

[ FOR REPLICATION] AS sql_statement [… n] 3. Làm việc với Trigger :

Trigger là một loại thủ tục lưu trữ đặc biệt tự động thực hiện khi bạn cố hiệu chỉnh dữ liệu mà được thiết kế là được bảo vệ . Các Trigger bảo đảm tồn vẹn dữ liệu bằng cách bảo vệ các sự thay đổi khơng nhất quán và khơng được phép .

Bạn cĩ thể sử dụng các trigger để thực hiện các quy tắc nghiệp vụ phức tạp hơn là bạn cĩ thể làm với các ràng buộc .Các trigger khơng cĩ thơng số và khơng thể được thực thi rõ ràng . Bạn cĩ thể lồng các trigger tới 32 cấp .

Về mặc hiệu quả , các trigger cĩ tổng phí tương đối thấp vì hầu hết thời gian thực hiện của trigger là được sử dụng cho việc tham chiếu các bảng khác .

Cú pháp :

CREATE TRIGGER [ower.] trigger_name ON [ower.] table_name | view_name

[ FOR . . ALTER | INSTEAD OF | INSERT | UPDATE | DELETE

[ WITH ENCRYPTION] AS sql_statement

4. Làm việc với các hàm do người dùng định nghĩa :

Một tính năng mạnh của SQL Server 2000 là hàm do người dùng định nghĩa (UDF) . Bạn cĩ thể tạo một UDF để trả về một giá trị vơ hướng (một giá trị đơn) hoặc một bảng .

4.1 Các hàm vơ hướng :

Hầu hết các hàm khơng phức tạp để tạo và làm việc với các hàm vơ hướng .

Cú pháp : (adsbygoogle = window.adsbygoogle || []).push({});

([{@parameter_name scalar_parameter_data_type [= default]} [ … , n]])

RETURN scalar_returnt_data_type

[WITH ENCRYPTION | SCHEMABINDING] [ AS ] RETUNR [ ( ] select_statement [ ) ]

4.2 Các hàm Inline Table – Value :

So với hai hàm của bảng , hàm inline table – value đơn giản hơn : Cú pháp :

CREATE FUNCTION [owner_name.]function_name ([{@parameter_name scalar_parameter_data_type [= default]} [ … , n]])

RETURN TABLE

[WITH ENCRYPTION | SCHEMABINDING] [ AS ] RETUNR [ ( ] select_statement [ ) ]

4.3 Các hàm Multistatement Table – Value :

Bạn sử dụng các hàm multistatement table – Value để trả về một bảng

Cú pháp :

CREATE FUNCTION [owner_name.]function_name ([{@parameter_name scalar_parameter_data_type [= default]} [ … , n]])

RETURN @return_variable TABLE Table_type_definition [WITH ENCRYPTION | SCHEMABINDING] [ AS ]

BEGIN

Function_body

Return [ ( ]select_statement[ ) ] END

PHẦN II. PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT CHƯƠNG TRÌNH

I. PHÂN TÍCH ĐỀ TÀI :

1. Đặt tả sơ lược hệ thống xây dựng chương trình thi trắc nghiệm :

Hiện nay , hình thức thi trắc nghiệm đã được Bộ Giáo Dục và đào tạo khuyến khích đưa vào sử dụng trong các trường , lớp . Tổ chức các cuộc thi trắc nghiệm như thế rất cần thiết để đánh giá đúng khả năng và kiến thức của học viên .

Hệ thống này sẽ tạo ra cơng cụ cho Giáo Viên soạn câu hỏi trắc nghiệm và cơng cụ hổ trợ Giáo Viên soạn đề thi . Sinh Viên sẽ thi trực tiếp trên máy Client và hệ thống sẽ tự chấm điểm . Điểm thi sẽ được hệ thống cơng bố liền hoặc được cơng bố sau . Giáo Vụ sẽ lên danh sách sinh viên dự thi của các mơn thi và qui định bộ đề thi của sinh viên lấy từ ngân hàng đề thi . Nếu Giáo Vụ khơng qui định bộ đề thi thì sinh viên sẽ thi trực tiếp từ ngân hàng đề . Sinh Viên đến dự thi đúng lịch thi , và thi trực tiếp trên máy tính Client . Sau khi thi xong hệ thống sẽ tính tốn điểm thi , cập nhật điểm thi và bài làm của sinh viên vào cơ sở dữ liệu trên máy . Để đảm bảo tính cơng bằng của cuộc thi , các đề thi của sinh viên đều được hệ thống hốn đổi ngẫu nhiên vị trí các câu hỏi và câu trả lời của đề thi đĩ .

2. Phân tích hệ thống Thi Trắc Nghiệm bằng Rational Rose : 2.1 Xây dựng Use_Case Diagram :

a. Nhận diện các actor và các trường hợp sử dụng :

Qua đặt tả hệ thống ở trên ta xác định các actor sau tác động đến hệ thống :

Giáo Viên , Sinh Viên , Giáo Vụ , Người quản lý thơng số hệ thống

b. Sơ đồ Use_Case diagram cho từng actor :

2.2 Xây dựng Class Diagram :

Hệ thống này dễ dàng nhận thấy những đối tượng : Sinh viên , Giáo viên , GiáoViênDạy , Lớp , Mơn ,KỳThi , CâuHỏi ,

CâuTrảLời ,ĐềThi ,Câu Hỏi Đề Thi , BộĐềRaThi ,Câu Trả Lời Đề Thi , DSSVDựThi , CâuHỏiBàiLàm , CâuTrảLờiBàiLàm , GiáoViênCoiThi , Users , Groups . Ngồi ra cịn cĩ các đối tượng tạo ra cửa sổ giao tiếp với các Actor cĩ stereotype là

<<boundary>> : (adsbygoogle = window.adsbygoogle || []).push({});

+ Lớp LoginForm tạo cửa sổ để Actor truy cập theo quyền của mình .

+ Lớp MainFormtạo cửa sổ Menu chính .

+ Lớp DanhMụcMơnHọc Form tạo cửa sổ để Actor xem danh mục mơn học

+ Lớp QuảnLýDanhMụcMơnHọc Form tạo cửa sổ để Actor chỉnh sửa mơn học

+ Lớp DanhMụcLớpHọcFormtạo cửa sổ để Actor xem danh mục lớp .

+ Lớp QuảnLýDanhMụcLớpHọcForm tạo cửa sổ để Actor chỉnh sửa lớp học .

+ Lớp DanhSáchSinhViênForm tạo cửa sổ để Actor xem danh sách SinhViên

+ Lớp QuảnLýDanhSáchSinhViênForm tạo cửa sổ để Actor chỉnh sửa DSSV

+ Lớp DanhSáchGiáoViênForm tạo cửa sổ để Actor xem DSGV + Lớp QuảnLýDanhSáchGiáoViênForm tạo cửa sổ để Actor chỉnh sửa GiáoViên

+ Lớp QuảnLýMơnDạyGiáoViênForm tạo cửa sổ để Actor chỉnh sửa Mơn của GV

+ Lớp DanhMụcCâuHỏiForm tạo cửa sổ để Actor xem danh mục câu hỏi

+ Lớp QuảnLýDanhMụcCâuHỏiForm tạo cửa sổ để Actor chỉnh sửa câu hỏi

+ Lớp DanhMụcĐềThiForm tạo cửa sổ để Actor xem danh mục đề thi

+ Lớp QuảnLýDanhMụcĐềThiForm tạo cửa sổ để Actor chỉnh sửa đề thi

+ Lớp TạoĐềThiForm tạo cửa sổ để Actor tạo đề thi .

+ Lớp DanhMụcKỳThiForm tạo cửa sổ để Actor xem danh mục kỳ thi

+ Lớp QuảnLýDanhMụcKỳThiForm tạo cửa sổ để Actor chỉnh sửa kỳ thi

+ Lớp DanhSáchSinhViênDựThiForm tạo cửa sổ để Actor xem DSSV dự thi

+ Lớp QuảnLýDanhSáchSinhViênDựThiForm tạo cửa sổ để Actor chỉnh sửa DSSV dự thi

+ Lớp DanhMụcBộĐềThiForm tạo cửa sổ để Actor xem danh mục bộ đề thi

+ Lớp QuảnLýDanhMụcBộĐềThiForm tạo cửa sổ để Actor chỉnh sửa bộ đề thi

+ Lớp DanhSáchGiáoViênCoiThiForm tạo cửa sổ để Actor xem DSGV coi thi

+ Lớp QuảnLýDanhSáchGiáoViênCoiThiForm tạo cửa sổ để Actor chỉnh sửa DSGV coi thi

+ Lớp KếtQuảThiForm tạo cửa sổ để Actor xem kết quả thi + Lớp BàiLàmSinhViênForm tạo cửa sổ để Actor xem bài làm sinh viên

+ Lớp ĐổiMậtKhẩuForm tạo cửa sổ để Actor đổi mật khẩu

+ Lớp QuảnLýThơngSốForm tạo cửa sổ để Actor chỉnh sửa thơng số hệ thống

+ Lớp LịchThiForm tạo cửa sổ để Actor xem lịch thi + Lớp ThiForm tạo cửa sổ để Actor làm bài thi .

+ Lớp ĐăngKýThiForm tạo cửa sổ để Actor đăng ký dự thi

Ngồi ra cịn xuất hiện lớp Database cĩ stereotype là << interface >> cĩ chức năng giao tiếp với cơ sở dữ liệu để thực hiện các tác vụ cập nhật dữ liệu

b. Class Diagram: (adsbygoogle = window.adsbygoogle || []).push({});

 Nhận diện các mối quan hệ giữa các lớp:

Quan hệ giữa các lớp giao diện với lớp Database là dependency . Sử dụng các stereotype <<call>> giữa LoginForm với các lớp giao diện khác . Trong khi quan hệ dependency giữa chúng cĩ tereo là <<instantiate>> . Ta tạo ra 2 packge là :

* Packge Interface để quản lý tất cả các giao diện giao tiếp với người dùng gồm hai class diagram chính là :

+ Class diagram QuảnLýDữLiệu gồm tất cả các giao diện cĩ liên quan đến cơ sở dữ liệu và chứa các lớp : Login Form , Main From , Danh Mục Mơn Học Form , Quản Lý Danh Mục Mơn Học Form , Danh Mục Lớp Học Form , Quản Ly ùDanh Mục Lớp Học Form , Danh Sách Sinh Viên Form , Quản Lý Danh Sách Sinh Viên Form , Danh Sách Giáo Viên Form , Quản Lý Danh Sách Giáo Viên Form , Quản Lý Mơn Dạy Giáo Viên Form , Danh Mục Câu Hỏi Form , Quản Lý Danh Mục Câu Hỏi Form , Danh Mục Đề Thi Form , Quản Lý Danh Mục Đề Thi Form , Tạo Đề Thi Form , Danh Mục Kỳ Thi Form , Quản Lý Danh Mục Kỳ Thi Form , Danh Sách Sinh Viên Dự Thi Form , Quản Lý Danh Sách Sinh Viên Dự Thi Form , Danh Mục Bộ Đề Thi Form , Quản Lý Danh Mục Bộ Đề Thi Form , Danh Sách Giáo Viên Coi Thi Form , Quản Lý Danh Sách Giáo Viên Coi Thi Form , Bài Làm Sinh Viên Form , Quản Lý Thơng Số Form

+ Class diagram Thi gồm các giao diện cho Sinh Viên thi và chứa các lớp :

ĐổiMậtKhẩuForm , KếtQuảThiForm , LịchThiForm , ThiForm , ĐăngKýThiForm * Packge Data gồm : SinhViên,GiáoViên,GiáoViênDạy,Lớp,Mơn,KỳThi,Câu Hỏi,CâuTrảLời,ĐềThi,CâuHỏiĐềThi,BộĐềRaThi,CâuTrảLờiĐềTh i,DSSVDự Thi,CâuHỏiBàiLàm,CâuTrảLờiBàiLàm,GiáoViênCoiThi,Users,Gr oups .

 Sơ đồ class diagram :

+ Sơ đồ Class diagram của package Data :

+ Sơ đồ Class diagram của Quản Lý Dữ Liệu trong package Interface :

+ Sơ đồ Class diagram Sinh Viên thi trong package Interface : 2.3 Xây dựng Sequence Diagram :

a. Các Sequence Diagram của GiáoVụ :

 Xét UseCase QuảnLýBộĐềThi:

Giáo vụ đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo vụ sẽ chọn form QuảnLýBộĐềThi. Trong Form QuảnLýBộĐềThi Giáo Vụ sẽ chọn Kỳ Thi , Mơn Thi , Giáo Viên ra đề thi. Hệ thống load các đề thi lên form.Giáo Vụ sẽ chọn các đề thi ra thi . Giáo Vụ hồn thành việc chọn thì hệ thống sẽ lưu lại các đề thi vừa mới chọn vào Bộ đề thi trong cơ sở dữ liệu .

+ Sequence Diagram QuảnLýBộĐềThi:

Giáo vụ đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo vụ sẽ chọn form QuảnLýDSSVDự Thi . Giáo vụ sẽ chọn Mơn , chọn kỳ thi , nhập ngày giờ và chọn các sinh viên dự thi . Hệ thống sẽ thêm danh sách Sinh Viên dự thi vào cơ sở dữ liệu.

+ Sequence Diagram QuảnLýDSSVDựThi :

 Xét UseCase ThêmSV:

Giáo vụ đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo vụ sẽ chọn form QuảnLýDanhSách SinhViên . Giáo vụ sẽ nhập mã số sinh viên , họ , tên , phái , địa chỉ, Ngày sinh , username , password và chọn lớp của sinh viên . Hệ thống sẽ thêm SV vào CSDL.

+ Sequence Diagram ThêmSV :

 Xét UseCase SửaThơngTinSV:

Giáo vụ đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo vụ sẽ chọn form Quản Lý Sinh Viên . Giáo vụ chọn Sinh Viên cần sửa và nhập lại thơng tin SV gồm : Mã Số Sinh Viên , Họ , Tên , Phái , Địa Chỉ, Ngày inh , username , password và chọn lớp của sinh viên Hệ thống sẽ cập nhật lại Sinh Viên này vào cơ sở dữ liệu.

+ Sequence Diagram SửaThơngTinSV

Giáo vụ đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo vụ sẽ chọn form QuảnLýDSGVCoiThi . Giáo vụ sẽ chọn kỳ thi và chọn các Giáo Viên coi thi . Hệ thống sẽ thêm danh sách Giáo Viên coi thi vào cơ sở dữ liệu.

+ Sequence Diagram QuảnLýDSGVCoiThi b. Các Sequence Diagram của GiáoViên :

 Xét UseCase ĐổiMậtKhẩu:

Giáo Viên đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo Viên sẽ chọn form ĐổiMậtKhẩu

Giáo viên nhập mật khẩu mới . Hệ thống sẽ cập nhật lại Giáo Viên này vào cơ sở dữ liệu.

+ Sequence Diagram ĐổiMậtKhẩu :

 Xét UseCase ThêmCâuHỏi:

Giáo Viên đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo Viên sẽ chọn form Quản Lý Danh Mục Câu Hỏi.Giáo Viên chọn Mơn , hệ thống sẽ kiểm tra mơn này Giáo Viên cĩ dạy khơng . Nếu cĩ Giáo Viên sẽ nhập thơng tin Câu hỏi . Hệ thống sẽ thêm Câu Hỏi vào cơ sở dữ liệu . (adsbygoogle = window.adsbygoogle || []).push({});

+ Sequence Diagram ThêmCâuHỏi :

 Xét UseCase Xĩa Câu Hỏi :

Giáo Viên đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng

nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo Viên sẽ chọn form Quản Lý Câu Hỏi . Giáo viên sẽ chọn câu hỏi cần xĩa . Hệ thống sẽ kiểm tra cho xĩa khơng , và thơng báo cho Giáo viên . Nếu hệ thốâng cho phép và Giáo viên đồng ý thì hệ thống sẽ xĩa Câu Hỏi này trong CSDL . + Sequence Diagram Xĩa Câu Hỏi :

 Xét UseCase ThêmĐềThi

Giáo Viên đăng nhập vào hệ thống bằng username và password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form Mainenu sẽ được kích hoạt , từ form này Giáo Viên sẽ chọn form ThêmĐềThi Giáo viên sẽ chọn Mơn và nhập thơng tin đề thi . Hệ thống sẽ phát sinh đề theo yêu cầu của Giáo Viên và sau đĩ thêm Đề Thi này vào cơ sở dữ liệu .

+ Sequence Diagram ThêmĐềThi

c. Các Sequence Diagram của SinhViên :

 Xét UseCase Thi :

Sinh Viên đăng nhập vào hệ thống bằng username và

password của mình . Hệ thống sẽ kiểm tra trong cơ sở dữ liệu việc đăng nhập cĩ hợp lệ khơng và nếu hợp lệ form MainMenu sẽ được kích hoạt , từ form này Sinh Viên sẽ chọn form Đăng Ký Thi. Sinh viên chọn mơn , chọn kỳ thi . Hệ thống sẽ kiểm tra xem Sinh Viên này cĩ được thi hay khơng . Nếu được thì hệ thống sẽ kích hoạt From thi .Sau khi hồn tất bài thi , hệ thống sẽ tính điểm và lưu bài thi vào cơ sở dữ liệu.

+ Sequence Diagram Thi :

3. Chọn mơ hình cài đặt về cơ sở dữ liệu :

Cĩ hai phương pháp lựa chọn : Dữ liệu tập trung và dữ liệu phân tán . Ta chọn phương pháp cơ sở dữ liệu tập trung vì : + Khối lượng dữ liệu khơng lớn

+ Số lượng thí sinh và giáo viên chủ yếu tập trung trong phạm vi nhà trường .

+ Quản lý đào tạo tại nước ta vẫn là hình thức tập trung tại một cơ sở chính . Nếu cĩ nhiều cơ sở thường thì chỉ trong bán kính nhỏ .

II. THIẾT KẾ CHƯƠNG TRÌNH

SQL Server 2000 thích hợp để làm DBMS cho chương trình này vì :

+ Cơ sở dữ liệu ở đây trung bình .

+ SQL Server 2000 cĩ thể chạy trong các hệ điều hành Windows NT 4.0 (từ Srevice Pack 5 trở đi) , Windows 2000 , Windows 98 hoặc Windows Me và cĩ thể sử dụng với hệ điều hành Windows CE .

+ SQL Server của Microsoft là một phương tiện cơ sở dữ liệu Client/Server .

1. Từ điển dữ liệu :

SINHVIENID Mã Sinh Viên MASINHVIEN Mã số Sinh Viên

LOPID Mã Lớp

HO Họ TEN Tên

PHAI Phái

NGAYSINH Ngày Sinh

DIACHI Địa Chỉ MALOP Mã Số Lớp TENLOP Tên Lớp

MONID Mã Mơn

MAMON Mã số mơn TENMON Tên mơn (adsbygoogle = window.adsbygoogle || []).push({});

SODVHT Số đơn vị học tập KYTHIID Mã kỳ thi

MAKYTHI Mã số kỳ thi

Một phần của tài liệu Đồ án tốt nghiệp xây dựng chương trình thi trắc nghiệm bằng VB NET (Trang 66)