text:
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
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
- Cài đặt DB2 V8.2.
- Cài đặt Rational Data Architect V6.1.
- 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.
- 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).
- 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.
- Chọn Existing Project trong trình thủ thuật Workspace.
Hình 1. Chọn trình thủ thuật Import
- 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)
- 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
- 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).
- Chuyển tới thư mục mà bạn đã giải nén tệp RDA_SQLXML.zip.
- 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
- 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
- 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
- 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
- Chuyển đến phối cảnh Data
- 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)
- 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
- 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ạ
- 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ạ
- 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ạ
- 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ạ
- 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ạ
- 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ẻ
- 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
- 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
- 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.
- 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
- Nhấn Finish.
Thực hiện truy vấn SQL/XML đã tạo ra
- 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
- 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
- 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
- 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
- Đ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
- 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.
- 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
- 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
- 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
- Tạo lại truy vấn và đặt tên tệp là Student_optional.sql.
- 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.
- Tạo ra một mô hình ánh xạ mới (như được hiển thị trong Hình 8).
- 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.mslvà nhấn Finish.
Hình 26. Mô hình ánh xạ mới Student_BookLoans.msl
- 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.
- Kéo tệp Student_BookLoans.xsd từ thư mục XML Schemas trong Data Project Explorer và thả nó vào trong ô đích.
- 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
- Tạo ra truy vấn SQL/XML và lưu trữ nó thành tệp Student_BookLoans.sql.
- 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
- Để 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ả.
- Để 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ạ
- 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ạ
- 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
- Để 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
- 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
- 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ỏ
- 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ạ.
- 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.
- 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
- 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.
- 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ử).
- 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ạ
- Đ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
- 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)
- Đố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.
- 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
- 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
- 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ề
Tài nguyên
Học tập
- " Access and integrate metadata with Rational Data Archtiect" (developerWorks, 07.2006): Hiểu cách thức các khả năng RDA có thể nâng cao các khả năng liên hoàn của trình tích hợp thông tin WebSphere như thế nào.
- "Use Rational Data Architect to integrate data sources" (developerWorks, 03.2006): Khảo sát tỷ mỉ một quá trình có công cụ hỗ trợ để thiết kế liên hoàn theo năm bước.
- developerWorks resource page for DB2 for Linux, UNIX, and Windows: Đọc các bài viết và hướng dẫn và kết nối đến các tài nguyên khác để mở rộng các kỹ năng DB2 của bạn.
- developerWorks Architecture zone: Nhận các tài nguyên mà bạn cần để nâng cao kỹ năng của bạn trong lĩnh vực kiến trúc.
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
- Xem developerWorks blogs và tham gia vào cộng đồng developerWorks.
Bình luận
-
Vùng dữ liệu trên developerWorks
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
-
Vùng mã nguồn mở trên developerWorks
Xem các bài viết về HTML, CSS, JavaScript,...
-
Điện toán đám mây
Tìm hiểu về điện toán đám mây

markdown:
## 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
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](http://www.ibm.com/developerworks/library/ar-rdaint/?S_TACT=105AGY75)"
(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](http://www.ibm.com/developerworks/edu/ar-dw-ar-wbirda.html?S_TACT=105AGY75)"
(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](#resources)) và
DB2 V8.2 (xem
[Tài
nguyên](#resources)).
#### Setup steps
- Cài đặt
[DB2 V8.2](https://www14.software.ibm.com/webapp/iwm/web/preLogin.do).
- Cài đặt
[Rational Data Architect V6.1](http://www.ibm.com/developerworks/downloads/r/rda/?S_TACT=105AGY75).
- 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.
- 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).
- 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**.
- 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](Import_Project.jpg)
- 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](Import_Project_Path.jpg)
- 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](PE_after_import.jpg)
- 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**).
- Chuyển tới thư mục mà bạn đã giải nén tệp RDA_SQLXML.zip.
- 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](SQL_script_deploy.jpg)
- 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](#fig6)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](DE_new_connection.jpg)
##### Hình 6. Phối cảnh dữ liệu
![ Phối cảnh dữ liệu](Data_Perspective.jpg)
- 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](#fig7).
##### 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](DE_new_connection_settings.jpg)
- 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](http://www.ibm.com/developerworks/edu/ar-dw-ar-wbirda.html?S_TACT=105AGY75)".
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](http://www.ibm.com/developerworks/edu/ar-dw-ar-wbirda.html?S_TACT=105AGY75)."
## 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
- Chuyển đến phối cảnh Data
- 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)](PE_new_mapping.jpg)
- 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](ME_Wizard_file_name.jpg)
- 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ạ](ME_Wizard_mapping_source.jpg)
- 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ạ](ME_Wizard_source_schema.jpg)
- 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ạ](ME_Wizard_target_schema.jpg)
- 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ạ](ME_Wizard_summary.jpg)
- 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ạ
- 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ẻ](ME_Student_create_mapping.jpg)
- 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
- 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](ME_Student_generate_button.jpg)
- 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.
- 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](ME_Student_generate_summary.jpg)
- Nhấn
**Finish**.
## Thực hiện truy vấn SQL/XML đã tạo ra
- 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](PE_Student_sql_open.jpg)
- 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](SQL_Student_run.jpg)
- 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](Connection_Library.jpg)
- 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](SQL_Student_ellipsis.jpg)
- Đ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](SQL_Student_XMLresult.jpg)
##### 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](Preferences_MaxBytes.jpg)
- 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.
- 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](Student_XSD_OpenWith.jpg)
- Sửa đổi Student.xsd, như được hiển thị trong
[Hình 24](#fig24)(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](Student_XSD_Modify.jpg)
- 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](Student_XSD_tree_optional.jpg)
- Tạo lại truy vấn và đặt tên tệp là Student_optional.sql.
- 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.
- Tạo ra một mô hình ánh xạ mới (như được hiển thị trong
[Hình 8](#fig8)).
- 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.mslvà 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](ME_Student_BookLoans_Wizard.jpg)
- 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.
- Kéo tệp Student_BookLoans.xsd từ thư mục XML Schemas trong Data Project Explorer và thả nó vào trong ô đích.
- 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](ME_Student_BookLoans_mappin.jpg)
- Tạo ra truy vấn SQL/XML và lưu trữ nó thành tệp Student_BookLoans.sql.
- Thực hiện truy vấn.
Xem kết quả Ref_Student_BookLoans.xml
(
[Listing 1](#listing1)), 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](ME_new_lib_tree_keys.jpg)
- Để 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](#fig29).
##### 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ạ](ME_groups_switch.jpg)
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ả.
- Để 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ạ](ME_groups_box_right.jpg)
- 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ạ](ME_groups_box_properties.jpg)
- 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](Join_student.jpg)
- Để 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](Join_remove.jpg)
- 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](ME_groups_join_missing.jpg)
- 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ỏ](ME_Student_BookLoans_Undo.jpg)
- 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ạ.
- Tạo ra một mô hình ánh xạ mới (như được hiển thị trong
[Hình 8](#fig8)) là Student_BookLoansInfo.msl với thư viện mới system.dbm làm nguồn và Student_BookLoansInfo.xsd làm đích.
- 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](ME_BookInfo_1.jpg)
- 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.
- 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ử).
- 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ạ](ME_Student_BookInfo_addto.jpg)
- Đ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](ME_BookInfo_Transform.jpg)
- 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)](ME_BookInfo_EB_plain.jpg)
- Đố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.
- 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](ME_BookInfo_EB_filled.jpg)
- 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](ME_Student_BookInfo_query.jpg)
- 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ên||Kích thước|
|Gói c/t cần để cho bài học|
## Tài nguyên
### Học tập
-
"
[Access and integrate metadata with Rational Data Archtiect](http://www.ibm.com/developerworks/edu/ar-dw-ar-wbirda.html?S_TACT=105AGY75)" (developerWorks, 07.2006): Hiểu cách thức các khả năng RDA có thể nâng cao các khả năng liên hoàn của trình tích hợp thông tin WebSphere như thế nào.
-
"
[Use Rational Data Architect to integrate data sources](http://www.ibm.com/developerworks/ibm/library/ar-rdaint/?S_TACT=105AGY75)" (developerWorks, 03.2006): Khảo sát tỷ mỉ một quá trình có công cụ hỗ trợ để thiết kế liên hoàn theo năm bước. [developerWorks resource page for DB2 for Linux, UNIX, and Windows](http://www.ibm.com/developerworks/db2/zones/db2udb?S_TACT=105AGY75): Đọc các bài viết và hướng dẫn và kết nối đến các tài nguyên khác để mở rộng các kỹ năng DB2 của bạn. [developerWorks Architecture zone](http://www.ibm.com/developerworks/architecture?S_TACT=105AGY75): Nhận các tài nguyên mà bạn cần để nâng cao kỹ năng của bạn trong lĩnh vực kiến trúc.
### Lấy sản phẩm và công nghệ
- Tải về một bản
[Rational Data Architect](http://www.ibm.com/developerworks/downloads/r/rda/?S_TACT=105AGY75)dùng thử miễn phí.
- Tải về một bản
[DB2 Enterprise 9](http://www.ibm.com/developerworks/downloads/im/udb/index.html?S_TACT=105AGY75)dùng thử miễn phí.
- Tải về một bản
[DB2 Enterprise Server Edition, V8.2](https://www14.software.ibm.com/webapp/iwm/web/preLogin.do)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](http://www.ibm.com/developerworks/downloads/im/udbexp/index.html?S_TACT=105AGY75), 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
- Xem
[developerWorks blogs](http://www.ibm.com/developerworks/blogs/?S_TACT=105AGY75)và tham gia vào [cộng đồng developerWorks](http://www.ibm.com/developerworks/community?S_TACT=105AGY75).
## Bình luận
[Vùng dữ liệu trên developerWorks](http://www.ibm.com/developerworks/vn/views/data/libraryview.jsp)
Khám phá các bài viết xoay quanh lĩnh vực dữ liệu, Quản lý hệ thống thông tin
[Vùng mã nguồn mở trên developerWorks](http://www.ibm.com/developerworks/vn/views/opensource/libraryview.jsp)
Xem các bài viết về HTML, CSS, JavaScript,...
[Điện toán đám mây](http://www.ibm.com/developerworks/vn/views/cloud/libraryview.jsp)
Tìm hiểu về điện toán đám mây

Content-Language: en-US

Kp-eeAlive: timeout=10, max=23


text:
Ngày cập nhật: 2010-08-04 00:00:00
Số điểm của file này: 20
hoặc nhắn tin theo cú pháp: KHOGIA 2V7EH Email gửi tới 8585 (trong đấy Email là email của bạn, và chúng tôi sẽ gửi file giá vào email này chi tiết xem TẠI ĐÂY)

markdown:
Ngày cập nhật: 2010-08-04 00:00:00
Số điểm của file này:
** 20**
hoặc
**nhắn tin theo cú pháp:** **KHOGIA 2V7EH Email** gửi tới **8585**
(trong đấy Email là email của bạn, và chúng tôi sẽ gửi file giá vào email này chi tiết xem [)
TẠI ĐÂY](/index/terms)

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Server: Apache/2.2.26 (CentOS)

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0

Pragma: no-cache

Connection: close

Content-Type: text/html; charset=UTF-8


text:
Tiếng Việt
English
Giỏ hàng
: chưa có gì
Tìm kiếm
Lan hồ điệp
Giới thiệu
Hệ thống phân phối
BÁO GIÁ CUNG CẤP LAN HỒ ĐIỆP GIỐNG và hoa LAN HỒ ĐIỆP GIÁ SĨ LẺ CHO CÁC SHOP
Chậu hoa lan hồ điệp tím 12 cành quà tặng tết
3.600.000 VND
lan hồ điệp 7 cành màu hồng MS43
1.750.000 VND
lan hồ điệp 20 cây màu vàng DSC06249
5.000.000 VND
lan hồ điệp 5 cành trắng và 2 tím LHD021
1.750.000 VND
lan hồ điệp 3 cành trắng LHD022
900.000 VND
hoa hồ điệp trắng tím 20 cành quà tặng khánh thành khai trương
7.000.000 VND
hoa hồ điệp 14 cành tím quà tặng khai trương
4.900.000 VND
chậu hồ điệp 8 cành tím quà tặng khánh thành
2.900.000 VND
hoa hồ điệp tím song hỷ tặng sinh nhật người thân yêu nhất
350.000 VND
chậu hồ điệp trắng ba cành song hỷ tặng tân gia khai trương
350.000 VND
Giỏ hoa lan trắng gân tím quà tặng sinh nhật khai trương
2.400.000 VND
Chậu hoa lan trắng 9 cành quà tặng sinh nhật
2.700.000 VND
6 cành hồ điệp trắng mừng tân gia
1.800.000 VND
Chậu phong lan đẹp mừng khai trương
3.300.000 VND
Chậu phong lan vàng 6 cành làm quà sinh nhật
1.800.000 VND
Chậu phong lan vàng đồng sinh nhật
2.400.000 VND
Chậu hoa lan trắng 3 cành đẹp làm quà tặng sinh nhật sếp
900.000 VND
chậu phong lan 5 cành hồ điệp trắng hồng
1.500.000 VND
Chậu hoa lan vàng 5 cành sang trọng thịnh vượng mừng tân gia
1.500.000 VND
Chậu phong lan tím 26 cành làm quà tặng khai trương khánh thành
7.800.000 VND
Chậu hồ điệp quý phái làm quà tặng tân gia khai trương
7.200.000 VND
Chậu hoa lan 6 cành giỏ mây đan
1.800.000 VND
Chậu hồ điệp trắng 8 cành mừng khai trương tân gia
2.400.000 VND
Chậu phong lan trắng 9 cành quà tặng sinh nhật bạn bè
2.700.000 VND
Danh mục sản phẩm
Hoa phong lan hồ điệp
Hoa lan giống
hoa phong lan giống
Hỗ trợ trực tuyến
Hà Nội
04.22.033.333
04.23.468.468
04.22.669.669
Hải Phòng
0312.678.678
Lạng Sơn
025.22.11.888
Thanh Hóa
0372.838.668
Đà Nẵng
05112.818.818
Cần Thơ
07102.224.224
Kiên Giang
077.2465999
Sài Gòn
08.62653815
Mr. Hoàng
0917.20.30.99
Mr. Bình
0942.444.111
Ms. Hương
0965.444.999
Skype
Tin tức
»
Kinh nghiệm trồng và chăm sóc lan hồ điệp
»
Ý nghĩa hoa lan hồ điệp
»
Cận cảnh nền nông nghiệp công nghệ cao của Israel
»
Nông nghiệp công nghệ cao: Đầu tư nhiều, thu lãi khủng
»
Vì sao lan hồ điệp không ra hoa?
»
hà nội
»
Cách khắc phục lan Hồ Điệp rụng hoa thối nụ
»
Phương pháp chăm sóc lan hồ điệp sau Tết
»
Trồng lan hồ điệp
»
Phía trước là tình yêu
CÔNG TY TNHH MÊ KÔNG VINA Địa chỉ: A 15/4 Quốc Lộ 50 xã Bình Hưng huyện Bình Chánh TP HCM. 272 Cao Lỗ Phường 4 Quận 8 TPHCM VP : 17 Tân Trang Phường 9 Quận Tân Bình TP HCM Tại Hà Nội: 3A Phố Triều Khúc - Quận Thanh Xuân - Hà Nội ĐT/FAX: 0917.203099 - 0914.555.222 - 0965444.999- 04.22033333 - 08.62654146 - 08.62653815 - 08.62653843 Giao gởi hàng 64/64 tỉnh thành phố sau : Tiền Giang , Long An , Cần Thơ , Bạc Liêu , Sóc Trăng , Đồng Nai - TP Biên Hòa , Bà Rịa - Vũng Tàu , TP Đà Lạt - Lâm Đồng , Bình Thuận , Ninh Thuận , Khánh Hòa , Bình Định , Phú Yên , Quảng Ngãi , Quảng Nam , Đà Nẵng , Thừa Thiên Huế , Vĩnh Phúc , Hậu Giang , Đồng Tháp , Cà Mau , Gia Lai - Kon Tum , Kiên Giang , Vĩnh Long , Trà Vinh , Bình Dương , Bình Phước , Tây Ninh , An Giang , Bắc Kạn , Bắc Giang , Bắc Ninh , Bến Tre , Cao Bằng , Đắk Lắc , Đắk Nông , Điện Biên , Gia Lai , Hà Giang , Hà Nam , Hà Tỉnh , Hải Dương , Hải Phòng , Hòa Bình , Hưng Yên , Kon Tum , Lai Châu , TP HCM , Hà Nội, Hà Tĩnh , Nghệ An , Quảng Bình , Quảng Trị , Thanh Hóa , An Giang , Bắc Giang , Bắc Kan , Bắc Ninh , Cao Bằng , Điện Biên , Hà Giang , Hà Nam , Hải Dương , Hưng Yên , Lai Châu , Lào Cai , Lạng Sơn , Nam Định , Ninh Bình , Phú Thọ , Quảng Ninh , Sơn La , Thái Bình , Thái Nguyên , Tuyên Quang , Vĩnh Phúc , Yên Bái.
lan hồ điệp
| lan ho diep
| hoa phong lan
| cửa hàng bán lan hồ điệp
| cua hang ban lan ho diep
| shop bán lan hồ điệp
| shop ban lan ho diep
| shop ban phong lan
| cua hang ban phong lan
| cửa hàng bán phong lan
| shop bán phong lan
| lan ho diep da lat
| lan hồ điệp đà lạt
| lan hồ điệp đài loan
| lan ho diep dai loan
| lan ho diep thai lan
| lan hồ điệp thái lan
®
Thiet ke web
: VAVIETNAM.COM

markdown:
|
|![]()
![]()
|
|
## Danh mục sản phẩm
## Hỗ trợ trực tuyến
Hà Nội
04.22.033.333
04.23.468.468
04.22.669.669
Hải Phòng
0312.678.678
Lạng Sơn
025.22.11.888
Thanh Hóa
0372.838.668
Đà Nẵng
05112.818.818
Cần Thơ
07102.224.224
Kiên Giang
077.2465999
Sài Gòn
08.62653815
Mr. Hoàng
0917.20.30.99
Mr. Bình
0942.444.111
Ms. Hương
0965.444.999

Server: Apache

Vary: Accept-Encoding

Content-Encoding: gzip

Content-Type: text/html