-
[SQLite] SQLite의 특징.. 간략히Software/SQLite 2017. 7. 17. 23:20반응형
시작하는 글
스마트폰의 등장과 폭발적인 성장, 발전에 따라 모바일 단말기와 같은 소형 기기에서의 데이터베이스의 역할과 중요성도 함께 강조되어 왔다. MySQL이나 Oracle 과 같은 데이터베이스 제품들은 대용량 데이터를 읽고 쓰거나 저장, 처리하는 데 적합하였기 때문에 메모리나 성능의 제약이 많은 소형 기기에는 적합하지 않았다.
SQLite는 이러한 소형 모바일 단말기기에 적합한 데이터베이스 엔진으로 현재 Apple의 iOS나 Google의 Android 뿐 아니라 Mac, Windows10 machine, PHP, Python과 같이 다양한 곳에서 사용되고 있다.
나날이 SQLite의 쓰임 빈도가 많아 지고 있을 뿐 아니라 그 범위 역시 다양하게 확장되고 있기 때문에 오늘부터 SQLite에 대하여 알아 보는 시간을 조금씩 가져보고자 한다. 간략한 소개부터 전반적인 사용법 등에 대하여 포스팅 할 예정이다.
오늘 이 포스팅에서는 SQLite는 무엇이고 그 특징은 무엇인 지에 대해서 알아 보도록 하겠다.
SQLite 주요 특징
- License - Public Domain
SQLite의 License는 Public Domain으로 상업적이든 혹은 개인적인 목적이든 무료로 사용 가능하다. 물론 이 라이센스를 살 수도 있다.
-> 구매 하는 곳
위 링크를 따라 가면 6000 불(미화)에 SQLite의 License를 살 수 있다고 나온다. 하지만 이 글을 보는 (나 포함) 사람들 중 이 License를 살 사람은 없을 것이므로 자세한 내용은 다루지 않도록 하겠다.
- In-process library
SQLite는 self-contained, serverless, zero-configuration, transactional SQL database engine을 적용한 In-process library이다. - Self-Contained:
SQLite library는 특별한 도구나 빌드 툴이 요구되어 지지 않는 단 하나의 소스 코드 파일에 캡슐화 되어 있다. SQLite는 stand-along 혹은 self-contained 속성으로 매우 적은 dependencies를 가지고 있다. 어떠한 운영체제에서도 실행 가능하다
- Serverless:
대부분의 SQL database 엔진들이 분산 서버 프로세스로 구현되어 있는 것에 반해 SQLite는 디스크에 있는 database 파일을 직접 읽고 쓰도록 되어 있다. 그렇기에 install, install, setup, configure, initialize, manage, troubleshoot을 위한 분산 서버 프로세스가 없다. 이는 이후에 이야기 할 “zero configuration’ 과도 연관이 있다. SQLite를 사용하는 프로그램들은 그들이 실행되기 전까지 database engine을 세팅하기 위한 그 어떠한 관리 지원이 요구되어 지지 않는다. 디스크에 접근 가능한 프로그램이라면 모두 SQLite database를 사용할 수 있다.
- Zero-Configuration
SQLite는 사용전까지 설치 될 필요가 없고 그 어떠한 셋업 과정도 없다. 또한 새로운 database instance를 생성하기 위한 그 어떠한 관리자 권한이나 유저 접근 권한을 지정할 필요가 없다. 그리고 그 어떠한 설정 파일들을 사용하지 않는다. SQLite가 동작하는 시스템에 그 어떠한 것도 알릴 필요가 없고 시스템이 비정상적으로 동작하였을 때 이를 회복하기 위한 그 어떠한 동작도 없다. 그냥 SQLite는 자기 일만 할 뿐이다. - Transactional
SQLite는 atomic하며 일관성과 지속적, 독립적인 serializable transactions을 구현하였다. SQLite의 단일 transaction 내의 모든 변경 사항들을은 프로그램 혹은 운영체제의 충돌, 컴퓨터 꺼짐으로 인해 중단되더라도 디스크에 변경 내용을 쓰는 행위는 완전히 수행되거나 혹은 전혀 수행되지 않을 것이다.
마무리
사실 이 외에도 SQLite의 간결성과 경량성 등과 같은 다양한 특징들이 있지만 이는 SQLite를 실제로 사용하면서 차차 알게 될 부분이라 생각되어 여기에서는 크게 다루지는 않도록 하겠다. (다른 책에는 SQLite의 특징과 관련해서 더욱 더 많이 다루고 있으나…이를 모두 다루기에는 귀찮음과… 수고로움이 있으므로 여기서 급 마무리ㅎ…)
참고
https://www.sqlite.org/
빠르게 활용하는 모바일 데이터베이스 SQLite3 / 저자: 우상정, 신호철 / 위키북스
* 잘못된 내용에 대한 지적 감사히 받도록 하겠습니다. (개인 학습을 위한 블로그 이니 많은 지적과 가르침 기다리고 있습니다.)
반응형'Software > SQLite' 카테고리의 다른 글
[SQLite] 내장 함수 - 1 (0) 2017.08.14 [SQLite] Record 수정 및 삭제 (0) 2017.08.09 [SQLite] Record 조회 (0) 2017.07.31 [SQLite] Record 입력하기 (INSERT) (0) 2017.07.26 [SQLite] TABLE 생성 및 삭제 (그리고 자료형) (0) 2017.07.19 댓글
- License - Public Domain