Çok Partili Özelliklerin Faydaları?


28

Çok parçalı noktalar, çizgiler ve çokgenler hemen hemen her CBS'de uygulanır, ancak varsa ne gibi yararlar sağlar?

İlişkisel bir veritabanında, farklı özellikler tarafından paylaşılan öznitelikler bir kez saklanabilir ve kimlikler bunları ayrı geometri kayıtlarına bağlamak için kullanılır. Yani çok parçalı özellikler düz dosya veri depolama mirası?

alt metin

Yanıtlar:


35

Yazılımınız çok parçalı özellikleri desteklemiyorsa, mekansal işlemleri gerçekleştirmek için olağanüstü ve karmaşık uzunluklara gitmeniz gerekebilir. Örneğin, iki poligonun kesişmesi genel olarak birden fazla bağlı bileşene sahip olabilir. Bu tür bir kesişimin rasgele bir çokgen yerine tek bir nesneyi (çok parçalı bir çokgen) döndürdüğünü varsaymak hem algoritmik olarak hem de kavramsal olarak uygundur. (Aynı nedenlerden dolayı çeşitli boş ve dejenere özelliklerin çeşitli biçimlerini desteklemekte fayda vardır - örneğin, sıfır alanlı bir bölgeye sahip olan poligonlar veya konumlu ancak alansız olan poligonlar hatta alan ve alanlardan yoksun olanlar. Bunlar geometrik işlemlerden kaynaklanabilir; Çok fazla telaşlı durum sonrası işleme ortadan kaldırır ve yararlı bilgilerin kaybolmasını engelleyebilir.)

İlişkisel veritabanı bakış açısından, çok parçalı özellikler normalleşmeyi mümkün kılar: bir özellik çokgen koleksiyonundan ayrılamazsa, bu koleksiyonu tek bir nesne olarak temsil etmek istersiniz. İyi bir örnek, dünyadaki hemen hemen her ülkeyi kıyı şeridi olan bir ülkeyi temsil eden bir özellik olabilir, çünkü ülke muhtemelen bazı adaları içermektedir. RDBMS’nizi, her küçük ada için ülkenin özelliklerinin bir kopyasını çıkarmaya zorlamak istiyor musunuz? Büyük olasılıkla değil. İşaretçinin birden çok kopyasının nitelikler üzerinde kalmasını istemiyorsunuz (veya gerekmiyor).

Koordineli bir çoklu hatlı olmasa ağ veya dallanma ağacını nasıl temsil ederdiniz?

Matematik veya algoritmik veri yapıları açısından, çok parçalı bir özelliğe izin vermek, bir komplikasyon değil basitleştirmedir. Çoklu bağlı çokgenleri ("delikli halkalar ve çokgenler") desteklemek için zaten çok parçalı çokgenleri temsil etmek için cihaza ihtiyacınız var.

Son olarak, "vektör" nesneler ve tipik "spagetti temsili", basit kompleksler teorisindeki kökenlerine sahiptir . ( "Topoloji" teriminin, bu teoriden esasen hiçbir şey kullanmayan GIS'e yaptığı , topoloji teorisi ile yalnızca bu kesin olmayan bağlantı yoluyla gerçekleşir .) Bu teori, çok parçalı özelliklere ihtiyaç duyar ve bundan yararlanır. Aslında, sadece tek bir bileşene sahip olmak, basit bir kompleks tanımının bir parçası değildir, fakat bazılarının (sıfırıncı homoloji grubunun rütbesi tarafından tespit edildiği gibi) sahip oldukları özel bir özellik olduğu ortaya çıkmaktadır.). Bu nedenle, "tek parça" tanımlayıcı bir özellik değildir, ancak bir poligonda bir halka veya bir "deliğe" sahip olmakla aynı anlamda bir topolojik kalitedir (birinci homoloji grubunun rütbesiyle ilgili) .


1
Çok güzel cevap. Bir veritabanını normalleştirmek için çok parçalı özellikleri kullanma konusunda% 100 değilim - her çokgen hala alan ve uzunluk gibi benzersiz özelliklere sahip ve "Yunanistan'ın alanının ne kadarı adalardan oluşuyor" gibi bir sorgulama yapmak zorlaşıyor Her çokgen niteliklerini vererek.
coğrafya

2
@geographika Yours, birinin veritabanları ile (mekansal olsun ya da olmasın) varlıkları temsil etmede esnekliğe ihtiyaç duymasının iyi bir örneğidir. Daha da genişletmek için, "Yunanistan'ın alanının ne kadarının göllerden oluştuğu" gibi soruları yanıtlamak için bireysel poligonların dış ve iç halkalarına "patlaması" gerektiği söylenebilir. Herhangi bir veri tabanı yapısı, bazı sorguları kolaylaştıracak ve diğerlerini zorlaştıracaktır; Bu nedenle, iyi veritabanı tasarımının bir kısmı, veritabanının kullanım amaçlarını göz önünde bulundurmayı içermelidir. İyi (mekansal) bir DBMS farklı yapılar arasında dönüşümü sağlayacak mekanizmalar sağlayacaktır.
whuber

2
+1 Harika cevap. Yine de çok parçalı özelliklerde performansın sakıncalarını tartışmaya değebilir. Otoyol özelliklerinin eyalet sınırlarında bölündüğü ABD otoyollarının polyline özellikli bir sınıfını alın. Karayolu isminde çözünerek ikinci bir kıç sınıfı oluşturarak kıtayı kapsayan I-10 ile sonuçlandı. Şimdi Tanımlama aracının performansını karşılaştırın. ESRI'nin uzamsal dizin oluşturma stratejisi değişmediyse, birbiriyle çakışan çok daha fazla MBR olduğundan, çok parçalı özellik sınıfında daha yavaş olacaktır. MBR noktası ile örtüşen her bir özelliğin her bir koordinatı incelenir.
Kirk Kuykendall,

@Kirk İyi nokta. Örnekleriniz, ESRI teknolojisindeki eksiklikleri, ilke olarak sorunları vurguladıklarından daha fazla işaret ediyor. Bir özelliğin makul bir şekilde verimli ancak basit bir dörtlü gibi uzamsal veri yapısıyla tanımlanması, O (log (N)) performansa sahip olmalıdır (depolanmış bir veri yapısının ilk önbelleğe alınmasından sonra). N özelliklerinin her birinin (büyük olarak tahmin edilen) ortalama bir K parçası (N'ye göre orta veya küçük olduğu varsayılan) olarak bölünmesi, log (N) 'i log (N) + log (K)' a yükseltir; farkedilemez.
whuber

1
@Dandy Çok parçalı bir geometri ve yalnızca bir parça koleksiyonu arasındaki farkı vurguladığınız için teşekkür ederiz. Tüm çok parçalı özellik türlerinin bileşenlerini zorunlu olarak "sınırladığını" sanmıyorum; bu muhtemelen uygulamaya bağlıdır - "çok parçalı" kavramının bazı ince farklılıklar içerdiğine işaret eder.
whuber

12

Nüfus verilerini, ülkeleri temsil eden tek parçalı çokgenler tablosuna katıldığınızı hayal edin. Katılmayı nasıl yaptığınıza bağlı olarak, ya her ada o ülkenin tam nüfusunu alacaktır ya da yalnızca bir set çokgen tam popülasyonu alacaktır. Ülkeyi çok parçalı bir çokgen olarak temsil etmeden, ya popülasyonu paylaştırmanız (gereksiz yere karmaşık ve yanlış) ya da çokgenli bir çokgene katılmadan önce poligonları bir araya getirmeniz gerekir.

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.