Các thành phần của một CSDL trong SQL – SERVER

Một phần của tài liệu Xây dựng Website hỗ trợ thi trắc nghiệm. (Trang 26)

Mỗi CSDL cĩ các đối tƣợng sau:

Table: Table là đối tƣợng chính của CSDL dùng lƣu dữ liệu cần quản lý.

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 16

Ngồi ra table cịn cĩ các thành phần liên quan nhƣ sau: Constraint – Ràng buộc, Triggers – Bẫy lỗi, Indexs – Chỉ mục.

Diagram (Sơ đồ quan hệ): Thể hiện mối quan hệ dữ liệu giữa các table.

Views (Khung nhìn hay table ảo): Là đối tƣợng dùng hiển thị dữ liệu đƣợc

rút trích, tính tốn từ các table theo nhu cầu của ngƣời dùng.

Stored Procedure (Thủ tục nội): Chứa các lệnh T-SQL dùng thực hiện một

số tác vụ nào đĩ. Stored Proc cĩ thể nhận và truyền tham số. Stored Proc đƣợc biên dịch trƣớc, do đĩ thời gian thực hiện nhanh khi đƣợc gọi. Cĩ nhiều Stored Proc hệ thống đƣợc định nghĩa với tiền tố “sp_” cĩ nhiệm vụ thu thập thơng tin từ các bảng hệ thống và rất cĩ ích cho việc quản trị.

User Defined Function: Hàm do ngƣời dùng định nghĩa.

Users: Chứa danh sách User sử dụng CSDL. Ngƣời quản trị hệ thống cao

nhất cĩ User Name là dbo, tên đăng nhập (Login Name) hệ thống mặc định là sa.Tài khoản sa luơn tồn tại và khơng thể bỏ đi.

Roles: Các quy định vai trị và chức năng của User trong hệ thống SQL

Server.

Rules: Các qui tắc ràng buộc dữ liệu đƣợc lƣu trữ trên table.

Defaults: Các khai báo giá trị mặc định.

User Defined Data Type: Kiểu dữ liệu do ngƣời dùng tự định nghĩa.

Full Text Catalogs: Tập phân loại dữ liệu text. 2.2. Tìm hiểu về Java 2 Platform Enterprise Edition 2.2.1. Java EE

Java Web Application:

 Java Web Application tạo ra các trang web tƣơng tác cĩ chứa các loại markup language khác nhau (HTML, XML, ...) và các nội dung động. Nĩ bao gồm các thành phần nhƣ Java Server Pages (JSP), Servlet và JavaBeans để sửa đổi và lƣu trữ tạm thời dữ liệu, tƣơng tác với cơ sở dữ liệu (Database) và các dịch vụ web

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 17

(Webservices) để đáp ứng đƣợc yêu cầu của khách hàng.Vì cĩ rất nhiều cơng việc liên quan đến việc phát triển ứng dụng web.

 Cĩ thể đƣợc lặp đi lặp lại hoặc yêu cầu một khối lƣợng lớn mã lệnh đã viết

sẵn. Lúc đĩ web framework sẽ đƣợc áp dụng để giảm bớt các chi phí liên quan đến hoạt động chung. Ví dụ, cĩ rất nhiều framework nhƣ JavaServer Faces, cung cấp các thƣ viện cho các trang template, quản lý session và các đoạn mã cĩ thể đƣợc sử dụng lại.

Java EE

Java EE (Enterprise Edition) là một nền tảng đƣợc sử dụng rộng rãi, chứa một tập hợp các cơng nghệ đƣợc phối hợp vào nhau, làm giảm đáng kể chi phí và độ phức tạp của việc phát triển, triển khai và quản lý các tầng làm việc, các ứng dụng máy chủ trung tâm. Java EE đƣợc xây dựng dựa trên nền tảng Java SE và cũng cấp thêm một tập các API (giao diện lập trình ứng dụng) để phát triển và hoạt động các ứng dụng phía máy chủ (Server-Side Applications) một cách mạnh mẽ, cĩ khả năng mở rộng, đáng tin cậy, di động (portable) và bảo mật.

Một số thành phần cơ bản của Java EE bao gồm:

 Enterprise Java Beans (EJB): một thành phần kiến trúc của các ứng dụng server đƣợc quản lý, sử dụng để bao gĩi (encapsulate) các business logic của các ứng dụng. Cơng nghệ EJB cho phép phát triển nhanh chĩng và đơn giản hĩa các ứng dụng phân tán, các giao dịch an tồn và di động dựa trên cơng nghệ Java.

 Java Persistence API (JPA): một framework cho pháp nhà phát triển quản lý

dữ liệu bằng cách sử dụng ánh xạ đối tƣợng quan hệ (Object Relational Mapping - ORM) trong các dứng dụng đƣợc xây dựng trên nền tảng Java

2.2.2. Servlet a) Khái niêm

 Là các đối tƣợng hoặc một đoạn chƣơng trình trong Java, mở rộng chức năng

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 18

 Đƣợc ánh xạ với một URL và đƣợc quản lí bởi container tƣơng ứng.

 Chạy đƣợc trên tất cả các web server và các application server chuẩn.

 Khơng phụ thuộc vào platform và server.

b)Ƣu điểm của servlet

 Cĩ rất nhiều cơng cụ của bên thứ 3 và nhiều server hỗ trợ cho servlet.

 Truy cập đƣợc mọi Java API.

 Độ tin cậy cao (Reliable), an tồn (secure), hiệu năng tốt, dễ mở rộng (scalability).

c) Mơ hình servlet request và response

2: Mơ hình xử lý request của servlet

Request: là thơng tin đƣợc gửi từ client tới 1 server. Thơng qua các thơng tin

chứa trong request mà server biết đƣợc ai tạo ra request, dữ liệu gì đƣợc user nhập vào và gửi đi qua các HTTP header.

Cĩ 2 phƣơng thức:

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 19

 Post: Thơng tin nhập vào trong form đƣợc truyền trong nội dung thơng điệp

Put, Delete….

Response : là thơng tin gửi đến client từ 1 server. Cĩ thể là dữ liệu dạng text

(html, thuần text) hoặc dữ liệu binary (image).

d)Nhiệm vụ của servlet:

 Nhận client request (hầu hết ở dạng HTTP request).

 Trích xuất một số thơng tin từ request.

 Xử lí nghiệp vụ (truy cập database, gọi EJBs, …) hoặc sinh ra nội dung mới.

 Tạo và gửi trả response cho client (hầu hết ở dạng HTTP response) hoặc forward request cho servlet khác hoặc một trang JSP.

e) Vịng đời của servlet

3: Vịng đời servlet

Khi một ứng dụng chƣa đƣợc deploy vào trong server thì servlet chƣa đƣợc khởi tạo (uninstantiated).

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 20

Khi ứng dụng đƣợc deploy vào server thì container sẽ thực hiện khởi tạo instance cho servlet, trong lúc khởi tạo kích hoạt hàm init. Lƣu ý, hàm init chỉ đƣợc kích hoạt lần duy nhất khi deploy.

Khi cĩ một request đến servlet của ngƣời dùng, container đĩn nhận request và chọn instance bean bất kỳ tƣơng ứng với yêu cầu để đáp ứng.

Sau khi chọn đƣợc bean, container sẽ kích hoạt hàm service tƣơng ứng. Lƣu ý ở đây, ở lần yêu cầu thứ 2 thì container cũng sẽ chọn bean và kích hoạt hàm service tƣơng ứng, do vậy, hàm service sẽ đƣợc gọi rất nhiều lần.

Khi servlet đƣợc cập nhật mới hay server bị crash hay undeploy ứng dụng ra khỏi server – container, thì hàm destroy của servlet đƣợc kích hoạt. Nghĩa là servlet chỉ kích hoạt phƣơng thức destroy lần cuối cùng duy nhất.

f) Các phƣơng thức trong vịng đời servlet

Container điều khiển vịng đời của một servlet và các phƣơng thức trong vịng đời Servlet đƣợc gọi bởi container . Trong 1 vịng đời thì servlet cĩ các phƣơng thức sau đây:

 init(): Đƣợc gọi một lần khi servlet đƣợc tạo thể hiện hĩa lần đầu tiên. Ta sẽ

thực hiện các khởi tạo trong phƣơng thức này.

 destroy(): Đƣợc gọi trƣớc khi hủy một servlet instance, hàm này thực hiện thao tác dọn dẹp.

 service(): trong lớp javax.servlet.http.HttpServlet là một phƣơng thức cài đặt

từ phƣơng thức abstract trong lớp javax.servlet.GenericServlet. Hàm này gọi đến hai phƣơng thức doGet() và doPost(). Ta khơng override phƣơng thức này.

 doGet() và doPost() trong lớp javax.servlet.http.HttpServlet dùng để xử lí các

HTTP GET, POST requests. Ta sẽ override các phƣơng thức này trong servlet của mình để cĩ xử lí phù hợp.

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 21

2.2.3. JSP

a) Thế nào là nội dung tĩnh và nội dung động

 Nội dung tĩnh (static content): là nội dung hiển thị nhƣ nhau cho tất cả mọi

ngƣời, điển hình là các trang HTML tĩnh.

 Nội dung động (dynamic content): là nội dung đƣợc sinh ra và biến đổi tùy

theo một số điều kiện nhất định. Các điều kiện đĩ cĩ thể liên quan đến tài khoản ngƣời dùng, thời gian, giá trị mà user nhập vào thơng qua form hoặc qua sự lựa chọn.

b)Khái niệm về JSP

Cơng nghệ JSP là cơng nghệ đƣợc xây dựng dựa trên nền tảng cơng nghệ Servlet.

Cho phép phân tách tầng business logic với tầng presentation để giúp ứng dụng Web dễ bảo trì, cĩ khả năng tái sử dụng. Presentation gồm các file cĩ dạng HTML hoặc XML/XSTL. Business logic đƣợc cài đặt trong các Java Beans hoặc các thẻ mở rộng (custom tags).

Dễ mở rộng nhờ các custom tags.

Một trang JSP là một tài liệu text, cho phép trả về nội dung động cho trình duyệt phía client.Một trang JSP thơng thƣờng bao gồm cả nội dung tĩnh nhƣ: HTML, XML và nội dung động nhƣ: mã lập trình, JavaBeans, custom tags.

Ví dụ một trang JSP hiển thị ngày tháng trong trình duyệt:

<%@page import="java.util.Date"%>

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 22

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Using the date class</title>

</head> <body>

<h1>Sử dụng lớp Date trong java</h1> The date is: <%= new Date() %>

</body> </html>

Kết quả khi mở trang JSP bằng trình duyệt:

4: Ví dụ minh họa

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 23

5: Kiến trúc JSP

d)Vịng đời của JSP

6: Vịng đời của JSP

1. Ngƣời dùng gửi yêu cầu tới trang JSP thơng qua trình duyệt.

2. Yêu cầu đĩ đƣợc chuyển tới web server.

3. Web server sẽ chuyển JSP vào bộ dịch để chuyển thành mã Servlet.

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 24

5. Tạo một servlet từ file JSP, tất cả các đoạn mã HTML sẽ đƣợc chuyển

đổi sang lệnh println().

6. Servlet sẽ đƣợc biên dịch thành một file class.

7. Tạo đối tƣợng servlet.

8. HTML thơng qua phƣơng thức output của servlet sẽ đƣợc trả về.

9. Browser hiển thị kết quả.

e) Các phƣơng thức trong vịng đời

 jspInit(): Đọc tham số cấu hình, khởi tạo tài nguyên, làm bất kì cơng việc khởi tạo nào khác bằng việc override phƣơng thức này.

 jspService(): Phƣơng thức này đƣợc gọi với mỗi request trong suốt vịng đời

của JSP. Thực tế thì các business logic đƣợc viết ở trong hàm này.

 jspDestroy(): Đọc tham số cấu hình, giải phĩng tài nguyên, làm bất kì cơng

việc nào bằng cách override phƣơng thức này.

f) So sánh giữa JSP và servlet Ƣu điểm của JSP:

 Tách biệt nội dung và cách thức trình bày.

 Đơn giản hĩa việc phát triển ứng dụng web với JavaBeans và custom tag.

 Hỗ trợ tái sử dụng nhờ sử dụng các components.

 Tự động biên dịch lại các trang JSP khi cĩ thay đổi mã nguồn.

 Độc lập platform, dễ viết.

Ƣu điểm của JSP so với servlet:

 Servlet sử dụng lệnh println() để sinh các trang HTML, nhƣ vậy sẽ dẫn đến

hạn chế trong việc bảo trì các trang HTML.

 Khi servlet thay đổi thì phải biên dịch lại, deploy lại.

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 25

Tuy nhiên ta cần đồng thời khai thác cả 2 cơng nghệ, sức mạnh của servlet là “controlling và dispatching” cịn sức mạnh của JSP là “displaying”. Trong thực tế cả servlet và JSP đƣợc sử dụng trong mẫu thiết kế MVC, servlet xử lí phần Controller cịn JSP xử lí phần View.

2.3. Mơ hình MVC

Ý niệm chính của mơ hình này là tách biệt phần ánh xạ, lƣu trữ và xử lý dữ liệu (Model) tách biệt hồn tồn với thành phần trình bày giao diện kết quả cho ngƣời dùng hay phần giao diện giúp đĩn nhập nhập xuất cho ngƣời dùng (View).

Ý niệm trên cho phép ngƣời lập trình cĩ thể tách biệt cơng việc trong quá trình xây dựng chức năng cho ứng dụng và quá trình xây dựng giao diện cho ngƣời dùng. Bên cạnh đĩ, ý niệm trên cho phép việc thay đổi thành phần của dữ liệu sẽ khơng ảnh hƣởng nhiều đến giao diện của ngƣời dùng vì mơ hình đƣa ra Model để khơng cho ngƣời dùng thao tác trực tiếp vào dữ liệu vật lý (Cơ sở dữ liệu hay là tập tin) mà phải thơng qua Model, do vậy cho dù dữ liệu vật lý thay đổi cấu trúc nhƣng cấu trúc Model cho việc truy cập, xử lý, lƣu trữ dữ liệu sẽ khơng bị ảnh hƣởng. Nhìn theo khái niệm các thành phần giao tiếp trên Model là tên hàm – tham số truyền (interface) ít khi thay đổi, nội dung thay đổi chính là cách thức cài đặt bên trong hàm. Nhƣng nội dung đĩ ngƣời sử dụng chức năng trên giao diện khơng quan tâm vì đa số họ chỉ quan tâm interface là gì, giá trị nhập và kết xuất ra sao. Do vậy, đây là một tính chất linh hoạt và uyển chuyển của mơ hình MVC.

Ngồi ra, việc tách biệt rời rạc giữa Model và View theo phân tích của chúng ta đang thể hiện tính ƣu việt. Tuy nhiên, một ứng dụng cĩ rất nhiều Model và nhiều View, do vậy, mơ hình cần cĩ một thành phần lựa chọn và kết nối các thành phần này lại với nhau theo cách hiệu quả nhất. Controller là một trong những đối tƣợng đƣa ra để đĩn nhận yêu cầu nhập xuất từ ngƣời dùng, xác định Model tƣơng ứng với View nhập để đƣa Model xử lý, kết quả xử lý của Model sẽ đƣợc chuyển đến

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 26

Controller để Controller xác định View kết xuất để đổ kết quả xử lý và hiển thị cho ngƣời dùng.

2.3.1. Model

 Là các thành phần hỗ trợ ánh xạ dữ liệu vật lý lên bộ nhớ, lƣu trữ dữ liệu tạm

thời trên bộ nhớ, hỗ trợ các cách thức xử lý dữ liệu, hỗ trợ khả năng giao tiếp và trao đổi dữ liệu giữa các đối tƣợng khác trong bộ nhớ và cơ sở dữ liệu.

 Mơ hình hĩa dữ liệu và hành vi trong xử lí nghiệp vụ.

 Cụ thể là một đối tƣợng Object trong khái niệm của lập trình hƣớng đối tƣợng OOP và mang đầy đủ khái niệm và tính chất của một Object.

 Trong ứng dụng Web của Java, Model sẽ là JavaBean hay Enterprise

JavaBean hay Web Service.

2.3.2. View

 Là thành phần hỗ trợ trình bày dữ liệu hay kết quả ra màn hình, hỗ trợ nhập

thơng tin từ phía ngƣời dùng, biểu diễn kết quả của tầng business logic (Model).

 Các thành phần này cĩ khả năng truy cập Model, truy xuất Model thơng qua

những hành vi mà Model cho phép nhƣng View khơng thể thay đổi các thành phần trong Model.

 Trong mơ hình ứng dụng Web thì html, servlet, jsp … là những thành phần

đại diện cho View.

2.3.3. Controller

 Là các thành phần hỗ trợ kết nối ngƣời dùng server, đĩn nhận yêu cầu ngƣời

dùng, thực hiện chuyển xử lý, lựa chọn và cập nhật Model và View tƣơng ứng để trình bày về phía ngƣời dùng.

 Hỗ trợ kết nối giữa ngƣời Model và View, giúp Model xác định đƣợc View

trình bày.

Xây dựng website hỗ trợ thi trắc nghiệm GVHD - PGS. TS. Lê Văn Sơn

Nguyễn Minh Mãi – 10CNTT4 Trang 27

CHƢƠNG 3: WEBSITE HỖ TRỢ THI TRẮC NGHIỆM 3.1. Phân tích

3.1.1. Yêu cầu chức năng

Sau đây là các chức năng chính của website:

 Đối với Admin

+ Quản lý sinh viên + Quản lý giáo viên + Quản lý tài khoản + Quản lý mơn thi

+ Quản lý thơng tin cá nhân + Quản lý lớp

 Đối với giáo viên

+ Quản lý sinh viên + Quản lý lớp

+ Quản lý danh sách thi + Quản lý đề thi

+ Quản lý thơng tin cá nhân + Quản lý kết quả thi

 Đối với sinh viên

Một phần của tài liệu Xây dựng Website hỗ trợ thi trắc nghiệm. (Trang 26)

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

(78 trang)