22/08/2018, 11:40

DB2 9 và Microsoft Excel 2007 - Phần 1: Lấy dữ liệu

DB2 - Hệ quản trị cơ sở dữ liệu lớn nhất, mạnh nhất và nhanh nhất trên thế giới hiện nay do IBM phát triển. So với Oracle, đối thủ chính và mạnh nhất của mình, DB2 chưa nổi tiếng bằng. Nhưng tin rằng trong tương lai không xa, DB2 chính là sự lựa chọn tiếp theo ...

DB2 - Hệ quản trị cơ sở dữ liệu lớn nhất, mạnh nhất và nhanh nhất trên thế giới hiện nay do IBM phát triển. So với Oracle, đối thủ chính và mạnh nhất của mình, DB2 chưa nổi tiếng bằng. Nhưng tin rằng trong tương lai không xa, DB2 chính là sự lựa chọn tiếp theo cho thế hệ quản trị cơ sở dữ liệu bên cạnh SQL Server của Microsoft hay Oracle của hãng Oracle. 

Chắc hẳn nhiều bạn đọc của Quantrimang.com sẽ cảm thấy khá bỡ ngỡ với DB2 8.5 hay DB2 9.2. Loạt bài này xin giới thiệu một số phương thức ứng dụng DB2 9 với Microsoft Excel 2007. Hy vọng rằng chúng sẽ hữu ích cho những ai đang quan tâm đến DB2, hệ quản trị tương lai của cơ sở dữ liệu. 

Phần 1: Đưa dữ liệu DB2 9 vào Microsoft Excel 2007 

Để đưa dữ liệu vào tệp Excel 2007 từ DB2 Data Server, bạn cần bắt đầu với một kết nối (database connection). Chức năng này được hỗ trợ trong Excel 2007, ở tab Data (xem hình bên dưới).

Data tab là chức năng mới trong Microsoft Excel 2007. Với Excel 2007, bạn có thể thực hiện rất nhiều chức năng về dữ liệu bên cạnh các thao tác thông thường như định dạng, hiệu chỉnh. Nổi bật nhất là bạn có thể import data (nhập dữ liệu) từ nhiều nguồn khác nhau vào Excel. Để nhập dữ liệu, bạn sử dụng chức năng “Get External Data” (ở khung bên trái của tab Data). Đó chính là chức năng bạn cần khi muốn nhập dữ liệu DB2 9 vào trong một tệp Excel 2007.

Để nhập nội dung dữ liệu của bảng STAFF vào worksheet của một file Excel 2007, thực hiện các bước sau: 

1. Trong tab “Data”, chọn “From Other Sources” > “From Data Connection Wizard” trong khung “Get External Data”:

Như ở hình trên bạn có thể thấy, Excel 2007 hỗ trợ nhập dữ liệu từ nhiều nguồn khác nhau (file sql server, sql server analysis services, xml, Microsoft query) vào worksheet. Nhưng trong khuôn khổ bài báo này, chúng ta sẽ nhập dữ liệu của DB2 9, kiểu data chưa được định nghĩa trong Excel 2007 nên bạn cần chọn “From Data Connection Wizard”. 

2. Cửa sổ “Data Connection Wizard” mở, chọn “Other/Advanced” và kích “Next”.

3. Cửa sổ “Data Link Properties” mở, chọn “IBM OLE DB Provider for DB2” ở “OLE DB provider(s)” và bấm “Next”.

Khi bạn cài DB2 9 client trên máy mình, “OLE DB provider” tương ứng cũng sẽ được tự động cài đặt. Và Excel 2007 sẽ sử dụng thành phần này để lấy dữ liệu từ cơ sở dữ liệu của DB2 về. 

Hình minh họa ở bước 2 hiển thị phương thức để bạn có thể lựa chọn kiểu “ODBC DSN”. Khi nguồn dữ liệu nhập là DB2 database, bạn có thể chọn kiểu cấu hình cơ sở dữ liệu là người dùng (user), hệ thống (system) hay một file DSN sử dụng tiện ích sẵn có của Windows - chức năng Data Source (ODBC). Cơ sở dữ liệu mẫu SAMPLE của tôi được cấu hình là một file DSN hệ thống nên tôi cũng có thể dùng kết nối này để truy vấn dữ liệu thay vì chỉ đưa dữ liệu vào file Excel 2007.

4. Chọn cơ sở dữ liệu bạn muốn kết nối từ hộp “Specify the DB2 database”. Nhập đầy đủ và chính xác thông tin đăng nhập cho cơ sở dữ liệu của bạn vào ô “Log on Information” và kích “Test Connection”.

Nếu cơ sở dữ liệu bạn muốn kết nối không nằm trong loại được xác định trên máy đang chạy Microsoft Excel 2007, bạn có thể tìm kiếm các Data Server tôn tồn tại và database của chúng (cũng như các cổng vào DB2 Connect nếu bạn muốn tạo thêm kết nối DB2 vào máy I hay DB2 cho máy Z) bằng cách sử dụng thành phần “DB2 Discovery” tích hợp trong Excel. Bạn có thể thực hiện một kiểu khác bằng cách chọn nút “Direct server connection” và chọn một cơ sở dữ liệu từ danh sách “Select the database on the server” (háy nhấn nút “Refresh” để update danh sách server và danh sách database mới nhất trước khi lựa chọn).

Hơi ra ngoài phạm trù của bài này một chút, nhưng sẽ tốt hơn khi lưu ý rằng, bạn có thể dùng chức năng “Advance” để thiết lập các thuộc tính nâng cao cho kết nối này. Chẳng hạn thiết lập thời gian chờ cho kết nối với “time-out”, hay tạo một hard-coded password.

5. Kích “OK” khi kết nối thành công. 

DB2 OLE DB Provider thường được tích hợp đầy đủ trong Excel 2007. Chẳng hạn, nếu Excel 2007 không thể kết nối tới cơ sở dữ liệu SAMPLE vì database instance bị down, một thông báo lỗi như bên dưới sẽ được hiển thị:

Nếu cơ sở dữ liệu này đang được dùng (có thể do nó đang ở trạng thái im lặng hoặc một quá trình backup đang được thực hiện), Excel 2007 sẽ hiển thị thông báo lỗi:

6. “Data Connection Wizard” mở. Chọn bảng có dữ liệu bạn muốn import vào Excel 2007 và kích “Next”. Ví dụ, bạn có thể chọn nội dung của bảng STAFF đặt trong cơ sở dữ liệu SAMPLE.

Chú ý: Để tạo cơ sở dữ liệu SAMPLE trong DB2 9, bạn cần nhập câu lệnh db2sampl từ màn hình lệnh Command Prompt của hệ điều hành. 

7. Bạn có thể tùy ý khi lại thông tin cho kết nối này hoặc không. Nhưng sẽ tốt hơn nếu bạn ghi lại để có thể tái sử dụng ở lần sau. Sau đó, kích nút “Finish”.

Nếu bạn không muốn ghi lại kết nối này trong tương lai, đơn giản chỉ cần kích vào nút “Finish” ở bước trước đó. Trong hình trên bạn có thể thấy rằng, tôi đã ghi lại database connection hiện tại (là kết nối duy nhất tới bảng STAFF) để sử dụng cho các lần sau. Bạn có thể tùy ý thêm đoạn mô tả cho đối tượng kết nối này (trong trường “Description”) và tìm kiếm metadata (trong trường “Search Keywords”) nhằm giúp cho các lần truy vấn sau dễ dàng hơn. Cuối cùng, chú ý rằng bạn có thể thiết lập các kiểm soát tốt cho phần authentication bằng cách kích vào “Authentication Settings”. 

8. Cửa sổ “Import Data” mở. Sử dụng cửa sổ này để mô tả nơi dữ liệu sẽ được đặt trong worksheet Excel 2007. Bạn có thể chọn các giá trị mặc định và ấn OK.

Như ở hình trên bạn có thể thấy, nơi lưu trữ dữ liệu DB2 có thể là Table hay Pivot Table Report hoặc cả hai. Tôi sẽ thảo luận về chúng trong bài tiếp theo. (Nếu bạn muốn cấu hình chi tiết hơn các thuộc tính của xâu kết nối, kích vào nút Properties).

Trên worksheet của file Excel 2007 sẽ hiển thị dữ liệu dạng:

Tất nhiên, ở điểm này bạn có thể điểu chỉnh việc hiển thị dữ liệu phù hợp với mình thông qua chức năng formatting hỗ trợ mạnh trong Excel 2007 và áp dụng kiểu Table Style cho dạng bảng từ tab Design. Ví dụ như:

Bạn có thể dùng chức năng “Table Style Options” trong tab Design như:

Khi dữ liệu được tải về Excel 2007, bạn có thể dùng chức năng “External Table Data” trong tab Data để quản lý database connection. Ví dụ, chọn Unlink sẽ phân tách dữ liệu với bảng và biến chúng thành độc lập:

Và bạn có thể lọc nhanh dữ liệu trả về mà không cần phải viết dòng lệnh SQL nào:

Một trong những điểm tôi rất thích ở Excel 2007 là tính năng biểu đồ mạnh. Sử dụng phương thức này bạn có thể dễ dàng biểu thị dữ liệu DB2 9 của mình dưới dạng các biểu đồ.

Ở biểu đồ trên bạn có thể thấy tỷ lệ lương và phần trăm hoa hồng cho 5 nhân viên ở phòng 20. Tất nhiên, chỉ cần bạn không đứt kết nối với tập bản ghi, bạn có thể refresh lại data, biểu đồ sẽ được update ngay lập tức. Ví dụ, chạy lệnh DML sau để thay đổi phần trăm hoa hồng Pernal đạt được (Pernal là một nhân viên trong biểu đồ):

UPDATE TABLE STAFF SET COMM=55565.56 WHERE ID=20

Bây giờ, refresh lại dữ liệu:

Và tất nhiên, dữ liệu cơ sở cũng được update:

Chúng ta hãy cùng suy nghĩ lại về cách thức sử dụng dữ liệu thức phổ biến nhất với Excel: phân dữ liệu vào trong một Data Server không chính thức. Như vậy, nếu dữ liệu thật của bạn thay đổi thì các phân tích của bạn cho dữ liệu thực sẽ là khi nào? Chúng ta hãy cùng chờ câu trả lời ở bài tiếp theo nhé. 

Tóm tắt 

Trong bài này chúng ta đã cùng tìm hiểu cách thức đơn giản và dễ dàng để import dữ liệu DB2 9 vào file Excel 2007. Bên cạnh đó chúng ta cũng biết đến một số thành phần hữu ích để thay đổi cách thức dữ liệu được hiển thị (sử dụng các chức năng khác nhau của Table Tools) cũng như cách tạo một biểu đồ trong Excel và cách refresh lại dữ liệu thực.

0