Cài đặt thuật toán

Một phần của tài liệu tích hợp cơ sở dữ liệu quan hệ và xml (Trang 60 - 74)

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 toá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 toá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 toà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 toá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 toá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.

Ngoà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.

Ngoà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 toà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 luôn luôn 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 toán tích hợp các hệ thống cơ sở dữ liệu quan hệ và XML.

 Cài đặt thuật toá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 quá 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 quá trình tích hợp.

 Hoà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 hoà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ể hoà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 Hoà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

Một phần của tài liệu tích hợp cơ sở dữ liệu quan hệ và xml (Trang 60 - 74)