CHƢƠNG 1 : TỔNG QUAN VỀ XML VÀ CƠ SỞ DỮ LIỆU QUAN HỆ
3.2 Cài đặt thuật toán
Thuật toán đƣợc cài đặt bằng ngơn ngữ lập trình C# [3]. Các CSDL quan hệ đƣợc sử dụng trong chƣơng trình đƣợc tạo lập từ mơi trƣờng CSDL MS Access hay SQL Server. Các tài liệu XML có thể đƣợc tạo lập trong mơi
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
trƣờng WordPad, NotePad, XML Editor, … Chi tiết và giao diện cài đặt cụ thể thuật tốn tích hợp các hệ thống CSDL quan hệ và XML đƣợc mô phỏng nhƣ sau:
Đọc tài liệu XML dƣới dạng sơ đồ hình cây:
Một tài liệu XML đƣợc đọc vào chƣơng trình đƣợc hiển thị dƣới dạng một cấu trúc hình cây.
// Tao mot tai lieu XML theo mo hinh DOM da co san du lieu XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Server.MapPath("SinhVien.xml")); // Khoi tao dieu khien TreeView
TreeView1.Nodes.Clear(); TreeView1.Nodes.Add(new
TreeNode(xmlDoc.DocumentElement.Name));
TreeNode tNode = new TreeNode(); tNode = TreeView1.Nodes[0];
// Hien thi len TreeView theo mo hinh DOM AddNode(xmlDoc.DocumentElement, tNode); TreeView1.ExpandAll(); // AddNode: XmlNode xNode; TreeNode tNode; XmlNodeList xNodeList; int i;
// Kiem tra file XML
// Them cac Node vao TreeView trong qua trinh lap if (xmlNode.HasChildNodes)
{
xNodeList = xmlNode.ChildNodes;
//Lay danh sach cac phan tu con cua Node for (i = 0; i <= xNodeList.Count - 1; i++) {
xNode = xmlNode.ChildNodes[i];
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn tNode = treeNode.ChildNodes[i]; AddNode(xNode, tNode); } } else {
// Dien gia tri lay duoc o file xml vào Node ở TreeView treeNode.Text = (xmlNode.OuterXml).Trim();
}
Chuyển đổi một tài liệu XML thành một CSDL quan hệ
Một tài liệu XML đƣợc tạo lập theo đúng cấu trúc yêu cầu sẽ đƣợc chuyển đổi và hiển thị dƣới dạng một bảng CSDL quan hệ.
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.Load(fileName); XmlNodeList xmlNodeList =
xmlDocument.GetElementsByTagName(nodeName); Table table = new Table();
foreach (XmlNode xmlNode in xmlNodeList) {
TableRow tableRow = new TableRow(); TableCell tableCell = new TableCell(); tableCell.Text = "NganhHocID";
tableCell = new TableCell(); tableCell.Wrap = false; tableCell.BorderWidth = 1; tableCell.Text =
xmlNode.Attributes["NganhHocID"].Value; tableRow.Cells.Add(tableCell);
foreach (XmlElement xmlElement in xmlNode.ChildNodes) {
tableCell = new TableCell(); tableCell.Wrap = false; tableCell.BorderWidth = 1;
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
tableRow.Cells.Add(tableCell); }
table.Rows.Add(tableRow);
}
Chuyển một CSDL quan hệ thành một tài liệu XML
Để chuyển một CSDL quan hệ đƣợc tạo lập từ môi trƣờng MS Access hay SQL Server thành một tài liệu XML ta thực hiện nhƣ sau:
//Chuyen tu CSDL duoc tao trong moi truong SQL Server sang file //XML nhu sau :
protected void Button2_Click(object sender, EventArgs e) {
try {
SqlServerProvider sqlServerProvider = new
SqlServerProvider(connectionString);
sqlServerProvider.CommandText = "SELECT MonHoc.MonHocID, MonHoc.TenMH, MonHocInNganh.SoTinChi,
MonHocInHocKy.ThoiKhoaBieu, MonHoc.GhiChu FROM MonHocInNganh INNER JOIN MonHoc ON MonHocInNganh.MonHocID = MonHoc.MonHocID INNER JOIN MonHocInHocKy ON MonHoc.MonHocID = MonHocInHocKy.MonHocID INNER JOIN DangKyHoc ON MonHoc.MonHocID = DangKyHoc.MonHocID";
DataSet dataSet = sqlServerProvider.GetDataSet(); dataSet.WriteXml(fileName);
}
catch (Exception ) {
Literal2.Text = "File khong tao dc"; }
}
void ShowXmlData(string fileName) {
DataSet dataSet = new DataSet(); dataSet.ReadXml(fileName);
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn if (dataSet != null) { GridView1.DataSource = dataSet.Tables[0]; GridView1.DataBind(); } } 3.3 Đánh giá kết quả
Kết quả mà thuật tốn đạt đƣợc có tính thực tiễn cao, với khả năng tích hợp các hệ thống CSDL quan hệ vào tài liệu XML và ngƣợc lại, chuyển một tài liệu XML thành một CSDL quan hệ đƣợc xây dựng dựa trên việc kết nối CSDL cùng với một số quy tắc ánh xạ đƣợc xem là một phƣơng pháp rõ ràng, dễ hiểu mà vẫn đảm bảo tính tồn vẹn dữ liệu.
Độ phức tạp của thuật toán: thuật toán sử dụng hai vịng lặp For, có độ phức tạp O(n2). Thời gian thực hiện thuật toán tăng nếu tăng thêm các bộ dữ liệu đầu vào. Với các bộ dữ liệu vừa và nhỏ, thuật toán cho kết quả nhanh.
3.4 Kết luận
Thuật tốn tích hợp các hệ thống CSDL và XML đã trình bày trong luận văn đƣợc thực hiện trên các CSDL quan hệ tạo lập trong môi trƣờng SQL Server đƣợc thực hiện cho kết quả tốt.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƢƠNG IV: CÀI ĐẶT THỬ NGHIỆM
Thuật tốn tích hợp CSDL quan hệ và XML đƣợc cài đặt bằng ngơn ngữ lập trình C# [3], mơi trƣờng ASP.NET [5], [9], trên cơ sở xây dựng ứng dụng trang web “Đăng ký học tín chỉ” của trƣờng Đại học Hàng Hải Việt Nam.
4.1 Yêu cầu cài đặt: - Phần mềm: - Phần mềm:
Cài đặt bộ Visual Studio 2005, SQL Server 2005.
Hệ điều hành tối thiểu: Windows 2000 Service Pack 4; Windows
Server 2003 Service Pack 1; Windows XP Service Pack 2.
- Phần cứng:
Máy tính chip Pentium IV trở lên
Tối thiểu 192 MB RAM (Cấu hình đề nghị: 512 MB RAM.)
Ổ cứng còn trống tối thiểu 525 MB
4.2 Giao diện của chƣơng trình nhƣ sau:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hệ thống cho phép Sinh viên đăng nhập để tạo tài khoản. Tài khoản này sẽ đƣợc quản lý trong cơ sở dữ liệu SQL Server. Sau khi đăng ký là thành viên, ngƣời dùng đăng nhập vào hệ thống để có thể đăng ký học các mơn theo hệ tín chỉ.
Hình 4.2 Form đăng nhập
Nút Đăng nhập: sẽ chuyển đến trang chủ của Website Đăng kí học tín chỉ nếu ngƣời dùng nhập đúng tên đăng nhập và mật khẩu sử dụng.
Đăng ký thành cơng ngƣời dùng tích chọn các mơn học:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chọn các mơn học xong, ngƣời dùng nhấn vào nút Đăng kí. Nút này có nhiệm vụ đƣa ra các thơng tin về mơn học đã đăng ký ở bảng Gridview phía dƣới để ngƣời dùng có thể theo dõi.
Nút Lƣu thông tin: ghi lại ở dạng file xml những thông tin mà từng
thành viên đăng kí mơn học.
Ngồi ra, hệ thống có chức năng cập nhật, chèn thơng tin, sửa đổi, tìm kiếm các thơng tin liên quan nhƣ: thông tin về sinh viên, môn học, ngành học, học kỳ, ...
Hình 4.4 Form thơng tin mơn học
Giới thiệu chức năng các nút xử lý chính trong giao diện:
Tạo mới: cho phép tạo ra một file xml (TT_Monhoc.xml)
<?xml version="1.0" standalone="yes"?>
<!--Written by vutuyet Wednesday, October 10, 2010--> <DS_MonHoc>
<TT_MonHoc MonHocID="1">
<TenMH>Tin học cơ bản</TenMH>
<GhiChu>Dành cho SV năm thứ nhất</GhiChu> </TT_MonHoc>
</DS_MonHoc>
Chèn: ngƣời sử dụng nhập các thơng tin chính xác về mã mơn học, tên
mơn học, ghi chú (nếu có). Các thơng tin này sẽ đƣợc ghi tiếp vào file xml đã tạo ở trên.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
<?xml version="1.0" standalone="yes"?>
<!--Written by vutuyet Wednesday, October 10, 2010--> <DS_MonHoc>
<TT_MonHoc MonHocID="1">
<TenMH>Tin học cơ bản</TenMH>
<GhiChu>Dành cho SV năm thứ nhất</GhiChu> </TT_MonHoc>
<TT_MonHoc MonHocID="2">
<TenMH>Tin học văn phòng</TenMH>
<GhiChu>Dành cho SV năm thứ nhất</GhiChu> </TT_MonHoc>
<TT_MonHoc MonHocID="3"> <TenMH>Triết học</TenMH>
<GhiChu>Dành cho SV năm thứ nhất</GhiChu> </TT_MonHoc> <TT_MonHoc MonHocID="4"> <TenMH>Vật lý</TenMH> <GhiChu>SV Ngành Vật lý</GhiChu> </TT_MonHoc> <TT_MonHoc MonHocID="5"> <TenMH>Cấu trúc DL và GT</TenMH> <GhiChu>SV CNTT</GhiChu> </TT_MonHoc> </DS_MonHoc>
Sửa: cho phép sửa lại thơng tin chƣa chuẩn trong file xml, sau đó cũng
đƣợc lƣu lại vào chính file này.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trên hình minh họa sửa mơn học Vật lý thành Vật lý đại cƣơng. Kết quả cho ở hình phía dƣới:
Hình 4.6 Kết quả chỉnh sửa thơng tin mơn học
Xóa: xóa các thơng tin khơng cần thiết, các thơng tin lấy từ file xml và
sau khi xóa cũng đƣợc lƣu lại vào file xml.
Tìm kiếm: tìm kiếm các thơng tin liên quan theo mã môn học trong file
xml (TT_Monhoc.xml). Nếu thành công sẽ cho ra kết quả ở màn hình. Ngồi ra, hệ thống cịn có một số chức năng khác nhƣ: download thời khóa biểu, download quy chế đào tạo tín chỉ, ….
Có file xml tên SinhVien.xml sau:
<?xml version="1.0" standalone="yes"?> <NewDataSet> <Table> <SinhVienID>1</SinhVienID> <TenSV>Ten </TenSV> <UserName>test</UserName> <NganhHocID>2</NganhHocID> <DiaChi>HY</DiaChi> <DienThoai>9573490574</DienThoai> <Active>true</Active> </Table>
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn <Table> <SinhVienID>4</SinhVienID> <TenSV>Nguyễn Thị Hồng Cẩm</TenSV> <UserName>hongcam</UserName> <NganhHocID>1</NganhHocID> <DiaChi>Hà Nội</DiaChi> <DienThoai>0924783743</DienThoai> <Active>true</Active> </Table> <Table> <SinhVienID>3</SinhVienID> <TenSV>Trần Thị Hoa</TenSV> <UserName>hoa</UserName> <NganhHocID>2</NganhHocID> <DiaChi>Hà Nội</DiaChi> <DienThoai>0435668339</DienThoai> <Active>true</Active> </Table> <Table> <SinhVienID>4</SinhVienID> <TenSV>Nguyen Xuan Hai</TenSV> <UserName>hong</UserName> <NganhHocID>1</NganhHocID> <DiaChi>Hà Nội</DiaChi> <DienThoai>0599898982</DienThoai> <Active>true</Active> </Table> <Table> <SinhVienID>5</SinhVienID> <TenSV>Nguyễn Linh Đa</TenSV> <UserName>linhda</UserName> <NganhHocID>1</NganhHocID> <DiaChi>Hà Nội</DiaChi> <DienThoai>09237428</DienThoai> <Active>true</Active> </Table> </NewDataSet>
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 4.7 Hiển thị file XML ở dạng bảng
Hiển thị file SinhVien.xml ở dạng hình cây:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
KẾT LUẬN
Việc chuyển đổi các CSDL quan hệ sang một tài liệu XML và ngƣợc lại mà không cần quan tâm đến việc bảo toàn các ràng buộc dữ liệu, hay việc chuyển đổi có bảo tồn ràng buộc bằng việc xét các ràng buộc dữ liệu thông qua các ràng buộc khóa đã và đang đƣợc nghiên cứu.
Tuy nhiên, với phƣơng pháp thứ nhất thì rõ ràng tính ứng dụng thực tiễn không cao, do CSDL tồn tại trong thế giới thực ln ln có sự ràng buộc lẫn nhau. Với phƣơng pháp thứ hai thì thực sự khó khăn, phức tạp để có thể xét đƣợc hầu hết tất cả các ràng buộc cũng nhƣ các phụ thuộc dữ liệu giữa các CSDL quan hệ.
Các kết quả đạt đƣợc của luận văn:
Trình bày tổng quan về cấu trúc một tài liệu XML, định nghĩa kiểu tài
liệu DTD, lƣợc đồ, mơ hình đối tƣợng tài liệu DOM, phân tích tài liệu XML theo mơ hình DOM và các khái niệm CSDL quan hệ.
Giới thiệu phƣơng pháp luận chuyển một tài liệu XML sang một CSDL
quan hệ và ngƣợc lại.
Đƣa ra thuật tốn tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML.
Cài đặt thuật tốn bằng ngơn ngữ lập trình C# trong mơi trƣờng ASP.NET, trên cơ sở xây dựng ứng dụng trang web “Đăng ký học tín chỉ” của trƣờng Đại học Hàng Hải Việt Nam có tính thiết thực cao.
Một số hạn chế của luận văn:
Hệ thống mới chỉ tích hợp cơ sở dữ liệu SQL Server và XML.
Cơ sở dữ liệu sử dụng trong chƣơng trình chƣa đầy đủ.
Hƣớng nghiên cứu tiếp theo:
Luận văn có thể đƣợc phát triển để hỗ trợ cho việc phục hồi các CSDL
quan hệ gốc từ các tài liệu XML đã đƣợc chuyển đổi trong q trình trao đổi dữ liệu và có thể tích hợp đƣợc các CSDL quan hệ vào các tài
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
liệu XML theo nhu cầu sử dụng dữ liệu của ngƣời dùng mà vẫn đảm bảo đầy đủ các phụ thuộc dữ liệu thông qua việc kết hợp sử dụng các truy vấn từ SQL Server trong q trình tích hợp.
Hồn thiện hệ thống “Đăng ký học tín chỉ ” của trƣờng Đại học Hàng
Hải Việt Nam” nhằm đáp ứng cao hơn nữa các yêu cầu sử dụng riêng của trƣờng.
Do thời gian và khả năng có hạn, luận văn có thể cịn nhiều thiếu sót, em rất mong nhận đƣợc sự góp ý, chỉ dẫn thêm của các Thầy Cơ, bạn bè để em có thể xây dựng đƣợc ứng dụng hồn thiện hơn. Một lần nữa em xin chân thành cảm ơn Thầy hƣớng dẫn PGS.TS. Đoàn Văn Ban, các Thầy Cô trong khoa đã tạo điều mọi kiện thuận lợi để luận văn này có thể hồn thành đúng thời hạn.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Nguyễn Kim Anh (2004), Nguyên lý của các hệ cơ sở dữ liệu, NXB
Thống kê.
[2] Nguyễn Phƣơng Lan, Hoàng Đức Hải (2006), XML – Nền tảng và ứng dụng, NXB Lao động – Xã hội.
[3] Phƣơng Lan, Hoàng Đức Hải (2002), Lập trình Windows với C#. Net,
NXB Lao động – Xã hội.
[4] Phƣơng Lan, Hoàng Đức Hải (2005), Giáo trình nhập mơn XML, NXB
Lao động – Xã hội.
[5] Phạm Hữu Khang (2005), Lập trình ASP.Net 2.0, NXB Lao động – Xã hội.
[6] Nguyễn Tiến, Đặng Xuân Hƣờng, Nguyễn Văn Hồi, Nguyễn Tuấn Ngọc (2001), Nhập mơn XML thực hành và ứng dụng, NXB Thống kê.
[7] PGS.TS Lê Tiến Vƣơng (2005), Nhập môn cơ sở dữ liệu quan hệ, NXB Thống kê.
Tiếng Anh
[8] Benoit Marchal (2000), XML by Example, Printed in the United States of America.
[9] Dino Esposito (2003), Applied XML Programming of microsoft.NET,
Printed and bound in the United States of America. [10] www.xml.com