« Home « Kết quả tìm kiếm

Thiết Kế Mô Hình Dữ Liệu Anchor Từ Mô Hình Thực Thể - Mối Quan Hệ Có Yếu Tố Thời Gian


Tóm tắt Xem thử

- Huế, ngày DOI: 10.15625/vap THIẾT KẾ MÔ HÌNH DỮ LIỆU ANCHOR TỪ MÔ HÌNH THỰC THỂ - MỐI QUAN HỆ CÓ YẾU TỐ THỜI GIAN Nguyễn Thị Lan Anh1, Trần Việt Khoa1, Nguyễn Viết Liên2, Hoàng Quang1 1 Trường Đại học Khoa học, Đại học Huế 2 Trường Cao đẳng Giao thông vận tải Trung ương VI [email protected], [email protected], [email protected], [email protected] TÓM TẮT: 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 dữ 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.
- Theo đó, các mô hình dữ liệu của kho cần được môđun hóa và linh hoạt để có thể quản lí được sự thay đổi của các thông tin.
- Mô hình dữ liệu Anchor là mô hình dữ liệu mứ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.
- Nhưng trên thực tế, một số cơ sở dữ liệu thời gian lại được thiết kế dựa vào 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), là mô hình ở mức khái niệm hỗ trợ các yếu tố thời gian.
- Điều này dẫn đến mô hình quan hệ thu được khi thực hiện việc chuyển đổi từ mô hình ER thời gian là không đạt dạng chuẩn 6NF.
- Để khắc phục vấn đề này, bài báo đề xuất một phương pháp chuyển đổi mô hình ER thời gian sang mô hình Anchor, bằng cách đề ra các quy tắc chuyển đổi các thành phần trong một mô hình ER thời gian sang mô hình Anchor.
- Từ khóa: Mô hình ER, mô hình ER thời gian, mô hình Anchor, mô hình dữ liệu mức khái niệm.
- GIỚI THIỆ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 dữ 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 dữ 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 đó, các mô hình dữ liệu của kho cần được môđun hóa và linh hoạt để có thể quản lí được sự thay đổi của các thông tin [4].
- Đả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.
- 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ở dữ liệu thông thường.
- Từ những lợi ích này, một bài toán đặt ra đó là: Làm thế nào để có thể thiết kế các mô hình Anchor trên cơ sở kế thừa các mô hình ER thời gian đã được thiết kế từ trước.
- Ngoài ra, việc giải quyết vấn đề này còn giúp chúng ta có được sự đối sánh giữa mô hình ER thời gian và mô hình Anchor.
- Theo đó, bài báo đề xuất một số quy tắc để chuyển đổi các thành phần của mô hình ER thời gian sang mô hình Anchor, là một vấn đề chưa được nhắc đến trong các nghiên cứu trước đây.
- Theo đó, cấu trúc của bài báo ở các phần tiếp theo như sau: Phần II giới thiệu khái quát về mô 444 THIẾT KẾ MÔ HÌNH DỮ LIỆU ANCHOR TỪ MÔ HÌNH THỰC THỂ-MỐI QUAN HỆ CÓ YẾU TỐ THỜI GIAN hình Anchor.
- Tiếp theo, Phần III trình bày các quy tắc chuyển đổi từ mô hình ER thời gian sang mô hình Anchor.
- GIỚI THIỆU KHÁI QUÁT 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ơ đồ) các 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 dữ 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 [3].
- 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ộc tính (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 này tạo ra sự 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 một neo thì đồng nghĩa với việc bổ sung/loại bỏ một bảng tương ứng có liên kết đến neo đó, nhờ vậy mà không ảnh hưởng đến cấu trúc dữ liệu của mô hình vật lý.
- 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ị dữ 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 [3].
- Biểu diễn các thành phần của mô hình Anchor trong sơ đồ lớp UML [3] 1.
- Nút thắt 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ử dụ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ể.
- Một nút thắt K là một tập con của I D, trong đó dữ liệu trên miền D đã định sẵ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 tính tĩnh có nút thắt và thuộc tính có yếu tố thời gian có nút thắt.
- 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 thuộc tính có yếu tố thời gian là tập con của I D 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 2c.
- Các ví dụ về 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) nút thắt GIO_GIOITINH.
- Một thuộc tính tĩnh có nút thắt là tập con của I × I.
- Một ví dụ về thuộc tính nút thắt tĩnh là thuộc tính GV_GIO_GIAOVIEN_GIOITINH có nút thắt GIO_GIOITINH.
- Một thuộc tính có yếu tố thời gian có nút thắt là tập con của I × I × T.
- 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 vai trò neo có kiểu dữ liệu là kiểu của neo tương ứng.
- 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.
- Mối quan hệ R có yếu tố thời gian T 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 T.
- n và một điểm thời gian p, với là tập thực thể, I, p T và n ≥ 2.
- Mối quan hệ có yếu tố thời gian có nút thắt R(TK) là một tập hợp gồm có ít nhất hai tập thực thể, một hoặc nhiều vai trò nút thắt và loại thời gian T.
- m và điểm thời gian p, trong đó là vai trò neo, là vai trò nút thắt, I, I, p T, n ≥ 2 và m ≥ 1.
- Ví dụ về mô hình Anchor 446 THIẾT KẾ MÔ HÌNH DỮ LIỆU ANCHOR TỪ MÔ HÌNH THỰC THỂ-MỐI QUAN HỆ CÓ YẾU TỐ THỜI GIAN Hình 3 là một ví dụ về mô hình Anchor gồm hai neo GV_GIAOVIEN và 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.
- CHUYỂN ĐỔI MÔ HÌNH ER THỜI GIAN SANG MÔ HÌNH ANCHOR Trong bài báo này chúng tôi đề xuất một phương pháp chuyển đổi mô hình ER thời gian thành mô hình Anchor gồm 2 giai đoạn, giai đoạn 1 nhằm chuyển đổ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 Anchor, giai đoạn 2 là để 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 Anchor.
- Chuyển đổ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 Anchor: Quy tắc 1: Chuyển đổi mỗi tập thực thể E không có yếu tố thời gian của mô hình ER thời gian thành neo A(E) của mô hình Anchor.
- Lưu ý rằng neo A(E) chỉ bao gồm một trường khóa ID(A(E)) theo qui định của mô hình Anchor, còn việc chuyển đổi các thuộc tính của tập thực thể E là liên quan đến Qui tắc 2.
- Quy tắc 2: Chuyển đổi mỗi thuộc tính không có yếu tố thời gian và không phải là khóa của tập thực thể E trong mô hình ER thời gian thành một thuộc tính tương ứng của neo A(E) trong mô hình Anchor.
- Trong mô hình Anchor thì một thuộc tính sẽ tạo thành một bảng riêng lẻ, điều này sẽ giúp cho dữ liệu trong bảng tránh được giá trị null nhằm khắc phục được vấn đề dữ liệu trống.
- Dữ liệu minh họa cho thuộc tính GV_HTE_GIAOVIEN_HOTEN Ngoài ra với các thuộc tính có sự trùng lặp về dữ liệu, ví dụ như thuộc tính GIOITINH thì khi chuyển đổi sang mô hình Anchor sẽ có thêm các nút thắt.
- Dữ liệu minh họa cho thuộc tính GV_GIO_GIAOVIEN_GIOITINH và nút thắt GIO_GIOITINH Quy tắc 3: Chuyển đổi mỗi mối quan hệ R không có thuộc tính và không có yếu tố thời gian trong mô hình ER thời gian thành một mối quan hệ tương ứng của mô hình Anchor.
- Chẳng hạn, một mối quan hệ nhị nguyên R giữa hai tập thực thể E1 và E2 trong mô hình ER khi chuyển thành mối quan hệ T(R) trong mô hình Anchor là một bảng dữ liệu gồm hai cột ID(A(E1)) và ID(A(E2.
- Các mối quan hệ đa nguyên/phản xạ không có thuộc tính và không có yếu tố thời gian cũng được thực hiện tương tự.
- Quy tắc 4: Việc chuyển đổi mối quan hệ R không có yếu tố thời gian và có tập thuộc tính X giữa các tập thực thể E1, E2.
- En trên mô hình ER thời gian sang mô hình Anchor được thực hiện như sau.
- Tạo n mối quan hệ A(Ri) giữa A(R) với các A(Ei), i=1.
- 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 Anchor: Quy tắc 5: Chuyển mỗi tập thực thể E có yếu tố thời gian T của mô hình ER thời gian thành neo A(E) kèm thuộc tính thời gian HA(ET) của neo A(E) có kiểu BIT để xác thực thời gian mà thực thể tồn tại hay không.
- Chẳng hạn, với tập thực thể GIAOVIEN có trong Hình 4 yêu cầu có hỗ trợ yếu tố thời gian sống LS (Life Span), khi chuyển sang mô hình Anchor cần tạo thêm thuộc tính thời gian GV_HGV_GIAOVIEN_HISTORIZEDGV của neo GV_GIAOVIEN như trong Hình 3.
- Quy tắc 6: Chuyển đổi mỗi thuộc tính có yếu tố thời gian của tập thực thể E trong mô hình ER thời gian thành thuộc tính thời gian tương ứng của neo A(E) trong mô hình Anchor.
- Quy định của mô hình Anchor thì dữ liệu của các thuộc tính có yếu tố thời gian sẽ có thêm cột thời gian để lưu trữ thời gian thay đổi của thuộc tính.
- Dữ liệu minh họa cho thuộc tính có yếu tố thời gian GV_LUO_GIAOVIEN_LUONG Qui tắc 7: Chuyển đổi mỗi mối quan hệ không có thuộc tính và có yếu tố thời gian trong mô hình ER thời gian thành mối quan hệ thời gian tương ứng của mô hình Anchor.
- Ví dụ, mối quan hệ nhị nguyên DAY có yếu tố thời gian trong Hình 4 được chuyển thành mối quan hệ GV_DAY_MH_LA trong mô hình Anchor.
- Khi đó trên mô hình Anchor, dữ liệu của mối quan hệ GV_DAY_MH_LA sẽ bao gồm các cột là khóa của các neo GV_GIAOVIEN và MH_MONHOC, kèm cột thời gian để lưu trữ thời gian thay đổi của mối quan hệ.
- Dữ liệu minh họa cho mối quan hệ có yếu tố thời gian GV_DAY_MH_LA Điều này cũng được thực hiện tương tự đối với các mối quan hệ đa nguyên/phản xạ không có thuộc tính và có yếu tố thời gian.
- Quy tắc 8: Chuyển đổi mối quan hệ R có yếu tố thời gian T và có tập thuộc tính X giữa các tập thực thể E1, E2.
- En từ mô hình ER thời gian sang mô hình Anchor sẽ được thực hiện như sau.
- Tạo neo A(R) để biểu diễn mối quan hệ R kèm thuộc tính thời gian HA(RT) của neo A(R) có kiểu BIT để xác thực thời gian mà thực thể tồn tại hay không.
- Mỗi thuộc tính của X được ánh xạ thành một thuộc tính của neo A(R) (sử dụng Quy tắc 2 hoặc Quy tắc 6.
- Cụ thể, mô hình ER thời gian đầu vào được cho như trong Hình 8.
- Trong ví dụ này tập thực thể GIAOVIEN, thuộc tính LUONG và mối quan hệ DAY là có yếu tố thời gian.
- Sau khi lần lượt áp dụng các quy tắc có trong Phần III, ta thu được mô hình Anchor kết quả chính là mô hình có trong ví dụ của Hình 3.
- Đồng thời xuất code trên SQL server chúng ta thu được mô hình cơ sở dữ liệu quan hệ như Hình 9.
- 448 THIẾT KẾ MÔ HÌNH DỮ LIỆU ANCHOR TỪ MÔ HÌNH THỰC THỂ-MỐI QUAN HỆ CÓ YẾU TỐ THỜI GIAN Trong Hình 9, chúng ta lưu ý rằng, nếu theo yêu cầu của thế giới thực, giả sử ta cần bổ sung một thuộc tính của neo MONHOC thì cũng có nghĩa là ta sẽ bổ sung thêm một bảng dữ liệu kết nối với bảng MONHOC.
- Tương tự, nếu ta cần xóa bớt một thuộc tính của neo GIAOVIEN thì đồng nghĩa với việc xóa bảng dữ liệu tương ứng kết nối với bảng GIAOVIEN.
- Một ví dụ về mô hình ER thời gian đầu vào của phương pháp chuyển đổi Hình 9.
- Mô hình cơ sở dữ liệu quan hệ kết quả V.
- KẾT LUẬN Trong bài báo này chúng tôi đã giới thiệu sơ lược về mô hình Anchor và lợi ích của việc sử dụng mô hình Anchor trong giai đoạn thiết kế cơ sở dữ liệu mức khái niệm.
- Đối với mô hình Anchor việc xóa hay bổ sung, sửa đổi các tập thực thể/thuộc tính/mối quan hệ trở nên đơn giản bởi vì chúng hoàn toàn độc lập với nhau.
- Hơn thế nữa các yếu tố thời gian trong mô hình cũng được quản lí rất dễ dàng.
- Từ đó chúng tôi xây dựng nên các quy tắc chuyển đổi để chuyển đổi các thành phần của mô hình ER thời gian sang mô hình Anchor.
- Từ hướng nghiên cứu này, chúng tôi xác định hướng nghiên cứu tiếp theo là xây dựng một phương pháp chuyển đổi mô hình Anchor sang OWL ontology nhằm kế thừa các hệ thống cũ thay vì phải thiết kế các ontology từ đầu.
- Hoàng Quang, Giáo trình Cơ sở dữ liệu thời gian, Nhà xuất bản Đại học Huế, 2016