[Gambas-user] [slightly OT] No Problem with Gambas or MySql!

Fernando Martins fernando at ...3175...
Sun Oct 6 00:52:26 CEST 2013


On 10/06/2013 12:05 AM, Caveat wrote:
>>> "duplicate rows are and always were a mistake in SQL", C.J.Date
> The guy has obviously never read William Kent's "Data and Reality". It's
> a book I'd still recommend to anyone working with data and particularly
> databases, even though it was written 35 years ago!
Thanks for the reference. Anyway, you know CJ Date is the guy the who 
mainly created relational databases, while everyone was laughing saying 
it would never be fast?
> <RANT>
> Why *must* every record be uniquely identifiable?  Explain why... don't
> just throw random snippets of relational database theory at me!  If I
> ask you to model the contents of your pockets on a database, are you
> going to attach some artificial key to each individual penny?  Why?
> They each buy the same number of penny chews (showing my age!), and if
> you take 3 pennies away, you've still got 3 pennies less than you had
> before, no matter how carefully you select those 3 pennies!
> </RANT>
It must not. I think most DBMS if not all, allow for it. It just means 
that if you do allow for duplicates, your data model does not follow the 
relational model which is based in set theory. Sets do not have 
duplicates (collections do). The SQL operators follow (in general) the 
set operators. Therefore, when you specify a record in a WHERE criteria 
using all the fields/values of the record, SQL assumes it is unique and 
therefore the DBMS considers all duplicates the same, which might not be 
the intended as in the case of Willy Raets.
> <HINT>
> A tuple is, by definition, unique.  If I have 8 rows on my database
> representing 8 real-world penny objects and I can delete 3 of them...
> are the remaining 5 rows tuples?  How closely does the database model
> reality in this case?
> </HINT>
Tuples are unique when refering to the theoretical model. If you have 
duplicates, then the records are unique (they use different storage 
locations), but they are certainly not unique according to the 
relational model which only cares about the fields themselves. And the 
relational model is all about reducing redundancy of data to minimise 
data inconsistency.

What is important is what you want to model. If you want to model a 
purse and all pennies are the same, then the relational model says you 
have a schema (coin_type, quantity). Spend a penny? Reduce quantity. 
What is the point of having multiple records for the same concept?

However, if you want to model a coin collection, then most likely each 
penny should be registered differently. They could be distinguished by 
year. And if the year is the same, distinguish by date of acquisition, 
etc. Well, if there is no way to distinguish, you would still use quantity.

Regards,
Fernando




More information about the User mailing list