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

Tài liệu Xây dựng & quản lý Ngân hàng đề thi trắc nghiệm trên Web trên mạng theo công nghệ JSP: ... Ebook Xây dựng & quản lý Ngân hàng đề thi trắc nghiệm trên Web trên mạng theo công nghệ JSP

doc58 trang | Chia sẻ: huyen82 | Lượt xem: 2122 | Lượt tải: 2download
Tóm tắt tài liệu Xây dựng & 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
Lời nói đầu Trong thời đại ngày nay, thời đại của CNH- HĐH đất nước, với sự bùng nổ của CNTT, hàng loạt các phần mềm ứng dụng cũng như các phần mềm tiện ích ra đời đồng nghĩa với sự gia tăng về số lượng của các kỹ sư, các chuyên viên lập trình. giờ đây cùng với sự gia tăng chóng mặt số lượng người dùng truy cập vào Internet, hệ thống mạng Internet đã trở thành một phần không thể thiếu của thời đại bởi nó là một thư viện khổng lồ và hữu ích nhất. Việc truy cập Internet thường xuyên đã trở thành thói quen của thế hệ trẻ. Khai thác thế mạnh của Internet, các kĩ sư các chuyên viên lập trình đã tung ra các ứng dụng của mình dưới dạng các trang Web, điều đó đã đáp ứng được nhu cầu khao khát thông tin của người truy cập Internet. Các Website trên Internet rất phong phú về nội dung, thông tin được truy cập thường xuyên và nhanh chóng. Giới trẻ ngày nay lên Web ngày càng nhiều và đa số lên mạng chỉ để tán gẫu, nghe nhạc… còn một số ít lên mạng để học tập. Nhưng các trang Web phục vụ cho học tập thì rất ít và chưa được chú trọng khai thác trong khi đó giờ đây nhu cầu kiểm tra kiến thức và củng cố kiến thức ngày càng cao và là nhu cầu cấp thiết. Nhận thấy rõ điều đó và do xuất phát từ chính nhu cầu của bản thân, chúng em những sinh viên khoa Công nghệ thông tin đã mạnh dạn đảm nhận đề tài “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” với mong muốn cùng với những kiến thức mà mình đã học có thể tự tạo cho chính mình cũng như cho các sinh viên khác một sân chơi, một trang Web có thể phục vụ tốt cho việc học tập của chính mình để làm đề tài tốt nghiệp. Trong bài báo cáo này chúng em đã trình bày rõ về đề tài của chúng em với các nội dung chủ yếu sau: Phần I: Giới thiệu và phân tích đề tài Phần II: Giới thiệu công cụ Phần III: Phân tích thiết kế chương trình Chúng em những sinh viên đang còn học trong giảng đường do trình độ và kinh nghiệm còn hạn chế nên khi đảm nhận đề tài này sẽ không tránh khỏi những thiếu sót rất mong sự ủng hộ và giúp đỡ của các bạn và thầy cô để chương trình có thể hoàn thiện hơn, hữu ích hơn. Chúng em xin cảm ơn các thầy cô giáo đã giúp đỡ, hướng dẫn chúng em thực hiện và hoàn tất đề tài này. Chúng em xin chân thành cảm ơn! Sinh viên Phần I : Giới thiệu và phân tích đề tài I .Nội dung đề tài Viết chương trình quản lý ngân hàng đề thi trắc nghiệm trên Web theo công nghệ JSP dựa trên mô hình Client – Server bao gồm các modul sau: . Soạn câu hỏi trắc nghiệm . Quản lý ngân hàng đề và soạn đề thi . Trắc nghiệm và quản lý thông tin của người thi II .Yêu cầu của đề tài Dựa vào nội dung của đề tài đặt ra, chúng ta cần xây dựng một chương trình ứng dụng dựa trên các yêu cầu sau: Xây dựng một chương trình theo mô hình Client- Server, toàn bộ dữ liệu liên quan đến hệ thống được lưu trữ trên Server, việc truy cập và truyền dữ liệu được thực hiện thông qua mạng nhằm phục vụ cho việc kiểm tra trắc nghiệm, cập nhật cơ sở dữ liệu. Hệ thống ngân hàng đề thi trắc nghiệm quản lý, lưu trữ tất cả các câu thi, đề thi của giáo viên để kiểm tra trắc nghiệm, đồng thời hệ thống cũng quản lý, lưu trữ các nhóm người sử dụng và kết quả của sinh viên. Mỗi đề thi có một mức kiểm tra khác nhau, phù hợp với trình độ của người sử dụng, nội dung muốn kiểm tra và hình thức ra đề. Thông qua trình duyệt Web, người sử dụng hệ thống ngân hang đề thi trắc nghiệm có thể thực hiện các thao tác phù hợp với các chức năng mà hệ thống ngân hang đề thi trắc nghiệm cho phép. người sử dụng, tuỳ theo , mức độ cho phép của hệ thống ngân hang đề thi trắc nghiệm mà có các quyền thao tác trên hệ thống khác nhau. Đối tượng sử dụng hệ thống ngân hang đề thi trắc nghiệm này gồm: Người quản trị chung, Giáo viên, Sinh viên. III . Giải quyết các yêu cầu của đề tài Vì chương trình này xây dựng theo mô hình Client-Server, việc truy xuất, truyền dữ liệu qua mạng thông qua trình duyệt Web. Do đó, chương trình của ta có lien quan đến các vấn đề sau: Networking Mạng máy tính là một tập hợp các máy tính được nối với nhau bởi các đường truyền vật lý theo một kiến trúc nào đó. Trong thực tế là các máy tính trong mạng có thể chạy các hệ điều hành khác nhau trên các nền phần cứng khác nhau. Do đó để có thể nói chuyện được với nhau, các quá trình cần phải dung chung một phương thức giao tiếp (protocol ) nào đó. Tổ chức ISO (International Standards Organization) đã đưa ra mô hình tham khảo OSI (Open Systems Interconnection) dung để phân lớp kiến trúc mạng. Theo mô hình OSI, thông tin muốn gửi hay nhận qua mạng phải đi qua 7 lớp. Mỗi lớp có một chức năng khác nhau và cung cấp các interface để các lớp phía trên có thể sử dụng các dịch vụ mà lớp này cung cấp. Mô hình mạng OSI: Application Layer Presentation Layer Session Layer Transport Layer Network Layer Datalink Layer Physical Layer Sending Application Receiver Application Session Layer Presentation Layer Application Layer Transport Layer Network Layer Datalink Layer Physical Layer Application layer: chứa các dịch vụ phục vụ cho người dung như truyền nhận file hay email… Presentation: chứa các dịch vụ về thao tác dữ liệu như nén, giải nén…. Cấp này không có các dịch vụ thông tin của riêng nó. Session: chứa các dịch vụ cho phép trao đổi thông tin giữa các quá trình, tạo và kết thúc kết nối của các quá trình trên các máy chủ khác nhau. Transport layer: chứa các dịch vụ tìm và sửa lỗi nhằm bảo đảm tính đúng đắn của dữ liệu nhận. Network layer: quản lý việc kết nối trong mạng liên quan đến địa chỉ của máy tính gửi và máy tính nhận cũng như sự tắc nghẽn giao thông của mạng. Datalink layer: bảo đảm các gói dữ liệu được gửi thông tin qua mạng vật lý. Physical layer: phục vụ cho việc gửi các dữ liệu là các bit thô thông qua kênh truyền. Do đặc tính của mô hình OSI, dữ liệu gửi đi phải qua tất cả 14 cấp để đến được chương trình nhận. Ở mỗi cấp, dữ liệu sẽ bị trễ một khoảng thời gian. Điều này làm giảm hiệu suất của mạng. Mô hình TCP/IP có ưu điểm hơn và hiện đang được sử dụng rộng rãi. Mô hình mạng TCP/IP Để đảm bảo việc truy cập, truyền dữ liệu trên mạng là không mất mát, các gói dữ liệu đến đích phải theo đúng thứ tự đã được gửi và các máy tính chạy trên mạng Internet truyền thông với nhau dung các protocol TCP, UDP. Do đó ta sử dụng mô hình mạng TCP/IP gồm 4 lớp được mô tả bằng hình II.1.2 Application Layer HTTP,FTP,Telnet, SMTP Transport Layer TCP/IP,UDP Physical Layer EthernetX.25, Token Ring Network Layer IP Receiving Data Sending Data hình II.1.2 Application layer: chứa các ứng dụng có sử dụng mạng. Lớp này tương ứng với hai lớp trên cùng (Application và presentation layer) của mô hình OSI. Transport layer: cung cấp các dịch vụ truyền nhận dữ liệu giữa các quá trình với nhau. Các quá trình này có thể trao đổi thông tin với nhau thông qua địa chỉ của máy tính gửi/ nhận và cổng thông tin. Cấp này tương ứng với cấp 2 cấp kế tiếp (session và transport layer) của mô hình OSI. Network layer: đảm nhận việc xác định, tìm đường và phân phối các gói thông tin tới địa chỉ đích. Network layer trong mô hình TCP/ IP tương ứng với hai lớp network và datalink của mô hình OSI. Physical layer: sử dụng các giao tiếp chuẩn hiện có như Ethernet, Tokenring,… để phục vụ cho việc gửi và nhận dữ liệu. * Các thành phần liên quan đến mạng Host: là một mạng máy tính riêng lẻ trên mạng. Mỗi host trên mạng TCP/IP chỉ có duy nhất một địa chỉ IP (IP number). Host name: đó là một tên tượng trưng có thể ánh xạ vào trong IP number. Một vài phương thức tồn tại biểu diễn cho ánh xạ đó, như là DNS ( Domain Name Service) và Sun’s NIS (Network Information Service). IETF: Internet Engineering Task Force là một nhóm chịu trách nhiệm cho việc duy trì chuẩn Internet và định nghĩa một chuẩn mới. Internet: là một mạng của nhiều mạng. Khi viết bằng chữ in hoa (Internet), nó quy chiếu đến toàn bộ mạng có mối liên hệ với nhau của nhiều mạng. IP number: là địa chỉ duy nhất cho mỗi host trên Internet. Nó được biểu diễn bằng một số nguyên 32 bit. Packet: là một thông điệp riêng lẻ gửi trên mạng. Đôi khi packet quy chiếu đến datagram, nhưng giới hạn cũ luôn quy chiếu đến dữ liệu ở tại lớp mạng và sau đó quy chiếu thông điệp đến lớp cao hơn. Protocol: tập hợp các định dạng dữ liệu và các thông điệp được sử dụng để chuyển thông tin. Những thực thể mạng khác nhau phải cùng một protocol theo trật tự để những thực thể mạng khác có thể hiểu được. Socket: là một sự truyền thông endpoint. Trong mô hình TCP/IP một socket thường thì được xác định bởi một cặp trùng khớp duy nhất của địa chỉ IP nguồn, số port và địa chỉ IP đích, số port. Router: một host mà được biết đến đối với các package trả về giữa các mạng khác nhau như thế nào. Một router có thể trở thành một điều gì đó đơn giản như là một máy với hai giao diện mạng (mỗi máy trên một mạng vật lý khác nhau). Port number: nằm trong khoảng 0-65535 (vì port được biểu diễn bằng số nguyên 16bits). Những post nằm trong khoảng 0-1023 là những port dành riêng cho những dịch vụ quen thuộc như HTTP, FTP và các dịch vụ của hệ thống, không nên dung những port này trong ứng dụng của chúng ta. Khi chúng ta viết các chương trình java truyền qua mạng điều này có nghĩa là chúng ta đang lập trình ở lớp Application. Chúng ta cần quan tâm tới các protocol TCP và UDP…. Mà chúng ta có thể dung các lớp trong package và java.net. Các lớp này cung cấp việc truyền thông qua mạng độc lập với hệ thống. Tuy nhiên chúng ta cần hiểu rõ sự khác biệt giữa TCP và UDP để xác định rõ những lớp nào trong thư viện java mà chúng ta sử dụng. Khi muốn hai chương trình truyền dữ liệu cho nhau một cách đáng tin cậy thì giữa chúng phải thiết lập một connection và gửi dữ liệu qua lại thông qua connection đó. TCP là một protocol dựa trên connection cung cấp các dataflow giữa hai máy tính và đảm bảo rằng data được gửi từ một đầu connection tới đầu kia không mất mát và đứng thứ tự (nếu có lỗi sẽ được thông báo). Những ứng dụng yêu cầu một kênh truyền point- to- point đámg tin cậy đều dùng TCP. HyperText Transfer Protocol (HTTP), File Transfer Protocol (FTP) và Telnet là những ứng dụng đòi hỏi một kênh truyền đáng tin cậy, thứ tự gửi và nhận phải đảm bảo là điều kiện buộc phải có đối với ứng dụng này. Khi dung HTTP để đọc từ một URL (Uniform Resouce Location) dữ liệu cần phải nhận được theo đúng thứ tự mà nó gửi đi nếu không mọi thứ sẽ bị đảo lộn. UDP protocol cung cấp việc truyền nhận data không đảm bảo giữa hai ứng dụng trên mạng. UDP không dựa trên connection như TCP. UDP gửi những package độc lập với nhau gọi là datagram từ ứng dụng này tới ứng dụng kia. Việc gửi những datagram giống như việc gửi thư thông qua bưu điện. Các package đến đích không theo thứ tự, không đảm bảo và các message độc lập với nhau. Do đó ta có thể định nghĩa : UDP là một protocol gửi những package độc lập gọi là các datagram từ máy này tới máy khác, không đảm bảo data đến thành công. UDP không dựa trên connection như TCP. Một máy tính nối mạng là mộtconnection vật lý đối với mạng đó. Tất cả những dữ liệu gửi cho máy tính qua connection đó. Tuy nhiên, dữ liệu có thể được gửi cho những ứng dụng khác nhau trên máy đó. Do đó làm cách nào để máy tính biết được ứng dụng nào sẽ nhận dữ liệu được gửi đến? . Điều này được giải thích quyết thông qua việc sử dụng port, mỗi ứng dụng mạng có một port tương ứng. Dữ liệu truyền qua mạng có kèm theo thông tin địa chỉ nhằm xác định máy tính và port đích. Mỗi máy tính được xác định bằng một đỉa chỉ IP 32bits, IP protocol dung địa chỉ này để phân phát dữ liệu đúng cho từng máy. Port được xác định bằng 1 số 16bits. Các protocol TCP và UDP dung port number để phân phát dữ liệu tới đúng cho từng ứng dụng. Trong việc truyền nhận data dựa trên connection, một ứng dụng thiết lập một connection với một ưúng dụng khác bằng cách gắn một socket cho mỗi port number. Do đó sẽ không thể có hai ứng dụng dung chung một port. Thông qua các lớp trong packet java.net của ngôn ngữ java, các chương trình viết bằng java có thể dung TCP hay UDP để truyền nhận data qua mạng. Trong package java.net có URL, URL connection, Socket và ServerSocket dung TCP và các lớp DatagramPackage, DatagramServer dùng UDP. Việc sử dụng những khả năng mạng do java support khá dễ dàng so với C và C++. Applet được nhúng trong các file HTML. Để chạy chương trình Applet qua mạng, trước hết chúng ta cần load các trang HTML này về máy cục bộ. Các Applet được nhúng trong trang HTML thông qua phần khai báo Applet. Việc load các file ảnh và file Audio được thực hiện thông qua lớp URL trong packet java.net. URL : Uniform Resouce Location là địa chỉ tài nguyên nào đó trên mạng. Để load một file ảnh từ mạng, đầu tiên trong chương trình java cần tạo một URL 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._.

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

  • docP0077.doc
Tài liệu liên quan