검수요청.png검수요청.png

더비

위키원
(Apache Derby에서 넘어옴)
이동: 둘러보기, 검색
더비(Derby) 로고
더비(Derby) 로고와 글자

더비(Derby)는 IBM에서 기증한 클라우드스케이프(Cloudscape) 소스 기반으로 아파치재단에서 개발을 진행하고 있는 관계형 데이터베이스 관리 시스템(RDBMS) 소프트웨어이다.[1] 자바(Java) 기술로 구현되었다. 아파치 더비(Apache Derby)라고 한다.

개요[편집]

더비는 자바(Java)로 완전히 구현된 관계형 데이터베이스이다. 자바 애플리케이션에 쉽게 삽입할 수 있는 작은 설치 공간을 제공하므로 보기가 사라지고 DBA 관리가 필요하지 않다. [2] "Java DB", "Apache Derby"로도 불리는 더비는 순수 Java로 개발한 DBMS로 자바 환경이라면 어떠한 플랫폼에서도 동작할 뿐만 아니라 범용 DBMS처럼 네트워크를 통해서 서비스하는 형태로 다중 사용자 구조로 사용할 수 있는 등 다양한 응용이 가능한 DBMS이다. [3]

역사[편집]

Apache Derby는 1996년 Nat Wyatt와 Howard Torf가 Java 데이터베이스 기술을 개발하기 위해 설립 한 캘리포니아 오클랜드의 Cloudscape Inc에서 시작되었다. JBMS라고하는 데이터베이스 엔진의 첫 번째 릴리스는 1997년 이었는데 그 후 이 제품은 Cloudscape로 이름이 바뀌었고 릴리스는 약 6개월마다 이루어졌다.

1999년 Informix Software, Inc.는 Cloudscape, Inc를 인수했다.

2001년 IBM 은 Cloudscape를 포함한 Informix Software의 데이터베이스 자산을 인수했다. 데이터베이스 엔진은 IBM Cloudscape로 다시 브랜드화되었으며 릴리스는 IBM의 Java 제품 및 미들웨어와 함께 내장 된 사용에 초점을두고 계속되었다.

2004년 8월 IBM은 Apache DB 프로젝트가 후원하는 인큐베이터 프로젝트 Derby로이 코드를 Apache Software Foundation에 기부 했다.

2005년 7월 Derby프로젝트는 Apache 창업 보육 센터를 마쳤으며 현재 Apache의 DB Top Level Project의 하위 프로젝트로 개발 중이다. Sun은 Derby의 졸업 전, Derby 프로젝트에 참여하여 Derby를 자체 제품의 구성 요소로 사용하고, 2006년 12월 Java 6을 출시하면서 Sun은 Java로 브랜드화 된 JDK 에서 Derby를 패키징하기 시작했다.

2007년 3월 IBM은 Cloudscape 제품에 대한 마케팅 및 지원을 철회하겠다고 발표했지만 Apache Derby 프로젝트에 지속적으로 기여할 것으로 보인다. Java DB 데이터베이스는 오라클이 지원하는 Apache Derby 배포판이다. [4]

  • 11-March-2019: Derby 10.15.1.3 Release
  • 3-May-2018: Derby 10.14.2.0 Release
  • 22-October-2017: Derby 10.14.1.0 Release
  • 29-October-2016: Derby 10.13.1.1 Release
  • 11-October-2015: Derby 10.12.1.1 Release
  • 27-August-2014: Derby 10.11.1.1 Release
  • 17-April-2014: Derby 10.10.2.0 Release
  • 17-April-2013: Derby 10.10.1.1 Release
  • 29-January-2013: Derby 10.8.3.0 Release
  • 25-June-2012: Derby 10.9.1.0 Release
  • 26-October-2011: Derby 10.8.2.2 Release
  • 02-May-2011: Derby 10.8.1.2 Release
  • 15-Dec-2010: Derby 10.7.1.1 Release
  • 06-Oct-2010: Derby 10.6.2.1 Release
  • 19-May-2010: Derby 10.6.1.0 Release
  • 26-August-2009: Derby 10.5.3.0 Release
  • 01-May-2009: Derby 10.5.1.1 Release
  • 05-September-2008: Derby 10.4.2.0 Release
  • 20-May-2008: Derby 10.3.3.0 Release
  • 26-April-2008: Derby 10.4.1.3 Release
  • 10-December-2007: Derby 10.3.2.1 Release
  • 10-August-2007: Derby 10.3.1.4 Release
  • 19-December-2006: Derby 10.2.2.0 Release
  • 6-October-2006: Derby 10.2.1.6 Release
  • 5-July-2006: Derby 10.1.3.1 Release
  • 30-June-2006: ApacheCon Europe 2006 had a Derby session on performance.
  • 10-December-2005: ApacheCon US 2005 had three Derby sessions.
  • 18-November-2005: Derby 10.1.2.1 Release
  • 5-August-2005: Derby 10.1.1 Release
  • 26-July-2005: The Incubator PMC voted in favor of graduating Derby to an Apache DB sub project.
  • 6-December-2004: Derby 10.0.2.1 Incubator Release
  • 13-November-2004: ApacheCon US 2004 had three Derby sessions, a tutorial, and a code contest.
  • 3-August-2004: DB PMC voted to sponsor Derby (see the Derby Incubator proposal) [5]

특징[편집]

더비는 Apache Software Foundation의 프로젝트로 재단에 라이선스가 부여 된 소프트웨어를 기반으로한 상용 품질의 오픈 소스 데이터베이스 솔루션을 작성 및 유지 관리하여 무료로 배포 할 수 있고 설치 및 배치가 쉽다.

더비는 기본 엔진 및 내장 JDBC 드라이버에 대해 약 3.5 메가바이트의 작은 설치 공간을 가지고 있다. 또한 설치, 배치 및 사용이 쉬우며 Java 기반 솔루션에 더비를 임 베드 할 수 있는 임베디드 JDBC 드라이버를 제공한다. 그리고 Java, JDBC, SQL을 기반으로 하기 때문에 아무 Java 기반의 solution에 제공할 수 있다. [6]

Apache Derby는 Apache 2.0 라이선스에 따라 오픈 소스 프로젝트로 개발되었다. 오라클은 동일한 바이너리를 Java DB라는 이름으로 배포한다.

Derby의 내장 데이터베이스 엔진 기술의 핵심은 JDBC 및 SQL을 프로그래밍 API로 지원하는 완전한 기능의 관계형 임베디드 데이터베이스 엔진으로 IBM DB2 SQL 구문을 사용한다.

Derby 네트워크 서버는 전통적인 클라이언트 서버 기능을 제공하여 Derby 데이터베이스 엔진의 도달 범위를 증가시킨다. 네트워크 서버를 통해 클라이언트는 표준 DRDA프로토콜을 사용하여 TCP/IP를 통해 연결할 수 있다. 네트워크 서버는 Derby 엔진이 네트워크화 된 JDBC , ODBC , CLI , Perl을 지원할 수 있게 한다.

임베디드 데이터베이스는 하이브리드 서버/임베디드 RDBMS로 작동하도록 구성 할 수 있다. 동일한 JVM에있는 클라이언트 이외에 다른 클라이언트의 TCP/IP 연결도 허용한다.

더비는 엔진이 실행되는 환경에 적합한 안전한 데이터 관리를 제공한다. 전통적인 엔터프라이즈 데이터베이스 시스템은 잠긴 공간에서 물리적으로 격리 된 머신에 의존하지만 더비 데이터베이스는 보호되지 않는 랩탑 및 기타 무인 하드웨어에 상주하는 경우가 많다.

퓨어 자바는 더비 기술이 Java로 작성된 것이기 때문에 한 번만 작성하면 어디서든지 실행이 가능한 것으로 OSGi, J2ME, J2SE 및 J2EE와 같은 Java플랫폼이 적절하게 지원된다.

Derby는 JDBC 및 ANSI/ISO SQL 스펙과 같은 데이터베이스 표준을 준수한다 즉, Derby는 SQL 구문, 트랜잭션 관리, 동시성, 트리거 및 온라인 백업을 포함하여 최신 관계형 데이터베이스 기능을 제공한다. 또한 개발자가 나중에 컴퓨터에서, 한 운영 체계에서 더 나은 운영 체계나 새로운 운영 체계로 옮아가는 과정인 마이그레이션을 다른 데이터베이스로 쉽게 할 수 있음을 의미한다.

Apache Derby는 Apache의 Jira문제 추적기를 사용하여 버그를 추적한다. 또한 Derby는 10.1버전을 시작으로 JDBC API로 JSR169가 포함 된 J2ME / CDC / Foundation에 대한 지원을 추가하므로 소형장치에서도 Derby를 실행할 수 있다. 절대 또는 상대 경로를 사용하여 데이터베이스 위치을 지정할 수 있고 sysinfo 도구 또는 JDBC API를 사용하여 Derby 설치에서 버전 정보를 얻을 수 있다.[5]

데이터베이스 유틸리티

  • ij : 모든 JDBC 데이터베이스에 대해 SQL 스크립트를 실행할 수있는 도구.
  • dblook : Derby 데이터베이스 용 스키마 추출 도구.
  • sysinfo : 버전 번호와 클래스 경로를 표시하는 유틸리티. [4]

활용[편집]

설치 Apache Derby: Quick Start에 보면 자료들을 찾을 수 있다. 그 중에서 tutorial page의 설치 부분을 따라 하고 Windows 관련 부분만 다룰 것이다.

  • JDK 설치 및 설정

JDK 를 설치한다. 만약 설치가 되어 있다면 JAVA_HOME 설정이 되어 있는지 확인한다.

C:\>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.7.0_45

download page 에서

db-derby-10.10.2.0-bin.zip를 download 한다.

아래 경로에 압축을 푼다.

c:\Program Files\Apache\
  • DERBY_INSTALL 설정

Derby 가 install 된 path 를 DERBY_INSTALL 이란 변수에 지정한다.

C:\>set DERBY_INSTALL=c:\Program Files\Apache\db-derby-10.10.2.0-bin
C:\>set CLASSPATH=%DERBY_INSTALL%\lib\derby.jar;%DERBY_INSTALL%\lib\derbytools.jar;.

위의 CLASSPATH 설정은 embedded mode 를 사용할 때 필요하다. 이런 과정을 bat 파일로 만들어 놨다. 아래 경로에 가 보면 있다.

c:\Program Files\Apache\db-derby-10.10.2.0-bin\bin\setEmbeddedCP.bat

여기서 set DERBY_INSTALL 부분만 추가 해 주면 된다. 참고로 path 에 "" 를 사용하지 말아야 한다.

@set DERBY_INSTALL=c:\Program Files\Apache\db-derby-10.10.2.0-bin

Derby sysinfo 실행 아래처럼 sysinfo 를 실행하면

c:\Program Files\Apache\db-derby-10.10.2.0-bin\bin>setEmbeddedCP.bat
c:\Program Files\Apache\db-derby-10.10.2.0-bin\bin>java org.apache.derby.tools.sysinfo

아래와 같은 결과화면이 나온다.


Java 정보 ------------------
  • Java 버전: 1.7.0_65
  • Java 벤더: Oracle Corporation
  • Java 홈: C:\Program Files\Java\jre7
  • Java 클래스 경로: C:\PROGRA~1\Apache\DB-DER~1.0-B\lib\derby.jar;C:\PROGRA~1\Apache\DB-DER~1.0-B\lib\derbytools.jar;.;C:\Program Files (x86)\Java\jre7\lib\ext\QT

Java.zip

  • OS 이름: Windows 7
  • OS 구조: amd64
  • OS 버전: 6.1
  • Java 사용자 이름: namhadmin
  • Java 사용자 홈: C:\Users\namhadmin
  • Java 사용자 디렉토리: c:\Program Files\Apache\db-derby-10.10.2.0-bin\bin
  • java.specification.name: Java Platform API Specification
  • java.specification.version: 1.7
  • java.runtime.version: 1.7.0_65-b19

Derby 정보 --------
[C:\Program Files\Apache\db-derby-10.10.2.0-bin\lib\derby.jar] 10.10.2.0 - (1582446)
[C:\Program Files\Apache\db-derby-10.10.2.0-bin\lib\derbytools.jar] 10.10.2.0 -(1582446)

로케일 정보 -----------------
  • 현재 로케일 : [한국어/대한민국 [ko_KR]]
  • [cs] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [de_DE] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [es] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [fr] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [hu] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [it] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [ja_JP] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [ko_KR] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [pl] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [pt_BR] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [ru] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [zh_CN] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)
  • [zh_TW] 로케일 지원을 찾았습니다.
  • 버전: 10.10.2.0 - (1582446)


[7]
  • DB 연결 및 생성

사용자 계정을 이용한 연결기능도 지원하지만 여기서는 사용하지 않으므로 설명을 생략하고, 계정정보 없이 접속하면 default로 APP라는 스키마를 사용한다. (계정정보를 이용해 접속하면 그 사용자 ID에 해당하는 스키마를 사용하게 된다.

Derby는 특별히 DB를 생성하는 명령어는 있지 않고, Connection URL의 끝에 “create=true”를 붙여 주었을 때 이 Connection URL에 해당하는 DB가 있으면 그냥 연결만 하고, 해당 DB가 존재하지 않으면 새롭게 생성한다. Connection URL에 “create=true”가 없을 때 해당 DB가 없으면 연결 오류가 발생한다.

Derby에 JDBC 방식으로 연결하기 위한 Connection URL은 다음과 같다.

jdbc:derby://{IP}:{Port}/{DB생성디렉토리}/{DB명};create=true
  • - IP : Derby Network Server가 떠 있는 머신의 IP를 나타내는데, 기동시 -h 옵션을 사용했다면 여기에 사용한 호스트명과 똑같이 입력해야 연결이 가능하다.
  • - Port : Derby Network Server기동할 때 -p 옵션을 사용했다면 여기서 사용한 포트번호를 입력한다. -p 옵션을 사용하지 않았다면 default 포트인 1527을 사용한다.
  • - DB생성디렉토리 : DB파일이 생성되는 디렉토리를 지정하고 싶으면 여기에 설정한다. 단, 디렉토리는 루트부터 시작하는 절대경로를 입력해야 하고, 그렇지 않으면 JVM을 실행하는 디렉토리의 하위디렉토리를 생성하고 거기에 DB파일을 생성한다. 루트부터 입력하므로 유닉스는 슬래쉬(/)가 2번 반복된다. 생략하면 JVM이 실행되는 디렉토리가 default이다.
  • - DB명 : DB명도 되고, DB데이터파일이 저장되는 디렉토리명도 된다. DB생성디렉토리를 설정했으면 그 하위에 디렉토리로 생기고, 그렇지 않으면 JVM이 실행된 디렉토리 아래에 생성된다.
  • - create=true : DB생성디렉토리에 해당 DB명이 있으면 상관없는데, 해당 DB명이 없으면 그 위치에 DB데이터 디렉토리를 자동으로 생성한다. 이 옵션을 사용하지 않으면 해당디렉토리에 해당 DB가 있으면 연결하고, 없으면 오류가 발생한다.[8]

평가[편집]

더비는 오픈 소스 데이터베이스 소프트웨어로 3.5 메가바이트의 작은 설치 공간을 가지고 있다. 설치 및 배치 사용이 쉬우며 Java, JDBC, SQL을 기반으로 하기 때문에 아무 Java 기반의 solution에 제공할 수 있다. 무료로 가볍고 간단하게 구성할 수 있으며 안정성이 높지만 다른 오픈소스 DB들에 비해 성능이 좀 떨어진다는 아쉬운점이있다.

각주[편집]

  1. , 아파치 더비〉, 《위키백과》
  2. , FrontPage-Db-derby〉, 《더비위키》, 2019-03-11
  3. 야라바, 〈, 넷빈즈와 더비 데이터베이스〉 , 《야라바》 , 2015-11-16
  4. 4.0 4.1 아파치 더비〉, 《위키피디아》
  5. 5.0 5.1 더비 공식 홈페이지 - http://db.apache.org/derby/
  6. Apache Derby- Apache DB- The Apache Software Foundation!〉,《The Apache DB Project》, 2019-03-12
  7. Apache Derby 사용하기 - 1 - Derby 설치〉,《블로그스팟》,2014-08-18
  8. Derby 사용하기〉 , 《티스토리》 , 2008-09-29

참고자료[편집]

같이 보기[편집]


  검수요청.png검수요청.png 이 더비 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.