Apakah desain basis data yang baik kurang penting untuk basis data spasial?

15

Saya memiliki perasaan yang kuat bahwa desain dan normalisasi basis data sering muncul di tangan kedua ketika berhadapan dengan data spasial.

Dengan perangkat lunak yang berharga mahal dan database dengan lebih dari 100 tabel bidang, saya harus bertanya:

Apakah ada alasan bagus untuk mengambil pertimbangan selain normalisasi ketika merancang basis data spasial?

Saya kira orang akan meminta contoh, tetapi saya tidak bisa memberi di sini, jadi pertanyaan saya mungkin lebih ditujukan untuk mereka yang berarti bahwa 100 bidang tidak masalah dan lebih mudah dirawat daripada desain normal yang tepat.

Apa argumennya?

Nicklas Avén
sumber
Dalam kasus ArcGIS, database yang dinormalisasi dengan integritas referensial sulit dicapai, karena Anda hanya terbatas pada fitur basis data yang terpapar kepada Anda dan didukung oleh ArcGIS. Ini sangat menyebalkan sebagai orang basis data relasional ... memainkan permainan telepon, dengan ArcSDE di tengah.
nw1

Jawaban:

16

Saya merasa bahwa basis data spasial harus diperlakukan tidak berbeda dengan database tradisional. Mereka pada dasarnya melakukan hal yang sama, menyimpan sejumlah besar data untuk pengambilan cepat. Sebagai contoh, dalam PostgreSQL / PostGIS, geometri hanyalah tipe data lain. Sama seperti teks, atau integer. Sama di SQL Server 2008. Sama di Oracle. Jika bagian "spasial" hanyalah tipe bidang lain dalam database, lalu apakah benar-benar berbeda dari database asli? Apakah ini berarti kita harus membuang semua aturan desain database tradisional?

Tentunya normalisasi dapat dilakukan terlalu jauh, seperti halnya dengan database tradisional, jadi merupakan trade off untuk menemukan desain terbaik yang sesuai dengan kebutuhan Anda.

Jika Anda berencana membuat struktur yang sangat tidak normal dengan tabel 100 kolom, maka Anda harus bertanya pada diri sendiri apa yang mungkin berubah di masa depan? Dengan peningkatan besar dalam baris, apakah ini juga akan mempengaruhi kinerja permintaan? Apakah ini akan mempengaruhi rawatan di masa depan?

Apa yang salah dengan membuat struktur yang dinormalisasi dan menggunakan tampilan untuk mengekspos semua data ke klien basis data, baik itu GIS, atau klien lain?

Semua pertanyaan ini berlaku untuk basis data tradisional dan basis data spasial. Jika Anda pergi melalui http://en.wikipedia.org/wiki/Database_normalization Anda akan menemukan bahwa itu berlaku untuk basis data spasial juga.

Jika perangkat lunak yang Anda gunakan di atas database memaksa Anda untuk menggunakan struktur yang sangat tidak dinormalisasi, maka ini adalah argumen yang berbeda. Anda dibatasi oleh perangkat lunak dan bukan database, sehingga Anda tidak punya pilihan dalam desain database terbaik.

Jadi saya pikir, jawaban singkatnya adalah (menurut saya) desain basis data sama pentingnya dengan basis data spasial dengan basis data tradisional.

Kelso
sumber
1
+1 untuk titik kunci membedakan antara perangkat lunak yang menentukan desain db-versus desain "terbaik" untuk sifat data.
matt wilkie
Ya, baik jawaban ini maupun komentar Matt, saya setuju. Tetapi yang saya harap adalah seseorang dapat menjelaskan mengapa hal ini sering tidak diikuti. Saya akan mengedit sedikit pertanyaan.
Nicklas Avén
Saya setuju. Satu hal tambahan yang saya temukan adalah kinerja database dapat memengaruhi keputusan Anda untuk menjadi normal atau tidak. Dalam beberapa kasus saya melihat bahwa dua database digunakan, satu 'master' database berisi data yang dinormalisasi, dan satu database sekunder yang digunakan hanya untuk tujuan tampilan. Yang ini hanya berisi apa saja yang diperlukan untuk menampilkan data (SIG), biasanya dalam satu tabel.
Berend
Untuk memperluas pada titik Berends, salah satu alasan yang berkontribusi untuk denormalisasi ini adalah bahwa pandangan terwujud seringkali agak sulit dan spesifik untuk diterapkan oleh DB, jadi biasanya lebih baik hanya membuat tabel / database Anda sendiri untuk menyimpan data yang dinormalisasi.
Alexander
6

Saya sering melihat ini. Saya merasa bahwa itu berasal dari fakta bahwa orang-orang GIS tradisional berasal dari latar belakang survei, dan tidak memiliki latar belakang / pemahaman tentang database. Saya melihat perubahan ini, karena semakin banyak organisasi memindahkan infrastruktur GIS ke dalam lipatan TI.

BlinkyBill
sumber
1
ini adalah perasaan saya juga, tetapi saya berharap dalam beberapa cara penjelasannya lebih seperti diskusi Paulus, bahwa itu adalah pilihan yang disengaja dalam beberapa cara. yang akan memberi lebih banyak perhatian pada bisnis GIS dengan begitu banyak kata-kata indah, model teknik "daripada menemukan bahwa database di bawah disalahgunakan karena ketidaktahuan.
Nicklas Avén
1
maaf, disalahgunakan salah. jika itu dibicarakan dengan alasan yang baik itu bukan penyalahgunaan.
Nicklas Avén
5

Warisan Perangkat Lunak GIS

Biaya tinggi ArcSDE sebelumnya dan kurangnya datatype spasial dalam SQL Server (sampai 2008), dan Oracle hingga versi 10, berarti ada sedikit pilihan selain menyimpan data dalam shapefile untuk banyak organisasi (dan oleh para tender untuk menekan biaya penawaran) .

Pengenalan tipe spasial asli dalam SQL Server berarti hampir secara instan bahwa ArcSDE berubah dari investasi besar, untuk dimasukkan secara gratis di ArcGIS, dan "membawa masuk ke lipatan" data spasial dalam organisasi.

Organisasi yang menggunakan ArcGIS dan SQL Server sebelumnya memiliki tiga pilihan:

  1. Bayar biaya 20k + untuk membeli ArcSDE dan menyimpan data spasial dalam database SQL Server yang "tepat".
  2. Menyimpan data spasial dalam shapefile / GDB pribadi, dan menautkan ke seluruh data organisasi dalam basis data (atau mengekspor atribut ini ke DBF)
  3. Beralih vendor GIS dan menyimpan data spasial dalam satu basis data tetapi dalam format yang hanya dapat diakses oleh perangkat lunak GIS yang baru

Setelah SQL Server memiliki tipe spasial asli, kebanyakan vendor menggunakan ini alih-alih format kepemilikannya, yang berarti data spasial tiba-tiba dapat diakses oleh aplikasi lain. ESRI harus mengurangi biaya ArcSDE (yang mereka lakukan dengan mengintegrasikannya ke ArcGIS) dan / atau memungkinkan data spasial disimpan dalam format database asli.

Selain itu, pertanyaan yang dilakukan di ArcIMS pada shapefile yang dimaksudkan terkait dengan DBF harus menyertakan semua bidang yang diperlukan dan duplikasi karena tidak ada opsi untuk membuat tampilan spasial, atau dengan mudah menghubungkan fitur dengan basis data ujung belakang.

Alasan Organisasi

Saya setuju dengan yang lain bahwa hingga saat ini data spasial menjadi tipe basis data asli, data tersebut telah lama diabaikan atau dipisahkan oleh administrator basis data dalam organisasi, dan menjadi tanggung jawab manajer GIS. Konsep-konsep desain basis data, normalisasi, replikasi, keamanan, dan tampilan SQL memerlukan skillet yang sangat berbeda dan terspesialisasi serta tidak dapat dipelajari dengan mudah saat Anda melanjutkan.

Alasan Biaya

Menjelaskan dalam tender persyaratan jumlah besar waktu dan upaya untuk dihabiskan pada model data, dan pembersihan / impor data ke dalam model ini seringkali tidak mungkin. Seringkali pembeli proyek datang dari pandangan analitis GIS dan mengabaikan pentingnya data terstruktur.

geografi
sumber
Saya mengerti dan setuju dengan sebagian besar apa yang Anda tulis. Tetapi mengatakan bagian SDE diberikan secara gratis setelah penggantian nama ke server ArcGIS, bukankah itu seperti mengatakan: Jika Anda membeli warna mobil ini dengan bayaran $ 100.000, Anda akan mendapatkan sisa mobil secara gratis. Saya tidak tahu ArcGIS dengan baik tetapi apa itu server ArcGIS tanpa bagian SDE? dan saya belum pernah mendengar ada yang mengatakan bahwa server ArcGIS murah. Saya tidak benar-benar melihat bagaimana tipe spasial SQL Server telah mempengaruhi ArcGIS. Tetapi karena produk Arc tersebar sangat luas, saya setuju bahwa jalan Arc memiliki pengaruh besar pada bagaimana orang berpikir tentang data spasial mereka.
Nicklas Avén
Sebelum ArcGIS Server, ArcSDE dulu sepenuhnya terpisah dari ArcMap dan ArcIMS dan harus dibeli dan dilisensikan secara terpisah. Karena ArcSDE adalah satu-satunya cara untuk menyimpan data spasial dalam SQL Server (atau Oracle pada saat itu) itu berarti data spasial disimpan di tempat lain.
geografi
ok, ArcIMS dalam paket dengan SDE adalah konsep baru. Arcmap masih membutuhkan lisensi terpisah per pengguna atau mengambang, kan? offtopic, tapi saya agak penasaran.
Nicklas Avén
Tidak ada mengakses / menyimpan data spasial dalam database relasional tanpa membayar sejumlah besar uang tambahan adalah konsep baru. esri.com/software/arcgis/arcsde/index.html
geografisika
Bukankah server ArcGIS menghasilkan banyak uang? Sejauh yang saya tahu Anda tidak dapat menggunakan sqlserver fomat atau format postgis (tanpa ziggis) di arcmap tanpa sde, maaf ArcGIS Server di antaranya.
Nicklas Avén
4

Dengan 100-kolom-tabel, saya berasumsi Anda maksud jenis output yang Anda dapatkan dari membangun "cakupan utama" overlay beberapa input. Ya, ini adalah artefak dari alur kerja Arc / INFO. Tapi, di pertahanan, Anda juga bisa menganggapnya sebagai tabel de-normalisasi sengaja untuk OLAP . Karena mereka digunakan sebagian besar untuk pemrosesan permintaan, bukan untuk pembaruan data, formulir yang dinormalisasi menjadi masuk akal. Seperti skema bintang , tetapi tanpa, er, poin. OK, teh lemah, tapi tetap saja saya pikir ada sesuatu di sana.

Paul Ramsey
sumber
1
ya, Paul. Saya tahu akan ada beberapa penjelasan di luar sana termasuk kata-kata yang tidak saya mengerti :-). Sangat menarik bahwa ada sejarah yang disengaja di balik ini. Bagus!
Nicklas Avén