얼마전부터 개인프로젝트용 DBMS로 SQLite를 사용하고 있습니다. 마땅한 GUI client를 찾아봤는데, 딱 마음에 드는건 없더군요. 그냥 Eclipse용 DB 플러그인으로 버티기로 하고 이것저것 물색하다가 다음과 같이 결론:

JDBC드라이버는 두 가지를 쉽게 구할 수 있습니다.

  • Christian Werner가 만든 Type 2 드라이버: http://www.ch-werner.de/javasqlite/
    • 구글에서 'sqlite jdbc'로 검색하면 제일 위에 올라옵니다.
    • Type 2이므로 DLL 설치 필요합니다.
    • 동작은 잘 되는데, SQL 문법에러 메시지 표시를 제대로 못해줍니다. (무조건 PreparedStatement 생성 예외로 나오더군요)
    • 접속 URL은 jdbc:sqlite:/c:/path/to/dbfile/sample.db 스타일. 드라이브명 앞에 '/' 들어갑니다.
  • David Crawshaw가 만든 Type 2 드라이버: http://www.zentus.com/sqlitejdbc/
    • 역시 Type 2이므로 DLL 설치 필요합니다.
    • 접속 URL은 jdbc:sqlite:c:/path/to/dbfile/sample.db 스타일입니다. 접속 URL이 틀릴 경우 'OutOfMemoryError'를 발생시켜 사람을 놀래키더군요.
    • SQL 문법에러 제대로 보여줍니다. 강추!
그런데 David Crawshaw의 JDBC 드라이버를 이용할 경우 QuantumDB에서 문제가 발생하더군요. (Sqlite는 특성상 catalog 개념이 없습니다. 파일 하나가 그냥 통째로 DB죠. 그래서 이 JDBC 드라이버에서는 DatabaseMetaData 쪽에서 catalog 관련한 부분을 null을 리턴하게 만들어져있는데, 이게 QuantumDB에서 문제가 되더군요 - 아래 화면처럼 트리가 망가지면서 NullPointerException 발생합니다)

QuantumDB

SQLExplorer


지금은 SQL Explorer를 테스트해보고 있는 중입니다. SQL 윈도우를 여러개 쓸 수 있어서 마음에 드는데, 한글문제는 잘 해결이 안되네요. 한글문제 해결하는 부분은 - 성공한다면 ^^ - 별도로 포스팅하겠습니다.


신고
  1. ErnestPr 2014.08.22 15:25 댓글주소 | 수정 | 삭제 | 댓글

    이용약관위배로 관리자 삭제된 댓글입니다.


재미삼아 공부삼아 혼자서 취미성 프로젝트를 해온지 이제 2년 조금 넘었습니다.

그동안 이런 류의 취미성 프로젝트에서 항상 문제가 됐던게 DB였습니다. 회사서버에 얹어가자니 양심이 찔리고 (퇴사할때 백업처리하기도 난감), 그렇다고 PC에 대몬을 올리자니 무거워서 싫고... 해서, plain text 파일로 저장해두고 자료처리가 필요할때면 sed, cut, perl, join, sort 등을 총동원하는 식으로 대응해왔는데,

이번에 시험삼아 깔아본 SQLite 아주 물건이네요. 400KB짜리 실행파일 하나만 압축 풀어놓으면 설치 끝. ANSI SQL92를 대부분 지원하니 별도의 문법을 배울 필요가 없는데다가, DBI, JDBC를 지원하니 perl이나 java에도 잘 붙네요.

사이즈 388KB..


사이즈는 작아도 ACID를 온전히 지원하는데다가 속도 또한 빠릅니다. 그동안 은근히 GDBM이나 Berkeley DB를 공부해야 하나 고민하고 있었는데, 그런 고민은 다 청산해도 될 것 같습니다.

커맨드라인 클라이언트가 불편해서 전용 클라이언트가 있으면 좋겠다 싶었는데, 이것도 eclipse에서 JDBC 통해서 QuantumDB 붙여서 써보니 무난히 사용할만 하더군요. (사실 QuantumDB의 인터페이스를 별로 좋아하진 않습니다만)

홈페이지는 http://www.sqlite.org 입니다.
신고





티스토리 툴바