For Programmers: Free Programming Magazines  


Home > Archive > Smalltalk > August 2006 > Database choice?









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author Database choice?
gregarican

2006-08-22, 7:02 pm

I respect a lot of the folks who post in this newsgroup so figured it'd
be worth it to pose this scenario. There's a retail software app I'm
considering starting to code, and since I want to expand my Smalltalk
experience I have chosen it as the language of choice. Now on to the
"what if" that I am curious as to everyone's opinion about.

Having had to support several retail software applications there is a
lot to be said about being able to tap into the underlying SQL database
from the outside using OLEDB, ODBC, etc. in my Windows environment. If
I can't get to the data using the native software app then I can just
get to the data using my own tools. Whether the SQL database is running
on MSSQL, Oracle, mySQL, Postgres, SQLite, etc. I can issue standard
SQL commands to get at things.

If I were to release my retail software app commercially then it might
be a good selling point that the database backend could be a variety of
choices if I were to keep the SQL features pretty basic. But then again
that might make things tougher to develop and maintain.

Would it be better to pursue this option or embed something like GOODS
into my app? From what I have read if I used something like GOODS I
could get at the data using Smalltalk, but couldn't necessarily have
others tap into the data using external SQL tools. While that might be
a downside I would think the interoperability and elegance of having
the database sitting in the same Smalltalk environment would be nice.

For a typical retail software app I would be looking for decent CRUD
transactional traffic, database replication of some sort, and the
ability to backup the database externally. So which should I choose? An
outside SQL-type database or an package such as GOODS and the like?

James Foster

2006-08-23, 7:03 pm

As your question indicates, there are tradeoffs with any approach. Of
course, there is the Ron Jeffries answer: "Why do you need a database at
all?" Most versions of Smalltalk have some sort of object filer if you need
persistence. Why not start there and see what you need?

I did an application for a video rental store using Dolphin and an Access
database. It was a simple schema with a single user where fancy reports were
important. We used Crystal Reports for the reports. For a warehouse
inventory application where the schema was also simple, there were a
handfull of users, and (again) reporting was important, we used Dolphin with
a MS SQL Server database.

Of course, if the schema was anything other than simple, I'd want to use
true objects on the database--and the industrial strength system for that is
GemStone/S (disclaimer: I work for them now).

James

"gregarican" <greg.kujawa@gmail.com> wrote in message
news:1156293104.173618.130390@m79g2000cwm.googlegroups.com...
>I respect a lot of the folks who post in this newsgroup so figured it'd
> be worth it to pose this scenario. There's a retail software app I'm
> considering starting to code, and since I want to expand my Smalltalk
> experience I have chosen it as the language of choice. Now on to the
> "what if" that I am curious as to everyone's opinion about.
>
> Having had to support several retail software applications there is a
> lot to be said about being able to tap into the underlying SQL database
> from the outside using OLEDB, ODBC, etc. in my Windows environment. If
> I can't get to the data using the native software app then I can just
> get to the data using my own tools. Whether the SQL database is running
> on MSSQL, Oracle, mySQL, Postgres, SQLite, etc. I can issue standard
> SQL commands to get at things.
>
> If I were to release my retail software app commercially then it might
> be a good selling point that the database backend could be a variety of
> choices if I were to keep the SQL features pretty basic. But then again
> that might make things tougher to develop and maintain.
>
> Would it be better to pursue this option or embed something like GOODS
> into my app? From what I have read if I used something like GOODS I
> could get at the data using Smalltalk, but couldn't necessarily have
> others tap into the data using external SQL tools. While that might be
> a downside I would think the interoperability and elegance of having
> the database sitting in the same Smalltalk environment would be nice.
>
> For a typical retail software app I would be looking for decent CRUD
> transactional traffic, database replication of some sort, and the
> ability to backup the database externally. So which should I choose? An
> outside SQL-type database or an package such as GOODS and the like?
>



gregarican

2006-08-23, 7:03 pm

Thanks for the feedback. Is GemStone/S available from the outside
through ODBC, OLEDB, etc.? If so I am assuming that endusers could
access the database using something like Crystal Reports. I figure that
my potential app will also require a decent amount of reporting and I
typically like the fact that power users can create their own custom
reports if they are somewhat proficient at using a report writer.

Does GemStone/S accept standard SQL commands if being accessed from the
outside?

James Foster wrote:[color=darkred]
> As your question indicates, there are tradeoffs with any approach. Of
> course, there is the Ron Jeffries answer: "Why do you need a database at
> all?" Most versions of Smalltalk have some sort of object filer if you need
> persistence. Why not start there and see what you need?
>
> I did an application for a video rental store using Dolphin and an Access
> database. It was a simple schema with a single user where fancy reports were
> important. We used Crystal Reports for the reports. For a warehouse
> inventory application where the schema was also simple, there were a
> handfull of users, and (again) reporting was important, we used Dolphin with
> a MS SQL Server database.
>
> Of course, if the schema was anything other than simple, I'd want to use
> true objects on the database--and the industrial strength system for that is
> GemStone/S (disclaimer: I work for them now).
>
> James
>
> "gregarican" <greg.kujawa@gmail.com> wrote in message
> news:1156293104.173618.130390@m79g2000cwm.googlegroups.com...

James Foster

2006-08-23, 7:03 pm

An advantage of using an object database is that you avoid the
object-to-relational mapping. A divantage of using an object database is
that you don't have the object-to-relational mapping needed for ODBC. One
option is to export a subset of the data in a relational form that can be
accessed with Crystal, but then you've gone to some of the effort that you
wanted to avoid of doing the mapping and you still don't have all the data
available to the power users. In general, however, there isn't a direct way
to get to GemStone using SQL.

"gregarican" <greg.kujawa@gmail.com> wrote in message
news:1156357956.265524.124310@m79g2000cwm.googlegroups.com...
> Thanks for the feedback. Is GemStone/S available from the outside
> through ODBC, OLEDB, etc.? If so I am assuming that endusers could
> access the database using something like Crystal Reports. I figure that
> my potential app will also require a decent amount of reporting and I
> typically like the fact that power users can create their own custom
> reports if they are somewhat proficient at using a report writer.
>
> Does GemStone/S accept standard SQL commands if being accessed from the
> outside?
>



John Clapperton

2006-08-28, 7:03 pm

If you are writing your application in VisualAge Smalltalk you may like to look
at this company's transactional persistence product VOSS 3.0.

There is no SQL binding as standard SQL is limited to operations on relational
tables, not on arbitrary object reference structures. SQL may of course be
adequate for your application, but it's as well to know that, not being
computationally complete, it is unable to do some simple things, such as make up
a sales order by selecting arbitrary-sized batches in sell-by date order,
splitting the last batch to get the required quantity.

John Clapperton
http://www.logicarts.com

maarten

2006-08-28, 10:08 pm

Why don't you have a look at GLORP !

GLORP will give you an amazing access to all leading Databases from
Access to Oracle. It is available for all Smalltalk dialects and allows
you to tackle your database with real Smalltalk methods making history
of direct SQL commands.

Start with Rodger Witney's tutorial which is certainly worth the investment.

Maarten,

gregarican a écrit :
> Thanks for the feedback. Is GemStone/S available from the outside
> through ODBC, OLEDB, etc.? If so I am assuming that endusers could
> access the database using something like Crystal Reports. I figure that
> my potential app will also require a decent amount of reporting and I
> typically like the fact that power users can create their own custom
> reports if they are somewhat proficient at using a report writer.
>
> Does GemStone/S accept standard SQL commands if being accessed from the
> outside?
>
> James Foster wrote:
>


gregarican

2006-08-29, 8:01 am

I will check this out for sure. I appreciate everyone's feedback on the
topic. My project vaporware so far so I am free to explore a bit. Just
looking for an excuse to finally program a project using Smalltalk.
Other than some mock-ups of an existing CRM app I developed in another
language I have been meaning to give it a whirl!

maarten wrote:
> Why don't you have a look at GLORP !
>
> GLORP will give you an amazing access to all leading Databases from
> Access to Oracle. It is available for all Smalltalk dialects and allows
> you to tackle your database with real Smalltalk methods making history
> of direct SQL commands.
>
> Start with Rodger Witney's tutorial which is certainly worth the investme=

nt.[color=darkred]
>
> Maarten,
>
> gregarican a =E9crit :
at[color=darkred]
need[color=darkred]
ess[color=darkred]
s were[color=darkred]
n with[color=darkred]
se[color=darkred]
hat is[color=darkred]
'd[color=darkred]
se[color=darkred]
ng[color=darkred]
of[color=darkred]
in[color=darkred]
An[color=darkred]

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com