Subject RE: RE: [ib-support] Non-technical database question
Author Helen Borrie
At 07:48 PM 24/02/2003 +1000, you wrote:
> >You can't copy-and-paste data into a relational database management system
> >(which is what Firebird is). What you do is write client applications to
> >manage imported data and massage them into shape as SQL DML (data
> >manipulation language) statements.
>Okay, I understand that (I think). But why when run a metadata file through
>IBConsole, or the like, do I end up with a physical 'file'
>ie
>CREATE DATABASE 'se_gdb_0_1_0.gdb' PAGE_SIZE 2048 USER 'ADMIN' PASSWORD
>'admin';
>COMMIT;
>What is stopping me copying this .gdb file and reconnecting from somewhere
>else?

Nothing. It's a security vulnerability that filesystems are heir to.


>If the answer is that IB/FB is not designed for this (ie overkill), or that
>it is bad use of an RDBMS, then I think I am beginning to understand.

Transferring data by copying a database file? No, it's not how a
client/server RDBMS is designed to be used. Its purpose is to centralise
the data pertaining to an organisation's operations and provide an
application-neutral repository for those data. And, desirably, to do it in
such a way that the data are safe from outside interference (malicious and
non-malicious) and will survive trauma like power-cuts and faulty media.

In situations where you have "satellite" databases requiring a top-up from
the central database and/or needing to upload data, you'll implement some
form of replication - a careful and thorough design exercise.

>If that is not the answer, then my apologies. I am trying to grasp it all.

I really can't tell what operating conditions you are trying to deal
with. Some of your comments make it sound like a spreadsheet application,
others that it's actually a database application.

If what you need is to be passing whole databases around as mobile data
stores, without regard to security or integrity, then maybe it's a
spreadsheet you need; or a local desktop database application made with
Access that meets the need you perceive to pass data around via the Windows
clipboard.


> >No, it's not DESIGNED as a Windows tool for hip-hopping data around between
> >applications. It's a cross-platform relational database management
> >system:
>So would you say that my project should really not be using Firebird at all?
>Kind of like buying a tractor to mow my lawn.

I've worked (here in NSW) with a very well-skilled developer whose product,
with an InterBase back-end, makes very powerful use of the server's
capabilities to provide for the exact market at which you appear to be
pitching. It's a very successful product that started life as a desktop
application with (I think) Paradox at the back end. Its security and
interface requirements, and the complicated legal and tax book-keeping
that's involved with hiring contractors in the Australian tax environment,
gave rise to a need for more security and more grunt than desktop databases
could provide. That lawn definitely needed a tractor.


> >The RDBMS doesn't presuppose any specific means of
> >client access: the boot is on the other foot.
>Okay so export/import is the means in which to transfer data (though I am
>kind of starting to see that I really should not be using firebird/IB for
>this.)

Further to my earlier comments, it's not really at all clear what kind of
data you would be "transferring", or what you would be transferring it from
or for, or what impact these external data would be expected to have on the
internal data. It's a minimum requirement when approaching the question of
data storage, to know these things and make a logical model of your inputs,
transformations and outputs. A valid logical model which you can validate
by use case testing is well worth the time you spend assembling it.

>I have actually really been thumbing through all the guides (API, Lang.
>Ref., Developers,..)alot. And reading alot about databases. I still feel
>like I am swimming. Please tell me this is normal.

It seems pretty normal to be overwhelmed by new concepts...the guides
aren't a source of information about design theory or advice about
implementation. You have to know what you want to do before the guides
become useful by telling you how to do it.

heLen