Can Rev be used as server database?
Rob Cozens
rcozens at pon.net
Sat Jul 12 09:22:03 EDT 2003
Hi Bernard,
>Furthermore, there is the whole issue of locking for writes to the
>database. I'm not sure if the Serendipity db has any locking
>mechanism.
The single-user version of SDB currently available at my ftp site
does not; the Client/Server version now being alpha tested does.
>
>Without some kind of locking or versioning mechanism, I don't see
>how one can have a multiuser database.
One could use HyperCard's "only the first one to open a stack can
modify it" approach; however, in general I agree.
>
>To my way of thinking, it is better to exploit some of the freely
>available, tried and tested relational databases.
I have remained fairly mute on this issue because I had no real
experience with the RunRev db alternatives: I created SDB close to a
decade ago, and there was no doubt in my mind I would use it for
OenoLog and my other personal projects.
I have since had to explore MySQL in some depth for a project I am
working on for someone else...{who is now taking a serious look at
SDB). The more I work with MySQL, the more I'm convinced that, for
the x-Talks community, SDB blows SQL away in terms of usability:
* In my estimation, 99% of SQL data typing is non-sequitur for xTalks
that deal primarily with strings.
* In my estimation, 80% of SQLs parsing, sorting, and formatting
functions can be handled just as easily in Transcript at the client
end; thus reducing the load on the server.
* In my estimation, at least 85% of SQL syntax has to do with query
functions that at least 95% of my clients/applications don't need or
want.
* Server Installation:
MySQL Server must be installed (& maintained) on Mac OS X in the Unix
root via the Terminal application using Unix command line syntax.
The server will not run on Ma OS 9.
SDB Server can be dragged to any folder that the O/S allows
applications to reside in.
* Cross-Platform Installation:
MySQL requires platform-specific drivers in the form of extensions, DLLs, etc.
SDB runs as native Transcript in one version on any platform
Revolution supports.
* Security:
MySQL requires password security & user identification before it can
be used, and supports limited access to the field level.
SDB supports edit & browse passwords, but requires NO password
protection or user identification for use. [User id can be supported
by defining a user record in the data dictionary and scripting
support for same.]
* Data Dictionary:
MySQL requires creation of a data dictionary record (table
definition) for each record type before records can be filed. That
table definition must name & type every field (column) in the table.
If you have 100 fields, you must name & type all 100. So far as I
can see there is no shortcut to specify all fields in one record in a
table ("*" specifies all records in the table); so to select one
record with 100 fields one must specify each field by name in the
SELECT command. [I cannot believe there is not some simple syntax
for this; but no one has clued me in as to what it is.]
SDB's data dictionary is optional. The SDB server can deal with the
record without knowing its structure and the user can reference
individual fields by number instead of creating data name entries in
the Dictionary.
* User Input Editing:
MySQL can only check user input for its specific edit types, and then
only when the record is processed by the server. Most of the edit
types are meaningless when working in Transcript.
SDB Client's frontScript can filter each keystroke based on data
dictionary edit criteria and provide immediate feedback to the user.
The Dictionary entry can also specify a Transcript edit handler &
formatting instructions to be applied to the user's input on
closeField.
* Access to Source Code:
MySQL is open source...in C & C++. Anyone want to mess with that?
SDB is open source...in Transcript.
* Stability of Engine:
MySQL has been in use by thousands of users for many years and is
proven with gigabyte+ databases.
SDB has been used by a handful of users for many years with
single-user db's generally < 1MB (or 5K records); HOWEVER, the
underlying MetaCard card-by-id index, which can be used directly by
all SDB record manipulation calls except fileSDBRecord, has been used
by thousands of users for many years and is proven for whatever MC/RR
stack contains the most cards.
* Utility of features:
The MySQL syntax is designed to facilitate AD HOC db queries from
many programming environments, and places the overhead for filtering,
sorting, & formatting data on the server. It supports the data types
present in traditional non-xTalks dbs. The majority of MySQL's data
types and server data manipulation are not needed, as data in fields
or passed as arguments is in string format and data manipulation is
better handled in Transcript.
SDB syntax is designed for fast, efficient storage & retrieval of
string data for RunRev & MC specifically, using preset (as opposed to
ad hoc) index paths. It supports filtering, sorting, and formatting
at the Client end in Transcript syntax.
* DB Editing:
MySQL stores data in files that are inaccessible & undecipherable to
the programmer & system administrator.
SDB stores data in string format that can be understood & directly
edited by the programmer & system administrator.
--
Rob Cozens
CCW, Serendipity Software Company
http://www.oenolog.com/who.htm
"And I, which was two fooles, do so grow three;
Who are a little wise, the best fooles bee."
from "The Triple Foole" by John Donne (1572-1631)
More information about the use-livecode
mailing list