BigData

[SQLite] sqlite 소개 - Serverless Database

IT오이시이 2022. 8. 4. 18:20
728x90

[SQLite 사용법] sqlite 소개 - Serverless Database

 

SQLite 사용법 관련  목차 

1. [SQLite]-sqlite 소개 -Serverless-Database
2. [SQLite]-SQLite_관리-Commands
3. [SQLite] sqlite 테이블 생성 - create table
4. [SQLite] Sqlite transaction - ACID개념
5. [SQLite] [SQLite] Sqlite transaction 처리문 작성 - BEGIN TRANSACTION
6.[SQLite] date형식 timestamp를 이용하여 날짜 표현하기
7.[SQLite] SQLite 윈도우-리눅스 설치하기

 


[SQLite] sqlite - Serverless Database

[ 배 경 ]
SQLite 라는 것을 처음 접한 것은 HTML5를 통해 웹페이지 만들때 인데 최근 파이썬으로 뭔가 만들려다 보니 다시 관심을 갖게 됩니다. 엣지 컴퓨팅도 되고 분산 DB도 되고 로컬 캐시 개념도 필요하고 등등 다양한 용도로 접근이 가능할 것 같아요.

20년전에는 구글 메일 같은 시스템에서 BDB(버클리DB)를 가지고 개인 메일함을 관리 했던 적이 있었는데, 대용량의 DB로 모든 데이터를 담는 것이 아니라 개인화된 파일DB 를 기반으로 서비스를 분산하여 만드는 것에 적합한 것으로 이해하는 것이 좋은 사례가 아닌가 싶습니다.

 

SQLite 란 무엇?

SQLite는 관계형 데이터베이스 관리 시스템을 제공하는 소프트웨어 라이브러리입니다. SQLite의 라이트는 데이터베이스를 설치하고 데이터베이스 관리에 필요한 리소스 측면에서 경량화 되어 있습니다.
SQLite에는 독립 실행형, 서버리스, 설정 없이 사용가능, 트랜잭션 지원 등의 좋은 기능이 있습니다.
(self-contained, serverless, zero-configuration, transactional)

아키텍처 - 클라이언트/서버 vs 서버리스 (Serverless)

일반적으로 MySQL, PostgreSQL 등과 같은 RDBMS는 동작하기 위해 별도의 서버 프로세스가 필요합니다. 이들 데이터베이스는 클라이언트/서버 아키텍처로서 데이터베이스 서버에 액세스하려는 응용 프로그램들은 TCP/IP 프로토콜을 사용하여 요청을 보내고 받습니다.
다음 다이어그램은 RDBMS 클라이언트/서버 아키텍처를 보여줍니다.

<클라이언트/서버 아키텍처>

SQLite는 이런 식으로 작동하지 않습니다.
SQLite는 서버를 실행할 필요가 없습니다.
SQLite 데이터베이스는 데이터베이스에 액세스하는 애플리케이션과 통합되어 있습니다. 응용 프로그램은 디스크에 저장된 데이터베이스 파일을 직접 읽고 쓰는 SQLite 데이터베이스와 상호 작용 할 수 있습니다.
다음 다이어그램은 SQLite 서버리스 아키텍처를 보여줍니다.

<서버리스 아키텍처>

독립 실행형 (self-contained)

SQLite는 독립 실행형으로 운영 체제나 외부 라이브러리의 지원이 최소한으로 필요합니다. 따라서 iPhone, Android 전화, 게임 콘솔, 휴대용 미디어 플레이어 등과 같은 임베디드 장치의 모든 환경에서 SQLite를 사용할 수 있습니다.
독립된 파일을 통해서 스키마구조와 데이터를 저장 관리하도록 되어 있어서 시스템 독립적으로 사용 가능합니다.
SQLite는 ANSI-C를 사용하여 개발되었습니다. 소스 코드는 sqlite3.c 및 헤더 파일 sqlite3.h로 사용할 수 있습니다. SQLite를 사용하는 애플리케이션을 개발하려면 이 파일을 프로젝트에 드롭하고 코드로 컴파일하면 됩니다.

제로 구성 (Zero-Configuration)

서버리스 아키텍처로 인해 SQLite를 사용하기 전에 "설치"할 필요가 없습니다. 구성, 시작 및 중지해야 하는 서버 프로세스가 없이 파일만으로 데이터 관리가 가능합니다. 또한 SQLite는 별도의 설정과 구성 파일을 사용하지 않습니다.

트랜잭션 지원 (transactional)

SQLite의 모든 트랜잭션은 완전히 ACID를 준수합니다. 이는 모든 쿼리와 변경 사항이 Atomic, Consistent, Isolated 및 Durable임을 의미합니다.
즉, 애플리케이션 충돌, 정전 또는 운영 체제 충돌과 같은 예기치 않은 상황이 발생하더라도 트랜잭션 내의 모든 변경이 완전히 발생하거나 전혀 발생하지 않습니다.

SQLite의 특징

SQLite는 테이블에 동적 유형을 사용합니다. 이는 데이터 유형에 관계없이 모든 열에 모든 값을 저장할 수 있음을 의미합니다.
SQLite를 사용하면 단일 데이터베이스 연결이 여러 데이터베이스 파일에 동시에 액세스할 수 있습니다. 이것은 다른 데이터베이스의 테이블을 조인하거나 단일 명령으로 데이터베이스 간에 데이터를 복사하는 것과 같은 많은 멋진 기능을 제공합니다.
SQLite는 작업 속도가 매우 빠른 인메모리 데이터베이스를 생성할 수 있습니다.

 

SQLite 사용법 관련  목차 

1. [SQLite]-sqlite 소개 -Serverless-Database
2. [SQLite]-SQLite_관리-Commands
3. [SQLite] sqlite 테이블 생성 - create table
4. [SQLite] Sqlite transaction - ACID개념
5. [SQLite] [SQLite] Sqlite transaction 처리문 작성 - BEGIN TRANSACTION
6.[SQLite] date형식 timestamp를 이용하여 날짜 표현하기
7.[SQLite] SQLite 윈도우-리눅스 설치하기

 

참고문헌

  1. https://www.sqlite.org – SQLite 홈페이지
  2. https://www.sqlite.org/features.html – SQLite 기능
  3. https://www.sqlite.org/copyright.html – SQLite 라이선스
  4. https://www.sqlite.org/docs.html – SQLite 문서

 

728x90
반응형