MỞ ĐẦU 1. Tổng quan tình hình nghiên cứu thuộc lĩnh vực của đề tài ở trong và ngoài nước Công nghệ cơ sở dữ liệu đã trải qua một quá trình hình thành và phát triển khá lâu dài. Ban đầu, các hệ cơ sở dữ liệu thường gắn liền với ứng dụng, nghĩa là mỗi ứng dụng định nghĩa và duy trì dữ liệu của riêng chúng. Phát triển hơn, dữ liệu được quản lý một cách tập trung, nhiều ứng dụng khác nhau có thể truy xuất dữ liệu trực tiếp từ cơ sở dữ liệu tập trung đó.
Cơ sở dữ liệu tập trung cũng tồn tại nhiều khuyết điểm, có thể kể đến đó là khi trung tâm dữ liệu có sự cố thì toàn hệ thống sẽ ngừng hoạt động, hay tình trạng tắc nghẽn khi có quá nhiều yêu cầu truy xuất vào cơ sở dữ liệu. Cơ sở dữ liệu phân tán ra đời đã phần nào khắc phục được những điểm yếu của cơ sở dữ liệu tập trung. Là kết quả của sự hợp nhất của hai hướng tiếp cận đối với quá trình xử lý dữ liệu: công nghệ cơ sở dữ liệu và công nghệ mạng máy tính. Cơ sở dữ liệu phân tán gồm nhiều cơ sở dữ liệu tích hợp lại với nhau thông qua mạng máy tính để trao đổi dữ liệu.
Cơ sở dữ liệu được tổ chức và lưu trữ ở những vị trí khác nhau trong mạng máy tính và chương trình ứng dụng làm việc trên cơ sở truy cập dữ liệu ở những điểm khác nhau đó. Xét trên khía cạnh người dùng, đặc biệt là các công ty xí nghiệp lớn, thì cơ sở dữ liệu phân tán đáp ứng nhu cầu tốt hơn cơ sở dữ liệu tập trung ứng với sự phân bố ngày càng rộng rãi của các tổ chức này. Tuy nhiên, vấn đề lớn nhất của hệ thống cơ sở dữ liệu phân tán nói chung và của đề tài nói riêng chính là sự phức tạp của nó, bên cạnh vấn đề của cơ sở dữ liệu tập trung còn rất nhiều vấn đề phải giải quyết như: thiết kế cơ sở dữ liệu phân tán, xử lý truy vấn đồng thời trong phân tán, đảm bảo tính chính xác, toàn vẹn dữ liệu và an toàn hệ thống… Quản lý một hệ thống cơ sở dữ liệu phân tán là một thách thức ngay cả đối với người có nhiều kiến thức và kinh nghiệm trong lĩnh vực này. Vì vậy, quyết định có sử dụng hệ thống cơ sở dữ liệu phân tán thay cho hệ thống cơ sở dữ liệu tập trung hay không là cả bài toán lớn cần phải giải quyết.
Tính cấp thiết của đề tài Hiện nay phần lớn hệ thống quản lý đào tạo của các Trường Đại học Cao đẳng, cụ thể Trường CĐ Công nghệ Thông tin-Đại học Đà Nẵng được xây dựng theo mô hình cơ sở dữ liệu tập trung, cơ sở dữ liệu được lưu ở một máy chủ (server) và mọi hoạt động như đăng ký học phần của sinh viên, nhập điểm của phòng đào tạo hay quản lý 1 lớp học của giáo viên… đều truy cập trực tiếp lên một server gây nên sự quá tải xử lý cho server, giảm hiệu suất hoạt động của toàn bộ hệ thống. Nhằm góp phần nâng cao hiệu quả trong việc quản lý sinh viên của các trường Đại học Cao đẳng, đề tài này tập trung tìm hiểu và xây dựng mô hình cơ sở dữ liệu phân tán phù hợp với các yêu cầu đặt ra của hệ thống quản lý đào tạo. Mục tiêu của đề tài Xây dựng hệ thống cơ sở dữ liệu phân tán quản lý đào tạo áp dụng vào các trường Đại học Cao Đẳng, cụ thể là trường CĐ Công nghệ Thông tin - Đại học Đà Nẵng 4. Đối tượng, phạm vi nghiên cứu 4.
Đối tượng nghiên cứu: Mô hình cơ sở dữ liệu phân tán và giải pháp đồng bộ cơ sở dữ liệu 4. Phạm vi nghiên cứu: Hệ thống quản lý đào tạo trường CĐ Công nghệ Thông tin - ĐHĐN. MS SQL Server 2008 5. Cách tiếp cận, phương pháp nghiên cứu - Từ thực tế quản lý đào tạo của các trường Đại học Cao Đẳng, đề tài đề xuất một mô hình cơ sở dữ liệu phân tán phù hợp với hệ thống quản lý đào tạo.
- Tìm hiểu các kỹ thuật phân tán dữ liệu trong MS SQL Server và chọn lựa phương pháp thích hợp với mô hình đã đề xuất - Cài đặt thực nghiệm vào hệ thống quản lý đào tạo của Trường CĐ Công nghệ Thông tin - ĐHĐN. Nội dung nghiên cứu: - Thực trạng hệ thống quản lý đào tạo của các trường Đại học Cao đẳng, cụ thể là Trường CĐ Công nghệ Thông tin- ĐHĐN - Mô hình cơ sở dữ liệu phân tán quản lý đào tạo và giải pháp đồng bộ cơ sở dữ liệu phân tán trong MS SQL Server - Kết quả cài đặt thực nghiệm vào Trường CĐ Công nghệ Thông tin- ĐHĐN. LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN Chương này sẽ trình bày về các khái niệm trong cơ sở dữ liệu phân tán, lý do sử dụng cơ sở dữ liệu phân tán cũng và các ưu và nhược điểm của nó. Các khái niệm [1, 2] Cơ sở dữ liệu phân tán (Distributed DataBase - DDB) là một tập hợp nhiều cơ sở dữ liệu có liên đới logic và được phân bố trên một mạng máy tính.
Trong đó liên đới logic là dữ liệu ở các nơi được sử dụng để giải quyết chung một vấn đề, còn phân bố trên một mạng máy tính là toàn bộ dữ liệu không phải lưu trữ ở một nơi mà lưu trữ trên nhiều trạm thuộc mạng máy tính. Hệ quản trị cơ sở dữ liệu phân tán (Distributed Database Management System- DDBMS) được định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ cơ sở dữ liệu phân tán và làm cho sự phân tán trở nên “trong suốt” đối với người sử dụng. Hệ cơ sở dữ liệu phân tán (Distributed Database System-DDBS): Được xây dựng dựa trên hai công nghệ cơ bản là cơ sở dữ liệu và mạng máy tính. Một hệ cơ sở dữ liệu phân tán không phải là tập hợp các tập tin được lưu riêng lẻ tại mỗi nút của một mạng máy tính mà các tập tin này phải có liên đới logic với nhau, có cấu trúc và được truy xuất qua một giao diện chung.
Hệ cơ sở dữ liệu phân tán và hệ cơ sở dữ liệu tập trung Trạm 1 Trạm 1 Trạm 5 Trạm 5 Trạm 2 Trạm 2 Mạng truyền dữ liệu Mạng truyền dữ liệu Trạm 4 Trạm 3 Trạm 4 Trạm 3 (a) Hệ cơ sở dữ liệu phân tán (b) Hệ cơ sở dữ liệu tập trung Hình 1. Hệ cơ sở dữ liệu phân tán và hệ cơ sở dữ liệu tập trung Nếu như trong môi trường hệ cơ sở dữ liệu tập trung dữ liệu được tập trung tại một nút mạng và mọi yêu cầu được chuyển tới vị trí đó, thì hệ cơ sở dữ liệu phân tán là môi trường trong đó dữ liệu phân tán trên một số vị trí. Hệ cơ sở dữ liệu phân tán và hệ xử lý phân tán Hệ xử lý phân tán (Distributed Processing) hay còn gọi là hệ tính toán phân tán (Distributed Computing) là hệ thống mà một số các bộ phận xử lý tự vận hành, được liên kết bởi một mạng máy tính và cùng thực hiện các tác vụ mà chúng được phân 3 công. Như vậy sự khác nhau cơ bản giữa hệ cơ sở dữ liệu phân tán và hệ xử lý phân tán chính là đối tượng phân tán, trong hệ cơ sở dữ liệu phân tán đối tượng phân tán là dữ liệu còn trong hệ xử lý phân tán đối tượng phân tán là thành phần xử lý.
Các lý do sử dụng cơ sở dữ liệu phân tán [1, 2] - Các tổ chức có cấu trúc phân tán: Trong thực tế có nhiều tổ chức được phân tán khắp nơi, trong khi đó, dữ liệu quản lý ngày càng lớn và phục vụ cho đa người dùng nằm phân tán, vì vậy cơ sở dữ liệu phân tán là con đường thích hợp với cấu trúc tự nhiên của các tổ chức đó. - Cần kết nối các cơ sở dữ liệu có sẵn: Cơ sở dữ liệu phân tán là giải pháp tự nhiên khi có các cơ sở dữ liệu đang tồn tại và sự cần thiết xây dựng một ứng dụng toàn cục. Trong trường hợp này cơ sở dữ liệu phân tán được tạo theo tiến trình từ dưới lên dựa trên nền tảng cơ sở dữ liệu đang tồn tại. Tiến trình này đòi hỏi phải tái cấu trúc các cơ sở dữ liệu cục bộ ở một mức nhất định.
- Sự lớn mạnh của tổ chức: Các tổ chức có thể phát triển mở rộng bằng cách thành lập thêm các đơn vị mới, vừa có tính tự trị, vừa có quan hệ với các đơn vị tổ chức khác. - Giảm chi phí truyền thông: Việc tăng ứng dụng cục bộ có thể làm giảm chi phí truyền thông. - Nâng cao hiệu suất: Có cơ chế xử lý song song và phân mảnh dữ liệu theo ứng dụng làm cực đại hóa tính cục bộ của ứng dụng. - Tăng độ tin cậy và tính sẵn sàng: Khi hệ thống cơ sở dữ liệu tập trung bị hỏng, toàn bộ hệ thống trở nên vô dụng với tất cả các người dùng.
Còn đối với cơ sở dữ liệu phân tán, nếu có một thành phần nào đó của hệ thống bị hỏng, hệ thống vẫn có thể duy trì hoạt động tại một số vị trí. Hạn chế của cơ sở dữ liệu phân tán [1, 2] Bên cạnh các ưu điểm được trình trình bày bên trên, hệ thống cơ sở dữ liệu phân tán cũng có nhiều hạn chế sau: - Tính phức tạp: Các vấn đề của hệ cơ sở dữ liệu phân tán dĩ nhiên là phức tạp hơn rất nhiều với hệ cơ sở dữ liệu tập trung, bên cạnh các vấn đề của hệ tập trung nó còn rất nhiều vấn đề phải giải quyết như: thiết kế cơ sở dữ liệu phân tán, xử lý truy vấn phân tán, điều khiển đồng thời phân tán, … - Chi phí phần cứng: Một khi dữ liệu được sao lưu ở nhiều vị trí khác nhau sẽ dẫn đến việc gia tăng các tài nguyên cần sử dụng để lưu trữ. - Khó khăn trong việc đảm bảo tính toàn vẹn dữ liệu và sự an toàn của hệ thống. Kiến trúc của hệ cơ sở dữ liệu phân tán [1, 2] - Kiến trúc client/server: Dữ liệu được tập trung và xử lý hầu hết ở server, các client chỉ lưu trữ và xử lý một phần dữ liệu thực sự cần thiết trong phạm vị hoạt động của client đó.
- Kiến trúc peer-to-peer: Các vị trí ngang hàng nhau, có thể sử dụng như một hệ thống độc lập, tự quản lý dữ liệu của chính mình và chia sẻ dữ liệu cho các vị trí khác.