Chuyển đổi XML thành dữ liệu quan hệ

Trong hướng dẫn này chúng tôi sẽ giới thiệu cho các bạn một số phương pháp chuyển đổi các tài liệu XML thành các hàng trong các bảng quan hệ.

Matthias Nicola hướng dẫn , Pav Kumar-Chatterjee

Quản trị mạngTrong hướng dẫn này chúng tôi tự động sẽ giới thiệu cho các bạn một số phương pháp chuyển đổi các tài liệu XML thành các hàng trong các bảng quan hệ sử dụng , công việc cập nhật vẫn qua app được biết đến như việc băm nhỏ hay phân tách các tài liệu XML.

Phương pháp chuyển đổi các tài liệu XML thành các hàng trong các bảng dữ liệu quan hệ hay nạp tiền được biết đến như việc shred (băm nhỏ) hay decompose (phân tách) các tài liệu XML tổng hợp . Một trong tài khoản những lý do chính cho việc shred là các ứng dụng SQL đang tồn tại kinh nghiệm vẫn cần truy cập vào dữ liệu dưới định dạng quan hệ khóa chặn . Cho ví dụ vô hiệu hóa , các ứng dụng kế thừa tính năng , các ứng dụng doanh nghiệp mới nhất được đóng gói hỗ trợ hoặc phần mềm báo cáo không phải lúc nào tăng tốc cũng làm việc địa chỉ với XML danh sách . Chính vì vậy đôi khi bạn tối ưu sẽ thấy khá hữu dụng trong việc băm nhỏ (shred) nơi nào tất cả sử dụng hoặc một số giá trị dữ liệu nhanh nhất của một tài liệu XML ở đâu nhanh được chỉ định vào các cột và các hàng nằm trong các bảng dữ liệu quan hệ.

Hướng dẫn này chúng tôi chi tiết sẽ giới thiệu cho các bạn về:

  • xóa tài khoản Những ưu điểm và nhược điểm chia sẻ của việc băm nhỏ và các phương pháp băm nhỏ khác.
  • Cách băm nhỏ dữ liệu XML thành các bảng quan hệ bằng lệnh INSERT có chứa hàm XMLTABLE.
  • Cách sử dụng các chú thích XML Schema qua web để bản đồ và băm nhỏ các tài liệu XML thành các bảng quan hệ.

Ưu điểm và nhược điểm công cụ của việc băm nhỏ

Khái niệm sử dụng của việc băm nhỏ hay nhất được minh chứng trong hình 1 dịch vụ . Trong ví dụ này lấy liền , các tài liệu XML có các thông tin về customer name nơi nào , address thanh toán , và phone tính năng được bản đồ hóa thành hai bảng quan hệ kích hoạt . Các tài liệu có thể chứa nhiều thành phần phone vì mối quan hệ giữa khách hàng và số điện thoại tốt nhất của họ là mối quan hệ 1-n vô hiệu hóa . Do đó dịch vụ , các số điện thoại giả mạo sẽ chia sẻ được băm nhỏ vào một bảng riêng công cụ . Mỗi một thành phần lặp ứng dụng , chẳng hạn như phone thanh toán , tính năng sẽ dẫn đến một bảng bổ sung trong giản đồ mục tiêu quan hệ giá rẻ . Giả dụ các thông tin khách hàng có thể chứa nhiều địa chỉ email trực tuyến , nhiều tài khoản khóa chặn , danh sách các đơn đặt hàng gần đây tất toán , nhiều sản phẩm trong mỗi đơn hàng và các mục lặp lại khác nơi nào . phải làm sao Khi đó số các bảng miễn phí được yêu cầu trong giản đồ mục tiêu quan hệ có thể tăng sử dụng rất nhanh giả mạo . Tuy nhiên việc băm nhỏ XML thành một số lớn các bảng có thể dẫn đến sự phức tạp mật khẩu của các đối tượng logic doanh nghiệp và làm cho sự phát triển ứng dụng trở nên khó khăn hay lừa đảo rất dễ gây lỗi tốt nhất . Việc truy vấn dữ liệu đã dịch vụ được băm nhỏ ở đâu tốt hoặc việc lắp ráp lại (reassembling) các tài liệu gốc có thể cần đến nhiều mối ghép (join) phức tạp.Chuyển đổi XML thành dữ liệu quan hệ
Hình 1: Việc băm nhỏ (shred) một tài liệu XML

Phụ thuộc vào sự phức tạp và khả năng thay đổi trực tuyến , mục đích ở đâu uy tín của các tài liệu XML dịch vụ , việc băm nhỏ (shred) có giảm giá hoặc không thể là một tùy chọn bắt buộc an toàn . Bảng 1 tóm tắt các ưu điểm và nhược điểm lấy liền của việc băm nhỏ (shred) dữ liệu XML thành các bảng quan hệ.

Là lựa chọn thích hợp khi…

Là lựa chọn không thích hợp khi…

  • Dữ liệu XML download được chỉ định đang cung cấp cho một cơ sở dữ liệu quan hệ đang tồn tại.
  • Dữ liệu XML nguyên nhân của bạn phức tạp tăng tốc , xếp chồng và khó cho việc bản đồ hóa thành một giản đồ quan hệ.
  • Các tài liệu XML không thể hiện link down được các đối tượng logic doanh nghiệp cần an toàn được duy trì.
  • Việc bản đồ hóa định dạng XML hướng dẫn của bạn thành giản đồ quan hệ dẫn đến một số lượng lớn các bảng.
  • Mục đích chính quảng cáo của bạn là cho phép các ứng dụng quan hệ đang tồn tại có thể truy cập vào dữ liệu XML
  • XML Schema kích hoạt của bạn hay thay đổi
  • Bạn ưng thuận kiểm tra với giản đồ quan hệ ở đâu uy tín của mình và thích sử dụng nó tải về nếu có thể.
  • Mục tiêu dữ liệu của bạn là quản lý các tài liệu XML như các đối tượng doanh nghiệp nguyên vẹn.
  • Cấu trúc khóa chặn của dữ liệu XML ở đâu uy tín của bạn dễ dàng hay nhất được bản đồ hóa thành các bảng dữ liệu quan hệ.
  • Bạn thường cần xây dựng lại các tài liệu phải làm sao được băm nhỏ ứng dụng hoặc một phần trong chúng.
  • Định dạng XML cài đặt của bạn ở đâu tốt tương đối ổn định và ít thay đổi.
  • Sử dụng dữ liệu XML trong một cơ sở dữ liệu nạp tiền với tốc độ cao cho ứng dụng danh sách của bạn.
  • Bạn ít khi cần xây dựng lại các tài liệu lừa đảo được băm nhỏ.

  • Việc truy vấn phải làm sao hoặc nâng cấp dữ liệu nạp tiền với SQL quan trọng hơn chèn.

Bảng 1 lừa đảo . tốt nhất Khi việc băm nhỏ là hay không là một lựa chọn thích hợp

Trong nhiều kịch bản ứng dụng XML miễn phí , cấu trúc và cách sử dụng dữ liệu XML không thích ứng full crack với việc băm nhỏ nơi nào . Nguyên nhân xảy ra điều này là do DB2 hỗ trợ các cột XML có thể cho phép bạn đánh chỉ số và truy vấn dữ liệu mà không cần đến quá trình chuyển đổi chia sẻ . Đôi khi bạn qua mạng sẽ thấy các yêu cầu ứng dụng tài khoản của mình có thể đáp ứng tốt nhất tối ưu với partial shredding thanh toán hoặc hybrid XML storage kích hoạt . Ở đây:

  • Partial shredding có nghĩa rằng chỉ một tập nhỏ các thành phần kinh nghiệm hoặc các thuộc tính từ mỗi một tài liệu XML đi vào tổng hợp được băm nhỏ thành các bảng quan hệ công cụ . Điều này khá hữu dụng tải về nếu ứng dụng quan hệ không yêu cầu lừa đảo tất cả giá trị dữ liệu từ mỗi tài liệu XML cập nhật . Trong các trường hợp giảm giá , nơi việc băm nhỏ toàn bộ mỗi một tài liệu diễn ra khó khăn và yêu cầu một giản đồ quan hệ phức tạp mật khẩu , partial shredding có thể đơn giản hóa việc bản đồ hóa sang giản đồ quan hệ một cách đáng kể.
  • Hybrid XML storage có nghĩa trong lúc chèn một tài liệu XML vào một cột XML download , thành phần kích hoạt được chọn giá rẻ hoặc các giá trị nơi nào của thuộc tính kinh nghiệm được trích rút và thành phần dự trữ dịch vụ được lưu trong các cột quan hệ.

nơi nào Nếu bạn muốn băm nhỏ các tài liệu XML mật khẩu , toàn bộ nạp tiền hoặc một phần tổng hợp , DB2 cung cấp cho bạn một tập các tính năng phong phú quản lý để thực hiện một số hay nhất hoặc chi tiết tất cả xóa tài khoản những vấn đề dưới đây:

  • Thực hiện các phép biến đổi giá trị dữ liệu trước khi chèn vào các cột quan hệ.
  • Băm nhỏ cùng một giá trị thuộc tính tổng hợp hoặc thành phần vào nhiều cột xóa tài khoản của các bảng giống hay khác nhau.
  • Băm nhỏ nhiều thành phần khác hay thuộc tính khác nhau vào cùng một cột trong một bảng.
  • Chỉ định các điều kiện chi phối cho các thành phần nào đó tự động được hay không giá rẻ được băm nhỏ tăng tốc . Cho ví dụ nạp tiền , băm nhỏ địa chỉ tổng hợp của một tài liệu khách hàng chỉ khi country là Canada.
  • Hợp lệ hóa các tài liệu XML trực tuyến với một XML Schema trong suốt quá trình băm nhỏ.
  • Lưu tài liệu XML đầy đủ cùng nhanh nhất với dữ liệu hay nhất được băm.

DB2 9 cho z/OS và DB2 9.x cho Linux xóa tài khoản , UNIX ở đâu nhanh , và Windows hỗ trợ hai phương pháp băm nhỏ:

  • Các câu lệnh INSERT nhanh nhất của SQL sử dụng hàm XMLTABLE tất toán . Hàm này giảm giá sẽ điều hướng vào một tài liệu đầu vào và sinh ra một an toàn hoặc nhiều hàng quan hệ dùng an toàn để chèn vào bảng quan hệ.
  • Phân tách lừa đảo với một XML Schema quảng cáo được chú thích kiểm tra . Do XML Schema định nghĩa cấu trúc danh sách của các tài liệu XML nên các chú thích có thể tối ưu được bổ sung vào giản đồ nơi nào để định nghĩa cách các thành phần và thuộc tính full crack được bản đồ hóa thành các bảng quan hệ như thế nào.

Bảng 2 và bảng 3 miễn phí sẽ giới thiệu về tăng tốc những ưu điểm và nhược điểm như thế nào của phương pháp XMLTABLE và phương pháp giản đồ an toàn được chú thích.

Ưu điểm bản quyền của phương pháp XMLTABLE

Nhược điểm qua web của phương pháp XMLTABLE

  • Cho phép bạn băm nhỏ dữ liệu thậm chí không có XML Schema.
  • Mỗi một bảng mục tiêu mà bạn muốn băm nhỏ vào mật khẩu , bạn phải cần đến một câu lệnh INSERT
  • Không yêu cầu bạn hiểu ngôn ngữ XML Schema như thế nào hoặc hiểu các chú thích nơi nào của giản đồi cho việc phân tách.
  • Bạn có thể phải kết hợp nhiều câu lệnh INSERT trong một thủ tục nguyên nhân được lưu.
  • Thường dễ sử dụng hơn các giản đồ có chú thích vì tăng tốc được dựa trên SQL và Xpath.
  • Bạn có thể sử dụng các hàm và các biểu thức quen thuộc tính năng của XPath full crack , XQuery mới nhất , dịch vụ hoặc SQL trên điện thoại để trích rút và điều chỉnh các giá trị dữ liệu.
  • Thường yêu cầu đến ít khối lượng công việc trong quá trình phát triển XML Schema.
  • Quá trình băm nhỏ có thể cần đến dữ liệu từ nhiều nguồn quan hệ và XML như thế nào nếu cần ở đâu nhanh , chẳng hạn như các giá trị từ các chuỗi DB2 như thế nào hoặc dữ liệu tra cứu từ các bảng quan hệ khác.
  • Có thể cung cấp hiệu suất tốt hơn phương pháp phân tách giản đồ chú thích.
  • Không có hỗ trợ giao diện người dùng cho việc thực thi các câu lệnh INSERT và các hàm XMLTABLE cần thiết quảng cáo . Bạn cần phải biết về XPath và SQL/XML.

Bảng 2 dịch vụ . Phương pháp XMLTABLE

Ưu điểm tối ưu của phương pháp Nhược điểm ở đâu tốt của phương pháp
  • Việc bản đồ hóa từ XML vào các bảng quan hệ có thể lừa đảo được định nghĩa bằng một GUI trong IBM Data Studio Developer.
  • Không cho phép bạn băm nhỏ khi không có XML Schema.
  • sửa lỗi Nếu bạn băm nhỏ dữ liệu XML phức tạp vào một số lượng lớn các bảng nguyên nhân , cần ít nỗ lực trong việc viết mã hơn so dịch vụ với phương pháp XMLTABLE
  • Bạn có thể phải tự copy các chú thích khi bắt đầu sử dụng một phiên bản mới vô hiệu hóa của XML Schema.
  • Cung cấp số lượng lớn tải về những thông tin chuẩn đoán chi tiết hướng dẫn nếu một số tài liệu bị băm nhỏ thất bại.
  • Mặc dù có giao diện hỗ trợ người dùng bản quyền nhưng bạn hay nhất vẫn cần biết ngôn ngữ XML Schema.
  • Việc chú thích một XML Schema có thể sửa lỗi sẽ phức tạp ở đâu tốt nếu một giản đồ bản thân nó là phức tạp.

Bảng 3: Phương pháp phân tách giản đồ chú thích


Băm nhỏ nguyên nhân với hàm XMLTABLE

Hàm XMLTABLE là một hàm SQL sử dụng các biểu thức XQuery địa chỉ để tạo các hàng quan hệ từ một tài liệu đầu vào XML qua web . Trong phần này chúng tôi quảng cáo sẽ miêu tả cho các bạn cách sử dụng hàm XMLTABLE trong câu lệnh ứng dụng để thực hiện việc băm nhỏ tốt nhất . Chúng ta sử dụng kịch bản băm nhỏ trong hình 1 làm ví dụ.

Bước đầu tiên chúng ta cần thực hiện là tạo một bảng quan hệ mục tiêu hay nhất , đăng ký vay nếu chưa có giảm giá . Với kịch bản trong hình 1 lừa đảo , các bảng mục tiêu vô hiệu hóa được định nghĩa như bên dưới:

CREATE TABLE address(cid INTEGER tự động , name VARCHAR(30),
           street VARCHAR(40) kích hoạt , city VARCHAR(30))
CREATE TABLE phones(cid INTEGER quản lý , phonetype VARCHAR(10),
          phonenum VARCHAR(20))

Dựa vào định nghĩa ở đâu tốt của các bảng mục tiêu bạn có thể xây dựng các câu lệnh INSERT tốc độ để băm nhỏ các tài liệu XML gửi vào tính năng . Các câu lệnh INSERT phải có dạng INSERT INTO .. dịch vụ . SELECT .. mật khẩu . FROM .. trực tuyến . XMLTABLE link down , như thể hiện trong hình 2 phải làm sao . Mỗi một hàm XMLTABLE đều gồm có một bộ marker tham số ("?"), thông qua đó một ứng dụng có thể chuyển qua (pass) tài liệu XML chi tiết được băm nhỏ chi tiết . Các rule SQL yêu cầu bộ marker tham số phải biến đổi thành kiểu dữ liệu thích hợp như thế nào . Mệnh đề SELECT quảng cáo sẽ chọn các cột giả mạo được tạo ra ở đâu tốt bởi hàm XMLTABLE cập nhật nhằm chèn vào các bảng address phones một cách tương ứng.

INSERT INTO address(cid tải về , name ở đâu tốt , street kỹ thuật , city)
 SELECT x.custid tài khoản , x.custname qua web , x.str như thế nào , x.place
 FROM XMLTABLE("$i/customerinfo" PASSING CAST( qua app ? AS XML) AS "i"
    COLUMNS
     custid  INTEGER   PATH "@Cid",
     custname VARCHAR(30) PATH "name",
     str    VARCHAR(40) PATH "addr/street",
     place   VARCHAR(30) PATH "addr/city" ) AS x ;
 
INSERT INTO phones(cid nạp tiền , phonetype chi tiết , phonenum)
 SELECT x.custid full crack , x.ptype lấy liền , x.number
 FROM XMLTABLE("$i/customerinfo/phone"
         PASSING CAST( kỹ thuật ? AS XML) AS "i"
    COLUMNS
     custid  INTEGER   PATH "https://quantrimang.com/@Cid",
     number  VARCHAR(15) PATH ".",
     ptype   VARCHAR(10) PATH "./@type") AS x ;

Hình 2: Chèn thành phần XML và các giá trị bản quyền của thuộc tính vào các cột quan hệ

Để cư trú hai bảng mục tiêu như hướng dẫn được minh chứng trong hình 1 trực tuyến , cả hai câu lệnh INSERT đều phải ở đâu tốt được thực thi hướng dẫn với cùng một tài liệu XML đầu vào an toàn . Một phương pháp tính năng được thực hiện ở đây là ứng dụng phát cả hai câu lệnh trong một giao dịch (transaction) và đóng kết tài liệu XML giống nhau vào các bộ marker tham số cho cả hai câu lệnh bản quyền . Phương pháp này làm việc tốt tuy nhiên có thể địa chỉ được tối ưu dịch vụ , vì tài liệu XML giống nhau giả mạo được gửi từ máy khách đến máy chủ và giả mạo được phân tách tại máy chủ DB2 hai lần như thế nào , mỗi lần cho một câu lệnh INSERT lấy liền . Quá trình này có thể tránh bằng cách kết hợp cả hai câu lệnh INSERT trong một thủ tục lưu trữ link down . Ứng dụng chỉ tạo một cuộc gọi thủ tục lưu trữ và pass tài liệu đầu vào một lần qua mạng , và không quan tâm đến số lượng tự động của các câu lệnh trong thủ tục lưu trữ.

Cách khác link down , các câu lệnh INSERT trong hình 2 có thể đọc một tập các tài liệu đầu vào từ cột XML link down . Giả dụ các tài liệu link down được load vào cột XML info trong bảng customer link down . Sau đó bạn cần thay đổi một dòng trong mỗi câu lệnh INSERT trong hình 2 tất toán để đọc tài liệu đầu vào từ bảng customer:

FROM customer giá rẻ , XMLTABLE("$i/customerinfo" PASSING info AS "i"

Việc load các tài liệu đầu vào vào bảng có thể khá thuận lợi tính năng nếu bạn phải băm nhỏ nhiều tài liệu công cụ . Tiện ích LOAD ở đâu tốt sẽ hoàn trả song song quá trình phân tách cú pháp XML vô hiệu hóa , làm giảm danh sách được thời gian chuyển các tài liệu vào cơ sở dữ liệu full crack . lấy liền Khi các tài liệu ở đâu uy tín được lưu trong một cột XML dưới định dạng đã ứng dụng được phân tách miễn phí , hàm XMLTABLE có thể băm nhỏ các tài liệu mà không cần phân tách XML.

Câu lệnh INSERT có thể qua mạng được làm phong phú hơn các hàm Xquery ứng dụng , SQL quản lý hoặc join phải làm sao để thích ứng quá trình băm nhỏ danh sách với các yêu cầu cụ thể vô hiệu hóa . Hình 3 cung cấp cho các bạn một ví dụ kỹ thuật . Mệnh đề SELECT gồm có hàm RTRIM có nhiệm vụ remove các chỗ trống phía sau khỏi cột x.ptype nạp tiền . Biểu thức tạo hàng giả mạo của hàm XMLTABLE có chứa thuộc tính dùng tài khoản để ngăn chặn các số điện thoại gia đình bị băm nhỏ vào bảng mục tiêu thanh toán . Biểu thức tạo cột cho các số điện thoại sử dụng hàm XQuery normalize-space tự động , dùng kích hoạt để tách phần không gian trắng ở đầu và đuôi và thay thế mỗi một chuỗi bên trong sửa lỗi của các ký tự trắng bằng một ký tự trống quảng cáo . Câu lệnh lừa đảo cũng thực hiện một hành động join cho bảng tra cứu areacodes nơi nào để số điện thoại tổng hợp được chèn vào bảng phones chỉ khi mã vùng khóa chặn của nó đăng ký vay được liệt trong bảng areacodes.

INSERT INTO phones(cid hỗ trợ , phonetype qua web , phonenum)
 SELECT x.custid tự động , RTRIM(x.ptype) hỗ trợ , x.number
 FROM areacodes a,
    XMLTABLE("$i/customerinfo/phone[@type != "home"]"
         PASSING CAST( qua app ? AS XML) AS "i"
    COLUMNS
     custid  INTEGER   PATH "https://quantrimang.com/@Cid",
     number  VARCHAR(15) PATH "normalize-space(.)",
     ptype   VARCHAR(10) PATH "./@type") AS x
 WHERE SUBSTR(x.number,1,3) = a.code;

Hình 3: Sử dụng các hàm và join tốt nhất để điều chỉnh quá trình băm

Hybrid XML Storage

Trong nhiều tình huống tăng tốc , sự phức tạp download của cấu trúc tài liệu XML có thể làm cho việc băm nhỏ trở nên khó khăn nhanh nhất , không hiệu quả và gây phiền phức hướng dẫn . Bên cạnh sự bất lợi về mặt hiệu suất giá rẻ của việc băm nhỏ mẹo vặt , việc phân tán các giá trị kiểm tra của tài liệu XML trong một số lượng lớn các bảng có thể làm cho chuyên gia phát triển ứng dụng khó khăn trong việc hiểu và truy vấn dữ liệu tối ưu . Để cải thiện hiệu suất chèn XML và giảm số lượng bảng trong cơ sở dữ liệu kinh nghiệm , bạn có thể lưu các tài liệu XML dưới dạng Hybrid XML Storage đăng ký vay . Phương pháp này tối ưu sẽ trích rút các giá trị danh sách hoặc các thuộc tính trên điện thoại của các thành phần XML đăng ký vay được chọn và lưu chúng vào các cột quan hệ bên cạnh tài liệu XML.

Ví dụ trong phần trước đã sử dụng hai bảng dữ liệu , address phones giả mạo , là các bảng mục tiêu cho việc băm nhỏ các tài liệu khách hàng dịch vụ . Tuy nhiên bạn có thể chỉ sử dụng một bảng có chứa các giá trị cid qua mạng , name tải về , city nơi nào của khách hàng trong các cột quan hệ và tài liệu XML đầy đủ giảm giá với các thành phần lặp phone tối ưu , còn các thông tin khác trong một cột XML full crack . nạp tiền Nếu vậy bạn có thể định nghĩa bảng như dưới đây:

CREATE TABLE hybrid(cid INTEGER NOT NULL PRIMARY KEY,
          name VARCHAR(30) như thế nào , city VARCHAR(25) tốc độ , info XML)

Hình 4 thể hiện câu lệnh INSERT qua mạng để cư trú bảng này trên điện thoại . Hàm XMLTABLE sử dụng tài liệu XML như một dữ liệu đầu vào thông qua một bộ marker tham số trên điện thoại . Định nghĩa cột trong hàm XMLTABLE công cụ sẽ sinh 4 cột tương xứng mẹo vặt với định nghĩa hỗ trợ của bảng mục tiêu hybrid qua app . Biểu thức tạo hàng trong hàm XMLTABLE $i dịch vụ sẽ tạo một tài liệu đầu vào đầy đủ sử dụng . Biểu thức này là đầu vào cho các biểu thức tạo cột trong mệnh đề COLUMNS ở đâu tốt của hàm XMLTABLE ở đâu uy tín . Cá biệt lấy liền , biểu thức cột "." tối ưu sẽ trả về tài liệu đầu vào đầy đủ và tạo cột XML doc trực tuyến nhằm chèn vào cột info trong bảng mục tiêu.

INSERT INTO hybrid(cid miễn phí , name nguyên nhân , city hay nhất , info)
 SELECT x.custid nơi nào , x.custname hỗ trợ , x.city khóa chặn , x.doc
 FROM XMLTABLE("$i" PASSING CAST( cập nhật ? AS XML) AS "i"
    COLUMNS
     custid  INTEGER   PATH "customerinfo/@Cid",
     custname VARCHAR(30) PATH "customerinfo/name",
     city   VARCHAR(25) PATH "customerinfo/addr/city",
     doc   XML     PATH "." ) AS x;

Hình 4: Lưu một tài liệu XML theo kiểu hybrid

danh sách Hiện tại bạn hướng dẫn sẽ không thể định nghĩa các ràng buộc (constraint) trong BD2 đăng ký vay để thực thi tính toàn vẹn giữa các cột và các giá trị quan hệ trong một tài liệu XML ở cùng một hàng bản quyền . Mặc dù vậy bạn lại có thể định nghĩa các bẫy sự kiện (trigger) INSERT UPDATE trên bảng ở đâu nhanh để cư trú các cột quan hệ một cách tự động như thế nào bất cứ khi nào một tài liệu giả mạo được chèn tài khoản hoặc sử dụng được cập nhật.

Việc test các câu lệnh INSERT trong DB2 Command Line Processor (CLP) lừa đảo sẽ nơi nào rất hữu dụng tự động . Với mục đích này kích hoạt , bạn có thể thay thế bộ marker tham số bằng một tài liệu XML thông thường như thể hiện trong hình 5 giá rẻ . Tài liệu thường này là một chuỗi giá rẻ được phân biệt bằng dấu ngoặc đơn và mật khẩu được chuyển đổi thành kiểu dữ liệu XML vô hiệu hóa với hàm XMLPARSE mật khẩu . Một cách khác nữa là bạn có thể đọc tài liệu đầu vào từ hệ thống file bằng một trong các UDP tổng hợp , các UDP này vô hiệu hóa được minh chứng trong hình 6.

INSERT INTO hybrid(cid ở đâu tốt , name kinh nghiệm , city tối ưu , info)
 SELECT x.custid trực tuyến , x.custname vô hiệu hóa , x.city tải về , x.doc
 FROM XMLTABLE("$i" PASSING
  XMLPARSE(document
   "<customerinfo Cid="1001">
    <name>Kathy Smith</name>
    <addr country="Canada">
     <street>25 EastCreek</street>
     <city>Markham</city>
     <prov-state>Ontario</prov-state>
     <pcode-zip>N9C 3T6</pcode-zip>
    </addr>
    <phone type="work">905-555-7258</phone>
   </customerinfo>") AS "i"
    COLUMNS
     custid  INTEGER   PATH "customerinfo/@Cid",
     custname VARCHAR(30) PATH "customerinfo/name",
     city   VARCHAR(25) PATH "customerinfo/addr/city",
     doc   XML     PATH "." ) AS x;

Hình 5: Hybrid chèn câu lệnh bằng một tài liệu XML thường

INSERT INTO hybrid(cid miễn phí , name địa chỉ , city kinh nghiệm , info)
 SELECT x.custid nơi nào , x.custname giá rẻ , x.city giá rẻ , x.doc
 FROM XMLTABLE("$i" PASSING
  XMLPARSE(document
   blobFromFile("https://quantrimang.com/xml/mydata/cust0037.xml")) AS "i"
    COLUMNS
     custid  INTEGER   PATH "customerinfo/@Cid",
     custname VARCHAR(30) PATH "customerinfo/name",
     city   VARCHAR(25) PATH "customerinfo/addr/city",
     doc   XML     PATH "." ) AS x;

Hình 6: Hybrid chèn câu lệnh bằng một "FromFile" UDF

Logic chèn trong hình 4 và 5 và hình 6 hoàn toàn giống nhau nhanh nhất . Chỉ có một sự khác biệt là cách tài liệu đầu vào ở đâu uy tín được cung cấp như thế nào: thông qua bộ marker tham số qua web , như chuỗi thông thường tổng hợp được phân biệt bằng dấu ngoặc đơn phải làm sao hoặc thông qua một UDP đọc tài liệu từ hệ thống file.

Các khung nhìn (View) quan hệ trên dữ liệu XML

Bạn có thể tạo các khung nhìn quan hệ trên dữ liệu XML bằng cách sử dụng các biểu thức XMLTABLE xóa tài khoản . Điều này cho phép bạn cung cấp các ứng dụng có khung nhìn quan hệ công cụ hoặc hybrid đối ở đâu tốt với dữ liệu XML mà không cần phải lưu dữ liệu dưới định dạng quan hệ tất toán hoặc hybrid giá rẻ . Cách thức này tự động rất hữu dụng mật khẩu nếu bạn muốn tránh sự phức tạp trong quá trình chuyển đổi một số lượng lớn dữ liệu XML thành định dạng quan hệ như thế nào . Cấu trúc cơ bản SELECT .. cập nhật . FROM .. nguyên nhân . XMLTABLE quản lý được sử dụng trong câu lệnh INSERT ở phần trước công cụ cũng có thể tốt nhất được sử dụng trong các câu lệnh CREATE VIEW.

Lấy một ví dụ quản lý , giả dụ bạn muốn tạo một khung nhìn quan hệ cho các thành phần công cụ của các tài liệu XML trong bảng customer mới nhất để trưng bày ra các giá trị định danh tất toán , tên bản quyền , đường phố và thành phố (identifier cập nhật , name chi tiết , street cập nhật , city) giá rẻ của khách hàng nơi nào . Hình 7 thể hiện định nghĩa khung nhìn tương ứng cộng kích hoạt với một truy vấn SQL cho khung nhìn.

CREATE VIEW custview(id như thế nào , name xóa tài khoản , street hỗ trợ , city)
AS
 SELECT x.custid phải làm sao , x.custname an toàn , x.str nạp tiền , x.place
 FROM customer,
    XMLTABLE("$i/customerinfo" PASSING info AS "i"
    COLUMNS
     custid  INTEGER   PATH "@Cid",
     custname VARCHAR(30) PATH "name",
     str    VARCHAR(40) PATH "addr/street",
     place   VARCHAR(30) PATH "addr/city" ) AS x;
 
SELECT id bản quyền , name FROM custview WHERE city = "Aurora";
 
ID     NAME
----------- ------------------------------
    1003 Robert Shoemaker
 
 1 record(s) selected.

Hình 7: Việc tạo một khung nhìn cho dữ liệu XML

Truy vấn trên khung nhìn trong hình 7 gồm một thuộc tính SQL cho cột city trong khung nhìn mật khẩu . Các giá trị trong cột city đến từ một thành phần XML trong cột XML ở dưới đăng ký vay . Bạn có thể tăng tốc cho truy vấn này bằng cách tạo một XML index trên /customerinfo/addr/city cho cột info full crack của bảng customer thanh toán . DB2 9 cho z/OS và DB2 9.7 cho Linux ở đâu uy tín , UNIX cài đặt , và Windows có thể chuyển đổi thuộc tính quan hệ city = "Aurora" thành thuộc tính XML trong cột XML ở dưới nơi nào để có thể sử dụng XML index phải làm sao . Tuy nhiên điều này không thể thực hiện trong DB2 9.1 và DB2 9.5 cho Linux tất toán , UNIX ở đâu tốt , và Windows sử dụng . Trong các phần trước mẹo vặt của BD2 tốt nhất , nhóm cột XML trong định nghĩa khung nhìn và ghi điều kiện tìm kiếm như một thuộc tính XML mật khẩu , xem trong truy vấn dưới đây quản lý . địa chỉ Nếu không an toàn sẽ không thể sử dụng XML index.

SELECT id vô hiệu hóa , name
FROM custview
WHERE XMLEXISTS("$INFO/customerinfo/addr[city = "Aurora"]")

(Còn nữa)

4.9/5 (54 votes)

Ý kiến khách hàngPreNext