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
Tóm tắt: 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.
43 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2182 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
Torsten Bittner, Kỹ sư phần mềm, IBM
Tóm tắt: 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.
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
7. 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)
8. 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
9. 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).
10. Chuyển tới thư mục mà bạn đã giải nén tệp RDA_SQLXML.zip.
11. 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
12. 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
Hình 6. Phối cảnh dữ liệu
13. 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
14. 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)
3. 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
4. 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ạ
5. 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ạ
6. 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ạ
7. 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ạ
8. 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ẻ
2. 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
2. 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.
3. 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
4. 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
2. 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
3. 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
4. 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 .
Hình 20. kết quả thực hiện truy vấn SQL/XML
5. Đ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
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
6. 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 ở đ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
2. 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
3. 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
4. Tạo lại truy vấn và đặt tên tệp là Student_optional.sql.
5. 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
3. 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.
4. Kéo tệp Student_BookLoans.xsd từ thư mục XML Schemas trong Data
Project Explorer và thả nó vào trong ô đích.
5. 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
6. Tạo ra truy vấn SQL/XML và lưu trữ nó thành tệp Student_BookLoans.sql.
7. 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
606789032
Jessica Wong0-06-0522003
738573597
Sabah Shahabi
0-06-0522233
946740674
Sara Haderly
0-06-0522233
267365293
Jason Northberry
0-06-0782005
786928402
Rose Zuniga
0-23-7522030
457894680
Abby Sanders
0-26-0522003
606789032
Jessica Wong
0-39-8960431
786928402
Rose Zuniga
0-39-8960431
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
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ạ
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ả.
2. Để 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ạ
3. 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ạ
4. 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
5. Để 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
6. 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
7. 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ỏ
8. 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
3. 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.
4. 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ử).
5. 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ạ
6. Đ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
7. 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)
8. Đố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.
9. 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
10. 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
11. 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
...
606789032
Jessica Wong
0-06-0522003
C++ Crash Course / Westly Publishing
...
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.
Các file đính kèm theo tài liệu này:
- 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ữ_.pdf