Core Insight

공간 데이터베이스(Spatial DB)는 단순 텍스트나 숫자가 아닌 기하학적 객체(Point, Line, Polygon)를 저장하며, 대용량 공간 쿼리의 성능 최적화를 위해 객체를 감싸는 최소 경계 사각형인 MBR(Minimum Bounding Box)과 이를 활용한 R-Tree 계열의 인덱싱 및 필터-정제(Filter-Refine) 2단계 처리 구조를 핵심 기술로 사용한다.


I. 공간 데이터 모델링의 기초: 기하 객체와 좌표계

공간 정보를 데이터베이스 내에서 표현하기 위한 표준 및 형식이다.

  1. Geometry 객체 (OGC 표준):
    • Point: (x, y) 좌표.
    • LineString: 점들의 연결.
    • Polygon: 닫힌 선분으로 이루어진 면적.
  2. SRID (Spatial Reference Identifier):
    • 좌표계 정보를 식별하는 ID (예: EPSG:4326 - 위경도 좌표계).
  3. WKT/WKB:
    • WKT (Well-Known Text): 인간이 읽기 쉬운 텍스트 포맷.
    • WKB (Well-Known Binary): 기계 효율적인 바이너리 포맷.

📢 섹션 요약 비유: 지도를 보고 위치를 말할 때 "저기 사거리 건너편 빌딩"이라고 하는 대신, 정확한 위도와 경도 수치로 이름을 붙여 관리하는 것과 같습니다.


II. MBR (Minimum Bounding Rectangle)과 인덱싱

복잡한 다각형의 연산량을 줄이기 위해 사용하는 근사치 기법이다.

  1. MBR의 정의:
    • 특정 공간 객체를 완전히 포함하면서 각 변이 좌표축에 평행한 가장 작은 사각형.
    • (Min X, Min Y, Max X, Max Y) 네 개의 값으로 표현 가능.
  2. R-Tree 인덱스:
    • MBR들을 계층적으로 그룹화하여 트리 구조로 저장.
    • ┌─────────────────────────────────────────┐ │ Root MBR ┬ Child MBR A -> [Leaf Objects]│ │ └ Child MBR B -> [Leaf Objects]│ └─────────────────────────────────────────┘
  3. 인덱스 활용: 트리 탐색을 통해 쿼리 영역과 겹치지 않는 MBR 가지를 빠르게 제거.

📢 섹션 요약 비유: 도서관에서 책을 찾을 때 모든 글자를 다 읽는 게 아니라, 책장(MBR)의 라벨을 보고 필요 없는 칸을 통째로 건너뛰는 것과 같습니다.


III. 공간 쿼리 처리 메커니즘: 필터-정제 (Filter-Refine)

복잡한 기하 연산을 효율적으로 수행하는 2단계 프로세스이다.

  1. Step 1: Filter Phase (필터 단계):
    • 인덱스(R-Tree)를 사용하여 쿼리 영역 MBR과 겹치는 후보 객체들을 선별.
    • 단순 사각형 겹침 연산이므로 매우 빠름.
  2. Step 2: Refine Phase (정제 단계):
    • 필터 단계에서 남은 후보들에 대해서만 실제 다각형(Polygon) 연산을 수행.
    • ST_Intersects, ST_Contains 등 정밀한 기하 함수 적용.

📢 섹션 요약 비유: 고운 체(Filter)로 굵은 돌맹이들을 먼저 걸러낸 뒤, 남은 알갱이들 중에서만 진짜 보석(Refine)을 하나하나 골라내는 과정입니다.


IV. 주요 공간 연산 및 근접 분석 (Proximity Analysis)

위치 기반 서비스(LBS)에서 빈번하게 사용되는 기술이다.

  1. Relationship Operators:
    • Contains/Within: 포함 관계.
    • Overlaps: 일부 겹침.
    • Touches: 경계선 접촉.
  2. Distance/Proximity Operators:
    • ST_Distance: 두 객체 간 최단 거리 계산.
    • KNN (K-Nearest Neighbors): 특정 지점에서 가장 가까운 K개의 객체 찾기.
  3. Buffer Analysis:
    • 특정 객체로부터 일정 거리 내의 영역(Buffer Zone)을 생성하여 분석.

📢 섹션 요약 비유: "내 위치에서 1km 이내에 있는 편의점 찾기"처럼 특정 구역을 설정하고 그 안에 들어온 대상을 골라내는 기술입니다.


V. 공간 데이터베이스 vs 일반 데이터베이스

구분일반 관계형 DB (B-Tree)공간 데이터베이스 (R-Tree)
데이터 형태1차원 (숫자, 문자열)2차원/3차원 (Point, Polygon)
인덱스 구조값의 크기 순 정렬공간적 포함 관계 (MBR) 계층
연산 방식=, >, < (단순 비교)Contains, Distance (기하 연산)
주요 활용회계, 인사, 게시판지도 서비스(GIS), 배달, 자율주행

📢 섹션 요약 비유: 숫자 순서대로 줄을 세우는 것과, 지도를 조각조각 잘라 상자에 담아 분류하는 방식의 차이입니다.


Concept Map

┌──────────────────────────────────────────────────────────┐ │ Spatial Data Query Engine │ └─────────────┬───────────────────────────────┬────────────┘ │ │ ┌────────▼────────┐ ┌─────────▼────────┐ │ Geometry Object │ │ Spatial Indexing │ │ (Point, Polygon)│ │ (R-Tree / MBR) │ └────────┬────────┘ └─────────┬────────┘ │ │ └───────────────┬───────────────┘ │ ┌───────────▼───────────┐ │ 2-Step Query Process │ ├───────────────────────┤ │ 1. Filter (MBR Match) │ │ 2. Refine (Exact Calc)│ └───────────┬───────────┘ │ ┌─────────▼─────────┐ │ Result Set (GIS) │ └───────────────────┘


Children's Analogy

지각 시간이라 교실에 있는 내 자리를 빨리 찾고 싶을 때를 생각해 봐요. 복도에서 교실 문(MBR)만 보고 "아, 여기는 1반이니까 내가 있는 2반은 아니네!" 하고 지나가는 게 '필터 단계'예요. 드디어 2반 문을 열고 들어가서 친구들 얼굴을 하나하나 확인하며 내 자리를 찾는 게 '정제 단계'랍니다. 처음부터 모든 교실의 모든 자리를 다 확인하지 않고, 큰 상자(MBR)부터 확인해서 시간을 아끼는 방법이에요.