SQL Server'da xml anlama

Bu konu neden kullanmalısınız XML'de nedenleri özetler SQL Server.Bu aynı zamanda yerel xml depolama ve xml görünümü teknoloji arasında seçim için yönergeler sağlar ve öneriler modelleme verileri verir.

İlişkisel veya xml veri modeli

If your data is highly structured with known schema, the relational model is likely to work best for data storage.SQL Server provides the required functionality and tools you may need.Diğer taraftan, yarı yapılandırılmış veya yapılandırılmamış veya bilinmiyor yapı ise, bu tür veri modelleme için dikkat etmeniz gereken vermeniz gerekir.

Yapısal ve semantik biçimlendirme kullanarak veri taşınabilirliği sağlamak için bir platformdan bağımsız modeli istiyorsanız xml iyi bir seçimdir.Ayrıca, aşağıdaki özelliklerden bazıları sağlanırsa uygun bir seçenek şöyledir:

  • Verilerinizi seyrek veri yapısını biliyor musunuz veya veri yapısı gelecekte önemli ölçüde değişebilir.

  • Verilerinizi referansları varlıkları arasında yerine içerik hiyerarşisi temsil eder ve özyinelemeli olabilir.

  • Sipariş verilerinizi devralınır.

  • Verileri sorgulamak veya bazı bölümleri, kendi yapısına göre güncelleştirmek istiyorsunuz.

Bu koşullardan hiçbiri karşılandığında, ilişkisel veri modeli kullanmalısınız.Örneğin, verileriniz xml biçiminde olsa da uygulamanızın yalnızca depolama ve veri almak için bir veritabanı kullanır, bir [n]varchar(max) sütun gereksinim duyduğunuz tüm.xml verileri depolamak sütun ek faydaları vardır.Bu, verileri iyi biçimlendirilmemiş ya da geçerli ve ayrıca belirtilecek sorgu ve güncelleştirme xml verileri destekler motoru sahip olmak dahildir.

sql Server'da xml verilerini depolamak için nedenleri

Aşağıda bazı nedenleri de yerel xml özelliklerini kullanmak için SQL Server , dosya sisteminde xml verilerinizi yönetme:

  • Paylaşmak, sorgu ve xml verilerini işlem temelli ve verimli bir şekilde değiştirmek istiyorsunuz.Hassas veri erişim uygulamanız için önemlidir.Örneğin, bir xml belgesi içindeki bölümlerin bazıları ayıklamak istediğiniz veya tüm belgeyi değiştirmeden yeni bir bölüm eklemek isteyebilirsiniz.

  • İlişkisel veri ve xml veri varsa ve her ikisi de ilişkisel arasındaki birlikte işlerlik istiyorsanız ve uygulamanız içinde xml verileri.

  • Dil desteği için çapraz - sorgu ve veri değişikliği için gerekenetki alanı uygulamaları.

  • Sunucu verileri düzgün biçimlendirilmiş garanti ve ayrıca isteğe bağlı olarak, verileri xml şemaları doğrulamak için istediğiniz.

  • İstediğiniz xml verilerinin verimli sorgu işleme ve iyi ölçeklenebilirlik ve first-rate sorgu iyileştiricisi kullanımı için dizin oluşturma.

  • soap, ado istediğiniz.net ve ole db xml verilerine erişebilirsiniz.

  • xml verilerini yönetmek için veritabanı sunucusunun yönetim işlevleri kullanmak istiyorsunuz.Örneğin, bu yedek, Kurtarma ve çoğaltma olurdu.

Bu koşullardan hiçbiri karşılanan, verilerinizi gibi bir xml olmayan, büyük nesne türü depolamak daha iyi olabilir [n]varchar(max) veya varbinary(max).

xml depolama seçenekleri

xml depolama seçenekleri SQL Server şunları içerir:

  • Yerel depolama alanı olarak xml veri türü

    Verileri xml içeriği koruyan bir iç gösterimi veriler depolanır.Bu iç gösterim öðe ve öznitelik değerleri kapsayıcı hiyerarşi ve belge düzeni hakkında bilgi içerir.Özellikle, xml verilerinin bilgi içeriği korunur.Infoset hakkında daha fazla bilgi için ziyaret http://www.w3.org/TR/xml-infoset.Aşağıdaki bilgiler saklanmıyor çünkü bilgi kümesi içeriğini xml, metin özdeş kopyasını olabilir: anlamsız beyaz boşluk, sipariş öznitelik, ad alaný önekleri ve xml bildirim.

    Yazdığınız için xml veri türü, bir xml veri türü bağlı xml şemalarını post-schema doğrulama Infoset (PSVI) bilgi kümesi türü bilgilerini ekler ve kodlanmış iç gösterimi.Bu ayrıştırma hızını önemli ölçüde artırır.Daha fazla bilgi için bkz: W3C xml şeması belirtimlerine http://www.w3.org/TR/xmlschema-1 ve http://www.w3.org/TR/xmlschema-2.

  • xml ve ilişkisel depolama arasındaki eşlemeyi

    Açıklama eklenmiş bir şema (axsd) kullanarak, xml bir veya daha fazla tablodaki sütunlara decomposed.Bu ilişkisel veri kalitesini korur düzey.Sonuç olarak, öğeleri sıralaması dikkate rağmen hiyerarşik yapısı korunur.Şema özyinelemeli olamaz.

  • Büyük nesne depolama, [n]varchar(max) ve varbinary(max)

    Verileri özdeş bir kopyası depolanır.Bu yasal belgeler gibi özel amaçlı uygulamalar için kullanışlıdır.Çoğu uygulama, tam bir kopyasını gerektirir ve xml içeriği (bilgi kümesi doğruluk) memnun.

Genellikle, bu yaklaşımları bir arada kullanmak zorunda kalabilirsiniz.Örneğin, xml verilerinizi saklamak isteyebilirsiniz bir xml veri türü sütun ve özelliklerini buradan ilişkisel içine sütuns.Veya eşleme teknolojisi-xml sütunlar ve özyinelemeli bölümlerinde özyinelemesiz bölümlerini depolamak için kullanmak istediğiniz xml veri türü sütun.

Seçim xml teknolojisi

Seçim xml teknolojisi, xml görünümü ile yerel xml genellikle aşağıdaki etkenlere bağlıdır:

  • Depolama seçenekleri

    xml verilerini büyük nesne (örneğin, ürün kılavuzunu), depolama için daha uygun olabilir veya ilişkisel sütunlara depolama daha amenable (örneğin, bir çizgi öğe xml biçimine dönüştürülür).Her depolama seçeneği için farklı bir belge kalitesini korur kapsam.

  • Sorgu özellikleri

    Bir depolama seçeneği başka göre çok daha uygun niteliğine sorgularınızı ve bulduğunuz kapsam xml verileri için sorgular.Verilerinizin xml, xml düğümleri üzerinde Örneğin, doðrulama değerlendirme belirtilecek sorgu değişen derecelerde iki depolama seçenekleri desteklenmektedir.

  • xml verilerini dizin oluşturma

    xml verilerinin xml sorgu performansını hızlandırmak için dizin oluşturmak isteyebilirsiniz.Dizin oluşturma seçenekleri ile depolama seçenekleri değişir; iş yükünü en iyi duruma getirmek için en uygun seçim yapmak zorunda.

  • Veri değişikliği yetenekleri

    Bazı iş yükleri belirtilecek değiştirilmesiyle xml verilerini içerir.Örneğin, bu Web içeriği gibi diğer iş yükleri desteklerken, bir belge içinde yeni bir bölüm ekleme içerebilir.Veri değişikliği dili desteği uygulamanız için önemli olabilir.

  • Şema desteği

    xml verilerini bir xml şema belgesi olmayabilir veya bir şema tarafından açıklanan.Şemaya bağlı xml desteği xml teknolojisi üzerine bağlıdır.

Farklı seçimler farklı performans özellikleri de vardır.

Yerel xml depolama

xml verilerinizi depoladığınız bir xml veri türü sütun server.Aşağıdakiler geçerliyse bu uygun bir seçimdir:

  • İstediğiniz sunucuda ve aynı xml verilerini depolamak için basit bir yol saat, belge düzeni korumak ve belge yapısı.

  • Edebilir veya bir şema, xml verilerinizi olmayabilir.

  • Sorgulamak ve xml verilerini değiştirmek istediğiniz.

  • xml verilerini daha hızlı sorgu işleme için dizin oluşturmak istiyor.

  • Sistem uygulamanız gereken katalog görünümleri xml verileri ve xml şemalarını yönetmek için.

aralık yapıları olan xml belgeleri sahip yerel xml depolama yararlıdır veya uyması için ilişkisel yapıları eşlemek sabit farklı veya karmaşık şemaları xml belgeleri sahip.

Örnek: xml verileri, xml veri türü kullanarak modelleme

Ürün kılavuzunu, her konu için ayrı bir bölüm oluşur ve her bölüm içinde birden çok bölüm içeren xml biçiminde düşünün.Bir bölümün alt bölümleri içerebilir.Sonuç olarak, <bölüm> bir özyinelemeli öğe.Karışık içerik, diyagramları ve teknik malzeme büyük miktarda ürün kılavuzları içerir; yarı yapılanmış verilerdir.Kullanıcılar arama bölümüne "kümelenmiş dizin" gibi ilgi konuları için bağlamsal arama gerçekleştirmek isteyebilirsiniz Bu bölüm içinde "dizin" ve sorgu teknik miktarları.

xml belgeleri için uygun depolama modelidir bir xml veri türü sütun.Bu bilgi kümesi içeriğini xml verilerinizi korur.xml dizin oluşturma sütun yararları performans sorgusu.

Örnek: xml verilerinin tam kopyaları koruyarak

Gösterim amacıyla devlet mevzuatına, xml belgeleri metinsel tam kopyalarını korumak gerekli olduğunu varsayalım.Örneğin, bu imzalı belgeler, yasal belgeler veya hisse senedi işlem emirleri dahil olabilir.Belgelerinizi saklamak istediğiniz bir [n]varchar(max) sütun.

Verileri sorgulamak için dönüştürme xml veri türü yürütmek saat ve Xquery it. üzerinde yürütmekRun -saat dönüştürme pahalı, özellikle belge büyük olduğu durumlar olabilir.Sık sık sorgularsanız, gereğinden belgelerde saklayabilirsiniz bir xml veri sütunu yazın ve tam belge kopyalardan döndürürken dizin [n]varchar(max) sütun.

xml sütun olabilir bir hesaplanan sütungöre [n]varchar(max) sütun.Ancak, hesaplanan, bir xml sütun üzerinde xml dizin oluşturamaz veya xml dizin oluşturulmadan [n]varchar(max) veya varbinary(max) sütunlar.

xml görünüm Technology

Bir veritabanında xml şemalarınızı ve tablolar arasında bir eşleme tanımlayarak, "xml Görünüm" oluşturma kalıcı veri.xml toplu yükleme xml görünümü kullanarak temel tabloların doldurmak için kullanılır.XPath 1.0 sürüm kullanarak xml görünümü sorgulama yapabilirsiniz; Sorgu tabloları sql sorgularını çevrilir.Benzer şekilde, güncelleştirmeler için bu tabloları yayılır.

Bu teknoloji, aşağıdaki durumlarda yararlıdır:

  • Varolan ilişkisel veri xml görünümlerini kullanarak xml merkezli bir programlama modeli olmasını istiyorsanız.

  • Bir dış ortak sağlanan xml verileriniz için bir şema (xsd, xdr) var.

  • Sipariş verilerinizi, önemli olan özyinelemeli sorgu tablo verilerinizi değil veya düzeyde özyineleme derinliği önceden bilinir.

  • Sorgulamak ve XPath 1.0 sürüm kullanarak xml görünüm üzerinden veri değiştirmek istiyorsunuz.

  • İstediğiniz toplu yükleme xml verileri ve xml görünümü kullanarak temel tablolarına decompose.

İlişkisel veri xml olarak veri değişimi ve Web Hizmetleri ve xml verilerini sabit şema ile kullanıma sunulan örnek verilebilir.Daha fazla bilgi için bkz: msdn Çevrimiçi Kitaplığı.

Örnek: Metin notlu xml şeması (axsd) kullanarak veri modelleme

Şekil için müşteriler, siparişler ve xml olarak işlemek istediğiniz satır öğelerini gibi varolan ilişkisel veri olduğunu varsayalım.xml görünümü ilişkisel veri axsd kullanarak tanımlayın.xml görünümü sağlar toplu yükleme tablo ve sorgu ve güncelleştirme xml görünümü kullanarak ilişkisel veri xml verileri.Bu sql uygulamalarınızı kesintiye uğramadan çalışmanız sırasında diğer uygulamaları ile xml biçimlendirmesi içeren veri alışverişi varsa, kullanışlı bir modeldir.

Karma Model

Sık sık bir arada ilişkisel ve xml veri türü sütunlarındaki uygun veri modelleme.Bazı değerler xml verilerinizde bulunan ilişkisel depolanabilir sütuns ve geri kalan veya xml saklanan tüm xml değerini sütun.İlişkisel sütunları ve kilitleme özellikleri üzerinde oluşturulan dizinler üzerinde daha fazla denetim sağlamak için bu daha iyi bir performans ortaya.

İlişkisel sütunlara depolamak için değerleri üzerinde iş yükünüzü bağlıdır./Customer/@CustId, yol ifade dayalı xml değerleri geri alırsanız, değerini yükseltmek CustId öznitelik ilişkisel bir sütun ve dizin oluşturma, sorgu performansı daha hızlı verim.Diğer taraftan, ilişkisel sütunlara kapsamlı ve nonredundantly xml verilerinizi decomposed, yeniden derleme maliyeti önemli olabilir.

Yapılandırılmış xml verileri, içeriği, örneğin, bir tablo ; XML'e dönüştürülmüş tüm değerleri ilişkisel sütunlara eşleyin ve büyük olasılıkla xml görünümü teknolojisini kullanır.

xml veri Parçalı yapı

The granularity of the XML data stored in an XML column is very important for locking and, to a lesser degree, it is also important for updates.SQL Server uses the same locking mechanism for both XML and non-XML data.Bu nedenle satır -düzey satırda kilitlenmesine neden tüm xml örnekleri kilitleme.Zaman taneciklik büyük, çok kullanıcılı bir senaryoda reddetmek güncelleştirmeleri neden işlem hacmi büyük xml örneğini kilitleme.Diğer taraftan ciddi decomposition nesne Kapsülleme kaybeder ve yeniden birleştirme maliyeti artırır.

Veri modelleme gereksinimleri ve kilitleme ve güncelleştirme özellikleri arasında bir denge iyi tasarım için önemlidir.Bununla birlikte, SQL Server, depolanan xml örnekleri gerçek boyutu önemli değildir.

Örneğin, bir xml örnek için güncelleştirmeleri kısmi ikili büyük nesne (blob) kısmi dizin güncelleştirmelerini ve varolan depolanan xml örnek için güncelleştirilmiş sürüm karşılaştırıldığında yeni desteğini kullanarak gerçekleştirilir.Kısmi ikili büyük nesne (blob) güncelleştirmesi iki xml örnekleri arasında fark bir karşılaştırma yapar ve yalnızca farklar güncelleştirir.Kısmi dizin güncelleştirmeleri, yalnızca xml dizin içinde değiştirilen satırları değiştirin.

Bu Bölümde

Konu

Açıklama

xml verilerini yükleme

xml verilerini içe aktarmak nasıl açıklar SQL Server.

İş mantığı ekleme

xml veri için iş mantığı eklemek nasıl açıklar.

Ayrıca bkz.

Diğer Kaynaklar