SQLite는 사용되는 응용 프로그램에 내장되는 놀라운 라이브러리이다. 독립적이고 파일 기반 데이터베이스로써 SQLite는 프로세스 기반 관계형 데이터베이스(서버)와 비교해봤을 때 제약이 덜하고 쉽게 정렬된 모든 데이터를 다루는 도구를 제공한다.
응용 프로그램에서 SQLite를 사용할 때, 실용적으로 동작하고 인터페이스(예: 포트, 소켓)를 통한 통신을 하는 대신 데이터를 갖고 있는 파일(즉 SQLite 데이터베이스)을 만들어 직접 호출한다. 이 라이브러리의 기본 기술 덕분에 SQLite는 매우 빠르고 , 효율적이고, 또한 강력하다.
SQLite에서 지원하는 데이터 타입
-
NULL: NULL 값
-
INTEGER: 부호가 있는 정수, 값의 크기에 따라 1, 2, 3, 4, 6, 8 바이트 저장
-
REAL: 부동소수점, 8 바이트 IEEE 부동소수점을 저장
-
TEXT: 문자열, 데이터베이스 인코딩에 따라 문자열 저장(UTF-8, UTF-16BE or UTF-16LE)
-
BLOB: 이진 데이터, 들어온 데이터 그대로 저장
Note: SQLite의 데이터 타입에 대해 더 알고 싶다면 공식 문서를 확인
SQLite의 장점
-
파일 기반: 이동이 용이하게 만들어진 파일 하나가 전체 데이터베이스이다.
-
표준을 따름: 간단한 DB 구현체이지만 SQLite는 SQL을 사용한다. 몇가지 기능(RIGHT OUTER JOIN, FOR EACH STATEMENT)이 생략되어 있지만 다른 기능들은 내장되어 있다.
-
개발과 테스트에 적합:여러 프로그램의 개발 단계에서 다수의 사람들을 위한 동시성을 측정할 수 있는 해결책을 필요로 한다. 풍부한 기능이 있는 SQLite는 단일 파일과 C 기반의 라이브러리로 동작의 단순함으로 개발에 필요한 것보다 더 많이 제공할 수 있다.
SQLite의 단점
-
사용자 관리가 없음: 고급 데이터베이스는 사용자 즉, 데이터베이스와 테이블에 접근 권한을 설정한 연결 관리 기능을 제공한다. SQLite의 목적과 특성(높은 레벨의 다수 클라이언트 동시 접속이 없음)으로 이 기능은 존재하지 않는다.
-
추가 성능을 위한 개조 가능이 어려움: 다시 설계되어서 SQLite는 추가 성능을 얻기 위해 손보는 게 불가능하다. 라이브러리는 튜닝하거나 사용하는데 편리하다. 복잡하지 않기 때문에 기술적으로 성능을 올리는 것이 불가능하다.
SQLite를 사용하는 때
-
임베디드 응용 프로그램: 확장하지 않으며 이동이 용이한 모든 응용 프로그램. 예를 들면, 단일 사용자 로컬 응용 프로그램, 모바일 프로그램 또는 게임.
-
디스크 접근 대체: SQL을 사용함으로써 나오는 추가 기능과 단순함 때문에 디스크에 파일을 읽고 쓰는 것이 필요한 대부분의 응용 프로그램은 SQLite로 전환하여 이득을 볼 수 있다.
-
테스트: 응용 프로그램의 많은 부분에서 비즈니스 로직(즉, 응용 프로그램의 주 용도: 기능)을 테스트하기 위한 추가 프로세스를 사용하는 것은 과잉이다.
SQLite를 사용하면 안되는 때
-
다수 사용자 응용프로그램: 다수 클라이언트가 접속하고 같은 데이터베이스를 사용하는 응용 프로그램인 경우 완벽한 기능을 갖춘 RDBM(예: MySQL)을 선택하는 것이 좋다.
-
높은 쓰기 볼륨을 원하는 응용 프로그램: SQLite의 제약 사항 중 하나는 쓰기 기능이다. 이 DBMS는 주어진 시간 동안 오직 하나의 쓰기만을 허락한다. 이런 이유로 제한된 처리량만 가능하다.
참고 문헌
'DB' 카테고리의 다른 글
[DB] Postgresql + PostGIS (0) | 2020.01.25 |
---|