Saya telah mengerjakan aplikasi web berbasis database selama beberapa tahun dan baru-baru ini mengerjakan proyek yang melibatkan CMS yang berkemampuan XML. Hal ini membuat saya berpikir tentang penggunaan XML / XSLT secara umum dan dalam situasi apa ini akan lebih berguna daripada pendekatan yang selalu saya gunakan, yaitu menyimpan semua data saya dalam database SQL (Saya) dan kemudian menggunakan PHP / Python / dll. untuk mengerjakannya di web sesuai kebutuhan.
Jelas ada sesuatu yang saya tidak "dapatkan" di sini .. adakah yang bisa memberi saya contoh aplikasi di mana menyimpan data dalam file XML daripada dalam database lebih disukai?
Jawaban:
Mengutip Buku Ini (XML Efektif: 50 Cara Khusus untuk Meningkatkan XML Anda):
Saya pikir ini merangkumnya, jika sedikit terus terang. XML adalah format pertukaran data. Seseorang dapat memiliki pustaka parsing XML yang dapat melakukan kueri DOM dengan ekspresi XPath tetapi itu tidak sama dengan DBMS. Anda dapat membangun DBMS dengan antarmuka DOM / XPath tetapi untuk mendapatkan properti ACID atau skala ke kumpulan data yang besar, Anda perlu mengimplementasikan mesin DBMS dan format data dengan indeks, logging, dan artefak lain dari DBMS - yang (menurut definisi) membuatnya itu sesuatu selain XML.
sumber
Gunakan XML untuk membuat file yang perlu dikirim ke aplikasi lain. XML lebih cocok sebagai format pertukaran data daripada sebagai format penyimpanan data.
Tautan berikut tidak buruk untuk dijelaskan saat menggunakan XML: Mengapa saya harus menggunakan XML?
sumber
SQL adalah data tabular yang bagus - data yang mudah dimasukkan ke dalam baris & kolom. XML bagus untuk data hierarki - data yang memiliki beberapa level dengan ukuran berbeda.
SQL bagus untuk penyimpanan & pencarian. XML bagus untuk transmisi & format.
sumber
1) Ketika Anda harus menukar data Anda dengan orang lain. XML adalah " lingua franca " dari Web - hampir semua orang dapat membaca dan menafsirkannya, tidak seperti file database.
2) Ketika volume data Anda kecil dan Anda tidak perlu melakukan kueri rumit terhadapnya. File XML bagus untuk hal-hal seperti menyimpan konfigurasi atau template dokumen.
3) Ketika Anda tidak memiliki banyak penulis yang mencoba mengakses data yang sama. Database SQL telah melibatkan mekanisme konkurensi yang bekerja di belakang layar untuk Anda. Database SQL dapat mendukung indeks untuk pengambilan informasi pada kumpulan data besar dengan cepat ...
sumber
Hal-hal yang saya gunakan XML untuk:
Tidak banyak tumpang tindih antara kasus penggunaan tersebut dan kasus penggunaan untuk database. Beberapa, tapi tidak banyak.
Ironisnya, di mana saya membuat penggunaan XML terberat saya saat ini adalah di aplikasi desktop yang membangun ADO DataSet dalam memori dan menggunakan metode WriteXml dan ReadXml dari DataSet untuk mempertahankan dan mengambilnya kembali. Saya menggunakan ADO karena jauh lebih mudah untuk secara dinamis membangun model data yang ditentukan oleh metainformation menggunakan ADO daripada menerapkan model objek saya sendiri untuk tugas tersebut.
Jadi, inilah kasus yang sepertinya saya menggunakan XML sebagai database. Tapi sebenarnya tidak. Saya menggunakan model objek yang kebetulan mengimplementasikan banyak fungsionalitas seperti database, dan saya menggunakan XML sebagai format ketekunannya.
sumber
Saya yakin ada beberapa aplikasi komersial yang menggunakan XML sebagai media penyimpanan. Saya telah melakukannya untuk aplikasi perencanaan proyek, di mana pengguna menyimpan setiap proyek dalam file itu sendiri. Aplikasi ini berada di stik USB, dan tidak memerlukan penginstalan. Semua data ditarik dari XML dan dikerjakan dalam memori, jadi getRecord (id) sangat cepat.
Jadi jawaban saya adalah .. ketika data cukup kecil untuk disimpan di memori, database over kill.
sumber
Jangan.
Coba PILIH penulis DARI buku
sumber
Kapan pun Anda tidak memiliki kemewahan memiliki database (pikirkan aplikasi pengguna tunggal) atau membutuhkan format penyimpanan yang sangat ringan.
Juga seperti yang disebutkan pada poster sebelumnya, format pertukaran.
sumber
Baik XML dan RDMS dapat digunakan sebagai datastore, tetapi setiap implementasi memiliki kelebihan dan kekurangannya sendiri.
Menggunakan XML untuk menyimpan data untuk aplikasi web biasanya bukan masalah besar sampai Anda mulai berurusan dengan data dalam jumlah besar atau Anda memutuskan ingin menemukan informasi lain dari data Anda (contoh: data mining). Dengan kata lain, menyimpan file XML dalam jumlah besar untuk sumber data tidak terlalu skalabel, tetapi lebih mudah untuk memindahkan data. XML juga dapat digunakan untuk membuat serial objek kompleks dalam format non-relasional, yang dapat menghilangkan kebutuhan ORM jika Anda dapat membuat serial / deserialisasi objek Anda langsung dari XML
RDMS (database) biasanya lebih skalabel, menawarkan dukungan konkurensi yang lebih besar, dan jauh lebih cepat saat bekerja dengan data dalam jumlah besar. Model relasional membuatnya lebih mudah untuk menambang data nanti. Basis data mengalami ketidakcocokan impedansi objek-relasional ( http://en.wikipedia.org/wiki/Object-Relational_impedance_mismatch ) yang mungkin mengharuskan Anda untuk menulis kode jelek atau menggunakan ORM yang kompleks.
sumber
Saya akan pergi jika saya telah membatasi database mysql di host saya, maka saya akan melihat peluang untuk menggunakan XML sebagai datastore.
sumber
Berikut ini contoh penggunaan XML dengan SQL: Pengguna terotentikasi membaca dan menulis data ke berbagai database, tidak semuanya DBMS yang sama. Pengguna untuk Perusahaan A menggunakan data dari database SQL Server lokal. Pengguna untuk Perusahaan B menggunakan data dari database Oracle jarak jauh. Dan seterusnya. Selusin database berbeda, masing-masing dengan skema yang sedikit berbeda untuk data dasar yang sama.
Pengembang situs web tidak memiliki kemampuan untuk membuat prosedur tersimpan pada basis data jarak jauh. SQL harus dikirim langsung dari aplikasi web ke database. Karena setiap database memiliki sintaks dan skema SQL yang sedikit berbeda, maka perlu menggunakan SQL yang berbeda untuk masing-masing dari 12 database untuk operasi yang sama (SELECT, INSERT, dll).
Salah satu pilihan untuk menyematkan pernyataan SQL di aplikasi web adalah dengan menempatkannya dalam file XML. Setiap file XML berisi sekumpulan pernyataan SQL untuk salah satu dari lusinan database. Kode menentukan database mana yang diakses untuk pengguna yang masuk, dan mengambil SQL yang sesuai dari file XML yang ditentukan.
Sama seperti prosedur tersimpan, SQL dalam file XML dapat diperbarui tanpa menghentikan atau mengkompilasi ulang aplikasi.
sumber
Beberapa aplikasi menggunakan file XML untuk menyimpan konfigurasi, saya lebih suka menggunakan SQLite untuk melakukannya.
sumber
Saya tidak akan pernah menggunakan jenis XML apa pun untuk menyimpan data saya.
Kami menggunakan transformasi XSLT sebagai lapisan abstraksi data di aplikasi SOA kami. Semua objek saling mengirim data dalam XSLT, jadi hanya ada satu bahasa yang perlu mereka pahami. Kecuali untuk konektor database, yang harus dapat mengubah data menjadi SQL, untuk dikirim ke DB.
Dengan cara ini Anda tidak memiliki pembuatan string SQL yang didistribusikan ke lebih dari satu juta objek di aplikasi Anda. Membuat perawatan lebih mudah.
sumber