Báo cáo Xây dựng và quản lý ngân hàng đề thi trắc nghiệm trên Web trên mạng theo công nghệ JSP

Sau thời gian thực tập tại trường và khảo sát trên Internet cùng với các tài liệu có liên quan, chúng em đã tiếp thu học hỏi được nhiều kinh nghiệm bổ ích trong công tác từ khởi đầu đến hoàn thành một dự án. Từ đó chương trình của chúng em đã được hoàn thiện với các chức năng chính như sau: - Thêm câu thi mới. - Thi trắc nghiệm. - Xem kết quả thi. - Thêm môn thi mới. Ngoài ra còn có các chức năng dành riêng cho thành viên của trang web như: - Thay đổi thông tin cá nhân. - Xem quá trình thi. - Xem điểm thi. Chương trình còn cài đặt thêm cơ chế đơn thể quản trị dành cho Administrator như: - Cập nhật dữ liệu hệ thống. - Báo biểu. Các hướng phát triển trong tương lai: Chương trình cần hoàn thiện thêm các chức năng như: - Tạo report để đưa ra danh sách sinh viên tuỳ theo yêu cầu của giáo viên. - Thống kê người dùng, dữ liệu có thể in ấn được. Ngoài ra chương trình cần phát triển hệ thống dữ liệu từ câu hỏi của hệ thống là: có 4 lựa chọn trong đó có 1 đáp án đúng phải được mở rộng với các kiểu câu hỏi trắc nghiệm như dạng YES - NO, dạng ghép nối, vv. Hoàn thiện nốt chức năng lưu bài thi của sinh viên.

doc58 trang | Chia sẻ: oanh_nt | Lượt xem: 1490 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Báo cáo Xây dựng và quản lý ngân hàng đề thi trắc nghiệm trên Web trên mạng theo công nghệ JSP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
RL chứa địa chỉ tới file ảnh đó, sau đó dung một số hàm cần thiết để connect và truy xuất file ảnh đó. Điểm nối bật của Networking do java mang lại là tính hữu dụng và để sử dụng, điều này được thể hiện qua package java.net trong các lớp thư viện của java. Các mô hình cơ sở dữ liệu Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm các phần: ¨ Thành phần xử lý ứng dụng (Application Processing Components) ¨ Thành phần phần mềm cơ sở dữ liệu (Database Software Components) ¨ Bản thân cơ sở dữ liệu (The database itself) Thông thường có 5 mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu của hệ thống máy tính Client/Server: ¨ Mô hình cơ sở dữ liệu tập trung (Centralized database model) ¨ Mô hình cơ sở dữ liệu theo kiểu file-server (Client/Server database model) ¨ Mô hình cơ sở dữ liệu phân tán (Distributed database model) 2.1. Mô hình cơ sở dữ liệu tập trung (Centralized database model): Trong mô hình này các thành phần xử lý ứng dụng, phần mềm cơ sở dữ liệu và bản than cơ sở dữ liệu đều ở trên cùng một bộ xử lý. Ví dụ người dung máy tính cá nhân có thể chạy các chương trình ứng dụng có sử dụng phần mềm cơ sở dữ liệu Oracle để truy nhập tới cơ sở dữ liệu nằm trên đĩa cứng của máy tính cá nhân đó. Từ khi các thành phần ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữ liệu cùng nằm trên một máy tính thì ứng dụng đã thích hợp với mô hình tập trung. Hầu hết các công việc xử lý luồng thông tin chính được thực hiện bởi nhiều tổ chức mà vẫn phù hợp với mô hình tập trung. Ví dụ một bộ xử lý mainframe chạy phần mềm cơ sở dữ liệu IMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc ở các bị trí phân tán sự truy cập nhanh chóng tới cơ sở dữ liệu trung tâm. Tuy nhiên trong rất nhiều hệ thống như vậy, cả 3 thành phần của ứng dụng cơ sở dữ liệu đều thực hiện trên cùng một máy mainframe do vậy cấu hình này cũng tương tự mô hình tập trung. 2.2. Mô hình cơ sở dữ liệu theo kiểu file-server (File- server database model) Trong mô hình cơ sở dữ liệu theo kiểu file- server các thành phần ứng dụng và phần mềm cơ sở dữ liệu ở trên cùng một hệ thống máy tính và các file vật lý tạo nên cở sở dữ liệu nằm trên hệ thống máy tính khác. Một cấu hình như vậy thường được dung trong môi trường cục bộ, trong đó một hay nhiều hệ thống máy tính đóng vai trò của server, lưu trữ các file dữ liệu cho hệ thống máy tính khác thâm nhập tới. Trong môi trường file- server, phần mềm mạng được thi hành và làm cho phần mềm ứng dụng cũng như phần mềm cơ sở dữ liệu trên hệ thống của người dung cuối coi các file hoặc cơ sở dữ liệu trên file server thực sự như là trên máy tính của chính họ. Mô hình file server rất giống với mô hình tập trung. Các file cơ sở dự liệu nằm trên máy khác với các thành phần ứng dụng và phần mềm cơ sở dữ liệu; tuy nhiên các thành phần ứng dụng và các phần mềm cơ sở dữ liệu có thể có cùng một thiết kế để vận hành một môi trường tập trung. Thực chất phần mềm mạng đã làm cho phần mềm ứng dụng và phần mềm cơ sở dữ liệu tưởng rằng chúng đang truy xuất cơ sở dữ liệu trong môi trường cục bộ. Một môi trường như vậy có thể phức tạp hơn mô hình tập trung bởi vì phần mềm mạng có thể phải thực hiện cơ chế đồng thời cho phép nhiều người sử dụng cuối có thể truy nhập vào cùng cơ sở dữ liệu. 2.3. Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model): Trong một mô hình khác trong đó một cơ sở dữ liệu ở xa có thể được truy nhập bởi phần mềm cơ sở dữ liệu, được gọi là xử lý dữ liệu từng phần. Với mô hình này, người sử dụng có thể tại một máy tính cá nhân kết nối với hệ thống máy tính ở xa có dữ liệu mong muốn. Người sử dụng sau đó có thể tác động trực tiếp đến phần mềm chạy trên máy ở xa và tạo yêu cầu để lấy dữ liệu từ cơ sở dữ liệu đó. Người sử dụng cũng có thể chuyển dữ liệu từ máy tính ở xa về chính máy tính của mình và vào đĩa cứng và có thể thực hiiên việc sao chép bằng phần mềm cơ sở dữ liệu trên máy cá nhân. Với cách tiếp cận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và làm như thế nào để truy nhập và lấy dữ liệu từ một máy tính ở xa. Phần mềm ứng dụng đi kèm cần phải có trên cả 2 hệ thống máy tính để kiểm soát sự truy cập và chuyển dữ liệu giữa hai hệ thống. Tuy nhiên, phần mềm cơ sở dữ liệu chay trên 2 máy không cần biết rằng việc xử lý cơ sở dữ liệu từ xa đang diễn ra vì người sử dụng tác động tưói chúng một cách độc lập. 2.4. Mô hình cơ sở dữ liệu Client/Server (Client/Server database model): Trong mô hình cơ sở dữ liệu Client/Server, cơ sở dữ liệu nằm trên một máy khác với một máy có thành phần xử lý ứng dụng. Những phần mềm cơ sở dữ liệu được tách ra giữa hệ thống Client chạy các chương trình ứng dụng và hệ thống Server lưu trữ dữ liệu. Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client đưa ra yêu cầu cho phần mềm cơ sở dữ liệu trên máy client, phần mềm này sẽ kết nối với phần mềm cơ sở dữ liệu chạy trên Server. Phần mềm cơ sở dữ liệu trên Server sẽ truy cập vào cơ sở dữ liệu và gửi trả kết quả cho máy Client. Mới nhìn, mô hình cơ sở dữ liệu Client/Server có vẻ giống như mô hình file- server. Với mô hình file- server, thông tin gắn với sự truy cập cơ sở dữ liệu vật lý phải chạy trên toàn mạng. Một thao tác yêu cầu nhiều sự truy cập dữ liệu có thể gây ra tắc nghẽn lưu lượng truyền trên mạng. Giả sử một người dung cuối tạo một query để lấy dữ liệu tổng số, yêu cầu lấy dữ liệu từ 1000 bản ghi, với cách tiếp cận file- server nội dung của tất cả 1000 bản ghi phải đưa lên mạng, vì phần mềm cơ sở dữ liệu chạy trên máy ngưòi sử dụng phải truy cập từng bản ghi để thoả mãn yêu cầu của người sử dụng. Với cách tiếp cận cơ sở dữ liệu Client/Server, chỉ có query khởi động ban đầu và kết quả cuối cùng đưa lên mạng, phần mềm cơ sở dữ liệu chạy trên máy lưu giữ cơ sở dữ liệu sẽ truy nhập các bản ghi cần thiết, xử lý chúng và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng. Trong mô hình cơ sở dũ liệu Client/Server, thường nói đến các phần mềm front- end software và back- end software. Front- end software được chạy trên một máy tính cá nhân hoặc một workstation và đáp ứng yêu cầu đơn lẻ riêng biệt, phần mềm này đóng vai trò của Client trong ứng dụng co sở dữ liệu Client/Server và thực hiện các chức năng hướng tới nhu cầu người dung cuối cùng. * Phần mềm Front- end software được chia thành các loại sau: End user database software: Phần mềm cơ sở dữ liệu này có thể được thực hiện bởi người sử dụng cuối trên hệ thống của họ để truy nhập các cơ sở dữ liệu cục bộ nhỏ cũng như kết nối với các cơ sở dữ liệu lớn hơn trên cơ sở dữ liệu Server. Simple query and reporting software: Phần mềm này được thiết kế để cung cấp các công cụ dễ dung hơn trong việc lấy dữ liệu từ cơ sở dữ liệu và tạo báo cáo đơn giản từ cơ sở dữ liệu đã có. Data analysis software: Phần mềm này cung cấp các hàm vể tìm kiếm, khôi phục, chúng có thể cung cấp các phân tích phức tạp cho người dung. Application development tools: Các công cụ này cung cấp các khả năng về ngôn ngữ mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng các ứng dụng cơ sở dữ liệu của họ. Các công cụ ở đây bao gồm các công cụ về thông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided Software Engineering), chúng tự động tất cả các bước trong quá trình phát triển ứng dụng và sinh ra chương trình cho các ứng dụng cơ sở dữ liệu. Database administration Tools: Các công cụ này cho phép người quản trị cơ sở dữ liệu sử dụng máy tính cá nhân hoặc trạm làm việc để thực hiện việc quản trị cơ sở dữ liệu như định nghĩa các cơ sở dữ liệu, thực hiện lưu trũ hay phục hồi. * Back- end software: Phần mềm này bao gồm phần mềm cơ sở dữ liệu Client/Server và phần mềm mạng chạy trên máy đóng vai trò là Server cơ sở dữ liệu. 2.5. Distributed database model (Mô hình cơ sở dữ liệu phân tán) Cả hai mô hình File- Server và Client/Server đều giả định là dữ liệu nằm trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một máy khác, còn mô hình cơ sở dữ liệu phân tán lại giả định bản thân cơ sở dữ liệu có ở trên nhiều máy khác nhau. Qua các mô hình cơ sở dữ liệu trên, dễ thấy mô hình Client/Server là mô hình phù hợp các yêu cầu đặt ra nhất. Vấn đề ở đây là chúng ta sẽ hiện thực mô hình này bằng ngôn ngữ gì và hiện thực như thế nào. Các ngôn ngữ lập trình có thể xây dựng những giao diện đẹp và thuận tiện thì thường không có cơ sở dữ kiệu tốt đi kèm, và thường hạn chế khả năng khi sử dụng trên mạng diện rộng. Các phần mềm về cơ sở dữ liệu có thể sử dụng mô hình Client/Server thì thường đòi hỏi có tính chuyên nghiệp cao. Và hầu hết các biện pháp này thì đều có nhược điểm là phải có sự cài đặt trên máy đơn trước khi móc nối với Server. Với công nghệ JSP, chúng ta không cần có bất cứ một sự cài đặt nào mà vẫn sử dụng được các tính năng của chương trình (với điều kiện và có 1 trình duyệt Web và máy tính đã được nối mạng). JSP truy xuất cơ sở dữ liệu dựa vào trình truy xuất JPBC theo chuẩn java do tính năng mạng là được cung cấp sẵn nên Java có thể dung trên mạng Internet dễ dàng. Với tính năng độc lập nền, người sử dụng không phải e ngại việc phần mềm không tương thích với hệ điều hành của mình. Đặc biệt là Java có thể kết nối với hầu hết cơ sở dữ liệu chuẩn của các hang phần mềm thông qua JDBC, vì vậy cơ sở dữ liệu của hệ thống có thể xây dựng bằng hệ cơ sở dữ liệu chuẩn, chẳng hạn Oracle để quản lý dữ liệu một cách chặt chẽ (Ở đây chúng ta sẽ dung cơ sở dữ liệu là MS Access trong môi trường Windows 9x). Mô hình quản lý ngân hàng đề thi trắc nghiệm được xây dựng dựa theo mô hình Three- tier như hình II.2.5 Security login Encryption CLIENT Encryption CLIENT Encryption CLIENT Encryption Application Server Hình II.2.5 Three-tier system structure Client: là một chương trình chạy các trang JSP thông qua trình duyệt web để kết nối và gửi các yêu cầu đến server. Server: là một chương trình chạy dưới dạng Application, có nhiệm vụ lắng nghe, phục vụ các yêu cầu từ Client, trả kết quả về cho Client và là cầu nối trung gian tới cơ sở dữ liệu. Database Server: là phần cơ sở dữ liệu của hệ thống dung để lưu trữ tất cả các dữ liệu liên quan đến hệ thống. Ta sẽ sử dụng Access để tạo ra các cơ sở dữ liệu và kết nối với Server. Tất cả các dữ liệu chuẩn đều được lưu trên máy Server (máy chủ), việc kết nối, truy xuất cơ sỏ dữ liệu thông qua JDBC 3. Sử dụng JDBC để tạo và truy xuất cơ sở dữ liệu Thế nào là một cơ sở dữ liệu (Database)? Cơ sở dữ liệu là một tập hợp các dữ liệu có liên hệ với nhau được tổ chức và lưu trữ lại trên các thiết bị trữ tin. Nó cho phép nhiều người sử dụng, nhiều chương trình ứng dụng với các mục đích khác nhau đồng thời truy cập và khai thác. Dữ liệu vào Dữ liệu vào Dữ liệu Lưu trữ Xử lý Hình 1 3.2 Lấy dữ liệu ra từ cơ sở dữ liệu SQL (Structure Query Language) là ngôn ngữ chuẩn về xử lý dữ liệu được ANSI và ISO thừa nhận. Hiện nay hầu hết các hệ cơ sở dữ liệu đều hỗ trợ SQL. SQL là ngôn ngữ phi thủ tục (non procedure language): ta chỉ cần yêu cầu máy tính đưa ra những gì mà không cần biết máy tính làm như thế nào. Người sử dụng chỉ cần đưa ra một lệnh SQL sau đó hệ cơ sở dữ liệu sẽ phân tích, xử lý lệnh này và trả về kết quả người sử dụng (người sử dụng không cần lập trình). Vì vậy SQL trợ giúp rất đắc lực cho việc xuất dữ liệu, thống kê, tổng hợp, hay nói khác đi SQL làm tăng khả năng giao tiếp giữa người và máy. SQL chuẩn thường cung cấp them một số tính năng khác, cho nên về cơ bản SQL giống nhau ở tất các hệ cơ sở dữ liệu nhưng mỗi hệ cơ sở dữ liệu thì nó có những điểm riêng cho SQL của nó. 3.3 ODBC (Object Database Connectivity) ODBC có nhiệm vụ trả lời cho sự kết nối tới những cơ sở dữ liệu trong Windows được phát hành năm 1992 bởi Microsoft. ODBC cho phép phát triển và một phiên bản khác được phổ biến năm 1994 nhanh hơn và ổn định hơn, nó cũng là phiên bản 32bits đầu tiên. Thêm vào đó, ODBC bắt đầu di chuyển những nền khác hơn Windows và trở nên hoàn toàn thâm nhập vào PC và thế giới workstation. ODBC driver được cung cấp gần như bởi mỗi database vendor chủ yếu. Nhiều database vendor xác minh ODBC như một “alternate interface” cho tiêu chuẩn của chúng và chương trình trong ODBC không thông thường. Nó hầu như giống những những chương trình Windows khác, gồm những yếu điểm và những sự lựa chọn làm cho nó khó học. Cuối cùng ODBC không phải là một tiêu chuẩn điều khiển độc lập. Nó phát triển và tiến hoá bởi Microsoft, đưa ra môi trường phần mềm cạnh tranh cao chúng ta làm việc làm cho tương lai của nó mạnh hơn dự đoán. 3.4 JDBC là gì? JDBC là một object- oriented bao bọc và phác thảo lại của ODBC API để rất dễ hơn cho việc học và sử dụng và nó cho phép ta viết code độc lập để chất vấn (query) và thao tác những cơ sở dữ liệu. Mục đích chính của JDBC là kết nối chặt chẽ chương trình java với cơ sở dữ liệu. Java đinh nghĩa mọi hướng cho việc nhận dữ liệu của application và applet driver của JDBC cấp thấp tiến hành việc chuyển cơ sở dữ liệu riêng biệt đến giao diện JDBC cấp cao hơn, giao diện này được sử dụng bởi người phát triển và không cần lo lắng về cú pháp cơ sở dữ liệu đặc trưng khi tiến hành kết nối và query những cơ sở dữ liệu khác nhau. Những lớp (class) JDBC là một nhóm trong gói java.sql (java.sql package). Nhưng thông thường nó không phải là một phần của bộ phát triển phần mềm chuẩn. Các hướng hiện có của JDBC là những driver cần thiết cho việc kết nối những cơ sở dữ liệu mà không đòi hỏi bất cứ sự cài đặt nào trên client. 3.5 Cấu trúc JDBC Có những lý do để tách rời lập trình cấp thấp từ giao diện ứng dụng cấp cao. Lập trình cấp thấp là JDBC Driver. JDBC là rất uyển chuyển, nó có thể là tài nguyên dữ liệu cục bộ hay là Server cơ sở dữ liệu từ xa. Việc thực thi kết nối thực sự tài nguyên dữ liệu/ cơ sở dữ liệu được cho bên trong JDBC Driver. Cấu trúc JDBC bao gồm những khái niệm sau: Mục tiêu của JDBC là giao tiếp độc lập DBMS, một “cơ cấu truy xuất cơ sở dữ liệu SQL chung” và là một giao tiếp giống nhau cho tất cả các tài nguyên dữ liệu khác nhau. Người lập trình chỉ viết một cơ sở dữ liệu duy nhất sử dụng JDBC, chương trình có thể truy xuất bất cứ tài nguyên dữ liệu nào. Lớp DriverManager được sử dụng để mở một kết nối tới cơ sở dữ liệu qua JDBC driver, driver này phải đăng kí với DriverManager lựa chọn từ một danh sách các driver có thể tương thích với kiểu chính xác của cơ sở dữ liệu đã kết nối. Sau khi việc kết nối được hình thành, việc gọi quary và lấy kết quả là được làm trực tiếp với JDBC driver. JDBC driver phải thực thi những lớp để xử lý những hàm cho cơ sở dữ liệu riêng biệt, nhưng đặc điểm kỹ thuật của JDBC đảm bảo rằng driver sẽ được tiến hành như dự kiến. Điều cốt yếu là người phát triển có JDBC driver cho cơ sở dữ liệu không cần thiết phải lo lắng về việc phải thay đổi đoạn mã cho chương trình Java nếu một kiểu cơ sở dữ liệu khác được sử dụng (giả sử rằng JDBC driver cho những cơ sở dữ liệu khác là có sẵn). Điều này đặc biệt hữu dụng cho các cơ sở dữ liệu phân bố. 3.6 ODBC và JDBC ODBC trong mô hình JDBC ODBC và JDBC chia xẻ nguồn gốc chung: cả hai là nền tảng trên X/OPEN gọi cấp giao tiếp cho SQL. Mặc dù những JDBC driver nổi bật cho nhiều cơ sở dữ liệu, chúng ta có thể viết chương trình Java sử dụng ODBC hiện có. Trên thực tế là Javasoft và Intersolv có viết một Java driver - cầu nối JDBC –ODBC – cho phép người phát triển sử dụng ODBC driver hiện có trong chương trình Java. Hình 3 minh hoạ vị trí của JDBC – ODBC Brigde trong kiến trúc toàn thể của JDBC. Tuy nhiên JDBC – ODBC Brigde đòi hỏi sự cài đặt trên client, hay ở nơi mà chương trình Java thực sự chạy, bởi vì Brigde phải gọi phương thức nội bộ để chuyển từ ODBC sang JDBC. Chỉ có Java driver 100% mới có thể download thông qua mạng với một Java applet, không cần bất cứ một sự cài đặt nào. Nhiệm vụ của ODBC driver trong kiểu tương tự như JDBC driver. Trên thực tế JDBC – ODBC Brigde thật sự là một JDBC driver chuyển đến và từ ODBC ở cấp thấp. Khi JDBC driver cho cơ sở dữ liệu sẵn có, chúng ta có thể dễ dàng bật từ ODBC driver đến JDBC driver với một vài thay đổi, nếu có sự thay đổi đoạn mã của chương trình Java. 3.7 Các kiểu của JDBC driver Có chính xác 4 phương pháp cho một chương trình Java kết nối tới cơ sở dữ liệu: JDBC – ODBC Brigde và ODBC: trong trường hợp này, đây là một giải pháp cục bộ từ đó JDBC driver và brigde phải hiện diện trong mỗ máy của user. Đây là nguyên tắc cơ bản một giải pháp tạm thời. Mã tự nhiên (Native code) với Java driver: cách này thay thế ODBC gọi tới một protocol độc lập, rồI được chuyển tới một server. Server có thể kết nối tới bất kì một số cơ sở dữ liệu. Phương thức này cho phép ta gọi một server từ một applet trên máy Client của ta và trả về kết quả trên Applet. Native protocol Java driver: Java driver chuyển đổi trực tiếp tới protocol cho cơ sở dữ liệu đó và thực hiện việc gọi. Phương thức này chỉ có thể được sử dụng trên một hệ thống và có thể nó hiển thị kết quả trên một Web brownser applet. Nếu ta muốn viết code để thao tác một cơ sở dữ liệu PC client giống như dBase, FoxPro, hay Access, ta có thể sẻ dụng phương thức thứ nhất và có tất cả code trên máy của user. Rộng hơn, những sản phẩm cơ sở dữ liệu client-server như của IBM, DB2 cung cấp những driver cấp 3 cho ta. 3.8 Sử dụng JDBC Driver Muốn sử dụng JDBC driver, đầu tiên chúgn ta phải có JDBC driver (vì chúng không đi kèm với những gói có trong Java API). Tiếp theo chúng ta muốn sử dụng ODBC, đừng quên rằng chúng ta sẽ cần ODBC driver. Nếu chúng ta không có server cơ sở dữ liệu, nhưng muốn sử dụng JDBc, chúng ta có thể sử dụng gói ODBC driver với Microsoft Access. Sử dụng JDBC- ODBC Brigde, chúng ta có thể viết những Java application giao tiếp với một cơ sở dữ liệu Access. Tuy nhiên có thể bây giờ, với sự thay đổi công nghệ có thể có khả năng sử dụng JDBC – ODBC Brigde. Sử dụng ODBC driver trong chương trình Java đòi hỏi sự cài đặt lại ODBC driver và JDBC – ODBC Brigde trên máy client. Ngược lại, JDBC driver là lớp Java có thể download động qua mạng cùng với file chứa mã Java được gọi. a ) Kết nối tới một cơ sở dữ liệu Tất cả các đối tượng cơ sở dữ liệu và các phương thức đều ở trong java.sql packagevà ta phải import java.sql.* vào bất kì chương trình nào sử dụng JDBC. Để kết nối tới một cơ sở dữ liệuODBC, đầu tiên ta phải load JDBC- ODBC Brigde driver: Class.forName(“sun.jdbc.JdbcOdbcDriver”); Câu lệnh này load driver và tạo ra một ví dụ (ínctance) cho lớp đó. Kế đó kết nối tới một cơ sở dữ liệu đặc thù, ta phải tạo ra một instance của lớp kết nối và chuyển đến cơ sở dữ liệu sử dụng cú pháp URL: String url = “jdbc:odbc:”); Connection con = .getConnection(url); Chú ý: tên cơ sở dữ liệu sử dụng ở đây phải trùng với tên Data Source trong ODBC setup panel. Phương thức URL có thể hoàn toàn khác nhau đối với những kiểu cơ sở dữ liệu khác nhau: Jdbc:subprotocol:subname Những ký tự đầu tiên đại diện cho phương thức kết nối và luôn luôn là JDBC, cũng có thể có nhiều subprototol và ở đây subprotocol được định rõ là ODBC. Nó được định nghĩa sự kết nối máy móc cho một lớp những cơ sở dữ liệu. Nếu ta kết nối tới 1 cơ sở dữ liệu server trên một máy khác, ta phải định rõ máy đó và subdrectory. Cuối cùng ta phải chỉ rõ 1 username và password. b ) Truy xuất cơ sở dữ liệu Một khi ta kết nối tới cơ sở dữ liệu, ta có thể yêu cầu cung cấp những thông tin trên những tên của các bảng, các tên và những nộ dung trong các cột của chúng; và ta có thể chạy những câu lệnh SQL mà chất vấn cơ sở dữ liệu, hoặc thêm vào, hoặc thay đổi nội dung. Những đối tượng mà ta thường dùng để thu được thông tin từ cơ sở dữ liệu là: DatabaseMetaData: thông tin về cơ sở dữ liệu nói chung: tên bảng liệt kê (index), tên sản phẩm cơ sở dữ liệu và phiên bản, những hành vi xác minh bởi cơ sở dữ liệu. ResultSet: thông tin về một bảng hay một kết quả của một query. Ta truy cập dữ liệu theo từng hàng nhưng có thể truy cập những cột bất kỳ. ResultSetMetaData: thông tin về nhữn tên cột và những kiểu trong ResultSet. Trong khi những đối tượng này có một số lớn các phương thức cho phép ta lấy được rất nhiều thông tin chi tiết về những yếu tố của cơ sở dữ liệu, có một vài phương thức chủ yếu cho mỗi đối tượng cho ta thông tin đầy đủ nhất về dữ liệu của ta. ResultSet Đối tượng ResultSet là đối tượng đơn quan trọng nhất trong JDBC. Nó là yếu tố cần thiết cho việc lấy ra một bảng với tổng chiều rộng và không biết chiều dài. Giống như tất cả các phương thức và các query trả về dữ liệu như một ResultSet. Nó chứa đựng số của những tên cột mà ta yêu cầu bởi tên. Nó cũng gồm có một hay nhiều hàng mà ta có thể di chuyển từ trên xuống dưới. Trước khi dùng ResultSet thì cần hỏi có bao nhiêu cột. Thông tin này được lưu trữ trong đối tượng ResultSetMetaData: //get the nember of columns from the metadata ResultSetMetaData rsmd; rsmd = vs.getMetaData(); numCol = rsmd.getColumnCount(); Trong khi ta thu được một ResultSet, nó trỏ đến điểm bắt đầu của hàng đầu tiên. Ta sử dụng phương thức next()để thu được mỗi hàng thêm vào và phương thức trả lại false khi không còn hàng nào. Ta có thể lấy dữ liệu cho một ResultSet trong nhiều form tuỳ thuộc vào loại dữ liệu được lưu trữ trong mỗi cột. Hơn nữa ta có thể lấy được nội dung của một cột bởi số cột hay bởi tên cột. Vài phương thức bình thường hơn cho đối tượng ResultSet: Getlnt(int); trả về nội dung của cột được đánh số int như một số nguyên Getlnt(String); trả về nội dung của cột được đặt tên String như một số nguyên GetFloat(int); trả về nội dung của cột được đánh số int như một float GetFloat(String); trả về nội dung của cột được đặt tên String như một Float GetDate(int); trả về nội dung của cột được đánh số int như một Date GetDate(String); trả về nội dung của cột được đặt tên String như một Date Next(); di chuyển hàng trỏ tới hàng kế trả về false nếu không còn hàng nào Close();đóng ResultSet GetMetaData(); trả về nội dung của cột được đánh số int như một số nguyên ResultSetMetaData Ta thu được đối tượng ResultSetMetaData từ ResultSet dùng phương thức getMetaData(). Ta có thể sử dụng phương thức này để tìm ra số và loại của những cột và những tên của mỗi cột: GetColumnCount(); trả về số của những cột trong ResultSet GetColumnName(int); trả về tên của số cột int GetColumnLabel(int); trả về nhãn đề nghị cho một số int IsCurrency(int); trả về true nếu cột chiếm một số trong đơn vị thi hành IsReadOnly(int); trả về true nếu cột là tự động tăng. Như vậy những cột luôn luôn là khoá và chỉ đọc. GetColumnType(int); trả về loại dữ liệu SQL cho cột này. Những loại dữ liệu này gồm có bigint, binary, bit, char, date, decimal, double, float, integer, longvarbinary, longvarchar, null, numeric, other, real, smallint, time, timestamp, tiyint, varbinary, varchar. DatabaseMetaData Đối tượng DatabaseMetaData cho chúng ta thông tin về toàn bộ cơ sở dữ liệu. Chúng ta sử dụng nó chủ yếu để tìm ra những tên của các bảng trong cơ sở dữ liệu và những tên của các cột trong một bảng. Từ đó những cơ sở dữ liệu khác nhau cũng xác minh khác nhau về SQL, cũng có một số phương thức query cơ sở dữ liệu về những phương thức SQL nó support như thế nào: GetCatalogs(); trả về một danh sách những Catalog của thông tin trong cơ sở dữ liệu với JDBC – ODBC Brigde driver ta lấy được một danh sách những cơ sở dữ liệu được cập nhật với ODBC. GetTables; trả về một sự mô tả của những tên bảng cho tất cả các bảng phối hợp tableName và tất cả những cột columnName GetColumns; trả về một sự mô tả của bảng những tên cột cho tất cả các bảng phối hợp tableName và tất cả những cột phối hợp với columnName. getURL; tìm tên của URL được kết nối. GetDriverName(); tìm tên của những datebase được kết nối tới. Lấy thông tin trên những table trong một số cơ sở dữ liệu sử dụng phương pháp gettable() trong DataBaseMetaData. Results =dma.getTable(catalog,schema,tablemsk,type ); Catalog: tên của catalog nhìn vào những tên table. Đối với những cơ sở dữ liệu JDBC-ODBC và nhiều loại khác nhau có thể được gán null, Catalog đi vào những cơ sở dữ liệu này chính xác theo tên đường dẫn xác thực của chúng theo hệ thống file Schema bao gồm lượt sơ đố dữ liệu, Nhiều cơ sở dữ liệu không khuyến khích schema váf đối với những cái khác nó là username của chủ nhân của cơ sở dữ liệu, nó thường là null Tablemask: một mặt nạ mô tả những tên của những table mà ta muốn phục hồI, nếu ta muốn phục hồI tất cả những table gán nó tới % bảng ký tự lạ (windcard character %). Chú ý rằng wildear character trong SQL là phần trăm ký hiệu và không thường dùng ký hiệu * của PC user. Type[]: một dãy của những chuỗi mô tả các loại của những table ta muốn phục hồi. Nếu type[] là null, ta sẽ lấy được những table này. 4. Tổ chức cơ sở dữ liệu: Dữ liệu liên quan đến hệ thống gồm có: Dữ liệu về thông tin các user sử dụng hệ thống (Administrator,Giáo viên , Sinh viên ) Dữ liệu thi ( môn thi ,câu hỏi thi , đề thi ,bài thi ,kết quả thi ) Dữ liệu thống kê ( report báo cáo theo định kỳ) Câu hỏi được dùng trong trắc nghiệm có nhiều loại nhưng trong chương trinh chỉ sử dụng một dạng câu hỏi : Câu hỏi có nhiều lựa chọn với một câu đúng. Đây là dạng câu hỏi trắc nghiệm khách quan gồm phần mô tả chung và các lựa chọn A,B,C,D người dùng chỉ cần lựa chọn câu trả lời đúng trong số các đáp án mà chúng tôi đã đưa ra. Thời gian chuẩn là thời gian giới hạn chuẩn để trả lời bài thi khi hết thời gian bài làm sẽ tự động được lưu vào CSDL. Ngân hàng đề thi trắc nghiệm là tập hợp các loại câu hỏi được giáo viên soạn và đưa vào hệ thống . Một đề thi gồm nhiều câu thi ,phần thi ,môn thi đựơc giáo viên chọn lấy hoặc được tổng hợp một cách ngẫu nhiên các câu hỏi và được lưu lại trong hệ thống dưới dạng đề thi. Bài thi trắc nghiệm trực tiếp trên máy là một đề thi được trình bày trong trình duyệt Web để người sử dụng trả lời và chương trình chấm điểm. Mỗi đề thi có một mức kiểm tra và thời gian do giáo viên quy định cụ thể trong quá trình soạn đề .Do đó trong quá trình thi hệ thống ngân hàng đề thi trắc nghiệm sẽ tính thời gian từ lúc bắt đầu làm bài,nếu hết thời gian quy định mà người làm chưa làm xong thì hệ thống sẽ tự động ngưng quá trình làm bài,lưu bài thi , chấm điểm và trả kết quả về cho người làm. Tất cả các dữ liệu liên quan đến hệ thống như dữ liệu về các User sử dụng hệ thống ,dữ liệu về các câu hỏi thi , đề thi do giáo viên soạn, dữ liệu về các bài thi hay nhièu thứ khác nữa được lưu dưới dạng bảng (Access,SQL, Oracle,Fox…) trên máy chủ Server. Ở đây CSDL của hệ thống được lưu dưới dạng bảng Access. Do đó từ sơ đồ logical giữa các class ta chuyển sang sơ đồ quan hệ của Access, trong đó mỗi class trong sơ đồ logical giữa các class được chuyển thành mỗi bảng trong sơ đồ quan hệ của Access tương ứng . Trong đề tài này ta sử dụng bảng của Access để lưu dữ liệu . Do đó các bảng dữ liệu trước khi sử dụng ta phải đăng ký với hệ thống thông qua 32bit ODBC của hệ điều hành: Trong hình trên ta chọn System DNS rồi chọn Add… Chọn data source là Microsoft Access driver(*.mdb) ròi nhấn Finish để đăng ký data source dùng trong chương trình. Trong hình trên ta đánh tên data source dùng trong chương trình vào Data source Name sau đó nhấn vào Select … để chọn đường dẫn đến data source dùng trong chương trình ,màn hiện ra như sau : 5. Chức năng chính của các User sử dụng hệ thống Người quản trị mạng chung có thể thực hiện tất cả các thao tác liên quan đến ngân hàng đề thi mà mình quản lý bao gồm : Thay đổi password Đăng ký giáo viên ,sinh viên tham gia vào hệ thống . Thay đổi thông tin giáo viên ,sinh viên bao gồm : thay đổi password ,xoá bỏ những user không còn dùng nữa ra khỏi hệ thống ngân hàng đề thi . Tạo report thống kê theo định kỳ . Giáo viên có các chức năng cũng như quyền thao tác đối cới hệ thống ngân hàng đề thi trắc nghiệm thông qua trình duyệt Web như sau : Soạn câu hỏi thi Soạn đề thi Thêm môn thi Thay đổi password Xem kết quả của sinh viên Sinh viên : được chia ra làm 2 nhóm Nhóm 1 : là những sinh viên có đăng ký thông qua Administrator,khi sinh viên đăng ký sẽ được cấp một username và password để login hệ thống . Những sinh viên thuộc nhóm này sẽ được hệ thống quản lý ,cập nhật dữ liệu về thông tin cá nhân và kết quả thi của sinh viên . Do đó sinh viên thuộc nhóm này cs các chức năng cũng như quyền thao tác đối với hệ thống ngân hàng đề thi trắc nghiệm thông qua trình duyệt Web như sau : Thay đổi password Thực hiện một bài thi trắc nghiệm trực tiếp trên máy bao gồm :nhận đề ,trả lời ,và nhận kết quả . Xem lại kết quả thi Xem lại quá trình thi Nhóm 2 : là những sinh viên không đăng ký mà có nhu cầu muốn thi trắc nghiệm để kiểm tra khả năng cũng như trình độ của mình thế nào .Những sinh viên thuộc nhóm này hệ thống không quản lý mà chỉ cho phép sinh viên thực hiện bài thi trắc nghiệm trực tiếp trên máy và trả về kết quả cho sinh viên. Do đó sinh viên chi chọn phần thi Online để thực hiện một bài thi trắc nghiệm và xem kết quả của mình với bài thi đó. PhÇn II: Giíi thiÖu c«ng cô I. Khái niệm về JRUN: Jrun là trình chủ Server thực thi được các công nghệ Web mới nhất của Java như Servlet, JSP, và EJB Jrun lµ tr×nh chñ Web Server cã giao diÖn qu¶n trÞ ®Ñp sö dông ®¬n gi¶n vµ hiÖu qu¶. II.Cài đặt JRUN: 1.Cài đặt JDK1.3: Trước khi muốn sử dụng Jrun thì chúng ta phải có phần hỗ trợ cho Java ở đây dùng bộ JDK1.3 .Việc cài đặt JDK cũng khá đơn giản chỉ việc nhét đĩa vào và làm như hướng dẫn. 2.Cài đặt JRUN Web Server: JRUN cã nhiÒu phiªn b¶n, trong qu¸ tr×nh thùc hµnh chóng em ®· sö dông phiªn b¶n cã trªn ®Üa CD kÌm theo s¸ch ®ã lµ phiªn b¶n miÔn phÝ (free) kh«ng cã tÝnh th­¬ng m¹i v× vËy kh«ng thÝch hîp cho môc ®Ých kinh doanh. Yªu cÇu vÒ phÇn cøng vµ phÇn mÒm: §Ó cµi ®Æt vµ ch¹y JRUN, m¸y ph¶i cã tèi thiÓu: 32 MB RAM 20 MB dung l­îng ®Üa cøng HÖ ®iÒu hµnh JRUN cã thÓ cµi trªn hÖ ®iÒu hµnh Window9x hay NT (2000, UNIX, LINUX) Sö dông tr×nh duyÖt Nescape hay Internet Exploirer M«i tr­êng m¸y ¶o JRE (Java Runtime Environment) JDK 1.2.2 hay JDK 1.3 b. C¸c b­íc cµi JRUN: B1: Dõng Web Server nÕu b¹n ®· kÕt nèi víi JRUN hoÆc cµi JRUN tr­íc ®ã B2: Tho¸t tÊt c¶ øng dông Windows ®ang ch¹y B3: Ch¹y tËp tin setup.exe B4: Trang giíi thiÖu flash form cña JRUN xuÊt hiÖn B5: Trän phiªn b¶n mµ b¹n cã quyÒn sö dông B6: Trang ®¨ng nhËp b¶n quyÒn (Listense Agreement) th«ng b¸o cho b¹n B7: B¹n cã thÓ nhËp vµo Serial No, nÕu kh«ng cã th× sang b­íc 8 B8: Chän th­ môc ®Æt toµn bé tËp tin cña JRUN B9: Chän kiÓu cµi ®Æt nh­ : full, Minimum, Custom B10: Chän c¸c Components B11: Chän Programmer Folder B12: Chän Intall JRUN Services nÕu muèn JRUN ch¹y nh­ mét dÞch vô hç trî (support service) cña Windows. B13: Chän phiªn b¶n hç trî Java ®· cµi tr­íc ®ã JDK1.3 B14: Chän cæng (port) cho phÇn qu¶n trÞ (Administrator) JRUN. Cæng mÆc ®Þnh lµ 8000. B15: NhËp vµo mËt khÈu (password) cho ng­êi qu¶n trÞ B16: §iÒn mét sè th«ng tin ®¨ng ký ( trong tr­êng hîp sñ dông b¶n quyÒn phÇn mÒm), sau khi cµi ®Æt xong cÇn ph¶i khëi ®éng l¹i m¸y. Trong qu¸ tr×nh cµi phiªn b¶n free chóng ta kh«ng cÇn ph¶i tr¶i qua b­íc 5,6. JRUN ®· cµi xong chóng ta cã thÓ s½n sµng sö dông JRUN. 3.Cấu hình quản trị Web Server trong JRUN: Sau khi cµi xong ta sö dông trang qu¶n trÞ ®Ó qu¶n lý vµ khëi ®éng, thay ®æi tham sè cho tr×nh chñ Default Web Server phôc vô øng dông Web. 3.1.Cấu hình JRUN Default Web Server: CÊu h×nh nµy lµ mÆc ®Þnh s½n trong JRUN ta kh«ng cÇn ph¶i cÊu h×nh l¹i, cã thÓ xem c¸c th«ng tin cÊu h×nh d­íi ®©y trong menu ®iÒu khiÓn cña JRUN chän JRUN Default Server / JRUN Web Server. - Web Server Address * - Client IP filter * - Web Server Port 8100 - Ide Threed timeout 300 - Minimum threed count 1 - Minimum active request 100 - Minimum concurrent request 100 - JRUN Web Server on 3.2.Sử dụng bộ hộ trỡ kết nối (JRUN Connector Wizard): Trong qu¸ tr×nh thùc tËp do nhu cÇu phèi hîp ch¹y ASP vµ JSP Trªn cïng mét cæng. Nªn trong qu¸ tr×nh cµi vµ cÊu h×nh JRUN chóng ta ph¶i thùc hiÖn thªm mét b­íc n÷a ®ã lµ sö dông bé trî gióp kÕt nèi. Th«ng th­êng IIS (Internet Information Server) mÆc nhiªn ch¹y trªn port 80. §©y lµ port chuÈn cho cÊu h×nh IIS còng lµ port chuÈn cña c¸c øng dông Internet. NÕu chóng ta khai b¸o JRUN ch¹y trªn cïng mét cæng th× sÏ s¶y ra ®ông ®é. Hai dÞch vô web kh«ng thÓ cïng ch¹y trªn mét cæng. JRUN vµ IIS trao ®æi th«ng tin víi nhau th«ng qua cæng 53000 C¸c b­íc ®Ó kÕt nèi IIS vµ JRUN nh­ sau: B1: Tr­íc tiªn ta ph¶i ng­ng (stop) c¸c dÞch vô (services) cña IIS trong services cña WindowNT. Vµo Control panel/ Services/ IIS Admin services. B2: BÊm vµo mèi liªn kÕt Connector Wizard trªn menu cña mµn h×nh qu¶n trÞ JRUN B3: Chän JRUN Web Server mµ ta t¹o øng dông trªn ®ã. Trong tr­êng hîp nµy ta chän Default JRUN Web Server H×nh minh ho¹ c¸c b­íc 3,4,5 B4: Trong phÇn Web Server Type ( tøc lµ Web Server thø hai), ta chän Internet Information Server (IIS) (nh­ h×nh 2) B5: Chän phiªn b¶n cña IIS mµ b¹n muèn JRUN kÕt nèi. V× Window mµ chóng ta sö dông lµ Window 2000 server nªn ta chän phiªn b¶n IIS 5.0 B6: NhËp vµo ®Þa chØ IP cña JRUN Web Server. Trong tr­êng hîp v× m¸y cña ta kh«ng nèi m¹ng ta nhËp ®Þa chØ 127.0.0.1 ®Þa chØ côc bé B7: NhËp sè hiÖu cæng mµ JRUN dïng ®Ó l¾ng nghe kÕt nèi tõ Web Server kh¸c göi ®Õn. ë ®©y chóng ta mÆc ®Þnh lµ port 53000 nh­ h×nh: H×nh minh ho¹ c¸c b­íc 6,7 B8: Chän th­ môc script mµ IIS sö dông. Ta chän C:\Internet\script\ B9: BÊm next vµ Done ®Ó kÕt thóc H×nh minh ho¹ b­íc 9 B10: Khëi ®éng l¹i JRUN Web Server Ta ®· thùc hiÖn thµnh c«ng viÖc t¹o kÕt nèi gi÷a IIS vµ JRUN Web Server 4.Cấu hình và tạo ứng dụng web (Web Application): 4.1.Tạo mới ứng dụng Web: T¹o míi VD theo gi¸o tr×nh: T¹o míi øng dông BookOnline C¸c b­íc t¹o mét øng dông Web nh­ sau B1: Tr­íc khi cÊu h×nh JRUN chóng ta cÇn chó ý ®Õn ®Þa chØ IP cña m¸y chñ n¬i JRUN ®ang ch¹y. Trong tr­êng hîp nµy ta lÊy localhost hay 127.0.0.1 lµ ®Þa chØ IP côc bé cña mçi m¸y. B2: Chän JRUN Web Server ( ta chän JRUN Default server) B3: BÊm vµo liªn kÕt creat Application, mµn h×nh web panel xuÊt hiÖn nh­ h×nh B4: Chän JRUN Default server B5: NhËp tªn øng dông míi BookOnline B6: NhËp vµo ®Þa chØ gèc URL cho øng dông. Ta chän BookOnline B7: Chän th­ môc chóng ta ®Æt c¸c trang JSP cña øng dông. Ta chän C:\webstudy\bookstore lµ th­ môc chøa c¸c trang JSP cña øng dông BookStore ( Application Root Dir) B8: Sau khi ®iÒn xong ta bÊm nót creat. H×nh minh ho¹ c¸c b­íc t¹o míi mét øng dông web B9: Khëi ®éng l¹i Web Server t­¬ng øng víi tªn mµ chóng ta dïng ®Ó t¹o øng dông. Khëi ®éng l¹i JRUN Default server ThÕ lµ chóng ta ®· t¹o xong mét øng dông web. NÕu muèn kiÓm tra øng dông ®· ®­îc t¹o hay ch­a, ta xem trong môc web application cña JRUN Default server (nh­ h×nh d­íi ®©y) B10: Cuèi cïng më tr×nh duyÖt Explorer vµ gâ ®Þa chØ URL nh­ sau: ThÕ lµ ta ®· hoµn thµnh c¸c thao t¸c cho viÖc t¹o mét øng dông web 4.2Xoá một ứng dụng web: §«i khi chóng ta cã nhu cÇu muèn xo¸ mét øng dông web ch¼ng h¹n muèn lµm thÕ ta ph¶i thùc hiÖn c¸c b­íc sau: B1: Chän Web Application tõ mµn h×nh qu¶n trÞ cña JRUN B2: Chän remove Application. JRUN hiÖn thÞ danh s¸ch c¸c øng dông mµ ta ®· ®¨ng ký tr­íc ®ã B3: Chän øng dông web cÇn xo¸ B4: Ên nót remove H×nh minh ho¹ c¸c b­íc xo¸ mét øng dông web B5: Khëi ®éng l¹i Web Server 4.3.cập nhật một ứng dụng web: Trong qu¸ tr×nh t¹o øng dông chóng ta cã nhu cÇu bæ xung hoÆc thay ®æi cËp nhËt øng dông. C¸c b­íc: B1: Chän Application tõ mµn h×nh qu¶n trÞ cña JRUN Web Server B2: JRUN hiÖn thÞ danh s¸ch c¸c øng dông ®· ®¨ng ký tr­íc ®ã B3: BÊm vµo môc chän edit Application B4: Khi JRUN hiÓn thÞ danh s¸ch c¸c øng dông ta chän øng dông cÇn cËp nhËt B5: C¸c th«ng tin sÏ ®­îc hiÖn lªn ®Ó ta bæ xung vµ söa ®æi H×nh minh ho¹ c¸c b­íc bæ xung vµ söa ®æi mét øng dông web B6: Khëi ®éng l¹i JRUN Web Server ®Ó nh÷ng th«ng tin ®· thay ®æi cã hiÖu lùc Trªn ®©y lµ c¸c thao t¸c chñ yÕu lµm viÖc víi web application, rÊt cÇn thiÕt cho viÖc xuÊt b¶n c¸c øng dông web sau nµy cña chóng ta. Phần III : Phân tích thiết kế chương trình Các user sử dụng hệ thống và chức năng của các user 1.Các user sử dụng hệ thống: Hệ thống gồm có 3 đối tượng sử dụng : Quản trị mang hay Admin Giáo viên (người ra đề thi ) Sinh viên (người thi ) Thông tin về các user đựoc lưu vào 3 bảng có dạng 2.Sơ đồ mô tả chức năng của các user: 2.1. Người quản trị mạng (Administrator): 2.2. Giáo viên người ra đề thi: 2.3. Sinh viên (người thi): II. Phân tích thiết kế hệ thống về chức năng: 1.Biểu đồ phân cấp chức năng: Là loại biểu đồ mô tả sự phân rã dần dần các chức năng từ đại thể đến chi tiết. Hệ thống bao gồm các chức năng như sau: Quản lý ngân hàng đề thi Thi trắc nghiệm Tạo đề Cập nhật hệ thống Đăng ký thi Làm đề Làm kết quả thi Đăng ký tạo đề Tạo đề mới Tiếp nhận người dùng Thay đổi thông tin hệ thống 2.Biểu đồ luồng dữ liệu: Là một loại biểu đồ nhằm mục đích diễn tả một quá trình sử lý thông tin cho hệ thống 2.1.Biểu đồ luồng dữ liệu mức khung cảnh: Mức không: chức năng tổng quát của hệ thống là quản lý ngân hàng đề thi. Đối tác của hệ thống là người dùng. Bổ xung các luồng dữ liệu trao đổi giữa hệ thống và đối tác ta có biểu đồ luồng dữ liệu mức khung cảnh như sau: Người dùng Quản lý ngân hàng đề thi Yêu cầu Trả lời BLD bối cảnh 2.2.Biểu đồ luồng dữ liệu mức một: Chức năng không có thể phân rã thành các chức năng con là: thi trắc nghiệm, tạo đề thi mới và cập nhật hệ thống. Ngoài 2 luồng dữ liệu vào ra thì chức năng không được bảo toàn, thì thông tin trao đổi giữa 3 chức năng thi trắc nghiệm, tạo đề thi mới và cập nhật hệ thống là không trao đổi trực tiếp với nhau. Từ đó có biểu đồ luồng dữ liệu mức đỉnh như trong hình: CSDL Người dùng 1. Thi trắc nghiệm 2. Tạo đề mới 3. Cập nhật hệ thống Yêu cầu thi Trả lời Yêu cầu đề Trả lời Yêu cầu Trả lời 2.3.Biểu đồ luồng dữ liệu mức 2: Chức năng 1 được phân rã thành các chức năng: đăng ký thi, làm đề thi, làm kết quả thi. Chức năng 2 được phân rã thành các chức năng: đăng ký tạo đề, tạo đề mới. Chức năng 3 được phân rã thành các chức năng: tiếp nhận người dung, thay đổi thông tin hệ thống. Bảo toàn luồng dữ liệu vào ra cộng thêm các luồng dữ liệu nội bộ ta lập được hai biểu đồ luồng dữ liệu của chức năng 1 và chức năng 2 như sau: Người dùng 1.1 Đăng ký thi 1.2 Làm đề thi 1.3 Làm kết quả thi CSDL Yêu cầu thi Thông tin thi Đề thi Đề thi Kết quả thi Bài làm Yêu cầu xem kết quả thi BLD định nghĩa chức năng 1 BLD định nghĩa chức năng 2 2.1 Đăng ký tạo đề 2.2 Tạo đề mới CSDL Thông tin đăng nhập sai Thông tin đăng nhập Yêu cầu tạo đề mới Đề mới/ môn mới/ câu mới Các kiểu tạo đề Yêu cầu tạo mới Thông báo trùng đề Cập nhật hệ thống Thông tin đăng nhập Đề mới/ môn mới/ câu mới Người dùng Phân tích thiết kế hệ thống về dữ liệu: 1.Mô hình thực thể liên kết: Là mô hình dữ liệu, mô tả tập hợp các dữ liệu dùng trong 1 hệ thống. Mô hình này bao gồm các kiểu thực thể và các thuộc tính. + Các thực thể: Một thực thể là một vật cụ thể hay trừu tượng tồn tại thực sự và khá ổn định trong thế giới thực mà ta muốn phản ánh nó trong hệ thống thông tin. + Các thuộc tính: là một giá trị dùng để mô tả một khía cạnh nào đó của một thực thể. + Các thực thể: là một tập hợp các thực thể được mô tả bởi cùng một tập hợp các kiểu thuộc tính và biểu diễn cho một lớp tự nhiên các vật thể trong thế giới thực. Trong hệ thống dữ liệu của chương trình này ta có các kiểu thực thể như: Member, CauThi, DeCau, TTDeThi, KQThi, MonThi. Dưới đây là các bảng có trong cơ sở dữ liệu: Bảng Member: là bảng chứa thông tin vê` thành viên trang web Bảng Member Tên trường Kiểu Ý nghĩa UserID Autonumber mã số thành viên UserName text tên đăng nhập PassWord varchar mật khẩu UserType number quyền đăng nhập quyền user quyền Giáo viên quyền Admin HoVaTen text họ tên người dùng NgaySinh Date/time Ngày sinh GioiTinh text Giới tính Bảng CauThi: chứa thông tin vê` các câu thi trắc nghiệm có trong ngân hàng đề. Bảng CauThi Tên trường Kiểu Ý nghĩa CauThiID Autonumber mã số câu thi MonThiID text Mã số môn thi PhanThiID Number Mã số phần thi NDCauThi Text Nội dung câu thi TH1 Text Lựa chọn 1 TH2 Text Lựa chọn 2 TH3 Text Lựa chọn 3 TH4 Text Lựa chọn 4 DapAn Text Đáp án đúng Diem Number Điểm cho câu trả lời đúng Bảng MonThi: lưu thông tin về các môn thi có trong trang web Bảng MonThi Tên trường Kiểu Ý nghĩa MonThiID Text Mã môn thi TenMonThi text Tên môn thi Bảng TTDeThi: luu thông tin vê` đê` thi như: mã đề thi, tổng số câu thi, tổng số điểm. Bảng TTDeThi Tên trường Kiểu Ý nghĩa MaDeThi Text Mã đề thi TSCauThi Number Tổng số câu thi/ 1 đề thi TSDiem Number Tổng số điểm/ 1 đề thi Bảng DeCau: lưu thông tin về đề thi Bảng TTDeThi Tên trường Kiểu Ý nghĩa MaDeThi Text Mã đề thi CauThiID Number Mã câu thi Bảng KQThi: lưu thông tin vê` kết quả thi của người dùng. Bảng KQThi Tên trường Kiểu Ý nghĩa KQThiID Autonumber mã số kết quả thi UserName text tên người dùng MonThiID Text Mã câu thi LanThi Nunber Số lần thi Diem Number điểm NgayThi Date/Time Ngày làm bài III.Quá trình thực hiên các chức năng của các user 1 . Các chức năng của Admin 1.1 Admin login ra vào hệ thống Admin muốn tham gia vào hệ thống từ trang chủ ,tại form login sẽ chọn đối tượng là Admin nhập username và password để đăng nhập vào hệ thống . Hệ thống sẽ kết nối đến DatabaseServer để kiểm tra Admin đã xó trong hệ thống hay chưa đồng thời truyền thông tin của Admin đến UserInterface. Sau đó hiển thị thông tin lên Form : nếu đúng là Admin thì sẽ thực hiện tiếp còn không sẽ báo lỗi. 1.2 Admin đăng ký người dùng Sau khi đã vào hệ thống từ trang những công việc của Admin ,Admin sẽ đăng ký cho người dùng. Hệ thống sẽ kết nối đến giao diện người sử dụng và hiển thị form đăng ký người dùng lên màn hình. Admin sẽ thực hiện tiếp công việc của mình hoặc kết thúc khỏi form đăng ký người dùng hoặc chon các công việc khác Sau khi đã điền đầy đủ các thông tin vào Form và chọn Save thì toàn bộ thông tin của người dùng sẽ được lưu vào CSDL và trả về cho máy Client. 1.3 Admin thay đổi thông tin người dùng . Từ trang dành cho Admin sẽ có phần thay đổi thông tin về người dùng dành cho Admin . Khi chọn vào đó thông tin của người dùng sẽ được Admin chỉnh sửa và lưu lại vào CSDL Chọn thay đổi pass/user và chỉnh sửa theo ý muốn 1.4 Admin tạo report Sau một thời gian nhất định Admin sẽ xem xet lại hệ thống . Thống kê trong một thời gian có bao nhiêu người đăng ký vào hệ thống có bao nhiêu User sử dụng hệ thống và những user nào không còn sử dụng nữa thì báo cho các user sử dụng hệ thống biết. Tại Form công việc của Admin , Admin sẽ chọn mục tạo report . Hệ thống sẽ kết nối đến giao diện người sử dụng để tạo Report dưa lên màn hình với chức năng như một trang Web để các user có thể xem đồng thời Admin cũng có thể in bản Report ra giấy 2. Các chức năng của giáo viên 2.1 Giáo viên đăng nhập vào hệ thống Giáo viên khi muốn tham gia vào hệ thống sẽ nhờ Admin đăng ký cho mình, Admin sẽ gửi lại cho giáo viên một Username và password để ra vào hệ thống. Tại form login giáo viên sẽ chọn cho mình quyền sử dụng là Giáo viên rồi đăng nhập username và password vào . Hệ thống sẽ kiểm tra và thông báo cho giáo viên xem họ có tiếp tục được vào hệ thống hay không. Nếu có thì tại máy Client sẽ hiện bảng thông báo việc làm của giáo viên , còn nếu không thì hệ thống sẽ yêu cầu nhập lại 2.2 Giáo viên thay đổi thông tin Khi giáo viên muốn thay đổi thông tin của mình họ sẽ vào hệ thống. Taịo trang những công việc của giáo viên họ chọn mục thay đổi thông tin . Hệ thống sẽ kết nối đến giao diện người sử dụng của giáo viên và tại đây họ chỉ có thể thay đổi thông tin về username và password của mình. Cũng có thể họ chọn các chức năng khác hoặc thoát khỏi form thay đổi thông tin. Họ nhập username mới và pass mới sau đó hệ thống sẽ thông báo cho bạn biết xem DL đã được lưu hay chưa với dòng thông báo sau . 2.3 Giáo viên soạn câu hỏi thi Tại phần dành cho giáo viên, giáo viên sẽ chọn chức năng soạn câu hỏi thi . Hệ thống sẽ kết nối đến giao diện người sử dụng tại form soạn câu hỏi thi giáo viên sẽ điền đầy đủ các DL về câu hỏi thi như : tên môn thi, mã câu thi ,phần thi , nội dung câu hỏi … sau khi điền đầy đủ câu hỏi sẽ được lưu vào hệ thống và giáo viên lại tiếp tục soạn các câu hỏi khác Còn với chức năng ra đề bằng cách lựa chọn từng câu hỏi một thí sẽ có dạng như sau : Mỗi bảng như trên sẽ là một nội dung khác nhau của bài kiểm tra ví dụ bai kiểm tra kiến thức tổng hợp của Địa Lý và Anh Văn thì sẽ dùng 2 bảng như trên để trộn vào một bảng có dạng như dưới đây : Tại đây người ra đề sẽ sử dụng “Del” để xoá những câu hỏi mà họ cảm thấy không vừa ý và họ chỉ việc nháy vào nút “Checkout” để đưa ra một đề thi hoàn chỉnh . 2.4 Giáo viên xem kết quả thi Tại trang làm việc của mình giáo viên chọn tên môn thi cần xem hoặc cũng có thể chọn theo tên thí sinh . Sau đó hệ thống sẽ trả về kết quả cho giáo viên sau đó giáo viên có thể xem các môn khác phần kết quả sẽ như sau : hoặc với cách tìm kiếm theo họ tên : 2.5 Giáo viên thêm môn thi . Giáo viên có thể thêm môn bằng cách chọn chức năng thêm môn thi co trong form làm việc của mình . Giáo viên sẽ nhập mã môn thi và tên môn thi vào form và sau khi lưu vào CSDL hệ thống sẽ báo lại cho giáo viên .Nếu đã có môn thi đó trong hệ CSDL rồi thí hệ thống sẽ yêu cầu thực hiên lại 3. Các chức năng của sinh viên 3.1 Sinh viên đăng nhập vào hệ thống Cũng giống như giáo viên , sinh viên cũng được Admin cung cấp cho một Username và password để đăng nhập vào hệ thống. Tai form đăng nhập sinh viên sẽ phải chọn phần sinh viên nếu không sẽ không đăng nhập được vào hệ thống. ienhi đăng nhập hệ thống sẽ kiểm tra Username và password của sinh viên nếu đúng mới được tiêp tục công việc. Sinh viên ở đây cũng có hai dạng : Sinh viên thuộc một lớp nào đó cần kiểm tra bài thì bài làm của họ sẽ được lưu vào CSDL để làm bảng tính điểm cho sinh viên đó. Sinh viên bất kỳ muốn thử sức mình thì bài làm của họ sẽ không được lưu vào CSDL mà họ chỉ được chấm điểm để xem kiến thức của mình đến đâu. 3.2 Sinh viên thay đổi thông tin Khi sinh viên muốn thay đổi pass sinh viên đó sẽ được truy cập vào hệ thống và chi r việc chọn phần thay đổi pass sau khi đổi pass sinh viên sẽ được đăng nhập vào hệ thống bằng pass mới đã đổi và hệ thống sẽ thông báo thông tin của sinh viên đó đã đựoc lưu . 3.3 Sinh viên thi Điểm thi đã vào hệ thống sinh viên sẽ chọn cho mình môn thi và hệ thống sẽ đưa ra một trang mói trong đó có đề thi và công việc của sinh viên chỉ là chọn đáp án đúng cho câu hỏi đó. Sinh viên muốn thi tiếp thì phải quay lai trang chủ và lam lại từ đầu . Trên mỗi một trang Web làm bài sẽ có một cái đồng hồ đếm ngược để báo thời gian hết hạn làm bài cho người làm Công việc này nhằm hạn chế sự gian lận của người làm bài bởi trong khi làm bài họ có thể tận dụng Internet để tìm ra câu hỏi cho bài làm của mình. 3.4 Sinh viên xem kết quả thi ienhi làm bài xong sinh viên có thể xem kết quả thi bằng mục lục xem kêt quả thi tại form làm việc của mình. Tại đây hệ thống sẽ đưa ra môn thi ,số lần thi , số điểm của sinh viên đó . 4 . Tìm kiếm. Với CSDL rộng lớn thì một chức năng không thể thiếu đó là chức năng tìm kiếm . Hầu hết các Website hiện nay đều có chức năng này tuy không có thể tìm kiếm được như www.google.com hay www.msn.com nhưng nhờ vào đó mà chúng tôi đã hoàn thành được chức năng này. Rõ ien với một CSDL lớn thì tìm kiếm giúp người dùng tìm được cái mình cần một cách nhanh chóng. Về cơ bản thì giao diện là Tại đây người dùng chọn các môn cần tìm kiếm và đánh từ khoá cần tìm kiếm vào ô search. Bên cạnh đó còn chức năng tìm kiếm nâng cao (Advance) tại đây người dùng có thể tìm kiếm với các trang khác đã được ien kết như www.queendom.com hay www.mensa.com hay nhiều trang khác nữa. Hình minh hoạ trang Advance Search 5. Những trang JSP có trong chương trình: AdminBooknew .jsp : Thêm câu thi mới AdminMembersView .jsp: Danh sách người dùngư AdminMembersNew .jsp: Admin đăng ký người dùng AdminMembersEdit .jsp Admin chỉnh sửa thông tin người dùng Taodengaunhien .jsp : Làm đề ngẫu nhiên Banthimonnao .jsp : Chọn môn thi LoginMail .jsp : Login hệ thống Ketquathi .jsp : Kết quả bài thi SaveTTMoi .jsp : Lưu thông tin sửa đổi vào CSDL MenuAD .jsp : Menu dành cho Admin Menuchinh .jsp : Menu dành cho Giáo viên & Admin MenuGV .jsp : Menu Giáo viên SaveRegistrationGV .jsp : Lưu thông tin đăng ký Admin .jsp : kiểm tra dành cho Admin Verifyuser .jsp : kiểm tra thông tin người dùng Luuvaobangdecau .jsp : Lưu câu hỏi vào bảng CSDL Xemketquathi. Jsp : Xem kêt quả thi Home .jsp : trang chủ của chương trình Savemonthimoi .jsp : Lưu môn thi mới vào CSDL Monthinew .jsp: thêm môn thi mới Giaovien .jsp : kiểm tra dành cho Giáo viên GVxemketqua .jsp : Xem kết quả dành cho giáo viên Svxemketqua .jsp : xem kết quả dành cho sinh viên Thitracnghiem .jsp : trang thi trắc nghiệm danh cho người dùng Tất cả CSDL được dùng ở đây là TestOnline.mdb Kết luận Sau thêi gian thùc tËp t¹i tr­êng vµ kh¶o s¸t trªn Internet cïng víi c¸c tµi liÖu cã liªn quan, chóng em ®· tiÕp thu häc hái ®­îc nhiÒu kinh nghiÖm bæ Ých trong c«ng t¸c tõ khëi ®Çu ®Õn hoµn thµnh mét dù ¸n. Tõ ®ã ch­¬ng tr×nh cña chóng em ®· ®­îc hoµn thiÖn víi c¸c chøc n¨ng chÝnh nh­ sau: - Thªm c©u thi míi. - Thi tr¾c nghiÖm. - Xem kÕt qu¶ thi. - Thªm m«n thi míi. Ngoµi ra cßn cã c¸c chøc n¨ng dµnh riªng cho thµnh viªn cña trang web nh­: - Thay ®æi th«ng tin c¸ nh©n. - Xem qu¸ tr×nh thi. - Xem ®iÓm thi. Ch­¬ng tr×nh cßn cµi ®Æt thªm c¬ chÕ ®¬n thÓ qu¶n trÞ dµnh cho Administrator nh­: - CËp nhËt d÷ liÖu hÖ thèng. - B¸o biÓu. C¸c h­íng ph¸t triÓn trong t­¬ng lai: Ch­¬ng tr×nh cÇn hoµn thiÖn thªm c¸c chøc n¨ng nh­: - T¹o report ®Ó ®­a ra danh s¸ch sinh viªn tuú theo yªu cÇu cña gi¸o viªn. - Thèng kª ng­êi dïng, d÷ liÖu cã thÓ in Ên ®­îc. Ngoµi ra ch­¬ng tr×nh cÇn ph¸t triÓn hÖ thèng d÷ liÖu tõ c©u hái cña hÖ thèng lµ: cã 4 lùa chän trong ®ã cã 1 ®¸p ¸n ®óng ph¶i ®­îc më réng víi c¸c kiÓu c©u hái tr¾c nghiÖm nh­ d¹ng YES - NO, d¹ng ghÐp nèi, vv... Hoµn thiÖn nèt chøc n¨ng l­u bµi thi cña sinh viªn. Mục lục

Các file đính kèm theo tài liệu này:

  • docP0077.doc