Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
1,63 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH TRẦN THỊ NGỌC TÚ NGHIÊN CỨU VỀ HIỆU NĂNG CỦA CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGHỆ AN, 2017 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH TRẦN THỊ NGỌC TÚ NGHIÊN CỨU VỀ HIỆU NĂNG CỦA CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG Chuyên ngành: Công nghệ thông tin Mã số: 60.48.02.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN Người hướng dẫn khoa học: TS PHAN ANH PHONG NGHỆ AN, 2017 i LỜI CAM ĐOAN Tôi xin cam đoan kết nghiên cứu có luận văn trình tìm hiểu, nghiên cứu hướng dẫn thầy giáo – TS Phan Anh Phong Nội dung luận văn có tham khảo, sử dụng thông tin, tài liệu từ nguồn liệt kê danh mục tài liệu tham khảo Các kết nghiên cứu đề tài trung thực chưa công bố đâu Học viên Trần Thị Ngọc Tú ii LỜI CẢM ƠN Để hồn thành tốt luận văn này, muốn gửi lời cảm ơn, lòng biết ơn sâu sắc thân đến thầy giáo – TS Phan Anh Phong, người trực tiếp hướng dẫn cho tôi, cung cấp tài liệu khoa học giúp tơi hồn thành luận văn Cảm ơn thầy tận tình hướng dẫn tạo điều kiện tốt cho tơi suốt q trình thực luận văn Khơng mặt kiến thức, thầy gương cho học hỏi phong cách làm việc ý thức trách nhiệm thân cơng việc Và để đạt kết ngày hôm nay, xin gửi lời cảm ơn chân thành đến quý thầy cô khoa Công nghệ thông tin trường Đại học Vinh Cảm ơn tất thầy nhiệt tình giảng dạy, truyền đạt cho kiến thức chun ngành tận tình hướng dẫn cho tơi q trình nghiên cứu luận văn Để hồn thành luận văn này, thân nỗ lực hết mình, với thời gian chưa nhiều vốn kiến thức cịn hạn hẹp chắn khơng thể tránh khỏi sai sót luận văn Vì vây, tơi mong nhận đóng góp tích cực thầy cô bạn để luận văn hồn thiện Tơi xin chân thành cảm ơn! Người thực Trần Thị Ngọc Tú iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH vii MỞ ĐẦU Chương CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 1.1 Cơ sở liệu quan hệ .4 1.1.1 Mô hình liệu 1.1.2 Điều khiển truy cập 1.1.3 Quản lý giao dịch 1.1.4 SQL2 1.1.5 Điểm yếu mơ hình liệu quan hệ 10 1.2 Cơ sở liệu hướng đối tượng 11 1.2.1 Đối tượng định danh đối tượng 11 1.2.2 Đóng gói đối tượng 12 1.2.3 Kế thừa 13 1.2.4 Đa hình 14 1.2.5 OO DBMS với OOPL .14 1.3 So sánh RDBMS với OODBMS 15 1.3.1 Khả mơ hình hóa liệu 15 1.3.2 So sánh RDBMS với OODBMS theo mục tiêu hệ thống 17 1.4 Kết luận chương 18 Chương CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG 20 2.1 Sự cần thiết việc quản lý liệu theo mơ hình quan hệ-đối tượng 20 iv 2.2 Mơ hình hóa liệu .21 2.3 Định danh đối tượng - OID 23 2.4 Các kiểu liệu 23 2.4.1 Kiểu đối tượng 23 2.4.2 Tham chiếu đối tượng 26 2.4.3 Kiểu mảng .26 2.5 SQL3 28 2.6 Mối liên kết 28 2.7 Kế thừa 29 2.8 Phương thức 31 2.9 Đóng gói quan hệ - đối tượng 32 2.10 Kết luận chương 33 Chương MỘT ĐÁNH GIÁ VỀ HIỆU NĂNG CỦA CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG 34 3.1 Bài toán quản lý nhân viên .34 3.2 Các yêu cầu đặt 35 3.3 Lựa chọn kiến trúc công cụ 35 3.4 Xây dựng sở liệu triển khai hệ thống .35 3.4.1 Sơ đồ thực thể - liên kết toán quản lý nhân viên .35 3.4.2 CSDL toán quản lý nhân viên theo mơ hình quan hệ 36 3.4.3 CSDL toán quản lý nhân viên theo quan hệ - đối tượng 38 3.4.4 Triển khai thử nghiệm .41 3.5 Kết luận chương 57 KẾT LUẬN 58 TÀI LIỆU THAM KHẢO 59 PHỤ LỤC 60 v DANH MỤC CÁC TỪ VIẾT TẮT STT Thuật ngữ CSDL RDBMS Giải thích Cơ sở liệu Viết tắt Relation DataBase Management System – Cơ sở liệu quan hệ OODBMS Viết tắt Object Oriented DataBase Management System - Cơ sở liệu hướng đối tượng ORDBMS Viết tắt Object Relation DataBase Management System - Cơ sở liệu quan hệ đối tượng OOPL OID Ngôn ngữ lập trình hướng đối tượng Định danh đối tượng vi DANH MỤC CÁC BẢNG Tên bảng STT Trang Bảng 1.1 So sánh OODBMS RDBMS với mơ hình hóa liệu 16 Bảng 1.2 So sánh OODBMS với RDBMS theo mục tiêu chúng 17 Bảng 3.1 Thời gian thực thêm 100 ghi phòng ban Bảng 3.2 Thời gian thực thêm 1000 ghi phòng ban 44 44 Bảng 3.3 Thời gian thực thêm 10.000 ghi phòng ban 45 Bảng 3.4 Tổng hợp trung bình thời gian thêm ghi phịng ban Bảng 3.5 Trung bình thời gian xóa 100, 1000, 10000 ghi phòng ban 45 49 vii DANH MỤC CÁC HÌNH Nội dung STT Trang Hình 1.1 Quan hệ NHAN_VIEN Hình 1.2 Một đối tượng với thuộc tính phương thức 12 Hình 2.1 Các hệ thống lưu trữ xử lý liệu 21 Hình 2.2 Một kiểu đối tượng bảng đối tượng 24 Hình 2.3 Kiểu đối tượng lưu trữ dạng cột 24 Hình 2.4 Lưu trữ bảng Person_table 25 Hình 2.5 Minh họa dòng bảng sử dụng kiểu REF 26 Hình 2.6 Minh họa kiểu mảng bảng 27 Hình 2.7 Một ví dụ kế thừa 30 10 Hình 2.8 Cách tổ chức đối tượng 31 11 12 Hình 3.1 Sơ đồ thực thể - liên kết tốn quản lý nhân viên 36 Hình 3.2 Chèn 10.000 ghi phòng ban vào hai sở liệu 43 13 Hình 3.3 Thời gian thực chèn ghi phòng ban 45 14 Hình 3.4 Thời gian thực chèn ghi nhân viên 48 15 16 Hình 3.5 So sánh thời gian thực xóa liệu phịng ban Hình 3.6 Thời gian thực truy vấn với CSDL có 5000 ghi 49 50 viii 17 18 19 20 21 22 23 Hình 3.7 Thời gian thực truy vấn với CSDL có 10000 ghi 51 Hình 3.8 Thời gian thực truy vấn với CSDL có 5000 ghi Hình 3.9 Thời gian thực truy vấn với CSDL có 10000 ghi 52 52 Hình 3.10 Thời gian thực truy vấn với CSDL có 10000 ghi 53 Hình 3.11 Thời gian thực truy vấn với CSDL có 50000 ghi 54 Hình 3.12 Thời gian thực truy vấn với CSDL có 50.000 ghi 55 Hình 3.13 Thời gian thực truy vấn với CSDL có 10000 ghi 56 56 Hình 3.13 Thời gian thực truy vấn với CSDL có 10000 ghi * Nhận xét 9: Truy vấn liệu CSDL quan hệ - đối tượng sử dụng kế thừa chậm CSDL quan hệ sử dụng việc nối bảng e Dung lượng bảng liệu CSDL quan hệ - đối tượng: 57 CSDL quan hệ: * Nhận xét 10: CSDL quan hệ thông thường tốn nhiều dung lượng lưu trữ CSDL quan hệ hướng đối tượng Vì CSDL quan hệ phải sử dụng nhiều ghi CSDL quan hệ hướng đối tượng nên CSDL quan hệ cần dung lượng lưu trữ lớn CSDL quan hệ hướng đối tượng 3.5 Kết luận chương Với toán thử nghiệm quản lý nhân viên, thiết kế CSDL theo mơ hình liệu quan hệ quan hệ - đối tượng tốn Sau thực thao tác sở liệu thiết kế đánh giá thời gian thực với truy vấn cụ thể rút kết luận: - Về lưu trữ: CSDL quan hệ - đối tượng sử dụng tham chiếu đối tượng nên đỡ tốn chi phí dung lượng lưu trữ - Về thời gian xử lý: Quá trình cập nhật liệu CSDL quan hệ - đối tượng nhanh CSDL quan hệ, nhiên trình tìm kiếm ngược lại, CSDL quan hệ - đối tượng có phần chậm so với CSDL quan hệ thông thường 58 KẾT LUẬN Sau thời gian tìm hiểu nghiên cứu với đề tài ““Nghiên cứu hiệu sở liệu quan hệ - đối tượng”, luận văn đạt kết là: - Trình bày vấn đề CSDL quan hệ như: Mơ hình liệu, điều khiển truy cập, quản lý giao dịch, SQL2 - Trình bày vấn đề CSDL hướng đối tượng như: Đối tượng, định danh đối tượng, đóng gói đối tượng, kế thừa, đa hình OODBMS với OOPL - Trình bày điểm yếu CSDL quan hệ CSDL hướng đối tượng, so sánh CSDL - Nghiên cứu CSDL quan hệ - đối tượng bao gồm: Sự cần thiết việc quản lý theo mơ hình quan hệ - đối tượng, mơ hình hóa liệu, OID, kiểu liệu, SQL3, mối liên kết, kế thừa, phương thức, đóng gói quan hệ đối tượng - Đánh giá hiệu CSDL quan hệ - đối tượng, so sánh hiệu CSDL quan hệ CSDL quan hệ - đối tượng việc thử nghiệm hiệu thực thêm, xóa, tìm kiếm tốn thử nghiệm với mơi trường Oracle 11g Nếu có nhiều thời gian nghiên cứu xa phần thử nghiệm hiệu suất phần chương mở rộng thêm thử nghiệm bảng quan hệ phức tạp bao gồm đối tượng bảng với nhiều đối tượng tham chiếu Ngoài thử nghiệm mở rộng để bao gồm tuyến tính tham chiếu từ nhiều bảng 59 TÀI LIỆU THAM KHẢO Tiếng Anh [1] Stonebraker M (1996), Object-Relational DRMSs: The Next Great Wave Morgan Kaufmann Publishers Inc, San Francisco, CA, 1999 [2] S.Ambler Building Object Applications that Work Cambridge University Press and Sigs Books, New York, NY, USA, 1998 [3] Eric Pardede Johanna Wenny Rahayu, David Taniar Object-Oriented Oracle Hersey CyberTech Publishing, London, UK, 2005 [4] Oracle Oracle Database Application Developer’s Guide - Object Relational Features, 2005 [5] Raghu Ramakrishnan, and Johannes Gehrke, Database Management Systems, McGraw-Hill, 6rd, 2011 (Cow’s Book) [6] J.M Hellerstein, and Michael Stonebraker, Readings in Database Systems, fourth edition, MIT Press, 2005 [7] Michael Stonebraker, Paul Brown, and Dorothy Moore , ObjectRelational DBMSs, Morgan Kaufmann, 1998 [8] Lara Nichols, A comparison of object – relation and relationl databases, December 2007 Tiếng Việt [9] Hồ Thuần, Hồ Cẩm Hà (2005), Các hệ sở liệu: Lý thuyết tập, Nhà xuất Giáo dục [10] Phạm Đức Nhiệm (2005), Giáo trình sở liệu quan hệ, Nhà xuất Hà Nội [11] Hoàng bảo Hùng (2015), Cơ sở liệu hướng đối tượng, Nhà xuất Thông tin truyền thông 60 PHỤ LỤC Hàm Lấy Thời Gian Truy Vấn: Public datatable runquery(string querystring, string tablename,ref double tg) { Dataset mydataset = new dataset(); mydataadapter = new oracledataadapter(); Try { Datetime start = datetime.now; mydataadapter.selectcommand = new oraclecommand(querystring, myconnection); Oraclecommandbuilder mycommandbuilder = new oraclecommandbuilder(mydataadapter); if (tablename.trim().length > 0) mydataadapter.fill(mydataset, tablename); else mydataadapter.fill(mydataset); var end = datetime.now; tg = (end - start).totalmilliseconds / 1000; } Catch (oracleexception ex) { return null; } return mydataset.tables[tablename]; } Hàm Lấy Thời Gian Cập Nhật Dữ Liệu Public double executenonquery(string cmdtext) { 61 Datetime start = datetime.now; Oraclecommand mycommand = new oraclecommand(cmdtext, myconnection); mycommand.executenonquery(); var end = datetime.now; return (end - start).totalmilliseconds / 1000; } Lớp Dataservices Dùng Để Xử Lý CSDL Class dataservices { Private static oracleconnection myconnection; Private oracledataadapter mydataadapter; Public dataservices() { } ~dataservices() { } Public void opendb() { Try { String strconnect = "data source=xe;persist security info=true;user id=qlnhansu;password=12345;unicode=true"; myconnection = new oracleconnection(strconnect); Myconnection.open(); } Catch (oracleexception ex) { myconnection = null; } 62 } Public void closedb() { if (myconnection != null) { Try { myconnection.close(); } Catch (oracleexception) { } Catch (exception) { } myconnection = null; } } // -//ham truy van du lieu vao datatable Public datatable runquery(string querystring, string tablename,ref double tg) { Dataset mydataset = new dataset(); mydataadapter = new oracledataadapter(); Try { Datetime start = datetime.now; mydataadapter.selectcommand = new oraclecommand(querystring, myconnection); Oraclecommandbuilder mycommandbuilder = new oraclecommandbuilder(mydataadapter); if (tablename.trim().length > 0) 63 mydataadapter.fill(mydataset, tablename); else mydataadapter.fill(mydataset); var end = datetime.now; tg = (end - start).totalmilliseconds / 1000; } Catch (oracleexception ex) { Return null; } Return mydataset.tables[tablename]; } //ham thuc hien cau lenh sql de cap nhat du lieu, tra ve thoi gian thuc hien Public double executenonquery(string cmdtext) { Datetime start = datetime.now; Oraclecommand mycommand = new oraclecommand(cmdtext, myconnection); mycommand.executenonquery(); var end = datetime.now; return (end - start).totalmilliseconds / 1000; } } Chương Trình Tự Động Nhập Ngẫu Nhiên Số Lượng Phòng Ban Vào CSDL: Private void btninsert_click(object sender, eventargs e) { Random rand = new random(); Double tg1 = 0, tg2 = 0; Datatable tbl = mydataservices.runquery("select max(p.maphong) maphong from tblphongban p", "tblmaphong",ref tg); int max = 0; if (tbl.rows.count > 0) 64 { Datarow editrow = tbl.rows[0]; Try { Max = int32.parse(editrow["maphong"].tostring()); Max++; } Catch { } } for (int i = max; i < sl+max; i++) { String[] dd = new string[] { "thanh hoa", "nghe an", "ha noi", "hai phong", "da nang", "nha trang", "tp hcm", "lao cai", "bac can", "ha tinh" }; String[] ten = new string[] {" ", "z", "x", "c", "v", "b", "n", "m", "a", "s", "d", "f", "g", "h", "j", "k", "q", "w", "e", "r", "t", "y", "u", "i", "o", "p" }; String tenphong=null; for (int j = 0; j < rand.next(1,10); j++) tenphong += ten[rand.next(ten.length)]; String maphong = i.tostring(); String sql2 = "insert into tblphongban values(" + maphong + ",'" + tenphong + "')"; tg2 += mydataservices2.executenonquery(sql2); String tendd; tendd = dd[rand.next(dd.length)].tostring(); tg2 += mydataservices2.executenonquery("insert into tblddphong values(" + maphong + ",'" + tendd + "')"); String diadiem = "'" + tendd + "'"; For (int j = 0; j < rand.next(10); j++) { Tendd = dd[rand.next(dd.length)].tostring(); Diadiem += ",'" + tendd + "'"; 65 Tg2 += mydataservices2.executenonquery("insert into tblddphong values(" + maphong + ",'" + tendd + "')"); } String sql = "insert into tblphongban values(" + maphong + ",'" + tenphong + "',diadiem_a(" + diadiem + "))"; Try { Tg1 += mydataservices.executenonquery(sql); } Catch (exception) { return; } } Display(); Lbtg1.text = tg1.tostring() + " giây"; Lbtg2.text = tg2.tostring() + " giây"; } Chương Trình Tự Động Nhập Ngẫu Nhiên Số Lượng Nhân Viên Vào CSDL Private void btninsert_click(object sender, eventargs e) { Double tg1 = 0, tg2 = 0; Int max=0; Random rand = new random(); Datatable tbl = mydataservices.runquery("select max(nv.manv) manv from tblnhanvien nv","tbl",ref tg); If (tbl.rows.count > 0) { Datarow editrow = tbl.rows[0]; Try { Max = int32.parse(editrow["manv"].tostring()); 66 Max++; } Catch { } } Double thoigian = 0; For ( int i=max; i < max+sl; i++) { String manv = i.tostring(); String[] gt = new string[] { "nam", "nu" }; String[] ho = new string[] { "le", "nguyen", "tran", "bui", "truong", "vu", "doan", "do", "ho", "vang", "ong" }; String[] dem = new string[] { "manh", "thi", "ngoc", "van", "cong", "minh", "hong", "mai", "nhat", "linh", "khanh" }; String[] ten = new string[] { "hung", "nam", "linh", "phuong", "hoa", "nhu", "manh", "thang", "quang", "duc", "quan", "huy", "an", "lan" }; String hoten = ho[rand.next(ho.length)] + " " + dem[rand.next(dem.length)] + " " + ten[rand.next(ten.length)]; String namsinh = rand.next(1970, 1995).tostring(); String luong = rand.next(100, 10000).tostring(); String mahd = "hd" + rand.next(99999999); String dongia = rand.next(100, 1000000).tostring(); String sogio = rand.next(9999).tostring(); String gioitinh = gt[rand.next(gt.length)]; Datatable tblmaxmp = mydataservices.runquery("select max(pb.maphong) maphong from tblphongban pb", "tblmaxmp", ref tg); Datarow rowmp = tblmaxmp.rows[0]; String phongban = rand.next(int32.parse( rowmp["maphong"].tostring())).tostring(); String dscon = null; 67 String sql2 = "insert into tblnhanvien(manv,hoten,namsinh,gioitinh,luong,maphong) values(" +manv + ",'" + hoten + "'," + namsinh + ",'" + gioitinh + "'," + luong + "," + phongban + ")"; Tg2 += mydataservices2.executenonquery(sql2); For (int j = 0; j < rand.next(5); j++) { String gtcon = gt[rand.next(gt.length)]; String hotencon = ho[rand.next(ho.length)] + " " + dem[rand.next(dem.length)] + " " + ten[rand.next(ten.length)]; String tuoicon = rand.next(1990, 2016).tostring(); Dscon += "con_t('" + hotencon +"','" + gtcon + "'," + tuoicon + "),"; Sql2 = "insert into tblcon values(" + manv + ",'" + hotencon + "','" + gtcon + "'," + tuoicon + ")"; Tg2 += mydataservices2.executenonquery(sql2); } String sql=null; If (rbtnvhd.checked) { If (dscon != null) { Dscon = dscon.substring(0, dscon.length - 1); Sql = "insert into tblnhanvien values(nhanvienhd_t(" + manv + ",'" + hoten + "'," + namsinh + ",'" + gioitinh + "'," + luong + ",con_a(" + dscon + "),(select ref(pb) from tblphongban pb where pb.maphong=" + phongban + "),'" + mahd + "'))"; } Else Sql = "insert into tblnhanvien values(nhanvienhd_t(" + manv + ",'" + hoten + "'," + namsinh + ",'" + gt[rand.next(gt.length)] + "'," + luong + ",null,(select ref(pb) from tblphongban pb where pb.maphong=" + phongban + "),'" + mahd + "'))"; Sql2 = "insert into tblnhanvienhd values(" + manv + ",'" + mahd + "')"; } 68 If (rbtnvtg.checked) { If (dscon != null) { Dscon = dscon.substring(0, dscon.length - 1); Sql = "insert into tblnhanvien values(nhanvientg_t(" + manv + ",'" + hoten + "'," + namsinh + ",'" + gioitinh + "'," + luong + ",con_a(" + dscon + "),(select ref(pb) from tblphongban pb where pb.maphong=" + phongban + ")," + dongia + "," + sogio + "))"; } Else Sql = "insert into tblnhanvien values(nhanvientg_t(" + manv + ",'" + hoten + "'," + namsinh + ",'" + gt[rand.next(gt.length)] + "'," + luong + ",null,(select ref(pb) from tblphongban pb where pb.maphong=" + phongban + ")," + dongia + "," + sogio + "))"; Sql2 = "insert into tblnhanvientg values(" + manv + "," + dongia + ","+sogio+")"; } Try { Tg1 += mydataservices.executenonquery(sql); Tg2 += mydataservices2.executenonquery(sql2); } Catch (exception) { return; } } Messagebox.show("insert cong mat " + thoigian + " giay"); Display(); Lbtg1.text = tg1.tostring(); Lbtg2.text = tg2.tostring(); } Chương Trình Xóa Số Lượng Nhân Viên Trên Cả CSDL: private void btndel_Click(object sender, EventArgs e) { 69 double tg1 = 0, tg2 = 0; int i = 0; Random rand = new Random(); DataTable tbl=new DataTable(); if (rbtNVHD.Checked) tbl = myDataServices.RunQuery("select nv.manv manv from tblnhanvien nv where value(nv) is of(nhanvienhd_t) order by(nv.manv) desc", "tblmanv", ref tg); if(rbtNVTG.Checked) tbl = myDataServices.RunQuery("select nv.manv manv from tblnhanvien nv where value(nv) is of(nhanvientg_t) order by(nv.manv) desc", "tblmanv", ref tg); if (tbl.Rows.Count >= sl) { foreach (DataRow a in tbl.Rows) { if (i >= sl) break; String manv = a["manv"].ToString(); String sql = "delete tblnhanvien nv where nv.manv=" + manv; tg1 += myDataServices.ExecuteNonQuery(sql); String sql2 = "delete tblqlphongban ql where ql.manv=" + manv; tg2 += myDataServices2.ExecuteNonQuery(sql2); if (rbtNVHD.Checked) { sql2 = "delete tblnhanvienhd hd where hd.manv=" + manv; tg2 += myDataServices2.ExecuteNonQuery(sql2); } if (rbtNVTG.Checked) { sql2 = "delete tblnhanvientg tg where tg.manv=" + manv; tg2 += myDataServices2.ExecuteNonQuery(sql2); } sql2 = "delete tblcon nv where nv.manv=" + manv; 70 tg2 += myDataServices2.ExecuteNonQuery(sql2); sql2 = "delete tblnhanvien nv where nv.manv=" + manv; tg2 += myDataServices2.ExecuteNonQuery(sql2); i++; } } else { MessageBox.Show("số lượng phải " + tbl.Rows.Count); return; } MessageBox.Show("xóa " + sl + " nhân viên thành công"); display(); lbtg1.Text = tg1.ToString(); lbtg2.Text = tg2.ToString(); } ... nghiên cứu - Nghiên cứu khả mơ hình hóa sở liệu quan hệ hệ sở liệu dựa đối tượng - Thử nghiệm đánh giá hiệu sở liệu quan hệ - đối tượng Đối tượng phạm vi nghiên cứu - Cơ sở liệu quan hệ - Cơ sở liệu. .. hình liệu quan hệ quan hệ - đối tượng; Thực thao tác sở liệu thiết kế đánh giá thời gian thực với truy vấn cụ thể Chương CƠ SỞ DỮ LIỆU QUAN HỆ VÀ CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG 1.1 Cơ sở liệu quan. .. 20 Chương CƠ SỞ DỮ LIỆU QUAN HỆ - ĐỐI TƯỢNG CSDL quan hệ - đối tượng mở rộng CSDL quan hệ sử dụng số đặc trưng CSDL hướng đối tượng, thấy, kiến trúc sở liệu quan hệ - đối tượng quan hệ Điểm khác