반응형
안녕하세요, 오늘은 많은 개발자들이 선택하는 경량 DBMS인 SQLite에 대해 알아보겠습니다.
SQLite는 2000년에 첫 출시된 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)입니다. SQLite는 이름에서 알 수 있듯이, "light" 즉, "경량"을 의미하며 이는 그 특성을 잘 나타냅니다.
1. 서버가 필요 없습니다
- SQLite는 서버-클라이언트 구조를 가지고 있지 않습니다. 대신, 데이터베이스 전체가 하나의 파일로 저장되며 이 파일은 직접 읽고 쓸 수 있습니다. 이러한 특성 때문에 설치나 설정 과정 없이도 간단하게 사용할 수 있으며, 운영체제 간 호환성도 좋습니다.
2. ACID(원자성, 일관성, 고립성, 지속성)를 준수합니다
- SQLite는 트랜잭션 중 하나라도 실패하면 모든 작업을 롤백하는 ACID 원칙을 준수합니다. 이로 인해 데이터의 안정성과 신뢰성을 보장할 수 있습니다.
3. 경량화 되어있습니다
- SQLite 라이브러리의 크기는 매우 작아 임베디드 시스템 등에서 주로 사용됩니다. 또한 메모리 사용량도 적어서 저사양 환경에서도 부담 없이 사용할 수 있습니다.
4. SQL92 표준을 지원합니다
- SQL92 표준의 대부분 기능을 지원하기 때문에 다른 RDBMS와 비슷한 방식으로 쿼리를 작성할 수 있으며 배우기 쉽다는 장점이 있습니다.
그렇다면 어떤 경우에 SQLite를 선택하는 것이 좋을까요?
- 프로그램 설정 정보나 내부 데이터를 저장하는 용도
- 교육용으로 SQL 및 DBMS 학습
- 임베디드 시스템에서 로컬 스토리지로 활용
- 프로토타입 제작 및 테스트 용도
하지만 대용량 데이터를 처리하거나, 동시에 많은 사용자가 접속해야 하는 상황에서는 SQLite보다는 MySQL이나 PostgreSQL 등의 DBMS를 사용하는 것이 더 적합합니다.
마지막으로 SQLite를 사용하는 방법에 대해 간단히 알아보겠습니다. C++에서 SQLite를 사용하려면 sqlite3.h 헤더 파일을 포함시키고, sqlite3_open(), sqlite3_exec(), sqlite3_close() 등의 함수로 데이터베이스를 열고 SQL 명령을 실행한 후 닫을 수 있습니다.
#include <stdio.h>
#include <sqlite3.h>
int main(int argc, char* argv[]) {
sqlite3* db;
char *zErrMsg = 0;
int rc;
rc = sqlite3_open("test.db", &db);
if(rc) {
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
return(0);
} else {
fprintf(stderr, "Opened database successfully\n");
}
sqlite3_close(db);
}
아래 이미지는 SQLite의 Architecture 를 표현한 그림입니다. 참고하시라고 넣었습니다.
이상으로 SQLite에 대한 소개를 마치겠습니다. 이 글이 여러분의 개발에 도움이 되었기를 바랍니다.
다음 글에서는 다른 주제로 찾아뵙겠습니다.
감사합니다~~
반응형
'c c++ mfc' 카테고리의 다른 글
[Git] Merge vs Rebase, 그 차이점 알아보기 (26) | 2023.09.07 |
---|---|
UML Class Diagram의 화살표들, Class 간의 관계 (4) | 2023.08.24 |
ADO (ActiveX Data Objects) 이해하기 및 예제 (VBScript, C#, C++) (2) | 2023.08.23 |
프로세스의 최대 Commit Memory Size 구하기 (1) | 2023.08.02 |
GDI+ 이용한 화면캡쳐 (1) | 2023.08.02 |