'HSQLDB'에 해당되는 글 3건
Using HSQLDB with Ant :: 2009/08/13 23:43
HSQLDB는 작지만 종종 Java 어플리케이션 개발 단계에서 매우 유용하게 쓰이는 DB 중에 하나이다. 어플리케이션 구동과 함께 In-process 모드 구동되어 질수도 있고, TCP 리슨 포트를 사용하는 Server 모드로 구동되어 질 수도 있다. Server 모드로 DB를 시작하는 콘솔 명령과, 스키마 브라우징과 쿼리 실행을 제공하는 Database Manager를 실행하는 명령을 Ant Target으로 작성한 것이다.
Swing 버전의 HSQL Database Manager를 이용하여 쿼리를 실행한 모습니다.
<!-- Start HSQLDB Server -->
<!--( java -cp hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb )-->
<target name="dbstart" description="Start HSQLDB Server">
<java classname="org.hsqldb.Server"
fork="yes"
classpathref="project.classpath"
failonerror="true">
<arg value="-database.0" />
<arg value="file:db/java2go" />
<arg value="-dbname.0" />
<arg value="java2go" />
</java>
</target>
<!-- Start HSQLDB Manager -->
<!--( java -cp hsqldb.jar org.hsqldb.util.DatabaseManagerSwing )-->
<target name="dbmanager" description="Start HSQLDB Manager">
<java classname="org.hsqldb.util.DatabaseManagerSwing"
fork="yes"
classpathref="project.classpath"
failonerror="true">
<arg value="-url" />
<arg value="jdbc:hsqldb:hsql://localhost/java2go" />
<arg value="-driver" />
<arg value="org.hsqldb.jdbcDriver" />
</java>
</target>Swing 버전의 HSQL Database Manager를 이용하여 쿼리를 실행한 모습니다.

Database Engine Comparison :: 2009/06/17 23:32
/DBMS
Java DB(Derby, H2, HSQLDB), MySQL, PostgreSQL 데이터베이스 엔진 비교표이다.
| Feature | H2 | Derby | HSQLDB | MySQL | PostgreSQL |
|---|---|---|---|---|---|
| Pure Java | Yes | Yes | Yes | No | No |
| Embedded Mode (Java) | Yes | Yes | Yes | No | No |
| Performance (Embedded) | Fast | Slow | Fast | N/A | N/A |
| In-Memory Mode | Yes | No | Yes | No | No |
| Transaction Isolation | Yes | Yes | No | Yes | Yes |
| Cost Based Optimizer | Yes | Yes | No | Yes | Yes |
| Explain Plan | Yes | No | Yes | Yes | Yes |
| Clustering | Yes | No | No | Yes | Yes |
| Encrypted Database | Yes | Yes | No | No | No |
| Linked Tables | Yes | No | Partially *1 | Partially *2 | No |
| ODBC Driver | Yes | No | No | Yes | Yes |
| Fulltext Search | Yes | No | No | Yes | Yes |
| User-Defined Datatypes | Yes | No | No | Yes | Yes |
| Files per Database | Few | Many | Few | Many | Many |
| Table Level Locking | Yes | Yes | No | Yes | Yes |
| Row Level Locking | Yes *9 | Yes | No | Yes | Yes |
| Multi Version Concurrency | Yes | No | No | No | Yes |
| Role Based Security | Yes | Yes *3 | Yes | Yes | Yes |
| Updatable Result Sets | Yes | Yes *7 | No | Yes | Yes |
| Sequences | Yes | No | Yes | No | Yes |
| Limit and Offset | Yes | No | Yes | Yes | Yes |
| Temporary Tables | Yes | Yes *4 | Yes | Yes | Yes |
| Information Schema | Yes | No *8 | No *8 | Yes | Yes |
| Computed Columns | Yes | No | No | No | Yes *6 |
| Case Insensitive Columns | Yes | No | Yes | Yes | Yes *6 |
| Custom Aggregate Functions | Yes | No | No | Yes | Yes |
| Footprint (jar/dll size) | ~1 MB *5 | ~2 MB | ~600 KB | ~4 MB | ~6 MB |
*1 HSQLDB supports text tables.
*2 MySQL supports linked MySQL tables under the name 'federated tables'.
*3 Derby support for roles based security and password checking as an option.
*4 Derby only supports global temporary tables.
*5 The default H2 jar file contains debug information, jar files for other databases do not.
*6 PostgreSQL supports functional indexes.
*7 Derby only supports updatable result sets if the query is not sorted.
*8 Derby and HSQLDB don't support standard compliant information schema tables.
*9 H2 supports row level locks when using multi version concurrency.
출처: http://www.h2database.com/html/features.html#comparison
Derby vs. HSQLDB :: 2007/11/23 22:44
/DBMS
자바 임베디드 데이터베이스 중에 Apache Derby, HSQLDB(구 Hypersonic SQL), Berkeley DB Java Edition, H2 등등 많은 순수 자바로 구현된 데이터베이스가 많이 나와 있다.
이중에서 많이 쓰이는 것 중에 구 IBM Cloudscape에서 나온 Apache Derby 와 HSQLDB가 많이 쓰이는 듯 하다. 이들은 자바로 작성되어 있어 자바 가상 머신(JVM)이 있는 어느 곳에서나 실행될 수 있고, 모두 소형 DB에 적합한 형태이다.
구동 방식은 별도의 네트워크 서버로 동작하여 클라이언트-서버 연결(client-server connection) 형태로 동작하거나, Java 어플리케이션의 JVM에 안에 In-memory 형태의 임베디드 데이터베이스(embeded database)로 동작되어 질 수 있다.
Apache Derby 는 SUN의 JDK에 적극 채택되어 Java SE 6.0 에서 Java DB 라는 명칭으로 제공되어지고 있다. Derby 가 HSQLDB 보다 좀 더 큰 DB를 구성하는데 적합하다고 한다. 하지만 최근 HSQLDB도 버전업을 하면서 8G까지 지원을 하며, OpenOffice.org 2.0 의 데이어베이스 엔진으로 사용되어 지고 있고, 속도면에서는 HSQLDB가 Derby보다 우수하다고 한다.
최근 알게된 한 엔지니어에 따르면 국내 유명 APM 솔루션인 제니퍼(Jennifer)가 Derby를 DB로 사용하여 데이터를 게더링하고 있는데, 10G가 넘어도 잘 돌아간다고 Derby에 대한 칭찬을 아까지 않았다.
물론 메인 DB로 사용을 하려면 오라클, MySQL 과 같은 중대형 DB 솔루션을 찾아야 한다. 하지만 소형의 C/S 어플리케이션이나 솔루션에는 Apache Derby 나 HSQLDB 와 같은 소형 임베디드 데이터베이스가 좋은 대안이 될 수 있을 것 같다.
이중에서 많이 쓰이는 것 중에 구 IBM Cloudscape에서 나온 Apache Derby 와 HSQLDB가 많이 쓰이는 듯 하다. 이들은 자바로 작성되어 있어 자바 가상 머신(JVM)이 있는 어느 곳에서나 실행될 수 있고, 모두 소형 DB에 적합한 형태이다.
구동 방식은 별도의 네트워크 서버로 동작하여 클라이언트-서버 연결(client-server connection) 형태로 동작하거나, Java 어플리케이션의 JVM에 안에 In-memory 형태의 임베디드 데이터베이스(embeded database)로 동작되어 질 수 있다.
Apache Derby 는 SUN의 JDK에 적극 채택되어 Java SE 6.0 에서 Java DB 라는 명칭으로 제공되어지고 있다. Derby 가 HSQLDB 보다 좀 더 큰 DB를 구성하는데 적합하다고 한다. 하지만 최근 HSQLDB도 버전업을 하면서 8G까지 지원을 하며, OpenOffice.org 2.0 의 데이어베이스 엔진으로 사용되어 지고 있고, 속도면에서는 HSQLDB가 Derby보다 우수하다고 한다.
최근 알게된 한 엔지니어에 따르면 국내 유명 APM 솔루션인 제니퍼(Jennifer)가 Derby를 DB로 사용하여 데이터를 게더링하고 있는데, 10G가 넘어도 잘 돌아간다고 Derby에 대한 칭찬을 아까지 않았다.
물론 메인 DB로 사용을 하려면 오라클, MySQL 과 같은 중대형 DB 솔루션을 찾아야 한다. 하지만 소형의 C/S 어플리케이션이나 솔루션에는 Apache Derby 나 HSQLDB 와 같은 소형 임베디드 데이터베이스가 좋은 대안이 될 수 있을 것 같다.

