## The Forum for Discussion about The Third Manifesto and Related Matters

Forum breadcrumbs - You are here:

# Codd's remainder

Quote from p c on June 30, 2019, 2:17 am

Instead it raises the old question of join deletes and misapplies demorgan's law. Where Codd's algebra is concerned the misapplication depends on the same old pop logic which presumes that it is necessary to decide which tuples are not in the result extensions rather than which ones are.

Had you actually bothered to think through my definition of complement (relative to universal relation) then you would have realized that deciding "which tuples belong in the extension" is the very same thing as deciding "which tuples do not belong in the extension", i.e. "which tuples belong in the complement".  One derives from the other as the other derives from the one per the equation I already gave.

BTW My mastery of the language of English is not sufficient to assess whether "pop logic" (and later "pop argument") constitutes an insult / personal attack or not.  I do suspect it does though, and I would like one of the native speakers here to pronounce.

Quote from p c on June 30, 2019, 2:17 am

Nobody has ever questioned the generalized deductive validity of demorgan when applied with suitable premises. Regarding premises, just exactly what are the universes you refer to and what are the negations? Note that Codd didn't mention universes but domains instead, as in function domains. Note also that his algebra provides no way to negate a relation, it only provides a way to tell whether a given extension can be inferred or deduced or not from some other extension, for example when A join B equals A, A can be inferred from B, otherwise it can't.

The deductive validity of DeMorgan exists, period.  It does not pertain to you to reduce the scope of its "validity" by appending vague handwavy clauses such as "when applied with suitable premises".  The premises are suitable if the sets it is applied to are defined clearly and unambiguously, as per e.g. the definition of "complement" I already provided upfront but which you seemingly chose to neglect.  If you don't agree, then define "suitable" please (and write the answer in latex, you would not believe how much it aids clarity.)

"Codd's algebra" might not have provided a way "to negate a relation", but in that case : I did and I still do.  No doubt many others have given the exact same definition long before me.  "Read only Codd" is the most certain way to remain stuck in the thinking and technology of the sixties.  No wonder people who will "read only Codd" think there has been no progress.

Quote from p c on June 30, 2019, 2:17 am

Let's go along with the apparent presumption in the pop argument that the sets A and B can be equated with relation extensions so suppose the A and B in your argument stand for equal singleton relations. Without any other assumptions the dbms must allow for the possibility that those relations have equal predicates, say PA = PB.

No, they do not stand for "singleton relations that are necessarily equal".  Assuming that they are and then considering the consequences is a case of "cart before horse".

The DBMS ***cannot be concerned*** with the possibility that "those relation things have equal predicates".  That being the case is a violation of McGoveran's POOD.  Every knowledgeable designer will do his best to avoid such violations, but where McGoveran gets it wrong is that "there will still be 0.01 % of designers left who will still make mistakes against it and therefore we have to introduce automated ways of making it impossible for those 0.01% to make that mistake", and to this day the only way he can achieve that is to make "the heading determine the membership condition", which is unacceptable for all the reasons that should have been obvious from the shop/alarm example.

Quote from Erwin on June 30, 2019, 12:07 pm

BTW My mastery of the language of English is not sufficient to assess whether "pop logic" (and later "pop argument") constitutes an insult / personal attack or not.  I do suspect it does though, and I would like one of the native speakers here to pronounce.

This native speaker is appreciative of the new web forum such that I don't have to clear Paul's screed out of my Inbox. I doubt Paul is capable of meaning anything (insult or not) today any more than he's meant anything over several years. It's drivel. Don't read it; don't reply to it. Perhaps there was a time (on c.d.t.?) when Paul made some sense; and if so perhaps you [Erwin] are still conditioned to expect sense. If there was a time, it's older than any archive I've come across.

I presume 'pop' is short for 'popular'. I recognise only two forms of logic/argument: conclusions correctly drawn from premises; or not.

Thank you for doing those tests. Except for the pale text most of my difficulties were with the Chrome browser on Android. I see now that if I activate the physical keyboard on Chrome OS I can paste and Reflow. In my case it's too bad that Chrome OS is too cumbersome for most of my purposes for example the Android version has Superior dictation accuracy. Much of the Chrome OS interface can't be zoomed for example the URL area and the menus so I haven't been able to recognize some of the options without using a magnifying glass. I guess if I really need to read something closely I can get by with opening up Chrome OS and activating the physical keyboard. For infrequent use I guess I can put up with all the formatting clutter and use zoom to make the text seem less pale.

As for data independence which Codd introduced in the first paragraph of the 1970 paper many academics and other writers do not understand it the way it needs to be understood so you have plenty of company. The meaning became more clear with the deletion examples in his 1990 book, also for the relevance of inverse functions. I would say that Date perhaps helped to cloud things by trying to say too much, mentioning mappings being involved and so forth.

I could try to give a reason for why this has happened by saying that it appears that most people in the IT world tend to read Codd in the same pedantic way that lawyers read legal codes. It is more useful to read him with the same provocative spirit he wrote in, a constructive spirit, earnest in the best sense.

In his description and definition of natural join he also defines what he called joinable relations. He mentions a join which he writes as R*S, R and S being joinable. Fast forward to Date's usual  S & SP  relations. No doubt a lawyer would interpret Codd to mean that if a user writes S join SP, S and SP must be joinable in the same sense which the usual example values aren't. Some lawyers call this a plain reading. A slightly more subtle reading involves asking the question "if the named relations aren't joinable, what relations do they indicate that are joinable?"

In the usual examples the S relation is a disjoint Union structure resulting from the storage optimization technique known as normalization. When it is understood that the actual joinable relations are SP and a subset of S a context arises that undoes the storage optimization, the full power of natural join is realized and the operation enforces data independence on the union structure.

Quote from p c on June 30, 2019, 2:02 pm
Thank you for doing those tests. Except for the pale text most of my difficulties were with the Chrome browser on Android. I see now that if I activate the physical keyboard on Chrome OS I can paste and Reflow. In my case it's too bad that Chrome OS is too cumbersome for most of my purposes for example the Android version has Superior dictation accuracy. Much of the Chrome OS interface can't be zoomed for example the URL area and the menus so I haven't been able to recognize some of the options without using a magnifying glass. I guess if I really need to read something closely I can get by with opening up Chrome OS and activating the physical keyboard. For infrequent use I guess I can put up with all the formatting clutter and use zoom to make the text seem less pale.

I don't have anything with Chrome OS. I have Android, iOS, MacOS, Linux (Ubuntu), and Windows 10. On all of these, I've been able to successfully zoom in and thus enlarge all text and icons. I presume Chrome OS also has some mechanism for zooming the browser content?

I note that the zoom facility on all of these only enlarges the browser content -- which in this case is the forum. It doesn't affect the URL and operating system menus, but I wouldn't expect it to.

Regarding pop logic, I lifted it from Alan Kay who claims that computer science is not a science but merely pop culture. I don't think he is completely right but there is a lot of truth in that. Just for fun, I can offer some pop psychology as well.

Of course most people do not like to be told they are  saying or doing something wrong and especially not seeing the big picture. it can be quite painful to recognize one's limitations. I've known many coders who got quite angry for example when several of them claimed that a register machine could not implement a stack even after they had been introduced to a 370 C implementation as well as a 370 Unix implementation. Before system 360 was introduced IBM made a point of publicizing the very simple technique for supporting stack frames transparently with a register machine.

This is not to knock coders. I was employed as a so-called programmer for almost five years before it dawned on me that I wasn't one I was basically a coder and mostly I remained one for the next 20 + years. it seemed that it took me much longer to fully understand problems then most of the people I worked with. I started surrounded by people who had grown up from programming unit record plug boards. They had only one way to solve any problem and often one way to solve many problems. I was indoctrinated with all of their  techniques which I thought of as rules of thumb, partly because I just liked the double meaning in the ROT acronym.  Bit by bit I realized that many of those techniques had big holes when they were applied too generally.

Over all that time I came to think of coders as people who apply Solutions and programmers as people who define problems. In all, I worked closely with many dozens of coders and perhaps half a dozen programmers. Most programmers can code too, there just aren't many of them. On average the difference in productivity is exponential. Not having much aptitude for anything in particular I was satisfied just to understand the differences between the two mentalities which are distinct psyches and to practice comparing the different solutions in my slow way. I considered myself very lucky to also know exactly four of the rarer class I think of as system thinkers. None of them were very famous but a few famous ones were Codd, Djikstra and Gerald Weinberg who wrote several books about system thinking. they see dimensions that most of us are blind to. That aptitude can also be a curse. I knew exactly one person who had all three aptitudes. He was so strong in each that if you could focus him on one he was brilliant. His problem was that without help he could never decide which talent to focus on.

It is an absolute cultural disaster for society that school boards emphasize coding rather than mathematical thought.  A large percentage of the population has strong aptitude for coding even though most Educational Systems are unable to exploit it. Edward de Bono made a nice comparison between the sharp-eyed chicken and the nearsighted one. The sharp-eyed one wasted much time trying to poke through the chicken wire to get at the feed on the other side. Before he ever succeeded the nearsighted one had stumbled around the end of the wire and got into the feed. He then asked the obvious question, which one was smarter? Some of the most productive coders I've known had degrees which had nothing to do with computer science. They got into IT simply because there was more money in it. Most of them were successful almost immediately even though they lacked any computer science formal training.

Understanding the differences is important for knowing which types are most suitable for different jobs. Psychologically, coders prefer to live in a small world and they happen to be very good at coping with extremely arbitrary mechanisms such as the HTML DOM. Other psychological dimensions matter as well for example learning styles are better understood than the categories I mention and knowing them is very useful for establishing efficient project teams.

Quote from Dave Voorhis on June 30, 2019, 2:57 pm
Quote from p c on June 30, 2019, 2:02 pm
Thank you for doing those tests. Except for the pale text most of my difficulties were with the Chrome browser on Android. I see now that if I activate the physical keyboard on Chrome OS I can paste and Reflow. In my case it's too bad that Chrome OS is too cumbersome for most of my purposes for example the Android version has Superior dictation accuracy. Much of the Chrome OS interface can't be zoomed for example the URL area and the menus so I haven't been able to recognize some of the options without using a magnifying glass. I guess if I really need to read something closely I can get by with opening up Chrome OS and activating the physical keyboard. For infrequent use I guess I can put up with all the formatting clutter and use zoom to make the text seem less pale.

I don't have anything with Chrome OS. I have Android, iOS, MacOS, Linux (Ubuntu), and Windows 10. On all of these, I've been able to successfully zoom in and thus enlarge all text and icons. I presume Chrome OS also has some mechanism for zooming the browser content?

I note that the zoom facility on all of these only enlarges the browser content -- which in this case is the forum. It doesn't affect the URL and operating system menus, but I wouldn't expect it to.

I can zoom with Android Chrome but not reflow. On Chrome Os, it is very similar to what I vaguely remember from Windows five or more years ago. Chrome Os is not especially important to me, it just has a couple of specialized features I like occasionally.

Quote from p c on June 30, 2019, 3:30 pm
Quote from Dave Voorhis on June 30, 2019, 2:57 pm
Quote from p c on June 30, 2019, 2:02 pm
Thank you for doing those tests. Except for the pale text most of my difficulties were with the Chrome browser on Android. I see now that if I activate the physical keyboard on Chrome OS I can paste and Reflow. In my case it's too bad that Chrome OS is too cumbersome for most of my purposes for example the Android version has Superior dictation accuracy. Much of the Chrome OS interface can't be zoomed for example the URL area and the menus so I haven't been able to recognize some of the options without using a magnifying glass. I guess if I really need to read something closely I can get by with opening up Chrome OS and activating the physical keyboard. For infrequent use I guess I can put up with all the formatting clutter and use zoom to make the text seem less pale.

I don't have anything with Chrome OS. I have Android, iOS, MacOS, Linux (Ubuntu), and Windows 10. On all of these, I've been able to successfully zoom in and thus enlarge all text and icons. I presume Chrome OS also has some mechanism for zooming the browser content?

I note that the zoom facility on all of these only enlarges the browser content -- which in this case is the forum. It doesn't affect the URL and operating system menus, but I wouldn't expect it to.

I can zoom with Android Chrome but not reflow.

Are you using the pinch zoom gesture, i.e., pinching two fingers to zoom out and widening two fingers to zoom in?

If so, you're not zooming Android Chrome but the Android display of the browser content. Reflow doesn't take place because the browser essentially doesn't even know zooming is happening.

In Android Chrome, the closest you can come to zooming within the browser is probably Settings | Advanced | Accessibility | Text scaling.

Quote from Erwin on June 30, 2019, 12:53 pm
Quote from p c on June 30, 2019, 2:17 am

Let's go along with the apparent presumption in the pop argument that the sets A and B can be equated with relation extensions so suppose the A and B in your argument stand for equal singleton relations. Without any other assumptions the dbms must allow for the possibility that those relations have equal predicates, say PA = PB.

No, they do not stand for "singleton relations that are necessarily equal".  Assuming that they are and then considering the consequences is a case of "cart before horse".

The DBMS ***cannot be concerned*** with the possibility that "those relation things have equal predicates".  That being the case is a violation of McGoveran's POOD.  Every knowledgeable designer will do his best to avoid such violations, but where McGoveran gets it wrong is that "there will still be 0.01 % of designers left who will still make mistakes against it and therefore we have to introduce automated ways of making it impossible for those 0.01% to make that mistake", and to this day the only way he can achieve that is to make "the heading determine the membership condition", which is unacceptable for all the reasons that should have been obvious from the shop/alarm example.

I offered a supposition which I thought was one simple illustration of the rather spare situation I gave without any assumptions other than what I stated.You seem to be suggesting that it is an impossible supposition based on your introduction of a principal that was not even mentioned.

Granted, you can alter any situation by saying it must depend on some additional principle. With enough additional principles you can make it seem that Niagara Falls flows backwards. But to do that you don't need to tack on more principles, All you need is a deductively valid argument.