Các kỹ năng của Kiến trúc sư dữ liệu Rational, Phần 2: Tạo các truy vấn SQL/XML với Kiến trúc sư dữ liệu Rational

Chuyển đổi dữ liệu từ các nguồn dữ liệu quan hệ thành định dạng XML

Bạn có thể sử dụng ngôn ngữ truy vấn SQL/XML để chuyển đổi dữ liệu quan hệ thành định dạng XML. Vì tự tay viết các truy vấn SQL/XML rất tốn công, Kiến trúc sư dữ liệu Rational® của IBM® làm đơn giản hoá công việc này bằng cách tự động tạo ra các truy vấn SQL/XML dựa trên các ánh xạ được định nghĩa bằng đồ họa. Hãy tìm hiểu sơ bộ về thành phần tạo SQL/XML của Kiến trúc sư dữ liệu Rational.

Torsten Bittner, Kỹ sư phần mềm, IBM

Torsten Bittner làm việc như một kỹ sư phần mềm trong phòng quản lý thông tin của nhóm phần mềm IBM. Ông đã lấy bằng diploma về khoa học máy tính từ trường Đại học Rostock, Đức. Các trách nhiệm phát triển của ông bao gồm: khám phá trình soạn thảo ánh xạ của Kiến trúc sư Dữ liệu Rational và thành phần tạo ra truy vấn.



05 06 2009

Trước khi bạn bắt đầu

Hãy tìm hiểu cách làm thế nào để sử dụng Kiến trúc sư dữ liệu Rational để tạo truy vấn SQL/XML trong DB2® cho Linux®, UNIX® và Windows®. Ngôn ngữ truy vấn SQL/XML trích ra dữ liệu từ các nguồn quan hệ và chuyển đổi nó thành định dạng XML.

Về hướng dẫn này

Hướng dẫn này cho bạn thấy, từng bước một, làm thế nào để:

  • Định nghĩa bằng đồ họa một mô hình ánh xạ giữa một mô hình cơ sở dữ liệu quan hệ là nguồn và một định nghĩa lược đồ XML là đích.
  • Tạo một truy vấn SQL/XML dựa trên mô hình ánh xạ này.
  • Thực hiện truy vấn SQL/XML và phân tích kết quả.
  • Định nghĩa các phép nối giữa nhiều cột nguồn.
  • Thêm các chức năng chuyển đổi cho mô hình ánh xạ.

Các mục tiêu

Sau khi hoàn thành hướng dẫn này, bạn sẽ có khả năng sử dụng Kiến trúc sư Dữ liệu Rational và trình soạn thảo ánh xạ của nó để tạo và chạy các truy vấn SQL/XML.

Các điều cần có trước

Thay đổi tên sản phẩm

Ngày 16 tháng 12 năm 2008 IBM đã thông báo rằng kể từ phiên bản 7.5.1, Kiến trúc sư Dữ liệu Rational được đổi tên thành Kiến trúc sư Dữ liệu InfoSphere (InfoSphere Data Architect) để đề cao vai trò của nó trong các công cụ nền InfoSphere.

Hướng dẫn này giả thiết bạn đã biết rõ về các cơ sở dữ liệu quan hệ, tốt nhất là DB2 ®. Bạn cũng nên có một sự hiểu biết tốt về các tiêu chuẩn XML và XSD. Kiến thức cơ bản về ngôn ngữ truy vấn SQL/XML là bắt buộc. Kiến thức cơ bản về Kiến trúc sư Dữ liệu Rational cũng rất có ích, nhưng không bắt buộc. (Tham khảo bài viết "Sử dụng Kiến trúc sư Dữ liệu Rational để tích hợp các nguồn dữ liệu" (developerWorks, 03.2006) và một phần của loạt bài viết này, " Truy cập và tích hợp các siêu dữ liệu doanh nghiệp với Kiến trúc sư Dữ liệu Rational" (developerWorks, 06.2006), để tham khảo).

Các yêu cầu về hệ thống

Để thực hiện các bước được mô tả trong hướng dẫn này, cần có Kiến trúc sư Dữ liệu Rational 6.1 và DB2 đã cài đặt. Bạn có thể tải về phiên bản dùng thử của Kiến trúc sư Dữ liệu Rational 6.1 của IBM (xem Tài nguyên) và DB2 V8.2 (xem Tài nguyên).

Setup steps

  1. Cài đặt DB2 V8.2.
  2. Cài đặt Rational Data Architect V6.1.
  3. Giải nén gói RDA_SQLXML.zip vào trong một thư mục (ví dụ, C:\RDA_Tutorials). Bước này tạo ra thư mục RDA_SQLXML.
  4. Khởi động Kiến trúc sư Dữ liệu Rational và chỉ định thư mục nơi bạn đã giải nén gói phần mềm làm thư mục cho vùng làm việc của bạn (ví dụ, C:\RDA_Tutorials).
  5. Thư mục RDA_SQLXML trong gói phần mềm là một thư mục dự án của Kiến trúc sư Dữ liệu Rational. Trong Kiến trúc sư Dữ liệu Rational bạn phải nhập khẩu nó vào trong vùng làm việc của bạn. Từ trình đơn File, chọn Import.
  6. Chọn Existing Project trong trình thủ thuật Workspace.
Hình 1. Chọn trình thủ thuật Import
Chọn trình thủ thuật Import
  1. Nhấn Next. Duyệt đến vị trí ở đó bạn giải nén tệp RDA_SQLXML.zip (ví dụ, C:\RDA_Tutorials).
Hình 2. Trình thủ thuật Nhập khẩu Dự án (Project Import)
Trình thủ thuật Nhập khẩu Dự án
  1. Nhấn vào Finish. Kết quả là bạn thấy dự án RDA_SQLXML với một tập hợp các mô hình dữ liệu, các lược đồ XSD và các tệp mô hình ánh xạ trong vùng làm việc của bạn.
Hình 3. Trình thám hiểm dự án dữ liệu (Data Project Explorer) sau khi nhập khẩu dự án
Trình thám hiểm dự án dữ liệu sau khi nhập khẩu dự án
  1. Bây giờ bạn cần dữ liệu mẫu cho cơ sở dữ liệu quan hệ. Các dữ liệu sẽ được sử dụng để điền dữ liệu vào cá thể tài liệu XML được tạo ra. Dữ liệu này sẽ được trích ra từ cơ sở dữ liệu quan hệ và được chèn vào trong cá thể tài liệu XML trong khi thực hiện truy vấn SQL/XML. Tệp kịch bản lệnh rda_sqlxml_db.sql tạo ra một cơ sở dữ liệu thư viện (LIBRARY) của DB2 và chèn vào một bộ các dữ liệu mẫu . Hãy triển khai kịch bản lệnh trong cơ sở dữ liệu DB2 của bạn. Hãy khởi động cửa sổ lệnh của DB2 (trình đơn Start > IBM DB2 > Command Line Tools > Command Window).
  2. Chuyển tới thư mục mà bạn đã giải nén tệp RDA_SQLXML.zip.
  3. Chạy lệnh này: db2 -tvf rda_sqlxml_db.sql. Điều này sẽ tạo ra cơ sở dữ liệu LIBRARY, định nghĩa khóa chính và khóa ngoài và chèn thêm các dữ liệu mẫu.
Hình 4. Tạo cơ sở dữ liệu LIBRARY
Tạo cơ sở dữ liệu LIBRARY
  1. Kết nối tới cơ sở dữ liệu LIBRARY trong Kiến trúc sư Dữ liệu Rational. Trong Database Explorer, nhấn chuột phải vào Connection và chọn New Connection. (Note: (Lưu ý: Nếu bạn không nhìn thấy Database Explorer, hãy chắc chắn rằng bạn đang ở trong phối cảnh dữ liệu - Data Perspective, như hiển thị trong Hình 6 dưới đây).
Hình 5. Tạo kết nối cơ sở dữ liệu mới
Tạo kết nối cơ sở dữ liệu mới
Hình 6. Phối cảnh dữ liệu
Phối cảnh dữ liệu
  1. Chỉ rõ các thông tin kết nối theo môi trường của bạn, tương tự như Hình 7.
Hình 7. Các giá trị thiết lập kết nối cơ sở dữ liệu
Các giá trị thiết lập kết nối cơ sở dữ liệu
  1. Nhấn vào Test Connection để kiểm tra xem tất cả các tham số được đặt đúng chưa. Nếu thử nghiệm thành công, hãy nhấn Finish.

Tổng quan kịch bản và mô tả vấn đề

Kịch bản này có liên quan tới hệ thống cơ sở dữ liệu thư viện trường học mới, được giới thiệu trong hướng dẫn " Truy cập và tích hợp siêu dữ liệu doanh nghiệp với Kiến trúc sư Dữ liệu Rational". Trong hướng dẫn này, một hệ thống thư viện mới được thiết kế dựa trên hai hệ thống hiện có: thư viện của trường học và thư viện của quận Santa Clara. Với mục đích kiểm toán nhà trường muốn theo dõi quá trình lịch sử của các cuốn sách được cho mượn. Hội đồng thư viện đã quyết định duy trì tính độc lập với các nhà cung cấp cơ sở dữ liệu bằng cách lưu trữ dữ liệu theo dạng XML tiêu chuẩn hóa.

Để trích ra dữ liệu XML từ một cơ sở dữ liệu quan hệ, bạn có thể sử dụng ngôn ngữ truy vấn SQL/XML. SQL/XML là một ngôn ngữ tiêu chuẩn ANSI và ISO để truy cập và quản lý dữ liệu được lưu giữ trong cơ sở dữ liệu quan hệ. Cú pháp của nó được định nghĩa theo tiêu chuẩn SQL2003.

Thông thường, cấu trúc các tài liệu XML được mô tả bằng cách sử dụng Định nghĩa lược đồ XML. Một tài liệu XML tuân theo một XSD cũng gọi là một cá thể tài liệu XML.

Một truy vấn SQL/XML cũng định nghĩa cấu trúc của cá thể tài liệu XML cũng như các bảng và các cột (nguồn dữ liệu) được sử dụng để điền dữ liệu vào cá thể tài liệu XML ấy. Theo tinh thần đó, các SQL/XML sao đúp lại chính xác các thông tin về định dạng kết quả đầu ra của cá thể tài liệu, chứa trong các XSD (XSD đích). Vì vậy, các truy vấn SQL/XML kết hợp thông tin về cấu trúc tài liệu và định nghĩa nguồn dữ liệu. Sự kết hợp này làm cho các truy vấn SQL/XML phức tạp. Nếu lược đồ cơ sở dữ liệu hay lược đồ cá thể tài liệu XML hay cả hai có chứa nhiều thực thể, việc viết bằng tay các truy vấn SQL/XML thường nặng nề và dễ xảy ra lỗi.

Kiến trúc sư Dữ liệu Rational làm đơn giản hoá việc tạo các truy vấn SQL/XML bằng cách cung cấp cho người dùng một trình soạn thảo ánh xạ. Trình soạn thảo ánh xạ thường dùng để định nghĩa bằng đồ họa các ánh xạ từ một cơ sở dữ liệu quan hệ là nguồn đến một Định nghĩa lược đồ XML là đích. Các ánh xạ được diễn giải bởi một thành phần tạo truy vấn để tạo ra một truy vấn SQL/XML. Áp dụng truy vấn này đối với một cơ sở dữ liệu nguồn sẽ trích ra dữ liệu quan hệ từ cơ sở dữ liệu và tạo ra dữ liệu cho cá thể tài liệu XML theo cấu trúc được XSD đích định nghĩa.

Trình soạn thảo ánh xạ cũng cho phép ánh xạ từ nguồn dữ liệu quan hệ tới đích dữ liệu quan hệ. Trong kịch bản này, các thông tin ánh xạ được diễn giải để tạo ra một truy vấn SQL để chuyển đổi dữ liệu. Có thể tìm thấy nhiều thông tin hơn nữa về việc tạo SQL trong hướng dẫn " Truy cập và tích hợp các siêu dữ liệu doanh nghiệp với Kiến trúc sư dữ liệu Rational."


Tạo một mô hình ánh xạ đơn giản

Trong phần này, hãy tạo một mô hình ánh xạ. Định nghĩa lược đồ nguồn dữ liệu quan hệ và lược đồ XSD đích và tạo các ánh xạ giữa các cột nguồn và các phần tử XML đích. Sau đó, sử dụng các ánh xạ này để tạo ra một truy vấn SQL/XML.

Tạo ra một mô hình ánh xạ mới

  1. Chuyển đến phối cảnh Data
  2. Trong trình duyệt Data Project, nhấn chuột phải vào thư mục Mappings trong cây và chọn New > Mapping Model.
Hình 8. Mô hình ánh xạ mới (New Mapping Model)
Mô hình ánh xạ mới (New Mapping Model)
  1. Trong trình thủ thuật Mapping Editor, chỉ rõ tên tệp là Student.msl.
Hình 9. Trình thủ thuật của mô hình ánh xạ mới
Trình thủ thuật của mô hình ánh xạ mới
  1. Nhấn Next. Nhấn Add... để chỉ rõ một mô hình nguồn. Chọn mô hình cơ sở dữ liệu của thư viện mới system.dbm làm nguồn ánh xạ.
Hình 10. Chọn mô hình nguồn ánh xạ
Chọn mô hình nguồn ánh xạ
  1. Nhấn OK. Nhấn Next trong trình thủ thuật soạn thảo ánh xạ. Hãy đảm bảo chắc chắn rằng lược đồ school được chọn làm lược đồ nguồn.
Hình 11. Chọn lược đồ nguồn ánh xạ
Chọn lược đồ nguồn ánh xạ
  1. Nhấn Next. Nhấn the Browse... để định rõ tài liệu XSD Student.xsd làm tài liệu đích. Nhấn OK. Hãy bảo đảm chắc chắn rằng lược đồ students đã được chọn làm lược đồ đích.
Hình 12. Chọn lược đồ đích ánh xạ
Chọn lược đồ đích ánh xạ
  1. Nhấn Next và kiểm tra các giá trị thiết lập của nguồn và đích trong phần tóm tắt mô hình ánh xạ (mapping model summary).
Hình 13. Tóm tắt mô hình ánh xạ
Tóm tắt mô hình ánh xạ
  1. Nhấn Finish. Bây giờ bạn có thể thấy trình soạn thảo ánh xạ với các lược đồ nguồn và đích được chọn.

Thêm các ánh xạ vào mô hình ánh xạ

  1. Bây giờ hãy thêm một số ánh xạ. Chọn phần tử cột STUDENTID trong phần tử bảng STUDENT ở phía nguồn. Ở phía đích, nhấn chuột phải vào phần tử XML Student_ID và chọn Create Mapping từ trình đơn ngữ cảnh. Điều này tạo ra một đường ánh xạ màu xanh dương với một ô nhỏ ở giữa. Đường ánh xạ này luôn luôn trỏ từ phần tử nguồn đến phần tử đích.
Hình 14. Định nghĩa một ánh xạ đơn lẻ
Định nghĩa một ánh xạ đơn lẻ
  1. Sử dụng cùng phương pháp để tạo ra các ánh xạ từ cột NAME trong bảng STUDENT đến phần tử XML Name.

Tạo ra truy vấn SQL/XML

  1. Nhấn vào nút Generate Script... trên thanh công cụ.
Hình 15. Tạo nút kịch bản lệnh
Tạo nút kịch bản lệnh
  1. Khi bạn được hỏi lưu trữ các tài nguyên, hãy nhấn OK để lưu trữ các thay đổi của bạn với mô hình ánh xạ. Các thay đổi không lưu trữ sẽ không được xem xét trong quá trình tạo truy vấn SQL/XML.
  2. Trong trang đầu tiên của trình thủ thuật tạo kịch bản lệnh (Generate Script Wizard), chấp nhận tất cả các giá trị mặc định, bao gồm tên tệp Student.sql và nhấn vào Next. Trang tóm tắt hiển thị một trang xem trước truy vấn và một danh sách các đối tượng được tạo ra để thêm vào mô hình cơ sở dữ liệu, nếu có.
Hình 16. Tóm tắt của trình thủ thuật tạo kịch bản lệnh
Tóm tắt của trình thủ thuật tạo kịch bản lệnh
  1. Nhấn Finish.

Thực hiện truy vấn SQL/XML đã tạo ra

  1. Mở truy vấn Student.sql đã tạo ra bằng trình soạn thảo SQL.
Hình 17. Mở kịch bản lệnh SQL/XML bằng trình soạn thảo SQL
Mở kịch bản lệnh SQL/XML bằng trình soạn thảo SQL
  1. Nhấn chuột phải vào trong cửa sổ văn bản của trình soạn thảo SQL và chọn Run SQL.
Hình 18. Chạy kịch bản lệnh SQL/XML
Chạy kịch bản lệnh SQL/XML
  1. Từ danh sách các kết nối hiện có, chọn kết nối LIBRARY. (Lưu ý: Bạn có thể phải nhấn vào nút Kết nối lại (Reconnect), nếu bạn trước đó đã ngắt kết nối từ cơ sở dữ liệu).
Hình 19. Lựa chọn kết nối cơ sở dữ liệu cho việc thực hiện truy vấn SQL/XML
Lựa chọn kết nối cơ sở dữ liệu cho việc thực hiện truy vấn SQL/XML
  1. Nhấn Finish. Kết quả của truy vấn hiển thị trong khung nhìn Kết quả dữ liệu (Data Output) được đặt ở góc dưới bên phải. Nhấn vào nút có hình e lip (...) bên cạnh <students>.
Hình 20. kết quả thực hiện truy vấn SQL/XML
kết quả thực hiện truy vấn SQL/XML
  1. Điều này mở ra dữ liệu XML được trích từ cơ sở dữ liệu quan hệ LIBRARY. (Lưu ý: Nếu nội dung của tài liệu XML bị cắt bớt trước khi kết thúc tài liệu, hãy tăng giá trị tùy chọn ưa thích (preference) dành cho các byte cực đại để lấy ra một cột LOB). Đi tới trình đơn Window > Preferences. Chuyển đến thể loại Data, sau đó tới Output và thay đổi giá trị thành 5000. Nhấn vào OK. Chạy lại kịch bản lệnh.
Hình 21. Thực hiện truy vấn SQL/XML sinh ra dữ liệu XML
Thực hiện truy vấn SQL/XML sinh ra dữ liệu XML
Hình 22. Thiết lập các thông số cài đặt trang ưa thích dành cho các byte lớn nhất
Thiết lập các thông số cài đặt trang ưa thích dành cho các byte lớn nhất
  1. Dữ liệu XML được trả về từ cơ sở dữ liệu không chứa bất kỳ các ngắt dòng nào. Điều này làm cho tài liệu khó đọc hơn. Bạn có thể sử dụng nút "Lưu như" (Save as) để lưu dữ liệu XML trong một tệp và định dạng nó bằng cách sử dụng một trình soạn thảo văn bản. Đối với hướng dẫn này, một tệp kết quả XML có định dạng đúng được cung cấp cùng với Ref_Student_result.xml.Lưu ý: Kết quả XML được trả về từ cơ sở dữ liệu không phải là một tài liệu XML đúng khuôn dạng vì nó thiếu thẻ XML cần thiết <?xml version=1.0> ở đoạn đầu.

Xem tệp kết quả Ref_Student_result.xml, ta nhận thấy rằng mỗi phần tử học sinh (student) có chứa phần tử XML Email rỗng. Lý do của việc này là ở chỗ trong Student.xsd của XSD, phần tử Email được định nghĩa là bắt buộc, nhưng trong trình soạn thảo ánh xạ không có cột nguồn nào đã được định nghĩa cho phần tử Email. Trong phần kế tiếp, hãy xem làm thế nào để ngăn chặn điều này.


Sửa đổi lược đồ XML đích

Chúng ta hãy sửa đổi Student.xsd để làm cho phần tử EMail là tùy chọn và tạo lại các truy vấn SQL/XML.

  1. Mở lược đồ XML Student.xsd bằng trình soạn thảo văn bản.
Figure 23. Open Student.xsd with text editor
Figure 23. Open Student.xsd with text editor
  1. Sửa đổi Student.xsd, như được hiển thị trong Hình 24 (thêm vào thuộc tính minOccurs="0" đối với phần tử EMail). Sau đó, lưu trữ nó, thay thế cho tệp ban đầu.
Hình 24. Sửa đổi Student.xsd
Sửa đổi Student.xsd
  1. Chuyển về trình soạn thảo ánh xạ của Student.msl. Bạn sẽ nhận được thông báo rằng mô hình XSD đích đã thay đổi. Nhấn vào Yes để nạp lại trình soạn thảo ánh xạ với lược đồ đã cập nhật. Lưu ý rằng rằng bây giờ Email có một ký hiệu [0,1] kèm theo nó, biểu thị rằng nó là tùy chọn.
Hình 25. Phần tử XML EMail bây giờ là tùy chọn
Phần tử XML EMail bây giờ là tùy chọn
  1. Tạo lại truy vấn và đặt tên tệp là Student_optional.sql.
  2. Thực hiện truy vấn. Mở dữ liệu XML kết quả. Lưu ý rằng phần tử Email không hiển thị nữa.

Phép nối dữ liệu

Truy vấn SQL/XML được định nghĩa trong ví dụ đầu tiên khá đơn giản. Để khai thác thêm nhiều khả năng mà SQL/XML cung cấp, hãy nối dữ liệu bằng cách sử dụng ví dụ sau.

  1. Tạo ra một mô hình ánh xạ mới (như được hiển thị trong Hình 8).
  2. Một cách nhanh hơn để chỉ rõ một mô hình nguồn và đích ánh xạ là thêm chúng vào mô hình bằng cách sử dụng kéo và thả. Trong trang đầu tiên của trình thủ thuật soạn thảo ánh xạ, hãy nhập tên tệp là Student_BookLoans.msl và nhấn Finish.
Hình 26. Mô hình ánh xạ mới Student_BookLoans.msl
Mô hình ánh xạ mới Student_BookLoans.msl
  1. Bây giờ bạn thấy trình soạn thảo ánh xạ với một bảng nguồn và đích rỗng, hãy kéo tệp tin thư viện mới system.dbm từ thư mục Data Models trong Data Project Explorer và thả nó vào trong ô nguồn.
  2. Kéo tệp Student_BookLoans.xsd từ thư mục XML Schemas trong Data Project Explorer và thả nó vào trong ô đích.
  3. Tạo các ánh xạ từ cột STUDENTID trong bảng STUDENT đến phần tử XML Student_ID, cột NAME trong bảng STUDENT đến phần tử XML Name và cột BOOKID trong bảng BOOK_LOANS đến phần tử XML BookID.
Hình 27. Toàn bộ ánh xạ Student_BookLoans.msl
Toàn bộ ánh xạ Student_BookLoans.msl
  1. Tạo ra truy vấn SQL/XML và lưu trữ nó thành tệp Student_BookLoans.sql.
  2. Thực hiện truy vấn.

Xem kết quả Ref_Student_BookLoans.xml (Listing 1), lưu ý rằng các giá trị BookID đã chứa trong mỗi phần tử student tương ứng với các BookID của bảng BOOK_LOANS. Điều này cho thấy dữ liệu đã được kết nối đúng giữa bảng STUDENT và bảng BOOK_LOANS, tạo ra một danh sách các học sinh và các sách đã mượn tương ứng của họ. Lưu ý rằng tên các học sinh Jessica Wong và Rose Zuniga xuất hiện hai lần. Điều này là do cả hai trong số họ mượn hai cuốn sách.

Listing 1. Kết quả dữ liệu XML từ truy vấn SQL/XML Student_BookLoans.sql
<students>
	<student>
		<Student_ID>606789032</Student_ID>
		<Name>Jessica Wong</Name><BookID>0-06-0522003        </BookID>
	</student>
	<student>
		<Student_ID>738573597</Student_ID>
		<Name>Sabah Shahabi</Name>
		<BookID>0-06-0522233        </BookID>
	</student>
	<student>
		<Student_ID>946740674</Student_ID>
		<Name>Sara Haderly</Name>
		<BookID>0-06-0522233        </BookID>
	</student>
	<student>
		<Student_ID>267365293</Student_ID>
		<Name>Jason Northberry</Name>
		<BookID>0-06-0782005        </BookID>
	</student>
	<student>
		<Student_ID>786928402</Student_ID>
		<Name>Rose Zuniga</Name>
		<BookID>0-23-7522030        </BookID>
	</student>
	<student>
		<Student_ID>457894680</Student_ID>
		<Name>Abby Sanders</Name>
		<BookID>0-26-0522003        </BookID>
	</student>
	<student>
		<Student_ID>606789032</Student_ID>
		<Name>Jessica Wong</Name>
		<BookID>0-39-8960431        </BookID>
	</student>
	<student>
		<Student_ID>786928402</Student_ID>
		<Name>Rose Zuniga</Name>
		<BookID>0-39-8960431        </BookID>
	</student>
</students>

Trong phần kế tiếp, bạn có thể xem xét về kết nối dữ liệu chi tiết hơn.


Làm việc với các nhóm ánh xạ

Khi ánh xạ cột BOOK_LOANS.BOOKID đến phần tử XML BookID, trình soạn thảo ánh xạ RDA sẽ tự động tạo ra một phép nối giữa BOOK_LOANS.STUDENTID và STUDENT.STUDENTID.

Câu hỏi là tại sao phép nối này đã được tạo tự động. Lý do là có một mối quan hệ khóa ngoài được định nghĩa giữa hai cột này trong mô hình cơ sở dữ liệu thư viện mới system.dbm. Trình soạn thảo ánh xạ hiển thị trực quan mối quan hệ bằng các biểu tượng khóa cạnh các tên cột.

Hình 28. Mối quan hệ khóa ngoài giữa các cột STUDENTID
Mối quan hệ khóa ngoài giữa các cột STUDENTID
  1. Để nhìn thấy kết nối, bạn cần phải chuyển đổi trình soạn thảo ánh xạ để xem Các nhóm ánh xạ (Mapping Groups), như được hiển thị trong Hình 29.
Hình 29. Chuyển sang khung nhìn các nhóm ánh xạ
Chuyển sang khung nhìn các nhóm ánh xạ

Một khi bạn đã thực hiện điều đó, bạn sẽ thấy một số lượng nhỏ các đường ánh xạ màu xanh lá cây. Các đường này trỏ tới các bảng chứa các cột được ánh xạ ở phía nguồn (BOOK LOANS và STUDENT). Bên phía đích, chúng trỏ đến phần tử cha mẹ của các phần tử đích ánh xạ (students).

Khung nhìn nhóm ánh xạ có các chức năng sau đây:

  • Giảm số lượng các đường ánh xạ -- Bạn có thể nhìn thấy các ánh xạ mà bạn đã định nghĩa trên một mức cao hơn (mức bảng quan hệ với mức phần tử XSD cha mẹ, chẳng hạn).
  • Thêm/loại bỏ các kết nối giữa các bảng.
  • Thêm/loại bỏ các bộ lọc.
  • Thêm/loại bỏ việc sắp xếp kết quả.
  1. Để thực hiện các hành động này, nhấn chuột phải vào ô màu xanh lá cây nằm ở giữa đường nhóm ánh xạ.
Hình 30. Các hành động của nhóm ánh xạ
Các hành động của nhóm ánh xạ
  1. Khung nhìn Properties cũng chỉ ra một trong các đặc tính tinh vi này được kết hợp cho ánh xạ. Để xem phép nối đã định nghĩa, nhấn chuột phải vào các ô màu xanh lá cây và chọn Properties.
Hình 31. Các đặc tính của nhóm ánh xạ
Các đặc tính của nhóm ánh xạ
  1. Chọn phiếu Join. Chú ý phép nối (join) đã được định nghĩa tự động do mối quan hệ khóa ngoài giữa các STUDENTID.
Hình 32. Các thuộc tính phép nối cho STUDENTID
Các thuộc tính phép nối cho STUDENTID
  1. Để loại bỏ một phép nối, nhấn chuột phải vào ô của nhóm ánh xạ màu xanh lá cây và chọn Join > Remove. Lưu ý rằng ba dấu chấm trong ô của nhóm ánh xạ biến mất.
Hình 33. Loại bỏ kết nối
Loại bỏ kết nối
  1. Lưu trữ mô hình ánh xạ. Lưu ý rằng một dấu chéo màu đỏ sẽ xuất hiện trong hộp, cho biết rằng phép nối giữa hai bảng bị mất. Không thể tạo ra kịch bản lệnh SQL/XML mà không có định nghĩa phép nối. Vấn đề này cũng được báo hiệu trong khung nhìn các vấn đề Eclipse (Eclipse Problems).
Hình 34. Thiếu phép nối
Thiếu phép nối
  1. Sửa vấn đề thiếu phép nối bằng cách hủy bỏ tác dụng của hành động loại bỏ (Trình đơn Edit > Undo Remove).
Hình 35. Hủy bỏ tác dụng của hành động loại bỏ
Hủy bỏ tác dụng của hành động loại bỏ
  1. Lưu trữ mô hình ánh xạ. Vấn đề thiếu phép nối biến mất khỏi khung nhìn Eclipse Problems.

Thêm các phép chuyển đổi

Khi cấu trúc của dữ liệu nguồn khác với cấu trúc của dữ liệu đích, bắt buộc phải có các chuyển đổi. Với trình soạn thảo ánh xạ, bạn có thể thêm các hàm chuyển đổi cho mỗi đường ánh xạ. Ví dụ sau cho thấy làm thế nào để thêm một hàm nối chuỗi ký tự cho mô hình ánh xạ.

  1. Tạo ra một mô hình ánh xạ mới (như được hiển thị trong Hình 8) là Student_BookLoansInfo.msl với thư viện mới system.dbm làm nguồn và Student_BookLoansInfo.xsd làm đích.
  2. Tạo các ánh xạ từ STUDENT.STUDENTID đến phần tử Student_ID, BOOK_LOANS.BOOKID đến BookID và STUDENT.NAME đến Name.
Hình 36. Ánh xạ của BookInfo
Ánh xạ của BookInfo
  1. Bạn muốn sử dụng phần tử XML đích BookInfo để lưu trữ các tên sách và tên nhà xuất bản. Để làm được như vậy, tạo ra một ánh xạ từ BOOK.TITLE đến BookInfo.
  2. Chọn đường ánh xạ từ BOOK.TITLE đến BookInfo và cũng chọn cột BOOK.PUBLISHER_NAME ở phía nguồn (nhấn giữ phím CTRL khi chọn phần tử).
  3. Nhấn chuột phải vào đường ánh xạ và chọn Add to Mapping từ trình đơn ngữ cảnh.
Hình 37. Thêm PUBLISHER_NAME vào ánh xạ
Thêm PUBLISHER_NAME vào ánh xạ
  1. Điều này sẽ dẫn đến hai đường ánh xạ nối từ phần tử nguồn đến phần tử đích. Nhấn chuột phải vào đường ánh xạ và chọn Transform > Add từ trình đơn ngữ cảnh.
Hình 38. Thêm phép chuyển đổi
Thêm phép chuyển đổi
  1. Hộp thoại Trình xây dựng biểu thức (Expression Builder) hiện lên để trợ giúp xây dựng phép chuyển đổi. Nó cho thấy các cột nguồn có sẵn cho chuyển đổi ở phía bên tay trái. Bên phải, Expression Builder chỉ ra một danh sách các hàm chuyển đổi SQL phổ biến. Để thêm cột nguồn và các hàm chuyển đổi vào hộp văn bản biểu thức chuyển đổi, nhấn đúp chuột vào chúng.
Hình 39. Trình xây dựng biểu thức (Expression Builder)
Trình xây dựng biểu thức (Expression Builder)
  1. Đối với phần tử đích BookInfo, bạn muốn ghép nối tên sách và tên nhà xuất bản. Ở giữa, bạn muốn thêm vào một dấu gạch chéo thuận (/) làm dấu phân tách. Đối với việc ghép nối, hãy sử dụng hàm SQL của DB2 concat (String1, String2). Hàm SQL DB2 này không phải là một hàm SQL tiêu chuẩn -- đó là lý do tại sao nó không hiển thị trong danh sách các hàm có sẵn.
  2. Thêm bằng tay phép chuyển đổi sau vào trường văn bản biểu thức chuyển đổi:
CONCAT( CONCAT( SCHOOL.BOOK.TITLE, ' / ' ), SCHOOL.BOOK.PUBLISHER_NAME )
Hình 40. Trình xây dựng biểu thức với phép chuyển đổi
Trình xây dựng biểu thức với phép chuyển đổi
  1. Tạo ra truy vấn SQL/XML. Lưu ý rằng hàm chuyển đổi đã được thêm vào truy vấn.
Hình 41. Student_BookLoansInfo.sql có chuyển đổi
Student_BookLoansInfo.sql có chuyển đổi
  1. Thực hiện truy vấn. Trong kết quả (cũng xem Ref_StudentBookLoansInfo_result.xml) bạn sẽ thấy rằng tên sách và tên nhà xuất bản được chèn một cách chính xác vào tài liệu XML.
Listing 2. Kết quả truy vấn
...
<student>
	<Student_ID>606789032</Student_ID>
	<Name>Jessica Wong</Name>
	<BookID>0-06-0522003        </BookID>
	<BookInfo>C++ Crash Course / Westly Publishing</BookInfo>
</student>
...

Tóm tắt

Trong hướng dẫn này, bạn đã học cách làm thế nào để sử dụng Kiến trúc sư Dữ liệu Rational để tạo truy vấn SQL/XML. Bạn đã sử dụng trình soạn thảo ánh xạ để định nghĩa bằng đồ họa các ánh xạ từ một lược đồ nguồn quan hệ đến một lược đồ XML đích. Thông tin ánh xạ đã được sử dụng để tạo một truy vấn SQL/XML để trích ra dữ liệu từ cơ sở dữ liệu quan hệ và điền vào tệp dạng XML. Bạn đã thực hiện truy vấn được tạo ra và đã phân tích dữ liệu XML kết quả.

Hướng dẫn cũng đã chỉ ra làm thế nào để sử dụng các nhóm ánh xạ để phân tích và tạo ra các phép nối giữa nhiều cột nguồn. Cuối cùng, bạn đã thêm các hàm chuyển đổi vào mô hình ánh xạ.

Kiến trúc sư Dữ liệu Rational có thể được sử dụng để nhanh chóng tạo ra các truy vấn SQL/XML phức tạp. Việc tạo truy vấn tự động làm giảm đáng kể thời gian dùng để tạo truy vấn SQL/XML bằng tay.


Tải về

Mô tảTênKích thước
Gói c/t cần để cho bài họcRDA_SQLXML.zip20KB

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

  • Tải về một bản Rational Data Architect dùng thử miễn phí.
  • Tải về một bản DB2 Enterprise 9 dùng thử miễn phí.
  • Tải về một bản DB2 Enterprise Server Edition, V8.2 dùng thử miễn phí.
  • Bây giờ bạn có thể sử dụng DB2 miễn phí. Hãy tải về DB2 Express-C, một phiên bản không tính phí của DB2 Express Edition cho cộng đồng, nhưng cung cấp cùng các đặt tính dữ liệu cốt lõi giống như là DB2 Express Edition và mang lại một cơ sở vững chắc để xây dựng và triển khai ứng dụng.

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Rational
ArticleID=394990
ArticleTitle=Các kỹ năng của Kiến trúc sư dữ liệu Rational, Phần 2: Tạo các truy vấn SQL/XML với Kiến trúc sư dữ liệu Rational
publish-date=06052009