Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!uunet!cimshop!davidm From: cimshop!davidm@uunet.UU.NET (David S. Masterson) Newsgroups: comp.databases Subject: Re: Relational Databases Message-ID: Date: 21 Jun 91 17:44:34 GMT References: <6822@vela.acs.oakland.edu> <1991Jun07.063749.7904@chinet.chi.il.us> <599@clbull.frcl.bull.fr> Sender: davidm@cimshop.UUCP Distribution: comp Organization: Consilium Inc., Mountain View, California Lines: 59 In-reply-to: antoine@cl.bull.fr's message of 20 Jun 91 08:41:18 GMT >>>>> On 20 Jun 91 08:41:18 GMT, antoine@cl.bull.fr (Antoine Haraoui) said: Antoine> I have read some of the given definitions for a RDB. Actually those Antoine> are rules for designing an Entity/Relationship model rather than Antoine> definitions. If we are going to talk about normalisation so why not Antoine> talk about integrity and consistency rules... When talking about a relational model, these are all things that should be considered, otherwise you've short-changed yourself on your implementation of a relational database. Antoine> In my (and some others) opinion a RDB is : Antoine> 1- A database where the files are seen as tables and nothing but Antoine> tables. i.e. rows and columns. As Codd points out, thinking of a relational database as modeling a collection of tables is, strictly speaking, incorrect. Tables tend to denote some order and are much more loosely defined than a mathematical relation. For instance, its quite possible to have duplicate rows in a table whereas a "true" relation must not. Antoine> 2- All fields are atomic. In other words, there is only one value at Antoine> any column-row intersection. Quite correct, although the definition of "atomic value" is still open. Some want to extend that to include objects, but then the question of what is an object is opened... Antoine> 3- It supports at least the selection, projection, and natural join Antoine> relational operators. What about update operators? Actually, just talking about these three operators opens questions about NULL support and integrity constraints. Antoine> Any database respecting those three rules is considered to be Antoine> relational. We can go ahead and talk about first, second, third, Antoine> Boyce-Codd, fourth, ... normal forms. As well as integrity and Antoine> consistency rules... But then we will be talking about a totaly Antoine> different subject; We will be talking about given a set of data, how Antoine> can we have a good design to represent those data in a relational Antoine> database. After all even the conventional so called 3rd generation Antoine> designs can be normalised! True, but then again you can also do object oriented programming in assembler! The point of these normalization forms and integrity and consistency rules was that, for a relational database to be truly useful, it should conform to all these points. If a database doesn't conform, then chances are that some part of the relational model is not as useful as it could be in this database. For instance, violation of integrity rules may cause join operations to provide the wrong results. -- ==================================================================== David Masterson Consilium, Inc. (415) 691-6311 640 Clyde Ct. uunet!cimshop!davidm Mtn. View, CA 94043 ==================================================================== "If someone thinks they know what I said, then I didn't say it!"