'extension'에 해당되는 글 1건
- 2008/07/22 SQLite R-tree 지원 예정
CVS 소스 트리에는 이미 포함되어 있긴 합니다만... (http://www.sqlite.org/cvstrac/dir?d=sqlite/ext/rtree)
SQLite는 확장성에도 나름 노력을 기울이고 있는데 User Collation(텍스트 컬럼의 경우 정렬방식을 사용자가 결정할 수 있음, 예를 들면 한글 데이터와 영어 데이터가 있을 경우 이를 한글이 먼저 나오게 할 수 있음)이나 User Function(SQL function을 유저가 정의) 등이 있으며 R-tree는 Extension Loading이라는 기능을 통해 지원됩니다.
Extension Loading은 리눅스라면 dlopen() 함수를 통해 shared library를 로딩하는 방식으로 이루어집니다(dlopen()을 활용하면 실행중에도 공유 라이브러리 링크가 가능합니다).
R-tree는 B-tree랑 유사한 방식의 트리 자료구조인데 주로 위치 정보나 공간 정보를 저장하는데 쓰입니다. 구글 맵 같은 기능을 구현하고 위치 정보를 좌표로 DB에 담는다면 B-tree로 인덱스를 구성해봤자 별로 도움이 안되겠죠. 위치 정보에서 중요한건 어디가 어디와 가깝느냐 이런게 중요하겠죠. 참고로 오라클 DB도 spatial 데이터 타입을 지원합니다.
자세한 건 위키피디아를 참조하시고...-_-;;
흥미있으신 분은 사전 지식을 쌓을 겸 둘러보시고 소스를 한 번 보시기 바랍니다. 2800라인 정도니 크게 부담가는 정도는 아닌 듯...;
여튼, 이런 예를 볼 때마다 오픈 소스의 장점이 유감없이 발휘된다는 걸 느끼고 감탄할 따름입니다. SQLite 같이 잘 나가는 프로젝트는 엔진만 있어도 알아서 JDBC, Python, Ruby, PHP, ... 등등의 Binding 뿐만 아니라 이건 extension까지 수많은 사람들이 달려들어 제작을 하니까요.
이런 확장성을 톨한 불특정 다수에 의한 개발의 예는 사실 오픈 소스가 아니라도 많지요. 대표적인게 WOW 아닐까요...ㅡㅡ;
SQLite는 확장성에도 나름 노력을 기울이고 있는데 User Collation(텍스트 컬럼의 경우 정렬방식을 사용자가 결정할 수 있음, 예를 들면 한글 데이터와 영어 데이터가 있을 경우 이를 한글이 먼저 나오게 할 수 있음)이나 User Function(SQL function을 유저가 정의) 등이 있으며 R-tree는 Extension Loading이라는 기능을 통해 지원됩니다.
Extension Loading은 리눅스라면 dlopen() 함수를 통해 shared library를 로딩하는 방식으로 이루어집니다(dlopen()을 활용하면 실행중에도 공유 라이브러리 링크가 가능합니다).
R-tree는 B-tree랑 유사한 방식의 트리 자료구조인데 주로 위치 정보나 공간 정보를 저장하는데 쓰입니다. 구글 맵 같은 기능을 구현하고 위치 정보를 좌표로 DB에 담는다면 B-tree로 인덱스를 구성해봤자 별로 도움이 안되겠죠. 위치 정보에서 중요한건 어디가 어디와 가깝느냐 이런게 중요하겠죠. 참고로 오라클 DB도 spatial 데이터 타입을 지원합니다.
자세한 건 위키피디아를 참조하시고...-_-;;
흥미있으신 분은 사전 지식을 쌓을 겸 둘러보시고 소스를 한 번 보시기 바랍니다. 2800라인 정도니 크게 부담가는 정도는 아닌 듯...;
여튼, 이런 예를 볼 때마다 오픈 소스의 장점이 유감없이 발휘된다는 걸 느끼고 감탄할 따름입니다. SQLite 같이 잘 나가는 프로젝트는 엔진만 있어도 알아서 JDBC, Python, Ruby, PHP, ... 등등의 Binding 뿐만 아니라 이건 extension까지 수많은 사람들이 달려들어 제작을 하니까요.
이런 확장성을 톨한 불특정 다수에 의한 개발의 예는 사실 오픈 소스가 아니라도 많지요. 대표적인게 WOW 아닐까요...ㅡㅡ;
'Programming Story > SQLite' 카테고리의 다른 글
| SQLite 페이지 핸들링(1) - SQLite의 구조 (0) | 2008/08/03 |
|---|---|
| SQLite R-tree 지원 예정 (0) | 2008/07/22 |
| SQLite non-C API 소개 (3) | 2007/08/20 |
| SQLite C API 소개 (2) | 2007/08/08 |

이올린에 북마크하기
이올린에 추천하기
Prev
Rss Feed