<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-13C95985-D16F-5A9E-A7F8-CAB637C4C6ED" xml:lang="en"><title>DBMS
Overview</title><shortdesc>Provides an interface to relational databases. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody>
<section id="GUID-40E204A0-AAE5-46AA-BC88-2A80D81AC710"><title>Purpose</title> <p id="GUID-844F756E-1670-5D24-8D63-2092ABE3354C"> The
DBMS component provides an interface to relational databases. It enables you
to create and access databases either from a single client or from multiple
clients sharing access over a server. </p> </section>
<section id="GUID-AC97ABD1-CD17-403B-B654-91A75A6C627A"><title>Required background</title> <p>To use DBMS you need a knowledge
of relational databases and the SQL query language. </p> </section>
<section id="GUID-B0F498B6-722A-4FE2-B7B2-5064FEFF9470"><title>Key concepts and terms</title> <dl>
<dlentry>
<dt>Store database </dt>
<dd><p>A client-side single client database stored in permanent file stores,
implemented by <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref> </p> </dd>
</dlentry>
<dlentry>
<dt>Named database </dt>
<dd><p>A database allowing simultaneous read/write access by multiple clients,
implemented by <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref> </p> </dd>
</dlentry>
</dl> </section>
<section id="GUID-856FC618-CF46-4735-B90B-B1BDB91F01D5"><title>Architecture</title> <p>DBMS defines a general relational
database access API, and allows different database implementations to be provided
of which there are two: a small and relatively lightweight client-side implementation;
and, for when multiple clients must have write access to a database, a client-server
implementation. </p> <p>When multiple clients can access the same database,
transactions ensure that only one client can change data at a time. </p> <p>The <xref href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita">File Stores</xref> API defines
a sophisticated file storage, called permanent file stores, that allows individual
entries in a file to be modified. The database implementations use these stores
for the underlying data storage. </p> <fig id="GUID-6907C48E-3E72-5FED-B5E5-67C6F6922ED9">
<title> DBMS Class Diagrams </title>
<image href="GUID-6A482ACB-D39E-578B-B58B-44E4142A5897_d0e357898_href.png" placement="inline"/>
</fig> </section>
<section id="GUID-CC1087EA-0995-4ABE-8C28-8CBF0D62E7FA"><title>DBMS Summary</title> <p>DBMS provides the following: </p> <ul>
<li id="GUID-CA46F9A6-15C2-5584-A907-9D1DD79C8711"><p> <b>Database Management
System Library</b> </p> <p> <filepath>edbms.dll</filepath> </p> </li>
<li id="GUID-8D01F878-BCA7-5F88-AC31-BEA68B0739CD"><p> <b>Database Management
System Server</b> </p> <p> <filepath>edbsrv.exe</filepath> </p> </li>
</ul> </section>
<section id="GUID-8534CB50-0E49-4614-883B-61B6B583ABCB"><title>APIs</title> <table id="GUID-E682487D-23AC-5A0A-89F5-568D73452AF1">
<tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/>
<thead>
<row>
<entry>API</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><p> <xref href="GUID-E11B1981-CA78-3660-AE09-AD3B4D453733.dita"><apiname>RDbDatabase</apiname></xref> </p> </entry>
<entry><p>Abstract database class. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-F4A68645-2265-307F-B951-8295827E000B.dita"><apiname>RDbStoreDatabase</apiname></xref> </p> </entry>
<entry><p>Implements <codeph>RDbDatabase</codeph> as a store database. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-6433D7F9-B4C7-39DA-BEF4-5EA22B8478A2.dita"><apiname>RDbNamedDatabase</apiname></xref> </p> </entry>
<entry><p>Implements a named database. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-F861EB8F-F621-3E77-8F9A-5E4EFC4E9C2F.dita"><apiname>RDbRowSet</apiname></xref> </p> </entry>
<entry><p>The base class for all rowset types. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-90ABFA73-6374-367C-BAA9-88CD810035CC.dita"><apiname>RDbTable</apiname></xref> </p> </entry>
<entry><p>Provides access to table data as a rowset. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-AE1BEF00-5AA7-3F03-95B0-9E40395EDA6C.dita"><apiname>RDbView</apiname></xref> </p> </entry>
<entry><p>Generates rowsets from an SQL query. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-A7C9FEFA-A9A9-357F-AF66-FA3A288AF925.dita"><apiname>TDbQuery</apiname></xref> </p> </entry>
<entry><p>A wrapper for an SQL string combined with a text comparison mode. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-E53A90DF-3589-34BD-B7C3-02371567AF41.dita"><apiname>TDbWindow</apiname></xref> </p> </entry>
<entry><p>Describes the desired shape of a view's pre-evaluation window. </p> </entry>
</row>
<row>
<entry><p> <xref href="GUID-53AB4535-A859-3A8C-8344-53865B2FE0B4.dita"><apiname>RDbNotifier</apiname></xref> </p> </entry>
<entry><p>Provides notification of database changes to clients. </p> </entry>
</row>
</tbody>
</tgroup>
</table> </section>
<section id="GUID-B73210AC-8B93-430A-8E6F-8FD06C631E90"><title>Typical uses</title> <p>DBMS is very well suited to applications
with small to medium-sized datasets, where the total record count is less
than 10,000 and the database size is less than 512KB. It scales reasonably
well to larger datasets with total record counts less than 100,000 and database
sizes less than 10MB. </p> <p>DBMS is a suitable database engine for applications
such as: </p> <ul>
<li id="GUID-3638AC16-C761-5FEE-BFE1-C516C5674C88"><p>address books </p> </li>
<li id="GUID-7C3E01B0-898A-5FC0-9C48-EB7D998C878D"><p>call logs </p> </li>
<li id="GUID-B8F92167-446A-5CB0-A5A6-998B2E1ED9A4"><p>message stores. </p> </li>
</ul> </section>
</conbody><related-links>
<link href="GUID-F4875493-6501-56FC-90E5-5EEAA89A72C3.dita"><linktext>Persistent
Storage Overview</linktext></link>
<link href="GUID-12CB6E0E-69CD-51A6-8966-3621CB26E1CD.dita"><linktext>DBMS
rowsets overview</linktext></link>
<link href="GUID-7BE83158-B818-57E4-9A8C-43E5D2C84687.dita"><linktext>DBMS columns,
column sets, and keys overview</linktext></link>
<link href="GUID-C61B979A-921A-5756-8D7E-691C3DDD3437.dita"><linktext>DBMS sharing
databases overview</linktext></link>
<link href="GUID-120163D6-2E49-5D91-A746-2C8C4C944461.dita"><linktext>DBMS incremental
operations overview</linktext></link>
<link href="GUID-21CF1D5F-44C5-5407-B3C9-8BC103C97079.dita"><linktext>File stores
overview</linktext></link>
</related-links></concept>