473,543 Members | 2,497 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

No 'real' relational databases?

I frequently hear that there isn't a commercially available dbms that fully
implements the relational model. Why not? And which product comes closest.

Mike MacSween
Nov 12 '05 #1
49 3272
Mike MacSween previously wrote:
I frequently hear that there isn't a commercially available dbms that
fully
implements the relational model. Why not? And which product comes
closest.

Mike MacSween

Been on holiday Mike?

See this thread - over 100 posts- from a couple of weeks ago.

http://groups.google.com/groups?q=g:...&lr=&ie=UTF-8&
oe=UTF-8&selm=GID2b.55 9%24yJ3.174534% 40news.uswest.n et

Regards

Peter Russell
Nov 12 '05 #2

"Mike MacSween" <mi************ ******@btintern et.com> wrote in message
news:3f******** *************@p ubnews.gradwell .net...
I frequently hear that there isn't a commercially available dbms that fully implements the relational model. Why not? And which product comes closest.

My guess is that no one really needs the full relational model. Take MySQL
for example. It lacks some pretty basic relational features, but a lot of
people, including me, find it good enough for many tasks.

So, even if Oracle ( which I guess is the most feature-rich DBMS out there )
isn't really the whole relational model, no one seems to care. Users would
rather have features like clustering, fail-over and load balancing, so
that's what Oracle is implementing.

I'm thinking the relational model is an abstract-academic-mathematical
thing, and we only need to use parts of it to get some value out of it.

Steve Lefevre
Nov 12 '05 #3
On Thu, 18 Sep 2003 19:37:36 +0100 in comp.databases. ms-access, "Mike
MacSween" <mi************ ******@btintern et.com> wrote:
The main thrust in that thread that actually had anything meaningful to do
with a product 'being' relational or not was to do with allowing/not
allowing duplicate rows and allowing nulls. Obviously if there isn't a
primary key (or at least a candidate key) it's not a relation. I don't see
the problem with nulls. I'm not aware that they are somehow 'banned' from
the relational model. After all, in a relation heading 'allowed null' is the
default for a field isn't it?

Anyway, I was wondering if anybody had anything more concrete than those 2
old chestnuts as to why there is no such thing as a truly relational dbms.


Well according to Bob, to be a rdbms it has to enforce the relational
rules, there are two in the (I think, long time since I looked) first
normal form that IMHO would be impossible for a dbms to enforce,
namely repeating groups and the storage or non atomic data.

Anyway Bob blew it when he advocated the use of a zero length string
in Address2 as this was clearly a repeating group (and usually non
atomic) and was thus not relational, I would have pulled him up on it
but there was no point since he was unable to answer many questions
and just resorted to insulting people when he couldn't think of an
answer or a smart-ass reply.

IMHO a database is relational if *you* make it so, regardless of the
dbms that manages it, if *you* have put the rules in and followed the
relational model, whether in Access, SQL Server, Oracle or a home
grown system then your database is relational.

Whether or not the dbms enforces that model is not important, it's not
the dbms' job to design the database. There are degrees to which a
dbms will enforce or even support such concepts, e.g. DataEase had
relationships, later versions had a laughable attempt at RI on cascade
deletes with a choice of delete the childen, disallow the delete, set
the foreign key to null or do nothing, obviously the last two choices
are as much use as a fishnet condom but a user could skip around the
first two by hitting shift+F1 then deleting.

If you take a line of dbmss in varying degrees of relational support
from none at all, through the pathetic like DataEase, to the better
like Jet and all the way up to the most uptight esoteric system and
was asked to draw a line that said all those to the left are
non-relational, those to the right are relational, where would you
draw that line? Probably in a different place to someone else who was
asked to do the same.

If Codd hadn't died recently then perhaps he could have posted
something in that thread that would have shut the lot of us up (apart
from Bob who would probably have bad-mouthed him) but I suppose we'll
never hear it straight from the horse's mouth now.

--
A)bort, R)etry, I)nfluence with large hammer.
--
A)bort, R)etry, I)nfluence with large hammer.
Nov 12 '05 #4
"Mike MacSween" <mi************ ******@btintern et.com> wrote in message
news:3f******** *************@p ubnews.gradwell .net...
I frequently hear that there isn't a commercially available dbms that fully implements the relational model. Why not?
Insufficient demand due to consumer ignorance.

And which product comes closest.


I notice you included comp.databases. ms-access in the cross-post. Access is
an end-user query tool making the issue of relational fidelity irrelevant. I
changed the follow-up to just include comp.databases.

I have never performed a comprehensive survey so please forgive me if I omit
any important products. Among the SQL dbmses, FirstSQL has the greatest
relational fidelity. Alphora's Dataphor purports to realize a valid D
according to Date's and Darwen's _The Third Manifesto_.
Nov 12 '05 #5
"Steve Lefevre" <le********@osu .edu> wrote in message
news:bk******** **@charm.magnus .acs.ohio-state.edu...

"Mike MacSween" <mi************ ******@btintern et.com> wrote in message
news:3f******** *************@p ubnews.gradwell .net...
I frequently hear that there isn't a commercially available dbms that fully
implements the relational model. Why not? And which product comes

closest.
My guess is that no one really needs the full relational model.
The ignorant are forced to guess because they lack the tools to know. They
generally guess wrong.

I'm thinking the relational model is an abstract-academic-mathematical
thing, and we only need to use parts of it to get some value out of it.


No doubt, this is why you remain obstinately ignorant of the foundational
knowledge of your craft. In real professions, they jail people for
practicing without such knowledge.
Nov 12 '05 #6
"Bob Badour" <bb*****@golden .net> wrote in news:CHvab.230$ uU1.20498561
@mantis.golden. net:
The ignorant are forced to guess because they lack the tools to know. They
generally guess wrong.


Please, tell us of your outstanding scholarly achievements.

--
Lyle

Nov 12 '05 #7
What I really meant was, why do people say that no commercially available
product is fully relational? In what ways are the things we can buy not
relational.

Yours, Mike MacSween

"Steve Lefevre" <le********@osu .edu> wrote in message
news:bk******** **@charm.magnus .acs.ohio-state.edu...

"Mike MacSween" <mi************ ******@btintern et.com> wrote in message
news:3f******** *************@p ubnews.gradwell .net...
I frequently hear that there isn't a commercially available dbms that fully
implements the relational model. Why not? And which product comes

closest.

My guess is that no one really needs the full relational model. Take MySQL
for example. It lacks some pretty basic relational features, but a lot of
people, including me, find it good enough for many tasks.

So, even if Oracle ( which I guess is the most feature-rich DBMS out there ) isn't really the whole relational model, no one seems to care. Users would
rather have features like clustering, fail-over and load balancing, so
that's what Oracle is implementing.

I'm thinking the relational model is an abstract-academic-mathematical
thing, and we only need to use parts of it to get some value out of it.

Steve Lefevre

Nov 12 '05 #8
si******@besty. org.uk (Trevor Best) wrote in
<rs************ *************** *****@4ax.com>:
Whether or not the dbms enforces that model is not important, it's
not the dbms' job to design the database. There are degrees to
which a dbms will enforce or even support such concepts, e.g.
DataEase had relationships, later versions had a laughable attempt
at RI on cascade deletes with a choice of delete the childen,
disallow the delete, set the foreign key to null or do nothing,
obviously the last two choices are as much use as a fishnet condom
but a user could skip around the first two by hitting shift+F1
then deleting.


SET TO NULL on delete is actually useful.

Say you have two tables, Person and Company. In the Person field is
a CompanyID foreign key that points to the employer. Say a company,
oh, how about, Enron, has CompanyID 1234 and there are 1,000 people
who are employed there. Say Enron goes bankrupt and ceases to
exist, so you delete Enron from the company table. That means all
the people with CompanyID 1234 are unemployed, so setting their
CompanyID to Null is exactly the right thing to do.

Now, that's an oversimplified example, as with the entities
described you're much more likely to want to preserve more data
than that. You'd probably implement as a table that is a
many-to-many join between Person and Company. You probably won't
use PersonID + CompanyID as primary key, because you'll probably
want to allow for someone to leave a company and then return later,
perhaps after having another job. And I can't think of a valid
applicaton of SET TO NULL in that schema.

But the point is: in any case where the FK is not required, and you
are allowed to delete the parent record, there is possibly a real
use for SET TO NULL.

--
David W. Fenton http://www.bway.net/~dfenton
dfenton at bway dot net http://www.bway.net/~dfassoc
Nov 12 '05 #9
On Fri, 19 Sep 2003 17:40:25 GMT in comp.databases. ms-access,
dX********@bway .net (David W. Fenton) wrote:
si******@besty .org.uk (Trevor Best) wrote in
<rs*********** *************** ******@4ax.com> :

SET TO NULL on delete is actually useful.

Say you have two tables, Person and Company. In the Person field is
a CompanyID foreign key that points to the employer. Say a company,
oh, how about, Enron, has CompanyID 1234 and there are 1,000 people
who are employed there. Say Enron goes bankrupt and ceases to
exist, so you delete Enron from the company table. That means all
the people with CompanyID 1234 are unemployed, so setting their
CompanyID to Null is exactly the right thing to do.
Not really, if you were interested at all in these unemployed
layabouts <g> then you'd have a header reacord for say "DSS" (or
whatever you call it in your country) and move those people to there
before deleting the company. Whether you did nothing or set to null
you'd still orphan the records, they'll most likely not come out
anywhere on any reports, etc.
Now, that's an oversimplified example, as with the entities
described you're much more likely to want to preserve more data
than that. You'd probably implement as a table that is a
many-to-many join between Person and Company. You probably won't
use PersonID + CompanyID as primary key, because you'll probably
want to allow for someone to leave a company and then return later,
perhaps after having another job. And I can't think of a valid
applicaton of SET TO NULL in that schema.
That's a possibility, good for moonlighters too :-)
But the point is: in any case where the FK is not required, and you
are allowed to delete the parent record, there is possibly a real
use for SET TO NULL.


Again I'd disagree, if you really wanted to set the FKs to null then
do it in code, I couldn't think of a reason why you would want to do
that *every* time you deleted a record. It just looked like a feature
that no-one asked for.

--
A)bort, R)etry, I)nfluence with large hammer.
Nov 12 '05 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

34
7030
by: yensao | last post by:
Hi, I have a hard time to understand difference and similarities between Relational database model and the Object-Oriented model. Can somebody help me with this? Thank you in advance. Yensao
0
2291
by: Stylus Studio | last post by:
DataDirect XQuery(TM) is the First Embeddable Component for XQuery That is Modeled after the XQuery API for Java(TM) (XQJ) BEDFORD, Mass.--Sept. 20, 2005--DataDirect Technologies (http://www.datadirect.com), the software industry leader in standards-based components for connecting applications to data and an operating unit of Progress...
1
2180
by: Tim Fierro | last post by:
Hello, I have had many years using flat file databases (File Express from way back) but am now at a company where a relational database is needed and would carry us into the future. Since I know some basics on databases, have VB Pro programming experience over the years, and I know most of what we need to carry as far as data; I have...
6
1640
by: Shwetabh | last post by:
Hi, I have a very simple question. In what cases are relational databases necessary? Are they really necessary in cases where only a single type of query is to be performed based on one unique field or can we just put all fields together in a single database and just access them through that unique field?
7
3780
by: Fred Exley | last post by:
I have a traditional application using a database and procedural code that works fine. I'm re-writing it using the OOP methodology, just to see how this may be the better way to do things. I think I've got a pretty good grasp of the three pillars of OOP, and have objects properly defined using inheritance, encapsulation, etc. as appropriate....
13
1591
by: sulyokpeti | last post by:
I have made a simple python module to handle SQL databases: https://fedorahosted.org/pySQLFace/wiki Its goal to separate relational database stuff (SQL) from algorythmic code (python). A SQLFace is a facade initialized with a configuration file (XML). It provides callable command objects for each sql query. The call substitutes template...
0
7399
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7729
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
0
5880
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then...
1
5258
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
4884
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3385
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3386
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
952
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
626
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

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.