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

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 1. 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ế. 2. Ứ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.

doc49 trang | Chia sẻ: tuandn | Ngày: 24/05/2013 | Lượt xem: 1823 | Lượt tải: 2download
Bạn đang xem nội dung tài liệu Luận văn Chuyển đổi từ các bảng từ hệ quản trị cơ sở dữ liệu SQLServer sang MySQL, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trê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: 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. 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ố. 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 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 25 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 25 Hình 3.3: Sơ đồ tuần tự của Use Case xem dữ liệu Table 26 Hình 3.4: Sơ đồ tuần tự của Use Case xem lược đồ cơ sở dữ liệu 26 Hình 3.5: Sơ đồ tuần tự của Use Case chuyển đổi tất cả các bảng 27 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 28 Hình 3.7: Thiết kế chi tiết lớp KetNoiSqlServer 29 Hình 3.8: Thiết kế chi tiết lớp KetNoiMySQL 30 Hình 3.9: Thiết kế chi tiết lớp ThucThiScript 30 Hình 3.10: Thiết kế chi tiết lớp XuLy 31 Hình 3.11: Thiết kế chi tiết lớp XemDuLieu 31 Hình 3.12: Thiết kế chi tiết lớp ChuyenDoi 32 Hình 3.13: Sơ đồ lớp của ứng dụng. 33 Hình 4.1: Giao diện chính khi khởi động ứng dụng 34 Hình 4.2: Giao diện kết nối với cơ sở dữ liệu SqlServer 35 Hình 4.3: Giao diện chính khi kết nối với cơ sở dữ liệu 35 Hình 4.4: Giao diện các chức năng trên câu cấu trúc 36 Hình 4.5: Dữ liệu của bảng 36 Hình 4.6: Chuyển đổi với các bảng được lựa chọn 37 Hình 4.7: Giao diện chuyển đổi thành công 37 Hình 4.8: Cơ sở dữ liệu vừa mới tạo ra 38 DANH MỤC BẢNG Bảng 3.1: Mô tả các thuộc tính của lớp KetNoiSqlServer 29 Bảng 3.2: Mô tả các phương thức của lớp KetNoiSqlServer 29 Bảng 3.3: Mô tả các thuộc tính của lớp KetNoiMySql 30 Bảng 3.4: Mô tả các phương thức của lớp KetNoiMySQL 30 Bảng 3.5: Mô tả các phương thức của lớp ThucThiScript 30 Bảng 3.6: Mô tả phương thức của lớp XuLy 31 Bảng 3.7: Mô tả thuộc tính lớp XemDuLieu 31 Bảng 3.8: Mô tả các phương thức của lớp XemDuLieu 31 Bảng 3.9: Mô tả thuộc tính của lớp ChuyenDoi 32 Bảng 3.10: Mô tả phương thức của lớp ChuyenDoi 32 MỞ ĐẦU 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. 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. Nhiệm vụ thực hiện 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ế. Ứ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. 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 CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 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 đó. 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. Cấu trúc cụ thể của .Net Framework như sau: Hình 1.1: Visual Studio.Net và .Net Framework Base Class Library cung cấp các lớp đối tượng để lập trình ứng dụng. ADO.NET là phiên bản tiếp theo của ADO phục vụ cho việc truy cập dữ liệu từ hầu hết các nguồn cung cấp dữ liệu hiện nay, đặc biệt có hỗ trợ XML. Hai dòng ứng dụng chính của .Net là ứng dụng mạng (Web Form, Web service) và Window Form. Common Language Specification hỗ trợ các nhà phát triển phần mềm các công cụ để biên dịch, giao tiếp giữa các ngôn ngữ VB, C++, C#, J#, … gọi chung là các ngôn ngữ họ .Net. Common Language Runtime (CLR): CLR là gì? CLR là một máy thực thi nằm ở phần trên cùng của hệ điều hành và cung cấp một môi trường ảo để chạy các ứng dụng dưới sự quản lý của nó. Khi bạn chạy một chương trình, CLR nạp mô đun chứa managed code và thực thi mã lệnh bên trong nó. Managed code là mã lệnh viết để chạy trên CLR, gồm tập hợp các chỉ lệnh viết bằng một ngôn ngữ giả ngôn ngữ assembly gọi là CIL (common intermediate language). Các chỉ lệnh CIL được biên dịch tức thời (JIT – just-in-time) sang ngôn ngữ máy vào thời điểm thực thi. Trong hầu hết các trường hợp việc biên dịch chỉ được thực hiện một lần duy nhất vào thời điểm nó được gọi, sau đó được lưu vào bộ nhớ đệm cho lần chạy sau khỏi bị gián đoạn. Việc biên dịch JIT chắc chắn có ảnh hưởng đến tốc độ thực thi nhưng thực tế một phương thức chỉ được biên dịch một lần duy nhất trong suốt phiên chạy của ứng dụng. Về lý thuyết, mã biên dịch JIT có thể chạy nhanh hơn mã biên dịch thông thường bởi vì trình biên dịch JIT có thể tối ưu hóa mã máy mà nó sản sinh cho các phiên bản khác nhau của bộ xử lý. Class Loader IL to Native Compilers Code Manager Garbage Collector Security Engine Debug Engine Type Checker Exception Manager Thread Support COM Marshaler Base Class Library Support Hình 1.2: Các thành phần của CLR Một số chức năng của CLR: Code veryfication: Khi trình biên dịch JIT chuyển đổi các chỉ lệnh CIL sang native code, nó tạo ra một tiến trình kiểm tra để đảm bảo rằng các mã lệnh là an toàn. Các mã lệnh không được truy cập vào vùng nhớ mà ứng dụng không có quyền truy cập. Khi có một con trỏ sai lạc được sử dụng thì CLR sẽ phát sinh một ngoại lệ. Bạn không thể gọi một phương thức mà cơ cấu stack của nó có khiếm khuyết vì CLR không cho phép điều đó. Tóm lại là code veryfication sẽ ngăn ngừa các mã lệnh gây hại cho hệ thống. Tuy nhiên người quản trị hệ thống có thể tắt chức năng code veryfication nếu cần. Application domain: CLR có khả năng host nhiều ứng dụng trong một tiến trình bằng cách chia tiến trình ra thành nhiều ngăn ảo gọi là miền ứng dụng (application domain). Window cách ly các ứng dụng bằng cách tổ chức chúng thành các tiến trình khác nhau. Cách tổ chức như vậy làm tốn nhiều bộ nhớ. Trong một số trường hợp nhất định CLR không phóng một tiến trình mới cho mỗi ứng dụng mà cho một nhóm các ứng dụng và host các ứng dụng riêng biệt trong các application domain. Application domain an toàn như tiến trình bởi vì nó hình thành một ranh giới mà ứng dụng không được xâm phạm. Nhưng các application domain hoạt động hiệu quả hơn bởi vì một tiến trình có thể host nhiều application domain và các thư viện được nạp vào miền ứng dụng có thể chia sẻ cho tất cả các ứng dụng trong miền. Garbage collection: CLR chứa một bộ dọn rác khá công phu. Bộ dọn rác kiểm tra các tham chiếu đến các đối tượng bạn tạo ra và phá hủy những đối tượng này khi không cần chúng nữa để cấp cho các việc khác. Các giải thuật dọn rác trong CLR nhanh hơn so với bộ cấp phát vùng nhớ trong C rất nhiều. Mô hình thực thi ứng dụng trong .Net: Hình 1.3: Mô hình thực thi ứng dụng .Net Mã nguồn viết bởi các ngôn ngữ .Net được trình 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