HSQLDB
1. 개요
HSQLDB는 SQL-92의 대부분과 SQL:2008의 많은 부분을 준수하는 관계형 데이터베이스 관리 시스템이다. JDBC 드라이버를 제공하며, 작은 크기로 제작되는 특징이 있다. OpenOffice.org 및 그 파생 소프트웨어에서 Base의 표준 엔진으로 사용되며, 인 메모리, 독립형, 서버, 웹 서버의 네 가지 동작 모드를 지원한다. 또한, Kaffe와 같은 자유로운 자바 가상 머신 구현에서도 동작한다. HSQLDB는 SQL:2008의 모든 핵심 기능과 다양한 선택적 기능을 지원하며, 세 가지 트랜잭션 제어 모드와 두 가지 주요 테이블 유형을 사용하여 데이터 저장을 관리한다. HSQLDB의 여러 버전이 출시되었으며, 2010년에 출시된 버전 2.0은 표준 SQL 및 JDBC 4 사양을 준수하도록 작성되었다.
| 이름 | HSQLDB (HyperSQL DataBase) |
|---|---|
| 종류 | RDBMS |
| 개발 언어 | 자바 |
| 라이선스 | BSD |
| 운영 체제 | 크로스 플랫폼 |
| 첫 출시일 | 2001년 |
| 안정화 버전 | 2.6.0 |
| 안정화 버전 출시일 | 2021년 3월 21일 |
| 용량 | 10.8MB (2.6.0 ZIP 파일) |
이미지 준비중입니다.
| 공식 웹사이트 | HSQLDB 공식 웹사이트 |
|---|
| 특징 | 자바 기반 데이터베이스 엔진 |
|---|
-
임베디드 데이터베이스 -
SQLite
SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다. -
임베디드 데이터베이스 -
DBM (컴퓨팅)
DBM은 1979년 켄 톰프슨이 개발한 데이터베이스 엔진으로, 기본 키를 사용하여 데이터를 저장하고 해시 함수를 통해 빠른 검색을 지원하며, 다양한 후속 구현체가 존재한다. -
자바 플랫폼 소프트웨어 -
자바 데스크톱 시스템
-
자바 플랫폼 소프트웨어 -
핫자바
핫자바는 자바 프로그래밍 언어 기반으로 개발된 웹 브라우저이며, 1995년 TED 컨퍼런스에서 처음 시연되고 SunWorld 컨퍼런스에서 공식 발표되었다. -
관계형 데이터베이스 관리 시스템 -
IBM 시스템 R
-
관계형 데이터베이스 관리 시스템 -
마이크로소프트 액세스
마이크로소프트 액세스는 1992년 출시된 데이터베이스 관리 시스템으로, 테이블, 쿼리, 폼 등을 생성하고 VBA를 통해 솔루션을 개발하며, 윈도우에서 사용 가능하고 다양한 데이터 형식과 통합된다.
2. 특징
HSQLDB는 SQL-92의 거의 모든 부분과 SQL:2008의 많은 부분을 준수하며, JDBC 드라이버를 제공한다.
일반적으로 크기가 작게 만들어지는 특징이 있다. OpenOffice.org와 그 파생 소프트웨어는 HSQLDB를 Base(데이터베이스 기능의 명칭)의 표준 엔진으로 사용하고 있다.
HSQLDB는 Kaffe와 같은 자유로운 자바 가상 머신 구현에서도 동작한다.
2.1. SQL 지원
HSQLDB 2.0은 SQL:2008의 모든 핵심 기능과 많은 선택적 기능을 지원한다. 고급 기능에는 사용자 정의 SQL 프로시저 및 함수, 스키마, 날짜/시간 간격, 업데이트 가능한 뷰, 배열, LOB, 전체 및 측면 조인, 그리고 집합 연산이 포함된다. TO_CHAR 및 DECODE와 같은 많은 비표준 함수도 지원한다. 표준 SQL의 확장 기능에는 사용자 정의 집계 함수가 포함된다.
HSQLDB는 SQL-92의 거의 모든 부분과 SQL:2008의 많은 부분을 준수한다. JDBC 드라이버를 제공한다.
2.2. 트랜잭션 지원
HSQLDB 버전 2.0은 세 가지 트랜잭션 제어 모드를 가지고 있다. 테이블 레벨 잠금 또는 다중 버전 동시성 제어(MVCC)를 사용하여 읽기 커밋 및 직렬화 가능한 트랜잭션 격리 수준을 지원하며, 잠금과 MVCC의 조합도 지원한다. 버전 1.8.1은 트랜잭션 격리 수준 0(읽기 언커밋)만 지원한다.
2.3. 데이터 저장 방식
HSQLDB는 지속적인 읽기-쓰기 데이터 저장을 위해 두 가지 주요 테이블 유형을 사용한다. 트랜잭션이 성공적으로 커밋되면 시스템 오류가 발생해도 데이터가 손실되지 않고 무결성이 유지된다.
기본 MEMORY 유형은 모든 데이터 변경 사항을 SQL 스크립트 형태로 디스크에 저장한다. 엔진 시작 시 이러한 명령이 실행되어 데이터가 메모리에 재구성된다.
또 다른 테이블 유형은 CACHED로, 더 많은 데이터를 저장할 수 있지만 성능이 저하된다. HSQLDB 엔진은 데이터를 부분적으로만 로드하고 트랜잭션 커밋 시 데이터를 디스크와 동기화한다. 그러나 엔진은 업데이트 중에 영향을 받는 모든 행을 항상 메모리에 로드한다. 이는 작업을 더 작은 부분으로 분할하지 않고는 매우 큰 업데이트를 불가능하게 만든다.
다른 테이블 유형을 사용하면 CSV 파일에 액세스할 수 있다. 이러한 테이블은 예를 들어 JOIN이 있는 쿼리에 참여할 수 있으며 스프레드시트 처리 및 읽기-쓰기 비지속적 메모리 내 데이터 저장을 단순화한다.
2.4. 동작 모드
HSQLDB는 다음과 같은 4가지 동작 모드를 갖는다.
* 인 메모리 모드
* 독립형 모드
* 서버 모드
* 웹 서버 모드
3. 버전
HSQLDB의 여러 버전이 2001년 이후 출시되었다. 초기 버전은 단종된 HypersonicSQL 데이터베이스 엔진을 기반으로 했다. 2010년에 출시된 버전 2.0은 대부분 새로운 코드로, 표준 SQL 및 JDBC 4 사양을 준수하도록 작성되었다.
2014년에 출시된 버전 2.3.2는 완벽하게 멀티 스레드를 지원하며, 고성능 2단계 잠금 및 MVCC (다중 버전 동시성 제어) 트랜잭션 제어 모델을 지원한다.
4. 활용 사례
HSQLDB는 크기가 작게 만들어지는 특징이 있다. OpenOffice.org와 그 파생 소프트웨어는 HSQLDB를 Base (데이터베이스 기능의 명칭)의 표준 엔진으로 사용하고 있다.
Kaffe와 같은 자유로운 자바 가상 머신 구현에서도 동작한다.