HSQLDB

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

HSQLDB는 SQL-92의 대부분과 SQL:2008의 많은 부분을 준수하는 관계형 데이터베이스 관리 시스템이다. JDBC 드라이버를 제공하며, 작은 크기로 제작되는 특징이 있다. OpenOffice.org 및 그 파생 소프트웨어에서 Base의 표준 엔진으로 사용되며, 인 메모리, 독립형, 서버, 웹 서버의 네 가지 동작 모드를 지원한다. 또한, Kaffe와 같은 자유로운 자바 가상 머신 구현에서도 동작한다. HSQLDB는 SQL:2008의 모든 핵심 기능과 다양한 선택적 기능을 지원하며, 세 가지 트랜잭션 제어 모드와 두 가지 주요 테이블 유형을 사용하여 데이터 저장을 관리한다. HSQLDB의 여러 버전이 출시되었으며, 2010년에 출시된 버전 2.0은 표준 SQL 및 JDBC 4 사양을 준수하도록 작성되었다.

HSQLDB - [IT 관련 정보]에 관한 문서
기본 정보
이름HSQLDB (HyperSQL DataBase)
종류RDBMS
개발 언어자바
라이선스BSD
운영 체제크로스 플랫폼
첫 출시일2001년
안정화 버전2.6.0
안정화 버전 출시일2021년 3월 21일
용량10.8MB (2.6.0 ZIP 파일)

이미지 준비중입니다.

HSQL 데이터베이스 관리자
링크 정보
공식 웹사이트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와 같은 자유로운 자바 가상 머신 구현에서도 동작한다.