Mengapa menyimpan data XML dalam database SQL Server?

Mengapa menyimpan data XML dalam database SQL Server? – Terkadang, XML tampak seperti konvensi membingungkan yang menawarkan solusi untuk masalah yang tidak dimiliki oleh pengguna database rata-rata. Untuk memperburuk keadaan, para ahli XML umumnya tidak memiliki sarana untuk memberikan jawaban sederhana bahkan untuk pertanyaan yang paling sederhana sekalipun. Rob Sheldon, sebaliknya, dapat menjawab bahkan pertanyaan-pertanyaan yang entah bagaimana kita merasa konyol bertanya di depan umum, dan berpikir dua kali untuk melakukannya.

Mengapa menyimpan data XML dalam database SQL Server?

zorba-xquery – Mengapa menyimpan data XML dalam database SQL Server? Mengapa tidak menyimpan XML sebagai dokumen dalam sistem file saja?
Dalam beberapa kasus, sistem file mungkin baik-baik saja, jika Anda tidak berencana untuk mengaitkan file dengan data apa pun di database SQL Server Anda dan Anda tidak ingin memanfaatkan fitur khusus XML apa pun yang disediakan SQL Server , seperti dapat mengaitkan data relasional dengan data dalam instance XML. Misalnya, Anda memiliki database yang menyimpan informasi produk. Untuk setiap produk, Anda memelihara dokumen XML yang menyediakan detail tentang produk tersebut. Dengan menyimpan dokumen di dalam database, Anda bisa membuat kueri yang mengambil data relasional dan informasi spesifik dalam instance XML yang terkait dengan data tersebut.

Di SQL Server, Anda biasanya menyimpan data XML dalam kolom yang dikonfigurasi dengan tipe data xml. Tipe data mendukung beberapa metode yang memungkinkan Anda membuat kueri dan memodifikasi elemen individual, atribut, dan nilainya secara langsung dalam instance XML, daripada harus bekerja dengan instance itu secara keseluruhan. Selain itu, tipe data xml memastikan bahwa setiap instance XML, setidaknya, dibentuk dengan baik menurut standar ISO. Dan jika Anda mengaitkan kumpulan skema dengan kolom xml Anda, Anda dapat memvalidasi lebih lanjut struktur dan datanya.

Baca Juga : Prosesor XQuery Paralel yang Dapat Diskalakan

SQL Server juga menyediakan beberapa opsi untuk mengindeks kolom xml Anda, dengan fitur yang diperluas mulai dari SQL Server 2012. Selain itu, menyimpan XML Anda dalam database SQL Server memungkinkan Anda memanfaatkan kemampuan administratif dan mekanisme akses data SQL Server, seperti OLE DB dan ADO.NET. Bahkan jika Anda tidak menyimpan data dalam kolom xml, Anda masih dapat memanfaatkan penyimpanan dan kemampuan akses SQL Server lainnya. Yang mengatakan, jika Anda tidak memerlukan salah satu fitur ini, Anda mungkin tidak memerlukan SQL Server. Lihatlah bagaimana Anda berencana untuk mengakses dan memodifikasi file XML Anda, lalu putuskan.

Apa yang membuat dokumen XML berbeda dari file teks biasa?
Dokumen XML adalah dokumen yang sesuai dengan aturan pemformatan ISO yang mengatur eXtensible Markup Language (XML). Seperti namanya, XML adalah bahasa berbasis teks yang mirip dengan HTML. Ini menggunakan tag untuk menggambarkan sifat data dan bagaimana data harus diformat. Tidak seperti HTML, bagaimanapun, XML memungkinkan Anda menentukan tag Anda sendiri, dengan demikian sifatnya yang dapat diperluas, itulah sebabnya XML sering disebut sebagai bahasa yang menggambarkan diri sendiri. Karena telah diadopsi secara universal, Anda dapat menggunakannya untuk berbagi berbagai data di seluruh sistem yang heterogen, selama XML sesuai dengan standar ISO.

Dokumen XML mencakup dua tipe dasar informasi: data itu sendiri dan tag yang mengatur dan mendeskripsikan data. XML berikut menunjukkan komponen dasar dokumen XML:

Elemen mewakili blok bangunan dalam instance XML. Mereka menyertakan tag yang diapit tanda kurung sudut dan data di antara tag tersebut. Semua elemen berisi tag pembuka dan tag akhir, seperti <Mobil> dan </Mobil>, masing-masing. Di antara tag pembuka dan akhir, Anda akan menemukan elemen turunan, data, atau keduanya. Misalnya, elemen <Mobil> disematkan di elemen <Mobil>, dengan elemen turunan seperti <Buat> dan <Model> yang berisi data aktual.

Selain itu, tag pembuka elemen dapat menyertakan atribut, seperti id=”1234″, yang merupakan kombinasi dari nama atribut (id) dan nilainya (1234). Anda juga akan melihat bahwa XML dimulai dengan jenis tag khusus yang disebut deklarasi. Deklarasi menentukan versi XML mana yang digunakan dan secara opsional dapat menyertakan informasi pengkodean. Dalam hal ini, deklarasi menunjukkan bahwa data disimpan sebagai urutan karakter Unicode 8-bit.

Contoh dasar ini juga menunjukkan sifat hierarkis XML dan sifatnya yang menggambarkan dirinya sendiri. Kita bisa dengan mudah membuat struktur XML yang menggambarkan orang, tempat, atau hal lainnya. Meskipun XML tidak lain hanyalah teks sederhana, format yang menggambarkan dirinya sendiri memungkinkannya meneruskan data ke berbagai sistem. Selama aplikasi seperti SQL Server memiliki kapasitas untuk mengurai XML dan XML itu sesuai dengan standar ISO, tidak ada batasan untuk jenis data yang dapat Anda lewati di antara sistem yang heterogen. Penerimaan universal dan metodologi standarnya menjadikannya cara yang sederhana namun efektif untuk memindahkan data antar aplikasi yang melayani fungsi yang berbeda dan didasarkan pada teknologi yang berbeda.

Apa yang dimaksud dengan instance XML di SQL Server, sebagai lawan dari dokumen XML?
Anda akan sering menemukan bahwa dokumentasi SQL Server mengacu pada XML yang disimpan dalam objek xml (kolom, variabel, atau parameter) sebagai instance XML. Ini karena SQL Server mendukung dokumen XML dan fragmen XML, keduanya dianggap sebagai instance XML. Meskipun Anda akan sering melihat istilah instance XML dan dokumen XML yang digunakan dapat dipertukarkan, sebenarnya, keduanya berbeda, dengan dokumen menjadi jenis instance, seperti halnya fragmen. Anda dapat menyimpan dokumen XML atau fragmen dalam objek xml . Namun, jika Anda mengaitkan objek itu dengan kumpulan skema, Anda bisa menentukan bahwa hanya dokumen yang diizinkan. Untuk dianggap sebagai dokumen, instance XML harus memiliki hanya satu elemen root, tanpa teks yang ditentukan di tingkat atas.

Saat menyimpan dokumen XML dalam database SQL Server, haruskah Anda selalu menggunakan tipe data xml?
Tidak, Anda tidak harus. Dalam beberapa kasus, Anda harus menggunakan penyimpanan objek besar seperti varchar(max) atau nvarchar(max). Itu semua tergantung pada bagaimana Anda akan mengakses dan memperbarui instance XML dan apakah Anda ingin memvalidasi struktur XML.

Tipe data xml mengharuskan semua XML dibentuk dengan baik sesuai dengan standar ISO, yang menentukan bagaimana elemen XML harus diformat. Anda bahkan dapat mengambil langkah lebih jauh dengan mengaitkan kumpulan skema dengan kolom xml Anda. Kumpulan skema berisi satu atau beberapa skema XML yang menentukan tipe elemen dan atribut yang dapat dikandung oleh instance XML. Skema juga lebih ketat mendefinisikan jenis nilai yang dapat dikaitkan dengan elemen atau atribut.

Selain itu, tipe data xml mendukung sekumpulan metode yang memungkinkan Anda mengkueri elemen dan atribut tertentu dalam instance XML. Misalnya, misalkan kolom xml Anda menyimpan semua informasi kontak yang terkait dengan setiap pelanggan. Data mungkin termasuk alamat email, nomor telepon, pegangan jejaring sosial, dan alamat fisik. Dari kolom ini, Anda dapat mengambil alamat email atau menambahkan nomor ponsel atau mengubah alamat rumah. Plus, Anda dapat menentukan indeks XML pada kolom xml jika beban kerja kueri Anda biasanya menyertakan kolom tersebut.

Namun, dalam beberapa kasus, Anda tidak memerlukan fitur apa pun yang disediakan oleh tipe data xml. Misalnya, Anda mungkin menyimpan manual produk yang hanya diakses secara keseluruhan. Jika manual diubah, nilai xml itu sendiri diganti dengan dokumen baru. Anda tidak perlu menanyakan atau memodifikasi komponen individual, dan Anda tidak peduli dengan XML yang divalidasi. Dalam situasi seperti ini, Anda harus menggunakan tipe data objek besar untuk menghindari proses validasi tambahan yang dilakukan mesin database untuk kolom xml. Secara umum, setiap kali aplikasi Anda hanya menyimpan dan mengambil seluruh instance XML atau Anda ingin mempertahankan instance XML dalam bentuk aslinya, seperti halnya dengan dokumen legal, Anda harus tetap menggunakan penyimpanan objek besar.

Apa artinya kolom xml diketik?
Kolom xml yang diketik (atau variabel atau parameter) merujuk ke kolom yang terikat ke kumpulan skema XML dalam SQL Server. Kumpulan skema adalah kumpulan satu atau beberapa skema XML yang menentukan struktur yang diizinkan dari instance XML yang disimpan dalam kolom tersebut.

Skema menentukan jenis elemen dan atribut yang diizinkan dalam XML dan bagaimana komponen tersebut harus diurutkan dan dipertahankan secara hierarkis. Skema juga menentukan jenis nilai yang diizinkan dalam elemen atau atribut (seperti string atau bilangan bulat) dan berapa kali elemen dapat dimasukkan. Misalnya, skema mungkin menentukan bahwa harus ada tepat satu elemen anak <FirstName> dalam setiap elemen <Customer> dan nilai <FirstName> harus berupa string.

Saat Anda memasukkan contoh XML ke dalam kolom xml yang tidak diketik, mesin database memvalidasi XML untuk memastikan bahwa itu terbentuk dengan baik. Saat Anda memasukkan instance XML ke dalam kolom yang diketik, mesin memastikan bahwa XML terbentuk dengan baik dan mematuhi struktur yang lebih kaku yang ditentukan dalam skema terkait.

Anda harus menggunakan kolom xml yang diketik setiap kali Anda memiliki kumpulan skema yang diperlukan dan Anda ingin SQL Server memvalidasi XML terhadap skema tersebut. Jika Anda tidak memiliki koleksi skema atau tidak ingin mengaitkan kolom xml dengan koleksi yang Anda miliki, gunakan kolom yang tidak diketik.

Facebooktwitterredditpinteresttumblr