DB2 9 và Microsoft Excel 2007 - 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 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ư:
The image cannot be display ed. Your computer may not hav e enough memory to open the image, or the image may hav e been corrupted. Restart y our computer, and then open the file again. If the red x still appears, y ou may hav e to delete the image and then insert it again.
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.
s