Nhƣ trong hình 2.2 đối với các phần mềm phát triển theo kiểu on-premises model thì chi phí bỏ ra sẽ tập trung vào việc thêm các tính năng mới, trong khi phần mềm thiết kế theo kiểu on-demand model để làm giảm tổng chi phí sẽ tập trung vào việc giảm chi phí cho việc thêm tính năng mới. Lý do chính của điều này chính là các nhà cung cấp dịch vụ sẽ chịu chi phí vận hành và định kì mua bản quyền và cập nhật tính năng mới cho ngƣời thuê. Điều này có lợi hơn một cách rõ ràng nhƣ sau: Ví dụ có 10 khách hàng sử dụng phần mềm theo mô hình on-premised khi có cả 10 khách hàng này cùng có yêu cầu nâng cấp phần mềm khi đó cả 10 khách hàng đều mất chi phí. Nếu sử dụng mô hình SaaS thì bên cung cấp dịch vụ chỉ cần nâng cấp phiên bản một lần do vậy chi
Giải pháp đặt ra là hợp nhất các khách hàng vào cùng một hệ thống hoạt động . Số lƣợng các hợp nh ất phụ thuộc vào độ phƣ́c tạp của ứng dụng . Có thể hình dung qua hình 2.3 Với ứng dụng Email có thể tích hợp đƣợc 10,000 bên thuê, trong khi đó ứng dụng ERP chỉ tích hợp đƣợc khoảng 10 bên thuê [17].
Hình 2. 3. Sƣ̣ phƣ́c tạp của ứng dụng
2.3.1 Ưu và nhược điểm của kĩ thuật dùng bảng riêng
Nhƣ đã trình bày ở phần trên với mỗi một bên thuê trong một lĩnh vực khác nhau thì sẽ cung cấp cho bên thuê đó một thể hiện của cơ sở dữ liệu. Điều này giúp cho mỗi một bên thuê có một sƣ̣ cô lập rõ ràng về m ặt dƣ̃ liệu quan tr ọng. Việc thƣ̣c thi nhƣ̃ng truy vấn chỉ cần thay đổi lại tên bảng sao cho phù hợp với bên thuê đó.
Đối với phƣơng pháp này sẽ gặp những khó khăn là mức độ chia sẻ thấp, chính điều đó đã vi phạm với yêu cầu đặt ra. Hơn nƣ̃a với cách tiếp cận này thì số lƣợng các bảng cũng tăng lên một cách nhanh chóng , đi cùng với nó là số lƣợng bộ nhớ sƣ̉ dụng sẽ tỉ lệ thuận với số bên thuê sƣ̉ dụng phần mềm . Ví dụ nếu có 1000 ngƣời sử dụng phần mềm tƣơng ứng sẽ có 1000 bảng riêng đƣợc tạo ra.
2.3.2 Ưu và nhược điểm của kĩ thuật dùng bảng mở rộng
Với kĩ thuật ánh xạ lƣợc đồ dùng bảng mở rộng có một ƣu điểm là sẽ tiết kiệm bộ nhớ hơn so với kĩ thu ật dùng bảng riêng. Bởi vì nhiều bên thuê làm cùng một lĩnh vƣ̣c có thể dùng chung một bảng này . Với cách làm này s ẽ tăng tính hợp nhất hơn phƣơng pháp ánh xạ lƣợc đồ dùng bảng riêng. Tuy nhiên số lƣợng bộ nhớ sƣ̉ dụng vẫn tăng lên nhanh.
2.3.3 Ưu và nhược điểm của kĩ thuật dùng bảng phổ quát
Với hƣớng tiếp cận này thì cột thƣ́ n trong bảng logic của mỗi bên thuê sẽ đƣợc liên kết với cột thƣ́ n trong bảng ph ổ quát. Kết quả là, ngƣời thuê dịch vụ khác nhau có thể mở rộng cùng một bảng theo những cách khác nhau. Ƣu điểm của phƣơng pháp chính là sự hợp nhất cao và có kh ả năng mở rộng khi các bên thuê hoạt động trong các lĩnh vực khác nhau. Dung lƣợng bộ nhớ trong phƣơng pháp dùng bảng phổ quát so với hai kĩ thuật bảng mở rộng và bảng riêng là nhỏ hơn.
Nhƣợc điểm là rất nhiều giá trị NULL đƣ ợc tạo ra. Giá trị NULL đem lại rất nhiều bất lợi
Gây ra lỗi hệ thống khi thiết kế chƣơng trình Câu Sql trả về dƣ̃ liệu không chính xác
Ngoài ra, với phƣơng pháp này kiểu của các cột trong cơ sở dữ liệu không tƣờng minh toàn bộ là loại VARCHAR. Điều này gây ra những bất lợi trong quá trình xây dựng và thực thi. Với phƣơng pháp này thì không hỗ trợ chỉ mục (index).
2.3.4 Ưu và nhược điểm của kĩ thuật XML in DB2
Đối với phƣơng pháp này thì gặp một số thuận lợi vì XML rất mềm dẻo . Nó là ngôn ngƣ̃ tƣ̣ định nghĩa . Do vậy rất phù hợp cho việc mở rộng . Ví dụ khi tenant A muốn quản lý về sách có thể xây dựng cấu trúc bảng nhƣ sau:
Bảng 2. 9 Bảng cơ sở dữ liệu theo phƣơng pháp XML
Tenant_id ID NAME Ext_XML
17 1 LOAN <ext> <item_name>Programing C# </item_name></ext> <ext><author>Bingade</author></ext>
<ext><page>50</page></ext>
17 2 LOAN <ext> <item_name>Programing C++ </item_name></ext> <ext><author>Bingade</author></ext>
<ext><page>52</page></ext>
17 3 LOAN <ext> <item_name>Programing VB </item_name></ext> <ext><author>APTECH</author></ext>
Tƣơng tƣ̣ nhƣ vậy một tenant B muốn quản lý về giày dép có thể xây dựng cấu trúc bảng nhƣ sau :
Bảng 2. 10. Bảng cơ sở dữ liệu theo phƣơng pháp XML
Tenant_id ID NAME Ext_XML
42 1 B <ext> <item_name>ABC </item_name></ext> <ext><color>Green</color></ext>
<ext><size>M</size></ext>
42 2 C <ext> <item_name>ABCD </item_name></ext> <ext><color>Green</color></ext>
<ext><size>M</size></ext>
Tƣ̀ ví dụ trên ta thấy hai bên thuê quản lý về hai lĩnh vƣ̣c khác nhau có cùng một cấu trúc bảng nhƣ nhau. Do vậy với phƣơng pháp này có sự hợp nhất rất cao . Và có sự mở rộng phù hợp với kiến trúc đa bên thuê.
Tuy nhiên với cấu trúc này thì rƣờm rà trong thiết kế logic . Hơn nƣ̃a dƣ̃ liệu sẽ tăng lên một cách nhanh chóng . XML là một dƣ̃ liệu phân cấp không phù hợp với dƣ̃ liệu quan hệ.
2.3.5 Ưu và nhược điểm của kĩ thuật dùng bảng trục
Với phƣơng pháp này thì giới hạn đƣợc các giá trị NULL, các cột có kiểu xác định. Mặc dù cả hai kĩ thuật bảng trục và bảng phổ quát đều dựa trên ý tƣởng của mô hình Decomposed Storage Model [17]. Nhƣng so sánh hai kĩ thuật thì bảng trục có một ƣu điểm nổi trội có hỗ trợ chỉ mục (index) một cách hiệu quả hơn. Cụ thể nhƣ sau: Nếu trong tập mô hình dữ liệu của mình quản lý nhiều kiểu dữ liệu nhƣ kiểu Integer, String, Vachar, Datetime,… Mình có thể tạo ra một số bảng trục khác nhau. Do đó việc tạo ra chỉ mục (index) theo mong muốn để tăng hiệu quả thực thi cũng mang lại hiệu quả hơn. Tuy nhiên với phƣơng pháp này sẽ tạo ra nhiều dữ liệu meta-data hơn là dữ liệu thực và hiệu suất thực thi phụ thuộc rất lớn vào số cột đƣợc chọn.
2.3.6 Ưu và nhược điểm của kĩ thuật dùng bảng đoạn
Đối với kĩ thuật dùng bảng đoạn sẽ có một vài ƣu điểm so với dùng bảng trục sẽ làm giảm tỉ lệ meta-data so với dữ liệu thực. So với kĩ thuật dùng bảng mở rộng sẽ có lợi hơn do có tiện ích thêm các chỉ mục (index). Hơn nữa sẽ có lợi khi khai báo độ dài của
các cột trong bảng là tƣờng minh). Với kĩ thuật này rất thích hợp nếu số liệu có thể đƣợc phân thành các tập con dày đặc. Tuy nhiên với kĩ thuật này sẽ ảnh hƣởng đến hiệu suất của toàn bộ quá trình vì có sự phức tạp ở lớp truy vấn.
2.4 Tổng kết chƣơng
Trong chƣơng 2 đã trình bày một số kĩ thuật ánh xạ lƣợc đồ – schema mapping techniques để phù hợp trong tính toán đám mây. Với mỗi công nghệ đều có ƣu và nhƣợc điểm riêng, tùy vào từng ứng dụng mà có thể áp dụng một công nghệ có thể là dùng bảng riêng, dùng bảng mở rộng hay bảng đoạn,… Để đạt đƣợc hiệu suất cao trong khi thực thi, cũng nhƣ giảm toàn bộ chi phí trong toàn bộ quá trình, và quan trong hơn là mang lại lợi ích cho doanh nghiệp.
CHƢƠNG 3 SO SÁNH MỘT SỐ KĨ THUẬT ÁNH XẠ LƢỢC ĐỒ CƠ SỞ DƢ̃ LIỆU
Chương 3 trình bày hiệu suất thực thi truy vấn khi xây dựng cơ sở dữ liệu theo ba kĩ thuật ánh xạ lược đồ cơ sở dữ liệu dùng bảng trục, bảng đoạn, bảng phổ quát. Đưa ra những đánh giá đối với từng phương pháp.
3.1 Mô tả bài toán
Ƣu điểm của tính toán đám mây đó chính là sƣ́c mạnh trong việc dùng chung tài nguyên và sƣ́c mạnh tính toán. Với những kĩ thuật ánh xạ đã nêu ở chƣơng 2 phần nào giải quyết đƣợc những vấn đề đặt ra trong tính toán đám mây. Với ý tƣởng chính của các kĩ thuật ánh xạ là hợp nhất nhi ều mô hình nghiệp vụ của đa ngƣời thuê vào trong cùng một cơ sở dữ liệu để làm giảm chi phí hoạt động. Dựa trên ý tƣởng đó trong chƣơng này sẽ đánh giá hiệu suất hoạt động của ba phƣơng pháp sử dụng ba kĩ thuật ánh xạ lƣợc đồ sử dụng bảng phổ quát và bảng đoạn, bảng trục thông qua bài toán quản lý.
Một cơ sở dữ liệu đƣợc gọi là mềm dẻo nếu nó thỏa mãn hai mong đợi sau: Có khả năng phục vụ đƣợc nhiều bên thuê.
Thứ hai, xây dựng cơ sở dữ liệu một cách “động” từ lƣợc đồ cơ sở để sao cho việc mở rộng có thể thực hiện đƣợc khi hệ thống đang hoạt động.
Với kĩ thuật ánh xạ lƣợc đồ dùng bảng riêng và bảng mở rộng cấu trúc lƣợc đồ đã đƣợc xây dựng định nghĩa một cách rõ ràng trong DDL [16]. Hai phƣơng pháp này có hiệu suất tốt, tuy nhiên hai phƣơng pháp trên chỉ phù hợp với các bài toán ứng dụng nhỏ nhƣ Email, Collaboration. Vậy với phƣơng pháp mà ở đó lƣợc đồ đƣợc xây dựng trong một cấu trúc chung nhƣ phƣơng pháp ánh xạ lƣợc đồ dùng bảng phổ quát và bảng đoạn, bảng trục thì hiệu suất sẽ nhƣ thế nào?.
Ngữ cảnh của bài toán đặt ra nhƣ sau: Khi một doanh nghiệp phát triển một phần mềm quản lý trong môi trƣờng tính toán đám mây, điều quan trọng họ phải thiết kế một cơ sở dữ liệu thỏa mãn đƣợc hai mong đợi ở trên. Hiện tại bài toán đƣợc xây d ựng khi khách hàng làm trong các lĩnh vực sau : Quản lý sách , quản lý giày, quản lý máy ảnh , quản lý màn hình máy tính . Mỗi khách hàng đều có nhƣ̃ng thuộc thính chung là quản lý tên sản ph ẩm, giá cả,… Tuy nhiên còn một số thuộc tính mà mỗi khách hàng làm trong một lĩnh vƣ̣c muốn quản lý riêng . Ví dụ khách hàng quản lý giày muốn quản lý các thuộc tính nhƣ trong hình 3.1 (a). Trong khi khách hàng quản lý sách lại muốn quản lý các thuộc tính nhƣ trong hình 3.1(b). Tƣơng tự nhƣ vậy khách hàng quản lý màn hình máy tính muốn quản lý các thuộc tính trong hình 3.1 (c). Khách hàng quản lý máy tính muốn quản lý một số thuộc tính nhƣ hình 3.1 (d).
Phạm vi bài toán quản lý đặt ra đã phần nào giải quyết đƣợc hai vấn đề khá quan trọng trong tính toán đám mây. Thứ nhất, giải quyết đƣợc vấn đề chia sẻ tài nguyên cụ thể ở đây là chia sẻ bảng trong cơ sở dữ liệu. Thứ hai, không mất tính riêng của mỗi tenant cụ thể ở đây là khả năng quản lý trong các lĩnh vực khác nhau khi sử dụng phần mềm SaaS.
Hình 3.1. Một số thuộc tính quản lý
Bài toán dựa trên mô hình nghiệp vụ sau: lƣợc đồ cơ sở cho bài toán gồm khoảng 8 bảng dựa trên mô hình nghiệp vụ nhƣ hình bên dƣới. Thông thƣờng mỗi bảng trong lƣợc đồ cơ sở sẽ có cột tenant_id để có thể chia sẻ giữa các bên thuê với nhau.
Shoes Management Item name Price Color Unit Trademark (a) Books Management Item name Price Page Unit Publisher (b) Screens Management Item name Price Screen size Color Unit Trademark (c) Cameras Management Item name Price Color Weight Trademark Image sensor Storage media Sensitivity Operating temperature Number of effective pixel Aperture File format Accessories included Operating huminity Unit LCD morniter (d)
Hình 3. 2 Mô hình nghiệp vụ nền tảng
Trong mỗi phƣơng pháp, mỗi bảng có khoảng trên dƣới 10 cột tƣơng ứng với các thuộc tính cần quản lý. Mỗi một bảng đều có một khóa chính, và một chỉ mục tƣơng ứng với các khóa chính đó. Đặc biệt trong phƣơng pháp ánh xạ lƣợc đồ dùng bảng đoạn, và bảng trục có thêm một chỉ mục. Trong quá trình thực nghiệm sẽ đánh giá khi phƣơng pháp ánh xạ lƣợc đồ dùng bảng đoạn có thêm chỉ mục và không có chỉ mục.
3.1.1 Mô hình lƣợc đồ cơ sở dữ liệu với kĩ thuật ánh xạ bảng phổ quát
Ngoài những bảng tập trung vào mô hình nghiệp vụ nhƣ: bảng lƣu trữ thông tin của các bên thuê, bảng lƣu trữ các thông tin của khách hàng, hóa đơn,…phƣơng pháp ánh xạ lƣợc đồ sẽ tập trung vào bảng quản lý các mặt hàng t_item. Nhƣ đã đề cập ở trên, với mỗi bảng đều có thêm thuộc tính tenant_id để giúp việc quản lý các bản ghi một cách rõ ràng.
Lƣợc đồ hình 3.3 bên dƣới tập trung vào bảng t_item. Với cấu trúc bảng hiện tại thì số lƣợng cột ColN đang dừng lại ở col20. Tùy vào phạm vi bài toán quản lý khác nhau sẽ có thể thêm vào rất nhiều cột kiểu này. Các cột này đều có kiểu VARCHAR và kích cỡ là 200.
ORDER ORDERLINE ITEM
NEWORDER CUSTOMER STOCK
Hình 3.3. Lƣợc đồ cơ sở dữ liệu với phƣơng pháp ánh xạ bảng phổ quát
3.1.2 Mô hình lƣợc đồ cơ sở dữ liệu với kĩ thuật ánh xạ bảng đoạn
Với phƣơng pháp này số lƣợng bảng t_item xây dựng theo phƣơng pháp ánh xạ lƣợc đồ dùng bảng đoạn có thể nhiều hơn một. Tuy nhiên trong phạm vi quản lý nhỏ lƣợc đồ cơ sở dữ liệu của bài toán sẽ nhƣ hình 3.4. Bảng t _item trong lƣợc đồ hình 3.4 tƣơng đối đơn giản tập trung vào hai cột intdata int(11) và stringdata varchar(500) dùng để lƣu trữ toàn bộ các giá trị của các lĩnh vực quản lý nhƣ đã giới thiệu ở trên (quản lý sách, quản lý máy ảnh, quản lý màn hình, quản lý giày). Hai cột row và chunk
giúp định vị dữ liệu đúng với bản ghi thực tế và giúp c ho hệ quản trị cơ sở dƣ̃ liệu không bị mất kiểm soát khi bảng bị thay đổi cấu trúc – data reconstruct.
Hình 3. 4. Lƣợc đồ cơ sở dữ liệu sử dụng phƣơng pháp ánh xạ dùng bảng đoạn
3.1.3 Mô hình lƣợc đồ cơ sở dữ liệu với kĩ thuật ánh xạ bảng trục
Với phƣơng pháp này số lƣợng bảng t_item xây dựng theo phƣơng pháp ánh xạ lƣợc đồ dùng bảng trục có thể nhiều hơn hai bảng. Ví dụ trong bài toán cần quản lý đến ngày tháng thì có thể thêm một bảng quản lý t_item_date liên quan đến ngày tháng. Trong phạm vi đặt ra của bài toán hiện tại lƣợc đồ cơ sở dữ liệu chỉ dừng lại ở hai bảng t_item_str và t_item_int. Với mỗi bảng t_item_str và t_item_int sẽ lƣu trƣ̃ kiểu dƣ̃ liệu tƣơng ƣ́ng với kiểu của dƣ̃ liệu.
Hình 3. 5. Lƣợc đồ cơ sở dữ liệu sử dụng phƣơng pháp ánh xạ dùng bảng trục
3.2 Môi trƣờng thƣ̣c nghiệm Môi trƣờng 1: Môi trƣờng 1:
Máy đóng vai trò client và sever đƣợc cài hệ điều hành Win7, 32 bits, bộ vi xử lý intel core i3, chip 2.4GHz, Ram 2GB.
Trên máy Server có cài Hệ quản trị cơ sở dữ liệu Mysql 5.5.16 và cài đặt ba lƣợc đồ cơ sở dữ liệu hình 3.3, hình 3.4 và hình 3.5.
Môi trƣờng 2:
Máy đóng vai trò server – cài đặt ba lƣợc đồ cơ sở dữ liệu hình 3.3, hình 3.4 và hình 3.5 có cấu hình nhƣ sau: intel core i3, chip 2.4GHz, Ram 2GB
Máy đóng vai trò client cài hệ điều hành Win7, 32 bits, bộ vi xử lý intel core i3, chip 2.4GHz, Ram 2GB. Máy này đƣợc kết nối với máy server thông qua đƣờng truyền mạng.
3.3 Kịch bản định lƣợng ba phƣơng pháp
Ngƣời dùng hay các bên thuê sẽ tƣơng tác với dịch vụ thông qua một phần mềm đƣợc xây dựng và cài đặt ở trên máy tính của bên thuê – trong môi trƣờng thực nghiệm của bài toán là máy tính đóng vai trò client. Cơ sở dữ liệu đƣợc đặt trên một host riêng – máy server. Mỗi một bên thuê khi sử dụng phần mềm tƣơng ứng với một phiên thao tác với cơ sở dữ liệu.
Với mỗi phƣơng pháp dùng các kịch bản sau để xác định thời gian đáp trả của ba kĩ thuật ánh xạ lƣợc đồ.
SELECT 1: Chọn toàn bộ các thuộc tính của 1 bản ghi trong cơ sở dữ liệu SELECT 500: Chọn toàn bộ các thuộc tính của 500 bản ghi trong cơ sở dữ liệu UPDATE 1: Cập nhật một số các thuộc tính của 1 bản ghi trong cơ sở dữ liệu