<!DOCTYPE html>
<html lang="en">
<head>
    

    <title>Apache Jena - SDB Store Description</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="/css/bootstrap.min.css" rel="stylesheet" media="screen">
    <link href="/css/bootstrap-extension.css" rel="stylesheet" type="text/css">
    <link href="/css/jena.css" rel="stylesheet" type="text/css">
    <link rel="shortcut icon" href="/images/favicon.ico" />

    <script src="https://code.jquery.com/jquery-2.2.4.min.js"
            integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44="
            crossorigin="anonymous"></script>
    <script src="/js/jena-navigation.js" type="text/javascript"></script>
    <script src="/js/bootstrap.min.js" type="text/javascript"></script>

    <script src="/js/improve.js" type="text/javascript"></script>

    
</head>

<body>

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="/index.html">
                <img class="logo-menu" src="/images/jena-logo/jena-logo-notext-small.png" alt="jena logo">Apache Jena</a>
        </div>

        <div class="collapse navbar-collapse navbar-ex1-collapse">
            <ul class="nav navbar-nav">
                <li id="homepage"><a href="/index.html"><span class="glyphicon glyphicon-home"></span> Home</a></li>
                <li id="download"><a href="/download/index.cgi"><span class="glyphicon glyphicon-download-alt"></span> Download</a></li>
                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Learn <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li class="dropdown-header">Tutorials</li>
                        <li><a href="/tutorials/index.html">Overview</a></li>
                        <li><a href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
                        <li><a href="/documentation/notes/index.html">How-To's</a></li>
                        <li><a href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
                        <li><a href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
                        <li><a href="/tutorials/sparql.html">SPARQL tutorial</a></li>
                        <li><a href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">References</li>
                        <li><a href="/documentation/index.html">Overview</a></li>
                        <li><a href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
                        <li><a href="/documentation/assembler/index.html">Assembler</a></li>
                        <li><a href="/documentation/tools/index.html">Command-line tools</a></li>
                        <li><a href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
                        <li><a href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
                        <li><a href="/documentation/inference/index.html">Inference API</a></li>
                        <li><a href="/documentation/javadoc.html">Javadoc</a></li>
                        <li><a href="/documentation/ontology/">Ontology API</a></li>
                        <li><a href="/documentation/permissions/index.html">Permissions</a></li>
                        <li><a href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
                        <li><a href="/documentation/rdf/index.html">RDF API</a></li>
                        <li><a href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
                        <li><a href="/documentation/io/">RDF I/O</a></li>
                        <li><a href="/documentation/rdfstar/index.html">RDF-star</a></li>
                        <li><a href="/documentation/shacl/index.html">SHACL</a></li>
                        <li><a href="/documentation/shex/index.html">ShEx</a></li>
                        <li><a href="/documentation/jdbc/index.html">SPARQL over JDBC</a></li>
                        <li><a href="/documentation/tdb/index.html">TDB</a></li>
                        <li><a href="/documentation/tdb2/index.html">TDB2</a></li>
                        <li><a href="/documentation/query/text-query.html">Text Search</a></li>
                    </ul>
                </li>

                <li class="drop down">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-book"></span> Javadoc <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/documentation/javadoc.html">All Javadoc</a></li>
                        <li><a href="/documentation/javadoc/arq/">ARQ</a></li>
                        <li><a href="/documentation/javadoc_elephas.html">Elephas</a></li>
                        <li><a href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
                        <li><a href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
                        <li><a href="/documentation/javadoc/jdbc/">JDBC</a></li>
                        <li><a href="/documentation/javadoc/jena/">Jena Core</a></li>
                        <li><a href="/documentation/javadoc/permissions/">Permissions</a></li>
                        <li><a href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
                        <li><a href="/documentation/javadoc/shacl/">SHACL</a></li>
                        <li><a href="/documentation/javadoc/tdb/">TDB</a></li>
                        <li><a href="/documentation/javadoc/text/">Text Search</a></li>
                    </ul>
                </li>

                <li id="ask"><a href="/help_and_support/index.html"><span class="glyphicon glyphicon-question-sign"></span> Ask</a></li>

                <li class="dropdown">
                    <a href="#" class="dropdown-toggle" data-toggle="dropdown"><span class="glyphicon glyphicon-bullhorn"></span> Get involved <b class="caret"></b></a>
                    <ul class="dropdown-menu">
                        <li><a href="/getting_involved/index.html">Contribute</a></li>
                        <li><a href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">Project</li>
                        <li><a href="/about_jena/about.html">About Jena</a></li>
                        <li><a href="/about_jena/architecture.html">Architecture</a></li>
                        <li><a href="/about_jena/citing.html">Citing</a></li>
                        <li><a href="/about_jena/team.html">Project team</a></li>
                        <li><a href="/about_jena/contributions.html">Related projects</a></li>
                        <li><a href="/about_jena/roadmap.html">Roadmap</a></li>
                        <li class="divider"></li>
                        <li class="dropdown-header">ASF</li>
                        <li><a href="http://www.apache.org/">Apache Software Foundation</a></li>
                        <li><a href="http://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
                        <li><a href="http://www.apache.org/licenses/LICENSE-2.0">License</a></li>
                        <li><a href="http://www.apache.org/security/">Security</a></li>
                        <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li>
                    </ul>
                </li>


    

                <li id="edit"><a href="https://github.com/apache/jena-site/edit/main/source/documentation/archive/sdb/store_description.md" title="Edit this page on GitHub"><span class="glyphicon glyphicon-pencil"></span> Edit this page</a></li>
            </ul>
        </div>
    </div>
</nav>


<div class="container">
    <div class="row">
        <div class="col-md-12">
            <div id="breadcrumbs">
                
                    





<ol class="breadcrumb">
    
    
        
        
    
        
        
            
                <li><a href='/documentation'>DOCUMENTATION</a></li>
            
            
        
    
        
        
            
                <li><a href='/documentation/archive'>ARCHIVE</a></li>
            
            
        
    
        
        
            
                <li><a href='/documentation/archive/sdb'>SDB</a></li>
            
            
        
    
        
        
            
                <li class="active">STORE DESCRIPTION</li>
            
            
        
    
</ol>




                
            </div>
            <h1 class="title">SDB Store Description</h1>
            
	<p>Use of an SDB store requires a <code>Store</code> object which is described in
two parts:</p>
<ul>
<li>a connection to the database</li>
<li>a description of the store configuration</li>
</ul>
<p>These can be built from a
<a href="../assembler/">Jena assembler</a>
description.</p>
<p>Store objects themselves are lightweight so connections to an SDB
database can be created on a per-request basis as required for use
in J2EE application servers.</p>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#store-descriptions">Store Descriptions</a></li>
<li><a href="#sdb-connections">SDB Connections</a></li>
<li><a href="#example">Example</a></li>
<li><a href="#vocabulary">Vocabulary</a>
<ul>
<li><a href="#store">Store</a></li>
<li><a href="#connection">Connection</a></li>
</ul>
</li>
</ul>
<h2 id="store-descriptions">Store Descriptions</h2>
<p>A store description identifies which storage layout is being used,
the connection to use and the database type.</p>
<pre><code> [] rdf:type sdb:Store ;
     sdb:layout         &quot;layout2&quot; ;
     sdb:connection     &lt;#conn&gt; .

 &lt;#conn&gt; ...
</code></pre>
<h2 id="sdb-connections">SDB Connections</h2>
<p>SDB connections, objects of class <code>SDBConnection</code>, abstract away
from the details of the connection and also provide consist logging
and transaction operations. Currently, SDB connections encapsulate
JDBC connections but other connection technologies, such as direct
database APIs, can be added.</p>
<h2 id="example">Example</h2>
<p>The <code>sdbType</code> is needed for both a connection and for a store
description. It can be given in either part of the complete store
description. If it is specified in both places, it must be the
same.</p>
<pre><code>@prefix rdfs:      &lt;http://www.w3.org/2000/01/rdf-schema#&gt; .
@prefix rdf:      &lt;http://www.w3.org/1999/02/22-rdf-syntax-ns#&gt; .
@prefix ja:       &lt;http://jena.hpl.hp.com/2005/11/Assembler#&gt; .
@prefix sdb:      &lt;http://jena.hpl.hp.com/2007/sdb#&gt; .

&lt;#myStore&gt; rdf:type sdb:Store ;
     sdb:layout         &quot;layout2&quot; ;
     sdb:connection     &lt;#conn&gt; ;
     .

&lt;#conn&gt; rdf:type sdb:SDBConnection ;
     sdb:sdbType        &quot;derby&quot; ;
     sdb:sdbName        &quot;DB/SDB2&quot; ;
     sdb:driver         &quot;org.apache.derby.jdbc.EmbeddedDriver&quot; ;
     .
</code></pre>
<p>Examples of assembler files are to be found in the <code>Store/</code>
directory in the distribution.</p>
<h2 id="vocabulary">Vocabulary</h2>
<h3 id="store">Store</h3>
<p>The value of <code>sdbType</code> needed for the connection also applies to
choosing the store type.</p>
<p><code>layout</code>
~ Layout type (e.g. &ldquo;layout2&rdquo;, &ldquo;layout2/hash&rdquo; or
&ldquo;layout2/index&rdquo;).</p>
<p><code>connection</code>
~ The object of this triple is the subject of the connection
description.</p>
<p><code>engine</code>
~ Set the MySQL engine type (MySQL only).</p>
<h3 id="connection">Connection</h3>
<dl>
<dt><code>sdbType</code></dt>
<dd>The type of the database (e.g. &ldquo;oracle&rdquo;, &ldquo;MSSQLServerExpress&rdquo;,
&ldquo;postgresql&rdquo;, &ldquo;mysql&rdquo;). Controls both creating the JDBC URL, if not
given explicitly, and the store type.</dd>
<dt><code>sdbName</code></dt>
<dd>Name used by the database service to select a database. Oracle
SID.</dd>
<dt><code>sdbHost</code></dt>
<dd>Host name for the database server. Include <em>:port</em> to change
the port from the default for the database.</dd>
<dt><code>sdbUser</code></dt>
<dt><code>sdbPassword</code></dt>
<dd>Database user name and password. The environment variables
<code>SDB_USER</code> and <code>SDB_PASSWORD</code> are a better way to pass in the user
and password because they are not then written into store
description files. In Java programs, the system properties
<code>jena.db.user</code> and <code>jena.db.password</code> can be used.</dd>
<dt><code>driver</code></dt>
<dd>The JDBC driver class name. Normally, the system looks up the
<code>sdbType</code> to find the driver. Setting this property overrides that
choice.</dd>
<dt><code>jdbcURL</code></dt>
<dd>If necessary, the JDBC URL can be set explicitly, not
constructed by SDB. The <code>sdbType</code> is still needed.</dd>
</dl>


        </div>
    </div>

</div>

<footer class="footer">
    <div class="container" style="font-size:80%" >
        <p>
            Copyright &copy; 2011&ndash;2022 The Apache Software Foundation, Licensed under the
            <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.
        </p>
        <p>
            Apache Jena, Jena, the Apache Jena project logo, Apache and the Apache feather logos are trademarks of
            The Apache Software Foundation.
            <br/>
          <a href="https://privacy.apache.org/policies/privacy-policy-public.html"
             >Apache Software Foundation Privacy Policy</a>.
        </p>
    </div>
</footer>


<script type="text/javascript">
    var link = $('a[href="' + this.location.pathname + '"]');
    if (link != undefined)
        link.parents('li,ul').addClass('active');
</script>

</body>
</html>
