KIỂM TRA TÍNH GẮN BÓ DỮ LIỆU Thông thường một ứng dụng có nhiều user làm việc với CSDL, ta sẽ gặp phải trường hợp hai hay nhiều user truy xuất và cập nhật trên cùng một dữ liệu, ta gọi
Trang 1BỘ GIÁO DỤC & ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG
-
-BÁO CÁO TIỂU LUẬN MÔN: LẬP TRÌNH MẠNG
GVHD: PGS.TS LÊ VĂN SƠN HVTH: NGUYỄN TUẤN TRUNG LỚP: KHOA HỌC MÁY TÍNH KHÓA: 24
Trang 2NỘI DUNG
Trang 3GIỚI THIỆU ĐỀ TÀI
Giả sử rằng ta có hệ thống CSDL phối hợp với một hoạt động được gọi từ xa nhằm phục vụ cho việc cập nhật hay tra cứu thông tin cần thiết.
Viết chương trình trên ngôn ngữ Java cho phép cập nhật CSDL có kiểm tra tính gắn bó.
Trang 4YÊU CẦU
Đây là hệ đơn Server, có thể hoạt động theo
mô hình Client/Server thường gặp.
Viết chương trình theo kiểu đa truy cập, ngẫu nhiên, từ xa với số lượng truy cập lớn.
Xây dựng Monitoring để Manager hệ thống có thể kiểm tra và điều khiển quá trình thực hiện.
Trang 5GIẢI QUYẾT VẤN ĐỀ
Trang 6NGÔN NGỮ LẬP TRÌNH
Trang 7XÂY DỰNG CƠ SỞ DỮ LIỆU
quản lý mà chỉ phục vụ cho yêu cầu về cập nhật, tra cứu thông tin
- Thiết kế cơ sở dữ liệu PhoneBooks sử dụng hệ quản trị cơ sở dữ liệu MySQL
- Cơ sở dữ liệu PhoneBooks sẽ bao gồm table tbl_telephone
- Table tbl_telephone gồm một trường Name và Telephone để lưu Tên và Số điện thoại
Trang 8KẾT NỐI CSDL
Class.forName(" com.mysql.jdbc.Driver" );
knoi = DriverManager.getConnection (url,userName, password);
Trang 9KIỂM TRA TÍNH GẮN BÓ DỮ LIỆU
Thông thường một ứng dụng có nhiều user làm việc với CSDL, ta sẽ gặp phải trường hợp hai hay nhiều user truy xuất và cập nhật trên cùng một dữ liệu, ta gọi đó là trạng thái xung đột Và khi đó số liệu dễ bị sai lạc và làm mất tính toàn vẹn, gắn bó của dữ liệu
Trang 10KIỂM TRA TÍNH GẮN BÓ DỮ LIỆU
Do đó, mỗi khi cập nhật thông tin hay tra cứu thông tin, phải kiểm tra để xác định quyền truy cập
để đọc hay sửa đổi nội dung các bảng cơ sở dữ liệu Chỉ cho phép cập nhật khi không có truy vấn nào đang tiến hành.
Các hệ CSDL có hỗ trợ transaction sẽ sử dụng cơ chế lock, khoá các khối dữ liệu đang ở trong một
người dùng khác
Trang 11MÔ HÌNH CLIENT – SERVER
Các chương trình ở máy khách (client) sẽ tạo ra kết nối (connection) với một máy chủ ở xa (server) sau đó gửi các yêu cầu đến máy chủ, các chương trình dịch vụ trên máy chủ sẽ xử lý các yêu cầu này và gửi kết quả ngược về cho máy khách
khách (client) phải có khả năng kết nối được với máy chủ (server) Quá trình kết nối này được Java thực hiện thông
chủ có thể trao đổi dữ liệu với nhau, thực hiện các yêu cầu về dịch vụ trên máy chủ
Trang 12LẬP TRÌNH SOCKET
int port = 8000
DataInputStream in
DataOutputStream out
ServerSocker server
Socket socket
server = new
ServerSocker(port);
socket = server.accept();
in = new DataInputStream
(socket.getInputStream());
out = new DataOutputStream
(socket.getOutputStream());
System.out.println
(in.readDouble());
out.writeDouble(aNumber);
int port = 8000 String host = “localhost”
DataInputStream in DataOutputStream out Socket socket
socket = new Socket(host, port());
in = new DataInputStream (socket.getInputStream()); out = new DataOutputStream (socket.getOutputStream()); out.writeDouble(aNumber);
System.out.println(in.readDouble( ));
Lắng nghe / Yêu cầu kết nối
Các luồng I/O Các luồng trao đổi
Sự trao đổi giữa Server và Client bằng socket trong java
Trang 13XÂY DỰNG SERVER
Sơ đồ thuật toán chương trình chính Server
Bắt đầu Tạo giao diện Đợi kết nối từ các Client
Nhận kết nối
Sai
Đúng
Tạo một Thread mới kết nối với a
(MultipleSocketServer)
Kết thúc
Trang 14XÂY DỰNG SERVER
Sơ đồ thuật toán MultipleSocketServer
Bắt đầu Tạo kết nối với CSDL
Nhận thông tin từ Client
Thực thi việc nhập, sửa, xoá, xuất
thông tin theo thông tin nhận được
Gửi kết quả về cho Client
Kết thúc
Trang 15XÂY DỰNG CLIENT
Thuật toán xây dựng Client
Bắt đầu Tạo giao diện Kết nối đến Server
Thực hiện yêu cầu thêm, sửa, xoá, xuất trên giao
diện Chuyển yêu cầu đến Server Nhận kết quả từ Server, xuất kết quả ra màn hình
Kết thúc
Trang 16XÂY DỰNG MONITORING
Sơ đồ thuật toán
Bắt đầu Tạo giao diện Kết nối đến Server Thực hiện yêu cầu kiểm tra kết nối, kiểm tra thao tác, thoát
Chuyển yêu cầu đến Server Nhận kết quả từ Server, xuất kết quả ra màn hình
Kết thúc
Trang 17KẾT LUẬN
Server có thể nhận kết nối từ nhiều Client cùng lúc
Mỗi Client có thể kết nối vào cơ sở dữ liệu tại Server và thực hiện các hoạt động thêm, sửa, xoá, xuất, thoát
cập nhật dữ liệu
thử nghiệm, chưa phải là một chương trình hoàn chỉnh
nối lớn, cũng như khi dữ liệu yêu cầu lớn
Trang 18Xin chân thành cảm ơn!!!