BỘ GIÁO DỤC VÀ ĐÀO TẠO DAI HOC HUE
TRUONG DAI HOC KHOA HOC
NGUYEN THI LAN ANH
THIET KE CO SO DU LIEU THOI GIAN THEO MO HINH ANCHOR
LUAN VAN THAC SI KHOA HOC
CONG NGHE THONG TIN
Thừa Thiên Huế, 2019
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO PAI HOC HUE
TRUONG DAI HOC KHOA HOC
NGUYEN THI LAN ANH
THIET KE CO SO DU LIEU THOI GIAN
THEO MO HINH ANCHOR
CHUYEN NGANH: KHOA HOC MAY TINH MA SO: 8.48.01.01
LUAN VAN THAC Si KHOA HOC DINH HUONG NGHIEN CUU
NGUOI HUONG DAN KHOA HOC PGS.TS HOANG QUANG
Thừa Thiên Huế, 2019
Trang 4e _ Cần ít không gian chỉ mục hơn: Cần ít không gian chỉ mục trong cơ sở
dữ liệu Anchor, vì hầu hết các chỉ mục được phân cụm và chỉ sắp xếp lại dữ liệu thực tế Độ hẹp của các bảng trong cơ sở dữ liệu Anchor, có nghĩa là chỉ mục bé
sung chỉ trong các trường hợp hiếm hoi cung cấp hiệu suất tăng Hầu hết thời gian bảng có thể được quét rất nhanh
e - Nén bảng dữ liệu có liên quan: Các bảng thuộc tính trong cơ sở dữ liệu Anchor có thể được nén Các công cụ cơ sở đữ liệu thường cung cấp nén ở cấp độ bảng, nhưng không phải ở cấp cột Trong khi nén cơ sở đữ liệu Anchor có thể
được xác định chính xác đến nơi mà hiệu ứng sẽ là lớn nhất, tốt hơn so với một cơ sở dữ liệu ít chuẩn hóa
e Giam rủi ro bế tắc: Trong các cơ sở dữ liệu có các thao tác chọn, chèn,
cập nhật và xóa, có nguy cơ rơi vào bế tắc nếu những điều này không được thực
hiện cần thận Do thực tế là trong các cơ sở dữ liệu Anchor chỉ có các phan chèn và chọn được thực hiện, điều này tạo ra ít khóa hơn, nguy co di vao bế tắc sẽ giảm
e _ Truy cập đồng thời tốt hơn: Trong một bảng có nhiều cột, khóa hàng sẽ giữ các truy vấn khác chờ đợi nếu tất cả cùng một hàng được truy cập, trừ khi có thê khóa cột Điều này là bất kể các cột được truy cập bởi các truy vấn Trong cơ sở
dữ liệu Anchor, các cột tương ứng được trải đều trên một số bảng và các truy vấn sẽ
không phải đợi các hàng mở khóa miễn là các bảng thuộc tính khác nhau được truy cập bởi chúng
e _ Dộc lập truy vấn: Kiến thức về các truy vấn dự định là không cần thiết
trong mô hình Anchor, ví dụ như trong các lược đỗ hình sao Do đó các mô hình
Anchor phù hợp hơn cho phân tích chung, tức là khi các truy vấn dự định khó dự
đốn
Lợi ích của mơ hình Anchor không có liên quan đến bất kỳ cơ sở dữ liệu nào
nhưng đặc biệt có giá trị đối với kho đữ liệu Đặc biệt, hỗ trợ cho sự phát triển lặp
Trang 5LỜI CẢM ƠN
Lời đầu tiên, tôi xin gởi lời cảm ơn chân thành sâu sắc đến Quý thầy cô giáo
Khoa Công nghệ thông tin - Trường Đại học Khoa học Huế đã tận tình hướng dẫn, truyền đạt kiến thức, tạo điều kiện thuận lợi trong quá trình học tập và thực hiện luận
văn tốt nghiệp
Tôi xin chân thành gửi lời biết ơn đến PGS.TS Hoàng Quang, người thầy đã hướng dẫn tận tình và có những góp ý sâu sắc, hướng dẫn rất quý báu cho tôi trong suốt quá trình nghiên cứu, kịp thời cho tôi nhiều lời động viên cũng như những nhận xét đúng đắn để tơi có thể hồn thành tốt được đề tài này
Trong quá trình thực hiện đề tài, xin chân thành gửi lời cảm ơn đến sự giúp đỡ, những lời động viên từ phía gia đình, đồng nghiệp, bạn bè là động lực to lớn giúp tơi hồn thành tốt dé tài nghiên cứu của mình Tôi cũng gửi lời cảm ơn đến trường THPT
Phan Đăng Lưu, nơi tôi đang công tác đã tạo điều kiện cho tôi di học và thực hiện để
tài nghiên cứu này
Bản thân tôi đã cố gắng hết sức trong quá trình thực hiện dé tài này nhưng chắc chắn sẽ không tránh khỏi những thiếu sót Kính mong quý thầy cô và các bạn tận tình góp ý, chỉ bảo
Xin chan thành cám ơn!
Thừa Thiên Huế, ngày Š tháng 10 năm 2019 Học viên
Trang 6MỤC LỤC
Trang
LỜI CAM ĐOAN - 25 222221221221221211221211211121121112121212121 re i LỜI CẢM ƠN 0 255: 22222211222122221221 2112111212121 reo ii MỤC LỤC -222-22222212212212211221121221221222212221222122221 2222 ree iii DANH MỤC CÁC BẢNG 22 22 2222212211121112111211221221222212222 ra Vv DANH MỤC CÁC HÌNH - 225 222211221211121121121211211211211212122 re vi DANH MỤC CÁC CHỮ VIẾT TẮTT -2©222222221122112211221122112212112 22 xe viii AY CO 2) Oe 1 Chuong 1 TONG QUAN VE MO HINH ANCHOR 0.00 0.ccccssscessscessseeseseecereeseseeeene 5 1.1 CƠ SỞ DỮ LIỆU THỜI GIAN .-©52-52222222212221122112211211211121122222 e6 6 1.1.1 Một số khái niệm về cơ sở dữ liệu có yếu tổ thời VAN eee eeecereeeeeeteeeneeees 6
1.1.2 Phân loại thời gian trong cơ sở dữ lIỆU c3 2S St stress 7
1.2 MÔ HÌNH ANCHOR -2- 22 2222211211121112111211121112111211212122222 re 9 1.2.1 Giới thiệu về mô hình Anchor -2:©22+22222221222212225112231122112211221 221 cee 9
1.2.2 Qui ước đặt tên trong mô hình AnchOr - ác : t1 t2 nhe 10
1.2.3 Một số khái niệm trong mô hình AnchOr -:- ccccst s2 srtisrxerrerrrrerres 12
1.2.4 Những lợi ích của mô hình AnchOr ccc St St srtrrtrrryerrerrtrerrsrek 16
1.3 KẾT CHƯƠNG l -2-2222221222121121121122112112222222222 ae 21
Chương 2 TẠO LƯỢC ĐÒ TRONG ANCHOR MODELING 2- 22
2.1 TẠO MỚI MỘT MƠ HÌNH ANCHOR 2 52 222221222112111221211221212 xe 23 2.1.1 Cài đặt neo cho mô hình - - L1 211 122211112211 1155111155111 1 1111111211111 11111 1221k xe 23 2.1.2 Cài đặt thuộc tính của neo trong mô hình Anchor - ¿+ s:ssxsscsvxsvxsez 26
2.1.3 Cài đặt nút thắt trong mô hình Anehor 22+2222222221222122212221222122ee 28
Trang 72.4 CÁC CHỨC NĂNG KHÁC - s22 21211211 12110121222 rrrrrya 38
2.5 KÉT CHƯƠNG 2 - 22 2222211211122112111211211121112112112212122122222 re 39 Chương 3 CHUY ÊN ĐỎI MƠ HÌNH ER THỜI GIAN SANG MƠ HÌNH
Fùie:) 1e ,)H 40
3.1 GIỚI THIỆU CÁC MƠ HÌNH ER THỜI GIAN -2-©22222222122212221222 22 40
3.1.1 Các mô hình cơ sở dữ liệu thời g1an - c2: SH 40
3.1.2 Mô hình cơ sở dữ liệu thời gian ở mức khái niệm - 2:5 sccscxsss+2 40
3.1.3 Mô hình cơ sở dữ liệu thời gian ở mức ÏOgIC -.- ccccscsssrserrrrsrrree 41 3.1.4 Mô hình cơ sở dữ liệu thời gian ở mức vật lý -.ccccccsseieireree 41
3.2 MỘT SÓ MƠ HÌNH CƠ SỞ DỮ LIỆU THỜI GIAN Ở MỨC KHÁI NIỆM 42
3.2.1 Mô hình RAKE 2222212212211221122112211211121111111111121222222222 re 43 3.2.2 Mô hình MOTAR 22 2222221221122112111211121112111211111111211212222 re 44 3.2.3 Mô hình TimeEiR 22: 2222222211221121112111111111111211111121221 re 46
3.3 CHUYEN DOI TU MO HINH ER THOI GIAN SANG MÔ HÌNH ANCHOR 49
3.3.1 Chuyén déi các thành phần không có yếu tố thời gian của mô hình ER thời gian sang mô hình AnchOT - t2 21 E1 E11 11H TH HH te 49
3.3.2 Chuyển đổi các thành phần có yếu tố thời gian của mô hình ER thời gian sang
mồ hình Ain Cho teers crceesearee cement c senna nen ceca te rn est ee et rte 51 3.4 KÉT QUÁ THỰC NGHIỆM 52 5s 2 12211 1122122 101221 erreg 53
3.4.1 MG ta bai COD ooo ce cceccccseessessossessosieesosinesssintssinsssisisssvinesesisesssieessveesevenseesiess 53
3.4.2 Mô hình thực thể mối quan hệ ER 2-©22222222E222512251223122112211211.221 22C 54
3.4.3 Mô hình TimeEiR 22-2222 222112222111221111211112211122111221112211 21 2e 57 371:4 I6 hình: JAn HOT sssssssssssssresiisiteeiteHOEIISIREIUIUEERIGHRGENEHIOERHSIHESEIGEEIEREHENGIEEMNEHR 58
8¿4.5 TMGhinh: quanGhỆ seesseeseeeccsesoerecsesrrtinitsseoirdnioditgdtiigdiTc856 E110 81220010 1106163 0100/000185570010Ạ 60
3.5 KET CHUONG 3 - 22-2222 222122211222112211211122111221112211212122 22a 61 KÉT LUẬN VÀ HƯỚNG PHÁT TRIỂN - 5-55 ©5sccxecrxeerrertrrrrerrreee 63 1 KẾT LUẬN 2-:22222222222122211122111221112211121112111211112211211 re 63 2 HƯỚNG PHÁT TRIỂN 222 222 22212222112211222111211121112211211 E1 re 64
DANH MỤC CƠNG TRÌNH CỦA TÁC GIẢ 67
Trang 8DANH MỤC CÁC BẢNG
Trang Bảng 1.1 Qui ước đặt tên các thành phần trong mô hình Anchor [13] 11 Bảng 2.1 Các tính chất của neo -2- 222 2222221211222121121221212222 ke 24
Bảng.2.2 Cac lénh.thvtehién trén.n eo wscscecccserei mien nvenceneen nner amen meen oer: 24
Bảng 2.3 Bảng các tính chất của thuộc tính ©-2-222222222122212221222222222 xe 26 Bảng 2.4 Bảng các lệnh của thuộc tính S23 Share rre 27
Bang 2.5 Bảng các tính chất của nút thắt 2-22 2212212221222122112211221.2 2 xe 29
Trang 9DANH MỤC CÁC HÌNH
Trang Hình 1.1 Biểu diễn các thành phần của mô hình Anchor trong sơ đồ lớp UML[ 13] 10 Hình 1.2 Các ví dụ về mỗi thành phần trong mô hình Anehor 2252522 13
Hình 1.3 Ví dụ về mô hình Anchor -55:2:cc222222t t2 tre 15
Hình 1.4 Một ví dụ về mô hình ER thời 0 ai 15
Hình 2.1 Trang web thực nghiệm Anchor Modeler 5c: cccscxscxsvcsrrrxsrxees 22 Hình 2.2 Bảng thiết lập các tính chất và lệnh của neo 2-22222222212222221222e2 23
Hình 2.3 Kích chọn để mở hộp thoại Edit Anchor ác che 25
Hình 2.4 Thiết lập tính chất và lệnh cho neo giáo viên -.-2¿ 222 22222222222222222e2 25
Hình 2.5 Hộp thoại thiết lập các tính chất và các lệnh của thuộc tính của neo 26 Hình 2.6 Tạo mới một thuộc tính cho neo - 1 22211 22111125111 551 1155511112111 xxx 27 Hình 2.7 Kích chọn để mở hộp thoại Edit Attribufe -.sccccccsiisierrerrrreree 27 Hình 2.8 Hộp thoại Edit AttriDuf€ 12: 2112111211 trà tr 28 Hình 2.9 Hộp thoại thiết lập các tính chất và các lệnh của nút thắt c s.ssc: 29
Xinh: 2110) TaonfiSIRmÏlanessunnossotttootioDrngttgnga90004G85)0:7000500,THUĐG0/0005800080900001899900.Gg 30
Hình 2.11 Kích chọn để mở hộp thoại Edit knot -2-©22-2222222222122122212221222 22 30 Hình 2.12 Hộp thoại thiết lập các tính chất và các lệnh của mối quan hệ 31 Hình 2.13 Hộp thoại thiết lập vai trò của mối h0 0 32
Hình 2.14 Mối quan hệ của hai neo 522222222 221222122122112112112211222 2e 32 Hình 2.15 Vai trò của mối quan hệ và neo GV_GIAOVIEN .22ccScsszes 33
Hình 2.16 Hộp thoại để lưu lược đồ 2-©2s 221122122122122121121122122.21 2 te 34
Trang 10Hình 2.19 Xuất dữ liệu dưới 6b sp 0115 37 Hình 2.20 Bảng chọn DefaulÏfs - c2 212 1211211212112 15 1 ty Hà Ha tt 38 Hình 2.21 Các chức năng khác c1 c3 t1 12 12111 1 E11 tà Hà Hà He 38 Hình 3.1 Ví dụ về mô hình RAKE 2 2222222222212 22312223122112211221 21122 cee 44 Hình 3.2 Ví dụ về mô hình MOTAR ©22¿22222222122311221122211221221 22122 te 45 Hình 3.3 Ví dụ về mô hình TimeER 5- 22s 212151251515111151111511152111x51x 2e xe 48
Hình 3.4 Dữ liệu minh họa cho thuộc tính GV_HTE GIAOVIEN HOTEN 50 Hình 3.5 Dữ liệu minh họa cho thuộc tinh GV_GIO_GIAOVIEN GIOITINH và nút thắt GIO_ GIOITINH ©22:222222122211222112211221112112111211 11.21 eo 50
Hình 3.6 Dữ liệu minh họa cho thuộc tính có yếu tổ thời gian
GV LUO_ GIAOVIEN LƯƠNG 2 2c 22 HH hat 52
Hình 3.7 Dữ liệu minh họa cho mối quan hệ có yếu tố thời gian GV_DAY_MH LA 53 Hình 3.8 Mô hình thực thể mối quan hệ ER -©22¿222222122212221122122122122.x2e 55
Hình 3.9 Mô hình TimeER 12: 3121211212121111112111111111111111 0111 0111 Hay 58 Hình 3.10 Mô hình Anchor c1 c1 SH HH Hà Hà Hà HH Ho tre 60
Trang 11BT CNTT
DANH MUC CAC CHU VIET TAT
: BiTemporal (Thời gian hợp lệ và thời gian giao tác) : Công nghệ thông tin
DBM& : Database Management System (Hệ thống quản lí cơ sở dữ liệu) ETL ID NF LS LT OLTP OLAP VT : Extract Transform Load (Tién trình thu thập và tích hợp dữ liệu) : IDentiication (Định danh) : Normal Form (Dạng chuẩn hóa) : Life Span (Thời gian sống)
: Thời gian sống và thời gian giao tác
: On-Line Transactional Processing (Xt li giao địch trực tuyến) : On-Line Analytical Processing (Xtr li phân tích trực tuyến) : Valid Time (Thời gian hợp lệ)
Trang 12MỞ ĐÀU
Các cơ sở dữ liệu truyền thống vẫn tiếp tục tồn tại và phát triển Tuy nhiên nó không có khả năng thích ứng với các loại đữ liệu động liên tục thay đổi theo thời
gian, vì vậy việc xây dựng các cơ sở dữ liệu theo thời gian thực là hết sức cần thiết
đối với các tô chức có các yêu cầu nghiệp vụ quản lý thông tin dữ liệu liên tục thay đổi [7] Các hệ cơ sở dữ liệu ngày nay xử lý dữ liệu nhanh hơn so với quá khứ, tuy nhiên khả năng xử lý kết quả một cách kịp thời và đưa ra các dự đoán đúng sẽ luôn luôn quan trọng hơn việc xử lý nhanh Việc xử lý nhanh mà hỗ trợ ra quyết định không đúng thì không mang lại nhiều hiệu quả đối với các hệ cơ sở dữ liệu thời gian thực Các hệ thống ngày càng được mở rộng, các loại thiết bị thông minh cũng đang ngày càng được phát triển và dữ liệu cho các hệ thống này ngày càng lớn và đa dạng Việc ứng dụng cơ sở dữ liệu thời gian thực là một xu hướng có tính tất yếu khi các yêu cầu nghiệp vụ đòi hỏi sự hỗ trợ tức thì từ việc xử lý thông tin, cũng như hỗ trợ ra quyết định
Hiện nay các mô hình thực thể - mối quan hệ có yếu tố thời gian (gọi tắt là mô
hình ER thời gian) [1] đã trở thành mô hình phổ biến cho việc thiết kế các hệ cơ sở dữ liệu thời gian thực ở mức khái niệm Tuy nhiên, mô hình này tổn tại một nhược điểm đáng kể, đó là sẽ khó lòng xử lý (thậm chí phải hủy bỏ mô hình) khi hệ thống cần có sự thay đổi về mặt cầu trúc dữ liệu, chẳng hạn như việc bổ sung hoặc loại bỏ một thuộc tính nào đó của một tập thực thể [2] Vì vậy, cần phải thay thế một mô
hình mới nhằm mục đích để giải quyết bất lợi này của mô hình ER thời gian Mô
hình Anchor được tạo ra để tránh các nhược điểm đó và đạt được lợi ích từ mức độ chuẩn hóa 6NF [6]
Ngoài ra, việc duy trì và phát triển kho dữ liệu là một hoạt động phức tạp và
hao tốn nhiều thời gian Nguyên nhân là do môi trường của kho đữ liệu thay đổi liên tục và các nguồn cung cấp dữ liệu cho kho cũng thay đổi theo thời gian [5] Theo
Trang 13mức khái niệm thích hợp cho việc thiết kế các kho dữ liệu hay các cơ sở dữ liệu thuộc dạng chuẩn 6NF:
- _ Đảm bảo tính toản vẹn dữ liệu tại một thời điểm bất kì
- _ Đơn giản hóa các khái niệm mô hình hóa
- _ Cho phép phát triển theo mô-đun và tăng trưởng từng bước - _ Chuyển đổi sang cơ sở dữ liệu vật lí đơn giản
- Cho phép và hỗ trợ công cụ sinh tự động các kịch bản tạo cơ sở dữ liệu
vật lý cũng như các khung nhìn, các hàm cần thiết
- _ Chỉ quét những dữ liệu cần thiết trong quá trình xử lí truy vấn nhờ mỗi thuộc tính được lưu trữ riêng lẻ trong từng bảng
- Không chấp nhận giá trị NULL nên khắc phục được vấn để dữ liệu
trống trong một cơ sở đữ liệu thông thường
Mô hình Anchor là một kỹ thuật mô hình hóa cơ sở dữ liệu nhanh, phù hợp
với thông tin thay đổi theo thời gian cả về cấu trúc và nội đung Nó cung cấp một
bộ ký pháp đỗ họa được sử dụng cho mô hình ở mức khái niệm như mô hình hóa thực thể mối quan hệ, với các phan mo rong để làm việc với dữ liệu thời gian Mô hình Anchor bao gồm bốn thành phan cơ ban: tập thực thể (anchor), thuộc tính
(attributes), mối quan hệ (fties) và nút that (knot) [13] Các mô hình kết quả này có thê được chuyển sang các thiết kế cơ sở đữ liệu vật lý sử đụng các quy tắc được
chính thức hóa trong nhiều hệ quản trị cơ sở dữ liệu khác nhau như SQL server,
Trang 14sở dữ liệu quan hệ theo mô hình Anchor không có trở ngại gì vì mô hình Anchor chỉ quét qua những dữ liệu cần thiết cho việc truy vấn Hiểu được những lợi ích đó, cùng với sự hướng dẫn của PGS.TS Hồng Quang tơi đã chọn đề tài “Thiết kế cơ sở dữ liệu thời gian theo mô hình Anchor” để làm luận văn thạc sỹ
Điểm nổi bật của mô hình Anchor là tận dụng những ưu điểm và tránh được những hạn chế nhất định của các mô hình khác Mô hình Anchor có ưu điểm rất cao
như có khả năng phát triển mà không phá hủy đi mô hình ban đầu, tránh các giá trị null và giữ cho thông tin không bị đư thừa Các vấn đề về hiệu suất do sự thay đổi
dữ liệu phần lớn được tránh nhờ vào một tính năng trong các công cụ cơ sở dữ liệu hiện đại được gọi là 'table elimination' [10] Đề xử lí các yếu tổ có tính thay đổi thì
nội dung thông tin của mô hình Anchor mô phỏng các thay đổi của cơ sở đữ liệu thời gian trong kết quả của lược đồ cơ sở dữ liệu quan hệ Trong mô hình Anchor
tất cả các thay đổi đều được thực hiện dưới hình thức các phần mở rộng, làm cho
các phiên bản khác nhau của mô hình như là tập con của mô hình mới nhất đó Điều này cho phép truy vấn phiên bản chéo một cách dễ dàng Đây cũng là một lợi ích quan trọng bởi vì các ứng dụng không bị ảnh hưởng bởi sự phát triển của mô hình dữ liệu Hơn thế, thay vì sửa đối thì kết quả của sự phát triển thông qua các phần
mở rộng là tính mô-đun, làm cho nó có thể phân tách các mô hình dữ liệu thành các
thành phần nhỏ, ổn định và dễ quản lí Mô hình Anchor cung cấp hệ thống các
nguyên tắc, theo đó mô hình thu được có thể được triển khai theo mô hình đữ liệu
quan hệ một cách đơn giản Kết quả trực tiếp là cơ sở đữ liệu thời gian đạt chuẩn 6NF [9]
Ở Việt Nam, tuy đã có những nghiên cứu liên quan đến mô hình Anchor tuy nhiên chưa có nghiên cứu nào nói đến các phương pháp chuyển đổi từ mô hình cơ
sở dữ liệu có yếu tô thời gian (TimeER) sang mô hình Anchor
Vì vậy, luận văn này sẽ nghiên cứu về một cách tiếp cận trong việc chuyền déi mô hình TimeER sang mô hình Anchor
Trang 15hình Anchor Chương 2, hướng dẫn cách tạo mô hình Anchor, các phương pháp lưu trữ mô hình, cách cài đặt các thông số cho mô hình, cách phóng to (thu nhỏ) mô hình trong trang web thực nghiệm www.anchormodeling.com Trong chương 3, đề xuất một phương pháp chuyển đổi các thành phần của mô hình TimeER sang mô hình Anchor và kết quả thực nghiệm Phương pháp chuyền đổi này đã được công bố trong hội nghị khoa học quốc gia lần thứ XII về nghiên cứu cơ bản và ứng đụng
CNTT (FAIR 2019) Những đánh giá, kết luận và hướng phát triển của để tài trong
tương lai và cuối cùng là phần phụ lục là những đoạn code được tạo ra khi thiết kế lược đồ trong trang web thực nghiệm
Trang 16Chuong 1 TONG QUAN VE MO HiNH ANCHOR
Mô hình Anchor là một mô hình cơ sở dữ liệu phù hợp với những thông tin thay đổi theo thời gian cả về cấu trúc và nội dung Nó cung cấp một ký hiệu đồ họa
được sử dụng cho mô hình hóa khái niệm tương tự như mô hình thực thể mối quan hệ, với các phan mở rộng để làm việc với dữ liệu tạm thời Mô hình bao gồm bốn cầu trúc cơ bản: neo, thuộc tính, mối quan hệ và nút thắt, mỗi thành phần này thể hiện các khía cạnh khác nhau của mô hình [13] Mô hình này có thể được chuyển
sang cơ sở dữ liệu mức vật lý bằng cách sử dụng các quy tắc Sau khi chuyền thì các bang trong co sở dữ liệu quan hệ sẽ ở dạng chuẩn GNF
Mô hình Anchor được ứng dụng sớm nhất ở Thụy Điền vào năm 2004 khi cài
đặt kho dữ liệu cho một công ty bảo hiểm Vào năm 2007, mô hình này được sử dụng trong một vài kho dữ liệu và một hệ thống OLTP và nó được trình bày trên
toàn thế giới bởi Lars Rönnbäck tại hội nghị TDWI (The Data Warehousing
Institute, MY) tat Amsterdam [13] Kể từ đó, nghiên cứu về mô hình Anchor được thực hiện với sự hợp tác giữa những nhà sáng tạo Olle Regardt, Lars Rönnbäck và một nhóm người tại Khoa Khoa học Máy tính và Hệ thống thuộc trường Đại học Stockholm
Mô hình Anchor xử lý hai loại thay đổi thông tin đó là thay đổi theo cấu trúc và thay đổi theo nội đung [11] Thay đổi cấu trúc thông tin được thê hiện thông qua các phần mở rộng Mức độ chuẩn hóa cao giúp có thê không phá hủy các khái niệm mô
hình hóa cần thiết khi có sự thay đổi mà theo cách mọi lược đỗ trước luôn luôn là một tập hợp con của lược đỗ hiện tại Do lược đỗ hiện tại không được “chạm” vào,
điều này mang lại lợi ich là có thể phát triển cơ sở dữ liệu theo cách lặp rất cao và không gây ra bất kỳ thời gian chết nào
Thay đổi nội dung thông tin được thực hiện bằng cách mô phỏng các tính năng
tương tự của cơ sở dữ liệu tạm thời trong cơ sở dữ liệu quan hệ Trong mô hình
Trang 17được mô hình hóa bằng các thuộc tính, ví dụ: ngày sinh của người hoặc thời điểm
mua hàng Các khoảng thời gian trong đó một giá trị là hợp lệ được ghi lại thông
qua lịch sử các thuộc tính và quan hệ, ví dụ như sự thay đổi màu tóc của một người
hoặc khoảng thời gian mà một người đã kết hôn Trong cơ sở dữ liệu quan hệ, điều
này đạt được bằng cách thêm một cột duy nhất, với kiểu dữ liệu đủ chi tiết để nắm bắt tốc độ của các thay đổi, vào bảng tương ứng với thuộc tính lịch sử hoặc mối
quan hệ Điều này cho biết thêm một sự phức tạp nhỏ vì hơn một hàng trong bảng phải được kiểm tra để biết liệu một khoảng có được đóng lại hay không
Các điểm hoặc khoảng thời gian không liên quan trực tiếp đến miền được mô
hình hóa, chẳng hạn như các điểm thông tin thời gian được nhập vào cơ sở dữ liệu,
được xử lý thông qua việc sử dụng siêu dữ liệu trong mô hình Anchor, thay vi bat kỳ cấu trúc nào được để cập ở trên Mô hình Anchor có thể xử lí tốt các thông tin
thay đổi như vậy trong cơ sở dữ liệu, ngoài việc cập nhật, các câu lệnh xóa cũng
được thực hiện mà không phá hủy mô hình [12]
Trong chương này sẽ trình bày hai phần chính đó là cơ sở dữ liệu thời gian và
mô hình Anchor Phần cơ sở đữ liệu thời gian sẽ giới thiệu một số khái niệm về cơ
sở dữ liệu có yếu tố thời gian và phân loại thời gian trong cơ sở đữ liệu Phần mô
hình Anchor sẽ giới thiệu về mô hình Anchor, một số khái niệm về các thành phần
chính trong mô hình và những lợi ích ưu việt của mô hình 1.1 CƠ SỞ DỮ LIỆU THỜI GIAN
1.1.1 Một số khái niệm về cơ sở dữ liệu có yếu tố thời gian
Yếu tổ thời gian làm cho cơ sở đữ liệu rõ ràng hơn, hữu ích hơn nhưng đồng thời cũng làm cho nó trở nên phức tạp hơn Tuy nhiên, phần lớn các ứng dụng cơ sở
dữ liệu hiện nay đều lưu trữ, quản lí các dữ liệu liên quan đến thời gian và có sự
thay đổi theo thời gian Vậy thế nào là một cơ sở đữ liệu có yếu tố thời gian?
Một cơ sở dữ liệu có yếu tổ thời gian là một hệ thống cơ sở dữ liệu trong đó
Trang 18đổi liên tục về đữ liệu (vi dụ các hệ thống bán hàng có các sản phẩm có giá trị thay
đổi liên tục như vàng, dầu mỏ hoặc các loại dữ liệu khác) [1]
Xử lý thời gian thực có nghĩa là một giao dịch được xử lý đủ nhanh và cho kết quả phản hồi và có tác động ngay lập tức Các cơ sở đữ liệu có yếu tố thời gian là các công cụ quản lý hữu ích cho các đối tượng như cán bộ kế toán, các ngân hàng, hệ thống pháp luật, các hồ sơ y tế, hệ thống đa phương tiện, hệ thống kiểm
soát quá trình, hệ thống dự phòng thảm hoạ, và hệ thống phân tích dữ liệu khoa học
Các ứng dụng của cơ sở đữ liệu thời gian thực có rất nhiều những tiện ích giúp cho cả người quản lý cũng như các tổ chức có thể nắm bắt kịp thời việc thay
đổi dữ liệu một cách liên tục, nhanh chóng, nó giúp cho việc phân tích dự đoán
được kịp thời và phản ánh các thay đổi gần như ngay lập tức
Các ứng dụng cơ sở dữ liệu có yếu tố thời gian đã được phát triển từ rất lâu Tuy nhiên, việc tạo ra các ứng dụng về cơ sở dữ liệu này chủ yếu dành cho những người thiết kế và phát triển ứng dụng nhằm khai thác, thiết kế lập trình và cài đặt
các khái niệm thời gian Trên thực tế, có nhiễu ứng dụng mà thời gian cần được quan tâm trong cơ sở dữ liệu Chẳng hạn như việc theo dõi sức khỏe bệnh nhân; các hệ thống đặt chỗ trước như ở khách sạn, sân bay, ga tàu; hay trong cơ sở dữ liệu của
một công ty, chúng †a lưu trữ các thông tin về lương, phòng ban và chức vụ của mỗi
nhân vién; Nhu vay, trong thực tế phần lớn các ứng dụng cơ sở dữ liệu đều chứa
thông tin có yếu tố thời gian Và các loại thời gian trong mô hình Anchor sẽ được trình bày sau đây
1.1.2 Phân loại thời gian trong cơ sở dữ liệu
Trong mô hình Anchor có ba loại khái niệm về thời gian, mỗi khái niệm được lưu trữ khác nhau trong cơ sở dữ liệu Dé tránh nhằm lẫn thì chúng được đặt
Trang 19ra trên thực tế trong lĩnh vực ứng dụng Thứ ba, thời gian ghi nhận (recording time) là thời gian thông tin của đữ liệu được ghi nhận trên hệ thống Các loại thời gian này cô gắng nắm bắt điều mà thời gian muốn biêu đạt đó là: “khi một giá trị được
thay đổi”, “khi thông tin được ghi” và “khi có một sự kiện xảy ra” [8] e_ Thời gian thay đổi
Thời gian thay đổi của thuộc tính hoặc mối quan hệ là khoảng thời gian trong
đó giá trị hoặc quan hệ của nó là hợp lệ trong miền dữ liệu được mô hình hóa, đây
có thể gọi là thời gian hợp lệ [1], [15] Trong mô hình Anchor, khoảng thời gian này được xác định bằng một điểm thời gian duy nhất Điểm thời gian đó được sử dụng làm thời gian bắt đầu cho khoảng thời gian mới của một giá trị hoặc mối quan hệ
nhất định Khi một phiên bản mới được thêm vào, có cùng một định danh nhưng
thời điểm muộn hơn, nó sẽ hoàn toàn đóng khoảng thời gian cho phiên bản trước đó Do các thuộc tính là độc lập trong mô hình Anchor và do đó không có giá trị null trong cơ sở dữ liệu Anchor
e Thời gian ghi
Đối với mục đích bảo trì và phân tích, một loại thời gian khác thường được
sử dụng đó là thời gian ghi Thời gian ghi trong mô hình Anchor tương ứng với khái
niệm thời gian giao dich [1], [6] Nói một cách đơn giản, có thể nói đó là thời điểm khi một phan thông tin nhất định được nhập vào miền dữ liệu, hoặc thời gian trong đó một thực thể được lưu trữ trong cơ sở dữ liệu [15] Vì đây là thông tin về dữ liệu,
nên điều này được xử lý thông qua việc bổ sung siêu dữ liệu trong cơ sở đữ liệu Anchor Trong nhiều trường hợp, một thời gian ghi cho mỗi phần thông tin là đủ, tương ứng với thời gian khi dữ liệu được tải vào cơ sở dữ liệu Tuy nhiên, trong một số trường hợp có thê cần lưu trữ một mảng thời gian ghi nếu đữ liệu đã được truyền
qua một số hệ thống trước khi tiếp cận mô hình Trong cơ sở dữ liệu Anchor, siêu dữ liệu như vậy được thể hiện thông qua các tham chiếu đến cấu trúc siêu dữ liệu
e© Thời gian diễn ra
Trang 20kiện [II], tức là thời điểm xảy ra sự kiện trong thế giới thực Trong mô hình Anchor, loai thoi gian nay được coi là một thuộc tính của chính sự kiện Do đó, nó nên được mô hình hóa thành một hoặc hai thuộc tính tùy thuộc vào sự kiện là tạm
thời (có thể xây ra tại thời điểm đó) hoặc có thời lượng (xây ra giữa các lần) Thời
gian diễn ra là thời gian mà các thuộc tính của sự vật trong miễn dữ liệu đảm nhận các giá trị của các loại thời gian Một số ví dụ về những điều như vậy là: một người,
một phiếu giảm giá và mua hàng, có các thời điểm xây ra như: ngày sinh của một người, ngày một người chết, phiếu giảm giá có hiệu lực từ ngày, phiếu giảm giá có giá trị đến ngày, ngày mua và thời gian mua Tuy nhiên thuộc tính, cũng có thể có
cả thời gian thay đổi và thời gian ghi Lý do để nhập thời gian diễn ra là một khái niệm riêng là để tránh bị nhằm lẫn với thời gian hợp lệ hoặc thời gian giao dịch mỗi lân
1.2 MƠ HÌNH ANCHOR
1.2.1 Giới thiệu về mô hình Anchor
Mô hình Anchor là mô hình cơ sở dữ liệu thời gian mức khái niệm, biểu diễn một lược đỗ (sơ dé) cầu trúc dữ liệu nhằm thể hiện các yếu tố có tính thời gian và phi thời gian của các thực thể Ưu điểm của mô hình Anchor đó là thể hiện sự linh hoạt khi cần thiết phải thay đổi và mở rộng cấu trúc của mô hình Đặc biệt, với việc sử dụng lược đỗ hình sao, mô hình Anchor mang lại lợi ích chính yếu trong việc lưu trữ thông tin tại các kho dữ liệu, vì các ứng dụng vẫn không bị ảnh hưởng bởi sự
thay đổi cấu trúc của mô hình đữ liệu [2]
Mô hình Anchor có bốn thành phần cơ bản: neo, thuộc tính, mối quan hệ và nút thắt [13] Cũng tương tự như mô hình ER, một neo (anchor) được xem như một tập thực thể nhưng chỉ lưu định danh của các thực thể Theo đó, mỗi neo có thể gồm nhiều thuédc tinh (attribute) Dữ liệu của một thuộc tính là một bảng gồm hai cột lưu giá trị định danh của thực thể kèm giá trị của thuộc tính đó Chính điều nay tao ra su khác biệt so với mô hình ER, đó là khi ta bổ sung/loại bỏ một thuộc tính nào đó của
Trang 21Trong khi đó, một mối quan hệ (tie-relationship) giữa các neo chỉ lưu trữ định danh của các neo tương ứng có mối quan hệ với nhau Ngoài ra, khái niệm về ø/ fhắt (knot) đóng vai trò như một “từ điển” để giải thích các định danh cho trước DATA TYPE range 0+ ATTRIBUTE TE |ị consisis_dí ANCHOR ROLE range KNOTTED ATTRIBUTE KNOT ROLE | consists_of] KNOTTED TIE | | Ch 4 ot
STATIC HISTORIZED | KNOTTED STATIC KNOTTED HISTORIZED KNOTTED KNOTTED ||HISTORIZED TIE) STATIC TIE ATTRIBUTE | ATTRIBUTE ATTRIBUTE | ATTRIBUTE HISTORIZED TIE || STATIC TIE
ot of 0.7 lime range 0.7 03
Í TIMETYPE 1
lime range 1 time range
1 time range
Hình 1.1 Biểu diễn các thành phần của mô hình Anchor trong sơ đồ lép UML[13]
1.2.2 Qui ước đặt tên trong mô hình Anchor
Các thành phần trong một lược để Anchor có thể được đặt tên theo bất kỳ
cách nào, tuy nhiên việc có một quy ước đặt tên cho các thành phần của mô hình nên được xây dựng để làm tăng tính dé hiểu và đơn giản hóa khi làm việc với một mô hình Nếu cùng một quy ước được sử dụng nhất quán trong nhiều cài đặt, thì sự quen thuộc sẽ giúp cho người thiết kế nhanh chóng nhận dạng các thực thể và mối quan hệ của chúng với các thực thê khác Một quy ước đặt tên tốt phải đáp ứng một số tiêu chí, một số trong đó có thể mâu thuẫn với các tiêu chí khác Tên phải ngắn, nhưng đủ dài dé dé hiểu Chúng phải là duy nhất, nhưng có những phần chung với các thực thể liên quan Tên được đặt nên rõ ràng, không có quá nhiều quy tắc phải
được giới thiệu và càng ít kí tự “lạ” thì càng tốt [9] Quy ước đặt tên được qui định
như trong bảng sau:
Trang 22Ghi nhớ - Thành - Ĩ Mô tả tên/Mẫu mô |_ Tên quy ước ` tên/Mầu việt ` Ví dụ phan , tả đây đủ tắt
Neo Am | [A-Z]{2} | Aa | ([A-Z][a-z]*) + | Am Aa MH MONHOC
Nút Kn | [A-Z]{3} | Ka | (A-Z][a-z]*) + | Kn Ka GIO_GIOITINH that Thudc | Bm | [A-Z]{3} | Ba | (A-Z][a-z]*) + | Am Bm Aa Ba | MH_TMH MONH tinh OC_TENMONHOC Vai tro r ([a-z][A-Z]*) + | R DAY Méi Am r (m |GV DAY MH LA quan hệ
Bảng 1.1 Qui ước đặt tên các thành phần trong mô hình Anchor [13]
Quy ước được qui định chỉ sử đụng các chữ cái, số thông thường và ký tự gạch dưới Điều này đảm bảo rằng các tên giống nhau có thể được sử dụng trong
nhiều cách biểu diễn, chẳng hạn như trong cơ sở dữ liệu quan hệ, trong XML hoặc
trong ngôn ngữ lập trình
Quy ước đặt tên được qui định sử đụng một cú pháp với một vài quy tắc ngữ
nghĩa, giúp có thể SUY Ta các mối quan hệ trực tiếp của một thực thể được đặt tên
Quy ước này cũng xác định tên gọi cho các thành phần của một thực thể Cú pháp
sử dụng ba từ gốc: thuật ghi nhớ, bộ mô tả và vai trò Sau đó tên gọi được xây dựng
Trang 23thành phần được kết nối về mặt ngữ nghĩa với thực thể đóng gói hoặc được tham
chiếu Tên của các định danh là các ký hiệu được gắn với “ID”, và liên quan đến vai
trò của chúng Tên gọi của các phạm vi thời gian có hậu tố là “ValidFrom” 1.2.3 Một số khái niệm trong mô hình Anchor
Một cách hình thức, để làm cơ sở cho việc định nghĩa các thành phan co ban nay, ta quy udc về một số các kí hiệu như sau: I là tập hợp các kí hiệu được sử dụng như là những định danh D là một kiểu dữ liệu, miền giá trị của D là tập hợp các giá trị đữ liệu T là một kiểu thời gian, miễn của T là tập các giá trị thời gian [13]
> Neo
Một neo đại diện cho một tập thực thể, chẳng hạn như một tác nhân hoặc sự kiện Hình 1.2a biểu diễn cho một neo
Định nghĩa 1.1 (Neo) Một neo A là một tập hợp con của I
Một ví dụ về neo là GV _GIAOVIEN gồm có 3 thực thể là: {#111, #123,
#132}
> Nut that
Một nút thắt được sử dụng để thể hiện cho một tập hợp các thực thể cố định và
không thay đổi theo thời gian Trong khi các neo được sử dụng để thể hiện cho các tập thực thể tùy ý thì các nút thắt được sử đụng để quản lý các thuộc tính có sự
trùng lặp dữ liệu của các thực thể
Định nghĩa 1.2 (Nút thắt) Một nút thắt K là một tập con của I x D, trong đó dữ liệu trên miền D đã định sẵn
Một ví dụ về nút thắt là GIO_GIOITINH có ngữ nghĩa là: {(0, “Nam)),
(đ1.“Nữ}
> Thuộc tính
Có bốn loại thuộc tính: thuộc tính tĩnh, thuộc tính có yếu tố thời gian, thuộc
Trang 24Định nghĩa 1.3 (Thuộc tinh tĩnh) Một thuộc tính tĩnh là tập con của I = D, trong đó dữ liệu trên miễn D chưa được định sẵn
Một ví dụ về thuộc tính tĩnh là họ tên của giáo viên GV HTE_GIAOVIEN HOTEN như ở Hình 1.2b
Định nghĩa 1.4 (Thuộc tính có yếu tố thời gian) Một thuộc tính có yếu tố thời gian là tập con của I x D x T
Một ví dụ về thuộc tính có yếu tố thời gian là hệ số lương của giáo viên GV LUO_ GIAOVIEN LUONG (rd) như Hình 1.2c GV _GIAOVIEN x ) GV_HTE_GIAOVIEN_HOTEN (a) (b) ^^ —1©) œv LuO GIAOVIEN_LUONG (ra) + J GIO_GIOITINH (c) (d)
Hình 1.2 Các ví dụ về mỗi thành phần trong mô hình Anchor
(a) neo GV_GIAOVIEN, (b) thuộc tính GV_HTE_ GIAOVIEN HOTEN, (c)
thuộc tính có yếu tổ thời gian GV _LUO_GIAOVIEN LUONG (rd), (d) nut thắt
GIO_GIOITINH
Định nghĩa 1.5 (Thuộc tính tĩnh có nút thắt) Một thuộc tinh tĩnh có nút thắt là
tập con cua I x I
Một ví dụ về thuộc tinh nút thắt tinh là thuộc tinh GV GIO GIAOVIEN GIOITINH có nút thắt GIO_GIOITINH
Định nghĩa 1.6 (Thuộc tính có yếu tố thời gian có nút thắt) Một thuộc tính có
Trang 25> Mối quan hệ
Một mối quan hệ đại diện cho một liên kết giữa hai hoặc nhiều tập thực thể Tương tự như các thuộc tính, các mối quan hệ cũng được chia làm 4 loại: mối quan
hệ tĩnh, mối quan hệ có yếu tố thời gian, mối quan hệ tĩnh có nút thắt và mối quan
hệ có yếu tổ thời gian có nút thắt Một thực thể có thể xuất hiện nhiều lần trong một
mối quan hệ thì các lần xuất hiện đó phải có đủ điều kiện bằng cách sử dụng khái niệm về vai trò Định nghĩa 1.7 (Vai trò neo) Một vai trò neo có kiểu dữ liệu là kiểu của neo tương ứng Định nghĩa 1.8 (Vai trò nút thắt) Một vai trò nút thắt có kiểu dữ liệu là kiểu của nút thắt tương ứng
Định nghĩa 1.9 (Mối quan hệ tĩnh) Mối quan hệ tĩnh R là một tập hợp gồm ít
nhất hai tập thực thể Trong đó R = {R;, , R,} la mot tap hop cac cap (R;, v;), i= 1, ,n, voi R; la tap thu thé, €7 và n> 2
Định nghĩa 1.10 (Mối quan hệ có yếu tố thời gian) Mối quan hệ R có yếu tố thời gian 7 là một tập hợp gồm có ít nhất hai tập thực thể và loại thời gian 7 Trong
do R(T) = {R,, , Ry, T} 1a mot tap hop cac cap (R;, vj), i= 1, , n va mot diém thời gian p, với R, là tập thực thé, v, EL, p € Tvan>2
Định nghĩa 1.11 (Mối quan hệ tĩnh có nút thắt) Mối quan hệ tĩnh có nút thất
R(K) là một tập hợp gồm ít nhất hai tập thực thể, một hoặc nhiều vai trò nút thắt Một R(K) = {R\ Rạ, Sì S„} là một tập hợp các cap (R;, vj), i= 1, ,n và (5, W;), j = I, , m, trong đó Rụ là vai trò neo, S; là vai trò nút thắt, tị Cl,w; €
ILn>2vam>1
Định nghĩa 1.12 (Mối quan hệ có yếu tố thời gian có nút thắt) Mối quan hệ có yếu tổ thời gian có nút thắt R(7K) là một tập hợp gồm có ít nhất hai tập thực thê,
Trang 26thời gian p, trong đó R 1a vai tro neo, S; 1a vai trò nút thắt, tị Clw¡€lp€ET,n> 2 và m> ] Sau đây là một ví dụ về mô hình Anchor: GI0_GIOITINH L h GV_GI0_GIAOVIEN_GIDITINH À_; 6V GIAOVI GV LƯO GIAOVIEN_LUONG (rd) Q) A G\_HTE_GIAOVIEN_ HOTEN QO Hình 1.3 Ví dụ về mô hình Anchor : BPA ABA —_ DAY ^ 0) GV_HGV_GIAOVIEN_HISTORIZEDGY (r) T3 MH_MONHOC i \2) MHLTMH_MONHOC_TENMONHOC
Trong hình này co hai neo GV_GIAOVIEN va MH MONHOC, trong đó neo GV GIAOVIEN gồm các thuộc tính tĩnh là GV HTE_GIAOVIEN HOTEN và GV GIO GIAOVIEN GIOITINH, thuộc tính có yếu tố thời gian là thuộc tính
GV LUO GIAOVIEN LUONG_ và GV HGV GIAOVIEN HISTORIZEDGV ngoài ra còn có nút thắt đó là GIO_GIOITINH, neo MH_MONHOC có thuộc tính
MH TMH MONHOC_TENMONHOC, hai neo này liên kết với nhau bởi mối
quan hé GV_ DAY MH LA
Trang 27Trong Hình 4 có mối quan hệ DAY, tập thực thể GIAOVIEN, thuộc tính LUONG có yếu tố thời gian
Lưu ý rằng khi chuyên từ mô hình ER thời gian Hình 1.4 thành mô hình
Anchor Hình 1.3 thì các thuộc tính MAMH của tập thực thể MONHOC và thuộc
tính MAGV của tập thực thể GIAOVIEN sẽ không còn bởi vì các thuộc tính này sẽ trở thành định danh tương ứng của neo GV_GIAOVIEN và MH_MONHOC
1.2.4 Những lợi ích của mô hình Anchor
Mô hình Anchor là một kỹ thuật đã được chứng minh là có hiệu quả trong
thực tế để quản lý kho dữ liệu Từ năm 2004, một số kho đữ liệu đã được xây dựng
bằng mô hình Anchor vẫn đang được sử đụng Mô hình Anchor đã được dùng để
xây dựng dữ liệu cho các công ty, các doanh nghiệp bảo hiểm, hậu cần và bán lẻ,
được áp đụng trong phạm vi từ các bộ phận đến toàn doanh nghiệp Trong kinh doanh bảo hiểm thì khả năng phát triển mở rộng mô hình và lưu trữ dữ liệu là các
tính năng chính, nên việc liên kết và thay đổi kho dữ liệu cần được thực hiện Đối với kho dữ liệu quản lý hoạt động của một công ty, mô hình Anchor được chọn vì
dễ truy cập dữ liệu có yếu tố thời gian trong quá trình hợp nhất, khả năng tự động
hóa nhiều tác vụ và khả năng sử dụng lại các mẫu tải đữ liệu trong công cụ ETL
Trong kho dữ liệu bán lẻ, các yêu cầu phân tích không rõ ràng và không ổn định nhưng mô hình Anchor không đưa ra giả định nào về các truy vấn trong khi vẫn duy trì hiệu suất cao đối với hầu hết chúng, điều đó làm giảm rủi ro chung của dự án
Một số nhà cung cấp phần mềm đánh giá cao việc sử đụng cơ sở dữ liệu
Anchor bởi vì tính linh hoạt và đơn giản hóa sự phát triển mô hình, các cơ chế mở
rộng không phá hủy của nó làm giảm nhu cầu quản lý đữ liệu cũ khi hệ thống được nâng cấp Trường hợp được nghiên cứu từ các trang web, việc triển khai các mô
hình Anchor trong các lĩnh vực khác và các đại diện khác, cũng như việc triển khai
mô hình Anchor cho cơ sở đữ liệu là rất lớn [16]
Trang 28bởi mô hình Anchor, bao gồm dễ dàng truy vấn tạm thời và hiệu suất thời gian chạy nhanh Mô hình Anchor khác với các cách tiếp cận khác trong kho dữ liệu đó là
nhấn mạnh đến việc không chuẩn hóa, được coi là cần thiết để truy xuất nhanh Bởi vì mô hình Anchor sẽ dẫn đến các mô hình dữ liệu được chuẩn hóa cao đạt chuẩn
6NF nên các mô hình dữ liệu này truy xuất nhanh Các thử nghiệm hiệu suất trên
Microsoft SQL Server đã được thực hiện chỉ ra rằng cơ sở dữ liệu Anchor vượt trội hơn so với cơ sở đữ liệu ít được chuẩn hóa trong các kịch bản kho dữ liệu điển hình
Các thử nghiệm so sánh hiệu suất cũng như triển khai các quan điểm vật lí và chức năng trên các hệ thống quản lý cơ sở dữ liệu thương mại (DBMS) khác nhau đã gợi ra một hướng phát triển mới
Thực tế một dòng nghiên cứu khác liên quan đến việc thực hiện của mô hình Anchor đó là hầu hết các DBMS chủ yếu theo định hướng hàng, tức là mọi thuộc tính của một hàng được lưu trữ theo một chuỗi nhất định, thuộc tính của nó sẽ được thực hiện lần lượt cho đến cuối hàng Đối với cơ sở dữ liệu Anchor ở mức độ lớn
bao gồm nhiều bảng thì DBMS định hướng theo cột và lưu trữ nội đung của chúng theo cột thay vì theo hàng, đây có thé là giải pháp tốt hơn Ngoài ra, đối với khối lượng công việc OLAP, thường liên quan đến số lượng truy vấn nhỏ hơn liên quan
đến các cột tông hợp trên tat ca đữ liệu
Khả năng của một mô hình không phải là một lựa chọn thực tế Hơn nữa, tại một số thời điểm, một sự thay đổi có thể xảy ra mà không thể lường trước được Mô
hình Anchor được xây dựng dựa trên cơ sở giả định rằng những dự đoán xảy ra là khơng hồn hảo Mô hình Anchor là một mô hình không được xây dung dé ton tại mà nó được xây dựng để thay đổi
Lợi ích của mô hình Anchor là đễ mô hình hóa, bảo trì cơ sở dữ liệu một cách
đơn giản và hiệu suất cao Sau đây là những phân tích về các lợi ích mà mô hình
Anchor đạt được:
> Dễ mô hình hóa
e - Sử dụng khái niệm và ký hiệu: Mô hình Anchor được xây dựng thông
Trang 29dụng các hướng dẫn tạo lược đồ nên đã có thể giảm số lượng các tùy chọn có sẵn khi giải quyết vấn để mô hình hóa, từ đó giảm nguy cơ xảy ra lỗi trong mô hình Anchor
e - Lịch sử hóa theo thiết kế: Mô hình Anchor quản lý các phiên bản thông tin khác nhau một cách đơn giản bởi vì mô hình Anchor cung cấp các cấu trúc
gốc để tạo phiên bản thông tin dưới dạng các thuộc tính và quan hệ được lịch sử
hóa
° Phát triển nhanh: Mô hình Anchor tạo điều kiện cho việc phát triển mô hình mới dựa trên mô hỉnh cũ và việc thực hiện này rất nhanh, vì nó cho phép làm việc độc lập trên các tập con nhỏ của mô hình đang được xem xét, sau này có
thê được tích hợp vào mô hình toàn cầu Các yêu cầu thay đổi được xử lý bằng các bổ sung mà không ảnh hưởng đến các phần hiện có của mô hình [7]
e - Giảm logic dịch thuật: Các biểu diễn đồ họa được sử dụng trong mô
hình Anchor có thê được sử dụng cho mô hình hóa khái niệm và logic Chúng cũng
ánh xạ trực tiếp lên các bảng khi được biểu diễn dưới dang vật lý như một cơ sở dữ liệu Anchor, với một bổ sung nhỏ nhưng chính xác bởi các xử lý logic đặc biệt
trong biểu điễn đó Mối quan hệ gần 1-l này giữa các cấp độ khác nhau của mô
hình hóa đơn giản hóa, hoặc thậm chí loại bỏ nhu cầu về logic dịch thuật
e Kha nang str dung lại và tự động hóa: Số lượng nhỏ các cầu trúc mô
hình hóa cùng với các quy ước đặt tên trong mô hình Anchor mang lại mức độ cấu
trúc cao, có thể được tận dụng dưới dạng tái sử dụng và tự động hóa Ví dụ: các
công việc thường xuyên diễn ra như tải dữ liệu, xử lý lỗi và kiểm tra tính nhất quán
có thể được thực hiện và có thể tạo mã tự động, tăng tốc độ phát triển
> Bao tri cơ sở dữ liệu đơn giản hóa
e Dễ thay đổi thuộc tính: Trong cơ sở dữ liệu Anchor, dữ liệu được lịch
sử hóa ở cấp thuộc tính thay vì cấp hàng Điều này tạo điều kiện trực tiếp theo dõi các thay đổi thuộc tính thay vì phải phân tích toàn bộ một hàng dé rút ra thuộc tính nào đã thay đổi Ngoài ra, các khung nhìn và chức năng được xác định trước cũng đơn giản hóa truy vấn tạm thời Với việc sử dụng siêu dữ liệu bổ sung, cũng có thé
Trang 30e Không có giá trị null: Không có giá tri null trong cơ sở dữ liệu Anchor Diéu nay gitp loại bỏ sự cần thiết phải giải thích các giá trị null [10] cũng như lãng phí không gian lưu trữ Tuy nhiên, cần lưu ý rằng null có thể xuất hiện đo kết quả của các phép nối ngoài
e Thiết kế chỉ mục đơn giản: Các chỉ mục được nhóm trong cơ sở dữ liệu Anchor được đưa ra cho các bảng thuộc tính, neo và nút thắt Không có phân tích về những cột cần lập chỉ mục được thực hiện vì có các quy tắc rõ ràng để xác
định chỉ mục nào có liên quan
e Không đồng bộ cập nhật miễn phí: Trong cơ sở dữ liệu Anchor, dữ
liệu đến không đồng bộ có thể được xử lý một cách đơn giản Dữ liệu đến sau sẽ được bổ sung thay vì cập nhật, vì dữ liệu cho một thuộc tính duy nhất được lưu trữ
trong một bảng của riêng nó (so với các cách tiếp cận khác trong đó một bảng có thể
bao gồm một số thuộc tính)
> Cơ sở dữ liệu hiệu suất cao
e — Hiệu suất thời gian chạy cao: Đối với nhiều loại truy vấn, cơ sở dữ liệu Anchor đạt được hiệu suất tốt hơn nhiều so với cơ sở dữ liệu ít được chuẩn hóa Sự kết hợp của ít cột hơn trên mỗi bảng, loại bỏ bảng và dự phòng tối thiểu đã hạn
chế tập dữ liệu được quét trong một truy vấn, nên thời gian phản hồi truy vấn nhanh
hơn, ít tốn thời gian hơn
e - Lưu trữ hiệu qua: Cơ sở dữ liệu Anchor thường có kích thước nhỏ hơn
cơ sở dữ liệu ít chuẩn hóa Mức độ chuẩn hóa cao cùng với việc xây dựng nút thắt,
không có giá trị null và thực tế là lịch sử hóa không bao giờ trùng lặp đữ liệu một cách không cần thiết có nghĩa là tổng kích thước cơ sở dữ liệu thường nhỏ hơn cơ sở dữ liệu ít chuẩn hóa tương ứng [ 14]
Trang 31e _ Cần ít không gian chỉ mục hơn: Cần ít không gian chỉ mục trong cơ sở
dữ liệu Anchor, vì hầu hết các chỉ mục được phân cụm và chỉ sắp xếp lại dữ liệu thực tế Độ hẹp của các bảng trong cơ sở dữ liệu Anchor, có nghĩa là chỉ mục bé
sung chỉ trong các trường hợp hiếm hoi cung cấp hiệu suất tăng Hầu hết thời gian bảng có thể được quét rất nhanh
e - Nén bảng dữ liệu có liên quan: Các bảng thuộc tính trong cơ sở dữ liệu Anchor có thể được nén Các công cụ cơ sở đữ liệu thường cung cấp nén ở cấp độ bảng, nhưng không phải ở cấp cột Trong khi nén cơ sở đữ liệu Anchor có thể
được xác định chính xác đến nơi mà hiệu ứng sẽ là lớn nhất, tốt hơn so với một cơ sở dữ liệu ít chuẩn hóa
e Giam rủi ro bế tắc: Trong các cơ sở dữ liệu có các thao tác chọn, chèn,
cập nhật và xóa, có nguy cơ rơi vào bế tắc nếu những điều này không được thực
hiện cần thận Do thực tế là trong các cơ sở dữ liệu Anchor chỉ có các phan chèn và chọn được thực hiện, điều này tạo ra ít khóa hơn, nguy co di vao bế tắc sẽ giảm
e _ Truy cập đồng thời tốt hơn: Trong một bảng có nhiều cột, khóa hàng sẽ giữ các truy vấn khác chờ đợi nếu tất cả cùng một hàng được truy cập, trừ khi có thê khóa cột Điều này là bất kể các cột được truy cập bởi các truy vấn Trong cơ sở
dữ liệu Anchor, các cột tương ứng được trải đều trên một số bảng và các truy vấn sẽ
không phải đợi các hàng mở khóa miễn là các bảng thuộc tính khác nhau được truy cập bởi chúng
e _ Dộc lập truy vấn: Kiến thức về các truy vấn dự định là không cần thiết
trong mô hình Anchor, ví dụ như trong các lược đỗ hình sao Do đó các mô hình
Anchor phù hợp hơn cho phân tích chung, tức là khi các truy vấn dự định khó dự
đoán
Lợi ích của mô hình Anchor không có liên quan đến bất kỳ cơ sở dữ liệu nào
nhưng đặc biệt có giá trị đối với kho đữ liệu Đặc biệt, hỗ trợ cho sự phát triển lặp
Trang 321.3 KET CHƯƠNG 1
Nội dung Chương l đã giới thiệu sơ lược về mô hình Anchor, những lợi ích khi sử dụng mô hình Anchor, những khái niệm cơ bản về mô hình Anchor
Anchor Modeler là một công cụ mô hình hóa cơ sở dữ liệu cho phép tạo các mô hỉnh dữ liệu thời gian sử dụng 6GNE Cơ sở dữ liệu của mô hình Anchor lưu lại
tất cả các phiên bản đữ liệu, cho phép truy cập đến dữ liệu ở bất kỳ thời điểm nào trong quá khứ với tốc độ truy cập rất cao
Việc thiết kế mô hình Anchor như Hình 1.3 được thực hiện trên trang web thực nghiệm của Anchor đó là www.anchormodeling.com và Chương 2 của luận
Trang 33Chương 2 TẠO LƯỢC ĐÒ TRONG ANCHOR MODELING
Lợi ích khi sử dụng mô hình Anchor là không cần cài đặt trên máy bởi vì chỉ
cần thực hiện trên trang web thực nghiệm đó là www.anchormodeling.com, trang
web này cho phép tạo lược đồ của mô hình Anchor với đầy đủ các thành phần có yếu tố thời gian và không có yếu tổ thời gian Mô hình Anchor đồng thời thực hiện
hai chức năng là thiết kế mô hình cơ sở đữ liệu ở mức khái niệm (tạo lược dé trong
trang web thực nghiệm) đồng thời thiết kế cả mô hình cơ sở ở mức logic (sinh mã SQL) cho các lược đổ Chỉ cần truy cập vào trang web này sau đó chọn trang Online
Modeler đề thực nghiệm, khi đó giao diện thiết kế lược đồ sẽ có dạng như sau:
Ms -3 = oa
(Ae cốc | P.1 x +
@ € G ~~ Œ Không bảo mật | www.anchormadeling.com/modeler/latest/ & ww ce @ + bọ] File Layout Generate Play Zoom+ Zoom- Redo Undo Defaults Settings Help
[search filter None selected 7 2 3 + ñ " “ - L]
Local ediling mode
Not logged in (click here to log in)
a B ANCHOR Bf
Hinh 2.1 Trang web thuc nghiém Anchor Modeler
Và như đã giới thiệu ở Chương I, mô hình Anchor gồm 4 thành phần cơ bản
đó là: neo, thuộc tính, mối quan hệ và nút thắt Chương 2 của luận văn sẽ giới thiệu các bước để tạo lược đồ mới, mở một lược đỗ có sẵn, cách lưu một lược đỗ ngoai ra
Trang 342.1 TẠO MỚI MỘT MƠ HÌNH ANCHOR
Dé tạo mới một mô hình vào File chọn New Model để tạo Sau đó sẽ tạo lần lượt các thành phan cơ bản của lược đổ, bắt đầu từ việc tạo neo, rồi đến thuộc tính neo, nút thắt của thuộc tính, mối quan hệ giữa các neo Các bước thực hiện sẽ lần
lượt được trình bày sau đây:
2.1.1 Cài đặt neo cho mô hình
Neo trong mô hình Anchor tương ứng là tập thực thể trong mô hình ER thời
Trang 35Các tính chất của neo như sau:
Tính chất của neo Ý nghĩa
Descriptor Dat tén cho neo
Mnemonic Qui ước ghi nhớ của neo chi gdm 2 kí tr
Capsule Chọn tiên tô (thường là dbo)
Identity Kiêu của neo
Description Mô tả neo Bảng 2.1 Các tính chất của neo Các lệnh của neo gôm:
Lệnh thực hiện trên neo Ý nghĩa
Delete selected Xóa bỏ neo
Add attribute Tạo thuộc tính cho neo
Add tie Tạo môi quan hệ phản xạ đên chính neo đó Add tie anchor Tạo mỗi quan hệ với một neo khác
Explode/Implode Mở rộng/Thu gọn neo
Bảng 2.2 Các lệnh thực hiện trên neo
Sau khi thiết lập xong các tính chất cũng như các lệnh thì kích vào hình vuông màu cam phía trên bên trái bảng edit để xác nhận
Trang 36+ Bước I: Di chuyển chuột trên neo cho đến khi xuất hiện hình vuông như sau: IMs: - :
Click to open the context menu
Hình 2.3 Kích chọn để mở hộp thoại Edit Anchor
+ Bước 2: Click vào hình vuông màu cam phía dưới đê mở hộp Edit Anchor
+ Bước 3: Đặt tên, qui ước, chọn tiền tổ và kiểu đữ liệu cho neo sau đó chọn các
lệnh tương ứng cho neo trong hộp thoại Edit Anchor cho neo giáo viên như hình sau: m Edit Anchor Descriptor |GILAOVIEN Mnemonic: |GV Capsule: dbo Identity: INT Generator |s) Description Day 14 tap the thể giáo viên OPERA Delete selected Add attribute Add tie Add tied anchor Explode/Implode
Hình 2.4 Thiết lập tính chất và lệnh cho neo giáo viên
+ Bước 4: Kích vào hình vuông ban đầu để hoàn thành việc tao neo giáo viên
Với các lệnh trên hộp thoại Edit Anchor cho phép tạo thuộc tính cho neo
hoặc mối quan hệ của neo Lưu ý đối với mô hình Anchor thì neo không mang yếu tố thời gian, nếu tập thực thể tương ứng với neo có yếu tổ thời gian thì cách thức lưu trữ yếu tố thời gian này sẽ được giới thiệu ở chương tiếp theo Sau khi tạo neo
thì việc tiếp theo sẽ là tạo thuộc tính cho neo, việc cài đặt thuộc tính cho neo được
trình bày & phan sau đây
Trang 372.1.2 Cài đặt thuộc tính của neo trong mô hình Anchor
Thuộc tính trong mô hình Anchor có biểu tượng hình tròn, thuộc tính có yếu
tố thời gian có biểu tượng hai hình tròn lồng nhau
Neo có bao nhiêu thuộc tính thì thực hiện bấy nhiêu lần Add attribute trên hộp thoại Edit Anchor, sau đó mỗi thuộc tính thực hiện cải đặt bằng cách mở hộp thoại Edit Attribute như hình sau: | Eee Descriptor: [IUnnamedl Mnemonic [#8 i Capsule: dbo Data range: Checksum: Description: OPERATIONS Delete selected Toggle knotted Toggle historized
Hình 2.5 Hộp thoại thiết lập các tính chất và các lệnh của thuộc tính của neo
Các tính chất của thuộc tính gồm các tính chất sau:
Tính chất của thuộc tính Ý nghĩa
Descriptor Đặt tên cho thuộc tính
Mnemonic Qui ước ghi nhớ của thuộc tính gôm 3 kí tự
Capsule Chọn tiên tô cho thuộc tính (dbo)
Data range Kiêu dữ liệu của thuộc tính
Checksum Cho phép kiêm tra loại dữ liệu
Deletable Cho phép xóa các giá trị
Description Mô tả thuộc tính
Trang 38
Lệnh thiết lập thuộc tính Ý nghĩa
Delete selected Xóa bỏ thuộc tính
Toggle knot Xác định nút thắt cho thuộc tính
Toggle hitorized Xác định yêu tô thời gian cho thuộc tinh
Bảng 2.4 Bảng các lệnh của thuộc tính
Như vậy các bước để tạo ra thuộc tính GV_HTE_ GIAOVIEN HOTEN như
trong Hình 1.3 được thực hiện như sau:
+ Bước I: Thực hiện Add attrbute trên hộp thoại Edit Anchor khi đó 1 thuộc tính mới sẽ được tạo ra như hình sau:
GV GIAOVIEN we
\_/ Gv 225_GIAOVIEN_lUnnamed!
Hình 2.6 Tạo mới một thuộc tính cho neo
+ Đước 2: Di chuyền chuột trên thuộc tính cho đến khi xuất hiện hình vuông mau
cam phía dưới, kích chuột trái trên hình vuông này đề mở hộp thoại Edit Attribute
Á_⁄ GV ?25_GIAOVIEN_!Unnamed!
Click to open the context menu
Hình 2.7 Kích chọn để mở hộp thoại Edit Attribute
Trang 39Descriptor HOTEM Mnemonic: |HTE Capsule: dbo Data range: varchar Checksum: Deletable « Description: OPERATIONS Delete selected_
Adds or removes a knot from the selected attribute(s)
Hình 2.8 Hộp thoại Edit Attribute
+ Bước 4: Kích chọn lại hình vuông phía trên của hộp thoại Edit Attribute để hoàn thành việc tạo thuộc tính họ tên của neo giáo viên
Các thuộc tính khác cũng được tạo tương tự như vậy, nếu thuộc tính có yếu
tố thời gian thì chọn lệnh Toggle historized trong hộp thoại Edit Attribute lúc đó biểu tượng của thuộc tính là hai hình tròn lồng nhau
2.1.3 Cài đặt nút thắt trong mô hình Anchor
Như đã nói ở trên nút thắt trong mô hình Anchor duoc coi như là một cuốn
“từ điển” để giải thích cho các định đanh cho trước Ngoài ra việc sử dụng nút thắt còn giúp giảm bớt sự trùng lặp dữ liệu trong các trường thuộc tính, mối quan hệ Và
cũng như là trình bày ở Phần 2.1.2 nút thắt của thuộc tính được tạo ra từ việc sử
dụng lệnh Toggle knotted trong hộp thoại Edit Attribute Nut thắt có biểu tượng hình vuông màu trắng viền hồng Để thiết đặt các tính chất của nút thắt kích chọn nút thắt sau đó kích vào ô hình vuông màu cam phía dưới nút thắt để xuất hiện bảng
Edit Knot như sau:
Trang 40[ Ìz:5 tunnsmeal mm Edit Knot Descriptor: [THỦ Mnemonic: |?18 Capsule: dbo Data range: |INT Identity: | Generator: Checksum: Description | OPERATIONS, —— Delete selected Hình 2.9 Hộp thoại thiết lập các tinh chất và các lệnh của nút that Mỗi nút thắt gồm các tính chất sau: Tính chất của nút thắt Ý nghĩa
Descriptor Dat tén cho nut that
Mnemonic Qui ước ghi nhớ của nút thắt gôm 3 ki tu
Capsule Chọn tiên tô cho nút thắt (dbo)
Data range Phạm vi kết quả dữ liệu
Identity Kiêu dữ liệu của nút thắt
Checksum Cho phép kiêm tra kiêu dữ liệu
Description Mô tả thuộc tính
Bảng 2.5 Bảng các tính chất của nút thắt
Đối với nút thắt thì không có nhiều lệnh mà chỉ có lệnh Delete selected là
xóa nút thắt nếu không sử dụng
Ví dụ trong Hình 1.3 có nút thắt GIO_GIOITINH của thuộc tính giới tính
việc tạo ra nút thắt này được thực hiện tuần tự theo các bước như sau: