I came across db4o OODB database and wondering how it compares to a traditional stack with an RDBMS or an ORM like Hibernate/EclipseLink. The application is a workflow system and will expand over time. Not sure if an OODB like db4o fits well. I never worked on an OODB so I can't tell. Any suggestions?
Using an Object Oriented Database (db4o) for a medium scale application
639 Views Asked by user6123723 At
2
There are 2 best solutions below
Related Questions in DATABASE
- When dealing with databases, does adding a different table when we can use a simple hash a good thing?
- How to not load all database records in my TListbox in Firemonkey Delphi XE8
- microsoft odbc driver manager data source name not found and no default driver specified
- Cloud Connection with Java Window application
- Automatic background scan if user edit column?
- Jmeter JDBC Connection Configuration Parametrization of Database URL for accessing SQL Database
- How to grant privileges to current user
- MySQL: Insert a new row at a specific primary key, or alternately, bump all subsequent rows down?
- Inserting and returning autoidentity in SQLite3
- Architecture: Multiple Mongo databases+connections vs multiple collections with Express
- SQL - Adding a flag based on results within a query - best practice?
- Android database query not returning any results
- Developing a search and tag heavy website
- Oracle stored procedure wrapping compile error with inline comments
- Problems communicating with mysql in php
Related Questions in ORM
- How do I properly add data in SQLAlchemy?
- SequelizeJS: How to include association (join) across multiple databases without using raw query
- Enforcing uniqueness using SQLAlchemy association proxies
- How do you make EntityFramework generate efficient SQL queries for related objects?
- join and orwhere ends to AND
- symfony many to many orm controller
- Django Query to get customer_name who has used a particular keyword maximum no. of times in feedback?
- Yii 1.1 - Many to Many Relationship - Returning data from relation table
- Hibernate does't update joined collection
- was not found in the chain configured namespaces symfony2 500 internal server error production only in env
- Why is this form invalid all the time
- Does function order matter in Doctrine2 Query Builder?
- ERROR: exception 'ErrorException' with message 'Undefined property: Illuminate\Database\Eloquent\Relations\BelongsTo::$ward_name'
- Django multipart ORM query including JOINs
- Wrong datatype for referenced entity on Doctrine ObjectSelect
Related Questions in RDBMS
- Hierarchical RDBMS Query spanning across multiple tables with in clause
- Why I can't perform this simple insert operation? How can I solve this date format issue?
- How to import only new data by using Sqoop?
- Making relational algebra equations in a sample database
- adding a where condition for one criteria in sql query
- What happens to sql views, if database is moved to another server
- Why I can't perform this insert query if a specific field value is set to null?
- Star schema role in the Pentaho Mondrian OLAP server
- Can Rails deal with DB uniqueness without index?
- Max. number of subqueries with WHERE clause in MySQL
- How to maintain author order in database of citations
- What is the difference between a Technical key and a Surrogate key?
- Why django group by wrong field? annotate()
- mysql: Get combination of data from multiple table by passing multiple value
- How to organize data in document based stores?
Related Questions in DB4O
- DB4O: limit a query by range
- db4o - weird characters when retrieving objects
- Does db4o (at version 8) still acquire complete db file lock on write
- Problems with DB4O on Android - Update objects
- db4o: LINQ equivalent of SODA query?
- Method to do a "join" when using LINQ in db4o?
- Using DateTime under db4o with native SODA queries?
- If I have 2 million rows in a db4o database, would you recommend a large flat table, or a hierarchy?
- Simultaneous db4o file access
- What object databases allow indexing of everything in the database?
- Using LINQ to query nested classes in db4o?
- db4o activatablelist vs wpf observablecollection
- Unit Testing Db4oTool Instrumentation (Collections)
- db4o and alternatives
- Db4oTool -Excluding Class From Enhacement
Related Questions in OODB
- How to update reference oracle
- Using an Object Oriented Database (db4o) for a medium scale application
- How do I create a reference in my DB to a user from the ASP.NET build in usersystem?
- why everyone wants NOSQL other than large-scale Oracle Clusters?
- Retrieve an object in one DB4O session, store in another ('disconnected scenario')
- PHP - Calling Object in an object
- What is the best way to schedule a task in gemstone?
- Benefits of switching from SQL Server to Versant OODB
- How to define user-defined types (Object-Oriented Database) in SQL Server 2017?
- How the existing data to be if entity structure modified or deleted on GAE?
- Need to store LOTS of data on Android device, thinking of going OODB
- Make class names independent via db4o renaming api
- db4o enumset exception
- hierarchical nested data structure in db4o (or any other oodb)
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Hi! Here is some information based on my own experiences with DB4O.
There are plenty of choices these days for so called OODB's (Object Oriented Databases). Instead of writing a list of these similar solutions, I can tell you how it works as opposed to using a regular RDBMS, because that was your actual question.
You can read a pretty good comparison of some of the most used systems over at Wikipedia: Comparison of OODB's
If you use an ORM persistent methology with a tool like NHibernate, you're giving yourself an easier time when it comes to querying and updating the database behind the persisted objects. You could think of a tool like NHibernate as a "hybrid" solution, while with pure Object Databases like the one you mentioned (one I've done some work with myself) DB4O from Versant / Actian you can choose to work directly with a file on the file-system or opt for a Client/Server kinda solution. DB4O supports both.
The most common scenario would probably be the former mentioned scenario, where you would use a file on the local system to keep persisted copies of your application's objects.
DB4O now exists as a free for non-commercial use product and has both a Java and a .Net version. They both work the same, and from my personal experience they work pretty good for anything from simple 2-10 Mega-Byte databases to files weighing in at around 10-12 GB's.
As a rule of thumb, according to the DB4O developers, if you expect your application's database needs to be larger than around 15-16 GigaBytes, you should consider other approaches.
DB4O is single threaded, and therefor requires a rather speedy CPU Core to handle large amounts of transactions. But, it manages to run really well considering this obvious limitation.
DB4O is easy to expand and should cover most needs for an Object Oriented Database.
Here is a short example that shows how easy it is to connect to and write a series of custom Objects to the DB taken from one of my own projects: (DbPath is a string constant)
So as you can see there is a quite simple way to create a new database and populating it with objects, without needing any form of serialization code in the class definitions themselves.
There are support for many of the traditional RDBMS functions in many of the OODB's and in some scenarios the overhead of implementing a regular SQL database is way bigger than simply embedding the database directly into the source.
Hope this clears things up a bit.
Chris