Mã chuyên ngành: 60480101 Ràng buộc toàn vẹn đa phiên bản trên cơ sở dữ liệu thời gian và ứng dụng NHIỆM VỤ VÀ NỘI DUNG: • Nghiên cứu thuật toán tìm đuờng đi Hamiton có thứ tự topo.. Việ
Trang 2Công trình được hoàn thành tại Trường Đại học Công nghiệp TP Hồ Chí Minh.Người hướng dẫn khoa học: TS Phạm Văn Chung Người phản biện 1: TS Võ Thị Ngọc Châu Người phản biện 2: TS Nguyễn Thành Sơn Luận văn thạc sĩ được bảo vệ tại Hội đồng chấm bảo vệ Luận văn thạc sĩ Trường Đạihọc Công nghiệp thành phố Hồ Chí Minh ngày 19 tháng 12 năm 2017
Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
1 PGS.TS Huỳnh Trung Hiếu : Chủ tịch hội đồng
2 TS Võ Thị Ngọc Châu : Phản biện 1
3 TS Nguyễn Thành Sơn : Phản biện 2
4 TS Võ Thị Thanh Vân : Uỷ viên
5 TS Phạm Thị Thiết : Thư ký
Trang 3Bộ CÔNG THƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
THÀNH PHÓ HỒ CHÍ MINH
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Lâm Thanh Hùng MSHV: 15001111
Ngày, tháng, năm sinh: 10/12/1959 Nơi sinh: Sài Gòn
Chuyên ngành: Khoa học Máy tính Mã chuyên ngành: 60480101
Ràng buộc toàn vẹn đa phiên bản trên cơ sở dữ liệu thời gian và ứng dụng
NHIỆM VỤ VÀ NỘI DUNG:
• Nghiên cứu thuật toán tìm đuờng đi Hamiton có thứ tự topo
• ứng dụng thuật toán tìm các đuờng đi Hamiton có thứ tự topo
• Nghiên cứu phuơng pháp kiểm tra ràng buộc toàn vẹn dữ liệu trên nhiều phiên bản
• Xây dựng phuơng pháp kiểm tra ràng buộc toàn vẹn dữ liệu trên nhiều phiên bản
• Phân tích thiết kế cơ sở dữ liệu có tính thời gian
• Viết chuơng trình thử nghiệm (sử dụng một phần dữ liệu đào tạo trong truờng cao đẳng)
II NGÀY GIAO NHIỆM VỤ: 29 tháng 12 năm 2016
III NGÀY HOÀN THÀNH NHIỆM VỤ: 29 tháng 12 năm 2017
IV NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Phạm Văn Chung
Tp Hồ Chí Minh, ngày tháng năm 20
TRƯỞNG KHOA Công nghệ Thông tin
Trang 4LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm ơn sâu sắc đến TS Phạm Văn Chung, người đã tận tìnhhướng dẫn và đồng hành cùng tôi trong suốt thời gian thực hiện luận văn vừa qua.Cảm ơn ban Giám hiệu nhà trường, phòng Quản lý sau đại học và khoa Công nghệThông tin trường đại học Công Nghiệp TP Hồ Chí Minh đã hỗ trợ, tạo điều kiện tốt đểtôi và các học viên khác có thể hoàn thành luận văn
Tôi cũng xin gửi lời cảm ơn đến bạn bè, người thân và gia đình đã ủng hộ, động viêngiúp tôi kiên trì thực hiện luận văn
Tuy hoàn thành, nhưng vẫn còn những hạn chế nhất định nên rất mong nhận được sựđóng góp để luận văn được hoàn thiện hơn
Xin chân thành cảm ơn
Trang 5TÓM TẮT LUẬN VĂN THẠC SĨ
Ngày nay, nhiều ứng dụng quản lý sử dụng cơ sở dữ liệu thời gian; yếu tố thời gian làmcho cơ sở dữ liệu đầy đủ ve mặt “lịch sử” của dữ liệu hơn, nhung đồng thời cũng làmcho nó phức tạp hơn [1] Việc sử dụng cơ sở dữ liệu thời gian đòi hỏi phải có phươngpháp mang tính hệ thống để kiểm tra ràng buộc toàn vẹn, trong số đó là những ràngbuộc trên những dãy trạng thái có thứ tự thay vì các trạng thái đơn như trong cơ sở dữliệu truyền thống [4]
Trong luận văn này, chủ yếu nghiên cứu làm thế nào để kiểm tra ràng buộc toàn vẹnthời gian trong cơ sở dữ liệu thời gian: có nghĩa, kiểm tra ràng buộc trên những dãytrạng thái có thứ tự topo và xây dựng ứng dụng quản lý đào tạo nhằm theo dõi việc họctập của sinh viên và cho phép sinh viên đăng ký môn học theo từng học kỳ theo mộtchương trình đã chọn trước
Trang 6Nowadays, many applications use the temporal database, the time factor makes the fulldatabase in terms of the "history" of the data, but also makes it more complicated [1].The use of temporal database requires a systematic approach to checking integrityconstraints, among of them are binding on the state ordered sequences instead of thesingle state as in traditional databases [4]
In this thesis, mainly research how to check the integrity constraints on time fortemporal database: means, check constraints on the state topological ordered sequences,and building training management applications to monitor student learning and allowstudents to course registration each semester according to a preselected program
Trang 7LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi, được thực hiện dưới sự hướngdẫn khoa học khoa học của TS Phạm Văn Chung Các kết quả nghiên cứu nêu trongluận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.Tôi xin chịu hoàn toàn trách nhiệm về nghiên cứu của mình
Học viên
Lâm Thanh Hùng
Trang 8MỤC LỤC
MỤC LỤC v
DANH MỤC HÌNH viii
DANH MỤC BẢNG BIÊU x
DANH MỤC TỪ VIẾT TẮT xi
MỞ ĐẦU 1
1 Lý do đe tài: 1
2 Mục đích đề tài 1
3 Đ ối tượng nghiên cứu 2
4 Phạm vi đe tài 2
5 Nội dung nghiên cứu 2
6 Phương pháp nghiên cứu 2
CHƯƠNG 1 Cơ SỞ LÝ THUYẾT 4
1.1
Một số thuật ngữ trên đồ thị có hướng 4
1.2 Sắp xếp Topo 5
1.3 T huật toán Kahn 5
1.3.1 Thuật toán dựa trên tìm kiếm theo chiều sâu (DFS) 6
1.3.2 Ket quả thực hi ện thuật toán 7
1.3.3 Nhận xét và đánh giá 8
1.4 Đường đi Hamilton 9
1.4.1 Đường đi Hamilton trong trường hợp tổng quát 9
1.4.2 Đường đi Hamilton trên đồ thị có hướng 10
1.4.3 Nhận xét và đánh giá 13
CHƯƠNG 2 NHỮNG PHƯƠNG PHÁP THựC HIỆN 14
2.1 Các thuật ngữ sử dụng trong kiểm tra ràng buộc toàn vẹn 14
2.2 Tìm kiếm dãy trạng thái đầy đủ 17
2.2.1 Thủ tục Searching_Sequence 17
2.2.2 Ket quả thực hiện thủ tục 18
2.2.3 Phân tích thủ tục: 19
2.2.4 Nhận xét và đánh giá 19
2.3 Kiểm tra ràng buộc toàn vẹn trên đồ thị chuyển trạng thái 20
2.3.1 Thao tác chèn 20
2.3.2 Thao tác sửa 21
2.3.3 Thao tác xoá 22
2.4 Các thủ tục kiểm tra ràng buộc toàn vẹn 22
2.4.1 Kiểm tra thao tác cập nhật 23
2.4.2 Kiểm tra thực hiện ràng buộc toàn vẹn 25
2.4.3 Ví dụ minh hoạ về việc kiểm tra thực hiện ràng buộc toàn vẹn 27
CHƯƠNG 3 XÂY DỰNG Cơ SỞ DỮ LIỆU CHO ỨNG DỤNG 31
3.1 M ột số thuật ngữ 31
3.2 Mô hình dữ liệu thời gian hợp lệ: 33
Trang 93.2.1 Khoảng thời gian, các bảng trạng thái và sự kiện 33
3.2.2 Các phép toán ve khoảng 35
3.2.3 Phép toán gộp (Fold): 36
3.3 Thiết kế cơ sở dữ liệu thời gian trên mô hình cơ sở dữ liệu tuyền thống 37
3.3.1 Thiết kế mức ý niệm (Conceptual Design) 38
3.3.2 Thiết kế logic 39
3.3.3 Ví dụ minh hoạ 41
3.4 Xây dựng cơ sở dữ liệu thử nghiệm 44
3.4.1 Luợc đồ khái niệm 46
3.4.2 Luợc đồ quan hệ 46
3.4.3 Cơ sở dữ liệu vật lý 47
CHƯƠNG 4 XÂY DỰNG ỨNG DỤNG THỬ NGHIỆM 48
4.1 Chuơng trình quản lý đào tạo và những lộ trình hợp lệ cho việc lựa chọn các nhóm học phần của sinh viên 48
4.2 Xây dựng ứng dụng thử nghiệm 50
4.2.1 Nhóm chức năng cho nguời quản trị: 50
4.2.2 Nhóm chức năng dành cho sinh viên: 55
KẾT LUẬN VÀ KIẾN NGHỊ 61
1 Ket luận 61
1.1 Nh ững đóng góp của đe tài 61
1.2 Những hạn chế cần khắc phục 62
2 Kiến nghị 63
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 66
LÝ LỊCH TRÍCH NGANG CỦA HỌC VIÊN 89
Trang 10DANH MỤC HÌNH
Hình 1.1 Bên trong một đồ thị có hướng [3] 5
Hình 1.2 Thuật toán kahn [4] 6
Hình 1.3 Thuật toán tìm thứ tự topo dựa trên DFS [4] 6
Hình 1.4 Một DAG điển hình [3] 7
Hình 1.5 Một số ứng dụng topological sort [3] 8
Hình 1.6 Thuật toán searching_hamilton 11
Hình 1.7 Một topology trên đồ thị chuyển trạng thái 12
Hình 2.1 Đồ thị t có đỉnh khởi đầu s0 và đỉnh kết thúc s5 15
Hình 2.2 Ràng buộc toàn vẹn theo thứ tự thời gian 17
Hình 2.3 Thủ tục searching_sequence [5] 18
Hình 2.4 Một ví dụ tìm kiếm dãy trạng thái đầy đủ trên đồ thị chuyển trạng thái 19
Hình 2.5 Đồ thị chuyển trạng thái có hai dãy trạng thái đầy đủ 21
Hình 2.6 Mô tả tổng quát việc kiểm tra đối tượng thực thi ràng buộc toàn vẹn 23
Hình 2.7 Kiểm tra thao tác cập nhật 25
Hình 2.8 Kiểm tra thực hiện ràng buộc toàn vẹn 26
Hình 3.1 Ví dụ về valid-time và transaction-time 32
Hình 3.2 Một ví dụ về mô hình valid - time 35
Hình 3.3 Gộp trên thuộc tính duration [7] 37
Hình 3.4 Thủ tục Fold [7] 37
Hình 3.5 Lược đồ khái niệm quản lý công việc của giảng viên 41
Hình 3.6 Lược đồ khái niệm cơ sở dữ liệu quản lý bệnh án tại bệnh viện 43
Hình 3.7 Lược đồ khái niệm của cơ sở dữ liệu thử nghiệm 46
Hình 3.8 Cơ sở dữ liệu thử nghiệm trong hệ quản trị sql server 47
Hình 4.1 Chương trình đào tạo theo nhóm học phần cho sinh viên 48
Hình 4.2 Các chức năng của admin 51
Hình 4.3 Chức năng tạo chương trình học 51
Hình 4.4 Chức năng tạo môn học mới 53
Hình 4.5 Chức năng nhập điểm môn học 54
Hình 4.6 nhóm chức năng dành cho sinh viên 55
Hình 4.7 lịch đăng ký tuỳ theo khoá học 55
Trang 11Hình 4.8 chọn lộ trình học 56
Hình 4.9 chọn lộ trình học 57
Hình 4.10 cảnh báo thời hạn thay đổi lộ trình học 58
Hình 4.11 đăng ký môn học mới 58
Hình 4.12 đăng ký môn học mới 59
Hình 4.13 chức năng đăng ký môn học lại 60
Trang 12DANH MỤC BẢNG BIỂU
Bảng 3.1: Bảng DIEUDONG 34Bảng 3.2 Định nghĩa các phép toán so sánh khoảng 36Bảng 4.1 Các nhóm học phần trong chương trình 49
Trang 13DANH MỤC TỪ VIẾT TẮT
CSDL Database Cơ sở dữ liệu
DAG Directed Acyclic Graph Đồ thị có hướng không có
chu trình
TG Transition Graph Đồ thị chuyển trạng thái
Trang 14MỞ ĐẦU
Ngày nay, trong nhiều ứng dụng thực tế, bên cạnh những dữ liệu có tính ổn định, còn
có rất nhiều loại dữ liệu đuợc truy xuất thay đổi theo thời gian, yếu tố thời gian làmcho cơ sở dữ liệu (CSDL) đầy đủ ve mặt “lịch sử” của dữ liệu hơn, nhung đồng thờicũng làm cho nó phức tạp hơn [1] Trong một số trường hợp, những dữ liệu loại nàythay đổi theo những quy luật nào đó Vì vậy mô hình CSDL có tính thời gian(temporal database) được đề xuất để nghiên cứu vấn đề trên
Với nhu cầu thực tế như vậy, đòi hỏi các nhà khoa học làm việc trong lĩnh vực khaithác cơ sở dữ liệu, phải đưa ra phương pháp có tính hệ thống để kiểm tra ràng buộctoàn vẹn trên dữ liệu có yếu tố thời gian, trong số đó là những ràng buộc trên nhữngdãy trạng thái có thứ tự thay vì các trạng thái đơn như trong cơ sở dữ liệu truyềnthống
Đã có một số hướng tiếp cận kiểm tra ràng buộc toàn vẹn, nổi bậc như phương phápdùng đồ thị chuyển trạng thái (Trasition Graph) của Gertz và Lipeck [2]
Theo các hướng tiếp cận này, dữ liệu của những đối tượng thay đổi theo thời giantrong một ứng dụng phải tuân thủ theo những quy luật áp đặt trên chúng, kiểm traràng buộc toàn vẹn đa phiên bản (nghĩa là có nhiều ràng buộc hiện đang tồn tại và cóhiệu lực trên nhiều phiên bản khác nhau) là nhắm đến sự nhất quán và hợp lệ của dữliệu, khi dữ liệu của đối tượng được cập nhật vào cơ sở dữ liệu
Những ứng dụng trong thực tế trong nhiều lĩnh vực như kinh tế, giáo dục, y tế, v.v cho thấy không phải chỉ có một phiên bản mà thực chất có nhiều phiên bản cùng tồntại trong cơ sở dữ liệu, áp đặt trên dữ liệu
Đe xuất thuật giải và phương pháp kiểm tra dữ liệu cho bài toán trên
Là những dữ liệu của đối tượng thay đổi theo thời gian trong cơ sở dữ liệu có tínhthời gian, được xây dựng trên mô hình cơ sở dữ liệu truyền thống
Nghiên cứu để đề xuất thuật giải tìm ra đường đi Hamilton có thứ tự topo trên một đồ
Trang 15- Nghiên cứu thuật toán tìm đường đi Hamiton có thứ tự topo.
- ứng dụng thuật toán tìm các đường đi Hamiton có thứ tự topo
- Nghiên cứu phương pháp kiểm tra ràng buộc toàn vẹn dữ liệu trên nhiều phiênbản
- Xây dựng phương pháp kiểm tra ràng buộc toàn vẹn dữ liệu trên nhiều phiên bản
- Phân tích thiết kế cơ sở dữ liệu có tính thời gian
- Viết chương trình thử nghiệm và thu thập dữ liệu đào tạo trong trường cao đẳng
Nghiên cứu tài liệu, ứng dụng mô hình lý thuyết, thu thập dữ liệu và chứng minh kếtquả bằng thực nghiệm
Ket cấu luận văn: luận văn chia thành 5 chương, nội dung như sau:
- Chương 1: Cơ sở lý thuyết
- Chương 2: Những phương pháp thực hiện
- Chương 3: Xây dựng cơ sở dữ liệu cho ứng dụng
- Chương 4: Xây dựng ứng dụng thử nghiệm
- Chương 5: Tổng kết đề tài và hướng phát triển
Trang 16CHƯƠNG 1 Cơ SỞ LÝ THUYẾT
Trong chương này, luận văn trình bày một số lý thuyết liên quan đến hai bài toán Sắp
xếp Topo (Topological sorting problem) và Đường đi Hamilton (Hamilton path
problem) với trọng tâm là nội dung mở rộng bài toán sắp xếp Topo trên một đồ thị có
hướng để làm cơ sở cho việc xây dựng những phương pháp kiểm tra dữ liệu ở chương
2
Theo định nghĩa của Robert Sedgewick và Kevin Wayne [3] ve một so thuật ngữ trên
đồ thị có hướng như sau:
- Một đồ thị có hướng (Directed Graph Or Digraph) là một tập các đỉnh (Vertices) và một tập các cạnh có hướng (Directed Edges) hoặc cung mà mỗi cung
nối một cặp đỉnh Trong luận văn này, đặt tên từ 0 đến n-1 cho các đỉnh trong một đồ thị có n đỉnh.
- Một khuyên (a Self-loop) là một cung nối một đỉnh đến chính nó.
- Một đường đi có hướng (a directed path) trong một đồ thị có hướng là một dãyđỉnh mà ở đó mỗi đỉnh trong dãy có một cung trỏ từ nó đến đỉnh kế tiếp trong dãy
- Một đường đi đơn (simple path) là đường đi không có đỉnh lặp lại.
- Một chu trình có hưởng (a directed cycle) là một đường đi có hướng (có ít nhất
một cung) mà đỉnh đầu cũng là đỉnh cuối
Ví dụ: một đồ thị có hướng có chu trình như hình 1.1
directed edge
Trang 171.2 Sắp xep Topo
Một sắp xếp topo (topologiecal sort) hay thứ tự topo (topological ordering) của một đồthị có hướng là một danh sách các đỉnh của nó được sắp xếp theo một thứ tự nào đó sao
cho với mọi cung từ u đến v trong đồ thị, thì trong danh sách u luôn nằm trước v Ví
dụ, nếu các đỉnh của đồ thị đại diện cho các công việc được thực hiện và các cung của
nó đại diện cho các ràng buộc mà một công việc phải được thực hiện trước một côngviệc khác thì một thứ tự topo là một danh sách chỉ ra thứ tự thực hiện các công việc đó.Một thứ tự topo tồn tại nếu và chỉ nếu đồ thị không có chu trình, nghĩa là, nếu nó là một
đồ thị có hướng không có chu trình (Directed Acyclic Graph - DAG) Thuật toán để tìm
thứ tự topo gọi là thuật toán sắp xếp topo
Được đe xuất bởi Kahn năm 1962, hoạt động bằng cách lần lượt chọn các đỉnh theo thứ
tự đúng theo như theo thứ tự topo Đầu tiên, xác định một danh sách các "nút bắt đầu"
không có cung vào và chèn chúng vào một tập S Trong một đồ thị có hướng không có
chu trình luôn có ít nhất một nút như vậy Sau đó, việc sắp xếp các nút được thực hiệnnhư sau:
L danh sách rỗng (cuối cùng sẽ chứa danh sách đã sắp xếp) Stập hợp các nút không
có cung vào
while S khác rỗng do
Loại bỏ một nút n từ S
Chèn n vào L
Trang 18for each nút m sao cho có cung e từ n đến m do
Loại bỏ cung e từ đồ thị
if m không có cung vào then Chèn m vào S
if đồ thị vẫn còn cung then
Thông báo lỗi (đồ thị có ít nhất một chu trình) else
Thông báo thứ tự topo là L
Hình 1.2 Thuật toán Kahn [4]
Vì chúng ta cần kiểm tra tất cả các đỉnh, các cung cho các nút bắt đầu, sau đó việc sắp
xếp sẽ kiểm tra từng đỉnh, từng cung một lần nữa, do đó độ phức tạp của thuật toán là O
(|V + |E|).
1.3.1 Thuật toán dựa trên tìm kiếm theo chiều sâu (DFS)
Thuật toán lặp qua các nút của đồ thị, trong một trật tự tuỳ ý, và thực hiện tìm kiếm theochiều sâu cho đến khi tất cả các nút đã đuợc thăm
L danh sách rỗng (cuối cùng sẽ chứa thứ tự sắp xếp)
S tập hợp các nút không có cung vào
for each nút trong S do
Thăm (n)
Function Thăm (nút n)
if đã thăm n then
Dừng (thông báo lỗi: không phải DAG)
if chua thăm (n) then
Đánh dấu n đã thăm
for each nút m sao cho có cung từ n đến m do Thăm (m)
Chèn n vào L
Thông báo thứ tự topo là L
Hình 1.3 Thuật toán tìm thứ tự topo dựa trên DFS [4] Mỗi nút n được thêm vào danh sách L chỉ sau khi tất cả các nút m có cung từ n tới m đã được thăm Cụ thể là, khi thuật
toán thêm nút n, nó bảo đảm rằng tất cả các nút m đã có trong danh sách L: chúng đã
được thêm vào L do lời gọi đệ quy đến thăm ( m ), hoặc do một lời gọi đến thăm ( m) từ
trước Do đó, n được thêm vào đầu của L thay vì chèn vào cuối danh sách như trong
thuật toán được biểu diễn trong hình 1.2 (Lưu ý rằng mã giả trên không thể phát hiện trường hợp lỗi khi đồ thị có chu trình)
Vì mỗi cung và mỗi nút được thăm một lần, thuật toán chạy trong thời gian tuyến tính,trong số nút cộng với số cung, do đó độ phức tạp của thuật toán:
O (V + |E|).
1.3.2 Kết quả thực hiện thuật toán
Trang 20Application Vertex Edge
Typical topologlcal-sort a pplication
Hình 1.5 Một số ứng dụng topological sort [3]
Tuy nhiên, ta nhận thấy rằng, hai thuật toán Kahn và DFS chỉ thật sự phát huy hiệu quảnếu đồ thị ta đang xét là các DAG Nên muốn mở rộng bài toán trong lĩnh vực đồ thị cóhướng nói chung, cần có thêm những lý thuyết và những thuật toán khác sẽ được đề cập
cụ thể trong 1.3
1.4 Đường đi Hamilton
Một đường đi Hamilton là một đường đi trong đồ thị vô hướng hay có hướng đi qua tất
cả các đỉnh của đồ thị, mỗi đỉnh đúng một lần Một chu trình Hamilton là một đường điHamilton sau khi đi qua tất cả các đỉnh của đồ thị thì trở ve đỉnh xuất phát
Một đồ thị có chu trình Hamilton được gọi là đồ thị Hamilton, đồ thị có đường điHamilton được gọi là đồ thị nửa Hamilton
Cho đến nay việc tìm một tiêu chuẩn nhận biết đồ thị Hamilton vẫn còn là mở, mặc dùđây là một vấn đe trung tâm của lý thuyết đồ thị Hơn thế nữa, cho đến nay cũng chưa cóthuật toán hiệu quả để kiểm tra một đồ thị có là Hamilton hay không Các kết quả thuđược phần lớn là điều kiện đủ để một đồ thị là đồ thị Hamilton Phần lớn chúng điều có
dạng "nếu G có số cạnh đủ lớn thì G là Hamilton" (theo định lý Dirak 1952)
Việc xác định các đường đi cũng như các chu trình có tồn tại hay không trong một đồ thị
được gọi là bài toán đường đi Hamilton (Hamilton Path Problem).
1.4.1 Đường đi Hamilton trong trường hợp tồng quát
Trong trường hợp tổng quát, xét một đồ thị dày đặc G có n đỉnh và giả sử ma trận kề biểu