İyi veritabanı tasarımı, uzamsal veritabanları için daha az önemli midir?


15

Uzamsal verilerle uğraşırken veritabanı tasarımı ve normalleştirmenin genellikle ikinci elden geldiğini güçlü bir şekilde hissediyorum.

Yazılım servet maliyeti ve 100'den fazla alan tabloları ile veritabanları ile sormak zorunda:

Bir uzamsal veritabanı tasarlarken normalleştirmekten başka düşünmek için iyi nedenler var mı?

Sanırım insanlar örnek isteyecekler, ama burada veremiyorum, bu yüzden sorum belki 100 alanın problemsiz ve bakımı normalleştirilmiş bir tasarıma göre daha kolay olduğu anlamına gelenlere daha fazla yönelik.

Tartışmalar nelerdir?


ArcGIS durumunda, yalnızca size maruz kalan ve ArcGIS tarafından desteklenen veritabanı özellikleriyle sınırlı olduğunuz için, referans bütünlüğüne sahip normalleştirilmiş bir veritabanının gerçekleştirilmesi zordur. Bu ilişkisel bir veritabanı adamı olarak çok sinir bozucu ... ortada ArcSDE ile bir telefon oyunu oynamak.
nw1

Yanıtlar:


16

Uzamsal veritabanlarının geleneksel veritabanlarından farklı davranılmaması gerektiğini hissediyorum. Aslında aynı şeyi yapıyorlar, hızlı erişim için büyük miktarda veri depolıyorlar. Örnek olarak, PostgreSQL / PostGIS'de geometri sadece başka bir veri tipidir. Tıpkı metin veya tamsayı gibi. SQL Server 2008 ile aynı. Oracle ile aynı. "Uzamsal" bölüm veritabanındaki başka bir alan türüyse, orijinal veritabanından gerçekten farklı mıdır? Bu, geleneksel veritabanı tasarımının tüm kurallarını atmamız gerektiği anlamına mı geliyor?

Açıkçası normalleştirme, geleneksel veritabanlarında olduğu gibi çok ileriye götürülebilir, bu nedenle ihtiyaçlarınıza en uygun tasarımı bulmak bir değiş tokuştur.

100 sütunlu tablolarla oldukça normalleştirilmemiş bir yapı oluşturmayı planlıyorsanız, gelecekte neyin değişmesi muhtemel olduğunu kendinize sormalısınız? Satırlardaki büyük artışla bu, sorgulama performansını da etkiler mi? Bu, gelecekte sürdürülebilirliği etkileyecek mi?

Normalleştirilmiş bir yapı oluşturmada ve görünümleri kullanarak tüm verileri veritabanı istemcisine, CBS'ye veya başka bir istemciye göstermek için yanlış olan nedir?

Tüm bu sorular hem geleneksel veritabanları hem de uzamsal veritabanları için geçerlidir. Http://en.wikipedia.org/wiki/Database_normalization üzerinden giderseniz , bunun uzamsal veritabanları için de geçerli olduğunu göreceksiniz.

Veritabanının üstünde kullandığınız yazılım sizi oldukça normalleştirilmemiş yapıları kullanmaya zorluyorsa, bu farklı bir argüman. Veritabanı tarafından değil yazılım tarafından kısıtlandığınızdan, en iyi veritabanı tasarımında seçeneğiniz yoktur.

Bence, kısa cevap (bence) veritabanı tasarımı, geleneksel veritabanlarında olduğu gibi mekansal veritabanlarında da önemlidir.


1
Verilerin doğası için "en iyi" tasarıma karşı db yapısını dikte eden yazılımları ayırt etmenin kilit noktası için +1.
matt wilkie

Evet, hem bu yanıtı hem de Matt'in yorumunu kabul ediyorum. Ama umarım biri bunun neden bu kadar sık ​​takip edilmediğini açıklayabilir. Soruyu biraz değiştireceğim.
Nicklas Avén

Katılıyorum. Bulduğum ek bir şey, veritabanı performansının normalleştirme kararınızı etkileyebileceğidir. Bazı durumlarda, iki veritabanının kullanıldığını görüyorum, bir tanesi normalize edilmiş veri içeren bir 'ana' veritabanı ve sadece görüntüleme amaçlı kullanılan bir ikincil veritabanı. Bu yalnızca (GIS) verileri görüntülemek için gerekenleri, genellikle tek bir tabloda içerir.
Berend

Berends noktasında genişlemek için, bu denormalizasyonun katkıda bulunan nedenlerinden biri, somutlaştırılmış görünümlerin uygulanması biraz zor ve DB'ye özgü olmasıdır, bu nedenle normalde sadece veriyi depolamak için kendi tablonuzu / veritabanınızı oluşturmak daha iyidir.
Alexander

6

Bunu çok görüyorum. Geleneksel CBS insanlarının araştırma geçmişinden geldiği ve veritabanları hakkında bir arka plana / anlayışa sahip olmadığı gerçeğinden kaynaklandığını hissediyorum. Yine de bu değişikliği görüyorum, gitgide daha fazla kuruluş CBS altyapısını BT katmanına taşıyor.


1
bu da benim hislerim, ama umarım bir şekilde açıklama Pauls tartışmasına benzer, bir şekilde kasıtlı bir seçimdir. Bu çok fazla süslü kelime ile CBS buissness daha fazla sence verecek, bir "teknikler altta veritabanı cehalet nedeniyle kötüye olduğunu bulmaktan daha modeller.
Nicklas Avén

1
üzgünüm, yanlış kullanım yanlış. eğer iyi bir nedenden dolayı kasıtlı ise yanlış kullanım değildir.
Nicklas Avén

5

CBS Yazılım Eski

ArcSDE'nin önceki yüksek maliyeti ve SQL Server'da (2008'e kadar) ve Oracle'da sürüm 10'a kadar uzamsal bir veri türünün olmaması, birçok kuruluş için (ve teklif sahipleri tarafından teklif maliyetlerini düşük tutmak için) verileri dosya dosyalarında depolamaktan başka bir seçenek olmadığı anlamına geliyordu. .

SQL Server'da yerel uzamsal türlerin tanıtımı, ArcSDE'nin büyük bir yatırımdan ArcGIS'e ücretsiz olarak dahil edilmesine ve kuruluşlardaki uzamsal verilerin "katlanmasına" gitmesi anlamına geliyordu.

ArcGIS ve SQL Server kullanan kuruluşların önceden üç seçeneği vardı:

  1. ArcSDE'yi satın almak ve uzamsal verileri "uygun" SQL Server veritabanlarında depolamak için 20k + ücretini ödeyin.
  2. Uzamsal verileri şekil dosyalarında / kişisel GDB'lerde depolayın ve diğer kurumsal verilerin veritabanlarında bağlantı oluşturun (veya bu öznitelikleri DBF'lere aktarın)
  3. CBS satıcılarını değiştirin ve uzamsal verileri tek bir veritabanında saklayın, ancak yalnızca yeni CBS yazılımı tarafından erişilebilir bir biçimde

SQL Server yerel bir uzamsal türe sahip olduğunda, çoğu satıcı bunu özel formatları yerine kullandı, yani uzamsal verilere aniden diğer uygulamalar tarafından erişilebilir. ESRI, ArcSDE'nin maliyetini (ArcGIS'e entegre ederek yaptıkları) azaltmak ve / veya uzamsal verilerin yerel veritabanı formatında saklanmasına izin vermek zorundaydı.

Buna ek olarak, DBIM'lerle ilişkilendirilen şekil dosyalarında ArcIMS'de yapılan sorgular, uzamsal görünüm oluşturma veya özellikleri bir arka uç veritabanıyla kolayca bağlama seçeneği olmadığından gerekli tüm alanları ve çoğaltmayı içermelidir.

Örgütsel Nedenler

Yakın zamanda uzamsal verilerin yerel bir veritabanı türü haline gelmesine kadar uzun süredir göz ardı edildiği veya kuruluşlardaki veritabanı yöneticileri tarafından ayrı tutulduğu ve bir CBS yöneticisinin sorumluluğu haline geldiğini kabul ediyorum. Veritabanı tasarımı, normalleştirme, çoğaltma, güvenlik ve SQL görünümleri kavramları genellikle çok farklı ve özel bir beceri seti gerektirir ve ilerledikçe kolayca öğrenilemez.

Maliyet Nedenleri

Bir ihalede bir veri modeline harcanacak çok fazla zaman ve çaba gerekliliğinin açıklanması ve bu modele veri temizlenmesi / aktarılması çoğu zaman imkansızdır. Genellikle proje alıcıları CBS'nin analitik bir bakış açısıyla geliyor ve yapılandırılmış verilerin önemini göz ardı ediyor.


Ne yazdığınızı anlıyorum ve kabul ediyorum. Ancak SDE parçasının ArcGIS sunucusuna yeniden adlandırıldıktan sonra ücretsiz verildiğini söylemek böyle bir şey değil: 100.000 dolara bu arabanın bol rengini satın alırsanız, arabanın geri kalanını ücretsiz olarak alacaksınız. ArcGIS'i o kadar iyi bilmiyorum ama SDE kısmı olmayan ArcGIS sunucusu nedir? ve hiç kimsenin ArcGIS sunucusunun ucuz olduğunu söylediğini duymadım. SQL Server uzamsal türlerinin ArcGIS'i nasıl etkilediğini gerçekten görmüyorum. Ancak Arc ürünleri çok yaygın olduğu için, Arc yolunun insanların mekansal verilerini nasıl düşündükleri konusunda büyük bir etkisi olduğunu kabul ediyorum.
Nicklas Avén

ArcGIS Sunucusundan önce ArcSDE, ArcMap ve ArcIMS'den tamamen ayrıydı ve ayrıca satın alınması ve lisanslanması gerekiyordu. ArcSDE, uzamsal verileri SQL Server'da (veya o sırada Oracle) depolamanın tek yolu olduğundan, uzamsal verilerin başka bir yerde saklandığı anlamına geliyordu.
geographika

tamam, ArcIMS SDE ile birlikte yeni konsept. Arcmap'in her kullanıcı için ayrı ayrı lisansa ihtiyacı var, değil mi? ama biraz meraklıyım.
Nicklas Avén

Yeni kavram, fazla miktarda para ödemeden ilişkisel bir veritabanında uzamsal verilere erişmemek / depolamak yeni bir kavramdı. esri.com/software/arcgis/arcsde/index.html
geographika

ArcGIS sunucusu büyük miktarda para değil mi? Bildiğim kadarıyla ss olmadan arcmap sqlserver fomat veya postgis biçimini (ziggis olmadan) kullanamayacağınızı biliyorum, üzgünüm ArcGIS Server arasında.
Nicklas Avén

4

100 sütunlu tablolar ile, birden çok girdinin "ana kapsama alanı" kaplamalarını oluştururken elde ettiğiniz çıktı türlerini kastediyorsunuz. Evet, bunlar Arc / INFO iş akışının eserleridir. Ancak, savunmada, onları OLAP için kasıtlı olarak normalize edilmemiş tablolar olarak da düşünebilirsiniz . Veri güncellemesi için değil, büyük ölçüde sorgu işleme için kullanıldığından, normalleştirilmemiş form bir anlam ifade eder. Bir yıldız şeması gibi , ama noktaları olmadan. Tamam, zayıf çay, ama yine de orada bir şey olduğunu düşünüyorum.


1
evet, Paul. Gerçekten anlamadım kelimeler dahil bazı açıklama olacağını biliyordum :-). Bunun arkasında kasıtlı bir tarihin olması çok ilginç. Harika!
Nicklas Avén

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.