Luận văn Chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu SQL Server sang MySQL

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

1. Công nghệ 1

2. Ứ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. 11

3. Metadata function 11

4. Stored Procedrures 11

III. ADO.Net 11

1. Mô hình làm việc của ADO 11

2. Thuận lợi của ADO.Net 12

3. Cấu trúc của ADO.Net 13

4. 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 16

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 25

THIẾT KẾ HỆ THỐNG 25

I. Hiện thực hóa các Use Case ở mức thiết kế 25

II. Sơ đồ lớp 29

1. Thiết kế chi tiết các lớp 29

2. Mối quan hệ giữa các lớp 33

CHƯƠNG 4 34

PHÁT TRIỂN ỨNG DỤNG 34

I. Môi trường phát triển chương trình 34

II. Một số kết quả đạt được 34

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 39

 

 

doc49 trang | Chia sẻ: netpro | Lượt xem: 2887 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Chuyển đổi các bảng từ hệ quản trị cơ sở dữ liệu SQL Server sang MySQL, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
biên dịch tương ứng biên dịch thành các mô đun chứa mã CIL. Các mô đun này được định dạng để chạy trên CLR nên được gọi là các managed module. Các managed module của cùng một ứng dụng được liên kết lại với nhau thành một cơ cấu gọi là assembly. Khi chạy ứng dụng, CLR dựa vào các thông tin trong mô đun chính của assembly để nạp các mô đun khác khi cần thiết. Managed mođule Khi xây dựng một chương trình với một trình biên dịch sản sinh mã CIL, nó sẽ tạo ra các managed module. Đó là các file thực thi được thiết kế để chạy trong CLR. Thông thường chúng có phần mở rộng là EXE, DLL hoặc NETMODULE. Bên trong một managed module có 4 yếu tố quan trọng: Một header của file thực thi trên Windows Một CLR header chứa các thông tin quan trọng về module như nơi đặt CIL và metadata của nó Metadata mô tả mọi thứ bên trong module và các phần phụ thuộc bên ngoài. Các chỉ lệnh CIL được sản sinh từ mã nguồn. Mỗi managed module chứa siêu dữ liệu (metadata) mô tả nội dung module. Khi nạp một mô đun, CLR dựa vào metadata để biết các thông tin về các kiểu dữ liệu dùng trong mô đun và một số thông tin khác. Mọi trình biên dịch tương thích CLR đều tạo ra metadata trong module. Điều này cũng rất quan trọng cho người lập trình, vì mỗi managed module đều mô tả chính nó. Nhờ vậy mà ta có thể phân tích một file exe hay DLL viết bằng các ngôn ngữ .Net để xem trong đó có các class gì và các class này chứa những gì. Và nhờ vào metadata, trình biên dịch C# có thể tìm trong 1 file DLL viết bằng VB .Net các class để thừa kế chúng. Ngoài ra metadata còn giúp thực hiện chức năng IntelliSense trong Visual Studio .Net (chức năng liệt kê các thuộc tính, phương thức, … của một đối tượng, kiểu dữ liệu). Metadata Metadata của một module được lưu trong một tập các bảng. Một bảng TypeDef chứa các kiểu (class, struct, enumeration,…) trong module. Một bảng chứa các phương thức được thừa kế bởi các kiểu này, một bảng khác liệt kê các trường, một bảng khác liệt kê các thuộc tính, v.v.. Một số các bảng liệt kê các tham chiếu đến các kiểu dữ liệu bên ngoài module, các assembly chứa các kiểu dữ liệu bên ngoài, v.v.. Các thông tin metadata phụ được lưu trữ bên ngoài các bảng trong vùng heap chứa các mục tham chiếu bởi các thực thể bảng. Ví dụ, các tên lớp và các tên phương thức được lưu trong string heap, các string literals được lưu trong một heap riêng gọi là user-string heap.Các bảng metadata và các heap cùng nhau định nghĩa mọi thứ mà bạn hay CLR có thể cần để biết được nội dung của mô đun và các phụ thuộc bên ngoài. Common Intermediate Language (CIL) CIL thường được mô tả giống như một ngôn ngữ mô phỏng assembly bởi vì nó định nghĩa một tập hợp các chỉ lệnh trung gian cho bộ xử lý. Tuy nhiên trong trường hợp này, bộ xử lý là CLR chứ không phải bộ xử lý thông thường. Ta không cần phải biết CIL mới lập trình được .NET. Nhưng kiến thức cơ bản về CIL có thể thực sự hữu ích khi một phương thức trong FCL không chạy theo cách ta mong muốn. Khi đó ta dựa vào mã CIL để tìm ra nguyên nhân. CIL có khoảng 100 chỉ lệnh, đóng vai trò trung gian giữa các ngôn ngữ C#, VB.Net, Visual C++, J#, … Các managed module là kết quả của việc biên dịch từ các ngôn ngữ này sang CIL. .Net có sẵn công cụ ILDASM để trình bày cho người dùng nội dung của một mô đun ở dạng CIL. Assembly Như đã nói ở trên, các trình biên dịch .NET tạo ra các managed modun và các managed modun chứa các CIL và metadata. Nhưng CLR không có khả năng sử dụng trực tiếp các managed modun. Đó là do đơn vị cơ bản quản lý an toàn, versioning và deployment trong .NET không phải các managed modun mà là các assembly. Một assembly là một tập hợp của một hoặc nhiều file được nhóm lại với nhau để hình thành một đơn vị về logic. Thuật ngữ file ở đây thường chỉ các managed modun, nhưng các assembly có thể bao gồm nhiều file không phải là các managed modun. Hầu hết các assembly chỉ chứa một file (single-file assembly – assembly đơn file) nhưng các assembly có thể và đôi khi chứa nhiều file (multifile assembly – assembly đa file). Tất cả các file tạo nên một assembly đa file phải nằm cùng trong cùng một thư mục. Khi bạn sử dụng trình biên dịch C# để sinh ra một file exe đơn giản, file exe này không chỉ là một managed modun, nó là một assembly. Hầu hết các trình dịch đều có thể tạo các managed modun không phải là assembly và cũng có thể thêm các file khác vào assembly mà nó tạo ra. Hình 1.4: Sơ đồ một assembly đa file Các assembly đa file thường được dùng để gắn các modun viết bằng các ngôn ngữ khác nhau lại với nhau, hay dùng để kết hợp các managed modun với các file thông thường chứa các ảnh JPEG hoặc các tài nguyên khác. Các assembly còn được dùng để phân ứng dụng thành các phần rời rạc để tiện download. Ví dụ, thử tưởng tượng có một người với kết nối dialup muốn download một ứng dụng nhiều mb được chứa trong một assembly đơn file, việc download code có thể kéo dài mãi. Để giải quyết vấn đề này ta có thể chia đoạn mã thành nhiều file và đặt các file đó vào một assembly đa file. Bởi vì một modun không được nạp trừ khi cần đến nó, người dùng sẽ không chịu phí download các phần của ứng dụng mà họ không dùng. Manifest Làm thế nào để CLR biết các file nào thuộc về một assembly. Một trong số các file asembly chứa một manifest (bản kê khai). Manifest chỉ là phần thêm vào trong metadata. Khi một trình biên dịch tạo ra một managed modun (cũng là assembly), nó chỉ đơn giản viết manifest vào metadata của module. Một cách logic, manifest là một bản đồ dẫn đến nội dung của assembly. Các thành phần quan trọng của manifest gồm: Tên của assembly Danh sách các file khác của assembly Danh sách các kiểu dữ liệu nhập khẩu từ các file khác trong assembly và thông tin ánh xạ các kiểu dữ liệu này với các file định nghĩa chúng Số phiên bản dạng major.minor.build.revision Assembly còn được chia làm 2 loại là weakly named assembly và strongly named assembly. Weakly named nghĩa là assembly không được đánh dấu mã hóa và CLR chỉ sử dụng tên của assembly lưu giữ trong manifest của assembly (chỉ là tên file không có phần mở rộng) để xác định assembly. Strongly named assembly chứa một khóa public của nhà cung cấp và một chữ ký số mà thực chất là mã băm của manifest chứa khóa public đó. Chữ ký số, được phát sinh từ khóa private của nhà cung cấp và dùng để xác nhận cùng khóa public để kiểm tra xem assembly có bị chỉnh sửa lại hay không. Định danh của một strongly named assembly được kết hợp bằng tên assembly, khóa public, số phiên bản và culture string nếu có. Bất kỳ một sự sửa đổi nhỏ nào CLR cũng có thể nhận ra. Khi CLR nạp một strongly named assembly, nó so sánh số phiên bản trong assembly với số phiên bản mà ứng dụng đã được biên dịch cùng với assembly trước đó. Nếu các số không khớp thì CLR sẽ phát sinh một exception. Điều này nhằm ngăn ngừa trường hợp các DLL bị sửa đổi, biên dịch lại và phiên bản biên dịch lại này chứa lỗi bên trong dẫn đến lỗi ứng dụng. Microsoft SQL Server 2005. SQL Server là ngôn ngữ truy vấn dữ liệu, là một bước nhảy vọt về phía cơ sở dữ liệu đa người dùng của Microsoft, nhằm phục vụ cho những nhà phát triển hệ thống cơ sở dữ liệu. Hơn nữa, sự phát triển nhanh chóng của nhu cầu xây dựng những cơ sở dữ liệu lớn theo mô hình client/server thì ngôn ngữ SQL càng phổ biến. Trong mô hình client/server, toàn bộ cơ sở dữ liệu được tập trung lưu trữ trên server, mọi thao tác xử lý dữ liệu được thực hiện trên server bằng các lệnh SQL. Client chỉ lấy thông tin từ server. SQL được sử dụng để nhanh chóng tạo ra các trang Web động (Dynamic Web Page), nối kết giữa cơ sở dữ liệu và trang Web. Khi người dùng yêu cầu, SQL sẽ thực hiện việc truy cập thông tin trong cơ sở dữ liệu trên server và hiển thị kết quả trên trang Web. SQL xử lý, phân tích thông tin, sửa đổi dữ liệu của các bảng vì SQL chỉ làm việc với những dữ liệu có cấu trúc dạng bảng (table) như Foxpro, Access. SQL sử dụng Query cho phép nhiều người truy cập đồng thời, mỗi Query là một câu lệnh SQL được xây dựng hoàn chỉnh và ghi lại để có thể mang ra sử dụng bất kỳ lúc nào. SQL có khả năng đáp ứng hầu hết các yêu cầu đối với việc cập nhật, phân tích dữ liệu từ các bảng. Một số công dụng chính của SQL: Kết nối dữ liệu trên server, dùng lệnh SQL để tương tác với cơ sở dữ liệu. Kết hợp các trang Web với cơ sở dữ liệu bằng lệnh SQL. Tất cả các chức năng của SQL đều có thể được thực hiện bằng các công cụ khác của các phần mềm có sử dụng SQL. Thêm, cập nhật, xoá các bảng ghi trên toàn bảng theo những điều kiện khác nhau. Câu lệnh đơn giản, rất ngắn gọn, dễ nhớ, dễ sử dụng. Có thể sử dụng SQL Server thực hiện việc xử lý giao dịch, lưu trữ và phân tích dữ liệu. SQL Server thuộc họ các sản phẩm và công nghệ mà kho dữ liệu phù hợp với các yêu cầu môi trường xử lý giao dịch trực tuyến và xử lý phân tích trực tuyến. SQL Server là hệ quản trị cơ sở dữ liệu quan hệ với các tính năng sau: Quản lý kho dữ liệu cho các giao dịch. Khả năng lưu trữ dữ liệu với các kiểu dữ liệu có miền giá trị rộng, bao gồm text, numeric, XML và các đối tượng lớn. Đáp trả các yêu cầu từ các ứng dụng client. Sử dụng Transact-SQL, XML hay các câu lệnh SQL Server khác để gởi các yêu cầu giữa ứng dụng client và SQL Server. Hệ quản trị cơ sở dữ liệu SQL Server là đáng tin cậy đối với: Việc duy trì các mối liên hệ giữa các đối tượng dữ liệu trong một cơ sở dữ liệu. Việc đảm bảo rằng dữ liệu được lưu trữ đúng đắn và các quy tắc định nghĩa các quan hệ giữa các đối tượng dữ liệu là không bị xâm phạm. Ta có thể xem cấu trúc dữ liệu hệ thống cơ sở dữ liệu bằng hai cách khác nhau. Khi cần xem thông tin về đối tượng cơ sở dữ liệu, cách dễ dàng nhất là sử dụng SQL Server Management Studio. Khi viết các ứng dụng lấy cấu trúc dữ liệu các đối tượng cơ sở dữ liệu, nên sử dụng Transact-SQL để lấy thông tin từ các danh mục được cung cấp bởi hệ thống, nên tận dụng các hàm hệ thống hoặc thi hành các thủ tục được xây dựng sẵn của hệ thống. SQL Server Management Studio. SQL Server Management Studio cung cấp các công cụ trực quan để hiển thị metadata của cơ sở dữ liệu và đồng thời thông qua môi trường này ta có thể dễ dàng quản lý nó. Các công cụ thường gặp nhất: Object Explorer: là công cụ đồ họa cho việc định vị và quản lý các servers, databases và các đối tượng cơ sở dữ liệu. Properties Window: mỗi đối tượng cơ sở dữ liệu bên trong Object Explorer có một cửa sổ Properties tương ứng mà có thể truy xuất bằng cách click phải chuột tại đối tượng và chọn Properties. Reports: SQL Server Management Studio chứa một tập hợp các reports cho các nodes khác nhau được cung cấp bên trong Object Explorer bởi SQL Server Report Server Engine. Các nodes thường được sử dụng có thể hiện các report bao gồm Server, Database, Login, Management. Catalog views. Catalog views cho phép truy vấn metadata liên quan các đối tượng cơ sở dữ liệu SQL Server như tables, stored procedures và constraints. Catalog views được liệt kê trong thư mục Views. Một thư mục Views cho mỗi cơ sở dữ liệu trong SQL Server Management Studio. Mặc dù có thể truy vấn chúng bằng cú pháp Transact-SQL chuẩn đối với các views do người dùng định nghĩa, chúng không thực sự được cài đặt như các views truyền thống, có nghĩa là nó không truy vấn trên các tables mà thay vào đó nó truy vấn trực tiếp trên các metadata của hệ thống. Có hơn 200 catalog views và chúng được định nghĩa sẵn trong System Schema. Metadata function SQL Server 2005 định nghĩa một số các loại hàm khác nhau trả về thông liên quan cơ sở dữ liệu và các đối tượng cơ sở dữ liệu. Ngược lại với catalog views trả về nhiều dòng thông tin, các hàm này chỉ trả về một giá trị đơn lẻ và được hiểu là hàm vô hướng. Stored Procedrures SQL Server 2005 cung cấp nhiều Store Procedures của hệ thống lấy thông tin metadata cơ sở dữ liệu. Các thủ tục này cung cấp một khả năng thực hiện khác cho việc truy vấn thông tin mà catalog views đã cung cấp và chấp nhận các tham số thủ tục cho phép sự tùy biến các tập kết quả. ADO.Net Mô hình làm việc của ADO ActiveX Data Object (ADO) là phương thức truy cập cơ sở dữ liệu. Nó là tập hợp các đối tượng được sử dụng để truy cập cơ sở dữ liệu. ADO kết nối đến cơ sở dữ liệu thông qua một cung cấp OLE DB. ADO là một mô hình lập trình định nghĩa việc xử lý được theo sau khi truy cập và duy trì dữ liệu nguồn. Sử dụng ADO, chúng ta có thể: Kết nối đến dữ liệu nguồn. Chỉ định một lệnh để truy cập dữ liệu nguồn và thực thi nó. Lưu trữ dữ liệu được trả lại như là kết quả của lệnh vào nơi lưu trữ, nơi mà nó có thể được thao tác. Cập nhật dữ liệu nguồn với dữ liệu được chỉnh sửa trong nơi lưu trữ. Hình 1.5: Mô hình làm việc của ADO Thuận lợi của ADO.Net ADO.Net cho phép thỏa thuận sự thuận lợi dễ dàng xử lý của dữ liệu thao tác thông qua trang web. Sự thuận lợi của nó như sau: Thao tác bên trong: các thành phần được phát triển bởi các công cụ khác có thể giao tiếp với mỗi thành phần khác thông qua các DataSet vì DataSet được thao tác trong định dạng XML. Sự thực thi: Trong ADO khi Recordset chuyển đổi dữ liệu với sự giúp đỡ của COM, dữ liệu trong Recordset phải được chuyển đổi sang kiểu dữ liệu COM. Tuy nhiên, xử lý sự chuyển đổi kiểu dữ liệu là không cần thiết trong trường hợp của ADO.Net vì dataset được chuyển đổi sang XML vì DataSet là định dạng trong XML. Tính linh hoạt: trong trường hợp Recordset gia tăng số người sử dụng, số kết nối được yêu cầu tăng lên và vượt quá duy trì nên sự kết nối đó cản trở sự thực thi của trình ứng dụng. Mô hình không kết nối của mô hình ADO.Net không tạo ra các giá trị vượt quá. Vì thế, khả năng trình ứng dụng có thể được gia tăng mà không phải lo lắng về sự gia tăng giá trị vượt quá duy trì. Tiêu chuẩn hóa: vì dữ liệu trong dataset có thể được duy trì ở mẫu dạng XML và chuyển đổi giữa các tầng trong mẫu của XML nên tiêu chuẩn hóa là điều có thể. Khả năng lập trình: trong ADO.Net ngôn ngữ giống như C# và VB được sử dụng cho lập trình. Cấu trúc của ADO.Net Khi dữ liệu được yêu cầu thực thi, nó được đưa đến tầng trung gian từ cơ sở dữ liệu rồi đến lớp hiển thị. Khi chuyển dữ liệu đến giao diện người sử dụng, ADO.Net chuyển nó dạng XML. Trong khi chuyển đổi dữ liệu từ một tầng này đến một tầng khác, ADO.Net hiển thị dữ liệu dưới dạng XML rồi chuyển dữ liệu này đến thành phần khác. Hình 1.6: Cấu trúc của ADO.Net Các thành phần của ADO.Net Các thành phần của ADO.Net được thiết kế để truy cập và thao tác dữ liệu trong .Net framwork. ADO.Net gồm có hai thành phần chính sau: a. DataSet DataSet là phần biểu thị trong bộ nhớ của một loạt dữ liệu hoàn chỉnh, bao gồm các bảng, các mối quan hệ và các hạn chế. DataSet không duy trì một tuyến nối với nguồn dữ liệu, điều đó cho phép vận dụng cơ chế quản trị dữ liệu rời một cách đích thực. Có thể truy cập, điều tác, cập nhật hoặc xóa dữ liệu trong một DataSet rồi cập nhật nó với nguồn dữ liệu ban đầu. Do DataSet tách rời với nguồn dữ liệu nên ít có tranh chấp về nguồn tài nguyên và ít bị khóa khoản tin hơn. DataSet được lập nên bởi ba tập hợp Tables, Relations và ExtendedProperties. Các tập hợp này tạo thành cấu trúc dữ liệu quan hệ của DataSet. Tập hợp Tables: Thuộc tính DataSet.Tables trả về một đối tượng DataTablesCollection chứa 0 hoặc nhiều đối tượng DataTable. Mỗi DataTables biểu thị một bảng dữ liệu từ nguồn dữ liệu. Mỗi DataTables được tạo thành bởi một tập hợp Columns và một tập hợp Rows bao gồm 0 hoặc nhiều DataColumns hay DataRows theo thứ tự trên. Tập hợp Relations: Thuộc tính DataSet.Relations trả về một đối tượng DataRelationsCollection chứa 0 hoặc nhiều đối tượng DataRelation. Các đối tượng DataRelation định nghĩa một mối quan hệ cha-con giữa hai bảng dựa vào các giá trị khóa ngoại. Tập hợp ExtendedProperties: Thuộc tính DataSet.ExtendedProperties trả về một đối tượng PropertyCollection chứa 0 hoặc nhiều tính chất do người dùng định nghĩa. Có thể dùng tập hợp ExtendedProperties để lưu trữ dữ liệu tùy biến có liên quan đến DataSet, chẳng hạn như thời gian lúc DataSet được cấu tạo. Hình 1.7: Mô hình làm việc của DataSet b. .Net data provider .Net data provider chứa đựng các đối tượng truy cập đến nơi lưu trữ cơ sở dữ liệu trong nhiều nguồn khác nhau. Nó được lập nên bởi các tập hợp sau: Connection Object: dùng để nối với nguồn dữ liệu. Các lớp tuyến nối lưu trữ thông tin mà ADO.Net cần để nối với một nguồn dữ liệu dưới dạng một chuỗi nối. Command Object: dùng để thực thi một lệnh SQL hoặc các thủ tục lưu trữ sẵn dựa trên nguồn dữ liệu và truy lục một DataReader hay DataSet, hoặc thực thi một lệnh Insert, Update hay Delete dựa trên nguồn dữ liệu. DataReader Object: một tệp kết quả nối (connected resulted) chỉ cho phép đọc (read only) và tiến tới (forward only). Ta không thể di chuyển qua nó theo cách thức ngẫu nhiên và cũng không thể dùng nó để cập nhật nguồn dữ liệu. Do đó nó cho phép truy cập dữ liệu cực kỳ nhanh khi đơn thuần ta chỉ muốn duyệt qua một lần dữ liệu. DataReader chỉ có thể được trả về từ một lệnh gọi đến phương pháp ExecuteReader của một đối tượng Command, ta không thể trực tiếp tạo ra một đối tượng DataReader. DataAdapter Object: dùng để điền một DataSet bằng dữ liệu từ nguồn dữ liệu và cập nhật nguồn dữ liệu. DataAdapter tác động như một cầu nối giữa DataSet rời và nguồn dữ liệu. CHƯƠNG 2 PHÂN TÍCH HỆ THỐNG Giới thiệu bài toán: Để có thể tận dụng được hết những thế mạnh của các hệ quản trị cơ sở dữ liệu thì bài toán đặt ra là cần phải nghiên cứu tìm ra các giải 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. Trong phạm vi của đề tài 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ô tả đơn giản như sau: Người dùng vào ứng dụng rồi truy cập 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 để so sánh đối chiếu xem thử cấu trúc và dữ liệu của các bảng có tương đương với nhau hay chưa. Định hướng xây dựng chương trình 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 qua MySQL với tất cả các bảng hoặc chỉ các bảng được lựa chọn. Giải pháp xây dựng chương trình Mục đích của chương trình là chuyển đổi bảng từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL, giúp người dùng có thể đáp ứng được với yêu cầu của thực tế với cấu trúc hệ quản trị cơ sở dữ liệu gần như tương đương nhau. Trong phạm vi của đề tài này tôi chỉ tập trung chuyển đổi ở mức các bảng. Cùng với hai hệ quản trị cơ sở dữ liệu SqlServer và MySQL thì chương trình được xây dựng bằng ngôn ngữ lập trình C#. Đây là công cụ lập trình thích hợp để xây dựng ứng dụng WinForm. Do vậy, một cách để giải quyết tốt vấn đề trên là lấy thông tin các bảng của cần chuyển đổi sau đó tạo ra Script tương ứng phù hợp với MySQL để mà thực thi đoạn Script vừa tạo ra. Sau đó 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 Xây dựng mô hình Use Case 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 Kết nối cơ sở dữ liệu: truy cập vào cơ sở dữ liệu. Xem cấu trúc: Xem cấu trúc cơ sở dữ liệu ở dạng cây. Xem lược đồ: Xem lược đồ cơ sở dữ liệu. Xem dữ liệu: Xem dữ liệu của bảng được chọn. 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. 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 qua MySQL. Thoát: Thoát chương trình. Mô hình Use Case Dưới đây là sơ đồ Use Case và đặt tả chi tiết của sơ đồ được phân tích dựa vào các chức năng đã trình bày ở phần trên. Hình 2.2: Sơ đồ Use Case của ứng dụng Đặt tả Use Case Use Case Kết nối cơ sở dữ liệu Mô tả: Use Case này cho phép người dùng truy cập và kết nối với cơ sở dữ liệu cần chuyển đổi của SqlServer. Use case này là điều kiện tiên quyết cho các chức năng khác sau này. Luồng sự kiện Use Case này bắt đầu khi người dùng muốn truy cập vào cơ sở dữ liệu muốn chuyển đổi từ hệ quản trị cơ sở dữ liệu SqlServer. Luồng sự kiện chính Người dùng chọn truy cập vào cơ sở dữ liệu trên giao diện của ứng dụng. Ứng dụng hiển thị hộp thoại truy cập vào cơ sở dữ liệu. Người dùng nhập tên Server, Database, User, Pass. Ứng dụng xác nhận các tham số của đầu vào. Hiển thị giao diện chức năng của ứng dụng Kết thúc Use Case Các luồng sự kiện khác Trong quá trình thực hiện truy cập vào cơ sở dữ liệu nếu có lỗi xảy ra như: Thông tin đầu vào không hợp lệ thì chức năng sẽ dừng và báo lỗi truy cập cơ sở dữ liệu không thành công và thực hiện việc truy cập cơ sở dữ liệu lại cho đến lúc thành công. Các yêu cầu đặc biệt Không có. Tiền điều kiện Các tham số đầu vào phải chính xác. Hậu điều kiện Nếu Use Case thực hiện thành công thì ứng dụng sẽ hiển thị các chức năng chính. Điểm mở rộng Không có. Use Case xem cấu trúc Mô tả: Use Case cho người dùng xem toàn bộ cấu trúc cơ sở dữ liệu ở dạng cây. Luồng sự kiện Luồng sự kiện chính Use Case này bắt đầu khi người dùng truy cập vào cơ sở dữ liệu. Kết thúc Use Case. Các luồng sự kiện khác Không có. Các yêu cầu đặc biệt Không có. Tiền điều kiện Use Case này phải thực hiện Use Case kết nối cơ sở dữ liệu. Hậu điều kiện Thực hiện chức năng chuyển đổi với các bảng được lựa chọn. Điểm mở rộng Không có. Use Case xem lược đồ Mô tả: Use Case cho phép người dùng xem lược đồ của cơ sở dữ liệu. Luồng sự kiện Luồng sự kiện chính Use Case này bắt đầu khi người dùng truy cập vào cơ sở dữ liệu. Kết thúc Use Case Các luồng sự kiện khác Không có Các yêu cầu đặc biệt Không có. Tiền điều kiện Use Case này phải thực hiện Use Case kết nối cơ sở dữ liệu. Hậu điều kiện Nếu Use Case thực hiện thành công thì mới có thể xem được lược đồ của cơ sở dữ liệu. Điểm mở rộng Không có Use Case xem dữ liệu Mô tả: Use Case này cho phép người dùng xem dữ liệu của bảng trong cơ sở dữ liệu. Luồng sự kiện Luồng sự kiện chính Use Case này bắt đầu khi người dùng truy cập vào cơ sở dữ liệu. Chọn tên bảng của cơ sở dữ liệu trên cây cấu trúc. Kết thúc Use Case Các luồng sự kiện khác Nếu người dùng chọn tên bảng không hợp lệ thì ứng dụng sẽ thông báo lỗi không hợp lệ. Các yêu cầu đặc biệt Không có. Tiền điều kiện Use Case này phải thực hiện Use Case kết nối cơ sở dữ liệu. Người dùng phải chọn tên bảng trên cây sao cho phù hợp. Hậu điều kiện Nếu Use Case thực hiện thành công thì người dùng mới có thể xem được dữ liệu của bảng. Điểm mở rộng Không có. Use Case kết nối MySQL Mô tả: Use Case này kết nối với hệ quản trị cơ sở dữ liệu MySQL khi người dùng chuyển đổi. Luồng sự kiện Use Case bắt đầu khi người dùng chọn đích đến của hệ quản trị cơ sở dữ liệu MySQL. Luồng sự kiện chính Use Case này bắt đầu khi người dùng truy cập vào cơ sở dữ liệu. Người dùng chọn truy cập và kết nối đến hệ quản trị cơ sở dữ liệu MySQL trên giao diện của ứng dụng. Ứng dụng hiển thị hộp thoại truy cập vào cơ sở dữ liệu MySQL Người dùng nhập tên Server, User, User, Pass. Ứng dụng xác nhận các tham số của đầu vào. Kết thúc Use Case Các luồng sự kiện khác Trong quá trình thực hiện truy cập vào cơ sở dữ liệu MySQL nếu có lỗi xảy ra như: Thông tin đầu vào không hợp lệ thì báo lỗi truy cập vào hệ quản trị cơ sở dữ liệu MySQL không thành công và thực hiện lại cho đến khi thành công. Các yêu cầu đặc biệt Không có. Tiền điều kiện Use Case này phải thực hiện Use Case kết nối cơ sở dữ liệu. Các tham số đầu vào để truy cập vào hệ quản trị cơ sở dữ liệu MySQL phải chính xác. Hậu điều kiện Nếu Use Case thực hiện thành công thì mới có thể thực hiện được chức năng chuyển đổi hệ quản trị cơ sở dữ liệu từ SqlServer qua MySQL của ứng dụng. Thông báo nếu kết nối thành công Điểm mở rộng Không có. Use Case chuyển đổi tất cả các bảng Mô tả: Use Case này cho phép người dùng chuyển đổi tất cả các bảng từ hệ quản trị cơ sở dữ liệu SqlServer qua MySQL. Luồng sự kiện Use Case này bắt đầu khi người dù

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

  • docLVTN-HuynhNgocDuc-07TLT-Final.doc