문제

나는 재정 관리를 위한 작은 (Java) 애플리케이션을 개발하려고 합니다.임베디드 데이터베이스를 사용해야 한다고 생각하는데 이 문제에 대한 경험이 없습니다.나는 보려고 노력했다. 사용 가능한 제품 중 일부, 하지만 어느 것이 나에게 더 적합할지 결정할 수 없습니다. H2, HSQLDB, 더비 그리고 버클리 DB 좋은 후보자인 것 같지만 여전히 서로 어떻게 비교되는지 알 수 없습니다.그것들을 비교하고 어떤 것을 사용할지 결정하는 데 도움을 주셔서 감사합니다.

나는 내 애플리케이션에 Hibernate를 사용할 계획이지만(DBMS 제공 API 사용을 권장하지 않는 한), SQL 브라우징 도구(스키마 수정 및 데이터 변경)를 사용하여 데이터베이스를 쉽게 편집할 수 있는 기능도 갖고 싶습니다.

감사합니다.

도움이 되었습니까?

해결책

어느 하나

  • HSQLDB - OpenOffice에서 사용, 테스트 및 안정. 사용하기 쉽습니다. DB-Data를 편집하려면 파일을 열고 삽입 문을 편집 할 수 있습니다.

또는

  • H2 - 더 빠르다고 말했습니다 (원래 HSQLDB도 원래 디자인 한 개발자에 의해)

성능의 양과 필요한 안정성에 따라 사용하는 사람은 귀하에게 달려 있습니다.

H2의 개발자는 훌륭한 성능 평가를했습니다.
http://www.h2database.com/html/performance.html

다른 팁

나는 사용한다 아파치 더비 내 임베디드 데이터베이스 요구 사항은 거의 없습니다. Derby를 기반으로하는 Sun의 Java DB를 사용할 수도 있지만 최신 버전의 Derby는 훨씬 더 새롭습니다. 상업용 기본 데이터베이스가 지원하는 많은 옵션을 지원하지만 훨씬 작고 포함하기 쉽습니다. 문제없이 백만 개가 넘는 레코드가있는 데이터베이스 테이블이있었습니다.

나는 약 3 년 전에 hsqldb와 hypersonic을 사용했었다. 당시에는 몇 가지 주요 성능 문제가 있으며 이러한 문제로 인해 Derby로 전환합니다. 더비는 아파치의 인큐베이터에있을 때에도 견고했습니다.

프로젝트 중 하나에서 Java Embedded Database를 사용해야했으며 각 데이터베이스의 장단점을 이해했습니다. 인기있는 임베디드 Java 데이터베이스 (H2, HSQLDB, Derby, ObjectDB, Neo4J, OrientDB)의 장단점을 목록에 썼습니다. 내 요구 사항에 가장 적합하다고 생각하면서 H2를 선택했습니다. 블로그 링크 : http://sayrohan.blogspot.in/2012/12/choosing-light-weight-java-database.html도움이되기를 바랍니다!

나는 H2와 함께 갈 것입니다. 성능은 더비보다 훨씬 나을 것입니다. 읽다 http://www.h2database.com/html/performance.html 더 많은 정보를 위해서.

HSQLDB 좋은 후보입니다(OpenOffice에서 사용된다는 사실이 여러분 중 일부에게 확신을 줄 수 있습니다). 그러나 이렇게 작은 개인 응용 프로그램의 경우 (전통적인 관계형 데이터베이스 대신) 객체 데이터베이스를 사용하는 것은 어떨까요?

나는 사용했다 DB4O 내 프로젝트 중 하나에 참여했는데 매우 만족합니다.객체 지향적이기 때문에 Hibernate 레이어 전체가 필요하지 않으며 객체를 직접 삽입/업데이트/삭제/쿼리할 수 있습니다!더욱이, 스키마에 대해 걱정할 필요가 없습니다. 객체에 대해 직접 작업하면 DB4O가 나머지 작업을 수행합니다!

나는 이 새로운 유형의 데이터베이스에 익숙해지는 데 시간이 걸릴 수 있다는 점에 동의합니다. DB40 튜토리얼 DB 작업이 얼마나 쉬운지 알아보세요!

편집하다:의견에서 언급했듯이 DB4O는 최신 버전의 클래스를 자동으로 처리합니다.또한 애플리케이션 외부에서 데이터베이스를 검색하고 업데이트하는 도구는 다음에서 사용할 수 있습니다. http://code.google.com/p/db4o-om/

Java DB (Sun의 Apache Derby 배포) 이제 배송 안에 JDK 6!

나는 Jason Cohen과 같은 일을하고 싶었고 이것이 JDK 배포판에서 가장 쉬운 방법처럼 보인다고 생각하고 있습니다 (지난주는 이제 내 앱의 요구 사항입니다). 아니면 그냥 그런 식으로 게으르다.

우리는 생산에서 HSQLDB를 응용 프로그램의 "대회 없음"옵션으로 사용합니다. 그것은 실제 데이터베이스를 설정하는 번거 로움없이 사람들이 시험 할 수있게합니다.

그러나 우리는합니다 ~ 아니다 정상적인 사용을 위해 지원하십시오. 그 이유는 여러 가지입니다.

  1. 데이터 크기에 비례하여 속도가 느려집니다.
  2. 앱 외부에서 액세스하기 어렵습니다 (예 : 사용자 정의 보고서).
  3. 트랜잭션 / 디스크 SYNC는 제대로되기가 어렵 기 때문에 데이터를 잃기 쉽습니다.

적어도 (2)와 (3)의 경우, 주변에는 방법이 있지만 어렵습니다. MySQL을 설치하는 것이 훨씬 쉽습니다.

neo4j 이다:

테이블이 아닌 그래프로 구성된 데이터를 저장하는 내장 된 디스크 기반의 완전 트랜잭션 Java Persistence Engine

나는 아직 시도 할 기회가 없었지만 매우 유망한 것 같습니다. 참고 이것은 SQL 데이터베이스가 아닙니다. 객체 그래프가 지속되므로 기존 앱에 적합하지 않을 수 있습니다.

좋은 비교 도구는 여기에서 찾을 수 있습니다. http://www.jpab.org/all/all/all.html

헤드 투 헤드 DBMS/JPA 비교에주의하십시오.

나는 큰 팬입니다 .NET 및 Java의 경우 DB4O.

초기 릴리스 이후 성능이 훨씬 나아졌습니다. 라이센스 모델도 나쁘지 않습니다. 특히 객체를 쿼리하는 데 사용할 수있는 옵션이 마음에 듭니다. 예제에 의한 쿼리는 매우 강력하고 익숙해지기 쉽습니다.

이것들을 평가하기 위해 어떤 기준을 사용 하시겠습니까? 아직 모른다면 지금 결정할 필요가 없습니다. 적절한 포장지, 데이터 액세스 오브젝트 등을 제공하는 데 가능한 한 데이터베이스 구현에 대한 응용 프로그램으로 응용 프로그램을 만들고 모든 사실이 있고 결정해야 할 때이 결정을 내리십시오.

관계형 데이터베이스와 SQL을 사용하는 경우 위의 점이 너무 어렵지 않아야합니다 (JDBC 등 사용). 데이터베이스간에 전환하려면 응용 프로그램의 기능이 동일하게 유지되도록 주변 테스트가 많이 있는지 확인하십시오.

나는 얼마 전에 같은 문제를 일으켰습니다. 어떤 데이터베이스가 갈지 몰랐으므로 첫 번째 솔루션은 Derby (또는 HSQLDB?)를 사용했고 나중에 HSQLDB (또는 Derby? 어떤 솔루션을 기억할 수 없음) 어디에서 작동 할 수 없었습니다. 나는 (성능과 관련된) 문제가 있었고 어떤 솔루션이 실제로 나에게 효과가있을 것인지가있었습니다.

대부분의 것들이 이미 말되었지만, 몇 가지 애완 동물 프로젝트에서 HSQL, Derby 및 Berkely DB를 사용했다고 덧붙일 수 있으며 모두 잘 작동했습니다. 그래서 나는 그것이 솔직히 말하는 것이 정말 중요하다고 생각하지 않습니다. 언급 할 가치가있는 한 가지는 HSQL이 SQL 문이있는 텍스트 파일로 저장한다는 것입니다. 테스트 및 데이터 설정을 신속하게 개발할 때 쉽게 쉽게 만들 수 있습니다. 필요한 경우 빠른 편집을 할 수도 있습니다. 변경해야 할 경우 모든 데이터베이스로 쉽게 전송할 수 있다고 생각합니다. :)

HSQLDB는 대규모 응용 프로그램의 문제를 일으킬 수 있으며, 그 정도는 안정적이지 않습니다.

내가 들었던 가장 좋은 (그러나 첫 번째 경험이 아님)는 Berkleydb입니다. 그러나 당신이 그것을 opensource하지 않으면, 라이센스로 인해 팔과 다리를 사용하는 비용이들 것입니다 ... 이것을 참조하십시오. http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html 자세한 내용은.

추신. Berkleydb는 당신이 모르는 경우 관계형 데이터베이스가 아닙니다.

나는 Derby를 사용했으며 실제로 데이터 유형 변환 기능, 특히 날짜/시간 기능을 싫어합니다. (숫자 유형) <--> varchar 변환 그것은 통증입니다.

DB 문서에서 데이터 유형 변환을 사용할 계획이라면 Othe Embedded DB의 사용을 고려하면 너무 늦게 배웁니다.

최신 더비 버전 데이터 유형 변환

나는 개인적으로 hsqldb를 선호하지만 대부분 내가 시도한 첫 번째 였기 때문입니다.

H2는 더 빠르며 더 좋은 GUI 프론트 엔드 (일반적이고 JDBC 드라이버와 함께 작동 함)를 제공합니다.

적어도 HSQLDB, H2 및 Derby는 응용 프로그램과 동시에 DB에 액세스 할 수 있기 때문에 개발에 적합한 서버 모드를 제공합니다 (일반적으로 허용되지 않는 모드가 포함되지 않음).

나는이 게시물에 조금 늦었다고 생각하지만, Java & .net의 오픈 소스, 객체 지향적 임베디드 데이터베이스 인 Perst를 추가하고 싶습니다. 당신의 고려를 위해. PERST는 Java 용 오픈 소스 / 듀얼 라이센스 임베디드 데이터베이스입니다. 이 배포는 Google의 Android 플랫폼과 호환되며 Java Me 용 Perst Lite도 포함합니다. 우리는 심지어 Android 벤치 마크를 구축하고 주제에 대한 백서를 제작했습니다 ... 여기서 살펴볼 수 있습니다. http://www.mcobject.com/index.cfm?fuseaction=download&pageid= 581§ionid=133

최고, Chris

내가 정확하다면 H2는 HSQLDB를 쓴 같은 사람들의 것입니다. 사이트의 벤치 마크를 신뢰하면 훨씬 좋습니다. 또한 Sun Community가 Derby로 너무 빨리 뛰어 들었다는 개념이 있습니다.

나는 당신이 SQL 브라우징을 언급 한 것을 알고 있지만, 당신의 질문에있는 다른 모든 것은 당신에게도 당신에게도 제안하고 싶게 만듭니다. DB4O, 그것은 훌륭하고 간단한 물체 DB.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top