TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG GẮN BÓ DỮ LIỆU TRONG CSDL PHÂN TÁN VIẾT CHƯƠNG TRÌNH MINH HỌA

23 662 0
TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG GẮN BÓ DỮ LIỆU TRONG CSDL PHÂN TÁN VIẾT CHƯƠNG TRÌNH MINH HỌA

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC LỜI MỞ ĐẦU I. MỘT SỐ KHÁI NIỆM VÀ GIẢI THUẬT ĐẢM BẢO TÍNH GẮN BÓ TRONG CSDL PHÂN TÁN 3 I.1 Khái niệm giao dịch: 3 I.2 Các tính chất của giao dịch: 3 I.3 Các loại giao dịch 4 I.3.1 Giao dịch phẳng: 4 I.3.2 Giao dịch lồng: 4 I. 4. Giải thuật hai pha tuyến tính : 5 II. ĐẶT VẤN ĐỀ VÀ GIẢI QUYẾT VẤN ĐỀ 6 1. Sử dụng ngôn ngữ java để xây dựng chương trình 6 2. Thiết kế cơ sở dữ liệu 6 2.1. Thiết kế cơ sở dữ liệu 7 2.2. Đăng kết với ODBC 7 2.3. Kết nối cơ sở dữ liệu trong java 7 3. Mô hình ClientServer 9 3.1. Xây dựng hệ đơn Server theo mô hình ClientServer thường gặp 9 3.2. Xây dựng Server 11 3.3. Xây dựng Client 12 3.4. Xây dựng Monitor để Manager hệ thống 12 4. Kiểm tra tính gắn bó dữ liệu 13 III. MỘT SỐ KẾT QUẢ THỬ NGHIỆM 14 KẾT LUẬN TÀI LIỆU THAM KHẢO LỜI MỞ ĐẦU Với sự phát triển của khoa học và kỹ thuật, ngày nay các mạng máy tính đã phát triển một cách nhanh chóng và đa dạng cả về quy mô, hệ điều hành và ứng dụng. Khi thông tin có thể được sử dụng chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các công việc với những thay đổi về chất như: Ðáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại. Cung cấp sự thống nhất giữa các dữ liệu. Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán. Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới. Thông qua môi trường mạng, con người có thể giao tiếp với nhau và chia sẻ thông tin dữ liệu dù ở khoảng cách rất xa. Vấn đề đặt ra là làm sao phải đảm bảo dữ liệu trên mạng phải thống nhất. Đây cũng chính là một trong những yêu cầu chính của lĩnh vực Lập trình mạng. Nội dung chủ yếu trình bày trong tiểu luận này là giải quyết một vấn đề về lập trình mạng, đó là chia sẻ cơ sở dữ liệu giữa các đối tượng ở xa nhau và đảm bảo tính gắn bó của dữ liệu. Chương trình được viết trên ngôn ngữ Java và sử dụng Hệ quản trị cơ sở dữ liệu Access. Chương trình có thể được sử dụng để tham khảo đối với những người muốn tìm hiểu về lập trình mạng bằng Java. Tôi xin chân thành cảm ơn TS Lê Văn Sơn và các bạn lớp Khoa học máy tính khoá 11 (2009 – 2011) Đại học Đà Nẵng đã giúp tôi hoàn thành tiểu luận này

- 1 - TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN HỌC LẬP TRÌNH MẠNG Đề tài : GẮN BÓ DỮ LIỆU TRONG CSDL PHÂN TÁN VIẾT CHƯƠNG TRÌNH MINH HỌA GVHD : PGS. TS. Lê Văn Sơn HVTH : VŨ VƯƠNG DUY VŨ CA GIÁP LỚP : Cao học khóa 11 (2009 - 2010) MỤC LỤC LỜI MỞ ĐẦU HVTH: Vũ Vương Duy – Vũ Ca Giáp Đà Nẵng, tháng 3/2010 - 2 - I. MỘT SỐ KHÁI NIỆM VÀ GIẢI THUẬT ĐẢM BẢO TÍNH GẮN BÓ TRONG CSDL PHÂN TÁN 4 I.1 Khái niệm giao dịch: 4 I.2 Các tính chất của giao dịch: 4 I.3 Các loại giao dịch 5 I.3.1 Giao dịch phẳng: 5 I.3.2 Giao dịch lồng: 5 I. 4. Giải thuật hai pha tuyến tính : 6 II. ĐẶT VẤN ĐỀ VÀ GIẢI QUYẾT VẤN ĐỀ 7 1. Sử dụng ngôn ngữ java để xây dựng chương trình 7 2. Thiết kế cơ sở dữ liệu 7 2.1. Thiết kế cơ sở dữ liệu 8 2.2. Đăng kết với ODBC 8 2.3. Kết nối cơ sở dữ liệu trong java 8 3. Mô hình Client/Server 10 3.1. Xây dựng hệ đơn Server theo mô hình Client/Server thường gặp 10 3.2. Xây dựng Server 12 3.3. Xây dựng Client 13 3.4. Xây dựng Monitor để Manager hệ thống 13 4. Kiểm tra tính gắn bó dữ liệu 14 III. MỘT SỐ KẾT QUẢ THỬ NGHIỆM 15 KẾT LUẬN TÀI LIỆU THAM KHẢO HVTH: Vũ Vương Duy – Vũ Ca Giáp - 3 - LỜI MỞ ĐẦU Với sự phát triển của khoa học và kỹ thuật, ngày nay các mạng máy tính đã phát triển một cách nhanh chóng và đa dạng cả về quy mô, hệ điều hành và ứng dụng. Khi thông tin có thể được sử dụng chung thì nó mang lại cho người sử dụng khả năng tổ chức lại các công việc với những thay đổi về chất như: - Ðáp ứng những nhu cầu của hệ thống ứng dụng kinh doanh hiện đại. - Cung cấp sự thống nhất giữa các dữ liệu. - Tăng cường năng lực xử lý nhờ kết hợp các bộ phận phân tán. - Tăng cường truy nhập tới các dịch vụ mạng khác nhau đang được cung cấp trên thế giới. Thông qua môi trường mạng, con người có thể giao tiếp với nhau và chia sẻ thông tin dữ liệu dù ở khoảng cách rất xa. Vấn đề đặt ra là làm sao phải đảm bảo dữ liệu trên mạng phải thống nhất. Đây cũng chính là một trong những yêu cầu chính của lĩnh vực Lập trình mạng. Nội dung chủ yếu trình bày trong tiểu luận này là giải quyết một vấn đề về lập trình mạng, đó là chia sẻ cơ sở dữ liệu giữa các đối tượng ở xa nhau và đảm bảo tính gắn bó của dữ liệu. Chương trình được viết trên ngôn ngữ Java và sử dụng Hệ quản trị cơ sở dữ liệu Access. Chương trình có thể được sử dụng để tham khảo đối với những người muốn tìm hiểu về lập trình mạng bằng Java. Tôi xin chân thành cảm ơn TS Lê Văn Sơn và các bạn lớp Khoa học máy tính khoá 11 (2009 – 2011) - Đại học Đà Nẵng đã giúp tôi hoàn thành tiểu luận này. Học viên thực hiện: Vũ Vương Duy – Vũ Ca Giáp HVTH: Vũ Vương Duy – Vũ Ca Giáp - 4 - I. MỘT SỐ KHÁI NIỆM VÀ GIẢI THUẬT ĐẢM BẢO TÍNH GẮN BÓ TRONG CSDL PHÂN TÁN I.1 Khái niệm giao dịch: Giao dịch là một đơn vị tính toán nhất quán và đáng tin cậy. Vì thế về mặt trực quan, một giao dịch nhận một CSDL, thực hiện một hành động trên CSDL và sinh ra một bản CSDL mới, gây ra một dịch chuyển trạng thái. Điều này tương tự như điều mà câu vấn tin thực hiện, ngoại trừ trường hợp nếu CSDL nhất quán trước khi thực hiện giao dịch thì cũng sẽ nhất quán vào lúc kết thúc, cho dù : (1) giao dịch có thể thực hiện đồng thời với những giao dịch khác. (2) có xảy ra sự cố trong lúc thực hiện giao dịch. I.2 Các tính chất của giao dịch: Các khía cạnh nhất quán và khả tín của giao dich là do 4 tính chất: tính nguyên tử (atomicity), tính nhất quán (consistency), tính biệt lập (isolation) và tính bền vững; và thường được gọi chung là tính chất ACID của giao dịch. Tính nguyên tử: Tính nguyên tử liên quan đến sự kiện là một giao dịch được xử lý như một đơn vị hoạt tác. Chính vì thế mà các hành động của giao dịch, hoặc tất cả đều hoàn tất hoặc không một hành động nào hoàn tất. Tính nhất quán: Tính nhất quán của một giao dịch chỉ đơn giản là tính đúng đắn của nó. Nói cách khác, một giao dịch là một chương trình đúng đắn, ánh xạ CSDL từ trạng thái nhất quán này sang trạng thái nhất quán khác Tính biệt lập: Biệt lập là tính chất của các giao dịch, đòi hỏi mỗi giao dịch phải luôn nhìn thấy CSDL nhất quán. Nói cách khác, một giao dịch đang thực thi không thể làm lộ ra các kết quả của nó cho những giao dịch khác đang cùng hoạt động trước khi nó ủy thác. Tính bền vững: Tính bền vững muốn nói đến tính chất của giao dịch, đảm bảo rằng một khi giao dịch ủy thác, kết quả của nó được duy trì cố định và không bị xóa ra khỏi CSDL. HVTH: Vũ Vương Duy – Vũ Ca Giáp - 5 - I.3 Các loại giao dịch I.3.1 Giao dịch phẳng: Giao dịch phẳng có một khởi điểm duy nhất (Begin_transaction) và một điểm kết thúc duy nhất (End_transaction). I.3.2 Giao dịch lồng: Đây là một mô hình giao dịch cho phép một giao dịch gồm chứa những giao dịch khác với điểm bắt đầu và ủy thác riêng của chúng. Những giao dịch như thế được gọi là giao dịch lồng (nested transaction). Những giao dịch được đặt vào trong giao dịch khác thường được gọi là giao dịch con. Các giao dịch lồng đã được chú ý như một khái niệm giao dịch tổng quát hơn. Mức độ lồng nói chung là để ngỏ, cho phép các giao dịch con cũng có thể có các giao dịch lồng. Tính tổng quát này có ích trong các lĩnh vực ứng dụng mà ở đó các giao dịch phức tạp hơn so với việc xử lý dữ liệu truyền thống. Giao dịch lồng có thể phân loại thành: kiểu lồng đóng (closed nesting) và kiểu lồng mở (open nesting) do các đặc trưng kết thúc của chúng. Các giao dịch lồng đóng ủy thác theo lối từ dưới lên đến gốc. Vì thế một giao dịch con lồng bắt đầu sau cha và hoàn tất trước nó, và việc ủy thác giao dịch con phụ thuộc vào việc ủy thác của giao dịch cha. Ngữ nghĩa của những giao dịch này cưỡng chế tính nguyên tử tại mức trên cùng. Kiểu lồng mở nới lỏng sự hạn chế về tính nguyên tử của của các giao dịch lồng đóng. Vì thế một giao dịch lồng mở cho phép bên ngoài giao dịch thấy được các kết quả một phần của nó. Ưu điểm của các giao dịch lồng biểu hiện qua những điểm sau: trước tiên, chúng cung cấp một mức độ đồng thời cao cho các giao dịch. Vì một giao dịch có chứa đựng một số giao dịch khác, tính đồng thời là cao hơn ngay bên trong một giao dịch. Thí dụ nếu giao dịch đăng ký tua du lịch được cài đặt như giao dịch phẳng, rất có thể chúng ta không truy xuất được các mẫu tin về tour cụ thể nào đó cùng một lúc. Nói cách khác, nếu một công ty du lịch đưa ra giao dịch đăng ký một tua du lịch, bất kỳ một giao dịch đồng thời khác muốn truy xuất tua đó đều phải đợi cho đến khi kết thúc giao dịch đầu tiên mà trong đó nó gồm cả các công việc đặt phòng khách sạn và mướn xe ngoài việc tua. Tuy nhiên, một cài đặt lồng sẽ cho phép giao dịch thứ hai truy xuất dữ liệu về tua ngay khi giao dịch con Tour của HVTH: Vũ Vương Duy – Vũ Ca Giáp - 6 - giao dịch đăng ký tua du lịch thứ nhất hoàn tất. Nói cách khác, chúng ta có thể thực hiện một mức đồng bộ hóa chi tiết hơn giữa các giao dịch đồng thời. Ưu điểm thứ hai của giao dịch lồng là khả năng khôi phục. Chúng ta có thể khôi phục một cách độc lập cho mỗi giao dịch con sau khi gặp sự cố. Điều này hạn chế những tổn hại một phần trong các giao dịch nhỏ khiến chi phí khôi phục thấp hơn. Trong một giao dịch phẳng, nếu một thao tác nào bị thất bại, toàn bộ giao dịch đều bị hủy bỏ và khởi động lại, còn trong một giao dịch lồng, nếu một thao tác thất bại, chỉ giao dịch con chứa thao tác đó cần phải hủy bỏ và khởi động lại. Nhằm duy trì tính chất nguyên tử và tính chất bền vững của các giao dịch phân tán, các nhà nghiên cứu đã đưa ra một số thuật toán, trong đó có giải thuật hai pha tuyến tính (linear 2PC) (cũng được gọi là nghi thức 2PC lồng)[Gray, 1979] I. 4. Giải thuật hai pha tuyến tính : Chúng ta giả thiết rằng, tại vị trí nguồn của giao dịch một tiến trình thực hiện các thao tác của nó, tiến trình này được gọi là điều phối viên (Coordinator). Điều phối viên trao đổi với các thành viên (Participant) tại những vị trí có tham gia vào việc thực hiện các thao tác của giao dịch. Có một thứ tự giữa các vị trí trong hệ thống dành cho việc giao tiếp. Chúng ta hãy giả thiết rằng thứ tự giữa các vị trí có tham gia vào việc thực hiện một giao dịch là 1, 2, …, N với điều phối viên là vị trí đầu tiên trong thứ tự này. Nghi thức 2PC được cài đặt bằng cách trong pha đầu tiên truyền tới [ tính từ điều phối viên (số 1) đến N] và trong pha thứ hai truyền ngược từ N về điều phối viên. Thuật toán 2PC tuyến tính hoạt động theo cách sau: Điều phối viên gửi thông báo prepare đến thành viên 2. Nếu thành viên 2 chưa sẵn sàng ủy thác giao dịch, nó gửi thông báo biểu quyết hủy bỏ vote-abort (VA) và giao dịch bị hủy tại thời điểm này (hủy bỏ đơn phương của 2). Ngược lại nếu thành viên 2 đồng ý ủy thác, nó gửi thông báo vote-commit(VC) cho thành viên 3 rồi chuyển sang trạng thái READY. Quá trình này tiếp tục cho đến khi một biểu quyết ủy thác đến được thành viên N. Đến đây kết thúc pha đầu tiên. Nếu N quyết định ủy thác, nó gửi cho thành viên N-1 thông báo global-commit (GC); bằng không, nó gửi một thông báo toàn cục global-abort(GA). Theo đó các thành viên sẽ chuyển sang trạng thái thích hợp (COMMIT hoặc ABORT) và làm lan truyền thông báo trở về điều phối viên. Thuật HVTH: Vũ Vương Duy – Vũ Ca Giáp 1 2 3 4 5 N prepare VC/VA VC/VA VC/VA VC/VA GC/GA GC/GA GC/GA GC/GA GC/GA Pha 1 Pha 2 - 7 - toán được mô tả trong hình 1: Hình 1: Cấu trúc giao tiếp 2PC tuyến tính VC: vote-commmit; VA: vote-abort; GC: global commit; GA: global-abort II. ĐẶT VẤN ĐỀ VÀ GIẢI QUYẾT VẤN ĐỀ 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. Hãy 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ó 1. Đây là hệ đơn Server, có thể hoạt động theo mô hình Client/Server thường gặp 2. 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 3. 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 1. Sử dụng ngôn ngữ java để xây dựng chương trình Các đặc điểm của java có thể tóm gọn trong một câu như sau: “Java là một ngôn ngữ đơn giản, hướng đối tượng, phân tán, thông dịch mạnh mẽ, bảo mật, cấu trúc độc lập, khả chuyển, hiệu quả cao và linh động” Để soạn thảo một chương trình java có thể sử dụng nhiều trình biên soạn khác nhau như Notepad, Jcreator, Editplus, NetBeans, Jbuilder, VisualAge Sau khi soạn thảo chương trình java, có thể sử dụng trình biên dịch JDK hoặc SDK để dịch và chạy chương trình. 2. Thiết kế cơ sở dữ liệu Yêu cầu đầu tiên của bài toán là phải có một hệ thống cơ sở dữ liệu. Cơ sở dữ liệu này sẽ phối hợp với một hoạt động cập nhật, tra cứu thông tin từ xa. HVTH: Vũ Vương Duy – Vũ Ca Giáp 1 2 3 4 5 N prepare VC/VA VC/VA VC/VA VC/VA GC/GA GC/GA GC/GA GC/GA GC/GA Pha 1 Pha 2 - 8 - Trong tiểu luận này, Cơ sở dữ liệu được thiết kế không nhằm mục đích quản lý mà chỉ mô phỏng cho yêu cầu về cập nhật, tra cứu thông tin. Do đó có thể thiết kế rất đơn giản. Ở đây có thể kết nối cơ sở dữ liệu đơn giản như sau: 2.1. Thiết kế cơ sở dữ liệu - Thiết kế cơ sở dữ liệu Books sử dụng hệ quản trị cơ sở dữ liệu Access - Cơ sở dữ liệu Books sẽ bao gồm table Books - Table Books gồm một trường Maso để lưu các mã số về các cuốn sách 2.2. Đăng kết với ODBC Trong Tiểu luận này ta dùng Cơ chế ODBC (Open Database Connectivity) để kết nối đến Cơ sở dữ liệu. ODBC là một giao tiếp phổ biến nhất trong thế giới các máy tính cá nhân và dần dần đi vào các môi trường khác. ODBC là một cài đặt của hãng Microsoft cung cấp các hàm cho phép các ngôn ngữ lập trình truy cập vào CSDL. Để tạo một kết nối ODBC trên một máy tính, ta thực hiện các bước sau: - Vào Control Panel chọn Data Sources (ODBC) 32 bit (Win 98, Me) hoặc vào Control Panel/ Administrative Tools chọn Data Sources (ODBC) (Win NT, 2000, XP) - Chọn tab System DSN, Click vào button Add, chọn phương thức điều khiển dữ liệu dăng kết: Driver do Microsoft Access, Click Finish - Bạn sẽ thấy một cửa sổ hiện ra, Click vào Select và chọn file Access, (trong trường hợp này là Books.mdb), bấm vào sau đó Click vào button OK. Nhập Textbox Data Source Name : DSNThuVien. Sau đó chọn OK. Như vậy là bạn đã hoàn thành việc đăng kết Access thông qua ODBC. 2.3. Kết nối cơ sở dữ liệu trong java a. Nạp trình điều khiển Cấu trúc lệnh : Class.forName("myDriver.ClassName"); Trong đó: myDriver: tên trình điều khiển ClassName: tên của Class tương ứng HVTH: Vũ Vương Duy – Vũ Ca Giáp - 9 - b. Tạo kết nối Ta tạo đối tượng Connection (có tên là conn) bằng cách gọi phương thức getConnection của lớp DriverManager như sau: Connection conn=DriverManager.getConnection(url,”myLogicName”,”myPasswo rd”) Trong đó: url: là một chuỗi nêu lên đặc điểm của CSDL có dạng: jdbc:subprotocol:subname subprotocol: là giao thức con tương ứng với loại CSDL subname: là tên CSDL (DataSource) “myLoginName”: là tên người dùng khi đăng nhập vào CSDL “myPassword”: là mật khẩu người dùng khi đăng nhập vào CSDL c. Tạo đối tượng Statement Tất cả các lệnh dùng để tác động lên CSDL đều phải thông qua đối tượng Statement hoặc một đối tượng cùng tính chất như PreparedStatement hay CallableStatement Tạo đối tượng Statement từ kết nối conn: Statement stmt = conn.createStatement(); Hoặc CallableStatement Callstmt=conn.prepareCall(); PreparedStatement Prepstmt=conn.prepareStatement(); Gọi thực thi lệnh sql như sau: Statement stmt=conn.createStatement(); stmt.executeUpdate(sSQL); với sSQL là câu lệnh sql Kết nối cơ sở dữ liệu sử dụng trong bài toán try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectionknoi=DriverManager.getConnection("jdbc:odbc:DSNThuVi en"); HVTH: Vũ Vương Duy – Vũ Ca Giáp - 10 - Statement lenhSQL = knoi.createStatement(); } catch(ClassNotFoundException ex){ } catch(SQLException ex){ } 3. Mô hình Client/Server 3.1. Xây dựng hệ đơn Server theo mô hình Client/Server thường gặp Trong mô hình này, chương trình ứng dụng được chia thành 2 thành phần: - Quá trình chuyên cung cấp một số phục vụ nào đó, chẳng hạn: phục vụ tập tin, phục vụ máy in, phục vụ thư điện tử, phục vụ Web Các quá trình này được gọi là các trình phục vụ hay Server. - Một số quá trình khác có yêu cầu sử dụng các dịch vụ do các server cung cấp được gọi là các quá trình khách hàng hay Client. Việc giao tiếp giữa client và server được thực hiện dưới hình thức trao đổi các thông điệp (Message). Để được phục vụ, client sẽ gởi một thông điệp yêu cầu (Request Message) mô tả về công việc muốn server thực hiện. Khi nhận được thông điệp yêu cầu, server tiến hành phân tích để xác định công việc cần phải thực thi. Nếu việc thực hiện yêu cầu này có sinh ra kết quả trả về, server sẽ gởi nó cho client trong một thông điệp trả lời (Reply Message). Dạng thức (format) và ý nghĩa của các thông điệp HVTH: Vũ Vương Duy – Vũ Ca Giáp [...]... tính gắn bó về dữ liệu  Xây dựng Monitoring dùng để kiểm tra quá trình cập nhật dữ liệu  Chương trình được xây dựng bằng ngôn ngữ Java Tuy nhiên, do bản thân mới bước đầu tìm hiểu và làm quen với ngôn ngữ lập trình Java nên chương trình được viết chưa tối ưu, chưa khai thác hết được những đặc điểm nổi trội của ngôn ngữ Java như: Giao diện chương trình, kế thừa, đóng gói, tính mềm dẻo, Hy vọng rằng trong. .. Kiểm tra tính gắn bó dữ liệu Kết thúc Cho một hệ thống cho phép cập nhật thông tin hay tra cứu thông tin cần thiết Thông thường một ứng dụng nhiều người dùng (multiuser application) làm việc với CSDL, ta sẽ gặp phải trường hợp hai người cùng 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 Do đó,... trên cơ sở dữ liệu: HVTH: Vũ Vương Duy – Vũ Ca Giáp - 21 - HVTH: Vũ Vương Duy – Vũ Ca Giáp - 22 - KẾT LUẬN Trong tiểu luận này đã giải quyết các vấn đề cơ bản đặt ra ban đầu như:  Thực hiện kết nối Client/Server, trong đó một 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 Quá trình này... 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 transaction ngăn không cho các truy cập từ những người dùng khác Trong java, khi chế độ Auto-Commit được mở, mỗi câu lệnh được xem như một transaction và được commit tức thời sau khi thực hiện xong, thì việc lock dữ liệu sẽ được... cũng như các bạn trong lớp sẽ có những kỹ năng tốt hơn về Lập trình bằng ngôn ngữ Java để phục vụ tốt hơn cho công việc của mình HVTH: Vũ Vương Duy – Vũ Ca Giáp - 23 - TÀI LIỆU THAM KHẢO 1 Trần Tiến Dũng, Giáo trình lý thuyết và bài tập Java, Nhà xuất bản giáo dục, 1999 2 Ngô Bá Hùng - Nguyễn Công Huy, Bài giảng Lập trình truyền thông, Khoa Công nghệ thông tin, Đại học Cần Thơ 3 Các tài liệu trên Internet... gọi trong từng câu lệnh Tác dụng của việc lock dữ liệu là giúp người dùng không phải nhận những giá trị sai hay những giá trị chưa được xác lập Có thể biểu diễn quá trình transaction như sau: HVTH: Vũ Vương Duy – Vũ Ca Giáp - 15 Tạo Connection Chấm dứt auto-commit Các lệnh SQL Update, Insert, Delete Transaction commit Các lệnh SQL Update, Insert, Delete Transaction commit Trong quá trình cập nhật dữ. .. Ca Giáp - 17 - 3/ Client thực hiện cập nhật dữ liệu Ví dụ: Chèn cuốn sách có mã số 14 vào cơ sở dữ liệu Thao tác: - Kích nút “Chen” - Một cửa sổ mới xuất hiện, nhập mã số sách cần chèn vào và kích nút “Chen” để chèn vào hoặc “Tro ve” để tắt cửa sổ - Kết quả sẽ hiển thị trên cửa sổ của Client HVTH: Vũ Vương Duy – Vũ Ca Giáp - 18 4/ Client thực hiện sửa dữ liệu Ví dụ: sửa mã số sách 14 thành 15 Thao... hiện các công việc sau: - Quan sát các Client kết nối vào Server - Quan sát các công việc mà các client thực hiện trên cơ sở dữ liệu Để đảm bảo Monitoring luôn nhận được thông tin về các hoạt động truy xuất dữ liệu giữa Client/Server, các hoạt động về việc kết nối và truy xuất dữ liệu sẽ được ghi vào file txtketnoi.txt và txtthaotac.txt HVTH: Vũ Vương Duy – Vũ Ca Giáp - 14 Bắt đầu Tạo giao diện Kết nối... khối cho chương trình chính của Server như sau: Bắt đầu Tạo giao diện Đợi kết nối từ các Client Nhận kết nối Đúng Sai Tạo một Thread mới cho MultipleSocketServer Kết thúc - Tuy nhiên đây là chương trình đa truy cập, ngẫu nhiên, từ xa với số lượng truy cập lớn, do đó phải xây dựng một Server có thể nhận kết nối từ nhiều Client cùng lúc Sơ đồ khối cho MultipleSocketServer: Bắt đầu Tạo kết nối với CSDL Nhận... hiển thị trên cửa sổ của Client 5/ Client thực hiện xoá dữ liệu Ví dụ: xoá cuốn sách có mã số 15 Thao tác: - Kích nút “Xoa” - Một cửa sổ mới xuất hiện, nhập mã số sách cần xoá và kích nút “Xoa” để xoá hoặc “Tro ve” để tắt cửa sổ - Kết quả sẽ hiển thị trên cửa sổ của Client HVTH: Vũ Vương Duy – Vũ Ca Giáp - 19 - 6/ Client thực hiện xem tất cả dữ liệu Thao tác: - Kích nút “Xuat” để xem tất cả các sách . bằng Java. Tôi xin chân thành cảm ơn TS Lê Văn Sơn và các bạn lớp Khoa học máy tính khoá 11 (2009 – 2 011) - Đại học Đà Nẵng đã giúp tôi hoàn thành tiểu luận này. Học viên thực hiện: Vũ Vương. CHƯƠNG TRÌNH MINH HỌA GVHD : PGS. TS. Lê Văn Sơn HVTH : VŨ VƯƠNG DUY VŨ CA GIÁP LỚP : Cao học khóa 11 (2009 - 2010) MỤC LỤC LỜI MỞ ĐẦU HVTH: Vũ Vương Duy – Vũ Ca Giáp Đà Nẵng, tháng 3/2010 - 2 - I (Reply Message). Dạng thức (format) và ý nghĩa của các thông điệp HVTH: Vũ Vương Duy – Vũ Ca Giáp - 11 - HVTH: Vũ Vương Duy – Vũ Ca Giáp - 12 - 3.2. Xây dựng Server - Sơ đồ khối cho chương trình chính

Ngày đăng: 12/11/2014, 08:51

Từ khóa liên quan

Mục lục

  • I. MỘT SỐ KHÁI NIỆM VÀ GIẢI THUẬT ĐẢM BẢO TÍNH GẮN BÓ TRONG CSDL PHÂN TÁN

    • I.1 Khái niệm giao dịch:

    • I.2 Các tính chất của giao dịch:

      • I.3 Các loại giao dịch

      • I.3.1 Giao dịch phẳng:

      • I.3.2 Giao dịch lồng:

      • I. 4. Giải thuật hai pha tuyến tính :

      • II. ĐẶT VẤN ĐỀ VÀ GIẢI QUYẾT VẤN ĐỀ

        • 1. Sử dụng ngôn ngữ java để xây dựng chương trình

        • 2. Thiết kế cơ sở dữ liệu

          • 2.1. Thiết kế cơ sở dữ liệu

          • 2.2. Đăng kết với ODBC

          • 2.3. Kết nối cơ sở dữ liệu trong java

            • a. Nạp trình điều khiển

            • b. Tạo kết nối

            • c. Tạo đối tượng Statement

            • 3. Mô hình Client/Server

              • 3.1. Xây dựng hệ đơn Server theo mô hình Client/Server thường gặp

              • 3.2. Xây dựng Server

              • 3.3. Xây dựng Client

              • 3.4. Xây dựng Monitor để Manager hệ thống

              • 4. Kiểm tra tính gắn bó dữ liệu

              • III. MỘT SỐ KẾT QUẢ THỬ NGHIỆM

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan