=============
What is this?
=============

IDDB, version 0.1.0 (Alpha release)
Copyright (c) June 1998, Junus Junarto D

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

JavaCC portions, copyright Sun Microsystems, Inc. See:
  http://www.suntest.com/JavaCC/
for licensing information and other information about JavaCC.

A lot of the JDBC code is based on or directly taken from  PostgreSQL driver :
Peter T Mount (pmount@maidast.demon.co.uk) and
Adrian Hall (adrian@hottub.org)

So, I'd have to say:

Portions of this package Copyright (c) 1997 Peter T Mount and Adrian Hall

==========================
No, really - what is this?
==========================

IDDB (ITS Distributed DataBase) System is a Distributed Database Management System (DDBMS).
It integrates some DBMS via their JDBC driver.
And because it was created with Java language, it can run at multi platform.

For examples : I success to integrate some DBMS: 
	Access(with JDBC-ODBC Bridge), PostgreSQL(with JDBC-PostgreSQL), Interbase(with InterClient),
	MS SQL-Server(with FastForward), and MySQL(with Mark Matthews' MySQL JDBC Driver).
with my 
	sample application sis_info_mhsklh.

Features :
- horisontal fragmentation
- different table at any site
- use JDBC standar for driver's interface, so you can use it without change 
  and compile again if you create it with JDBC standar
- SQL minimum grammar
- concurrent control for transaction proccess, with timestamps algorithm
- data replication
- use semijoin algorithm for optimation query process
- integrated any different type of DBMS via their own JDBC driver

Here are the SQL statements that IDDB supports:

SELECT (with joins)
UPDATE
INSERT
DELETE
CREATE TABLE
DROP TABLE

specific for IDDB :
EXTENDED SITE CREATE
EXTENDED SITE DROP
EXTENDED TABLE CREATE
EXTENDED TABLE DROP

============
Requirements
============

for running :
- JDK 1.1.X or JRE 1.1.X
- some DBMS software with their JDBC drive 
  (examples : PostgreSQL, MySQL, Access (via JDBC-ODBC bridge), 
  Oracle, Informix, Sybase, Interbase, etc)

for compiling :
- JDK 1.1.X 
- JavaCC 0.7

==================
Using this package
==================

You should be able to use IDDB just like any other JDBC
driver. Simple copy the 'iddb' directory and all of its
subdirectories into a permanent location, and add it to your
CLASSPATH. 

Here's how a sample installation might go:

  # use zip program to decompress iddb-0.1.0.zip (eg: d:\unzip iddb.zip
    (make sure that your zip program can recognize long file names)
  # cd d:\IDDB
  # SET CLASSPATH=%CLASSPATH%;C:\IDDB\Client\iddb

Then you can run IDDBMaster in Server directory
or run test programs in Client directory (TestSpeed)
sample application program (sis_info_mhsklh)
and utility for user administration. (user)

Configuration file :
- IDDBMaster.ini    for server
- JDBCIDDB.ini      for JDBC driver
any samples of file configuration you can look at Server or Client directory

for prepare DBMS for database to use with IDDBMaster, 
first you must create database in each DBMS.
If you use DBMS via ODBC, you must create a DSN for that database.

The JDBC IDDB Driver
====================

To use IDDB via JDBC IDDB driver, you need to know two
things. First, you will need to issue the Class.forName()
method call, as required by all JDBC drivers:

  Class.forName("iddb.Diver");

Secondly, you will need to know the JDBC URL for IDDB,
which is:

  jdbc:iddb://_host_/iddb

You must include a hostname where the IDDBMaster run, 
the database name must 'iddb' because only database name 
it is supported by IDDB system and 
each user only gets one database, under which they
can create as many tables as they want.

You can see the sample or test programs for clear examples
use of this system with your program.

For query examples, how to create fragmentation in your database
you can see files (*.sql)

or you can ask me via e-mail if you still not clear.

at least you can wait for documentation of this IDDB system,
I still work to finish it.


=======
Support
=======

Please wait for documentation of IDDB, I still work for it,
But if you have any questions, not clear about this intruction 
or discussion about this IDDB system or distributed database 
system, you can reach me via e-mail.

If you have any comments, questions or suggestions about
IDDB, please feel free to write me at:

  Junus Junarto D <junus@its-sby.edu>

I cannot guarantee that I will be able to respond to issues
individually, but I would like to know how IDDB is
working or not. Any bug reports or other issues will
eventually be fixed in later releases. For updates,
information on the yet-to-be-created IDDB mailing list,
and other stuff, keep any eye on the main distribution site:

   http://www.geocities.com/ResearchTriangle/Lab/8606/index.html
