473,395 Members | 2,192 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

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

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
4 1211
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
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
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
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Newbie | last post by:
Hi, Could someone please tell how MINUS operator works for comparing and giving non-matching records in Table1? Does MINUS operator compares all records of Table1 with all records of Table2 to...
9
by: lauren quantrell | last post by:
Is there a way to determine the size of the user's screen minus the Windows task bar? I am trying to maximize an Access popup form that is also resizeable and it is causing me problems since it...
4
by: Kurt | last post by:
Wouldn't you agree all of the follwoing should produce the same result? r = (o1 == o2); r = (o2 == o1); r = object.Equals(o1, o2); r = object.Equals(o2, o1); r = (o1.Equals(o2)); r =...
4
by: Chris | last post by:
This is something that has been bugging me for some time. When exactly should I be using == instead of .Equals() ? I see a lot of code that performs object evaluation e.g. Is Object1 the same as...
12
by: Rubbrecht Philippe | last post by:
Hi there, According to documentation I read the ArrayList.IndexOf method uses the Object.Equals method to loop through the items in its list and locate the first index of an item that returns...
0
by: Klaus Löffelmann | last post by:
Hi, maybe it's already too late, but what is the deal with overwriting Object.Equals. I have to use "overrides overloads" to really overwrite the correct 'version' of equals, even if a single...
18
by: JohnR | last post by:
From reading the documentation, this should be a relatively easy thing. I have an arraylist of custom class instances which I want to search with an"indexof" where I'm passing an instance if the...
12
by: cody | last post by:
Why can I overload operator== and operator!= separately having different implementations and additionally I can override equals() also having a different implementation. Why not forbid...
10
by: r035198x | last post by:
The Object class has five non final methods namely equals, hashCode, toString, clone, and finalize. These were designed to be overridden according to specific general contracts. Other classes that...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.