SQLite

DB/Common 2012. 3. 2. 14:16

SQLite370.svg
개발원D. Richard Hipp
최신 버전3.7.10 (2012 년 1 월 16 일(44 일) )
프로그래밍 언어C
지원 OS크로스 플랫폼
종류관계 데이터베이스 관리 시스템
라이센스공개
공식 사이트www.SQLite.org

SQLite 는 MySQL 과 PostgreSQL 과 같은 데이터베이스 관리 시스템 이지만, 서버가 아닌 애플 리케이션에 통합 사용되는 경량의 데이터베이스이다. 일반적인 RDBMS 에 비해 대규모 작업에는 적합하지만, 중소면 속도에 손색이 없다. 또한 API는 단순히 라이브러리를 호출하고 데이터를 저장하는 단일 파일만을 사용하는 것이 특징이다. 버전 3.3.8에서 전체 텍스트 검색 의 FTS1 모듈이 지원됐다. 그 FTS2 - FTS3과 강화를 계속 버전 3.7.4에서 FTS4 모듈이 지원되고있다.

목차

  [ 숨기기 ] 

특징 편집 ]

  • SQL 92의 많은 기능을 구현
  • 저작권을 포기하고 공용 도메인 에 돌아가있다
  • 서버 가 아닌 라이브러리
    • 라이브러리는 수백 KB 정도의 작은 발자국
    • C 런타임이 아닌 별도 라이브러리를 필요로하지 않는다
    • 관리 도구를 사용하여 설치 및 유지 보수가 필요하지
    • 명령줄 도구를 사용할 수
  • 바이트 순서 에 의존하지 않는 (2.6.3 이상) 이식의 단일 파일
  • 데이터 형식 을 지정할 필요가 없다
    • 지원되는 형식은 Null / Integer / Real / Text / BLOB에만
    • Unicode 지원
    • BLOB는 메모리가 허락하는 한
    • ROWID를 가지고있다 (그러나, 3.6.18 이전에는 외부 제약 키 구조가 없다)
  • 트랜잭션 지원
    • 스레드로부터 안전 (바이너리에 의한 전달은 다시 컴파일이 필요한 경우도 있음)
  • 보기 지원
  • 트리거 지원
  • C 언어 를 사용하여 함수를 추가할 수
  • Tcl 바인딩 배포 키트 표준 첨부하고있다
  • PHP5 , Python 2.5, Adobe AIR 표준 지원
  • 기타 C , C + + , Curl (프로그래밍 언어) , Perl , Ruby , Delphi 등 다수의 언어에 대한 바인딩
  • 전체 텍스트 검색 의 FTS1 모듈이 지원되며 SQL 문장에서 전체 텍스트 검색 인덱스에 대해 검색할 수
  • Android 단말의 표준 라이브러리로 사용되고있다

개요 편집 ]

SQLite는 본체 프로그램에 직접 연결된 라이브러리 또는 공유 라이브러리 와 동적 링크 라이브러리 의 형태로 사용할 수있는 임베디드 데이터베이스 엔진이다. 그 특징은 대체로 600kb 전후의 발자국 풀 세트의 SQL 문과 형 속박되지 않은 데이터 집합을 사용할 수있다. 데이터베이스 저장소에 대한 액세스를 내장하고있어, 파일 및 메모리 스토리지를 지원하고있다. 파일을 공유하는 여러 응용 프로그램이 데이터베이스 인스턴스를 공유하는 것도 가능하며, 서버 클라이언트 모델이 아닌 응용 프로그램 로컬에서 사용하는 데이터베이스 엔진은 매우 합리적인 설계로되어있다.

제대로 사용하면 SQLite는 매우 안전한 데이터베이스로 사용될 수있다. 이유는 서버 클라이언트 모델은 아니기 때문에 여러 클라이언트가 사용하는 서버가 보유하는 데이터베이스 인스턴스에 타격을 줄 수 기본적으로 없다. 얼마나 벽을 돌파하려고도 응용 프로그램이 소유하는 데이터베이스 인스턴스까지 밖에 접근할 수 없기 때문이다. 형 속박이없는 것이 보안 문제로들 수 있지만, 이것은뿐만 아니라 형식 속박이없는 스칼라 타입을 사용할 수있는 데이터베이스 전반에 말할 수이며 SQLite의 본질에는 아무런 관계가 없다.

SQLite의 또 다른 특징은 바이트 순서에 의존하지 않는 아키텍처 독립적인 스토리지를 채용하고있는 것이다. 따라서 데이터베이스 인스턴스를 포함하는 스토리지 된 파일은 재사용성이 높고, 스토리지 버전 조심하면 응용 프로그램에서 저장소를 제거하고 완전히 다른 OS와 아키텍처에 동작하는 다른 응용 프로그램에 데이터 변환하지 않고 옮길 수있다.

내장 것, 스토리지까지 네이티브 코드에서 직접 실행 사이에 어떤 프로토콜 및 프로세스 간 통신이 없기 때문에 그 동작은 매우 빠르다. 일단 트랜잭션을 시작하면 스토리지 잠겨 트랜잭션의 세션은 최대한 설정에서 허용 캐시를 유효하게 작동하기 위해 SQL의 복잡 고급 문을 사용하는 것을 사용자에게 영향을 미치지 않고 정도 빠르게 데이터베이스에 액세스할 수있다. 이것은 응답성이 중요한 애플 리케이션에서 중요한 요소가되며, SQLite를 서버와의 중간에 캐시로 채용하는 사례와 응용 프로그램 임베디드 데이터베이스로의 채용을 촉진 이유도되고있다.

표준으로 탑재하고있는 데이터 세트의 형태는 정수형 (INTEGER), 문자열 (TEXT), 무제한 스칼라 (BLOB)의 3 종류이다. 실제로 INTEGER 형식이 바이너리 값으로 변환된다, TEXT 형식이 응용 프로그램 계층에서 문자열 변환이 필요한 힌트가 될 수있는 다른 응용 프로그램에 형식 속박이 매우 완화되어있다. 사전에 문자열 스칼라가 얼마나 많은 공간을 필요로하는 CREATE TABLE 문을 실행할 때 선언할 필요가 없기 때문에 응용 프로그램의 기본 설계에 매우 관대하며, 사양 변경에 대한 데이터베이스를 변환 내지 재구성 필요없이 어플 리케이션 개발을 쉬운 것으로하고있다.

아래의 CUI 기반 관리 도구를 표준으로 갖춘 다른 여러 GUI 기반 관리 소프트웨어가 풍부하다. 또한 스토리지 사양이 아키텍처에 의존하지 않기 때문에 관리 도구 직접 실행이 어려운 시스템 (임베디드 소프트웨어 개발 등)에서도 스토리지를 꺼내 Windows 컴퓨터 등으로 데이터를 확인하거나 SQL 문을 실행하는 것이 가능 있다.

관리 도구 편집 ]

또한 SQLiteManager는 관리 도구 버전 2와 버전 3을 지원하고, 이쪽은 일본어 메뉴 표시도 선택할 수있다. 그러나 기본 charset은 EUC-JP이므로, UTF-8 지원하려면 설정 파일이다 japanese.inc.php을 UTF-8 문자 코드 다시 작성해야한다. 새 데이터베이스를 만들려면 설치 디렉토리의 경로에서 파일 이름을 지정하면 좋고, 그 필요한 테이블을 추가합니다. 이 도구는 브라우저의 캐시가 효과가 있으면 올바른 데이터가 바로 반영되지 않기 때문에주의가 필요하다.

다른 관리 도구로서 Mozilla Firefox 부가 기능 SQLite Manager가있다. Web 브라우저에서 GUI에서 데이터베이스에 대한 기본적인 조작이 가능하다.

ODBC 편집 ]

SQLite ODBC 드라이버가 타사에서 제공되고있다. SQLite 2와 SQLite 3 버전이 있으며, SQLite 2 용에는 또한 UTF-8 지원 버전이있다.Microsoft Access 에서 ODBC 연결할 때 데이터 형식을 미리 SQLite 측의 CREATE TABLE로 선언해야한다. 그렇게 두지 않으면 모든 데이터 형식을 int로 간주될 수있다. 일본어 문자 코드는 UTF-8로두면, Access 측에서도 제대로 표시된다.

도서 편집 ]

외부 링크 편집 ]

각주 편집 ]



=============================================================================================

SQLite Logo.svg
개발자리처드 힙
발표일2000년 8월
최근 버전3.7.9 / 2011년 11월 1일
프로그래밍 언어C
운영 체제크로스 플랫폼
크기~275 kiB
종류관계형 데이터베이스 (임베디드)
라이선스퍼블릭 도메인[1]
웹사이트http://sqlite.org/


SQLite는 MySQL나 PostgreSQL와 같은 데이터베이스 관리 시스템이지만, 서버가 아니라 응용프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 영어권에서는 '에스큐엘라이트(ˌɛs ˌkjuː ˈɛlaɪt)'[2]또는 '시큐엘라이트(siːˈkwɛlaɪt)'[3]라고 읽는다.

일반적인 RDBMS에 비해 대규모 작업에는 적합하지 않지만, 중소 규모라면 속도에 손색이 없다. 또 API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용하는 것이 특징이다. 버전 3.3.8에서는 풀텍스트 검색 기능을 가진 FTS1 모듈이 지원된다. 컬럼을 삭제하거나 변경하는 것 등이 제한된다.


구글
 안드로이드 운영 체제에 기본 탑재된 데이터베이스이기도 하다.

[편집]주석

  1.  (영어)SQLite Copyright. sqlite.org. 2010년 5월 17일에 확인.
  2.  리처드 힙 (발표자). (2006-05-31). SQLite 소개 (플래시 영상). 구글. 2010-03-23에 확인. "00:01:14 [...] 에스큐엘 라이트 [...]"
  3.  리처드 힙 (발표자). (2006-05-31). SQLite 소개 (플래시 영상). 구글. 2010-03-23에 확인. "00:48:15 [...] 시퀠라이트 [...]"

'DB > Common' 카테고리의 다른 글

테이블 설계 시 고려 사항  (0) 2012.03.17
회원 정보 테이블 설계 시 고려 사항  (0) 2012.03.17
SQLite  (0) 2012.03.02
varchar와 varchar2의 차이와 number(5,2) 의미  (1) 2012.02.13
CHAR()와 VARCHAR2() 차이  (0) 2012.02.13
TABLE의 key  (0) 2012.01.09
Posted by linuxism

댓글을 달아 주세요