Yang saya pelajari di sekolah adalah SQL yang menyimpan data ke tabel. Saat ini saya sedang mengerjakan proyek tempat data disimpan dalam file XML. Selain itu setiap XML berisi referensi ke file visual (JPEG).
XML itu sendiri berisi lebih dari seribu titik koordinat, ditambah informasi tambahan tentang data.
Menurut pendapat saya tidak masuk akal untuk menyimpan informasi ini dalam tabel. Selain itu saya juga tidak bisa menyimpan file JPEG dengan SQL.
Apa solusi yang tepat, atau adakah kesalahan dalam berpikir di pihak saya?
Seperti yang Anda lihat, saya cukup baru di database. Jadi segala saran, tautan, dan saran yang membangun dipersilahkan.
database-design
xml
チ ー ズ パ ン
sumber
sumber
Jawaban:
Yang Anda butuhkan adalah ketekunan XML Anda. Gunakan solusi NoSQL atau sistem file.
Tidak ada manfaatnya menggunakan RDBMS, kecuali Anda ingin menggunakannya sebagai ganti NoSQL atau sistem file.
sumber
Saya membookmark posting blog Phil Factor Normalisasi dan 'Anima notitia copia' hari ini karena merangkum kasus ini dengan rapi dan berlawanan dengan normalisasi tipe data tertentu. Jalankan kueri berikut pada contoh SQL dan lihat apakah Anda setuju.
Anda menyebutkan bahwa file XML berisi "informasi tambahan tentang data". Apakah ada manfaat dalam pemodelan metadata dalam database relasional, untuk keperluan interogasi mungkin? Jika demikian, mungkin ada kasus untuk mengekstraksi data yang relevan dan mempertahankan XML yang tersisa sebagai jenis dokumen XML.
Argumen Phil Factor adalah bahwa bidang non-relasional dalam database relasional dapat diterima jika bidang tersebut diperlakukan sebagai atom yaitu tidak berubah, atau ketika seluruh bidang berubah, bukan bagian penyusunnya. Perpanjangan alami dari hal ini adalah bahwa jika dokumen Anda mengandung elemen yang Anda minati, mungkin ada nilai dalam menerapkan model relasional untuk elemen-elemen tersebut.
Relevan dengan pertanyaan tetapi terutama untuk ungkapan, satu kutipan terakhir dari Phil:
Bukankah kita semua!
sumber
Sejauh menyangkut database Oracle, jawabannya adalah Anda tidak bisa . Semua data dalam database disimpan dalam tabel, bahkan meta-data. Data dapat disimpan dalam antrian, tetapi itu hanyalah cara berbeda menggunakan tabel. File XML dapat disimpan di luar database, tetapi itu tidak memenuhi persyaratan "dalam database" Anda.
Bergerak melampaui pertanyaan Anda, file JPEG atau file apa pun dalam hal ini dapat disimpan dalam database. Mereka akan membutuhkan tabel dan kolom LOB (BLOB atau CLOB). XML juga dapat disimpan dengan cara ini, tetapi mengimpor data XML ke dalam basis data akan memungkinkan Anda untuk beroperasi pada data dengan cara yang tidak mudah dilakukan sekarang. Ini juga akan memberikan manfaat lain dari database termasuk: Redundansi Berkurang, Aksesibilitas, Konkurensi, Skalabilitas, Interoperabilitas, Keamanan, Pemulihan, dan Kinerja.
Jika manfaat dari database tidak memajukan tujuan Anda, maka jangan gunakan satu.
sumber
Kedengarannya bagi saya seperti Anda mencoba menerapkan database spasial . Ini adalah jenis database relasional (atau tambahan untuk produk-produk database yang ada, misalnya Oracle Spatial, postGIS) yang mendukung fungsi tipe data spasial dan digunakan untuk mengoptimalkan penyimpanan dan permintaan data terkait fitur spasial seperti batas poligon, titik dan lapisan. XML yang Anda miliki terdengar seperti pasangan koordinat batas dan citra terkait terdengar seperti aset karya seni untuk ditampilkan dalam batas itu. Jika datanya cocok, pertimbangkan basis data spasial relasional yang menawarkan pemodelan spasial built-in untuk menyediakan fungsionalitas yang Anda akan menemukan sulit atau memakan waktu untuk diimplementasikan.
sumber