1. Trang chủ
  2. » Công Nghệ Thông Tin

Tìm hiểu cơ sở dữ liệu hướng đối tượng và xây dựng ứng dụng minh họa

92 1,5K 10

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 92
Dung lượng 2,56 MB

Nội dung

Đề tài đã thực hiện tìm hiểu về cơ sở dữ liệu hướng đối tượng và xây dựng ứng dụng minh họa trên hệ quản trị db4o, qua đó cho thấy tốc độ xử lý chức năng trong việc ứng dụng cơ sở dữ liệu hướng đối tượng là nhanh hơn cơ sở dữ liệu quan hệ.

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.HCM KHOA CÔNG NGHỆ THÔNG TIN  Đề tài: TÌM HIỂU CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG VÀ XÂY DỰNG ỨNG DỤNG MINH HỌA GVHD: Nguyễn Văn Lễ Danh sách nhóm: Bùi Thị Hoài Tôn Thị Thanh Tuyền Tp.Hồ Chí Minh, 2015 2001110093 2001110141 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN GVHD: NGUYỄN VĂN LỄ Page NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN GVHD: NGUYỄN VĂN LỄ Page MỤC LỤC GVHD: NGUYỄN VĂN LỄ Page LỜI CẢM ƠN Để hoàn thành đồ án chúng em xin chân thành cảm ơn giáo viên khoa công nghệ thông tin trường Đại Học Công Nghiệp Thực Phẩm Tp.HCM giảng dạy tất kiến thức cho chúng em Nhờ kiến thức học chúng em ứng dụng vào đồ án Đặc biệt chúng em xin chân thành cảm ơn thầy Nguyễn Văn Lễ tận tình bảo, hướng dẫn chúng em suốt thời gian vừa qua giúp chúng em hoàn thành đồ án tốt nghiệp cách hoàn thiện Người thầy theo chân bước chúng em suốt bốn năm đại học Một người thầy mà chúng em đầy ngưỡng mộ, tận tâm với sinh viên Đối với chúng em, thầy người đặc biệt, mộc mạc nhất, giản dị Đó phần lý chúng em chọn đề tài Chúng em xin chân thành cảm ơn GVHD: NGUYỄN VĂN LỄ Page DANH MỤC CÁC CHỮ VIẾT TẮT Từ viết tắt Nghĩa CSDL Cơ sở liệu HĐT Hướng đối tượng HQT Hệ quản trị ODL Ngôn ngữ định nghĩa đối tượng QBE Query-By-Example NQ Native Queries SQL Structured Query Language GVHD: NGUYỄN VĂN LỄ Page TBC Trung Bình Cộng LỜI MỞ ĐẦU Ngày việc lưu trữ liệu để đảm bảo chương trình hoạt động ngày nhanh, tốc độ xử lý nhanh, cấu trúc lưu trữ đơn giản vấn đề mà lập trình viên hướng tới Trong báo cáo với đề tài “Tìm hiểu sở liệu hướng đối tượng xây dựng ứng dụng minh họa” nhóm chúng em xin giới thiệu phương pháp tổ chức liệu sở liệu hướng đối tượng cách tạo ứng dụng đơn giản sử dụng sở liệu hướng đối tượng LinQ DB4O Đây cấu trúc liệu chúng em Nội dung chia thành nhiều chương Mỗi chương dẫn dắt tới chương Cụ thể chia thành chương: Chương 1: Giới thiệu sở liệu hướng đối tượng Chương 2: Giới thiệu hệ quản trị sở liệu Chương 3: Xây dựng ứng dụng minh họa CHƯƠNG 1: GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 1.1 ĐỊNH NGHĨA Cơ sở liệu hệ thống thông tin có cấu trúc, lưu trữ thiết bị lưu trữ nhằm thỏa mãn yêu cầu khai thác thông tin đồng thời nhiều người sử dụng hay nhiều chương trình ứng dụng chạy lúc với mục đích khác Đối tượng: Theo nghĩa thông thường đối tượng người, vật hay tượng mà người nhằm vào suy nghĩ, hành động, nhìn thấy cầm nắm Trong phương pháp hướng đối tượng đối tượng trừu tượng lĩnh vực vấn đề hay cài đặt nó; phản ảnh khả hệ thống lưu giữ thông tin tương tác với nó; gói giá trị thuộc tính dịch vụ (phương thức, phương pháp) Cơ sở liệu hướng đối tượng: liệu lưu trữ bảng liệu bảng có bổ sung thêm tính hướng đối tượng lưu trữ thêm hành vi, nhằm thể hành vi đối tượng Mỗi bảng xem lớp liệu, dòng liệu bảng đối tượng 1.2 THIẾT KẾ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG Để xác định rõ việc thực CSDL hướng đối tượng theo dạng tiếp cận, trước hết cần xác định cách thức thiết kế hệ thống hướng đối tượng Một CSDL hướng đối tượng gồm đối tượng; tất thứ thuộc lớp Để xây dựng mô hình khái niệm cho CSDL hướng đối tượng, người ta cần xác định tập lớp đối tượng Đối tượng xác định nhờ thuộc tính phương thức Chúng ta phải xác định tương tác lớp 1.2.1 Phân lớp Quá trình phân lớp liên quan đến việc định tên đối tượng với thuộc tính, hành vi tương tự nhóm đối tượng vào lớp Theo ví dụ sơ đồ người, ta xác định sơ đồ với thuộc tính tên, ngày tạo, hình vẽ Các phép toán chung lưu trữ tìm kiếm, vẽ Tất định nghĩa giao diện lớp đối tượng cần có phép toán tạo hủy bỏ đối tượng Quá trình phân lớp tạo lớp đối tượng có thuộc tính, phương thức chung, vài đối tượng có thuộc tính phương thức riêng Lúc người ta cần đến khái niệm tổng quát hóa chuyên biệt hóa 1.2.2 Tổng quát hóa đặc biệt hóa Tổng quát hóa trình xác định lớp đối tượng mang thuộc tính tương tự theo tương tự người ta trừu tượng hóa để lớp cao hơn, hay lớp cha Chẳng hạn ban đầu người ta xác định lớp hình tam giác, hình vuông, hình chữ nhật, hình tròn trừu tượng hóa thành lớp cao sơ đồ, gồm thuộc tính chung tất sơ đồ Định nghĩa 1: Lớp trừu tượng lớp không trực tiếp, thành phân sau thể trực tiếp Ví dụ: Lớp trừu tượng lớp NhanVien NhanVien TenNV : String TuoiNV : int GioiTinh : String ChucVu : String CongViec() GiamDoc Luong : Float KeToan Luong : Float CongViec() TinhLuongGD() CongViec() TinhLuong() Định nghĩa 2: Lớp cụ thể lớp có thành phần thể trực tiếp Hình 3.23 Dữ liệu Load giao diện Hàng Hóa truy cập Cách thêm hàng hóa vào sở liệu: - Người dùng nhập thông tin cần thiết vào Textbox “Mã Hàng Hóa”, “Tên Hàng Hóa”, Giá Bán “Đơn Vị” Không bỏ thao - tác, chọn loại hàng hóa cho mặt hàng Sau đó, nhấn nút thêm kế bên TextBox Mã Hàng Hóa public static void nhaphh(IObjectContainer db, string mh, string th, string mlhh,float g, string t) { var tt = (from hh x in db where x.Mahang == mh select x).SingleOrDefault(); if (tt == null) { hh h1 = new hh(mh, th, g, t); var result = (from LoaiHH x in db where x.Maloaihang == mlhh select x).Single(); //thêm hàng hóa vào loại hàng hóa tương ứng result.addHanghoa(h1); //thiết lập loại hàng hóa mặt hàng h1.setLhh(result); //lưu trữ db.Store(h1); db.Store(result); MessageBox.Show("Thêm Thành Công!"); } else MessageBox.Show("Trùng mã mặt hàng, vui lòng kiểm tra lại"); } - Cách sửa, xóa tương tự Form Bán Hàng: Cần chọn thông tin Hàng Hóa cần xóa sửa, thực thao - tác người dùng muốn xóa sửa Cách xóa, sửa hàng hóa public static void xoa(IObjectContainer db,string mahh) { var result = (from hh x in db where x.Mahang == mahh select x).Single(); db.Delete(result); LoaiHH.delhanghoa(result); db.Commit(); MessageBox.Show("Xóa Thành Công!"); } public static void suahh(IObjectContainer db, string mahh,string t, float g,string d) { var result = (from hh x in db where x.Mahang == mahh select x).Single(); result.suatt(t,g,d); } db.Store(result); MessageBox.Show("Sửa thành công!"); Khi muốn thêm loại hàng hóa nhấn nút thêm Groupbox Thông Tin Loại Hàng Lúc Form Loại Hàng Hóa mở Tab Hình 3.24 Giao diện Loại Hàng Hóa Khi lúc Form Load lên TabControl DataGridview GroupBox “Thông Tin Chi Tiết Hàng Hóa” hiển thị thông tin loại hàng hóa có sở liệu Db4o Form loại hàng hóa gồm Groupbox Thông Tin Loại Hàng Hóa, groupbox Thông Tin Chi Tiết Loại Hàng Hóa, Button Thêm Xóa , Button Sửa , Button , Datagirdview Thông Tin Chi Tiết Loại Hàng Hóa Các thao tác Thêm, Xóa, Sửa thực tương tự Giao diện Quản lý Khách Hàng - Thêm loại hàng hóa public static void nhaploaihh(IObjectContainer db, string mlhh, string tmlhh) { var tt = (from LoaiHH x in db where x.Maloaihang == mlhh select x).SingleOrDefault(); if (tt == null) { LoaiHH t = new LoaiHH(mlhh, tmlhh); //lưu trữ db.Store(t); } else MessageBox.Show("Trùng mã loại hàng hóa, vui lòng kiểm tra lại"); } - Sửa loại hàng hóa public static void sua(IObjectContainer db, string mahh, string t) { var result = (from LoaiHH x in db where x.Maloaihang == mahh select x).Single(); result.suatt(t); } - db.Store(result); MessageBox.Show("Sửa thành công!"); Xóa loại hàng hóa public static void xoa(IObjectContainer db, string maloaihh) { var s = (from hh x in db where x.getLhh.Maloaihang == maloaihh select x).SingleOrDefault(); if (s == null) { var result = (from LoaiHH x in db where x.Maloaihang == maloaihh select x).Single(); db.Delete(result); db.Commit(); } else MessageBox.Show("Loại mặt hàng có hàng hóa, vui lòng xóa hàng hóa trước! "); } c Giao diện Quản Lý Nhân Viên Chú ý: Giao diện quản lý nhân viên acctive người dùng đăng nhập quyền quản lý Trong Form gồm TextBox, Combobox, Datagridview để thị thông tin nhân viên có sở liệu Form quản lý nhân viên gồm Textbox Mã Nhân Viên, Textbox Tên Nhân Viên, Textbox Địa Chỉ, Textbox Điện Thoại, Buttuon Thêm, Button Sửa, Buttuon Xóa, Datagirdview chứa Thông Tin Chi Tiết Nhân Viên Hình 2.25 Giao diện thông tin nhân viên Khi điền đầy đủ thông tin bắt buộc Mã nhân viên, Tên nhân viên Textbox nhấn nút thêm thông tin hiển thị Datagirdview Các thao tác Thêm, Xóa, Sửa thực tương tự Giao diện Quản lý Khách Hàng - Thêm nhân viên public static void nhapnv(IObjectContainer db, string manv, string tennv, string dt, string dc,string cv) { var tt = (from NhanVien x in db where x.Manv == manv select x).SingleOrDefault(); if (tt == null) { NhanVien t = new NhanVien(manv, tennv, dt, dc,cv); //lưu trữ db.Store(t); MessageBox.Show("Thêm thành công"); } else MessageBox.Show("Trùng mã nhân viên, vui lòng kiểm tra lại"); } - Sửa nhân viên public static void sua(IObjectContainer db, string manv, string ten, string dt, string dc,string cv) { var result = (from NhanVien x in db where x.Manv == manv select x).Single(); result.suatt(ten, dc, dt,cv); db.Store(result); MessageBox.Show("Sửa thành công!"); } - Xóa nhân viên public static void xoa(IObjectContainer db, string manv) { var s = (from DonDatHang x in db where x.getNV.Manv == manv select x).SingleOrDefault(); if (s == null) { var result = (from NhanVien x in db where x.Manv == manv select x).Single(); db.Delete(result); } else db.Commit(); MessageBox.Show("Xóa thành công!"); MessageBox.Show("Nhân viên có lập đơn hàng, vui lòng kiểm tra lại! "); } 3.4 SO SÁNH TỐC ĐỘ XỬ LÝ CHỨC NĂNG TRÊN CHƯƠNG TRÌNH SỬ DỤNG CSDL HƯỚNG ĐỐI TƯỢNG TRÊN DB4O VÀ TRÊN CSDL QUAN HỆ SQL SERVER Để so sánh tốc độ xử lý chức chương trình sử dụng CSDL hướng đối tượng DB4O SQL Server, ta sử dụng Stopwatch() để lấy thời gian so sánh tốc độ xử lý chức chương trình chạy hai sở liệu Nhóm chọn thao tác thêm nhân viên vào sở liệu Form quản lý nhân viên Ở hai Form có liệu tương tự để tạo công việc so sánh thời gian thực thao tác thêm nhân viên vào sở liệu Trong hai sở liệu chưa có nhân viên có sẵn để trình duyệt liệu có công Hình 2.26 Dữ liệu nhân viên CSDL SQL load lên Form Hình 2.27 Dữ liệu nhân viên CSDL DB4O load lên Form Với dòng lệnh thêm tương ứng: - Thêm nhân viên ứng dụng chạy CSDL SQL public void them_nv(string manv, string tennv, string dc, string dt) { string sa = "select * from nhanvien where manv = '" + manv + "'"; data = new SqlDataAdapter(sa, cn); tb = new DataTable(); data.Fill(tb); if (tb.Rows.Count == 0) { string s = "insert into nhanvien values ('" + manv + "', N'" + tennv + "',N'" + dc + "','" + dt + "')"; cm = new SqlCommand(s, cn); cm.ExecuteNonQuery(); MessageBox.Show("Thêm thành công!"); } else { MessageBox.Show("Trùng mã nhân viên"); } } private void b_them_Click(object sender, EventArgs e) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); cn = new SqlConnection(@"data source = yo\SQLEXPRESS; initial catalog = QLMP; integrated security = true"); try { cn.Open(); }catch { MessageBox.Show("Kết Nối Thất Bại!"); return; } them_nv(txt_manv.Text, txt_tennv.Text, txt_diachi.Text, txt_dt.Text); ht_nhanvien(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); MessageBox.Show("Thời gian để thêm dòng nhân viên vào CSDL SQL: " + elapsedTime); cn.Close(); } - Thêm nhân viên ứng dụng chạy CSDL DB4O public static void nhapnv(IObjectContainer db, string manv, string tennv, string dt, string dc) { var tt = (from NhanVien x in db where x.Manv == manv select x).SingleOrDefault(); if (tt == null) { NhanVien t = new NhanVien(manv, tennv, dt, dc); //lưu trữ db.Store(t); MessageBox.Show("Thêm thành công"); } else MessageBox.Show("Trùng mã nhân viên, vui lòng kiểm tra lại"); } private void b_them_Click(object sender, EventArgs e) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); db = OpenDB( "E:\\ttnt.txt"); nhapnv(db, txtmanv.Text, txttennv.Text, txtdt.Text, txtdc.Text); Loaddt(); stopWatch.Stop(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); MessageBox.Show("Thời gian để thêm dòng nhân viên vào CSDL DB4O: " + elapsedTime); db.Close(); } Kết sau chạy hai chương trình: - Thời gian chạy ứng dụng lưu SQL Server: 1.84s (như hình bên dưới) Hình 2.28 Kết ứng dụng chạy CSDL SQL Server - Thời gian chạy ứng dụng lưu DB4O: 1.37s (như hình bên dưới) Hình 2.29 Kết ứng dụng chạy CSDL DB4O Để kết có sức thuyết phục, lặp lại trình thêm lần Kết sau 10 lần: - Biểu đồ Hình 2.30 Biểu đồ thể thời gian thực thêm nhân viên ứng dụng SQL DB4O Dựa vào kết ta thấy tốc độ xử lý ứng dụng chạy CSDL DB4O nhanh ứng dụng chạy CSDL SQL Server Để thêm nữa, xử lý thêm thao tác xóa nhân viên cho hai ứng dụng SQL DB4O có tương đồng sở liệu thao tác làm việc - Cách xóa dòng nhân viên ứng dụng chạy SQL public void xoa_nv(string manv) { string k = "select * from nhanvien where manv='" + manv + "'"; data = new SqlDataAdapter(k, cn); tb = new DataTable(); data.Fill(tb); if (tb.Rows.Count > 0) { string s = "delete from nhanvien where manv ='" + manv + "'"; cm = new SqlCommand(s, cn); cm.ExecuteNonQuery(); MessageBox.Show("Xóa thành công!"); } } private void bxoa_Click(object sender, EventArgs e) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); cn = new SqlConnection(@"data source = yo\SQLEXPRESS; initial catalog = QLMP; integrated security = true"); try { cn.Open(); } catch { MessageBox.Show("conn Fail!"); return; } xoa_nv(txt_manv.Text); ht_nhanvien(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); MessageBox.Show("Thời gian để xóa dòng nhân viên vào CSDL SQL: " + elapsedTime); cn.Close(); } - Cách xóa dòng nhân viên ứng dụng chạy DB4O public static void xoa(IObjectContainer db, string manv) { var tt = (from NhanVien x in db where x.Manv == manv select x).SingleOrDefault(); if (tt != null) { var result = (from NhanVien x in db where x.Manv == manv select x).Single(); db.Delete(result); db.Commit(); MessageBox.Show("Xóa thành công!"); } } private void bxoa_Click(object sender, EventArgs e) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); db = OpenDB("E:\\ttnt.txt"); xoa(db,txtmanv.Text); Loaddt(); TimeSpan ts = stopWatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); MessageBox.Show("Thời gian để xoá dòng nhân viên vào CSDL DB4O: " + elapsedTime); db.Close(); Kết sau chạy hai chương trình: - Thời gian chạy ứng dụng lưu SQL Server: 1.36s (như hình bên dưới) Hình 2.31 Kết ứng dụng chạy CSDL SQL Server - Thời gian chạy ứng dụng lưu DB4O: 1.28s (như hình bên dưới) Hình 2.32 Kết ứng dụng chạy CSDL SQL Server Lặp lại trình thêm lần Kết sau 10 lần: - Biểu đồ Hình 2.33 Biểu đồ thể thời gian thực xóa nhân viên ứng dụng SQL DB4O Dựa vào hai kết ta thấy tốc độ xử lý ứng dụng chạy CSDL DB4O nhanh ứng dụng chạy CSDL SQL Server 3.5 KẾT CHƯƠNG Trong chương chúng em giới thiệu phần nhỏ ứng dụng quản lý cửa hàng nội thất sở liệu hướng đối tượng sử dụng LinQ DB4O nhằm tổng quát trình tìm hiểu sở liệu hướng đối tượng Và so sánh tốc độ xử lý hai chương trình chạy hai sở liệu khách KẾT LUẬN Qua “Tìm hiểu sở liệu hướng đối tượng xây dựng ứng dụng minh họa” chúng em hiểu thêm loại phương pháp tổ chức liệu co sở liệu hướng đối tượng, hiểu hệ quản trị sở liệu hướng đối tượng Biết sở liệu quan hệ sở liệu hướng đối tượng có ưu nhược điểm Đồng thời chúng em biết phần mềm DB4O, cách sử dụng truy vấn LinQ DB4O, cách tạo lập sở liệu hướng đối tượng kết nối đối tượng DB4O biết cách làm ứng dụng nhỏ DB4O Tuy nhiên làm dù có tốt tới đâu có sai sót hạn chế tránh khỏi Trong tìm hiểu thời gian có hạn chúng em dừng lại việc tạo phần nhỏ ứng dụng lớn hoàn chỉnh Sau chúng em tìm hiểu thêm xây dựng ứng dụng thành chương trình hoàn thiện đưa vào sử dụng TÀI LIỆU THAM KHẢO Tài liệu sách giáo khoa [1] Hoàng Thị Liên Chi, Bài giảng môn phân tích thiết kế hướng đối tượng UML, lưu hành nội bộ_Đại học công nghiệp thực phẩm Tp.HCM [2] Đoàn Văn Ban_Nguyễn Thị Tĩnh, giáo trình phân tích thiết kế hệ thống hướng đối tượng UML, nhà xuất Đại học sư phạm Trang Website [1] https://code.msdn.microsoft.com/101-LINQ-Samples- 3fb9811b#content [2] www.slideboom.com/presentations/628124/Tin4_Nhom4_Semina r_DB4O [3]http://stackoverflow.com/questions/3675808/determiningwhen-a-db4o-backup-has-finished

Ngày đăng: 18/08/2016, 18:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w