By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,747 Members | 1,672 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,747 IT Pros & Developers. It's quick & easy.

R+D+B+M+S minus D+B+M+S equals R, right? Or, am I wacko?

P: n/a
MLH
In the late-70'ies, I was managing a biomechanical RDBMS.
The mechanical part of it consisted of a 5-drawer Allsteel filing
cabinet in the front office with customer file folders in it. The bio
part of it consisted of 3 sales gjuys and the secretary in the front
office.

I claim it was fully relational. I established an office procedure
whereby the sales guys (who were pretty much uncontrollable)
could take orders on anything - back of a pack of matches, sticky
notes, notebook paper, cardboard or even on their micro-cassette
recorders. But when they gave it to the secretary, I had a cardinal
rule that NO MATTER WHAT THE SALES GUYS WROTE, she
was to pull the customer file first (create one if one did not exist)
and compare any contact info, address info, phone info, etc...
in the customer file folder against what the sales guy had jotted
down. As with any biomechanical system (or any system period)
there were system failures - mostly bio. My hard & fast rule, it
seems, slipped out of memory fairly often.

Long before Ashton-Tate sold out to Borland, I was a fan of
dBASE-II and used its tables (individual files) and indices (same
thing) to organize my information. As long as my own BIO system
worked, I was able to maintain referential integrity. No one would
argue that dBASE-II was not a DBMS. And, combined with my brain,
I used it successfully to maintain an RDBMS. But, believe me, my
brain put the R in there. And if my brain suffered a lapse, well lets
just say the R didn't stand for Relational or Reliable.

I have long believed that a vendor selling application software
coined an RDBMS would have to provide a product that, right
out-a-the-box in its simplest, most base configuration could be
installed and launched. Once opened, it should allow you to set
up tables and define relationships. It should then do the work to
police the relationships (law) and enforce referential integrity. I
believe that if the product will not do that - right out-a-the-box -
with no add-ins or other accessories, then its not an RDBMS.

Recently, in another forum, it was suggested that any DBMS
one could manipulate using SQL or some derivative thereof
was an RDBMS. Yes, that was the acid test, according to this
person.

Well, I'm sorry. I can attach to old xBASE tables with MS Access
and use SQL to sort & filter them all day long. But, at the end of the
day, I'm not going to call dBASE-II an RDBMS. R stands for Relational.
It does not stand for SQL. I can build tables and relationships in MS
Access (all versions) all day long and NEVER use SQL to operate
on any of them. The relationship rules I set up will prevent me from
manually entering sales for customers that do not exist in the
customers table. And, at the end of the day, I will know damned
well that I've been working with an RDBMS because it will have
proven itself as such many times throughout the day.

Am I wacko, or what? If I'm totally wrong, I want to hear it from one
of you guys over here in this forum. Hell, even if I'm partially
wrong, I wanna know from one of you, as I have a lot of respect
for this forum.

There is a simple question that dragged me into this arena. I just
wanted to know if MySQL, right out-a-the-box, was fully relational.
I wanted to know if I could install it, launch it, set up tables and
define relationship laws & links and start typing records into tables
manually at that point. I wanted to know if MySQL had built-in
policemen who would prevent me from violating referential integrity
throughout the course of my additions and deletions to various
tables. I didn't want to hear that I could perform those duties myself
by writing a PHP front-end control program. I figured that could be
done. I just wanted to know if MySQL had that feature built-in. That's
an easy question for anyone who has owned a box of MS Access for
an hour or two. Does MS Access do it? Hell Yes. Its indisputable. But
does MySQL do it? I don't know.
Nov 13 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
On Sun, 25 Jul 2004 00:36:23 -0400, MLH <CR**@NorthState.net> wrote:

....
There is a simple question that dragged me into this arena. I just
wanted to know if MySQL, right out-a-the-box, was fully relational.
I wanted to know if I could install it, launch it, set up tables and
define relationship laws & links and start typing records into tables
manually at that point. I wanted to know if MySQL had built-in
policemen who would prevent me from violating referential integrity
throughout the course of my additions and deletions to various
tables. I didn't want to hear that I could perform those duties myself
by writing a PHP front-end control program. I figured that could be
done. I just wanted to know if MySQL had that feature built-in. That's
an easy question for anyone who has owned a box of MS Access for
an hour or two. Does MS Access do it? Hell Yes. Its indisputable. But
does MySQL do it? I don't know.


From what I've heard, MySQL is not really one thing. It's actually, a query
engine connected to one of several types of data storage engine. I understand
that some of the data storage engines have full relational and transactional
capability.

The people I've talked to who have tried to run MySQL on Windows have been
pretty much totally underwhelmed, and a lot of folks are complaining about it
on Linux, too. PostgreSQL is great on Linux, but pretty hard to set up on
Windows. Firebird looks like a really good bet on any platform for modest to
mid-sized databases, though.
Nov 13 '05 #2

P: n/a
Rule 10 was:

10. Integrity constraints must be specified separately from
application programs and stored in the catalog

But I wouldn't say that rule 10 DEFINES a Relational Database
any more than rule 5 does:

5. The system must support a least one relational language

FWIW I think rule 8 is pretty important too:
8. The physical representation of the data must be invisible

Because on my reading of history, the aim was to achieve
theoretical coherence, data integrity, and independence
from the physical representation.

I don't know how well MySQL stacks up, but I don't think that
failure to fully implement a theoretically perfect system
means that a system 'is not relational' (others disagree!)

:~)

(david)

Nov 13 '05 #3

P: n/a
rkc

"MLH" <CR**@NorthState.net> wrote in message
news:h2********************************@4ax.com...
There is a simple question that dragged me into this arena. I just
wanted to know if MySQL, right out-a-the-box, was fully relational.
I wanted to know if I could install it, launch it, set up tables and
define relationship laws & links and start typing records into tables
manually at that point. I wanted to know if MySQL had built-in
policemen who would prevent me from violating referential integrity
throughout the course of my additions and deletions to various
tables. I didn't want to hear that I could perform those duties myself
by writing a PHP front-end control program. I figured that could be
done. I just wanted to know if MySQL had that feature built-in. That's
an easy question for anyone who has owned a box of MS Access for
an hour or two. Does MS Access do it? Hell Yes. Its indisputable. But
does MySQL do it? I don't know.


The latest versions of MySql support foriegn keys/referential integrity
when the InnoDB table type is used. Right out a the box I believe the
default table type is still MyISAM which doesn't. You have to specify
the InnoDB type when you create a table. Right out of the box the
only way to do that without a third party tool is to type SQL statements
from the command line using the mysql commandl line utility. There is
nothing that even resembles Access (the application) that comes with the
MySQL distribution.
Nov 13 '05 #4

P: n/a
MLH
Thank-you for your input. - all of you.
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

On Mon, 26 Jul 2004 02:57:31 GMT, "rkc"
<rk*@yabba.dabba.do.rochester.rr.bomb> wrote:

"MLH" <CR**@NorthState.net> wrote in message
news:h2********************************@4ax.com.. .
There is a simple question that dragged me into this arena. I just
wanted to know if MySQL, right out-a-the-box, was fully relational.
I wanted to know if I could install it, launch it, set up tables and
define relationship laws & links and start typing records into tables
manually at that point. I wanted to know if MySQL had built-in
policemen who would prevent me from violating referential integrity
throughout the course of my additions and deletions to various
tables. I didn't want to hear that I could perform those duties myself
by writing a PHP front-end control program. I figured that could be
done. I just wanted to know if MySQL had that feature built-in. That's
an easy question for anyone who has owned a box of MS Access for
an hour or two. Does MS Access do it? Hell Yes. Its indisputable. But
does MySQL do it? I don't know.


The latest versions of MySql support foriegn keys/referential integrity
when the InnoDB table type is used. Right out a the box I believe the
default table type is still MyISAM which doesn't. You have to specify
the InnoDB type when you create a table. Right out of the box the
only way to do that without a third party tool is to type SQL statements
from the command line using the mysql commandl line utility. There is
nothing that even resembles Access (the application) that comes with the
MySQL distribution.


Nov 13 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.