1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Introduction</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="GNOME Data Access manual">
<link rel="up" href="index.html" title="GNOME Data Access manual">
<link rel="prev" href="index.html" title="GNOME Data Access manual">
<link rel="next" href="architecture.html" title="libgda architecture">
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="chapter" href="introduction.html" title="Introduction">
<link rel="chapter" href="architecture.html" title="libgda architecture">
<link rel="chapter" href="installation.html" title="Installation">
<link rel="chapter" href="connecting.html" title="Beginning">
<link rel="chapter" href="processing-queries.html" title="Processing queries">
<link rel="chapter" href="ch06.html" title="Transactions and batch processes">
<link rel="chapter" href="managing-errors.html" title="Managing errors">
<link rel="chapter" href="main_example.html" title="Full example">
<link rel="chapter" href="migration.html" title="Some formulae for migration from old version">
<link rel="chapter" href="libgda-api.html" title="Client API Reference">
<link rel="chapter" href="libgda-providers.html" title="GDA Providers">
<link rel="chapter" href="libgda-xql.html" title="XML Queries">
<link rel="chapter" href="libgda-reports.html" title="GDA Report Engine">
<link rel="appendix" href="fdl.html" title="Appendix A. GNU Free Documentation License">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="index.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td> </td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GNOME Data Access manual</th>
<td><a accesskey="n" href="architecture.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="chapter" lang="en">
<div class="titlepage"><div><div><h2 class="title">
<a name="introduction"></a>Introduction</h2></div></div></div>
<p>
<a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=ODBC"><span class="acronym">ODBC</span></a> and <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=SQL"><span class="acronym">SQL</span></a> are established standards. The problem is, that <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=ODBC"><span class="acronym">ODBC</span></a>
doesn't specify the wire protocol and for some databases no <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=ODBC"><span class="acronym">ODBC</span></a> driver
exists. You might use <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=RPC"><span class="acronym">RPC</span></a>, <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=TCP/IP"><span class="acronym">TCP/IP</span></a>,
or shared memory and signals to pass the request from the client to the
server. So you have to use the database specific <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=ODBC"><span class="acronym">ODBC</span></a> library. This
library might not be available for the <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=CPU"><span class="acronym">CPU</span></a> or
operating system on which the client is running.
</p>
<p>
<a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=SQL"><span class="acronym">SQL</span></a> itself is also not standardised enough, so that source
compatibility can not be assured for all database servers. And for some
sort of servers, <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=SQL"><span class="acronym">SQL</span></a> is not even feasible (think about <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=LDAP"><span class="acronym">LDAP</span></a>).
</p>
<p>
<a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=GDA"><span class="acronym">GDA</span></a> tries to tackle the <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=ODBC"><span class="acronym">ODBC</span></a> problem and help you with the <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=SQL"><span class="acronym">SQL</span></a>
problem. It's a sort of middleware (or can be blown up to be a middleware
layer) to access different data sources. It offers a high level view of
data sources and has some places where you can plug in low level access
to the database for special tasks.
</p>
<p>
GNOME Data Access (<a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=GDA"><span class="acronym">GDA</span></a>) is defined as a set of plug-in interfaces.
The level of abstraction provided by <a href="http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?query=GDA"><span class="acronym">GDA</span></a> makes it possible to access
any kind of data source, provided that a plug-in implementing
those interfaces and accessing this particular data source is
written.
</p>
<p>
It offers a wrapper around the database internals, thus making it easier
for programmers to make use of all the power provided by many RDBMS without
even knowing about it. It comes along with a library, for both
clients and servers, as a C implementation of this architecture. This level of
abstraction would make possible to, at a later time, change all the
internals without having to modify applications using the libraries.
</p>
<p>
Along with these libraries (and associated header files and language
bindings for development), <span class="application">libgda</span> includes several tools and utilities
to help you with the task of developing applications based on <span class="application">libgda</span>,
as well as for automating some database-related tasks.
</p>
<p>
<span class="application">libgda</span> is implemented for <code class="systemitem">UNIX
</code>-like operating systems (including <code class="systemitem">Linux</code>), and does not depend on other
libraries apart from <code class="systemitem">libxml2</code> and
<code class="systemitem">Glib</code>, which makes it a very
lightweight system also ideal for applications to be run on
hardware-limited systems. It was once part of the <span class="application">GNOME-DB</span> project, and
is still used as the basis for it, but it's been separated from it to
remove all GNOME dependencies and thus allow non-GNOME applications to
be developed based on it.
</p>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.10</div>
</body>
</html>
|