II. SQL SERVER 2000:
5. Hàm do người dùng định nghĩa (UDFs: User Defined Functions)
− Hàm do người dùng định nghĩa là một đối tượng mới được bổ sung của phiên bản SQL Server 2000.
− Hàm do người dùng định nghĩa mang đầy đủ tính chất của một hàm nhưđa số
các ngôn ngữ lập trình khác nghĩa là một UDFs là một chương trình con đảm trách một xử lý nào đó với đặc tính là sẽ nhận một tham sốđầu vào và trả về một giá trị kết quả xử lý tính toán được dựa trên các tham sốđầu vào đã nhận.
− Cú pháp:
CREATE FUNCTION tên_hàm (danh_sách_tham_số) RETURNS kiểu_DL_trả_về
AS BEGIN
--Các câu lệnh bên trong hàm
RETURN END
Trong đó: kiểu_DL_trả_về có thể là một giá trị kết quảđơn lẻ (như: một chuỗi, giá trị
logic, hay một giá trị kiểu số…) hay trả về một table. − Ví dụ:
CREATE FUNCTION TIMDIEMLONNHAT(@MAMH VARCHAR(6)) RETURNS INT
AS BEGIN
RETURN ( SELECT MAX(DIEM_THI)
FROM THI
WHERE MAMH = @MAMH )
Trần Thị Thanh Trúc – MSSV: 10460117 29 − Triggerlà một dạng đặc biệt của Stored Procedure, tuy nhiên khác với Stored
Procedure, trigger hoàn toàn không có tham số. Trigger được thực hiện tựđộng khi người dùng áp dụng câu lệnh sửa đổi dữ liệu lên một bảng có liên quan đến trigger.
− Trigger được dùng cho các việc sau:
• Kiểm tra ràng buộc toàn vẹn dữ liệu phức tạp.
• Trigger chỉ có thểđược kích hoạt một cách tựđộng bởi một trong các thao tác INSERT, UPDATE, DELETE xảy ra.
• Trigger cũng được dùng để thay thế các constraint trong trường hợp ta muốn việc kiểm tra ràng buộc dữ liệu kèm theo các câu thông báo theo ý muốn người dùng.
− Cú pháp:
CREATE TRIGGER tên_trigger
ON tên_bảng
FOR INSERT, UPDATE, DELETE AS
Các_câu_lệnh
− Ví dụ:
CREATE TRIGGER NgaySinh ON SINH_VIEN
FOR INSERT, UPDATE AS
IF NOT EXISTS ( SELECT * FROM INSERTED
WHERE YEAR(GETDATE()) – NGAY_SINH >= 18)
BEGIN
ROLLBACK TRANSACTION
RAISERROR (“Huy giao dich”, 16, 1) END
III.Microsoft Visual Studio 2005 (C#) 1.Khái quát: 1.Khái quát:
− Microsoft Visual Studio 2005 là một môi trường phát triển rất mạnh. Tất cả các công việc, từ thiết kế CSDL, thiết kế giao diện hay viết mã đều có thể thực hiện trong môi trường phát triển này.
− C# là một ngôn ngữ lập trình mới, được bắt đầu từ C và C++ nhưng thêm vào các
đặc tính mới làm cho ngôn ngữ này dễ sử dụng hơn, nhiều trong số những đặc tính này khá giống với những đặc tính có trong ngôn ngữ Java.
Trần Thị Thanh Trúc – MSSV: 10460117 30 • Đơn giản. • Hiện đại. • Hướng đối tượng. • Mạnh mẽ, mềm dẻo. • Có ít từ khóa. • Hướng module.
• Đặt trọng tâm vào internet, có khả năng thực thi cao cho môi trường .NET
− Ưu điểm:
• Tốc độ phát triển rất nhanh.
• Công cụ lập trình thân thiện, dễ sử dụng cùng với hệ thống thư
viện online MSDN có thểđáp ứng tối đa nhu cầu học hỏi của tất cả mọi người.
− Khuyết điểm:
• Các sản phẩm làm ra từ Visual Studio đều phải phụ thuộc vào nền .NET Framework.
• Visual Studio không phải là mã nguồn mở do đó rất khó tìm thấy một bộ mã nguồn hoàn chỉnh đâu đó trên mạng.
• Ngoài ra còn một khuyết điểm khá phiền phức của Visual Studio là Just In Time Debugger của nó, nó cứđòi debug một sốứng dụng đang chạy khiến cho ứng dụng đó bịđóng ngay lập tức.
2..NET Framework:
− .NET Framework là một platform mới mang tính cách mạng giúp cho việc phát triển các ứng dụng dễ dàng hơn.
− .NET Framework được thiết kếđểđáp ứng các quan điểm sau:
− .NET Framework cung cấp môi trường thực thi cho các ứng dụng, đảm nhận các công việc như:
• Dịch chương trình từđịnh dạng mã Microsoft Intermediate Language (MSIL) sang dạng mã máy.
• Quản lý bộ nhớ các chương trình .NET. • Bẫy lỗi và xử lý lỗi.
• Bảo mật.
− .NET Framework cung cấp một thư viện đầy đủ, bao phủ hầu hết các lĩnh vực như: hệ thống, giao diện, đồ hoạ, toán học, đa phương tiện, mạng, mã hoá và bảo mật.
− .NET Framework bao gồm:
• Năm ngôn ngữ chính thức: C#, VB, Visual C++, Visual J#, và JScript.NET.
Trần Thị Thanh Trúc – MSSV: 10460117 31 phát triển ứng dụng Windows và Web mà các ngôn ngữ có thể
chia sẻ sử dụng.
• Bộ thư viện Framework Class Library (FCL).
− Thành phần quan trọng nhất của .NET Framework là CLR, nó cung cấp môi trường cho ứng dụng thực thi, CLR là một máy ảo tương tự máy ảo Java. CLR kích hoạt đối tượng, thực hiện kiểm tra bảo mật, cấp phát bộ nhớ, thực thi và thu dọn chúng.
3.Biên dịch và Ngôn ngữ trung gian:
− Trong .NET, chương trình không biên dịch thành tập tin thực thi mà biên dịch thành ngôn ngữ trung gian (MSIL: Microsoft Intermediate Language, viết tắt là IL), sau đó được CLR thực thi. Các tập tin IL biên dịch từ C# đồng nhất với các tập tin IL biên dịch từ ngôn ngữ .NET khác.
− Khi biên dịch dự án, mã nguồn C# được chuyển thành tập tin IL lưu trên đĩa. Khi chạy chương trình, IL được biên dịch một lần nữa bằng trình Just In Time (JIT). Kết quả là mã máy và bộ xử lý sẽ thực thi.
− Trình biên dịch JIT chỉ thực hiện khi có yêu cầu. Khi một phương thức được gọi, JIT phân tích IL và sinh ra mã máy có hiệu quả cao, mã này có thể chạy rất nhanh. Trình biên dịch JIT đủ thông minh để nhận ra khi một mã đã được biên dịch, do vậy khi ứng dụng chạy thì việc biên dịch chỉ xảy ra khi cần thiết, tức là chỉ biên dịch mã IL chưa biên dịch ra mã máy. Khi đó một ứng dụng .NET thực hiện, chúng có xu hướng là chạy rất nhanh.
− CLS nghĩa là tất cả các ngôn ngữ .NET đều sinh ra mã IL giống nhau. Các đối tượng được tạo bởi ngôn ngữ nào đó sẽđược truy cập và kế thừa bởi các đối tượng của ngôn ngữ khác. Vì vậy ta có thể tạo một lớp cơ sở trong VB.NET và thừa kế nó từ C#.
4.Kết nối dữ liệu với ADO.NET:
− Trong thực tế có rất nhiều ứng dụng cần tương tác với CSDL, .NET Framework cung cấp một tập các đối tượng cho phép truy cập vào CSDL, tập các đối tượng này
được gọi chung là ADO.NET.
− ADO.NET tương tự như ADO, nhưng điểm khác biệt mấu chốt nhất là
ADO.NET là một kiến trúc dữ liệu rời rạc, không kết nối. Với kiến trúc này, dữ liệu
Trần Thị Thanh Trúc – MSSV: 10460117 32 dòng dữ liệu hay yêu cầu dữ liệu mới.
− Thuận lợi: giảm một lượng lớn truy cập vào CSDL cùng một lúc, tiết kiệm đáng kể tài nguyên bộ nhớ.
− .NET Framework hỗ trợ 2 trình cung cấp dữ liệu là SQL Server .NET Data Provider (dành cho SQL Server 7.0 trở lên) và OLEDB.NET Data Provider (dành cho hệ quản trị CSDL khác) để truy cập vào CSDL.
− Đối tượng quan trọng nhất trong mô hình ADO.NET là Dataset, Dataset được xem như là thể hiện của cả một CSDL con lưu trữ trên vùng nhớ cache của máy người dùng mà không kết nối đến CSDL.
− Đối tượng SqlConnectionđại diện cho một kết nối đến CSDL, đối tượng này có thểđược dùng chung cho các đối tương SqlCommand khác nhau.
− Đối tượng SqlCommand cho phép thực hiện một câu truy vấn trực tiếp (VD: SELECT, INSERT….) hay gọi Stored Procedure từ CSDL.
− Đối tượng SqlDataAdapterđược dùng như chiếc cầu nối trung gian giữa Dataset và DataSource, DataAdapter lấy dữ liệu từ CSDL rồi dùng phương thức Fill() đểđẩy dữ liệu cho Dataset
− Ví dụ: Đoạn mã lệnh dùng để kết nối CSDL và lấy về bảng dữ liệu SINH_VIEN
//tạo chuỗi kết nối đến CSDL “QLY TO CHUC THI TRAC NGHIEM TREN MAY
TINH”
string connectionString = "server = .;Trusted_Connection = yes; database = QLY TO
CHUC THI TRAC NGHIEM TREN MAY TINH;
SqlConnection sqlconnect = new SqlConnection(connectionString); sqlconnect.Open();
SqlCommand sqlCommand = new SqlCommand(); sqlCommand.Connection = sqlconnect;
commandString = "Select * From SIMH_VIEN" sqlCommand.CommandText = commandString;
SqlDataAdapter dataAdapter = new SqlDataAdapter(); DataSet dataset = new DataSet();
dataAdapter.SelectCommand = sqlCommand;
Trần Thị Thanh Trúc – MSSV: 10460117 33
Phần III: PHÂN TÍCH VÀ THIẾT KẾ
I.Phân tích mức ý niệm và mức logic(mức tổ chức):
CÁC MÔ HÌNH XỬ LÝ
Mô Hình: MHXuLy_Quan Ly To Chuc Thi Trac Nghiem Tren May Tinh
Trần Thị Thanh Trúc – MSSV: 10460117 36
A.Các Mô Hình Xử Lý
A.1 Các mô hình con chứa trong Mô hình:
Trần Thị Thanh Trúc – MSSV: 10460117 37
Trần Thị Thanh Trúc – MSSV: 10460117 38
Trần Thị Thanh Trúc – MSSV: 10460117 39
Trần Thị Thanh Trúc – MSSV: 10460117 40
Trần Thị Thanh Trúc – MSSV: 10460117 41
Trần Thị Thanh Trúc – MSSV: 10460117 42
B.Danh sách các đối tượng trong Mô Hình
B.1 Danh sách các đối tượng chung:
B.1.1 Danh sách các tác nhân
Tên Mã Kiểu Phòng Giáo Vụ PHONG_GIAO_VU Tác nhân nội Giảng Viên GIANG_VIEN Tác nhân nội Trung Tâm Khảo Thí TRUNG_TAM_KHAO_THI Tác nhân nội Sinh Viên SINH_VIEN Tác nhân nội Bô Phận Khác BO_PHAN_KHAC Tác nhân nội
B.1.2 Danh sách các sự kiện
Tên Mã Bí danh Kiểu
Yêu cầu ra đề thi YEU_CAU_RA_DE_THI Tác nhân nội Duyệt đề DUYET_DE Tác nhân nội
Đề đã duyệt DE_DA_DUYET Tác nhân nội
Thông báo Giảng Viên ra đề lại
THONG_BAO_GIANG_VIEN_RA_ DE_LAI
Tác nhân nội Hoàn tất, chờ ngày thi HOAN_TAT__CHO_NGAY_THI Tác nhân nội Danh sách Sinh Viên đủ
điều kiện tham gia thi
DANH_SACH_SINH_VIEN_DU_DI EU_KIEN_THAM_GIA_THI
Tác nhân nội Thủ tục thi THU_TUC_THI Tác nhân nội Hoàn tất làm bài HOAN_TAT_LAM_BAI Tác nhân nội Thi xong THI_XONG Tác nhân nội Báo cáo tổng hợp BAO_CAO_TONG_HOP Tác nhân nội Hoàn tất báo cáo HOAN_TAT_BAO_CAO Tác nhân nội Chuẩn bị tổ chức thi lần 2 CHUAN_BI_TO_CHUC_THI_LAN_
2
Tác nhân nội Kết thúc thi KET_THUC_THI Tác nhân nội
B.1.3 Danh sách dữ liệu
Tên Mã Kiểu Sinh viên SINH_VIEN Dữ liệu cấu trúc Môn học MON_HOC Dữ liệu cấu trúc Giảng viên GIANG_VIEN Dữ liệu cấu trúc Lớp LOP Dữ liệu cấu trúc
Đề thi DE_THI Dữ liệu cấu trúc
Câu hỏi CAU_HOI Dữ liệu cấu trúc Khoa KHOA Dữ liệu cấu trúc Học kỳ HOC_KY Dữ liệu cấu trúc Chương CHUONG Dữ liệu cấu trúc Lựa chọn LUA_CHON Dữ liệu cấu trúc Chứa CHUA Dữ liệu cấu trúc Trong TRONG Dữ liệu cấu trúc
Trần Thị Thanh Trúc – MSSV: 10460117 43 Bài thi chi tiết BAI_THI_CHI_TIET Dữ liệu cấu trúc Thi THI Dữ liệu cấu trúc
B.2 Danh sách các đối tượng của Mô Hình Ý Niệm Truyền Thông:
B.2.1 Danh sách dòng
Tên Mã Tác nhân nhận Tác nhân phát 3_Giao đề thi 3_GIAO_DE_THI Phòng Giáo Vụ Giảng Viên 1_Yêu cầu ra đề thi 1_YEU_CAU_RA_
DE_THI
Giảng Viên Phòng Giáo Vụ 2_Ra đề thi 2_RA_DE_THI Giảng Viên Giảng Viên 4_Duyệt đề thi 4_DUYET_DE_THI Phòng Giáo Vụ Phòng Giáo Vụ 5_Chuyển đề thi và
danh sách Sinh Viên dự thi
5_CHUYEN_DE_T HI_VA_DANH_SA CH_SINH_VIEN_D U_THI
Trung Tâm Khảo Thí Phòng Giáo Vụ
8_Thông báo kết quả điểm thi
8_THONG_BAO_K ET_QUA_DIEM_T HI
Sinh Viên Trung Tâm Khảo Thí 6A_Cập nhật đề thi 6A_CAP_NHAT_D
E_THI
Trung Tâm Khảo Thí Trung Tâm Khảo Thí 7_Làm bài thi và
nộp
7_LAM_BAI_THI_ VA_NOP
Trung Tâm Khảo Thí Sinh Viên 9A_Xuất báo cáo
tổng hợp tình hình thi
9A_XUAT_BAO_C AO_TONG_HOP_TI NH_HINH_THI
Bô Phận Khác Trung Tâm Khảo Thí 9B_Xuất báo cáo
tổng hợp tình hình thi
9B_XUAT_BAO_C AO_TONG_HOP_TI NH_HINH_THI
Phòng Giáo Vụ Trung Tâm Khảo Thí 6B_Cập nhật danh
sách sinh viên dự thi
6B_CAP_NHAT_D ANH_SACH_SINH_ VIEN_DU_THI
Trung Tâm Khảo Thí Trung Tâm Khảo Thí
B.3 Danh sách các đối tượng của Mô Hình Ý Niệm Xử Lý:
B.3.1 Danh sách các tác vụ
Tên Mã Đồng bộ hóa
Giảng Viên ra đề GIANG_VIEN_RA_DE Xem xét duyệt đề XEM_XET_DUYET_DE Cập nhật dữ liệu CAP_NHAT_DU_LIEU và Tiến trình làm bài thi TIEN_TRINH_LAM_BAI_THI
Xem điểm XEM_DIEM Báo cáo điểm Sinh Viên BAO_CAO_DIEM_SINH_VIEN Chuyển các báo cáo CHUYEN_CAC_BAO_CAO
Trần Thị Thanh Trúc – MSSV: 10460117 44
B.3.2 Danh sách các hành động
Tên Mã Danh sách các tác vụ -Chuyển cho các bộ phận CHUYEN_CHO_CAC_BO_PHAN Chuyển các báo cáo -In báo cáo _IN_BAO_CAO Chuyển các báo cáo -Báo cáo danh sách điểm
Sinh Viên
_BAO_CAO_DANH_SACH_DIE M_SINH_VIEN
Báo cáo điểm Sinh Viên -Báo cáo tỉ lệ điểm _BAO_CAO_TI_LE_DIEM Báo cáo điểm Sinh Viên -Tổng hợp các bài thi _TONG_HOP_CAC_BAI_THI Báo cáo điểm Sinh Viên -Xuất báo cáo điểm cho
sinh viên
_XUAT_BAO_CAO_DIEM_CHO _SINH_VIEN
Xem điểm
-Làm bài thi _LAM_BAI_THI Tiến trình làm bài thi -Đăng nhập _DANG_NHAP Tiến trình làm bài thi -Cập nhật danh sách sinh viên _CAP_NHAT_DANH_SACH_SIN H_VIEN Cập nhật dữ liệu -Cập nhật đề _CAP_NHAT_DE Cập nhật dữ liệu
-Xem xét đề _XEM_XET_DE Xem xét duyệt đề -Chuuyển cho phòng
Giáo Vụ
_CHUUYEN_CHO_PHONG_GIA O_VU
Giảng Viên ra đề -Giảng Viên ra đề _GIANG_VIEN_RA_DE Giảng Viên ra đề
B.4 Danh sách các đối tượng của Mô Hình Tổ Chức Xử Lý:
B.4.1 Danh sách các pha
Tên Mã Đồng bộ hóa Kiểu Giảng viên ra đề GIANG_VIEN_RA_DE Thủ công Xem xét duyệt đề XEM_XET_DUYET_DE Thủ công
Cập nhật dữ liệu CAP_NHAT_DU_LIEU và Tương tác giữa người và máy
Tiến trình làm bài thi
TIEN_TRINH_LAM_BAI _THI
Tương tác giữa người và máy
Xem điểm XEM_DIEM Tự động Báo cáo điểm sinh
viên
BAO_CAO_DIEM_SINH _VIEN
Tự động
Chuyển báo cáo CHUYEN_BAO_CAO Tương tác giữa người và máy
B.4.2 Danh sách các công việc
Tên Mã Danh sách các pha Kiểu -Giảng viên ra đề _GIANG_VIEN_RA_DE Giảng viên ra đề Thủ công -Chuyển cho phòng
giáo vụ
_CHUYEN_CHO_PHONG_ GIAO_VU
Giảng viên ra đề Thủ công -Xem xét đề _XEM_XET_DE Xem xét duyệt đề Thủ công -Cập nhật đề _CAP_NHAT_DE Cập nhật dữ liệu Thủ công -Cập nhật danh sách _CAP_NHAT_DANH_SAC Cập nhật dữ liệu Thủ công
Trần Thị Thanh Trúc – MSSV: 10460117 45 sinh viên H_SINH_VIEN
-Đăng nhập _DANG_NHAP Tiến trình làm bài thi Thủ công -Lảm bài thi _LAM_BAI_THI Tiến trình làm bài thi Thủ công -Xuất báo cáo điểm
cho sinh viên
_XUAT_BAO_CAO_DIEM _CHO_SINH_VIEN
Xem điểm Thủ công -Tổng hợp các bài
thi
_TONG_HOP_CAC_BAI_T HI
Báo cáo điểm sinh viên
Thủ công -Báo cáo tỉ lệ điểm _BAO_CAO_TI_LE_DIEM Báo cáo điểm sinh
viên
Thủ công -Báo cáo danh sách
điểm sinh viên
_BAO_CAO_DANH_SACH _DIEM_SINH_VIEN
Báo cáo điểm sinh viên
Thủ công -In báo cáo _IN_BAO_CAO Chuyển báo cáo Thủ công -Chuyển cho các bộ
phận khác
_CHUYEN_CHO_CAC_BO _PHAN_KHAC
Chuyển báo cáo Thủ công
C.Các tác vụ
C.1 Các tác vụ trong mô hình
C.1.1 Tác vụ Báo cáo điểm Sinh Viên
Tên Báo cáo điểm Sinh Viên
Mã BAO_CAO_DIEM_SINH_VIEN Lời bình luận
C.1.1.1 Danh sách các hành động của Tác vụ -Tổng hợp các bài thi
Tên Mã Danh sách các tác vụ -Tổng hợp các bài thi _TONG_HOP_CAC_BAI_THI Báo cáo điểm Sinh Viên -Báo cáo tỉ lệ điểm _BAO_CAO_TI_LE_DIEM Báo cáo điểm Sinh Viên -Báo cáo danh sách điểm
Sinh Viên
_BAO_CAO_DANH_SACH_DI EM_SINH_VIEN
Báo cáo điểm Sinh Viên
C.1.1.2 Danh sách các mô hình chứa Tác vụ Báo cáo điểm Sinh Viên
Tên Mã Mô Hình Ý Niệm Xử Lý_2 MO_HINH_Y_NIEM_XU_LY_2
C.1.1.3 Danh sách các truy cập đến dữ liệu
Tên Thêm Đọc Xóa Sửa
Môn học FALSE TRUE FALSE FALSE Sinh viên FALSE TRUE FALSE FALSE Thi FALSE TRUE FALSE FALSE
C.1.2 Tác vụ Chuyển các báo cáo
Tên Chuyển các báo cáo
Trần Thị Thanh Trúc – MSSV: 10460117 46 Lời bình luận
C.1.2.1 Danh sách các hành động của Tác vụ -In báo cáo
Tên Mã Danh sách các tác vụ -In báo cáo _IN_BAO_CAO Chuyển các báo cáo -Chuyển cho các bộ phận CHUYEN_CHO_CAC_BO_PHAN Chuyển các báo cáo
C.1.2.2 Danh sách các mô hình chứa Tác vụ Chuyển các báo cáo
Tên Mã Mô Hình Ý Niệm Xử Lý_2 MO_HINH_Y_NIEM_XU_LY_2
C.1.2.3 Danh sách các quy tắc phát hành
Tên Mã Bí danh Utilisé
Không có sinh viên rớt KHONG_CO_SINH_VIEN_ROT FALSE Có Sinh Viên rớt CO_SINH_VIEN_ROT FALSE
C.1.2.4 Quy tắc phát hành - Không có sinh viên rớt
Tên Không có sinh viên rớt
Mã KHONG_CO_SINH_VIEN_ROT Lời bình luận
C.1.2.5 Quy tắc phát hành - Có Sinh Viên rớt
Tên Có Sinh Viên rớt
Mã CO_SINH_VIEN_ROT Lời bình luận
C.1.2.6 Danh sách các truy cập đến dữ liệu
Tên Thêm Đọc Xóa Sửa
Thi FALSE TRUE FALSE FALSE
C.1.3 Tác vụ Cập nhật dữ liệu Tên Cập nhật dữ liệu Mã CAP_NHAT_DU_LIEU Lời bình luận C.1.3.1 Danh sách các hành động của Tác vụ -Cập nhật đề Tên Mã Danh sách các tác vụ -Cập nhật đề _CAP_NHAT_DE Cập nhật dữ liệu