위치요약DB
내비게이션과 같은 위치기반 서비스 제공자들이 공간정보를 간편하게 구축 및 활용할 수 있도록 도로명주소와 주출입구의
좌표정보(X,Y좌표)를 결합한 주출입구 기반 위치정보 요약 자료를 제공합니다.
(매월 말 기준 전체 및 월변동 자료 제공)
좌표정보(X,Y좌표)를 결합한 주출입구 기반 위치정보 요약 자료를 제공합니다.
(매월 말 기준 전체 및 월변동 자료 제공)
위치요약DB 구축 및 현행화
- DB 레이아웃
전체분 DB 레이아웃
순번 | 컬럼명 | 크기 | 형식 | PK | 비고 |
---|---|---|---|---|---|
1 | 시군구코드 | 5 | 문자 | ||
2 | 출입구일련번호 | 10 | 문자 | ||
3 | 법정동코드 | 10 | 문자 | PK5 | 시군구코드(5) + 읍면동코드(3) + 00 |
4 | 시도명 | 40 | 문자 | ||
5 | 시군구명 | 40 | 문자 | ||
6 | 읍면동명 | 40 | 문자 | ||
7 | 도로명코드 | 12 | 문자 | PK1 | 시군구코드(5)+도로명번호(7) |
8 | 도로명 | 80 | 문자 | ||
9 | 지하여부 | 1 | 문자 | PK2 | |
10 | 건물본번 | 5 | 숫자 | PK3 | |
11 | 건물부번 | 5 | 숫자 | PK4 | |
12 | 건물명 | 40 | 문자 | ||
13 | 우편번호 | 5 | 문자 | ||
14 | 건물용도분류 | 100 | 문자 | 주택, 숙박, 종교, 유통, 교육 등 건물용도 18종 ※ 복수 건물용도가 존재시 콤마(,)로 구분 |
|
15 | 건물군여부 | 1 | 문자 | 0:단독건물, 1:건물군(동일한 도로명주소를 갖는 건물들의 집합) | |
16 | 관할행정동 | 8 | 문자 | 주민센터에서 법정동을 나누어 관리하기위한 명칭(참고용) (예: xx1동, xx2동) |
|
17 | X좌표 | 15,6 | 숫자 | ||
18 | Y좌표 | 15,6 | 숫자 |
- 전체자료는 시도별로 구분하여 제공되고 있습니다.
- 주출입구 위치를 나타내는 좌표는 GRS80 UTM-K 기준입니다.
- 비공개, 공개제한 건물은 위치값을 제공하지 않습니다.
- 기준월 말일 기준의 전체 자료입니다.
- 주출입구 위치를 나타내는 좌표는 GRS80 UTM-K 기준입니다.
- 비공개, 공개제한 건물은 위치값을 제공하지 않습니다.
- 기준월 말일 기준의 전체 자료입니다.
변동분 DB 레이아웃
순번 | 컬럼명 | 크기 | 형식 | PK | 비고 |
---|---|---|---|---|---|
1 | 시군구코드 | 5 | 문자 | ||
2 | 출입구일련번호 | 10 | 문자 | ||
3 | 법정동코드 | 10 | 문자 | PK5 | 시군구코드(5) + 읍면동코드(3) + 00 |
4 | 시도명 | 40 | 문자 | ||
5 | 시군구명 | 40 | 문자 | ||
6 | 읍면동명 | 40 | 문자 | ||
7 | 도로명코드 | 12 | 문자 | PK1 | 시군구코드(5)+도로명번호(7) |
8 | 도로명 | 80 | 문자 | ||
9 | 지하여부 | 1 | 문자 | PK2 | |
10 | 건물본번 | 5 | 숫자 | PK3 | |
11 | 건물부번 | 5 | 숫자 | PK4 | |
12 | 건물명 | 40 | 문자 | ||
13 | 우편번호 | 5 | 문자 | ||
14 | 건물용도분류 | 100 | 문자 | 주택, 숙박, 종교, 유통, 교육 등 건물용도 18종 ※ 복수 건물용도가 존재시 콤마(,)로 구분 |
|
15 | 건물군여부 | 1 | 문자 | 0:단독건물, 1:건물군(동일한 도로명주소를 갖는 건물들의 집합) | |
16 | 관할행정동 | 8 | 문자 | 주민센터에서 법정동을 나누어 관리하기위한 명칭(참고용) (예: xx1동, xx2동) |
|
17 | X좌표 | 15,6 | 숫자 | ||
18 | Y좌표 | 15,6 | 숫자 | ||
19 | 이동사유코드 | 2 | 문자 | 31 : 생성, 34 : 변동, 63 : 삭제 |
전월 기준 전체자료에 변동분만을 갱신하여 최신상태로 유지할 수 있습니다.
- 31 : 신규 도로명주소로 INSERT 수행
- 34 : PK컬럼을 기준으로 데이터에 변동이 발생한 건 UPDATE 수행
- 63 : 폐지된 도로명주소로써 PK컬럼을 기준으로 DELETE 수행
- 31 : 신규 도로명주소로 INSERT 수행
- 34 : PK컬럼을 기준으로 데이터에 변동이 발생한 건 UPDATE 수행
- 63 : 폐지된 도로명주소로써 PK컬럼을 기준으로 DELETE 수행
- 위치요약DB 현행화 SQL 예시
신규 건 처리
/*
- 신규분외에 누락된 자료가 있을 경우를 위해 UPDATE 후 INSERT하도록 구현
*/
UPDATE 위치정보요약 A
SET (A.시군구코드, A.출입구일련번호, A.법정동코드, ……) =
(SELECT 시군구코드, 출입구일련번호, 법정동코드, …… FROM 위치정보요약변경분 B WHERE B.도로명코드 = A.도로명코드 AND B.지하여부 = A.지하여부
AND B.건물본번 = A.건물본번 AND B.건물부번 = A.건물부번 AND B.법정동코드 = A.법정동코드 AND B.이동사유코드 IN (‘31’, ‘34’) AND ROWNUM = 1)
WHERE EXISTS (SELECT 1 FROM 위치정보요약변경분 C WHERE C.도로명코드 = A.도로명코드 AND C.지하여부 = A.지하여부 AND C.건물본번 = A.건물본번
AND C.건물부번 = A.건물부번 AND C.법정동코드 = A.법정동코드 AND C.이동사유코드 IN ('31', '34'))
INSERT INTO 위치정보요약 (시군구코드, 출입구일련번호, 법정동코드……)
SELECT A.시군구코드, A.출입구일련번호, A.법정동코드…… FROM 위치정보요약변경분 A
WHERE A.이동사유코드 IN ('31', '34') AND NOT EXISTS (SELECT 1 FROM 위치정보요약 B WHERE B.도로명코드 = A.도로명코드 AND B.지하여부 = A.지하여부
AND B.건물본번 = A.건물본번 AND B.건물부번 = A.건물부번 AND B.법정동코드 = A.법정동코드 )
ORACLE 9i 이상 버전에서 Merge 사용 예시
MERGE INTO 위치정보요약 A
USING (SELECT 시군구코드, 출입구일련번호, 법정동코드...... FROM 위치정보요약변경분 WHERE 이동사유코드 IN ('31', '34')) B
ON (B.도로명코드 = A.도로명코드 AND B.지하여부 = A.지하여부 AND B.건물본번 = A.건물본번 AND B.건물부번 = A.건물부번 AND B.법정동코드 = A.법정동코드)
WHEN MATCHED THEN
UPDATE SET A.시군구코드 = B.시군구코드, A.출입구일련번호 = B.출입구일련번호, ……
WHEN NOT MATCHED THEN
INSERT (A. 시군구코드 , A. 출입구일련번호 , A. 법정동코드 , ……)
VALUES (B. 시군구코드 , B. 출입구일련번호 , B. 법정동코드 , ……)
폐지 건 처리
DELETE FROM 위치정보요약 A
WHERE EXISTS (SELECT 1 FROM 위치정보요약변경분 C WHERE C.도로명코드 = A.도로명코드 AND C.지하여부 = A.지하여부
AND C.건물본번 = A.건물본번 AND C.건물부번 = A.건물부번 AND C.법정동코드 = A.법정동코드 AND C.이동사유코드 = '63' )