블로그를 티스토리로 옮기면서 제일 먼저한 작업이 SQLite의 번역이었습니다.


요즘 너무 바빠서 못하고 있었습니다. 요건 핑계일 가능성이 다 분하다는 ^^;;


그래서 그때 약속 드린대로 우선 SQLite의 데이터 형에 관해서 부터 다시 번역을 시작 합니다.


모든 SQL database 엔진들은 (SQLite 외의 모든 SQL database  엔진, 현재까지 우리가 알고 있는) 정적, 엄격한 타입을 이용한다. 


정적 타입과 함께, 값의 데이터 타입(테이터형)은 그것의 컨텐이너가 결정한다. 특별한 칼럼 값을 정장하는 


SQLite는 좀더 일반적인 동적 타입 시스템을 사용한다. SQLite에서 값의 데이터타입(데이터형)은 값과 관계가 있다. 그것의 컨텐이너와는 관계가 없다. SQLite의 동적 타입 시스템은  거꾸로 좀더 의미상으로 다른 데이터베이스 엔진의 일반적인 정적 타입 시스템과 호환 된다. 정적 타입의 데이터베이스 들 상에서 일하듯이 SQL 문장은 SQLite에서 같은 방식으로 동작한다.


그러나, SQLite에서 동적 타입은 전통적인 엄격한 타입 데이터베이스들에서 불가능한 것듯을 허락한다.



Most SQL database engines (every SQL database engine other than SQLite, as far as we know) uses static, rigid typing. With static typing, the datatype of a value is determined by its container - the particular column in which the value is stored.

SQLite uses a more general dynamic type system. In SQLite, the datatype of a value is associated with the value itself, not with its container. The dynamic type system of SQLite is backwards compatible with the more common static type systems of other database engines in the sense that SQL statement that work on statically typed databases should work the same way in SQLite. However, the dynamic typing in SQLite allows it to do things which are not possible in traditional rigidly typed databases.



앞으로 아래 글들에 대한 번역을 진행 하도록 하겠습니다.



1.0 Storage Classes and Datatypes

2.0 Type Affinity

3.0 Comparison Expressions

4.0 Operators

5.0 Sorting, Grouping and Compound SELECTs

6.0 Collating Sequences


저는 차례만 있도록 편집 했다고 생각학 잊고 있었는데 

헉 전문이 나갔네요 T.T




http://www.sqlite.org/datatype3.html. 을 참조하세요


FAQ 3번을 번역하기 전에 datatype3.html에 대해서 번역하도록 하겠습니다.

짧은 답변 컬럼을 숫자타입(INTEGER)의 프라이머리키로 정의하면 자동증가 할 것이다.

긴 답변 : 만약 당신이 테이블의 컬럼을 숫자타입의 프라이머리키가 되도록 정의를 한다면, 테이블의 컬럼에 NULL을 입력할때 마다, NULL이 자동으로 그 이 테이블의 그 클럽을 통틀어서 가장 큰 값보다 큰 하나의 숫자나 만약에 테이블이 비어 있다면 1로 변환될 것이다.

(만약에 가장 크게 가능한 숫자타입의  키, 9223372036854775807, 그 후에는 사용되지 않는 키 벨류가 랜덤으로 선택 될 것이다.)

예를 들어, 당신이 다음과 같은 테이블을 정의한다면 :

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  b INTEGER
);

이 테이블에서 이 문장

INSERT INTO t1 VALUES(NULL,123);

은 다음 문장과 같은 의미를 지닌다.

INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);

이것은 가장 최근의 입력 동작을 위한 숫자타입 키를 반환하는 sqlite3_last_insert_rowid() 함수 이다.

숫자타입 키는 가장큰키를 만났을때 테이블에서 단지 이전에 입력한 값이라는 것에 주의 하라.

새로운 키는 현재의 테이블의 키를 통틀어서 유일할 것이다. 그러나 그것은 테이블에서 이전에 지워진 키값이다.

키를 생성하는 것은 테이블이 살아 있는 동안 유일하다. AUTOINCREMENT 키워드를 숫자타입 프라이머리 키 정의에 추가할 경우에

키 선택이 있은 후에는 테이블 안에 존재하는 가장 큰 키보다 더 클 것이다.

만약 가장 큰 키 값이 테이블에서 이전에 존재하는 값이라면 입력작업은 SQLITE_FULL 에러 코드와 함께 실패할 것이다.

SQLite 소개

관련글


SQLite는 자체 포함되고, 서버가 필요 없고, 설정이 필요 없고, 트랜젝션을 지원하는 SQL 데이터베이스 엔진입니다.

SQLite  코드는 공공재 이다. 그러므로 상업적으로던 개인적으로던  자유롭게 이용할 수 있다.

SQLite는 여러 high-profile 푸로젝트를 포함해서 우리가 셀 수 있는 것 보다 더 많은 프로그램에서  계속 발견된다.

SQLite는 엠베디드 SQL 데이터베이스 엔진이다.

거의 모든 다른 SQL 데이터베이스들 과 달리, SQLite는 독립적인 서버 프로세서를 가지고 있지 않다.

SQLite는 일상적인 디스크파일에 직접 읽고 쓴다.

멀티플 테이블과 인덱스들과 트리거들과 뷰들을 포함한 완벽한 SQL 데이터베이스는 하나의 디스크 파일이 포함하고 있다.

데이터베이스 파일 포맷은 크로스 플랫폼을 지원한다. - 당신이 32비트나 64비트 시스템간이나 빅인디언과 리틀인디언 아키텍쳐 사이에도 데이터베이스로 자유롭게 복사가 가능하다.

이 특징은 SQLite를 어플리케이션 파일 포맷으로써 좋은 선택으로 만들어 준다.

SQLite의 생각는 Oracle을 바꾸는 것이 아니고 fopen()을 바꾸는 것이다.

SQLite는 컴팩트한 라이버러리이다.

모든 특성들이 가능하도록 설정하면 라이버러리 크기는 250Kib 이하로 줄일 수 있다. 컴파일러의 옵티마이제이션 설정에 의존적이지만,( 공격적인 함수 inlining 과 loop unrolling 같은 어떤  컴파일러 옵티마이제이션은 목적코드가 훨씬 더 크게 만들 수도 있다.)

만약 선택적으로 특성들이 생략된다면 SQlite 라이버러리의 크기는 180Kib 이하로 줄일 수 있다.

SQLite 는 물론 최소의 스택공간(16Kib)에서 사용하도록 만들 수 있다. 그리고 매우 작은 힙(Heap)(100Kib)을 사용한다. 핸드폰이나, PDA, MP3 플레이어 같은 작은 메모리 가젯에 적합한  데이터베이스 엔진을 선택하도록 해준다.

그것은 메모리와 속도 사이의 교환 조건이다.

SQLite는 일반적으로 더 많은 메모리를 주면 매우 빠르게 동작한다.

그럼에도 불구하고, 작은 메모리 환경에서도 보통 꽤 좋은 성능을 나타낸다.

SQLite는 매우 신뢰할만 하다고 평판이 나 있다.

소스코드의 거의 3/4 정도가 테스팅과 검증에  순수하게 노력을 기울인다.

자동 테스트 슈트는 100만번의 개별적인 SQL 문장과 99퍼센트 이상의 문장의 보장범위를 보장 하는 등 수십만번의 테스를 실행 했다.

SQLite는 메모리 어로케이션 페일류어와 디스크 입출력(I/O) 오류에 대해 깨끗하게 응답했다.

트랜젝션들은 시스템 고장이나 전원이상에도 ACID를 유지했다.

이 모든 것을 시스템 오류를  시뮬레이트 해보는 것 같은 특별한 테스트 작업을 이용한 자동 테스트가 검증했다.

물론 이 모든 테스트에도 아직 버그가 있다.

그러나 약간의 비슷한 제품들(특히 상용 경쟁자들(제품들))과 달리 SQLite는 공개되어있고 모든 버그에 관해 정직하고 치명정인 버그리스트와 버그 리포트의 지속적인 연표 형식의 버그 리스트와 코드 변화를 제공한다..


SQLite의 코드 기반은 SQLite에 적적으로 매달리는 개발자들의 세계적인 팀이 지원한다.


개발자들은 SQLite의 가용성을 확장하고 그것의 실뢰성과 제공된 인터페이스 스펙과 SQL 문법 그리고 데이터베이스 파일 포맷에 대해 과거버젼 호환성을 유지하는 동안의 퍼포먼스를 보장하고 계속한다.


이 소스 코드는 원하는 누구에게나 전적으로 사용이 자유롭다. 그러나 전문적인 지원 서비스도 물론 가능하다.


우리 개발자들은 당신이 SQLite의 유용성을 발견하기를 희망한다. 그리고, 우리는 빠라고 신뢰성이 간단하게 사용할 수 있는 좋고 예쁜 제품을 만들기위해서 그것을 당신이 잘 사용하기를 바란다.


당신이 다른 사람들에게 관대하듯이 당신을 위한 관대함 찾아라.


그리고 단지 당신이 SQLite를 자유롭게 얻었듯이 그래서 역시 앞으로 빚을 갚듯이  자유롭게 제공해라.


원본 : http://www.sqlite.org/about.html


SQLite 특징들

  • 트랜젝션은  시스템 파괴와 전원 이상에도 원자성, 일관성, 독립성, 지속성(ACID)을 유지한다.
  • 무 설정 - 설치와 관리가 필요 없다.
  • 거의 모든 SQL92를 지원한다.(지원하지 않는 특징들)
  • 완전한 데이터베이스는 하나의 크로스 플랫폼 디스크 파일에 저장된다.
  • 테스트바이트 까지의 데이타베이스 크기와 기가 바이트까지의 문자열 및 바이너리 타입을 지원한다. (제한 보기)
  • 적은 코드 저장 공간 : 모든 설정을 했을때 275KB 보다작거나 일부 특성들을 제외하고 설정했을때는 200KB보다 작다.  
  • 일반적인 동장에서 유명한 클라이언트 서버 데이터베이스 엔진에 비해 더 빠르다.
  • 간단하고 쉽게 API를 이용할 수 있다.
  • ANSI-C로 짜여졌다. TCL bindings를 포함다. 다양한 언어에 대한 바인딩을 제공한다.  가능한 독립적으로
  • 99%이상 테스트가 진행된 주석이 잘 처리된 소스코드
  • 당신은 하나의 ANSI-C 소스코드 파일처럼 가능한 쉽게 다른 프로젝트에서 적용 할 수 있다.
  • 자체포함 : 외부 의존성이 전혀 없다.
  • 크로스 플랫폼 지원 : 특히, 리눅스(유닉스)MacOS X, OS/2 Win32 그리고 WinCE 를 지원한다. 다른 시스템으로 포팅 하기 쉽다.
  • 소스는 공공재이다. 어떤 목적으로던 사용가능하다.
  • 독립적인 커맨 라인 인터페이스(CLI) 클라이언트를 SQLite 데이터베이스 관리에 이용할 수 있다.

SQLite를 사용할 것을 제안함

  • 프로그램의 파일포맷.
    당신의 어플리케이션이 XML이나 다른 프로퍼티 파일 포맷을 디스카 파일에 fopen()을 이용하는 것 대신에 SQLite 데이터베이스를 이용해 보라. 당신은 데이터를 더욱 쉽게 접근 가능하도록 크로스플랫폼을 지원하도록 하기위에서 작성하고  파서에 대한 문제해결을 해야하는 점을 피할 수 있을 것이다. 당신의 업데이트는 트래젝션을 지원할 것이다.
  • 가젯을 위한 데이터베이스
  • SQLite는 핸드폰, PDA, MP3 플레이어, 그리고, 다른 전자 가젯을 위한 데이터 베이스엔진으로서 좋은 선택이다.

    SQLite는 작은 코드 저장 공간을 차지한다. 메모리 디스크공간과 디스크 밴드위드스 이용을  효율적으로 한다, 높은 신뢰성을 보여 준다 그리고, 데이터베이스 관리자로 부터 유지보수를 필요로 하지 않는다.


  • 웹사이트 데이터베이스.

    왜냐면 SQLite는 설정이 필요없고 일반적인 디스크파일에 정보를 저장하기 때문이다. SQLite는 작거나 중간정도 규모의 웹사이트 데이터베이스로서 좋은 선택이다.

  • 엔터프라이즈 RDBMS를 위한 대역

    SQLite는 종종 데몬스트레이션 목적 또는 테스트 목적으로 엔터프라이즈 RDBMS를 위한 대안으로 사용된다.

    SQLite는 빠르고 셋업이 필요 없다. 테스트에 대한 수고를 들어 준고, 활기찬 데모를 만들어주고, 실행하는 것이 쉽습니다.

    원문 : http://www.sqlite.org/features.html

'DATABASE > SQLite' 카테고리의 다른 글

[FAQ/SQLite] 나는 자동증가필드(AUTOINCREMENT field)를 생성할 수 있습니까?  (0) 2008.08.26
SQLite 소개  (0) 2008.08.24
SQLite 특징들  (0) 2008.08.21
SQLite 메인페이지 번역  (0) 2008.08.21
SQLite 웹사이트의 사이트맵  (0) 2008.08.20
SQLite 개발팀 소개  (0) 2008.08.20

환영합니다.

SQLite는 자체 포함되고, 서버가 필요 없고, 설정이 필요 없고, 트랜젝션을 지원하는 SQL 데이터베이스 엔진입니다.

SQLite는 세계에 매우 넓게 배포된 SQL 데이터베이스 엔진이다.

그것은 핸드폰, PDA, MP3 플레이어 등을 포함한 소비자 전자기기들과 같은 셀수 없을 정도의  데이터톱 컴퓨터 프로그램에 이용 되고 있다.

SQLite의 소스코드는 공공재에 속한다.

스폰서들

진행중인 SQLite의 개발 및 유지보수는 다음을 포함한 SQLite 컨소시엄 멤버들이 스폰서 하고 있다.

adobe.com

어도비사의 혁명은 세계가  어디서나 언제나 어떤 미디어를 통해서든 아이디어와 정보와 함께 할 수 있도록 보장 한다.

mozilla.com

모질라 재단 - 인터넷에서의 브라우져 선택을 보장하고 혁식을 이룩하기위해서 노력하고 있다.

symbian.com

심비안사 - 고사양의  데이터를 강화한  스마트폰을 위한 오픈소스 운영체제의 마켓리더

현재상황

  • SQLite의 현재 최신 버젼은 3.6.1 입니다.(의역)
  • 모든 새 개발에서는 SQLite 3.6.1버젼을 요구한다.(직역)


일반적인 링크들


원문 http://www.sqlite.org/


'DATABASE > SQLite' 카테고리의 다른 글

SQLite 소개  (0) 2008.08.24
SQLite 특징들  (0) 2008.08.21
SQLite 메인페이지 번역  (0) 2008.08.21
SQLite 웹사이트의 사이트맵  (0) 2008.08.20
SQLite 개발팀 소개  (0) 2008.08.20
SQLite 번역을 시작 합니다.  (0) 2008.08.20

'DATABASE > SQLite' 카테고리의 다른 글

SQLite 소개  (0) 2008.08.24
SQLite 특징들  (0) 2008.08.21
SQLite 메인페이지 번역  (0) 2008.08.21
SQLite 웹사이트의 사이트맵  (0) 2008.08.20
SQLite 개발팀 소개  (0) 2008.08.20
SQLite 번역을 시작 합니다.  (0) 2008.08.20

SQLite 개발 팀

D. Richard Hipp 는 2000년 5월 29일에 SQLite 프로젝트를 시작하여 프로젝트 아키텍터로 계속 일하고 있다.

Richard는 북 캐롤리나에서 태어나고 살고 일한다.

그는 Georgia Tech에서 학위를 취득했다. 그리고, Duke University에서 박사 학위를 취득했다. 그리고, 컨설팅 회사 Hwaci의 창립자 이다.


Dan Kennedy는 남동 아시아계의 오스트레일이아 사람이다.

그는 컴퓨터 시스템 공학 학위를 Queensland 대학으로 부터 받았다. 그리고 공장 자동화, 컴퓨터 그래픽, 그리고 엠베디드 소프트웨어 개발을 포함해서 매우 다양한 방면에서 일을 했다.

Dan은 2002년 부터 SQLite에 핵심기여자로 참여하고 있다.


Shane Harrelson은 1995년에 기계공학 학사와 컴퓨터 과학 석사를 가지고 Clemson 대학교를 졸업했다.

Shane은 소매/금융 시스템 소프트웨어, 디바이스 드라이버 개발, 엠베디드 시스템 소프트웨어를 포함한 여러 방면에서 일을 했다.

'DATABASE > SQLite' 카테고리의 다른 글

SQLite 소개  (0) 2008.08.24
SQLite 특징들  (0) 2008.08.21
SQLite 메인페이지 번역  (0) 2008.08.21
SQLite 웹사이트의 사이트맵  (0) 2008.08.20
SQLite 개발팀 소개  (0) 2008.08.20
SQLite 번역을 시작 합니다.  (0) 2008.08.20

http://www.sqlite.org 의 번역을 시작 합니다.

http://kjh0523.springnote.com 에서 번역을 진행 중입니다.

위에서 번역 된 내용을 이 블로그에 연재할 생각입니다.

많은 관심 부탁 드리겠습니다.

'DATABASE > SQLite' 카테고리의 다른 글

SQLite 소개  (0) 2008.08.24
SQLite 특징들  (0) 2008.08.21
SQLite 메인페이지 번역  (0) 2008.08.21
SQLite 웹사이트의 사이트맵  (0) 2008.08.20
SQLite 개발팀 소개  (0) 2008.08.20
SQLite 번역을 시작 합니다.  (0) 2008.08.20

+ Recent posts