최신판 |
당신의 편집 |
2번째 줄: |
2번째 줄: |
| ;[[모바일]], [[임베디드]] 등의 다양한 제약사항 하에서 동작하는 Serverless, Zero Configuration [[데이터베이스]] | | ;[[모바일]], [[임베디드]] 등의 다양한 제약사항 하에서 동작하는 Serverless, Zero Configuration [[데이터베이스]] |
|
| |
|
| '''에스큐엘라이트'''<!--에스큐엘 라이트, 에스큐라이트, 에스큐 라이트-->(SQLite)는 2000년 [[리처드 힙]]<!--리차드 힙-->(Richard Hipp)이 개발한 [[관계형 데이터베이스 관리 시스템]](RDBMS)이다. 서버에 설치되는 다른 관계형 데이터베이스 관리 시스템(RDBMS)와 달리 에스큐엘라이트(SQLite)는 응용 프로그램에 [[임베디드]](embedded) 방식으로 삽입된다. 에스큐엘라이트는 용량이 매우 작으며, [[웹브라우저]]와 [[안드로이드]] 운영체제 등에 기본 탑재되어 있다. 저작권이 소멸된 [[퍼블릭 도메인]]이므로 누구나 무료로 사용할 수 있다.
| | == 특징 == |
| | |
| ==개요==
| |
| SQLite는 파일기반의 [[임베디드]] SQL [[데이터베이스]] 엔진이다. 주로 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이며 빠르고, 무료이며 사용하기 쉬운 경량 라이브러리이다.
| |
| 에스큐엘라이트 또는 시퀄라이트라고 읽는다고 한다.
| |
| | |
| ==역사==
| |
| *2000년 : [[리처드 힙]]과 한 동료가 제너럴 다이내믹스에서 일할때 2000년 초 SQQL을 시작한다. SQLite는 HP-UX 컴퓨터에서 실행되는 IBM Informix 데이터베이스 를 대체하기 위해 유도 미사일 에 사용되었다. 그래서 해군과 계약을 체결했다.
| |
| *2000년 8월 : SQL의 첫 번째 버전이 발표되었다.
| |
| *2004년 : ADOLed와 함께 생산되는 SQL 3.0이발표되며, 지역화와 [[유니코드]]가 추가된다.
| |
| | |
| ==특징== | |
| * Serverless: 별도 서버 없는 로컬 전용 데이터베이스 | | * Serverless: 별도 서버 없는 로컬 전용 데이터베이스 |
| * Zero Configuration: 컴파일 후 즉시 사용 가능 | | * Zero Configuration: 컴파일 후 즉시 사용 가능 |
| * Open Software: 자유롭게 수정 가능한 라이센스(Public Domain) | | * Open Software: 자유롭게 수정 가능한 라이센스(Public Domain) |
| * Reliability: 간결함에도 불구하고 [[관계형 데이터베이스|RDBMS]]에서 요구하는 [[ACID]] 충족 | | * Reliability: 간결함에도 불구하고 [[관계형 데이터베이스|RDBMS]]에서 요구하는 [[ACID]] 충족 |
|
| |
|
| |
| SQLite는 대부분의 SQL-92 표준을 SQL에 구현하지만 일부 기능이 부족하다. 예를 들어 부분적으로 트리거를 제공하고 뷰에 쓸 수 없다. (그러나 이 기능을 제공하는 INSTEAD OF 트리거를 제공한다) 복잡한 쿼리를 제공하지만 열을 수정하거나 삭제할 수 없기 때문에 여전히 [[ALTER TABLE]] 기능이 제한적이다.
| |
|
| |
| SQLite는 [[SQL]] 호환 [[DBM]]S에 대해 비정상적인 유형의 시스템을 사용한다. 대부분의 SQL [[데이터베이스]] 시스템에서처럼 유형을 열에 할당하는 대신 형식이 개별 값에 할당된다. 언어 용어로 동적으로 입력된다. 더욱이 Perl과 같은 방식으로 약하게 타입 지정된다. 하나는 문자열을 정수로 삽입 할 수 있다. (비록 SQLite가 문자열을 정수형으로 변환하려고 시도할지라도 열의 우선 형이 정수일 때) 이로 인해 특히 동적 유형의 스크립팅 언어에 바인딩 될 때 열에 유연성이 추가된다. 그러나 이 기술은 다른 SQL 제품으로 이식할 수 없다. 일반적인 비판은 SQLite의 유형 시스템이 다른 제품에 정적으로 입력된 열에 의해 제공되는 데이터 무결성 메커니즘이 부족하다. SQLite [[웹 사이트]]는 "엄격한 선호도" 모드를 설명하지만 이 기능은 아직 추가되지 않았다. 그러나 제약 조건과 같이 구현될 수 있다. CHECK(typeof(x)='integer')
| |
|
| |
| 테이블에는 일반적으로 빠른 [[액세스]]를 제공하는 숨겨진 rowid 인덱스 열이 포함된다. 데이터베이스에 Integer Primary Key 열이 포함되어있는 경우 SQLite는 일반적으로이를 rowid 의 별칭으로 처리하여 내용을 최적화하여 엄격하게 형식화된 64비트 부호 있는 정수로 저장하고 그 동작을 다소 비슷하게 변경한다. SQLite의 향후 버전에는 컬럼이 rowid 와 같은 동작을 하는지 여부를 인트로 스펙 (introspect) 하여 약하게 타입이 지정되고 자동 증가하지 않는 정수 기본 키와 구분할 수 있는 명령이 포함될 수 있다.
| |
|
| |
| 완전한 [[유니코드]] 기능을 갖춘 SQLite 는 선택 사항이다.
| |
|
| |
| 여러 컴퓨터 프로세스 또는 스레드가 동일한 데이터베이스에 동시에 액세스 할 수 있다. 여러 개의 읽기 액세스가 동시에 충족될 수 있다. 쓰기 액세스는 현재 다른 액세스가 서비스되고 있지 않은 경우에만 충족될 수 있다. 그렇지 않으면 쓰기 액세스가 오류 코드와 함께 실패하거나 구성 가능한 시간 초과가 만료될 때까지 자동으로 재시도 될 수 있다. 이 동시 액세스 상황은 임시 테이블을 처리할 때 변경된다. WAL ( write-ahead logging )이 설정되어 동시 읽기 W 쓰기가 가능할 때 버전 3.7에서는 이 제한이 완화된다.
| |
|
| |
| SQLite 버전 3.7.4는 처음으로 FTS4 (전체 텍스트 검색) 모듈을 추가 한다. 이 모듈은 구형 FTS3 모듈에 비해 향상된 기능을 제공한다. [[FTS4]]를 사용하면 검색 엔진이 웹 페이지를 검색하는 것과 유사한 방식으로 문서에 대한 전체 텍스트 검색을 수행 할 수 있다. 버전 3.8.2 없이 테이블을 생성하기 위한 지원을 추가 ROWID, 공간 및 성능 향상을 제공할 수있다. 공통 테이블 표현식 지원이 버전 3.8.3의 SQLite에 추가되었다.
| |
|
| |
| 2015 년 json1 확장 과 새로운 하위 유형 인터페이스를 사용하여 SQLite 버전 3.9에서 JSON 컨텐츠 관리 기능을 도입했다.<ref name="SQLite">〈[https://en.wikipedia.org/wiki/SQLite SQLite]〉《위키피디아》</ref>
| |
|
| |
| ==활용==
| |
| ===미들웨어===
| |
| * 로버트 심슨에 의해 개발된 ADO.NET 어댑터는 2010년 4월부터 에스큐엘라이트 개발자와 공동으로 유지 관리된다.
| |
| * ODBC 드라이버는 크리스티앙 베르너(Christian Werner)에 의해 개발되고 별도로 관리한다. 베르너의 ODBC 드라이버는 오픈 오피스(OpenOffice.org)에서 에스큐엘라이트에 액세스하는데 권장되는 연결 방법이다.
| |
| * 윈도우즈에서 자바스크립트 및 VB스크립트와 같은 스크립트로 작성된 언어로 에스큐엘라이트에 액세스할 수 있도록 하는 COM(액티브엑스) 래퍼이다. 이렇게 하면 HTML 애플리케이션(HTA)에 에스큐엘라이트 데이터베이스 기능이 추가된다.
| |
|
| |
| ===웹 브라우저===
| |
| *브라우저 구글 크롬, 오페라, 사파리와 안드로이드 브라우저 모두 사용하여 정보를 저장하고 브라우저 내에서 SQLite는 데이터베이스에서 검색을 허용한다.
| |
| *Mozilla Firefox 및 Mozilla Thunderbird 는 내부적으로 관리되는 SQLite 데이터베이스에 다양한 구성 데이터 (책갈피, 쿠키, 연락처 등)를 저장합니다. Firefox 버전 57 ( "Firefox Quantum" ) 이 출현 할 때까지이 기능을 지원하는 코드를 사용하여 임의의 SQLite 데이터베이스를 관리하기위한 사용자 인터페이스를 제공하는 타사 추가 기능이 있다.
| |
| *일부 타사 추가 기능은 JavaScript API를 사용하여 SQLite 데이터베이스를 관리 할 수 있다.
| |
| ===웹 응용 프로그램 프레임 워크===
| |
| *버그 질라
| |
| *Django 의 기본 데이터베이스 관리 시스템
| |
| *드루팔
| |
| *Trac
| |
| *Ruby on Rails 의 기본 데이터베이스 관리 시스템
| |
| *web2py
| |
| *Laravel
| |
| ===다양한===
| |
| *Adobe Systems 는 SQLite를 Adobe AIR 의 표준 데이터베이스 인 Adobe Photoshop Lightroom 에서 파일 형식으로 사용 하고 Adobe Reader 에서 내부적으로 사용한다.
| |
| *Evernote 는 SQLite를 사용하여 로컬 데이터베이스 저장소를 Windows에 저장한다.
| |
| *Skype
| |
| *서비스 관리 기능 내 서비스 관리를 위해 사용, 솔라리스 및 오픈 솔라리스 운영 체제
| |
| *화염 (악성 코드)
| |
| *BMW IDrive Sat Nav 시스템
| |
| ===운영 체제===
| |
| SQLite는 기본적으로 다음과 같이 포함한다.
| |
| *블랙 베리의 블랙 베리 10 OS
| |
| *심비안 OS
| |
| *노키아의 Maemo
| |
| *Google의 Android
| |
| *Linux Foundation의 MeeGo
| |
| *LG의 웹 OS
| |
| *NetBSD
| |
| *2014 년 1 월에 10-RELEASE 버전부터 시작하는 FreeBSD 는 코어 패키지 관리 시스템에서 사용된다.
| |
| *일루 모스
| |
| *서비스 관리 기능 데이터베이스가 부팅을 위해 직렬화 되는 Oracle Solaris 10 .
| |
| *Apple 은 macOS 의 Core Data API에서 MacOS X 10.4 이후 의 원래 구현 과 비디오 및 노래 관리 , iPhone 에서의 텍스트 메시지 저장을위한 iOS 에서 옵션으로 채택했다.
| |
| *티젠
| |
| *Windows 10<ref name="SQLite"></ref>
| |
|
| |
| ==참고자료==
| |
| * 〈[https://www.sqlite.org/copyright.html SQLite]〉, 《SQLite 공식 웹사이트》
| |
| * 똑똑이,〈[https://m.blog.naver.com/PostView.nhn?blogId=wideeyed&logNo=220966818808&proxyReferer=https%3A%2F%2Fwww.google.com%2F [SQLite] SQLite 소개 및 간단한 실습해보기]〉《네이버블로그》, 2017-03-25
| |
| * 〈[https://en.wikipedia.org/wiki/SQLite En SQLite]〉, 《위키피디아》
| |
| * 〈[https://ja.wikipedia.org/wiki/SQLite Ja SQLite]〉, 《위키피디아》
| |
| * 〈[https://fr.wikipedia.org/wiki/SQLite Fr SQLite]〉, 《위키피디아》
| |
|
| |
|
| == 같이 보기 == | | == 같이 보기 == |
86번째 줄: |
12번째 줄: |
| * [[관계형 데이터베이스]] | | * [[관계형 데이터베이스]] |
| * [[공개 소프트웨어]] | | * [[공개 소프트웨어]] |
|
| |
| == 각주 ==
| |