Trên thực tế ngày nay, việc sử dụng thư điện tử, lướt trên các trang Web, trao đổi với các cơ sở dữ liệu và sử dụng các ứng dụng phân tán ngày càng trở nên phức tạp hơn
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN Tel. (84-511) 736 949, Fax. (84-511) 842 771 Website: itf.ud.edu.vn, E-mail: cntt@edu.ud.vn LUẬN VĂN TỐT NGHIỆP KỸ SƯ NGÀNH CÔNG NGHỆ THÔNG TIN MÃ NGÀNH : 05115 ĐỀ TÀI : CHUYỂN ĐỔI CÁC BẢNG TỪ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQLSERVER SANG MYSQL Mã số : 07TLT-03 Ngày bảo vệ : 16-17/06/2009 SINH VIÊN : HUỲNH NGỌC ĐỨC LỚP : 07TLT CBHD : TS. NGUYỄN THANH BÌNH ĐÀ NẴNG, 05/2009 LỜI CẢM ƠN Lời đầu tiên tôi xin bày tỏ lòng biết ơn sâu sắc đến tất cả quý thầy cô, những người đã tận tụy dạy dỗ, truyền đạt kiến thức và kinh nghiệm quý báu cho tôi trong suốt năm năm học qua. Tôi xin chân thành cảm ơn TS. Nguyễn Thanh Bình - thuộc khoa Công nghệ thông tin, trường Đại học Bách khoa Đà Nẵng, người đã hướng dẫn, tạo điều kiện thuận lợi và giúp đỡ tôi trong suốt thời gian làm đề tài. Và để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình đã động viên, khích lệ và tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũng như quá trình thực hiện đề tài tốt nghiệp này. Xin chân thành cảm ơn các bạn trong khoa Công nghệ thông tin, đặc biệt là các bạn lớp 07TLT đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được cho tôi trong quá trình nghiên cứu và thực hiện đề tài. Một lần nữa xin chân thành cảm ơn! LỜI CAM ĐOAN Tôi xin cam đoan: 1 Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp của thầy TS. Nguyễn Thanh Bình. 2 Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. 3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn toàn trách nhiệm. Sinh viên Huỳnh Ngọc Đức MỤC LỤC MỞ ĐẦU 1 I. Bối cảnh đề tài .1 II. Giới thiệu đề tài .1 III. Nhiệm vụ thực hiện 1 i. Công nghệ 1 ii. Ứng dụng 1 IV. Bố cục trình bày .1 CHƯƠNG 1 .2 CƠ SỞ LÝ THUYẾT .2 I. Công nghệ Dot NET .2 1. Cấu trúc .Net Framework .2 2. Managed mođule 5 3. Metadata 6 4. Common Intermediate Language (CIL) .6 5. Assembly 7 6. Manifest 8 II. Microsoft SQL Server 2005 9 1. SQL Server Management Studio .10 2. Catalog views .10 3. Metadata function .11 4. Stored Procedrures .11 III. ADO.Net 11 1. Mô hình làm việc của ADO .11 ii. Thuận lợi của ADO.Net .12 iii. Cấu trúc của ADO.Net 13 iv. Các thành phần của ADO.Net .13 CHƯƠNG 2 .16 PHÂN TÍCH HỆ THỐNG .16 I. Giới thiệu bài toán: 16 II. Định hướng xây dựng chương trình 16 1. Các chức năng .16 2. Giải pháp xây dựng chương trình 17 III. Xây dựng mô hình Use Case 17 1. Xác định Actor và Use Case 17 2. Mô hình Use Case 18 IV. Đặt tả Use Case 18 1. Use Case Kết nối cơ sở dữ liệu 18 2. Use Case xem cấu trúc .19 3. Use Case xem lược đồ 20 4. Use Case xem dữ liệu .20 5. Use Case kết nối MySQL .21 6. Use Case chuyển đổi tất cả các bảng .22 7. Use Case chuyển đổi với bảng lựa chọn 23 CHƯƠNG 3 .26 THIẾT KẾ HỆ THỐNG 26 I. Hiện thực hóa các Use Case ở mức thiết kế .26 II. Sơ đồ lớp 30 1. Thiết kế chi tiết các lớp 30 2. Mối quan hệ giữa các lớp .34 CHƯƠNG 4 .35 PHÁT TRIỂN ỨNG DỤNG 35 I. Môi trường phát triển chương trình 35 II. Một số kết quả đạt được 35 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 40 DANH MỤC HÌNH ẢNH Hình 1.1: Visual Studio.Net và .Net Framework 3 Hình 1.2: Các thành phần của CLR .4 Hình 1.3: Mô hình thực thi ứng dụng .Net 5 Hình 1.4: Sơ đồ một assembly đa file .7 Hình 1.5: Mô hình làm việc của ADO 12 Hình 1.6: Cấu trúc của ADO.Net 13 Hình 1.7: Mô hình làm việc của DataSet .14 Hình 2.1: Mô hình chung cho việc chuyển đổi cơ sở dữ liệu .17 Hình 2.2: Sơ đồ Use Case của ứng dụng 18 Hình 3.1: Sơ đồ tuần tự của Use Case kết nối cơ sở dữ liệu 26 Hình 3.2: Sơ đồ tuần tự của Use Case xem cấu trúc cơ sở dữ liệu ở dạng cây .26 Hình 3.3: Sơ đồ tuần tự của Use Case xem dữ liệu Table 27 Hình 3.4: Sơ đồ tuần tự của Use Case xem lược đồ cơ sở dữ liệu .27 Hình 3.5: Sơ đồ tuần tự của Use Case chuyển đổi tất cả các bảng .28 Hình 3.6: Sơ đồ tuần tự của Use Case chuyển đổi với các bảng lựa chọn .29 Hình 3.7: Thiết kế chi tiết lớp KetNoiSqlServer .30 Hình 3.8: Thiết kế chi tiết lớp KetNoiMySQL 31 Hình 3.9: Thiết kế chi tiết lớp ThucThiScript .31 Hình 3.10: Thiết kế chi tiết lớp XuLy .32 Hình 3.11: Thiết kế chi tiết lớp XemDuLieu .32 Hình 3.12: Thiết kế chi tiết lớp ChuyenDoi .33 Hình 3.13: Sơ đồ lớp của ứng dụng 34 Hình 4.1: Giao diện chính khi khởi động ứng dụng .35 Hình 4.2: Giao diện kết nối với cơ sở dữ liệu SqlServer 36 Hình 4.3: Giao diện chính khi kết nối với cơ sở dữ liệu .36 Hình 4.4: Giao diện các chức năng trên câu cấu trúc 37 Hình 4.5: Dữ liệu của bảng 37 Hình 4.6: Chuyển đổi với các bảng được lựa chọn .38 Hình 4.7: Giao diện chuyển đổi thành công 38 Hình 4.8: Cơ sở dữ liệu vừa mới tạo ra 39 DANH MỤC BẢNG Bảng 3.1: Mô tả các thuộc tính của lớp KetNoiSqlServer .30 Bảng 3.2: Mô tả các phương thức của lớp KetNoiSqlServer 30 Bảng 3.3: Mô tả các thuộc tính của lớp KetNoiMySql .31 Bảng 3.4: Mô tả các phương thức của lớp KetNoiMySQL 31 Bảng 3.5: Mô tả các phương thức của lớp ThucThiScript 31 Bảng 3.6: Mô tả phương thức của lớp XuLy .32 Bảng 3.7: Mô tả thuộc tính lớp XemDuLieu .32 Bảng 3.8: Mô tả các phương thức của lớp XemDuLieu .32 Bảng 3.9: Mô tả thuộc tính của lớp ChuyenDoi 33 Bảng 3.10: Mô tả phương thức của lớp ChuyenDoi .33 MỞ ĐẦU I. Bối cảnh đề tài Với nhiều loại hệ quản trị cơ sở dữ liệu như hiện nay, một người dùng có thể lựa chọn một loại hệ quản trị cơ sở dữ liệu để phù hợp với nhu cầu sử dụng của mình. Khi đã có cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu này mà người sử dụng muốn dùng cơ sở dữ liệu đó ở hệ quản trị cơ sở dữ liệu khác thì một công việc thường thấy là chuyển đổi từ hệ quản trị cơ sở dữ liệu này sang hệ quản trị cơ sở dữ liệu khác. Một chương trình để chuyển đổi từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL có thể được sử dụng để đáp ứng một phần nào đó nhu cầu của người dùng hiện nay. II. Giới thiệu đề tài Với bối cảnh nêu trên, em đã thực hiện đề tài mang tên “Chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu từ SqlServer qua MySQL”. Chương trình ở đây được cung cấp dưới hình thức Winform. Với việc sử dụng chương trình dưới Desktop thì người sử dụng dễ dàng sử dụng chương trình này. III.Nhiệm vụ thực hiện i. Công nghệ • Tìm hiểu hệ quản trị cơ sở dữ liệu Microsoft SQL Server 2005. • Tìm hiểu hệ quản trị cơ sở dữ liệu MySQL. • Áp dụng ngôn ngữ mô hình hóa UML trong quá trình phân tích thiết kế. • Tìm hiểu và đưa ra các giải pháp trong quá trình thiết kế. ii. Ứng dụng • Nắm bắt xu hướng công nghệ và tìm hiểu nhu cầu của người dùng cũng như các chương trình hiện có giữa các hệ quản trị cơ sở dữ liệu để tạo một chương trình mang tính chất cộng đồng. • Chương trình cung cấp dưới hình thức ứng dụng Desktop. • Chương trình Winform với giao diện quen thuộc giúp người dùng dễ sử dụng. IV. Bố cục trình bày Báo cáo được trình bày theo bố cục sau: • Mở đầu • Chương 1. Cơ sở lý thuyết • Chương 2. Phân tích hệ thống • Chương 3. Thiết kế hệ thống • Chương 4. Cài đặt và triển khai dịch vụ • Kết luận Huỳnh Ngọc Đức, Lớp 07TLT 1 CHƯƠNG 1 CƠ SỞ LÝ THUYẾT I. Công nghệ Dot NET Trên thực tế ngày nay, việc sử dụng thư điện tử, lướt trên các trang Web, trao đổi với các cơ sở dữ liệu và sử dụng các ứng dụng phân tán ngày càng trở nên phức tạp hơn, vì thế trình độ và kỹ thuật lập trình để tạo và bảo dưỡng các phần mềm cũng ngày càng được yêu cầu cao hơn, tinh vi hơn. Các nhà lập trình chúng ta hàng ngày phải đối diện với COM, COM+, DCOM, SP, SOAP, XML, XSL,…, các bộ công cụ SDK (Software Developer Kit) phức tạp. Microsoft, cũng như đa số trong chúng ta, đã tạo nên ngày càng nhiều các công cụ chuyên dùng. Hệ điều hành hay các ứng dụng Windows đầy đủ tính năng hơn, theo yêu cầu của kỹ thuật công nghệ và do đó đã thêm vào không ít các SDK hay các tiêu chuẩn ở chỗ này, chỗ nọ. Kết quả là hệ điều hành, thư viện, công cụ trở nên không còn khả chuyển, quá nặng nề với biết bao các mở rộng. Thế là bộ khung .NET (.NET FRAMEWORK) ra đời, và nó thực sự làm thay đổi điều kể trên. Đó không chỉ là một bước tiến, một nâng cấp hay một hợp nhất các công việc. Mà đó chính là một điều vĩ đại, một cuộc bức phá ngoạn mục. Nó định nghĩa lại tất cả mọi điều bạn đã biết về lập trình cho máy PC về tất cả mọi hình thù lẫn kích thước, kể cả về ngôn ngữ lập trình trong đó. 1. Cấu trúc .Net Framework .Net Framework là một nền tảng cung cấp các tiện nghi cho việc xây dựng và chạy các ứng dụng. Các thành phần chính của nó là CLR(common language runtime) và FCL(.Net Framework Class Library). CLR trừu tượng hóa các dịch vụ của hệ điều hành và đóng vai trò là máy thực thi các ứng dụng chịu sự quản lý của nó. FCL cung cấp API hướng đối tượng để viết các ứng dụng .Net. Khi viết các ứng dụng .Net ta bỏ lại đằng sau các công cụ như Window API, MFC, ATL, COM, v.v và chỉ sử dụng FCL. Huỳnh Ngọc Đức, Lớp 07TLT 2 [...]... vào cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu SqlServer Ứng dụng sẽ thực hiện việc chuyển đổi dữ liệu và cấu trúc của các bảng trong cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu SqlServer sang hệ quản trị cơ sở dữ liệu MySQL tương ứng Cấu trúc và dữ liệu của các bảng được lưu trong hệ quản trị cơ sở dữ liệu MySQL Người dùng cũng có thể xem lại nội dung cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu MySQL. .. này tôi chỉ chú trọng vào việc chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL Chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL là một ứng dụng nhằm chuyển dữ liệu từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL, từ đó người dùng có thể sử dụng cơ sở dữ liệu trong hệ quản trị cơ sở dữ liệu MySQL giống như cơ sở dữ liệu đích SqlServer Quá trình này được mô... cơ sở dữ liệu ở dạng cây o Xem lược đồ: Xem lược đồ cơ sở dữ liệu o Xem dữ liệu: Xem dữ liệu của bảng được chọn Huỳnh Ngọc Đức, Lớp 07TLT 17 Đồ án tốt nghiệp Phân tích hệ thống o Chuyển đổi tất cả các bảng: Chuyển đổi tất cả các bảng có trong hệ quản trị cơ sở dữ liệu SqlServer qua MySQL o Chuyển đổi với các bảng được lựa chọn: Chuyển đổi tất cả các bảng được lựa chọn từ hệ quản trị cơ sở dữ liệu SqlServer. .. pháp thực hiện việc chuyển đổi qua lại giữa các hệ quản trị cơ sở dữ liệu, giúp người dùng có thể dùng vào các mục đích ứng dụng lưu trữ dữ liệu trong các loại hệ quản trị cơ sở dữ liệu khác nhau mà không cần phải tạo ra lại cơ sở dữ liệu ban đầu trong hệ quản trị cơ sở dữ liệu khác Các loại hệ quản trị cơ sở dữ liệu trong cùng một hãng Microsoft như SqlServer, Access có thể chuyển đổi qua lại cho nhau... trúc và dữ liệu của các bảng có tương đương với nhau hay chưa II Định hướng xây dựng chương trình 1 Các chức năng • Truy cập vào cơ sở dữ liệu của hệ quản trị cơ sở dữ liệu SqlServer và hiển thị cấu trúc của cơ sở dữ liệu đó dưới dạng cây • Xem lược đồ tổng quát của cơ sở dữ liệu • Xem dữ liệu của bảng được chọn trên cây cấu trúc • Chuyển đổi cấu trúc bảng và dữ liệu từ hệ quản trị cơ sở dữ liệu SqlServer. .. Use Case kết nối cơ sở dữ liệu SqlServer và Use Case kết nối MySQL Người sử dụng tạo ra tên cơ sở dữ liệu đích của hệ quản trị cơ sở dữ liệu MySQL Cơ sở dữ liệu đích từ hệ quản trị cơ sở dữ liệu MySQL được tạo ra từ cơ sở dữ liệu nguồn SqlServer với cấu trúc và dữ liệu bảng tương đương nhau Huỳnh Ngọc Đức, Lớp 07TLT 22 Đồ án tốt nghiệp Phân tích hệ thống Kết thúc Use Case o Các luồng sự kiện... chuyển dữ liệu tương ứng của các bảng giữa hai bên hệ quản trị cơ sở dữ liệu Hình 2.1: Mô hình chung cho việc chuyển đổi cơ sở dữ liệu III Xây dựng mô hình Use Case 1 Xác định Actor và Use Case • Actor Chương trình có một Actor Người dùng – sử dụng chương trình này để chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL • Use Case o Kết nối cơ sở dữ liệu: truy cập vào cơ sở dữ liệu o Xem... nghiệp Phân tích hệ thống Cơ sở dữ liệu đích từ hệ quản trị cơ sở dữ liệu MySQL được tạo ra từ cơ sở dữ liệu nguồn SqlServer với cấu trúc và dữ liệu bảng được lựa chọn tương đương nhau Kết thúc Use Case o Các luồng sự kiện khác Trong quá trình thực hiện chức năng chuyển đổi với tất cả các bảng nếu có lỗi xảy ra như: Dữ liệu chuyển đổi không phù hợp với cấu trúc của cơ sở dữ liệu đích, … thì ứng... lựa chọn từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL • Luồng sự kiện o Luồng sự kiện chính Use Case này bắt đầu khi người dùng muốn chuyển đổi với các bảng được lựa chọn Use Case này phải thực hiện Use Case kết nối cơ sở dữ liệu SqlServer và Use Case kết nối MySQL Người sử dụng tạo ra tên cơ sở dữ liệu đích của hệ quản trị cơ sở dữ liệu MySQL Lựa chọn các bảng cần chuyển đổi vào danh sách... nối MySQL và tạo ra cơ sở dữ liệu để chứa các bảng từ cơ sở dữ liệu đích • Hậu điều kiện o Nếu Use Case thực hiện thành công thì một cơ sở dữ liệu tương đương với cơ sở dữ liệu của SqlServer được tạo ra o Thông báo nếu chuyển đổi thành công • Điểm mở rộng Không có 7 Use Case chuyển đổi với bảng lựa chọn • Mô tả: Use Case này cho phép người dùng chuyển đổi với danh sách các bảng được lựa chọn từ hệ quản . SỞ DỮ LIỆU SQLSERVER SANG MYSQL Mã số : 07TLT- 03 Ngày bảo vệ : 16-17/06/2009 SINH VIÊN : HUỲNH NGỌC ĐỨC LỚP : 07TLT CBHD : TS. NGUYỄN THANH BÌNH . thành cảm ơn các bạn trong khoa Công nghệ thông tin, đặc biệt là các bạn lớp 07TLT đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được