[ANN] KirbyBase 2.3 beta 1

I would like to announce the first beta of version 2.3 of KirbyBase, a small, pure-Ruby database management system that stores it's data in plain-text files.

You can download the beta here:

Windows: http://www.netpromi.com/files/KirbyBase_Ruby_2.3_beta_1.zip
Linux/Unix: http://www.netpromi.com/files/KirbyBase_Ruby_2.3_beta_1.tar.gz

Version 2.3 has a number of enhancements, so I thought I would release a beta of it and get some feedback before I released the production version.

Some of the new features are:

* You can now define one-to-one relationships and one-to-many relationships between tables. I hesitate to call KirbyBase "relational", because I know that the term, in its pure form, is supposed to refer to whether the dbms supports relational algebra, not relations between tables. That being said, KirbyBase now supports the ability to link a field in one table to another table, so that when you perform a select, you automatically have available in that field a reference to either a single record (for one-to-one links) or multiple records (for one-to-many) links. Check out the examples in the link_test and link_many_test directories.

* You can now define calculated fields in a table. These are "virtual" fields that don't get populated with data until runtime. For example, you can create a field called "total" and specify that it's value is "quantity * price". During a #select, KirbyBase will, for each record, calculate the value of "total" by multiplying the "quantity" field by the "price" field. Check out the example in the calculated_field_test directory.

* Two new fields types are available for table fields: Memo and Blob. Check out the example in the memo_test directory.

* KirbyBase now makes available "crosstab" functionality in the result set of a #select. I am probably not using the term "crosstab" correctly, but I am having a hard time finding the right word to use. Basically, you now have available all of the values for a particular column of the result set. Probably the best way to see what this is is to take a look at the example in the crosstab_test directory.

* KirbyBase now has the ability to take advantage of indexes if you specify them when you create a table. Both single and compound indexes are supported. In some very limited testing, I have noticed a 100% improvement in query times using indexes. There is still a lot of optimization that can be done in this area, so I am hopeful of greater speed improvements. Check out the example in the indexes_test directory.

Well, that is about it for the major new features. I would once again like to thank Hal Fulton for giving me the idea for linking tables and for his valuable feedback while I worked on this version. However, any implementation flaws are entirely my own. In other words, if you don't like the way I have implemented linking, don't blame Hal, blame me!

I hope you will download the beta version and check it out. Any and all feedback will be greatly appreciated.

Enjoy!

Jamey Cribbs
jcribbs@twmi.rr.com

Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.

Jamey,

Thank you for this new release. I use KirbyBase for a few small
personal projects, and I look forward to trying it out.

Do you have any plans to offer KirbyBase as a RubyGem?

Jim

···

On 9/8/05, Jamey Cribbs <cribbsj@oakwood.org> wrote:

I would like to announce the first beta of version 2.3 of KirbyBase, a
small, pure-Ruby database management system that stores it's data in
plain-text files.

--
Jim Menard, jim.menard@gmail.com, jimm@io.com
http://www.io.com/~jimm

Jamey,
  Thanks for this release. It has lot of goodies which are easier to
define and use.

This looks interesting, I 'll download right now!

-g.

···

On 9/8/05, Jamey Cribbs <cribbsj@oakwood.org> wrote:

I would like to announce the first beta of version 2.3 of KirbyBase, a
small, pure-Ruby database management system that stores it's data in
plain-text files.

You can download the beta here:

Windows: http://www.netpromi.com/files/KirbyBase_Ruby_2.3_beta_1.zip
Linux/Unix: http://www.netpromi.com/files/KirbyBase_Ruby_2.3_beta_1.tar.gz

Version 2.3 has a number of enhancements, so I thought I would release a
beta of it and get some feedback before I released the production version.

Some of the new features are:

* You can now define one-to-one relationships and one-to-many
relationships between tables. I hesitate to call KirbyBase
"relational", because I know that the term, in its pure form, is
supposed to refer to whether the dbms supports relational algebra, not
relations between tables. That being said, KirbyBase now supports the
ability to link a field in one table to another table, so that when you
perform a select, you automatically have available in that field a
reference to either a single record (for one-to-one links) or multiple
records (for one-to-many) links. Check out the examples in the
link_test and link_many_test directories.

* You can now define calculated fields in a table. These are "virtual"
fields that don't get populated with data until runtime. For example,
you can create a field called "total" and specify that it's value is
"quantity * price". During a #select, KirbyBase will, for each record,
calculate the value of "total" by multiplying the "quantity" field by
the "price" field. Check out the example in the calculated_field_test
directory.

* Two new fields types are available for table fields: Memo and Blob.
Check out the example in the memo_test directory.

* KirbyBase now makes available "crosstab" functionality in the result
set of a #select. I am probably not using the term "crosstab"
correctly, but I am having a hard time finding the right word to use.
Basically, you now have available all of the values for a particular
column of the result set. Probably the best way to see what this is is
to take a look at the example in the crosstab_test directory.

* KirbyBase now has the ability to take advantage of indexes if you
specify them when you create a table. Both single and compound indexes
are supported. In some very limited testing, I have noticed a 100%
improvement in query times using indexes. There is still a lot of
optimization that can be done in this area, so I am hopeful of greater
speed improvements. Check out the example in the indexes_test directory.

Well, that is about it for the major new features. I would once again
like to thank Hal Fulton for giving me the idea for linking tables and
for his valuable feedback while I worked on this version. However, any
implementation flaws are entirely my own. In other words, if you don't
like the way I have implemented linking, don't blame Hal, blame me!

I hope you will download the beta version and check it out. Any and all
feedback will be greatly appreciated.

Enjoy!

Jamey Cribbs
jcribbs@twmi.rr.com

Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.

--
http://www.gmosx.com
http://www.navel.gr

Jim Menard wrote:

Do you have any plans to offer KirbyBase as a RubyGem?

Yes. I had a bad experience with a very early version of RubyGem and since then I have kind of ignored it. I need to try RubyGem again and get up to speed on how to create gems.

Jamey

Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.

Greetings! I want to declare myself a complete ruby-nuby, and this is my first post here. Made the big adopt-Ruby-decision last night, after my Plone site broke yet again, and I simply lost patience with its size and complexity. A long night ensued.

I studied "Rails" very carefully, and pronounced it more than good enough for my purposes, then looked carefully at Ruby and fell in love. I was actually laughing with joy at one point. Why hasn't someone done this before - this kind of simplicity and sheer beauty? I never DID figure out that Python "self" nonsense, and now I don't have to. Thank you * 3.

So....re: Kirbybase - this looks a bit like Python's MetaKit package, and very much like David Black's dbdbd - http://knossos.shu.edu/dblack/dbdbd/

I can't believe there isn't some kind of genetic relationship.

You'll hear from me again. I'll need you help!

Tom C.

···

======================================================
Tom Cloyd, MS MA, LMHC
Private practice Psychotherapist
Bellingham, Washington, U.S.A: (360) 920-1226
<< BestMindHealth.com / tc@bestmindhealth.com >>

Using Opera's revolutionary e-mail client (program): http://www.opera.com/mail/

Tom Cloyd wrote:

So....re: Kirbybase - this looks a bit like Python's MetaKit package, and very much like David Black's dbdbd - http://knossos.shu.edu/dblack/dbdbd/

I can't believe there isn't some kind of genetic relationship.

The following snippet comes from www.netpromi.com/kirbybase.html:

Where did KirbyBase come from?

A lot of the ideas and concepts for KirbyBase came from a tcl dbms script written by Dave Maggiano. Dave included this script on the cdrom that accompanied his book "CGI Programming with Tcl". I bought the book, which is excellent, and while reading it, came across his dbms script. I have a soft-spot for small, simple, cleverly designed database management systems, and Dave's was one of the coolest I have seen. The icing on the cake was that I could actually understand and follow the source code!

Jamey

Confidentiality Notice: This email message, including any attachments, is for the sole use of the intended recipient(s) and may contain confidential and/or privileged information. If you are not the intended recipient(s), you are hereby notified that any dissemination, unauthorized review, use, disclosure or distribution of this email and any materials contained in any attachments is prohibited. If you receive this message in error, or are not the intended recipient(s), please immediately notify the sender by email and destroy all copies of the original message, including attachments.