๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

๊ณต๊ฐ„ DB์— ๋Œ€ํ•œ ๊ธ€ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/GIS ๊ฐœ๋ฐœ

๊ณต๊ฐ„ DB์— ๋Œ€ํ•œ ๊ธ€

์š”์ผ์ด 2020. 2. 6. 14:32
๋ฐ˜์‘ํ˜•

“๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Spatial Database)”๋ผ๊ณ  ํ•˜๋ฉด, ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š” ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์ด ๋งŽ์œผ์‹ค ๊ฒƒ ๊ฐ™์€๋ฐ์š”. ์Šค๋งˆํŠธํฐ ๊ธฐ๋ฐ˜์˜ ์ง€๋ฆฌ์ •๋ณด๋‚˜ ์œ„์น˜์ •๋ณด๋ฅผ ์ทจ๊ธ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด์ œ๋Š” “๊ณต๊ฐ„ DB”๊ฐ€ ๊ธฐ๋ณธ์ธ ๋งŒํผ ์ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋‘๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋„ค์š”.

 

1. ๊ณต๊ฐ„DB๋ž€? (wikipedia)

spatial database is a database that is optimized to store and query data that is related to objects in space, including points, lines and polygons. While typical databases can understand various numeric and character types of data, additional functionality needs to be added for databases to process spatial data types. These are typically called geometry or feature. The Open Geospatial Consortium created the Simple Features specification and sets standards for adding spatial functionality to database systems.

๊ณต๊ฐ„์— ์กด์žฌํ•˜๋Š” ์ , ์„ , ํด๋ฆฌ๊ณค๋“ฑ์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ฒ€์ƒ‰ํ•˜๋Š”๋ฐ ์ตœ์ ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. ์ „ํ†ต์ ์ธ DB๊ฐ€ ๋‹ค์–‘ํ•œ ์ˆซ์ž์™€ ๋ฌธ์ž๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜์–ด ์ง€๋ฏ€๋กœ, ๊ณต๊ฐ„ Data Type์„ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ๋“ค์ด ํ•„์š”ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฐ ๊ฒƒ๋“ค์„ Geometry๋‚˜ Feature๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๊ทธ๋ž˜์„œ OGC๋Š” ์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•œ ํ‘œ์ค€๊ณผ Simple Feature Spec์„ ์ •์˜ํ–ˆ๋‹ค.

๊ณต๊ฐ„ DB๋Š” RDBMS๋ž‘ ๋ญ”๊ฐ€ ํ‹€๋ฆฐ ๊ฒƒ ๊ฐ™์ฃ ? ๊ทธ๋Ÿผ ์•„๋ž˜๋ฅผ ๋” ์‚ดํŽด ๋ณด์‹œ์ฃ .

 

[ ๊ณต๊ฐ„DB์˜ ์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ ์œ ํ˜• ]
– Vector : ์ , ์„ , ๋ฉด, ๋‹ค๊ฐํ˜• ๋„ํ˜• – ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๊ณ , ์–ด๋–ป๊ฒŒ ์กฐํšŒํ•˜์ง€???
– Raster : ์ง€๋„๋ฅผ ์ด๋ฏธ์ง€ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•  ๋•Œ ์“ฐ๋Š” ๋ฐฉ์‹(์ง€๋„์˜ ๋ชจ๋“  ์ ์€ ์ขŒํ‘œ๊ฐ€ ์žˆ์ฃ ?)
– Topology : ์•„๋ž˜๋ฅผ ์ฐธ์กฐ
– Non-Spatial data : ๊ณต๊ฐ„ DB๊ฐ€ ์•„๋‹Œ๊ฒƒ.

 

[ ๊ณต๊ฐ„DB๋ฅผ ์œ„ํ•œ Additional Functionality๋ž€? ]

๋‘ ์ง€์—ญ์˜ Area ํ•ฉ์น˜๊ธฐ – Merging, ๋‘ ์ง€์—ญ์˜ ๊ต์ฐจ์ง€์—ญ ์ถ”์ถœํ•˜๊ธฐ – Intersection, ์ตœ๋‹จ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ – Routing ๋“ฑ๋“ฑ….

 

[ ๊ณต๊ฐ„DB์˜ ๊ด€๊ณ„ ํŠน์„ฑ ]
๋‘๊ฐœ ๋„ํ˜•์ด ๋™์ผํ•œ๊ฐ€? ์„œ๋กœ ๋„ํ˜•์ด ๋–จ์–ด์ ธ ์žˆ๋‚˜? ๊ต์ฐจํ•˜๋‚˜? ์ ‘์ด‰ํ•˜๋‚˜? ๊ฐ€๋กœ์ง€๋ฅด๋‚˜? ํฌํ•จ๋˜๋Š”๊ฐ€? ํฌํ•จํ•˜๋Š”๊ฐ€? ๊ฒน์ณ์ ธ ์žˆ๋‚˜? (์š”๋Ÿฐ ๊ด€๊ณ„ ์—ฐ์‚ฐ์€ RDBMS์— ์—†์ฃ ?)

 

[ ์œ„์ƒ(Topology)์ด๋ž€ ]
๊ณต๊ฐ„ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋งํ•จ.
์ฆ‰, ๋„ํ˜•์„ ํ‘œํ˜„ํ•  ๋•Œ ์ขŒํ‘œ ๋งŒ์œผ๋กœ ์ •์˜ํ•˜๋ฉด ์ด๊ฑฐ ๋‚œ๊ฐํ•ด์ง. ์ ์„ ์ด๋™ํ•  ๋•Œ ๋งˆ๋‹ค ์ด์–ด์ง„ ์ ๋“ค๋งˆ๋‹ค ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ ํ•ด์ค˜์•ผ ํ•จ.
๊ฐ ์ ๋“ค์ด ์–ด๋–ป๊ฒŒ ์ด์–ด์ ธ ์žˆ๋Š”์ง€๋Š” ๊ด€๊ณ„ํ˜• ํ…Œ์ด๋ธ”๋กœ ์ •์˜ํ•จ. ์ด๋Ÿฌ๋ฉด, ์  ์ด๋™์‹œ๋งˆ๋‹ค ์ด์–ด์ง„ ์ ๋“ค์˜ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ค„์–ด๋“ฌ

๊ณต๊ฐ„ DB๊ฐ€ ์—†์—ˆ๋˜ ์‹œ์ ˆ์€ Topology๋ฅผ ์ž˜ ์•Œ๊ณ  ์žˆ๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ RDBMS๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ–ˆ๋Š”๋ฐ์š”. ๊ฐ„๋‹จํ•œ ์ , ์„  ํŽธ์ง‘ ์กฐ์ฐจ DB์˜ ์—…๋ฐ์ดํŠธ ๋ถ€ํ•˜๊ฐ€ ์ปค์„œ File DB ํ˜•ํƒœ๋กœ๋งŒ ๊ด€๋ฆฌํ–ˆ๋‹ต๋‹ˆ๋‹ค.

์š”์ฆ˜์€ OGC๊ฐ€ ์ •์˜ํ•œ Spec์„ ๋”ฐ๋ผ ์ „๋ฌธ “๊ณต๊ฐ„DB”๊ฐ€ ์ƒ๊ฒผ๋Š”๋ฐ์š”. ๊ทธ๋ž˜์„œ ๊ณต๊ฐ„ ์ •๋ณด๋ฅผ Handling ํ•˜๊ธฐ ์ข‹์•„์กŒ์ฃ .

* Middleware ๋ฐฉ์‹ : ESRI ArcGIS
* RDBMS ๊ธฐ๋ฐ˜ : Oracle Spatial, SpatiaLite, DB2, MS SQL Server, PostSQL(PostGIS), MySQL(Extention)
* Graph DB ๊ธฐ๋ฐ˜ – Neo4j (Btree, Quadtree ๋“ฑ์„ ์ง€์›), AllegroGraph
* NoSQL ๊ธฐ๋ฐ˜ – MongoDB

2. ๊ณต๊ฐ„DB์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ Spatial Query

Spatial Query๋ž€? ]
Facebook, Google Place, Foursquare ๋“ฑ์—์„œ๋Š” ๋ฐ˜๊ฒฝ๊ฒ€์ƒ‰ (์ฃผ๋ณ€ 10km์ด๋‚ด ์Œ์‹์ )์„ ๋งŽ์ด๋“ค ํ•˜์‹œ์ฃ ? ํ•˜์ง€๋งŒ, ๋Œ€ํ•™๋กœ ๋‚ด ๋ ˆ์Šคํ† ๋ž‘ ์ด๋ผ๋“ ๊ฐ€, ํ™๋Œ€ ์•ž ํด๋Ÿฝ ์ด๋ผ๋“ ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์„๊นŒ์š”? ๋ณ„๋„์˜ AOI๋ฅผ ๊ตฌ์ถ•ํ•ด์•ผ๊ฒ ์ง€๋งŒ, “Contains” Query๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ๋˜๊ฒ ์ง€์š”?

์ง€ํ•˜์ฒ  ์—ญ 5๋ถ„ ๊ฑฐ๋ฆฌ๋Š” ์–ด๋–ป๊ฒŒ ์ฐพ์•„๋‚ผ๊นŒ์š”? (ํ ํ . ๋น„๋ฐ€์ž…๋‹ˆ๋‹ค. ์ง์ ‘ ์—ฐ๊ตฌํ•ด๋ณด์‹œ๊ธธ.)

์•„๋ž˜๊ฐ€ ๊ทธ ํ•จ์ˆ˜๋“ค์ž…๋‹ˆ๋‹ค. ์ƒํ™œ ์ƒ์˜ ๋งŽ์€ ๊ณต๊ฐ„๊ฒ€์ƒ‰ ๋“ค์ด ์ด ํ•จ์ˆ˜๋ฅผ ํŒŒ์ƒํ•˜๋ฉด ๋‹ค์–‘ํ•˜๊ฒŒ ๋‚˜์˜ค๊ฒ ์ง€์š”.

- Distance(geometry, geometry) : number
- Equals(geometry, geometry) : boolean
- Disjoint(geometry, geometry) : boolean
- Intersects(geometry, geometry) : boolean
- Touches(geometry, geometry) : boolean
- Crosses(geometry, geometry) : boolean
- Overlaps(geometry, geometry) : boolean
- Contains(geometry, geometry) : boolean
- Length(geometry) : number
- Area(geometry) : number
- Centroid(geometry) : geometry

[ ๊ณต๊ฐ„ ์ธ๋ฑ์Šค(Spatial Index) ]
๋น ๋ฅธ ์งˆ์˜๋ฅผ ์œ„ํ•ด์„œ ๊ณต๊ฐ„ DB๋Š” ํŠน์ˆ˜ํ•œ ๊ฒ€์ƒ‰ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. R-Tree, QuadTree ๋ผ๋Š” ๊ฒƒ์ธ๋ฐ์š”. ์ฆ‰, ๊ฐ•๋‚จ์—ญ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ “๋Œ€ํ•œ๋ฏผ๊ตญ” -> “๊ฒฝ๊ธฐ๋„” -> “์„œ์šธํŠน๋ณ„์‹œ” -> “๊ฐ•๋‚จ๊ตฌ” -> “๊ฐ•๋‚จ์—ญ” ์ด๋ผ๋Š” ๋ฐฉ์‹์˜ Tree ๊ตฌ์กฐ๋ฅผ ํƒ€๋Š”๋ฐ์š”. ์•Œ๋‹ค์‹œํ”ผ ์ด๊ฒŒ ๋‹ค ๋„ํ˜•์ด๋ผ ํŠน๋ณ„ํ•œ ๊ตฌ์กฐ์˜ Index ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ต๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ตฌ์กฐ๋ฅผ “Spatial Index”๋ผ๊ณ  ํ•˜๋Š”๋ฐ์š”. ๊ณต๊ฐ„ DB๊ฐ€ ์—†์—ˆ๋˜ ์‹œ์ ˆ์€ ์ผ์ผํžˆ ๋‹ค ๋งจ๋•…์—์„œ ๊ตฌํ˜„ํ–ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฉ์ฉ. ์ด์ œ๋Š” ๋†€๋ผ์šด ์ผ์ด ๋˜์—ˆ์ง€์š”.

 

3. DML(Data manipulation) ์€ ์—†๋‚˜?

๋‹น์—ฐํžˆ ์žˆ๊ฒ ์ง€์š”? ๊ณต๊ฐ„๋ถ„์„ ์ด๋ผ๋Š” ์ œ๋ชฉ์œผ๋กœ ์•„๋ž˜์™€ ๊ฐ™์€ “๋„ํ˜• ์กฐ์ž‘ ๊ธฐ๋Šฅ”์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์–ด๋””๋‹ค๊ฐ€ ์“ธ๊นŒ์š”? ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋งŽ์ด “์ผ๋ฐ˜ํ™””๊ฐ€ ๋˜์–ด์•ผ ๊ฒ ์ง€๋งŒ, ๊ฐœ๋ฐœ์ž๋“ค์˜ ํ’๋ถ€ํ•œ ์ƒ์ƒ๋ ฅ์ด ์žˆ๋‹ค๋ฉด ์žฌ๋ฏธ๋‚œ ๊ธฐ๋Šฅ๋“ค์ด ๋งŽ์ด ๋งŒ๋“ค์–ด์ง€๋ฆฌ๋ผ๊ณ  ๋ด…๋‹ˆ๋‹ค.

๋Œ€ํ‘œ์ ์œผ๋กœ ๊ตฌ๊ธ€์€ Panoramio ๋ฅผ ๊ฐ€์ง€๊ณ  Density map(http://www.internetmap.kr/664
)์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ์š”. ์•„๋งˆ Convex Hull๊ณผ Union ๋“ฑ์„ ์—ฎ์–ด์„œ ์‚ฌ์šฉํ•˜๋ฉด ์˜ˆ์œ Visual ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๊ฒ ์ฃ ? 
(https://sites.google.com/a/projekcts.ru/projekcts/Home/building-photo-density-maps-with-panoramio)

[ Spatial Analysis ]

– Buffer – 2๋ฐฐ๋กœ ๋ปฅํŠ€๊ธฐ ํ•˜๊ฑฐ๋‚˜, ์ถ•์†Œํ•˜๊ฑฐ๋‚˜.
– Convex Hull – ๋„ํ˜•์„ ๊ฐ์‹ธ๋Š” ๋‘ฅ๊ทผ ๋„ํ˜• ์–ป๊ธฐ
– Intersection – ๊ต์ฐจํ•˜๋Š” ๋ถ€๋ถ„๋งŒ ๋„ํ˜•์œผ๋กœ ๋งŒ๋“ค๊ธฐ
– Union – ๋‘๊ฐœ์˜ ๋„ํ˜•์„ ํ•ฉ์ณ์„œ ํ•˜๋‚˜์˜ ๋„ํ˜•์œผ๋กœ ๋งŒ๋“ค๊ธฐ
– Difference – ๋‘ ๊ฐœ์˜ ๋„ํ˜•์ด ๊ฒน์น˜๋Š” ๋ถ€๋ถ„๋งŒ ํ•˜๋‚˜์˜ ๋„ํ˜•์—์„œ ๋นผ๊ธฐ (๋‹น๊ทผ ๊ธฐ์ค€ ๋„ํ˜•์ด ์žˆ๊ฒ ์ฃ ?)
– Symmetric Difference – ๋‘ ๊ฐœ์˜ ๋„ํ˜•์„ ํ•ฉ์นœ ๋‹ค์Œ. ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ๋นผ๊ธฐ

 

 

 

 

์ถœ์ฒ˜

http://www.ministory.net/xe/5093?fbclid=IwAR3GvoYAgwUjzg7QOh5ZN63j1jC_jmv9ovZBgt1056iPncY0I2i3e9KicU4

 

IT - ๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Spatial DB)๋ž€ ๋ฌด์—‡์ธ๊ฐ€ ?

“๊ณต๊ฐ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Spatial Database)”๋ผ๊ณ  ํ•˜๋ฉด, ์ฒ˜์Œ ๋“ค์–ด๋ณด๋Š” ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค์ด ๋งŽ์œผ์‹ค ๊ฒƒ ๊ฐ™์€๋ฐ์š”. ์Šค๋งˆํŠธํฐ ๊ธฐ๋ฐ˜์˜ ์ง€๋ฆฌ์ •๋ณด๋‚˜ ์œ„์น˜์ •๋ณด๋ฅผ ์ทจ๊ธ‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ด์ œ๋Š” “๊ณต๊ฐ„ DB”๊ฐ€ ๊ธฐ๋ณธ์ธ ๋งŒํผ ์ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋‘๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•  ๊ฒƒ ๊ฐ™๋„ค์š”.1. ๊ณต๊ฐ„DB๋ž€? (wikipedia)spatial database is a database that is optimized to store and query data that is related to ob

www.ministory.net

 

Comments