blob: 12efda659667772d1d85ee14070cb4016e1ef742 [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-icons.css" rel="stylesheet" media="screen"><link rel="stylesheet" type="text/css" href="https://jena.apache.org/sass/jena.1b17c39a117e22b46db4c66f6395dc27c134a60377d87d2d5745b8600eb69722.css" integrity="sha256-GxfDmhF&#43;IrRttMZvY5XcJ8E0pgN32H0tV0W4YA62lyI=">
<link rel="shortcut icon" href="/images/favicon.ico" />
</head>
<body>
<nav class="navbar navbar-expand-lg bg-body-tertiary" role="navigation">
<div class="container">
<div class="navbar-header">
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></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" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li id="homepage" class="nav-item"><a class="nav-link" href="/index.html"><span class="bi-house"></span> Home</a></li>
<li id="download" class="nav-item"><a class="nav-link" href="/download/index.cgi"><span class="bi-download"></span> Download</a></li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal"></span> Learn <b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="dropdown-header">Tutorials</li>
<li><a class="dropdown-item" href="/tutorials/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/fuseki2/index.html">Fuseki Triplestore</a></li>
<li><a class="dropdown-item" href="/documentation/notes/index.html">How-To's</a></li>
<li><a class="dropdown-item" href="/documentation/query/manipulating_sparql_using_arq.html">Manipulating SPARQL using ARQ</a></li>
<li><a class="dropdown-item" href="/tutorials/rdf_api.html">RDF core API tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/sparql.html">SPARQL tutorial</a></li>
<li><a class="dropdown-item" href="/tutorials/using_jena_with_eclipse.html">Using Jena with Eclipse</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">References</li>
<li><a class="dropdown-item" href="/documentation/index.html">Overview</a></li>
<li><a class="dropdown-item" href="/documentation/query/index.html">ARQ (SPARQL)</a></li>
<li><a class="dropdown-item" href="/documentation/io/">RDF I/O</a></li>
<li><a class="dropdown-item" href="/documentation/assembler/index.html">Assembler</a></li>
<li><a class="dropdown-item" href="/documentation/tools/index.html">Command-line tools</a></li>
<li><a class="dropdown-item" href="/documentation/rdfs/">Data with RDFS Inferencing</a></li>
<li><a class="dropdown-item" href="/documentation/geosparql/index.html">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/inference/index.html">Inference API</a></li>
<li><a class="dropdown-item" href="/documentation/ontology/">Ontology API</a></li>
<li><a class="dropdown-item" href="/documentation/permissions/index.html">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/extras/querybuilder/index.html">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/rdf/index.html">RDF API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfconnection/">RDF Connection - SPARQL API</a></li>
<li><a class="dropdown-item" href="/documentation/rdfstar/index.html">RDF-star</a></li>
<li><a class="dropdown-item" href="/documentation/shacl/index.html">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/shex/index.html">ShEx</a></li>
<li><a class="dropdown-item" href="/documentation/tdb/index.html">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/tdb2/index.html">TDB2</a></li>
<li><a class="dropdown-item" href="/documentation/query/text-query.html">Text Search</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<a href="#" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-journal-code"></span> Javadoc <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/documentation/javadoc.html">All Javadoc</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/arq/">ARQ</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/fuseki2/">Fuseki</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/geosparql/">GeoSPARQL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/jena/">Jena Core</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/permissions/">Permissions</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/extras/querybuilder/">Query Builder</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/shacl/">SHACL</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/tdb/">TDB</a></li>
<li><a class="dropdown-item" href="/documentation/javadoc/text/">Text Search</a></li>
</ul>
</li>
</ul>
<form class="d-flex" role="search" action="/search" method="GET">
<div class="input-group">
<input class="form-control border-end-0 border m-0" type="search" name="q" id="search-query" placeholder="Search...." aria-label="Search" style="width: 10rem;">
<button class="btn btn-outline-secondary border-start-0 border" type="submit">
<i class="bi-search"></i>
</button>
</div>
</form>
<ul class="navbar-nav">
<li id="ask" class="nav-item"><a class="nav-link" href="/help_and_support/index.html" title="Ask"><span class="bi-patch-question"></span><span class="text-body d-none d-xxl-inline"> Ask</span></a></li>
<li class="nav-item dropdown">
<a href="#" title="Get involved" class="nav-link dropdown-toggle" role="button" data-bs-toggle="dropdown" aria-expanded="false"><span class="bi-megaphone"></span><span class="text-body d-none d-xxl-inline"> Get involved </span><b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="/getting_involved/index.html">Contribute</a></li>
<li><a class="dropdown-item" href="/help_and_support/bugs_and_suggestions.html">Report a bug</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">Project</li>
<li><a class="dropdown-item" href="/about_jena/about.html">About Jena</a></li>
<li><a class="dropdown-item" href="/about_jena/architecture.html">Architecture</a></li>
<li><a class="dropdown-item" href="/about_jena/citing.html">Citing</a></li>
<li><a class="dropdown-item" href="/about_jena/team.html">Project team</a></li>
<li><a class="dropdown-item" href="/about_jena/contributions.html">Related projects</a></li>
<li><a class="dropdown-item" href="/about_jena/roadmap.html">Roadmap</a></li>
<li><a class="dropdown-item" href="/about_jena/security-advisories.html">Security Advisories</a></li>
<li class="dropdown-divider"></li>
<li class="dropdown-header">ASF</li>
<li><a class="dropdown-item" href="https://www.apache.org/">Apache Software Foundation</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">Become a Sponsor</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/licenses/LICENSE-2.0">License</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/security/">Security</a></li>
<li><a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">Thanks</a></li>
</ul>
</li>
<li class="nav-item" id="edit"><a class="nav-link" href="https://github.com/apache/jena-site/edit/main/source/documentation/archive/sdb/store_description.md" title="Edit this page on GitHub"><span class="bi-pencil-square"></span><span class="text-body d-none d-xxl-inline"> Edit this page</span></a></li>
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="breadcrumbs">
<ol class="breadcrumb mt-4 p-2 bg-body-tertiary">
<li class="breadcrumb-item"><a href='/documentation'>DOCUMENTATION</a></li>
<li class="breadcrumb-item"><a href='/documentation/archive'>ARCHIVE</a></li>
<li class="breadcrumb-item"><a href='/documentation/archive/sdb'>SDB</a></li>
<li class="breadcrumb-item active">STORE DESCRIPTION</li>
</ol>
</div>
<h1 class="title">SDB Store Description</h1>
<main class="d-flex flex-xl-row flex-column">
<aside class="text-muted align-self-start mb-3 p-0 d-xl-none d-block">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<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>
</nav>
</aside>
<article class="flex-column me-lg-4">
<hr>
<blockquote>
<p>The Apache Jena SDB module has been retired and is no longer supported.<br/>
The last release of Jena with this module was Apache Jena 3.17.0.<br/></p>
</blockquote>
<hr>
<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="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>
</article>
<aside class="text-muted align-self-start mb-3 mb-xl-5 p-0 d-none d-xl-flex flex-column sticky-top">
<h2 class="h6 sticky-top m-0 p-2 bg-body-tertiary">On this page</h2>
<nav id="TableOfContents">
<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>
</nav>
</aside>
</main>
</div>
</div>
</div>
<footer class="bd-footer py-4 py-md-5 mt-4 mt-lg-5 bg-body-tertiary">
<div class="container" style="font-size:80%" >
<p>
Copyright &copy; 2011&ndash;2024 The Apache Software Foundation, Licensed under the
<a href="https://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 src="/js/popper.min.js.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/js/improve.js" type="text/javascript"></script>
<script type="text/javascript">
(function() {
'use strict'
const links = document.querySelectorAll(`a[href="${window.location.pathname}"]`)
if (links !== undefined && links !== null) {
for (const link of links) {
link.classList.add('active')
let parentElement = link.parentElement
let count = 0
const levelsLimit = 4
while (['UL', 'LI'].includes(parentElement.tagName) && count <= levelsLimit) {
if (parentElement.tagName === 'LI') {
parentElement.querySelector('a:first-child').classList.add('active')
}
parentElement = parentElement.parentElement
count++
}
}
}
})()
</script>
</body>
</html>