infatuation

SQLite 본문

Study/FlashMemory&DB

SQLite

화령 2011. 4. 10. 00:06

SQLite는 구글의 안드로이드, 노키아의 Maemo, 애플의 iPhone에 적용된 솔루션이다. 기존의 DBMS가 엔터프라이즈급에서 사용되던 것과는 달리 이는 경량화된 특성을 바탕으로 모바일 기기에 주로 적용되었다. SQLite의 대표적인 특성으로 설정이 필요없다는 것과 서버가 없다는 점이다. SQLite는 설치하는 과정이 필요없으며 셋업하는 과정도 없다. 따라서, 시작, 정지, 설정해야 하는 서버 프로세스도 없다. 별도의 관리자가 이를 관리할 필요가 없기 때문에 사용이 간단한 장점을 가지고 있다. 더군다나, SQLite는 서버/클라이얶트 모델로 동작하는 것이 아니기 때문에 클라이얶트가 서버에 TCP/IP로 접속해서 처리하는 동작이 필요없다. 디스크에 존재하는 데이터베이스 파일을 직접 읽고 쓰기 때문에 별도의 서버동작을 위한 프로세스가 존재하지 않는다. SQLite는 단 하나의 데이터베이스 파일을 사용하기 때문에 관리가 매우 용이하다.
SQLite는 가변 길이 레코드를 지원하며, BLOB, CLOB들을 사용할 수 있도록 한다. 가변 길이 레코드를 지원함으로써 더 작은 데이터베이스 파일을 만들 수 있고, 따라서 더 빠른 동작을 이끌어 낼 수 있다.
SQLite는 온라인 백업 인터페이스를 사용하여 디스크 파일의 컨텎츠를 인-메모리 데이터베이스로 또는 그 반대 방향으로 복사함으로서 핫 백업을 지원한다. 또한 동일한 페이지와 스키마 캐시를 공유하기 위한 2개 이상의 연결을 가능하게 해 준다. 데이터베이스에서 각 페이지와 인덱스 별로 각각의 B-tree가 독립적으로 사용되며, X/Y 좌표에 대한 최소/최대 값을 가지는 공간 시스템을 다루기 위해서는 R-tree를 사용한다. 그렇지만, SQLite는 몇 가지 사항에 대해서 미지원되는 것들이 존재한다. 트리거 중에 일부 특성들이 지원되지 않으며, ALTER TABLE 중 RENAME TABLE, ADD COLUMN은 지원되지 않는다. LEFT OUTER JOIN의 경우에는 지원되지만, RIGHT OUTER JOIN이나 FULL OUTER JOIN은 지원되지 않는다. VIEW는 SQLite에서는 읽기 전용이며, VIEW에서 INSERT, DELETE, UPDATE는 불가능하다.
SQLite는 Public domain이라는 라이선스 정책을 사용하고 있기 때문에 많은 사용자들이 자유롭게 사용할 수 있으며, 코드의 수정이 이루어지더라도 반드시 이를 공개할 필요는 없다. SQLite 솔루션을 지원하기 위한 조직으로서 Hwaci(www.hwaci.com/sw/sqlite)가 있으며, SQLite의 높은 품질의 지원을 받기 위해서는 SQLite 컴소시움에 가입하면 된다. 컨소시움에 가입하기 위해서는 멤버쉽 비용을 내고 따로 관리를 받으면 되며, 심비안, 블룸버그, 어도비, 모질라가 가입되어 있다.

* 참고사이트
 
http://sqlite.phxsoftware.com/forums/t/175.aspx
 
http://203.234.48.91/~kimwin02/?document_srl=4173
 
http://blog.naver.com/PostView.nhn?blogId=mirnae&logNo=100088448685
 
http://comos80.hosting.paran.com/xe/android/589

'Study > FlashMemory&DB' 카테고리의 다른 글

FAT 파일 시스템  (0) 2011.03.02
NAND Flash Memory Tech. Report  (0) 2009.08.06
JFFS  (0) 2009.07.27
PLD(Programmable Logic Device)  (0) 2009.06.08