JJC's 테크니컬 다이어리

SQLite의 차별화된 특징-매니페스트 타이핑 본문

SQLite

SQLite의 차별화된 특징-매니페스트 타이핑

털털한JJC 2009. 9. 30. 09:08
매니페스트 타이핑(Manifest typing)

대부분의 SQL DB 엔진들은 정적 타이핑(static typing)을 사용한다. 데이타타입은 테이블에서 각 컬럼과 연관되어 있고 해당컬럼에 지정된 유형의 데이타 타입 값만을  저장되도록 허용한다. SQLite는 매니페스트 타이핑 기법을 사용하여 이러한 제한을 완화시켰다.
매니페스트 타이핑 에서는  데이타 타입은 값 자체의 한가지 속성이지 그 컬럼의 속성이 아니다. SQLite는 컬럼에서 선언된 타입에 상관없이 컬럼에 어떠한 데이타 타입 값의 저장을 하더라도 허용해준다(약간의 예외가 있다. 정수형 기본키 컬럼에는 정수만 허용한다. 가능한한 선언된 타입으로 값 바꾸기를 시도한다.).

SQL 언어 사양에서는 매니페스트 타이핑을 허용한다. 그럼에도 불구하고 대부분의 다른 SQL DB 엔진들은 정적 타입 방식 이기 때문에 어떤 사람에게는 매니페스트 타이핑의 사용이 SQLite의 버그처럼 느껴지기도 한다. SQLite 설계시 심사 숙고하여 매니페스트 타이핑 사용이 결정되었으며 실제에서도 더욱 신뢰도 높고 사용하기 쉽다는 것이 증명되었다. 특히 Tcl이나 파이썬과 같은 동적 타이핑 프로그래밍 언어와의 조합할 경우 더욱 강력하다.