SQLite

공식 홈페이지

1 개요

SQLite는 클라이언트 응용 프로그램에 임베디드되어 동작하는 오픈소스 데이터베이스의 일종이다. 안드로이드, iOS, macOS에 기본적으로 포함되어 있다. 작명의 의미도 역시 SQL + Lite(Light). (다만 공식적인 약칭은 아니다.)

그래서 SQL에서 하는 기능이 SQLite에선 '경량화'의 이유로 제한되는 경우가 많다. 예를 들자면, 프로토콜 조작을 통해 네트워크에 접근할 수는 있지만, 동시 접근은 제한된다. 또한 복잡하거나 큰 데이터를 보관하는 데에는 적절하지 않다. 인코딩 역시 유니코드만 사용할 수 있어, 사용 인코딩이 유니코드가 아닌 경우에는 占쏙옙을 잔뜩 맛볼 수 있다. 사실 개발 당시 부터 이지스함에서 구동되던 탓에 자질구레한 기능은 원래부터 제거되어 있었다. 그래서 그런지 현재는 퍼블릭 도메인으로 풀린 상태.

데이터베이스 전체를 파일 하나에 저장하기 때문에, 파일을 통째로 복사하면 백업이 끝난다. 또한 모든 기능을 라이브러리 내에서 구동할 수 있기 때문에, 따로 미들웨어를 쓰지 않아도 프로그램에 라이브러리만 포함시켜 사용할 수 있다. 표준 SQL 문법을 지원하기 때문에 따로 학습해야 하는 것도 별로 없다. 다만 성능은 '라이트'에 맞게 열화되었으므로, 그리 큰 기대는 하지 않는 것이 낫다.

구현 자체는 C/C++로 되어 있으나 라이브러리가 이미 수 많은 언어로 나왔기 때문에, C# 등 인지도가 있는 언어로 구현할 때에는 서드파티를 통해 사용할 수 있다.

2 비슷한 목적의 데이터베이스

  • Microsoft SQL Server Compact Edition, Local DB: MFC 및 .NET 계열에서 주로 사용
  • Firebird Embedded Server: Delphi 등 파스칼 계열의 언어에서 주로 사용
  • H2, HSQL, Apache Derby: JVM 환경에서 사용가능한 단일 파일 데이터베이스