blob: 8b2189e8f5e6581399c81f06465650e82cbd368f [file] [log] [blame]
<!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>