Specifications :: db4o V7.0
Platforms
|
Java |
- J2EE
- J2SE
- J2ME with reflection: CDC, PersonalProfile, Symbian, JavaFX Mobile and Zaurus; on
demand(2): J2ME w/o reflection (CLDC and MIDP), including RIM/Blackberry
and Palm OS.
- Android (Open
Handset Alliance)
- Harmony
- Supported Frameworks: Spring, OSGi, Tomcat, DataNucleus
|
|
.NET |
- .NET Framework (1.0(1), 2.0, 3.0, 3.5)
- .NET Compact Framework 1.0(1), 2.0
- Windows (XP, Vista)
- Windows Mobile / PocketPC
- Mono(1)
- Supported Frameworks: Castle, Eiffel, Spring.net
|
|
Cross-platform |
- Connect to .NET server with Java client
- Connect to Java server with .NET client
|
Languages
|
Java |
|
|
.NET |
- All managed .NET languages
(C#, VB.NET, ASP.NET, Boo, Managed C++ etc.)
|
Commands
|
Sessions |
|
|
Database files |
- Create, open, close, and delete
|
|
Transactions |
|
|
Objects |
- Store, retrieve, update (incl. cascaded), replicate, delete (incl. cascaded)
|
|
Messaging |
|
Transparency
|
Language constructs |
- Primitive types
- Strings
- Arrays
- Multi-dimensional arrays
- Inner classes
- Java/C# collections
- Classes without public constructors
- .NET structs
- Blobs (stored outside of DB file)
|
|
Non-Intrusive |
- Without deriving from a specific base class
- Without implementing a specific interface
- Without modifications to source code
- Without implementing Serializable
|
|
Private Fields |
|
|
File I/O |
|
|
Reflector |
|
|
Aliases |
- Class aliasing for class-to-class mappings
|
Query Languages / APIs
|
Object oriented |
- Native Queries (NQ)
- LINQ
- Query By Example (QbE)
- S.O.D.A.
|
|
SQL |
- Via replication to many relational databases
|
|
XML |
- With Third-Party products (e.g.,
Xstream)
|
Modes / Concurrency
|
Operation Modes |
|
|
Threads |
|
|
Transactions |
|
|
Semaphores |
|
|
Read-Only Mode |
|
Scalability and Performance
|
Performance benchmark |
|
|
Examples of Scalability |
|
|
In Memory Mode |
|
|
Client-side |
- Single-process execution available
|
|
Server-side |
- Server-side query execution available
|
|
DB-aware Collections |
|
|
Object Caching |
|
|
Pagination |
- Server-side cursors (lazy queries)
|
|
Indexing |
- BTree field indexes
- BTree query processor
|
Replication
|
db4o Replication System (dRS) |
- 100% object-oriented: simply replicate objects, not tables
- Uni- and bi-directional
- db4o to db4o
- db4o to relational databases (RDBMS), wrapped in Hibernate (Java only)
- Hibernate/RDBMS to Hibernate/RDBMS (Java only)
|
|
UUID |
- Unique Universal Identity over all DB instances
|
|
Synchronization |
- Querying
- Update
- Delete
- Conflict resolution
|
Reporting
|
For Java objects |
|
|
For .NET objects |
|
Security and Encryption
|
DB file Protection |
|
|
DB file Encryption |
- Simple database encryption
- Pluggable File I/O for custom encryption
- With Third-Party products (e.g.,
XTEA)
|
Availability, Reliability, Zero-Admin
|
Transactions |
- ACID
- Commit-recovery on system failures
|
|
Thread Safety |
|
|
Automatic Recovery |
|
|
Online-Backup |
|
|
Free Space Management |
|
Internationalization
Refactoring
|
Schema Versioning |
- Automatic recognition and maintenance
|
|
Schema Merge |
|
|
Renaming |
- Classes, fields by API
- Access to values of removed fields by API or with ObjectManager UI
|
Memory and file size
|
DB library footprint |
- <1 MB
- Small footprint (~600k) available on demand(2)
|
|
Minimal RAM footprint |
- Application dependent; deterministic; below 3 MB for all but one PolePosition benchmark
(www.polepos.org)
|
|
Maximum DB file size |
|
|
Class size |
- No increase when persisted
|
|
Instance size |
- No increase when persisted
|
(1) available through 3rd party providers or db4o developer community projects
(2) available on demand, built to order against services contract