469,632 Members | 1,639 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,632 developers. It's quick & easy.

Distributed database question

I'm looking for documentation pointers to learn what I need to put together
a distributed database system. I've read through "Oracle 9i Database
Administrator's Guide: Distributed Database Concepts" and Oracle Database
Concepts: Introduction to the Oracle Server: Distributed Databases
Overview", but I don't see how to do what I want.

I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll
provide a little more context: I have three databases, running on separate
systems, all of which use the identical schema. So, each has entries in a
table "foo", which are unique. I'd like to provide a global access to this
data, so a client can effectively query the set of databases. So, asking
for all entries in the "foo" table would retrieve the contents of db1.foo,
db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
wrap this in an enterprise java bean to provide an object interface.

Database links looked like the closest idea I could find, but they don't
deal well with the idea that my "foo" table has entries spread across the db
instances.

A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com
Jul 19 '05 #1
7 3700
"J Goldman" <ja***@fc.hp.com> wrote in message
news:3f********@usenet01.boi.hp.com...
I'm looking for documentation pointers to learn what I need to put together a distributed database system. I've read through "Oracle 9i Database
Administrator's Guide: Distributed Database Concepts" and Oracle Database
Concepts: Introduction to the Oracle Server: Distributed Databases
Overview", but I don't see how to do what I want.

I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll
provide a little more context: I have three databases, running on separate systems, all of which use the identical schema. So, each has entries in a
table "foo", which are unique. I'd like to provide a global access to this data, so a client can effectively query the set of databases. So, asking
for all entries in the "foo" table would retrieve the contents of db1.foo,
db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
wrap this in an enterprise java bean to provide an object interface.

Database links looked like the closest idea I could find, but they don't
deal well with the idea that my "foo" table has entries spread across the db instances.

A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com

Why do you want them spread over 3 machines? On one machine you might want
to partition the data into 3 tables and access the partition. You could use
database links and views, but it is going to be very inefficient.(the link
might have to retrieve the whole table and resolve the query on the database
you are attached to - ouch, dragging all that data over a link.) Whereas a
RAC might be better.
Jim
Jul 19 '05 #2
"J Goldman" <ja***@fc.hp.com> wrote in message news:<3f********@usenet01.boi.hp.com>...
A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll
provide a little more context: I have three databases, running on separate
systems, all of which use the identical schema. So, each has entries in a
table "foo", which are unique. I'd like to provide a global access to this
data, so a client can effectively query the set of databases. So, asking
for all entries in the "foo" table would retrieve the contents of db1.foo,
db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to
wrap this in an enterprise java bean to provide an object interface.

Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
better off by using a few 1000 of voting machines using punchcards.
Your approach would require to use UNIONs for everything, which means
the database will resort to full table scan and sorting for ALL sql
you sunmit.
Need I say more? Why do you want this? Are you up for a career move,
or do you like getting sacked by HP?

Sybrand Bakker
Senior Oracle DBA
Jul 19 '05 #3

"Jim Kennedy" <kennedy-down_with_spammers@no_spam.comcast.net> wrote in
message news:eb*******************@rwcrnsc52.ops.asp.att.n et...
"J Goldman" <ja***@fc.hp.com> wrote in message
news:3f********@usenet01.boi.hp.com...
I'm looking for documentation pointers to learn what I need to put together
a distributed database system. I've read through "Oracle 9i Database
Administrator's Guide: Distributed Database Concepts" and Oracle Database Concepts: Introduction to the Oracle Server: Distributed Databases
Overview", but I don't see how to do what I want.

I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll
provide a little more context: I have three databases, running on

separate
systems, all of which use the identical schema. So, each has entries in a table "foo", which are unique. I'd like to provide a global access to

this
data, so a client can effectively query the set of databases. So, asking for all entries in the "foo" table would retrieve the contents of db1.foo, db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to wrap this in an enterprise java bean to provide an object interface.

Database links looked like the closest idea I could find, but they don't
deal well with the idea that my "foo" table has entries spread across

the db
instances.

A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com

Why do you want them spread over 3 machines? On one machine you might

want to partition the data into 3 tables and access the partition. You could use database links and views, but it is going to be very inefficient.(the link
might have to retrieve the whole table and resolve the query on the database you are attached to - ouch, dragging all that data over a link.) Whereas a RAC might be better.
Jim

Well, the first reason why they're spread over three machines is that I'm
adding
this to an existing product, where the databases have already been set up
like this.
This is designed such that each machine controls its own domain and one
machine
cannot access another's data. Aside from security, locality of data is also
relevant.
I'm just adding a global management view to collect all that data.

I'll have to read up on RAC to see if that addresses my needs. Thanks.

Regards,
Jason
ja***@fc.hp.com

Jul 19 '05 #4
Well, thanks for the vote of confidence. I appreciate your point that
this approach doesn't seem doomed to success. With that in mind,
can you offer any contructive suggestion on how I might provide
global access to this data? My other main thought has been to create
a set of entity EJBs local to each machine, along with a set of global
session beans. The global session beans would use something like a
dbhost parameter (where appropriate) to guide which db should be
read. Generic requests would query all of the DBs.

Jason
ja***@fc.hp.com
"Sybrand Bakker" <po*****@sybrandb.demon.nl> wrote in message
news:a2**************************@posting.google.c om...
"J Goldman" <ja***@fc.hp.com> wrote in message

news:<3f********@usenet01.boi.hp.com>...
A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com

I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll
provide a little more context: I have three databases, running on separate systems, all of which use the identical schema. So, each has entries in a table "foo", which are unique. I'd like to provide a global access to this data, so a client can effectively query the set of databases. So, asking for all entries in the "foo" table would retrieve the contents of db1.foo, db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning to wrap this in an enterprise java bean to provide an object interface.

Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
better off by using a few 1000 of voting machines using punchcards.
Your approach would require to use UNIONs for everything, which means
the database will resort to full table scan and sorting for ALL sql
you sunmit.
Need I say more? Why do you want this? Are you up for a career move,
or do you like getting sacked by HP?

Sybrand Bakker
Senior Oracle DBA

Jul 19 '05 #5

"Jim Kennedy" <kennedy-down_with_spammers@no_spam.comcast.net> wrote in
message news:eb*******************@rwcrnsc52.ops.asp.att.n et...
Why do you want them spread over 3 machines? On one machine you might

want to partition the data into 3 tables and access the partition. You could use database links and views, but it is going to be very inefficient.(the link
might have to retrieve the whole table and resolve the query on the database you are attached to - ouch, dragging all that data over a link.) Whereas a RAC might be better.
Jim

Well, I did a little bit of reading and I'm not convinced that a cluster
approach will
really address my problem. I'm leaning towards more of an EJB approach that
I
mentioned in another response. Thanks for the suggestions though.

Regards,
Jason
ja***@fc.hp.com
Jul 19 '05 #6
No, move all the data to 1 machine and have 3 schemas. Then you can create
a view that joins the 3 schemas(1 view for each table). The entity bean
approach is a Java programmer with a hammer that thinks everything is a
nail.]
Jim

--
Replace part of the email address: ke************************@attbi.com
with family. Remove the negative part, keep the minus sign. You can figure
it out.
"J Goldman" <ja***@fc.hp.com> wrote in message
news:3f********@usenet01.boi.hp.com...
Well, thanks for the vote of confidence. I appreciate your point that
this approach doesn't seem doomed to success. With that in mind,
can you offer any contructive suggestion on how I might provide
global access to this data? My other main thought has been to create
a set of entity EJBs local to each machine, along with a set of global
session beans. The global session beans would use something like a
dbhost parameter (where appropriate) to guide which db should be
read. Generic requests would query all of the DBs.

Jason
ja***@fc.hp.com
"Sybrand Bakker" <po*****@sybrandb.demon.nl> wrote in message
news:a2**************************@posting.google.c om...
"J Goldman" <ja***@fc.hp.com> wrote in message news:<3f********@usenet01.boi.hp.com>...
A pointer in the right direction would be greatly appreciated.

Jason
ja***@fc.hp.com

I would like to set up a distributed database system with location
transparency and a shared schema (i.e. horizontal fragmentation). I'll provide a little more context: I have three databases, running on separate systems, all of which use the identical schema. So, each has entries
in a table "foo", which are unique. I'd like to provide a global access to this data, so a client can effectively query the set of databases. So, asking for all entries in the "foo" table would retrieve the contents of db1.foo, db2.foo, and db3.foo. Ideally, when all is said and done, I'm
planning
to wrap this in an enterprise java bean to provide an object interface.

Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
better off by using a few 1000 of voting machines using punchcards.
Your approach would require to use UNIONs for everything, which means
the database will resort to full table scan and sorting for ALL sql
you sunmit.
Need I say more? Why do you want this? Are you up for a career move,
or do you like getting sacked by HP?

Sybrand Bakker
Senior Oracle DBA


Jul 19 '05 #7
"Jim Kennedy" <kennedy-down_with_spammers@no_spam.comcast.net> wrote in message news:<mVsab.507793$Ho3.85596@sccrnsc03>...
No, move all the data to 1 machine and have 3 schemas. Then you can create
a view that joins the 3 schemas(1 view for each table). The entity bean
approach is a Java programmer with a hammer that thinks everything is a
nail.]
Jim

--
Replace part of the email address: ke************************@attbi.com
with family. Remove the negative part, keep the minus sign. You can figure
it out.
"J Goldman" <ja***@fc.hp.com> wrote in message
news:3f********@usenet01.boi.hp.com...
Well, thanks for the vote of confidence. I appreciate your point that
this approach doesn't seem doomed to success. With that in mind,
can you offer any contructive suggestion on how I might provide
global access to this data? My other main thought has been to create
a set of entity EJBs local to each machine, along with a set of global
session beans. The global session beans would use something like a
dbhost parameter (where appropriate) to guide which db should be
read. Generic requests would query all of the DBs.

Jason
ja***@fc.hp.com
"Sybrand Bakker" <po*****@sybrandb.demon.nl> wrote in message
news:a2**************************@posting.google.c om...
"J Goldman" <ja***@fc.hp.com> wrote in message news:<3f********@usenet01.boi.hp.com>... > A pointer in the right direction would be greatly appreciated.
>
> Jason
> ja***@fc.hp.com I would like to set up a distributed database system with location
> transparency and a shared schema (i.e. horizontal fragmentation). I'll > provide a little more context: I have three databases, running on separate > systems, all of which use the identical schema. So, each has entries in
a > table "foo", which are unique. I'd like to provide a global access to this > data, so a client can effectively query the set of databases. So, asking > for all entries in the "foo" table would retrieve the contents of db1.foo, > db2.foo, and db3.foo. Ideally, when all is said and done, I'm planning
to > wrap this in an enterprise java bean to provide an object interface.
>
Your scenario has 'DISASTER AHEAD' inscribed all over it. You would be
better off by using a few 1000 of voting machines using punchcards.
Your approach would require to use UNIONs for everything, which means
the database will resort to full table scan and sorting for ALL sql
you sunmit.
Need I say more? Why do you want this? Are you up for a career move,
or do you like getting sacked by HP?

Sybrand Bakker
Senior Oracle DBA


If the DBS have to be in different locations, dosn't sound like RAC
would do you much good. What about doing all the work in the Middle
Tier and have your java app connect to all three servers and launch a
seperate query to each one? The oracle app server 9iAS should be able
to deal with all this easily (have to spend money though if you don't
have it) as it's meant to connect to many nodes. I would be leary of
links and union which may come to a screaching hault if one of the DBs
is unavailable.

Not sure how much data you have or how often it gets inserts and
updates, or how up the the minute data your query requires, but look
into materialized views if data and activity set is not too large or
you could use replication to have at least one database with all 3 DBs
data (kind of a data mart approach).
Jul 19 '05 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Avanish Pandey | last post: by
3 posts views Thread by Joris Dobbelsteen | last post: by
2 posts views Thread by thunder | last post: by
7 posts views Thread by J Goldman | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.