6. Bố cục luận văn
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 ositingSuffix="PositedAt" positorRange="tinyint" positorSuffix="Positor" reliabilityRange="decimal(5,2)" reliabilitySuffix="Reliability
" deleteReliability="0" assertionSuffix="Assertion" partitioning="false" entityIntegrity="true" restatability="true" idempotency="false
" assertiveness="true" naming="improved" positSuffix="Posit" annexSuffix="Annex" chronon="datetime2(7)" now="sysdatetime()" dum mySuffix="Dummy" versionSuffix="Version" statementTypeSuffix="StatementType" checksumSuffix="Checksum" businessViews="fals e" decisiveness="true" equivalence="false" equivalentSuffix="EQ" equivalentRange="tinyint" databaseTarget="SQLServer" temporaliz ation="uni"/>
<anchor mnemonic="hs" descriptor="hocsinh" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="mhs" descriptor="ma_hs" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="515.86" y="86.31" fixed="true"/> </attribute>
<attribute mnemonic="ths" descriptor="ten_hs" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="511.38" y="138.31" fixed="true"/> </attribute>
<attribute mnemonic="mlop" descriptor="ma_lop" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="533.79" y="28.03" fixed="true"/> </attribute>
<attribute mnemonic="sdt" descriptor="sdt_hs" timeRange="datetime" dataRange="nvarchar(30)"> <metadata capsule="dbo" restatable="true" idempotent="false"/>
<layout x="556.21" y="246.79" fixed="true"/> </attribute>
<attribute mnemonic="tg" descriptor="tg_hs" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="531.10" y="227.97" fixed="true"/> </attribute>
<attribute mnemonic="dt" descriptor="dt_hs" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="510.48" y="210.03" fixed="true"/> </attribute>
<attribute mnemonic="ns" descriptor="ns_hs" dataRange="date"> <metadata capsule="dbo"/>
<layout x="498.83" y="185.83" fixed="true"/> </attribute>
<attribute mnemonic="gt" descriptor="gt_hs" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="498.83" y="162.52" fixed="true"/> </attribute>
<attribute mnemonic="hdem" descriptor="hodem_hs" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="541.86" y="115.00" fixed="true"/> </attribute>
<attribute mnemonic="mph" descriptor="ma_ph" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="522.14" y="53.13" fixed="true"/> </attribute>
<attribute mnemonic="dc" descriptor="dc_hs" timeRange="datetime" dataRange="nvarchar(30)"> <metadata capsule="dbo" restatable="true" idempotent="false"/>
<layout x="569.66" y="271.90" fixed="true"/> </attribute>
<layout x="592.69" y="166.04" fixed="true"/> </anchor>
<anchor mnemonic="blop" descriptor="lop" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="tlop" descriptor="ten_lop" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="530.21" y="-2.45" fixed="true"/> </attribute>
<attribute mnemonic="mlop" descriptor="ma_lop" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="596.55" y="-25.77" fixed="true"/> </attribute>
<layout x="641.94" y="26.95" fixed="true"/> </anchor>
<anchor mnemonic="mh" descriptor="monhoc" identity="int"> <metadata capsule="dbo" generator="true"/>
<metadata capsule="dbo"/>
<layout x="678.50" y="440.77" fixed="true"/> </attribute>
<attribute mnemonic="tm" descriptor="ten_mon" dataRange="nvarchar30)"> <metadata capsule="dbo"/>
<layout x="645.50" y="406.95" fixed="true"/> </attribute>
<layout x="684.06" y="354.26" fixed="true"/> </anchor>
<anchor mnemonic="gv" descriptor="giaovien" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="dcgv" descriptor="dc_gv" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="587.59" y="382.18" fixed="true"/> </attribute>
<attribute mnemonic="sdtgv" descriptor="sdt_gv" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="561.59" y="305.07" fixed="true"/> </attribute>
<attribute mnemonic="tengv" descriptor="ten_gv" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="571.45" y="353.49" fixed="true"/> </attribute>
<attribute mnemonic="magv" descriptor="ma_gv" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="561.59" y="329.28" fixed="true"/> </attribute>
<layout x="630.71" y="255.03" fixed="true"/> </anchor>
<anchor mnemonic="ph" descriptor="phuhuynh" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="dcph" descriptor="dc_ph" timeRange="datetime" dataRange="nvarchar(30)"> <metadata capsule="dbo" restatable="true" idempotent="false"/>
<layout x="804.86" y="-34.46" fixed="true"/> </attribute>
<attribute mnemonic="mph" descriptor="ma_ph" dataRange="nvarchar(5)"> <metadata capsule="dbo"/>
<layout x="750.87" y="-36.12" fixed="true"/> </attribute>
<attribute mnemonic="dtph" descriptor="sdt_ph" timeRange="datetime" dataRange="nvarchar(30)"> <metadata capsule="dbo" restatable="true" idempotent="false"/>
<layout x="779.11" y="-70.18" fixed="true"/> </attribute>
<attribute mnemonic="tph" descriptor="ten_ph" dataRange="nvarchar(30)"> <metadata capsule="dbo"/>
<layout x="690.23" y="-67.69" fixed="true"/> </attribute>
<layout x="769.97" y="32.82" fixed="true"/> </anchor>
<anchor mnemonic="hk" descriptor="hanhkiem" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="mhk" descriptor="ma_hk" dataRange="int"> <metadata capsule="dbo"/>
<layout x="813.00" y="147.90" fixed="true"/> </attribute>
<attribute mnemonic="lhk" descriptor="loai_hk" timeRange="datetime" dataRange="nvarchar(30)"> <metadata capsule="dbo" restatable="true" idempotent="false"/>
<layout x="830.28" y="123.71" fixed="true"/> </attribute>
<layout x="866.26" y="168.19" fixed="true"/> </anchor>
<anchor mnemonic="hky" descriptor="hocky" identity="int"> <metadata capsule="dbo" generator="true"/>
<attribute mnemonic="lhky" descriptor="ten_hky" dataRange="nvarchar(30)">