1. 공간 데이터의 개요#
본 장에서는 Altibase에서 제공하는 공간 데이터에 대한 기본적인 개념과 특징 및 용어, 그리고 공간 데이터를 처리하는 방법에 대해서 설명한다.
Spatial의 개념#
공간 데이터#
공간 데이터는 점, 선, 면 등의 다차원 데이터들이 특정 좌표 시스템에 의해 숫자의 나열로 표현된 것을 의미한다. 예를 들어 실세계의 모양을 좌표계로 표시한 전자 지도의 데이터 등을 공간 데이터라고 할 수 있을 것이다. 이러한 공간 데이터를 표현하는 자료 구조로서 기본적으로 래스터 자료구조와 벡터 자료구조가 있다.
벡터 모델에서 현실 세계의 사상 또는 좌표는 이들의 경계를 정의하는 점, 선으로 구성되며, 각 사상의 위치는 지도에서 좌표 체계에 의해 정의되며 지도 내에서 각 위치는 동일한 좌표체계를 유지한다. 점, 선, 다각형은 실세계에서 불규칙하게 분포하는 지리상이나 좌표를 표현하기 위해 사용된다. 선은 도로를, 다각형은 숲 등을 나타내는데 사용된다.
래스터 모델에서 공간은 픽셀(pixel) 또는 셀(cell)로 균등하게 분할되어 처리된다. 지리 사상이나 좌표의 위치는 그 사상이나 좌표가 존재하는 픽셀, 셀의 행렬로 정의되며, 셀 사이즈에 따라 해상도가 달라진다. 셀 안에 있는 지역은 하위 지역으로 분할되지 않으며, 셀 속성은 셀안의 모든 위치에 적용된다. 모든 셀의 크기는 같다. 일반적으로 래스터 모델은 수 백만개의 셀로 분할된다.
벡터 모델에서의 단위는 점, 선, 다각형이며, 래스터 모델에 비해 단위의 숫자가 작고 크기도 다양하다. 벡터 화일에서 요소의 수는 수 천 개 정도로 벡터에서의 위치는 연속되는 좌표의 값에 의해 정의된다. 벡터 데이터는 더 적은 수의 데이터를 가지며 다른 축척으로의 조정이 좀 더 유연하므로, 래스트 데이터에 비해 컴퓨터에서 다루기가 쉽다. 그리고, 그 결과도 더 정확하다.
[표 1-1]은 벡터와 래스터 자료구조의 장점과 단점을 분류한 것이다.
구분 | 장점 | 단점 |
---|---|---|
벡터 | 실세계 데이터 표현이 용이 데이터 저장 시 효율적 압축 가능 위상 관계 구축 용이 정확한 그래픽의 표현 위치와 속성의 일반화 가능 |
자료 구조 복잡 지도 중첩 어려움 단위별로 위상 형태 다름 고가의 장비 필요 공간 연산이 복잡 |
래스터 | 공간 분석 용이 자료구조 단순명료 단위별로 위상 형태 동일 지도 중첩 용이 저가의 기술과 빠른 발달 속도 원격탐사자료와 연결 용이 |
위상 관계 구축이 어려움 투영 반환에 많은 시간 소모 그래픽 자료의 양이 방대 자료 압축 시 정보 손실 큼 출력의 질이 떨어짐 |
[표 1‑1] 벡터와 래스터 자료구조의 장단점
공간 데이터의 특징#
공간 데이터는 일반적으로 비정형성과 대용량성의 두 가지 특징을 갖는다.
비정형성이라는 것은 각 공간 객체의 내용 및 구조가 객체 타입에 따라 다르게 표현되며, 같은 타입 간에도 점의 개수 및 서브 객체의 개수 등에 의해 다른 형태와 길이를 갖는다는 것이다.
대용량성은 일부 공간 데이터의 경우 DBMS 데이터 저장 공간의 한 페이지를 넘는 크기를 가질 수 있다는 것이다. 예를 들면 국가의 해안선 경계를 표현한 데이터를 저장할 경우 수 MB도 나올 수 있다.
공간 DBMS는 이러한 특징을 갖는 공간 데이터를 효율적으로 저장 및 연산하기 위해서 기존의 비공간 데이터가 고려하지 않은 여러 가지 면을 추가적으로 고려하여 구현되어야 한다.
공간 데이터 모델#
전통적인 공간 데이터 모델은 공간을 연속적인 속성값으로 표현하는 필드 기반(Field-based) 모델과 점의 집합인 객체(혹은 개체)로서 표현하는 개체 기반(Entity-based) 모델이 있다. 공간에 있는 각각의 점이 하나 또는 그 이상의 속성값을 갖고 있는 필드 기반 모델에서는 x, y에서의 연속적인 함수처럼 정의된다.
그러나 필드 기반 모델에서는 개체 기반 모델에서의 객체 개념이 고려되지 않는다. 개체 기반 모델에서 일반적으로 고려되는 주요 객체에는 위치를 나타내는 점, 두 점을 연결한 선(Line), 연결된 선의 조합(Polyline), 다각형을 나타내는 폴리곤(Polygon) 등이 있다.
OGC(Open Geospatial Consortium)에서 제시하는 공간 데이터의 모델은 개념적인 모델이다. 즉 특정 구현에 대한 모델이 아닌 추상적 정보 모델인 공간 스키마(Spatial Schema)로 정의된다. 이러한 OGC의 공간 스키마는 ISO 19107 공간 스키마를 기반으로 하고 있으며, "OpenGIS Simple Features Specification", "GML 구현 명세" 등과 같은 많은 다른 OGC 명세들에서 사용되고 있다. 공간 스키마는 실세계 현상을 추상화한 피처(Feature)에 대한 공간적 특성의 정량적 기술을 위하여 기하학적 객체에 대한 모델을 제시하는 Geometry 패키지와 기하학적 객체들의 관계에 대한 모델을 제시하는 Topology 패키지로 구성된다.
이러한 추상 명세의 데이터 모델을 기반으로 OGC는 OpenGIS Simple Features Specificification 등의 구현 명세에서 좀더 구체적인 OpenGIS Geometry 모델을 제시하고 있다.
Geometry는 루트 클래스로서 추상 클래스이고, Point, Curve, Surface, GeometryCollection 서브 클래스를 갖는다. 모든 기하학적 객체들은 정의된 좌표 공간에 대한 공간 참조 시스템(spatial reference system)에 대하여 연관되고, 실제 인스턴스화되어 사용될 수 있는 클래스로는 Point, LineString, Polygon, GeometryCollection, MultiPoint, MultiLineString, MultiPolygon이 있고, 나머지는 추상 클래스로 정의된다.
공간 데이터베이스 시스템#
공간 데이터베이스는 문자나 숫자 등으로 표현되는 비공간 데이터와 공간 객체의 좌표값 등으로 표현되는 공간 데이터의 집합이다. 공간 데이터베이스에서 주로 다루는 지리(geographic) 객체(일반적으로 공간 객체)는 객체의 일반적 속성, 객체의 기하학적(geometric) 속성, 객체간 공간적 관계에 대한 위상(topology)을 포함한다.
이러한 공간 데이터베이스를 효율적으로 저장·관리하는 소프트웨어인 공간 데이터베이스는 비공간 데이터와 공간 데이터를 논리적 레벨에서 표현하고 조작할 수 있어야 하고, 이러한 데이터를 물리적 레벨에서 효율적으로 저장·처리할 수 있어야 한다. 따라서, 공간 데이터베이스에서는 공간데이터의 논리적 데이터 표현이 가능하고, 공간 데이터에 대한 공간 연산을 수행하기 위한 함수들이 제공되어야 하며, 공간 데이터를 물리적 레벨에서 효율적으로 저장하고 공간 인덱싱을 통해 효율적으로 접근할 수 있어야 한다. 또한, 공간 객체의 공간 데이터와 함께 연관된 위상 데이터와 일반 속성 데이터를 효율적으로 저장하고 관리할 수 있어야 한다.
공간 데이터 모델링은 공간 데이터에 대한 표현을 정의하는 기술인데, 공간 데이터는 점(point), 선(line), 면(surface) 등과 같이 현실 세계에서 익숙하게 접하게 되는 공간 데이터 타입들을 지원해야 한다. 이러한 공간 데이터 타입은 복잡한 공간 객체를 표현하는 경우에도 가능한 단순하며 정확해야 하며, 또한 모든 공간 데이터 타입에 대해 공간 연산자를 적용할 수 있어야 한다.
공간 연산자는 공간 질의(spatial query)를 효율적으로 처리하기 위하여 공간 객체간의 위상적 관계를 포함한 다양한 공간적 분석을 위한 연산자인데, 공간 데이터베이스는 유용하게 사용할 수 있는 다양한 공간 연산자들을 지원해야 한다.
공간 인덱스#
공간 질의의 처리는 일반적으로 복잡하고 비용이 많이 드는 기하학적 도형 연산 작업을 요구한다. 전통적으로 점 객체 연산 작업은 각각의 객체들이 어떤 점을 포함하는지를 순차적으로 스캐닝하고 검사함으로써 많은 횟수의 디스크 접근과 기하학적 도형에 대한 조건들을 반복적으로 평가해야 하는 비싼 처리 비용을 요구한다.
따라서 저장된 많은 양의 공간 데이터들에 대하여 실제 처리해야 할 객체의 집합을 줄이는 효율적인 공간 접근 방법(spatial access method)들이 개발되었다. 공간 접근 방법이란 공간 인덱스를 사용하여 공간 질의에 대해 처리될 객체의 수를 줄이고자 하는 방법을 말하며, 부분 선형(sublinear) 시간내에 검색을 지원해야 하는 시간 복잡도에 대한 요구사항과 공간 인덱스의 크기가 인덱스된 데이터의 크기에 비하여 작아야하는 공간 복잡도의 요구사항을 갖는다. 또한 큰 성능 손실없이 객체가 공간 인덱스에 추가되거나 제거될 수 있어야 하는 동적 갱신의 요구사항도 갖는다. 이러한 요구사항을 만족시키기 위한 공간 접근 방법에는 대표적으로 R-Tree를 사용하는 접근 방법이 있다.
R-Tree는 보조기억장치를 위해 설계된 계층적, height-balanced 다차원(multi dimensional) 인덱스 구조로서, 다차원 데이터 공간을 위하여 B-tree를 일반화한 것이다. 즉, R-Tree는 B-tree와 마찬가지로 트리 구조가 높이 균형적이며 객체에 대한 참조는 단말 노드에만 존재한다. 공간 객체를 표현하는데 MBR을 사용하는 R-tree는 공간 객체를 찾기 위하여 적은 수의 노드만 방문하도록 설계되었다. 또한, R-tree에서는 트리 구조의 동적 생성이 지원되기 때문에, 한 R-tree에 대해서 갱신과 조회 수행을 동시에 할 수 있고 주기적으로 트리 구조를 재정렬할 필요가 없다.
공간 참조 시스템(Spatial Reference System)#
실세계 공간에서의 위치를 수학적으로 표현되는 벡터 공간에서의 좌표에 의한 공간 객체에 연관시키거나, 반대로 좌표 값과 공간 객체를 실세계의 위치에 연관시키는 기능을 말한다. 공간 참조를 실현하는 방법에는 공간 좌표에 의한 방법과 구별자(identifier)에 의한 방법이 있다.
공간 참조 시스템을 이용하여 공간 데이터가 이용하는 좌표 시스템과 데이터별로 참조하는 지리적 영역의 범위를 정의할 수 있다.
좌표 시스템#
좌표 시스템은 제공된 영역(예를 들어 지구 표면의 한 영역 또는 지구 표면 전체)에서의 사물의 상대 위치를 정의하는 것입니다.
지구상에서의 위치를 경도와 위도로써 나타내기 위한 기준 체계 및 지구의 형상을 나타내는 타원체를 총칭하여 측지 기준계라고 한다. 우리나라는 천문관측에 의해 결정된 경도/위도값 및 원방위각을 기준으로 하고 Bessel 타원체를 적용한 한국측지계를 사용하고 있다. 한편, GPS를 사용한 측량이 보편화되면서 전세계에서 공통으로 사용할 수 있는 위치기준체계의 필요성이 증대되었고, 이처럼 세계에서 공통으로 이용할 수 있는 측지 기준계를 세계 측지계라고 한다. 세계측지계에는 기준과 적용타원체의 구분에 따라 ITRF계, WGS계, PZ계 등이 있다.
지구 타원체(Ellipsoid)#
지구를 표현하는 수학적 방법으로서 타원체의 장축 또는 단축을 중심축으로 하여 회전시켜 얻어낸 지구 모형이다. 이는 좌표를 표현하는데 있어 기준 모델로 사용된다. 각국에서는 사용하는 타원체는 그 나라의 실정에 따라 다양하며, 현재 범세계적으로 통용하여 사용하고 있는 타원체는 WGS84이다.
지오이드(Geoid)#
대양에서는 평균해수면과 일치하고, 대륙에서는 가상 해수면에 의해 연장되어 형성된 지구형상 모델로, 모든 지점은 중력방향에 수직이다. 즉 지구 타원체에서 지구중력이 동일한 면을 지오이드라 하는데 이는 해발고도가 0m인 기준면, 즉 평균해수면을 나타낸다. 형상은 불규칙하지만 편평한 타원체로 근사화 할 수 있다.
데이텀#
별도의 매개변수 계산을 위해 기준으로 하거나 기초로서 사용되는 매개변수 또는 매개변수의 집합으로, 관측의 기준이 되는 값(점, 선, 표면), 즉 관측을 보정하는데 사용되는 임의의 기준이다. 데이텀은 위도, 경도, 방위각으로 구성되며, 수평 데이텀 또는 수평 측지 데이텀이라고도 한다. 또한 데이텀은 지구에 관계한 좌표계 축의 원점위치, 축척 및 방향을 정의하며, 데이텀은 측지데이텀(geodetic datum), 표고데이텀(vertical datum) 및 시공데이텀(engineering datum)의 형태로 되어 있다. 데이텀을 변경하면 공간 데이터의 좌표가 변경된다.
투영(Projection)#
3차원의 지구 전체 또는 일부를 2차원의 평면(원통, 원추, 원반 등)에 비추어 2차원의 지도로 변환하는 과정을 투영이라고 한다. 우리가 일반적으로 사용하는 종이지도나 2D GIS의 수치지도는 이러한 투영을 과정을 거친 뒤 만들어진 것이다. 투영의 과정에서는 모양, 거리, 방향, 축척 및 면적의 왜곡이 발생하기 마련이므로 원하는 대상지역의 왜곡이 최소가 되도록 하는 투영법을 선택하여야 한다. 우리나라 지형도의 경우는 TM(Transverse Mercator) 투영법을 사용하고 있다. TM 투영은 중앙 자오선(예: 동경 127도선)에 원통을 접하도록한 뒤 투영하는 방식으로 중앙 자오선에 위치한 지역은 정확하게 투영되므로 남북 방향이 긴 지역에서 많이 사용한다. 중앙 자오선으로부터 멀어질수록 거리, 면적, 축척, 방향 등의 왜곡이 커진다.
공간 데이터의 특징#
Altibase에서 제공하는 공간 데이터에 대한 처리는 다음과 같은 특징이 있다.
-
Altibase는 고성능을 제공하는 메모리 데이터베이스 기술과 공간 데이터 모델을 DBMS 내부에 지원하는 특징을 기반으로 하기 때문에 기존 GIS 분야 이외에 유비쿼터스 환경에서 요구되는 고속의 Spatial 자료 처리 응용 시스템 지원에 가장 적합한 공간 DBMS 이다. 또한 Spatial 모델을 RDBMS의 SQL 모델에 접합시켜 기존의 DBMS 개발환경과 경험을 그대로 재 사용할 수 있으므로 생산성 향상을 기대할 수 있다.
-
Altibase는 문자 및 숫자를 사용하는 전통적인 데이터와 함께 공간 데이터(특정 장소의 위치에 대한 정보)를 저장, 관리 및 분석할 수 있다. 이러한 기능으로 사무실 건물의 위치나 홍수 지역의 크기와 같은 특정 장소에 대한 공간 정보를 생성, 분석 및 활용할 수 있다.
-
점, 선 및 다각형과 같은 기하학적 도형을 표시하는 일련의 고급 공간 데이터 유형 그리고 이와 같은 새로운 데이터 유형과 상호 운용되는 수많은 기능 및 특징을 통해 Altibase의 기능을 확장한다. 이에 따라 사용자는 비즈니스 데이터와 공간 정보를 결합하여 데이터베이스에 또 다른 지능적 요소를 추가할 수 있다.
공간 데이터 활용 용어#
클로즈드(Closed)#
라인스트링의 시작점과 끝점이 같은 경우 공간 객체를 '클로즈드한다'라고 표현한다. 공간 객체를 구성하는 모든 요소가 클로즈드해야만 공간 객체가 '클로즈드한다'고 표현할 수 있다. 클로즈드에 대한 설명은 ISCLOSED 함수를 참조한다.
복합 객체(Compound Object)#
두 개 이상의 공간 객체로 이루어진 공간 객체.
차원(Dimension)#
도형, 물체, 공간 내에 있는 어떤 점의 위치를 나타내기 위해 필요한 실수의 최소 개수를 의미한다. 점은 0차원, 직선은 1차원, 평면은 2차원 그리고 입체는 3차원을 갖는다. 그러나, n차원이나 무한 차원의 공간도 생각할 수 있다.
요소(Element)#
공간 객체를 구성하는 대표적인 도형을 나타내며, 하나의 공간 객체는 점, 선 또는 면 등의 요소로 구성 될 수 있다.
엠프티(Empty)#
요소가 존재하지 않는 공간 객체를 '엠프티하다'고 표현한다. '모른다'의 의미를 갖는 'NULL' 객체와는 다르게 엠프티는 명확히 '존재하지 않는다'의 의미를 갖는다. 엠프티에 대한 설명은 ISEMPTY 함수를 참조한다.
선(Line)#
한 점이 연속적으로 움직여 이루어진 자취. 점 다음으로 단순한 도형의 구성 요소로서, 길이와 위치는 있으나 넓이와 두께는 없다. 직선과 곡선이 있다.
다중 객체(Multiple Object)#
동일한 형태를 가진 두 개 이상의 공간 객체로 이루어진 공간 객체로 점들로만 이루어진 멀티포인트, 라인스트링으로만 이루어진 멀티라인스트링, 그리고 폴리곤으로 이루어진 멀티폴리곤 등이 있다.
점(Point)#
모든 도형을 표현하는 가장 단순한 공간 객체로서 위치만 있고 크기는 없다.
축척(Scale)#
축척이란 지도나 사진상에서의 길이와 지상에서의 실제길이 비를 말한다. 축척의 값은 비율로 나타내며, 이는 지도상에서나 지상에서나 같은 단위를 사용하여 측정되었음을 나타낸다. 예를 들어, 축척이 1:25,000이라고 할 때 이 축척은 지도상의 단위길이가 지상에서는 그 값의 25,000배에 해당하는 것을 의미한다. 지도상의 1cm는 지상에서 25000cm라는 것이다. 여기에서 주의해야 할 것은 축척은 수평방향의 길이에 대해 표시하는 것이며 면적이나 높이에 대한 축척은 아니라는 것이다.
심플(Simple)#
공간 객체를 구성하는 요소가 교차점이나 접촉점 등과 같은 예외적인 점들을 갖지 않으면 공간 객체가 '심플하다'고 표현한다. 심플에 대한 설명은 ISSIMPLE 함수를 참조한다.
공간 객체(Spatial Object)#
실세계를 표현하는 공간 데이터와 그 데이터에 관련되는 동작(절차, 방법, 기능 등)을 모두 포함하는 것을 의미한다.
면(Surface)#
하나의 선이 연속적으로 움직여 이루어진 자취. 점이나 선으로 간주되지 않는 평면의 형태를 표현하며, 면 바깥모양을 기준으로 평면과 곡면으로 구분된다. 일반적으로 면이라 함은 특별히 지칭하지 않는 한 평면을 말한다.