DB2Express-C10: Mang lạinhiềugiátrịhơn
Bằng cách nào mà DB2Express-C tránh trở thành crippleware
Tính đến năm 2012 thì các phiên bản miễn phí của những sản phẩm thương mại vẫn không có
thay đổi gì đáng kể. Phong trào nguồn mở đã tạo nên nhu cầu sử dụng phần mềm miễn phí, và
nhiều nhà cung cấp đã đáp ứng bằng cách phát hành các phiên bản "không thu phí" (các luật sư
không thích dùng từ "miễn phí" vì một lý do nào đó) của các sản phẩm thương mại của họ. Điều
này thật không dễ dàng gì. Bởi vì nếu tất cả đều miễn phí như vậy thì ta dại gì mà trả hàng trăm
ngàn hay thậm chí hàng triệu đô-la để mua những sản phẩm tương tự?
Để bảo vệ doanh thu từ các sản phẩm hiện có, những nhà cung cấp đã hạn chế nhiều tính năng
trong các phiên bản không thu phí của họ. Thậm chí các phiên bản này còn được gọi là
"crippleware - các phần mềm bị khuyết tật". Ví dụ điển hình là DBMS miễn phí của Oracle và
Microsoft. Cả ấn bản Oracle Express và Microsoft SQL Server Express đều có các khả năng như
bản thương mại. Song, để bảo vệ doanh thu, Oracle và Microsoft đã hạn chế nhiều tính năng
trong việc sử dụng bộ nhớ, tận dụng sức mạnh xử lý và tính sẵn sàng đáp ứng. Những hạn chế
này, mặc dù là nhược điểm, là những cách khá hợp lý để hạn chế hiệu năng của các DBMS mà
không làm tê liệt các chức năng của nó. Tuy nhiên, cả hai nhà cung cấp đã chọn cách hạn chế
khắt khe số lượng dữ liệu mà DBMS phiên bản miễn phí của họ có thể quản lý. Oracle hạn chế
Oracle XE còn 11GB dữ liệu và Microsoft SQL Server hạn chế ở mức 10GB.
Có phải DB2Express-C khác biệt với các DBMS thương mại miễn phí?
DB2 Express-C đã có một chiến lược khác. Chúng tôi thấy rằng con đường mà chúng tôi đã chọn
mặc dù có thể manglại rủi ro cho IBM nhưng lại phục vụ tốt hơn cho khách hàng của chúng tôi.
(Nếu người ta không trả tiền, thì họ vẫn còn là khách hàng của bạn chứ? Chúng tôi nghĩ như vậy
đấy). Chiến lược này giúp cho các nhà phát triển ứng dụng có thể sử dụng tất cả tính năng của
DB2 mà không có bất kỳ hạn chế nào. Khi xây dựng ứng dụng bằng DB2 Express-C, bạn có thể
chắc chắn rằng tất cả giao diện lập trình mà DB2 có đều được cung cấp cho bạn. Bạn cũng sẽ
được đảm bảo rằng mã ứng dụng mà bạn xây dựng bằng DB2Express-C sẽ chạy mà không cần
bất kỳ thay đổi nào trên các hệ điều hành Linux®, UNIX®, Windows® và InfoSphere®
Warehouse của IBM (sản phẩm kho dữ liệu của DB2). Trong hầu hết các trường hợp, điều này
cũng được đảm bảo đối với DB2 cho z/OS® và DB2 trên hệ thống System i®.
Và bởi vì DB2Express-C có chứa mã giống như các phiên bản thương mại của DB2 cho Linux,
UNIX và Windows, bạn có thể chắc chắn rằng ứng dụng của bạn sẽ hành xử chính xác như nhau
khi chạy với các phiên bản thương mại của DB2 giống như khi bạn sử dụng nó với DB2
Express-C miễn phí. Và không giống như Oracle và Microsoft, bạn sẽ không bao giờ bị giới hạn
về số lượng dữ liệu mà DB2Express-C có thể quản lý. Bất cứ ai đã từng bị lỗi ORA-12.592 khi
cơ sở dữ liệu vượt quá kích thước 11GB sẽ hiểu được điều này nguy hiểm như thế nào, đặc biệt
là nếu danh tiếng của bạn đi cùng với khách hàng. Điều này sẽ không xảy ra trên DB2Express-C
và DB2 không bao giờ ngưng làm việc khi bạn vượt quá giới hạn dữ liệu cho phép. Kích thước
của cơ sở dữ liệu mà DB2Express-C có thể quản lý cơ bản là không giới hạn. Nó chỉ bị hạn chế
bởi các nguồn tài nguyên vật lý mà bạn có và điều hạn chế là về hiệu năng chứ không phải về
hoạt động. DB2Express-C sẽ không đưa bạn vào tình thế ứng dụng của bạn ngừng hoạt động vì
giới hạn về giấy phép.
Vì chúng ta đang bàn về chủ đề cơ sở dữ liệu và các tài nguyên, chúng tôi cũng phải chỉ ra rằng
máy chủ DB2Express-C có thể là vật lý hay máy ảo. Hơn nữa, bạn có thể có nhiều cá thể của
DB2 chạy trên một máy chủ duy nhất với từng cá thể có tới 256 cơ sở dữ liệu DB2 tách biệt và
khác nhau. Mỗi cơ sở dữ liệu có thể tiếp tục tách dữ liệu vào các lược đồ 32K. Đây là một khả
năng lớn đối với bất kỳ DBMS thương mại nào và chưa từng có trên thị trường "DBMS miễn
phí".
Nếu DB2Express-C miễn phí mà lại cung cấp nhiều tính năng như thế thì tại sao bạn lại muốn
trả tiền cho các ấn bản Express, Workgroup, Enterprise và Advanced Enterprise của DB2? Hiệu
năng của DBMS phụ thuộc nhiều vào tài nguyên bộ nhớ và bộ vi xử lý có sẵn cho nó. Giátrị của
nó cũng liên quan trực tiếp đến hiệu quả vận hành, bắt nguồn từ các chức năng tiên tiến có sẵn
cho quản trị viên cơ sở dữ liệu để tối ưu hóa hoạt động của DBMS. Có hai hướng đo sự khác biệt
của nhiều ấn bản khác nhau của DB2.
Về đầu trang
Các tài nguyên có sẵn cho DB2Express-C
Trước tiên chúng ta hãy nhìn vào chiều đo về tài nguyên. DB2Express-C có thể được triển khai
trên máy chủ có bất kỳ kích cỡ nào (vật lý hay ảo) với bất kỳ số lượng bộ nhớ nào. Nói cách
khác, sự lựa chọn của bạn về phần cứng của máy chủ để chạy DB2Express-C là không hạn chế
theo bất kỳ cách nào. Tuy nhiên, DB2Express-C sẽ tự điều chỉnh để chỉ sử dụng các nguồn lực
mà nó được phép sử dụng theo các điều khoản trong thỏa thuận cấp phép. Cụ thể, DB2 Express-
C sẽ lên lịch trình thực hiện các nhiệm vụ của DB2 trên hai lõi xử lý bất kể có bao nhiêu lõi xử
lý có trong các máy chủ nơi DB2Express-C đang chạy. Điều này được thực hiện tự động mà
không đặt thêm bất kỳ gánh nặng nào để theo dõi và quản lý sự tuân thủ đối với khách hàng. Nếu
bạn muốn, bạn có thể thay đổi lõi bộ xử lý nào sẽ được DB2Express-C sử dụng. Theo mặc định,
nó sẽ sử dụng hai lõi xử lý đầu tiên, là lõi bộ xử lý số 0 và 1. Sự hạn chế này về sức mạnh CPU
trong DB2Express-C phiên bản 10 là không thay đổi so với các phiên bản trước của DB2
Express-C.
Hướng đo khác chính là bộ nhớ RAM. Ở các phiên bản trước của DB2Express-C tự điều quản
chính mình để tận dụng tối đa 2GB bộ nhớ. Phiên bản 10 của DB2Express-C tăng gấp đôi tối đa
lượng bộ nhớ đến 4GB. Bạn có thể tự hỏi lý do tại sao chúng tôi đã chọn tăng gấp đôi số lượng
bộ nhớ có thể sử dụng trong khi vẫn giữ số lượng lõi xử lý giống như các phiên bản trước.
Chúng tôi thấy rằng bộ nhớ có tác động với hiệu năng lớn hơnnhiều so với công suất của CPU.
Cụ thể, chúng tôi thấy rằng nhiều tải công việc mới chẳng hạn như những công việc liên quan
đến xử lý văn bản và XML thực sự có thể sử dụng thêm bộ nhớ.
Để kết thúc việc xem xét hướng đo tài nguyên, ta hãy xem xét một vài ví dụ. Giả sử bạn có máy
chủ theo kiến trúc x64 với hai bộ vi xử lý lõi tứ và 64GB bộ nhớ. Bạn có thể triển khai DB2
Express-C trên máy chủ này mà không có bất kỳ lo lắng gì về việc tuân thủ giấy phép. DB2
Express-C sẽ sử dụng hai lõi xử lý và để dành sáu lõi còn lại cho các công việc khác như web và
máy chủ ứng dụng hoặc máy chủ tìm kiếm văn bản mới (sẽ bàn thêm về điều này sau). Tương tự
như vậy, DB2Express-C sẽ sử dụng trong 4GB bộ nhớ với 60GB còn lại dành cho công việc
khác.
Câu hỏi về lý do tại sao phải nâng cấp lên các phiên bản thương mại của DB2 có thể vẫn còn
trong tâm trí của bạn. Các phiên bản thương mại của DB2 tận dụng lợi thế có nhiều tài nguyên
của bộ vi xử lý và bộ nhớ hơn. Kết quả là, chúng sẽ cung cấp hiệu năng ở mức cao hơn. Ngoài
ra, các phiên bản thương mại của DB2 cung cấp thêm cho các nhà quản trị cơ sở dữ liệu các chức
năng bổ sung để tối ưu hóa hiệu năng các cơ sở dữ liệu của họ và giảm chi phí vận hành. Ví dụ,
ấn bản thương mại của DB2 cung cấp chức năng nén dữ liệu tiên tiến có thể giảm đáng kể chi
phí lưu trữ đồng thời cũng cải thiện hiệu năng. Đối với khách hàng cần phải quản lý cơ sở dữ
liệu rất lớn, chỉ riêng việc tiết kiệm chi phí lưu trữ thôi cũng sẽ giúp dễ dàng trả được cho các chi
phí giấy phép DB2.
Một ví dụ khác của tính năng giảm chi phí trong các ấn bản thương mại của DB2 là lưu trữ
multi-temperature (là tính năng mới của phiên bản 10.1). Tính năng này cho phép các nhà quản
trị cơ sở dữ liệu đặt dữ liệu thường xuyên được sử dụng và quan trọng (dữ liệu nóng) vào vùng
lưu trữ nhanh hơn chẳng hạn như ổ lưu trữ bán dẫn (SSD) trong khi đặt dữ liệu tham chiếu hoặc
không sử dụng thường xuyên (dữ liệu lạnh) vào vùng lưu trữ rẻ hơn. Cũng giống như trường hợp
nén dữ liệu, hiệu năng được cải thiện và và chi phí lưu trữ giảm có thể bù đắp nhiềuhơn cả chi
phí cho giấy phép DB2.
Ví dụ khác có thể là các bảng truy vấn được cụ thể hoá (MQT). Về cơ bản đây là những truy vấn
phức tạp được tính toán trước có thể cung cấp câu trả lời ngay lập tức cho các câu hỏi mất hàng
giờ để tính toán. Chức năng bộ tập trung kết nối cho phép các quản trị viên cơ sở dữ liệu xử lý tải
công việc cho hàng chục ngàn người sử dụng mà không phải dành tài nguyên máy chủ cơ sở dữ
liệu cho từng người. Điều này cho phép một cá thể cơ sở dữ liệu đơn lẻ xử lý một số lượng lớn
người sử dụng đồng thời. Khả năng này có sẵn trong các phiên bản thương mại của DB2 nhưng
không được cung cấp trong DB2 Express-C. Bảo mật nâng cao là ví dụ khác. Kiểm soát truy cập
dựa trên nhãn (LBAC - Label based access control) và kiểm soát truy cập hàng và cột (RCAC -
row and column access control, tính năng mới trong phiên bản 10.1) cho phép các nhà quản trị
cơ sở dữ liệu cung cấp bảo mật mạnh mẽ hơn và riêng tư của dữ liệu mà không trao gánh nặng
cho các nhà phát triển ứng dụng với các yêu cầu này.
Lưu ý rằng tất cả các chức năng này được thiết kế để giúp các nhà quản trị cơ sở dữ liệu thiết kế
các môi trường cơ sở dữ liệu hiệu năng cao hơn, vận hành ít tốn kém và bảo đảm an toàn hơn.
Đây không phải là một sự trùng hợp ngẫu nhiên, mà là quan điểm về thiết kế. Như chúng tôi đã
đề cập trước đây, trong bài viết này, DB2Express-C cung cấp tất cả các giao diện lập trình của
DB2, cho phép các ứng dụng được xây dựng với DB2Express-C để chạy trên tất cả các ấn bản
của DB2 trong khi cung cấp cho các nhà quản trị cơ sở dữ liệu các chức năng tiên tiến để tối ưu
hóa chi phí và hiệu năng của các ứng dụng này. Chúng ta cũng phải nói rằng DB2Express-C
được hỗ trợ bởi cộng đồng những người sẵn lòng trong khi các ấn bản thương mại của DB2 cung
cấp sự hỗ trợ kỹ thuật bởi nhóm hỗ trợ của IBM trên toàn thế giới.
Về đầu trang
Giao diện lập trình của DB2
Cho đến giờ chúng tôi đã nói về việc DB2Express-C cung cấp tất cả các giao diện của DB2
trong khi có khác biệt về các tài nguyên và các tính năng hoạt động. Bây giờ là lúc để nói về các
giao diện ấy và các cải tiến được đưa ra trong phiên bản 10. Chúng tôi sẽ bắt đầu với một trong
những tính năng độc đáo nhất của DB2, đó là khả năng xử lý dữ liệu XML bằng cách sử dụng
tính năng gọi là pureXML.
Xử lý XML nhanh hơn
Chúng tôi đã coi việc đưa pureXML vào DB2Express-C miễn phí là điều cần thiết. Phiên bản 10
cung cấp các cải tiến trong cách nó xử lý XML được mô tả tốt nhất chỉ bằng một từ duy nhất "tốc
độ". Xử lý XML của DB2 đã luôn luôn nhanh chóng. Trong phiên bản 10, nó thậm chí còn
nhanh hơn nhanh hơn nhiều. Đầu tiên, đó là những cải tiến sâu trong máy xử lý để tăng tốc độ
một số dạng truy vấn XML. Cụ thể, các truy vấn sử dụng hàm XMLTABLE, truy vấn với các vị
từ dùng phép nối ngoài sớm (early-out join), các truy vấn XQuery phi tuyến tính và các truy vấn
với trục cha mẹ. Tính năng tốt nhất là tất cả các cải tiến này cải thiện hiệu năng mà không có bất
kỳ thay đổi nào về API. Bạn tăng hiệu năng chỉ đơn giản bằng cách nâng cấp lên DB2Express-C
phiên bản 10 và mà không phải chạm vào bất kỳ mã ứng dụng nào của bạn.
Một cách khác mà truy vấn XML tăng tốc là thông qua việc bổ sung các chỉ mục mới. Trong
phiên bản 10, bạn có thể định nghĩa các chỉ mục trên các kiểu dữ liệu XML DECIMAL (thập
phân) và INTEGER (số nguyên). Trước DB2 phiên bản 10, bạn bị giới hạn chỉ mục chỉ cho kiểu
DOUBLE, và điều này không cung cấp cho máy xử lý XML nguyên bản của DB2 mọi cơ hội để
đạt được hiệu năng cao nhất có thể. DB2 10 cũng cho phép bạn định nghĩa chỉ mục trên các hàm
XML FN:UPPER_CASE, dẫn đến kết quả tìm kiếm không phân biệt chữ hoa chữ thường nhanh
chóng với các dữ liệu XML của bạn. Các chỉ mục cũng có thể được định nghĩa đối với các hàm
FN:EXISTS, do đó tăng tốc độ truy vấn tìm kiếm một phần tử cụ thể trong cột XML. Một lần
nữa, cần phải chỉ ra rằng không yêu cầu có thay đổi nào đối với mã ứng dụng. Chỉ cần định
nghĩa các chỉ mục mới đó để tăng tốc độ truy vấn hiện có.
Cuối cùng, các lập trình viên Java bây giờ có thể tận dụng lợi thế của định dạng XML nhị phân
(XDBX) nhỏ gọn hơn để tăng tốc độ truyền dữ liệu XML giữa ứng dụng Java và máy chủ DB2
Express-C phiên bản 10.
Tìm kiếm văn bản hiệu quả hơn
Trong DB2, việc tạo ra và duy trì các chỉ mục tìm kiếm văn bản là công việc của dịch vụ tìm
kiếm văn bản, đôi khi có thể là một nhiệm vụ tốn nhiều tài nguyên và có khả năng tiêu thụ các
nguồn tài nguyên trên máy chủ DB2 Express-C. DB2 10 cho phép bạn lưu trú dịch vụ tìm kiếm
văn bản trên máy chủ riêng biệt để nó có được các tài nguyên chuyên dụng và không ảnh hưởng
đến phần còn lại của công việc của DB2. Người sử dụng DB2Express-C có thêm lợi ích bổ
sung. Nếu bạn đang chạy DB2Express-C trên máy chủ với các nguồn tài nguyên ở trên mức có
thể được DB2Express-C sử dụng (2 bộ xử lý lõi và bộ nhớ 4GB) thì bạn có thể sử dụng các tài
nguyên còn thừa ra này cho dịch vụ tìm kiếm văn bản.
Ngoài việc hiệu quả được cải thiện, việc tìm kiếm văn bản của DB2Express-C 10 hỗ trợ tìm
kiếm mờ cũng như tìm kiếm gần kề. Tìm kiếm mờ cho phép bạn tìm thấy văn bản tương tự
(giống như kiểu chức năng Suggests của Google) trong khi tìm kiếm gần kề cho phép bạn đặt
những hạn chế về khoảng cách giữa các chuỗi ký tự bạn đang tìm kiếm. Không giống như các
tính năng khác chúng tôi mô tả cho đến nay, cả tìm kiếm gần kề và tìm kiếm mờ yêu cầu các
thay đổi nhỏ với câu truy vấn.
RDF: Cơ hội hoàn toàn mới cho DB2Express-C
Tính phổ biến của Internet bùng nổ và sự lan truyền các tài nguyên web đã làm cho rất nhiều
người nhận ra nhu cầu có một framework dính kết để quản lý siêu dữ liệu trong biển tài nguyên
rộng lớn như vậy. Ví dụ, trang web đơn giản có thể có tiêu đề, tác giả, ngày tạo và ngày sửa đổi
và các thông tin phụ thêm, tất cả đều có thể có giátrị đáng kể nếu máy tính có khả năng tìm kiếm
và phát hiện các tài nguyên trên web. Khả năng của máy tính có thể sử dụng siêu dữ liệu như vậy
để hiểu thông tin về các nguồn tài nguyên web là ý tưởng đằng sau Semantic Web (Web ngữ
nghĩa).
Framework mô tả tài nguyên (Resource Description Framework-RDF) là tiêu chuẩn W3C để mô
tả các tài nguyên web. RDF mô tả tài nguyên web dưới dạng chủ ngữ-vị ngữ-tân ngữ, ví dụ:
"Leon là người Canada" hoặc "Leon biết Paul". Những kiểu thực thể dữ liệu được thể hiện dưới
dạng chủ ngữ-vị ngữ-tân ngữ được gọi là bộ ba và được lưu trữ trong cơ sở dữ liệu lưu trữ bộ ba
chuyên dùng. DB2Express-C 10 có thể hoạt động như là cơ sở dữ liệu lưu trữ bộ ba nguyên bản,
cung cấp khả năng lưu trữ và truy vấn dữ liệu RDF trong DB2 Express-C. RDF là định dạng dữ
liệu rất đáng chú ý để biểu diễn mối quan hệ như đồ thị xã hội (như các mạng xã hội như
Facebook và Twitter). Bạn của một người bạn (FOAF - Friend of a friend) là dự án tạo ra các
thông tin máy có thể đọc được, miêu tả người và các liên kết giữa họ, và là ví dụ của việc sử
dụng các dữ liệu RDF.
Du hành thời gian qua dữ liệu
Ngày nay, hơn bao giờ hết, có rất nhiều quan tâm trong việc quản lý thời gian như là một chiều
của dữ liệu. Có một số các trình điều khiển nghiệp vụ cho nhu cầu này. Một trong những nhu cầu
như thế xuất phát từ yêu cầu tuân thủ theo rất nhiều quy định của chính phủ và của ngành nghề.
Nhiều yêu cầu tuân thủ xoay quanh yêu cầu giữ lại lịch sử đầy đủ các thay đổi dữ liệu. Nhiều
quy định bắt buộc phải có khả năng trả lời các câu hỏi về tình trạng của doanh nghiệp và các
điểm dữ liệu khác nhau tại một thời điểm. Nhiều tổ chức đòi hỏi khả năng truy vấn và cập nhật
ngày có hiệu lực và thời kỳ hiệu lực cho các hoạt động của họ.
DB2 Express-C 10 đưa vào khả năng quản lý dữ liệu có thời gian được gọi là DB2 Time Travel
Query làm cho quá trình thu thập dữ liệu thay đổi theo thời gian hoặc thiết lập ngày có hiệu lực
và thời kỳ hiệu lực trở thành một quá trình đơn giản đòi hỏi chỉ vài câu lệnh SQL. Trước đây,
việc thêm vào tính năng thời gian sẽ yêu cầu tạo ra trigger và logic phức tạp. Time Travel Query
giúp đơn giản hóa đáng kể quá trình này. Các phép đo của chúng tôi cho thấy rằng DB2 Time
Travel Query có thể giúp giảm công sức đến 45 lần. Đây quả thật là tính năng tốt có trong một
sản phẩm miễn phí.
Xem chi tiết về dữ liệu thời gian và Time Travel Query trong bài viết " Vấn đề thời gian: Quản
lý dữ liệu thời gian trong DB2 phiên bản 10."
Khả năng tương thích với Oracle
Thảo luận về các tính năng lập trình mới sẽ không đầy đủ nếu không đề cập chí ít đến những tính
năng tương thích với Oracle của DB2Express-C 10. Mặc dù chúng tôi đã làm cho khả năng
tương thích với Oracle có sẵn trong DB2Express-C phiên bản 9.7.5, nhiều người sẽ chỉ có
những trải nghiệm đầu tiên với các tính năng này trong phiên bản 10 của DB2 Express-C. Ngoài
ra, trong phiên bản 10, chúng tôi đã tăng cường hơn nữa khả năng tương thích với Oracle để làm
cho nhiềuhơn nữa những ứng dụng được xây dựng cho Oracle chạy dễ dàng trên DB2 với rất ít
thay đổi. Nghiên cứu gần đây cho thấy có tới 98% các mã ứng dụng được viết cho Oracle có thể
được giữ nguyên, và các ứng dụng vẫn sẽ làm việc với DB2 Express-C. Chúng tôi sẽ không đếm
lại tất cả các tính năng tương thích với Oracle của DB2 ở đây, ví có nhiều thông tin có sẵn về chủ
đề này, chẳng hạn như bài viết "DB2 10: Chạy các ứng dụng của Oracle trên DB2 10 cho các hệ
điều hành Linux, UNIX và Windows."
Về đầu trang
Đây là thời điểm tuyệt vời để bắt đầu với DB2Express-C 10
Bây giờ bạn đã thấy tất cả các giátrị mà sản phẩm DB2Express-C 10 mang lại, và nó hoàn toàn
miễn phí. Chúng tôi cũng đã làm mọi thứ để bạn dễ dàng bắt đầu với DB2Express-C 10. Bạn có
thể tải về sản phẩm này tại địa chỉ ibm.com/db2/express. Bạn cũng có thể dùng thử máy chủ
DB2 Express-C chạy trên đám mây trong vòng 30 phút: http://bit.ly/Iv8837. Bạn có thể tìm các
khóa học mới trên trang web DB2University.com, và ở đây có nhiều bài viết và hướng dẫn về
các tính năng mới trong DB2 10. Bây giờ là lúc phải hành động và thử DB2Express-C 10.
. DB2 Express-C 10: Mang lại nhiều giá trị hơn
Bằng cách nào mà DB2 Express-C tránh trở thành crippleware
Tính. điểm tuyệt vời để bắt đầu với DB2 Express-C 10
Bây giờ bạn đã thấy tất cả các giá trị mà sản phẩm DB2 Express-C 10 mang lại, và nó hoàn toàn
miễn phí.