Difference between revisions of "CDO/DB Store"

From Eclipsepedia

< CDO
Jump to: navigation, search
(New page: ---- ''We are still working on the details, but once we have completed the wiki we'll remove this text'' ---- The CDO DB store is an implementation to the CDO Store that allows storing of...)
 
 
(11 intermediate revisions by 2 users not shown)
Line 1: Line 1:
----
+
The CDO DB store is an implementation of the CDO IStore that allows to store models and meta models in relational databases. It does not use 3rd party components other than database vendor-specific JDBC drivers. The DB store is a proprietary O/R mapper.
''We are still working on the details, but once we have completed the wiki we'll remove this text''
+
----
+
  
The CDO DB store is an implementation to the CDO Store that allows storing of model and model repository into relational databases.
+
== Features  ==
  
This document will help users setup there environment and configure CDO to work with the DB, we'll also include an example and step by step tutorial.
+
*Supports all optional features of the [[#CDO_Server|CDO Server]].
We tried to make it as seamless as possible to enable your Application to store model repository in the DBStore.
+
*Pluggable SQL dialect adapters. Includes support for [[Net4j/DB/Derby|Derby]], [[Net4j/DB/H2|H2]], [[Net4j/DB/HSQLDB|HSQLDB]], [[Net4j/DB/MySQL|MySQL]], [[Net4j/DB/PostgreSQL|PostgreSQL]] and [[Net4j/DB/Oracle|Oracle]] .  
 +
*Pluggable mapping strategies. Includes horizontal mapping strategy (one table per concrete class, no joins).
 +
*Various mapping options by using EAnnotations on model elements&nbsp;(see more in section [[#Annotations|Annotations]]).
  
== Documentation ==
+
== Configuration  ==
  
* Configuring the DBStore: see http://wiki.eclipse.org/CDO/Server_Configuration_Reference#Element_store#
+
*Configuring the DBStore: see [[CDO/Server Configuration Reference#Element_store]].<br>
  
== Dependencies ==
+
== Annotations  ==
  
TBD
+
You can define custom mappings on your model by using EAnnotations for DBStore: [http://git.eclipse.org/c/cdo/cdo.git/tree/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/DBAnnotation.java DBAnnotation.java]
  
== Plugins and CVS ==
+
In order to optimize the schema on the database, it is recommended that you define the column length, specially when using the data type String.
  
The CDO DBStore can be found in cvs in the following location:
+
Example:  
* dev.eclipse.org
+
<pre>&nbsp;&lt;eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"&gt;
* /cvsroot/modeling
+
&nbsp; &nbsp; &nbsp;&lt;eAnnotations source="http://www.eclipse.org/CDO/DBStore"&gt;
* main path: org.eclipse.emf/org.eclipse.emf.cdo
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;details key="columnType" value="VARCHAR"/&gt;
 +
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;details key="columnLength" value="255"/&gt;
 +
&nbsp; &nbsp; &nbsp;&lt;/eAnnotations&gt;
 +
&nbsp;&lt;/eStructuralFeatures&gt;
 +
</pre>
 +
<br>
  
The functionality is implemented in the following plugins (the other plugins/projects in the same cvs location can be ignored):
+
----
* org.eclipse.emf.cdo.server.db: implements the CDO DBStore itself
+
* Test Project and Net4j-DBAdapters: TBD
+
  
= Supported Functions and Features =
 
 
----
 
 
Wikis: [[CDO]] | [[Net4j]] | [[EMF]] | [[Eclipse]]
 
Wikis: [[CDO]] | [[Net4j]] | [[EMF]] | [[Eclipse]]

Latest revision as of 19:00, 20 November 2012

The CDO DB store is an implementation of the CDO IStore that allows to store models and meta models in relational databases. It does not use 3rd party components other than database vendor-specific JDBC drivers. The DB store is a proprietary O/R mapper.

[edit] Features

  • Supports all optional features of the CDO Server.
  • Pluggable SQL dialect adapters. Includes support for Derby, H2, HSQLDB, MySQL, PostgreSQL and Oracle .
  • Pluggable mapping strategies. Includes horizontal mapping strategy (one table per concrete class, no joins).
  • Various mapping options by using EAnnotations on model elements (see more in section Annotations).

[edit] Configuration

[edit] Annotations

You can define custom mappings on your model by using EAnnotations for DBStore: DBAnnotation.java

In order to optimize the schema on the database, it is recommended that you define the column length, specially when using the data type String.

Example:

 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
     <eAnnotations source="http://www.eclipse.org/CDO/DBStore">
         <details key="columnType" value="VARCHAR"/>
         <details key="columnLength" value="255"/>
     </eAnnotations>
 </eStructuralFeatures>



Wikis: CDO | Net4j | EMF | Eclipse