6. Bố cục luận văn
2.5.2. Xây dựng Trigger
Với AM trong SQL Server [2] [3], chỉ cần tạo và cập nhật các KNT của khung nhìn cuối và hàm theo thời điểm khi có các sự kiện trên các bảng được sinh ra từ thuộc tính biến thiên, thuộc tính biến thiên giới hạn, quan hệ biến thiên và quan hệ biến thiên giới hạn. Một khi đã có các KNT là kết quả thực thi truy vấn bao gồm phép nối ngoài
và hàm gộp MAX, có thể dùng công cụ có sẵn của SQL Server để tạo các khung nhìn chỉ mục hoá khác.
Có thể thực hiện cập nhật bảng KNT cho khung nhìn cuối, cho mỗi bản ghi từ tập bảng được thêm mới vào bảng gốc (bảng tham gia vào truy vấn tạo khung nhìn cuối): i) xác định khoá; ii) xác định bộ giá trị khoá và giá trị thuộc tính; iii) cập nhật giá trị thuộc tính trong bảng KNT với điều kiện bộ giá trị khoá trùng với bộ giá trị khoá trong bản ghi mới.
2.5.2.1. Trigger cập nhật lại điểm hệ số 1 thay đổi theo thời gian
Khi điểm kiểm tra lần 1 hệ số 1 trong bảng dhs1_diem1_diem_hs1_diem_l1 có sự thay đổi theo thời gian (thay đổi điểm đã có bằng một điểm mới), để tự cập nhật lại bảng điểm này cho đúng, ta tiến hành tạo bảng Tdhs1_diem1_dhs1_ID_ChangedAt, bảng này lưu trữ lại những điểm số có thời gian thay đổi mới nhất theo từng thuộc tính dhs1_diem1_dhs1_ID. Để cho bảng Tdhs1_diem1_dhs1_ID_ChangedAt tự động cập nhật ta xây dựng trigger cho bảng Tdhs1_diem1_dhs1_ID_ChangedAt (mã nguồn tạo trigger này có trong phụ lục C).
Trigger này hoạt động dựa vào thuộc tính dhs1_diem1_dhs1_ID, các dhs1_diem1_dhs1_ID trùng nhau thì chọn điểm cho dhs1_diem1_dhs1_ID có thời gian thay đổi lớn nhất.
2.5.2.2. Trigger cập nhật lại các KNT tong1, tong2, tong3 khi Insert, Delete, Update
Khi điểm trong các bảng DIEM_HS1, DIEM_HS2, DIEM_HS3 có sự thay đổi thì các KNT tong1, tong2, tong3 cũng thay đổi theo. Để cập nhật kịp thời các KNT tong1, tong2, tong3 ta xây dựng các trigger trên các khung nhìn này để chúng tự động cập nhật (mã nguồn tạo các trigger này có trong phụ lục C).
Trigger Insert hoạt động dựa vào so sánh số dòng trong các KNT Tong1, Tong2, nếu số dòng nào lớn hơn thì thêm vào Tong12 theo Ma_mon, Ma_hs, Ma_hky giá trị mới chèn đó (giá trị trong dòng dư ra)
Trigger Delete hoạt động dựa vào các thuộc tính Ma_mon, Ma_hs, Ma_hky. Khi ta xóa bộ giá trị trên Tong1 hay Tong2 thì ta xóa trên bảng Tong12 bộ giá trị đó dựa vào Ma_mon, Ma_hs, Ma_hky .
Trigger Update hoạt động dựa vào các thuộc tính Ma_mon, Ma_hs, Ma_hky. Khi ta Update một bộ giá trị trên Tong1 hay Tong2, dựa vào Ma_mon, Ma_hs, Ma_hky ta cộng thêm vào Tong12 giá trị mới và đồng thời xóa đi giá trị cũ trên Tong12.
Hình 2.6. Liên hệ giữa bảng gốc, khung nhìn, KNC và Trigger
2.6. Kết luận Chương 2
Chương này tập trung nghiên cứu tổng quan hệ thống quản lý điểm cho học sinh tại trường THPT Ba Gia tỉnh Quảng Ngãi, các thao tác trong hệ thống, xây dựng CSDL trong SQL Server cho hệ thống, cách truy vấn cho các một số thao tác.
Từ mô hình thực thể kết hợp và mô hình dữ liệu quan hệ, ta mô tả lại CSDL quản lí điểm của trường THPT Ba Gia theo định nghĩa của AM, thiết kế mô hình AM cho CSDL, cách thức truy vấn cho các thao tác trên CSDL AM. Ngoài ra bằng công cụ Anchor Modeler cho phép sinh mã SQL để tạo CSDL, bao gồm cả các bảng mô tả các tập thực thể, thuộc tính và các mối quan hệ cũng như các hàm theo thời điểm và các khung nhìn cho phép truy cập đến dữ liệu vào bất kỳ thời điểm nào trong quá khứ.
Từ CSDL AM ta ứng dụng khung nhìn thực vào trong việc thực hiện một số truy vấn nhằm tăng tốc độ thực hiện các truy vấn
CÁC BẢNG GỐC DIEM_HS1 DIEM_HS2 DIEM_HS3 khung nhìn Tong1 khung nhìn Tong2 khung nhìn Tong3 Các Trigger
Tg_I_Tong1, Tg_D_Tong1, Tg_U_Tong1,
Các Trigger
Tg_I_Tong2, Tg_D_Tong2, Tg_U_Tong2,
Các Trigger
Tg_I_Tong3, Tg_D_Tong3, Tg_U_Tong3,
KNC TONG12
CHƯƠNG 3
THỰC NGHIỆM VÀ ĐÁNH GIÁ
Thử nghiệm được thực hiện trên máy tính có cấu hình: Intel Core i3, CPU 1.7 GHz, RAM 4Gb; Hệ điều hành Windows 7, SQL Sever 2014
Dữ liệu sử dụng thử nghiệm như sau:
Bảng 3.1. Mô tả dữ liệu thử nghiệm
TT Tên bảng Số lượng bản ghi
1 HOCSINH 1200 2 PHUHUYNH 1200 3 GIAOVIEN 100 4 BANGDIEM 14400 5 MONHOC 12 6 LOP 33 7 HOCKY 2 8 NAMHOC 1 9 HANHKIEM 4 10 DIEM_HS1 14410 11 DIEM_HS2 14410 12 DIEM_HS3 14410
3.1. Một số kết quả thu được
Sau khi xây dựng CSDL AM, trên hình 3.1 mô tả truy vấn tính điểm trung bình từng môn học cho học sinh ở học kỳ 1. Để tính được điểm trung bình từng môn, ta phải tính tổng điểm hệ số 1, cộng với tổng điểm hệ số 2 nhân 2, cộng với điểm hệ số 3 nhân 3 sau đó chia cho tổng hệ số.
Hình 3.2. Truy vấn tính điểm trung bình các môn học trên SQL Server
Sau khi thực hiện truy vấn tính điểm trung bình từng môn như trong hình 3.1, ta thực hiện tính điểm trung bình các môn như trong hình 3.2. Trong hình 3.2, ta thực hiện truy vấn tính điểm trung bình các môn và kết quả truy vấn được sắp xếp theo tên từ A đến Z.
Hình 3.4. Truy vấn tính điểm trung bình các môn có ứng dụng KNT
Trên hình 3.3, hình 3.4 và hình 3.5 ta thực hiện các truy vấn tính điểm trung bình từng môn, tính điểm trung bình các môn và xếp loại học lực trên CSDL AM có ứng dụng KNT. Truy vấn trả về kết quả chính xác, thời gian thực hiện các truy vấn nhanh rất nhiều so với các truy vấn tính điểm trung bình môn, truy vấn tính trung bình các môn và truy vấn xếp loại trên CSDL AM không ứng dụng KNT.
Hình 3.6. Truy vấn xem điểm theo thời gian
Để thêm mới một bản ghi, tương ứng là một giá trị cho một thuộc tính của thực thể, trong bảng CSDL AM sẽ được thêm mới một bản ghi. Với các thuộc tính và quan hệ biến thiên có thể tồn tại thao tác cập nhật. Để cập nhật một bản ghi, tương ứng cho một thuộc tính của thực thể từ giá trị cũ về giá trị mới, một bản ghi mới sẽ được thêm vào bảng CSDL AM và bản ghi với giá trị cũ vẫn được giữa nguyên.
Các giao diện hiển thị truy vấn trên hình 3.6 và hình 3.7 mô tả chức năng quản lí điểm theo thời gian, nghĩa là người dùng muốn chọn thời điểm nào để xem điểm của học sinh cũng được. Trên hình 3.6 cho hiển thị tất cả các điểm hệ số 1 lần 1 môn toán ở học kỳ 1 của học sinh có mã số 1. Các điểm hệ số 1 lần 1 môn toán ở học kỳ 1 của học sinh có mã số 1 mặc dù đã được thay đổi nhiều lần nhưng khi cần ta đều chọn ra được. Còn trong hình 3.7 hiển thị điểm hệ số 1 lần 1 môn toán ở học kỳ 1 của học sinh có mã số 1 tại thời điểm hiện tại hiện tại.
3.2. Nhận xét, đánh giá
Bảng 3.2. Thời gian thực hiện truy vấn
Truy vấn Lần thực
hiện
Thời gian thực hiện truy vấn (s) Trên CSDL SQL Trên CSDL AM Trên CSDL AM có ứng dụng KNT Tính điểm trung bình môn 1 0.630 0.570 0.413 2 0.573 0.600 0.340 3 0.587 0.591 0.403 Tính điểm trung bình tất cả các môn 1 0.536 0.520 0.120 2 0.543 0.572 0.137 3 0.567 0.558 0.143 Xếp loại học lực học sinh 1 0.610 0.598 0.120 2 0.583 0.615 0.130 3 0.594 0.595 0.106
Biểu đồ 3.1. So sánh thời gian thực hiện các truy vấn trên CSDL SQL Server, CSDL AM và CSDL AM có ứng dụng KNT 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 Tính điểm trung bình môn Tính điểm trung bình tất cả các môn Xếp loại học lực học sinh
Thời gian (s) thực hiện truy vấn trên CSDL SQL Server
Thời gian (s) thực hiện truy vấn trên CSDL AM Thời gian (s) thực hiện truy vấn trên CSDL AM có ứng dụng KNT
Kết quả truy vấn thể hiện trong các hình 3.1, hình 3.2, hình 3.3, hình 3.4, hình 3.5 cho ta thấy:
- Sau khi chuyển đổi dữ liệu từ CSDL SQL Server sang CSDL AM kết quả thực hiện truy vấn vẫn trả về kết quả chính xác
- Khi thực hiện truy vấn trên CSDL AM có áp dụng KNT kết quả trả về vẫn chính xác
Trong bảng 3.2 thể hiện thời gian thực hiện truy vấn trên CSDL SQL so với trên CSDL AM và CSDL AM có áp dụng khung nhìn thực. Ta thấy thời gian thực hiện truy vấn trên CSDL SQL và trên CSDL AM không khác nhau nhiều. Nhưng thời gian thực hiện truy vấn trên CSDL AM có áp dụng KNT là nhanh hơn nhiều so với trên CSDL SQL.
Việc sử dụng các khung nhìn cũng có hạn chế (thể hiện trong bảng 3.3), cứ mỗi khi dữ liệu trong các bảng gốc được cập nhật, các KNT sử dụng các dữ liệu đó trở nên không thực tiễn, để duy trì các bảng KNT trong trạng thái thực tiễn, cần phải cập nhật chúng mỗi khi có sự thay đổi dữ liệu (insert, update, delete) trong các bản gốc. Chẳng hạn có một thay đổi nhỏ về một điểm số nào đó trong bảng gốc, khi đó ta phải cật nhật lại KNT, giả sử ta dùng phương pháp cập nhật hoàn toàn KNT. Ta thấy ở đây chỉ thay đổi nhỏ trong bảng gốc mà phải cật nhật hoàn toàn KNT dẫn đến mất thời gian cho việc cập nhật. Vì thế để khắc phục hạn chế này cần tạo các trigger tự động cập nhật gia tăng khi có thay đổi dữ liệu trong bảng gốc.
Bảng 3.3. Thời gian thực hiện truy vấn khi Update dữ liệu
Truy vấn Lần thực
hiện
Thời gian thực hiện truy vấn (s) Trên CSDL SQL Trên CSDL có ứng dụng KNT Update dữ liệu trên bảng DIEM_HS1 1 0.103 0.247 2 0.110 0.170 3 0.120 0.177 4 0.115 0.190 5 0.123 0.205 3.3. Kết luận Chương 3
Với giả thiết hệ thống quản lý điểm đã tồn tại và đang hoạt động với CSDL bao gồm số lượng lớn bản ghi, chương này đã thực hiện chuyển đổi CSDL từ mô hình dữ liệu quan hệ truyền thống sang CSDL quan hệ được thiết kế theo AM để quản lí điểm. Bằng công cụ Anchor Modeler cho phép sinh mã SQL để tạo CSDL, bao gồm cả các bảng mô tả các tập thực thể, thuộc tính và các mối quan hệ cũng như các hàm theo thời điểm và các khung nhìn cho phép truy cập đến dữ liệu vào bất kỳ thời điểm nào trong quá khứ. Sử dụng cơ sở dữ liệu theo AM để quản lý điểm theo thời gian, nghĩa là,
người dùng muốn chọn bất kỳ thời điểm nào để truy vấn tìm lại điểm của học sinh đã được thay đổi, những giá trị dữ liệu mới nhất tại thời điểm người dùng chọn sẽ được chọn để làm việc trong hệ thống.
Từ kết quả thu được qua các truy vấn cho một số thao tác của hệ thống trên CSDL SQL, CSDL AM không ứng dụng KNT và CSDL AM có ứng dụng KNT, tiến hành đánh giá ứng dụng AM và KNT trong việc quản lý điểm học sinh tại trường THPT Ba Gia.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Những kết quả thu được
Qua quá trình nghiên cứu và tìm hiểu về các vấn đề liên quan đến AM và KNT, luận văn đã hoàn thành và đạt được một số kết quả sau:
Luận văn đã tìm hiểu được cơ sở lí thuyết liên quan đến AM, KNT và quản lí điểm cho học sinh. Nghiên cứu qui trình thiết kế CSDL Anchor cho hệ thống quản lí điểm cho học sinh, ngoài ra luận văn cũng tìm hiểu các công cụ Anchor Modeller, Microsoft SQL Sever 2014 để xây dựng dữ liệu ứng dụng cho hệ thống quản lí điểm cho học sinh. Anchor Modeler cho phép sinh mã SQL để tạo CSDL. Ứng dụng được KNT cho một số các truy vấn, đồng thời cũng đã xây dựng được các Trigger để cập nhật tự động một số khung nhìn.
Đề tài là nền tảng trong việc nghiên cứu và ứng dụng AM để quản lí kho dữ liệu, phục vụ lĩnh vực hiển thị thông tin điểm của học sinh, góp phần vào việc phát triển và mở rộng mô hình thiết kế CSDL hiện nay theo hướng các thay đổi chỉ yêu cầu mở rộng chứ không sửa đổi. Tính năng này là cơ sở cho một số lợi ích được cung cấp bởi mô hình hóa AM, bao gồm dễ dàng truy vấn dữ liệu theo thời gian và hiệu suất thời gian chạy cao. Việc ứng dụng KNT trong CSDL AM cũng nâng cao hiệu quả thực thi các truy vấn.
Bên cạnh những kết quả đạt được, để đưa kho dữ liệu điểm của học sinh vào ứng dụng một cách hiệu quả hơn thì cần tiếp tục đầu tư thu thập dữ liệu về điểm của học sinh nhiều năm hơn nữa. Bản thân tôi nhận thấy đây là hướng tiếp cận đúng đắn và có tính thực tiễn cao.
Hướng phát triển
Trong tương lai, giải pháp đề xuất có thể tăng tốc truy cập dữ liệu quản lí điểm, thống kê, phân tích dữ liệu, hoàn thiện hơn các chức năng quản lý dữ liệu. Xây dựng kho dữ liệu phong phú, đầy đủ hơn về thông tin và chi tiết hơn về nội dung, dữ liệu được cung cấp đầy đủ, cập nhật thường xuyên và chính xác.
TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Nguyễn Trần Quốc Vinh (2009), “Ứng dụng khung nhìn thực để nâng cao tốc độ truy vấn”, Tạp chí Khoa học và Công nghệ - Đại học Đà Nẵng, số (30). [2]. Nguyễn Trần Quốc Vinh (2012), Nghiên cứu xây dựng chương trình sinh mã tự
động các trigger phục vụ cập nhật gia tăng khung nhìn thực, Đề tài NCKH
cấp Đại học Đà Nẵng, mã số Đ2012-04-19.
[3]. Nguyễn Trần Quốc Vinh, Huỳnh Xuân Hiệp, Trần Đăng Hưng, Hoàng Ngọc Hiển, Nguyễn Văn Vương (2016), “Sinh tự động các trigger trên ngôn ngữ T-SQL hỗ trợ Anchor Modeling trong SQL Server”, Kỷ yếu Hội nghị Quốc gia lần
thứ IX về Nghiên cứu cơ bản và ứng dụng Công Nghệ thông tin (FAIR); Cần Thơ, ngày 04-05/8/2016
[4]. Nguyễn Trần Quốc Vinh (2009), “Cập nhật không đồng bộ các khung nhìn thực ASYNCHRONIZED ACTUALIZATION FOR THE MATERIALIZED VIEWS”, Tạp chí Khoa học và Công nghệ các trường Đại học kỹ thuật,
Trường Đại học Kinh tế, Đại học Đà Nẵng số 74.
Tiếng Anh
[5]. A. Artale and E. Franconi, Reasoning with Enhanced Temporal Entity- Relationship Models, in: Proc. of the 10th Int. Workshop on Database and Expert Systems Applications, Florence, Italy, IEEE Computer Society, 1999,
pp. 482–486.
[6]. B. Bebel, J. Eder, C. Koncilia, T. Morzy, and R. Wrembel, Creation and Management of Versions in Multiversion Data Warehouses, in: Hisham Haddad.
[7]. C. E. Date, H. Darwen, and N. A. Lorentzos (2003), Temporal Data and the Relational Model, Elsevier Science.
[8]. C. S. Jensen and R. T. Snodgrass (1999), Temporal Data Management, IEEE Transactions on Knowledge and Data Engineering, Vol. 11, No. 1, pp. 36–
44.
[9]. M. Golfarelli, J. Lechtenborger, S. Rizzi, and G. Vossen ¨ Schema versioning in data warehouses: Enabling cross-version querying via schema augmentation, Data & Knowledge Engineering, Vol. 59, Issue 2, (2006), pp. 435–459. [10]. Rönnbäcka L., Regardtb O., Bergholtzc M., Johannessonc P., Wohedc P.,
"Anchor modeling — Agile information modeling in evolving data environments", Data & Knowledge Engineering, 69(12), 2010, pp. 1229. Rönnbäck L., "Anchor Modeling – A Technique for Information under Evolution",
<http://www.anchor modeling.com/wp-content/uploads/2011/05/Anchor- Modeling-Open-AMW.pdf>
[11]. X. Li (2006), Building an Agile Data Warehouse: A Proactive Approach to Managing Changes, in: M. H. Hamza (Ed.), Proc. of the 4th IASTED Intl. Conf. on Communications, Internet, and Information Technology, USA,
ACTA Press.
Websites
[12]. SQL Server 2005 manual. http://msdn.microsoft.com/en - us/library/ms191432 (SQL.90).aspx.15/12/2008
[13]. Rönnbäck L, "Three Concepts of Time in Anchor Models", <http://www.anchormodeling.com/wp-
content/uploads/2010/08/Three_Concepts_of_Time_in_Anchor_Models.pdf >
[14]. R¨onnb¨ack L, Regardt O, Bergholtz M, Johannesson P, Wohed P, "From Anchor Model to Relational Database", <http://www.anchormodeling.com/wp- content/uploads/2010/09/AM-RDB.pdf>
[15]. Rönnbäck L, "Anchor Modeling – A Technique for Information under Evolution", <http://www.anchormodeling.com/wp- content/uploads/2011/05/Anchor-Modeling.pdf>
PHỤ LỤC
A. Mã nguồn đặc tả mô hình AM
<schema format="0.99" date="2019-01-14" time="07:21:17">
<metadata changingRange="datetime" encapsulation="dbo" identity="int" metadataPrefix="Metadata" metadataType="int" metadata Usage="true" changingSuffix="ChangedAt" identitySuffix="ID" positIdentity="int" positGenerator="true" positingRange="datetime" p