Một trong những lý do chính của Microsoft khi giới thiệu kỹ thuật này là cho phép lập trình viên có một phương pháp dễ dàng truy cập vào nội dung của các cơ sở dữ liệu không thuộc về một
Trang 1SƠ LƯỢC ĐỀ TÀI
CHƯƠNG 1 :
CÁC CÔNG CỤ HỖ TRỢ TRUY XUẤT
CƠ SỞ DỮ LIỆU
Open Data Connectivity (ODBC) là một trong những kỹ thuật giao tiếp cơ sở dữ liệu kiểu cũ được Microsoft cung cấp Một trong những lý do chính của Microsoft khi giới thiệu kỹ thuật này là cho phép lập trình viên có một phương pháp dễ dàng truy cập vào nội dung của các cơ sở dữ liệu không thuộc về một định dạng quen thuộc đối với người lập trình viên
Có thể thấy rằng ODBC làm việc như phần ruột của Windows , nó sẽ sử dụng các trình điều khiển trong các dll để thi hành công việc ODBC có hai tập hợp các trình điều khiển :một tập hợp sử dụng tiếng nói của trình quản lý cơ sở dữ liệu và tập kia cung cấp phương pháp giao tiếp thông thường cho ngôn ngữ lập trình Sự kết hợp hai tập thông qua một giao diện chấp nhận được cho phép Visual C++ truy cập nội dung của cơ sở dữ liệu bằng cách sử dụng một tập chuẩn các hàm gọi
Ngoài các phương pháp ODBC va ADO , bạn còn có thể sử dụng các kỹ thuật cũ như DAO (Data Access Object ) với các kiểu sản phẩm Access DAO dựa trên cơ chế cơ sở dữ liệu Microsoft Jet có sẵn trong Microsoft Access DAO còn là cơ chế được sử dụng trong phiên bản cũ của Visual Basic (phiên bản mới nhất của Visual Basic đã sử dụng kiểu kết hợp ADO/OLE-DB như Visual C++ ) , do đó DAO vẫn là sự lựa chọn tốt nhất nếu bạn muốn hỗ trợ các ứng dụng của Visual Basic cũ ADO hay ODBC vẫn là sự lựa chọn tốt hơn , ta nhận được tốc độ khởi đầu nhanh hơn
Một trong những vấn đề có thể xảy ra với DAO là nó không hỗ trợ giao tiếp từ xa Đó là một trong những lý do làm cho Microsoft có thêm RDO (Remote Data Object )
Tốc độ truy xuất dữ liệu của ODBC khá chậm nhưng ngày nay các phiên bản mới ODBC đã có những cải tiến đáng kể về tốc độ Do đó ngày nay nó đã được đánh giá khá tốt
II OLE-DB :
OLE-DB sử dụng OLE (hay chính xác hơn là COM – Component Object Model) để cung một tập hợp các giao diện giúp truy cập dữ liệu Cũng như các đối tượng COM khác, có thể vấn tin, tạo và xóa một đối tượng OLE-DB Nguồn của một đối tượng OLE-BD được gọi là người cung cấp (provider)
Microsoft định nghĩa ra bốn loại người dùng OLE-DB Danh sách sau liệt kê các loại đó :
Trang 2 Người cung cấp dữ liệu : là người sử dụng OLE-DB SDK (bộ công cụ phát triển phần mềm ) để tạo ra một nguồn cung cấp OLE-DB Người dùng cung cấp dữ liệu sẽ giao tiếp với cơ sở dữ liệu và các sự kiện để cảnh báo các nảy sinh đặc biệt
Người tiêu thụ dữ liệu : là một ứng dụng , trình điều khiển hệ thống hay người dùng đòi hỏi truy cập thông tin được chứa trong cơ sở dữ liệu
Người cung cấp dịch vụ dữ liệu : là người phát triển tạo ra một tiện ích độc lập nâng cao khả năng cho người dùng hay người quản lý để sử dụng hay quản lý nội dung cơ sở dữ liệu
Nhà phát triển thành phần lợi ích : có thể tạo ra các module hay thành phần trong ứng dụng nhằm giảm bớt lượng mã lệnh cần thiết để tạo ra một ứng dụng cơ sở dữ liệu Một thành phần có thể là một điều khiển ô lưới cho phép người sử dụng hiển thị nhiều tập con của các record trong cơ sở dữ liệu
So sánh giữa kỹ thuật OLE và ODBC:
Phần tử OLE-DB ODBC Giải thích
Kiểu truy
cập Thànhphần Trựctiếp OLE-DB cung cấp cách giao tiếp với dữ liệu.Người dùng truy cập thông qua các thành phần
được thiết kế để giao tiếp với OLE-DB
Chuyên
môn hóa
truy cập dữ
liệu
Mọi dữ liệu kiểu bảng
SQL ODBC luôn được thiết kế để sử dụng SQL làm
nền tảng cho phép chuyển giao dữ liệu Trong một số trường hợp điều đó có nghĩa là lập trình viên phải nhượng bộ để chuyển dữ liệu thành SQL chuẩn
Phương
pháp truy
cập trình
điều khiển
Thành phần Tự có Tất cả những việc truy cập đến người cung cấpOLE-DB đều thông qua giao diện COM bằng
cách sử dụng các thành phần có các kiểu khác nhau ODBC thường yêu cầu lập trình trực tiếp một số kiểu và dựa trên cấp độ tương thích SQL của nhà cung cấp cơ sở dữ liệu
Mô hình
lập trình COM C OLE-DB dựa trên COM để cung cấp phươngpháp cho lập trình viên truy cập đến người cung
cấp Điều đó có nghĩa là OLE-DB là ngôn ngữ độc lập còn ODBC là ngôn ngữ đặc chủng
Chuẩn kỹ
thuật COM SQL OLE-DB dính chặt vào chuẩn COM củaMicrosoft, có nghĩa là có nhiều nhà cung cấp và
nền tảng hơn kỹ thuật SQL chuẩn được sử dụng bởi COM
Trang 3III ADO:
Cũng giống như OLE-DB, ADO cũng dựa trên COM Nó sẽ cung cấp một giao diện kép : một chương trình ID của ADODB cho các tác vụ cục bộ và một chương trình ID của của ADOR cho các tác vụ từ xa Thư viện ADO tự nó là một luồng tự do Sự an toàn của luồng trong ADO tùy thuộc vào người cung cấp OLE-DB
IV KHI NÀO NÊN SỬ DỤNG OLE-DB, ADO VÀ ODBC :
Việc tìm hiểu loại kỹ thuật nào đáng sử dụng hơn để truy cập cơ sở dữ liệu không phải là việc dễ dàng
Có một số qui tắc chung để bạn có thể sử dụng nhằm chọn lựa giữa OLE-DB và ODBC Vì ADO chỉ là một lớp trên của OLE-DB nên luật đó cũng được áp dụng Danh sách sau liệt kê một số hướng để quyết định khi nào sử dụng OLE-DB hay ODBC
Môi trường không hỗ trợ OLE : nếu môi trường truy cập cơ sở dữ liệu đã hỗ trợ ODBC và cơ sở dữ liệu đó thuộc về một server không hỗ trợ OLE thì ODBC là sự lựa chọn tốt nhất
Môi trường không phải là SQL : ODBC được thiết kế để làm việc tốt nhất với SQL Còn OLE lại có rất nhiều ưu điểm khi làm việc với một cơ sở dữ liệu không thuộc về SQL
Yêu cầu trung chuyển : nếu muốn sử dụng các cơ sở dữ liệu có yêu cầu trung chuyển thì OLE là sự lựa chọn tốt nhất
Có rất nhiều tính năng phổ biến trong ADO và ODBC Một trong số đó được Visual C++ sử dụng trực tiếp cả hai kỹ thuật Một số kỹ thuật giúp chuyển đổi ứng dụng từ ODBC sang ADO và ngược lại Cả hai kỹ thuật đều dựa trên các đối tượng cơ sở dữ liệu để quản lý những DBMS, còn các đối tượng tập record lại chứa kết quả của các query Ngoài ra, cả ODBC và ADO đều sử dụng các đối tượng cơ sở dữ liệu và tập record với cùng các thành viên Cho dù phải có thay đổi đối vơí các tên lớp và thành viên, nhưng mã lệnh cho cả ODBC và ADO khi lập trình đều tương tự như nhau
Cả ODBC và ADO đều dựa trên các trình điều khiển bên ngoài để thi hành công việc Tuy nhiên , với ADO, bạn có thể có thêm các trợ giúp từ cơ chế Microsoft Jet Tuy nhiên khi sử dụng ADO thì sẽ mất đi một số cấp độ quản lý và tính mềm dẻo Nếu muốn truy cập dữ liệu 16 bit thì không thể dùng ADO, thay vào đó phải dùng ODBC
Một trong những điểm yếu của ODBC nữa là không thể theo dõi các chuyển giao như trong ADO Khi sử dụng ADO cùng với cơ chế Microsoft Jet, ta được hỗ trợ cấp độ không gian làm việc cho các chuyển giao ODBC chỉ hỗ trợ chuyển giao ở cấp độ cơ sở dữ liệu, nên
ta phải phải theo dõi các chuyển giao trên nhiều vùng làm việc khác nhau
V TỔNG QUAN VỀ CÁC LỚP ODBC, OLE-DB VÀ ADO CỦA VISUAL C++ :
Trang 4Mọi công việc đòi hỏi đến tạo ứng dụng cơ sở dữ liệu đều thông qua các lớp Mỗi lớp sẽ thi hành một tác vụ riêng :
CDatabase (ODBC) hay CADO-Connection (ADO) : cho phép truy cập đến cơ sở dữ liệu bằng cách gởi tác vụ hay câu query
CRecordset (ODBC) hay CADORecordset (ADO) Một tập record sẽ chứa dữ liệu được xem như container để chứa dữ liệu Có ba loại :
- Table: Một tập record kiểu table sẽ biểu diễn dữ liệu trong một bảng của cơ sở dữ liệu Có thể làm bất cứ điều gì với bảng đó, kể cả thêm, bớt hay điều chỉnh
- Dynaset: sử dụng query truy cập thông tin từ một hay nhiều bảng trong cơ sở dữ liệu
- Snapshot : một bản sao tĩnh của dữ liệu được chứa trong một hay nhiều bảng trong cơ sở dữ liệu Cũng như dynaset có thể sử dụng query để lấy thông tin, nhưng cho phép điều chỉnh nội dung của các record
CHƯƠNG 2 :
GIỚI THIỆU ĐỀ TÀI
I.TỔNG QUAN VỀ ĐỀ TÀI:
Hiện nay, do việc xuất hiện các yêu cầu mới của hệ thống tín chỉ, các chương trình hỗ trợ quản lý học vụ trở nên lỗi thời, không thể sử dụng được nữa Do đó, để đáp ứng nhu cầu hiện tại, chúng em xây dựng một mô hình quản lý học vụ mới mô phỏng theo mô hình của trường Đại học Kĩ thuật để giải quyết các vấn đề chính của hệ thống quản lý học vụ theo tín chỉ, đó là các vấn đề có độ phức tạp cao như xếp thời khóa biểu, xếp lịch thi, xét đăng ký môn học hay xét tốt nghiệp cho sinh viên
Mặt khác, để ứng dụng các kiến thức về cơ sở dữ liệu phân bố đã được học và tìm hiểu trong quá trình học tập ở trường vào thực tế, hệ thống sẽ được xây dựng trên SQL SERVER với mô hình cơ sở dữ liệu phân bố
Trang 5II CÁC PHÂN HỆ :
II.1 Phân hệ quản lý sinh viên :
Phân hệ quản lý sinh viên thực hiên các chức năng sau :
- Cập nhật, thêm chi tiết thông tin sinh viên
- Thêm, sửa các quyết định vào / ra , quyết định kỷ luật / khen thưởng
- Xem, thống kê các thông tin của sinh viên
II.2 Phân hệ chương trình đào tạo :
Phân hệ Chương trình đào tạo được xây dựng nhằm thực hiện các chức năng sau:
- Cập nhật, quản lý tự điển các môn học có trong trường, và các mối liên quan giữa chúng như môn học tương đương, môn học trước/tiên quyết, môn học song hành
- Cập nhật, quản lý các chương trình đào tạo theo ngành, khoá học, cụ thể trên từng học kỳ
- Cập nhật, quản lý các tiêu chuẩn xét hoàn thành giai đoạn, tiêu chuẩn xét tốt nghiệp theo ngành, khoá học
- In ấn các biểu mẫu liên quan đến chương trình đào tạo như: chương trình đào tạo học kỳ, tiêu chuẩn hoàn thành giai đoạn, tiêu chuẩn tốt nghiệp …
Thông tin có được từ phân hệ này là cơ sở để thực hiện các chức năng ở những phân hệ khác như đăng ký môn học, chương trình giảng dạy, quản lý điểm, xét hoàn thành giai đoạn, xét tốt nghiệp
II.3 Phân hệ xếp thời khóa biểu :
Phân hệ Xếp thời khóa biểu được xây dựng nhằm thực hiện các chức năng sau ở một học kỳ – năm học :
- Tạo và xem số liệu dự kiến cho từng học kỳ như kế hoạch giảng dạy trong học kỳ , chương trình đào tạo khóa-ngành
- Xếp thời khóa biểu (TKB) dự kiến dựa trên cơ sở số nhóm lớp – môn học dự kiến và số sinh viên trong từng khóa-ngành-năm , số lượng giáo viên giảng dạy môn học , đăng ký bận giờ của các giảng viên và dữ liệu về phòng học trong học kỳ
- Hiệu chỉnh TKB của thời gian thực
- Quản lý tình trạng báo dạy cho giảng viên , TKB cho lớp –môn học
Phân hệ này cung cấp số liệu cho việc quản lý giảng dạy , quản lý phòng học và tính toán khối lượng giảng dạy , là cơ sở để sinh viên đăng ký môn học
II.4 Phân hệ đăng ký môn học :
Trang 6Phân hệ Đăng ký môn học (ĐKMH) có 2 nhiệm vụ chính :
- Quản lý việc đăng ký môn học của sinh viên Phân hệ ĐKMH cho phép sinh viên gia nhập vào hệ thống (logon) để xem thời khoá biểu dự kiến của khoá học , lựa chọn môn học và đăng ký môn học
- Xử lý việc ĐKMH của sinh viên Mục đích chính của phân hệ này là : cập nhật lưu trữ, xếp lịch ĐKMH một cách hợp lý
II.5 Phân hệ xếp lịch thi :
- Cung cấp một công cụ uyển chuyển để xếp lịch thi cho các môn học có mở trong năm học học kỳ hiện tại, giúp người dùng có thể dùng các kinh nghiệm bản thân trong việc xếp lịch thi để tìm được một lịch thi chấp nhận được
- Phân hệ cung cấp cho người sử dụng các thông tin đánh giá về dữ liệu hiện tại
- Phân hệ cho phép chọn lựa các chiến lược khi tiến hành xếp lịch thi
- Phân hệ cho phép chọn các tiêu chuẩn đánh giá, để người sử dụng dùng chính tiêu chuẩn của mình đánh giá kết quả
- Phân hệ cho phép xếp lịch thi nhiều lần và lựa chọn các kết quả tìm được dựa trên các tiêu chuẩn đánh giá
II.6 Phân hệ quản lý điểm – xét tốt nghiệp :
- Cập nhật , quản lý điểm cho từng sinh viên theo từng học kỳ
- Tính toán , cập nhật các số liệu quản lý như các loại điểm trung bình
- Xem các số liệu về điểm của sinh viên
- Xét tốt nghiệp
III THIẾT KẾ CHƯƠNG TRÌNH :
III.1 Môi trường hiện thực:
Hệ thống quản lý sinh viên được mô hình hóa trên hệ cơ sở dữ liệu phân bố gồm ba server được đặt tại ba site Mỗi server chạy hệ điều hành NT Server 4.0, hệ quản trị cơ sở dữ liệu được dùng SQL Server 7.0 do nó hỗ trợ mạnh sự phân bố dữ liệu ở mức “trong suốt” ánh xạ cục bộ Ngoài ra SQL Server 7.0 cũng hỗ trợ mạnh về quản lý nhân bản, giao dịch, tối ưu hóa các câu truy vấn phân bố
Thiết kế chương trình ứng dụng trên ngôn ngữ Visual C++ , truy xuất cơ sở dữ liệu thông qua ODBC và ADO Ngôn ngữ Visual C++ hỗ trợ mạnh chức năng xử lý cũng như thiết kế giao diện
III.2 Phân bố dữ liệu :
Trang 7Dữ liệu sẽ được phân làm 2 mảnh và đặt ở 2 nơi : site Máy Tính (MT) và site Điện Tử (DT) Khoa được phân mảnh ngang theo thuộc tính MA_KHOA Hệ thống dựa trên 8 khoa, 4 khoa Cơ Khí (CK), Địa Chất-Dầu khí (DC), Điện-Điện Tử (DD), Cơ Bản (CB) được lưu trong mảnh (fragment) đặt ở site DT , 4 khoa còn lại bao gồm Máy Tính (MT), Quản Lý (QL), Kỹ thuật Xây Dựng (XD), Kỹ thuật hóa chất (HC) được giữ trong mảnh đặt ở site MT Các quan hệ còn lại được phân mảnh ngang suy dẫn theo KHOA
III.3 Mô hình nhân bản :
Dựa vào các mô hình nhân bản do MS SQL Server 7.0 cung cấp (xem thêm trong phần
A Tìm hiểu tính chất phân bố của MS SQL Server 7.0 – Nhân bản ) ta chọn :
- topology dạng Subscriber trung tâm ( Central Subscriber ) , trong đó : site MT và DT đóng vai trò vừa là Publisher vừa là Distributor ; site PDT đóng vai trò Subscriber trung tâm
III.4 Tính bảo mật :
III.4.1 Đăng nhập vào hệ thống:
Người sử dụng (user) nhập vào vào tài khoản (account) và mật khẩu (password) Một quá trình sẽ được gọi và kiểm tra những thông tin về user có hợp lệ không? Nếu tài khoản và mật khẩu của user hoàn toàn hợp lệ thì user sẽ được phép gia nhập vào hệ thống Tuỳ theo vai trò của user mà chương trình sẽ xác định kết nối đến server nào và cho phép user thao tác (xem, cập nhật, xoá, tạo mới) trên vùng dữ liệu nào
III.4.2 Vai trò của người sử dụng
Có tất cả 5 dạng vai trò của người sử dụng :
Trang 8- Admin : là ngưới có quyền cao nhất, được phép vào toàn bộ phân hệ và thao tác trên toàn bộ cơ sở dữ liệ (CSDL).Với vai trò Admin, ứng dụng sẽ kết nối đến site PDT
- Admin_MT : đóng vai trò Admin của site MT , và chỉ được phép thao tác trên vùng dữ liệu đặt tại site đó (có nghĩa là chỉ được thao tác trên 4 khoa
MT, XD, HC, QL ) Sử dụng user dạng này ứng dụng sẽ kết nối đến site MT
- Admin_DT : tương tự như user Admin_MT, nhưng user Admin_DT chỉ được phép thao tác trên 4 khoa CB, CK, DC, DD Với vai tro ønày , ứng dụng sẽ kết nối đến site DT
- User của site MT : là sinh viên do site MT phụ trách User này chỉ được phép log vào hệ thống để đăng ký môn học và xem kết quả đăng ký
- User của site DT : là sinh viên do site DT phụ trách và có vai trò giống như user của site MT
Tất cả các user đều do Admin cấp, chỉ có Admin mới có quyền tạo user mới hay cấp quyền cho user