• =?UTF-8?Q?=22Theoreticians=E2=80=9D?= are Clueless about Relational

    From Nicola@21:1/5 to All on Wed Mar 31 11:57:59 2021
    On 2021-03-29, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com>
    wrote:
    Introduction

    When it came out in 1970, the Relational Model (Codd, not the
    pretenders) made a paradigm shift in all areas of perceiving data (examination; data modelling; storage and retrieval; programming).
    Codd had an uphill battle against the established academics because
    they could not understand it,

    I don't think that's a fair assessment. Who are those "established
    academics" you mention? *Some* academics may have had issues with Codd's proposal, but it was definitely understood, and supported, by many other academics. And certainly at a greater degree than people in industry.
    This is confirmed by those who were there:

    https://archive.computerhistory.org/resources/access/text/2015/06/102702111-05-01-acc.pdf

    E.g., quote from p. 8:

    "So Codd's paper got some traction in the academic community where these mathematical concepts were very familiar. It didn't, at first, get much traction in the commercial database community. They had their
    navigational systems. [...]"

    Another first-hand historical perspective is provided by:

    https://www.mcjones.org/system_r/sql_reunion_95/sqlr95.html

    Quote from the "Prehistory" section:

    "[...] Nevertheless, what kicked off this work [on project Gamma-0 and, eventually, System R] was a key paper by Ted Codd - was it published in
    1970 in CACM?

    - Yes.

    - A couple of us from the Systems Department had tried to read it -
    couldn't make heads nor tails out of it. [laughter] At least back
    then, it seemed like a very badly written paper: some industrial
    motivation, and then right into the math. [laughter]"

    Those are not academics talking.

    Regarding the rest of your historical comments, I do not have anything
    to add or object to. Except, perhaps, that the best DBMS in the world apparently survives in legacy mode now.

    The point of this thread.

    Let's come to the point.

    On Wednesday, 24 March 2021 at 23:27:48 UTC+11, Nicola wrote:
    One reason is Chen's Entity-Relationship models are likely perceived
    as easier to grasp for novices than something like IDEF1X. Whether
    that is a correct perception, it can be debated. Another reason is
    probably just historical, due to the huge influence of Chen's seminal
    paper.

    It may have been seminal for the academics, let me assure you, it was
    not seminal, or even great, for practitioners of the day. It does not
    have a semantic base, whereas the /RM/ and IDEF1X does.

    For academics. I can grant, up to 1970, the paper was amazing. After
    1970, it was ageing, badly. By 1983, it was dead; obsolete; defunct; superseded.

    Uh? Chen's ER paper is from 1976. That was a period of intense research
    on so called "semantic modelling" (also spurred in part by Codd's work).
    IDEF1X relies heavily upon Chen's shoulders. I'd say that the paper has
    aged pretty well as we (let me simplify a bit) are still modelling in
    terms of entities, relationships and attributes.

    IMO, you are conflating the overall contributions of Chen (and others
    working on semantic models), which are important, influential and still relevant, with the specific details of the notation he invented, which
    is not ideal for Relational database design.

    Ok, to rephrase the question, why was that pre-Relational method being
    taught after 1983, and why is it still being taught after the advent
    of the /RM/, after the /RM/was proved, and after the first genuine SQL platforms came out (1983), and after IDEF1X came out (1983 to
    practitioners, 1989 as a product, 1993 as an international standard) ?

    I already told you my point of view.

    Come out with a good database book, with a modern, sound, approach to
    data modeling based on IDEF1X, and tell your publisher to send a copy
    for evaluation to all academic database researchers. There is no
    inherent reason why it should not get adopted because it dismisses ERDs
    in favor of IDEF1X. Quite the opposite, actually. There is much need for
    a really good reference on database design for the XXI century. I can't recommend anything off the top of my head.

    after IDEF1X came out [in...] 1993 as an international standard)

    The FIPS standard has been withdrawn by NIST in 2008. But IDEF1X has
    also been an IEEE standard since 1998, and an ISO/IEC/IEEE standard
    since 2012.

    In a general setting, ERD is fine for teaching the basics of
    modeling

    ERDs can be useful as a gentle introduction to such topics.

    ERD can be introduced without any background knowledge in databases

    For introductory levels, show them IDEF1X/Entity level.

    Sure, I do that.

    Some may feel IDEF1X is "low-level" (too many details) compared to
    ERDs.

    False: display only the level of detail necessary for any given
    exercise {Entity|Key|Attribute}.

    I agree. I did not mean to imply that I think otherwise; just that
    a cursory look by someone who knows ERDs but not IDEF1X may lead to such remarks.

    Or some may have criticisms along the lines of this analysis:

    https://www.essentialstrategies.com/publications/modeling/idef1x.htm

    God help me. Academics just love to sabotage themselves, and then cry
    about the fact that they have been sabotaged.

    Just brought it as an instance of what a superficial look at the
    notation may lead to. I do not think that it is a good critical analysis
    in any way. And not by an academic either.

    My main complaint with IDEF1X is the treatment of generalization
    hierarchies, in particular the lack of a correct way to model a total
    inclusive specialization (A must be one of B1, ..., Bn and it may be
    any of B1, ..., Bn); the approach I have seen around (e.g., see
    Thomas Bruce's book or ERwin's manual) does not cover such case in
    a sound way. And the standard never mentions inclusive
    specializations, AFAICT.

    The problem there is, you do not understand Transactions

    Look, as much as it may be disappointing to you: I know. Very well.
    I know, in particular, how to deal with specialization hierarchies transactionally.

    There are several threads in this forum that simply do not progress to closure due to the unwillingness of academics to engage, and to learn
    about ACID Transactions.

    Yes, I did not feel those discussions were going towards fruitful
    directions. But, time permitting, I might eventually return on the MVCC
    vs 2PL matter.

    This document may assist somewhat in explanation, noting that the full
    and formal explanation lies in ACID Transactions, which has not
    progressed in this forum, and indeed in academia, since 1970.

    https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/Subtype.pdf

    If there is anything in that doc that is not completely understood,
    please ask.

    That's perfectly clear.

    (“If you drew all the relationships without dashed lines, you would
    still be able to interpret your model in the same way"). I found it
    difficult sometimes to convince them that such a distinction is
    important.

    Only in the early stages of data modelling. Once the Keys are
    exposed, and worked, which is the bulk of the modelling exercise, that distinction is exposed, and difference is plain.

    When engaging the modelling exercise fully, meaning, in order, FOPC;
    the /RM; and IDEF1X as the rendition, and as you confirm “meaning is king”, you may realise: - the solid lines define ownership (Extension,
    of the Matter of the parent) - the dashed lines define classification (imposition of the Form of the parent)

    That's clear, too.

    Another criticism about IDEF1X is the lack of many-to-many
    relationships (except in "Level 1"/"ER" diagrams), which sometimes
    makes it awkward to read a relationship, because it is more natural
    to skip the intermediate associative entity.

    You have the right idea, but not the precise method.

    I'm good with your explanation, thanks.

    In your model, each teacher must always be assigned to at least
    one course. With

    (a) such an (unrealistic) constraint, *and*
    Why is that constraint “unrealistic” ? In the real world, it is
    a common; even pedestrian, requirement. We have been implementing
    such in Relational databases since 1983.
    I was thinking more in terms of "department employees", one of whose
    duties may be teaching (but they may not be teaching all the time).
    But sure, you may think in terms of employees who teach (a subset of
    all the employees): then they must teach something, of course.

    Sorry, that is not what I meant.

    Let me rephrase the question. Why do professors commonly labour and
    state that a 1::1-to-n relation is difficult, why do they pretend it
    is uncommon ?

    Ah, ok. Yes, on this point I agree that it depends on people not
    thinking transactionally. I did *not* mean that 1::1-to-n constraints
    are unrealistic!

    Here is a quick document that clarifies the issues you questioned,
    that I have answered. To be complete, I have added an item re
    Rolenames, because it is the third common “issue” that people raise: https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    A question: what is the use case for an association that does not imply
    a foreign key (rightmost symbol in your "improved IE")? Why would you
    require a parent entity to exist at the time of insertion, but not
    later?

    Regarding subtyping, my critique is specifically on the notation given
    in ERwin Methods Guide at the crossing of "Complete" with "Inclusive
    Subtype". Let me denote the specialization symbol with `-O||`, and
    a categorization cluster with `P -O|| {C1, ..., Cn}`.
    By definition, P -O|| {C1, ..., Cn} means:

    "P must be exactly one of C1, ..., Cn".

    If an entity P has two ore more clusters, each should be interpreted as
    above. For instance:

    P -O|| {A,B}
    P -O|| {C,D}

    reads as:

    - P must be (exactly) one of A and B; and
    - P must be (exactly) one of C and D.

    The notation I'm criticizing corresponds to:

    P -O|| {A}
    P -O|| {B}

    which, by the definition above, one should read as:

    - P must be A; and
    - P must be B.

    Instead, the assumed interpretation is:

    - P must be A or B; and
    - P may be both A and B,

    which is inconsistent with the general definition.

    I don’t know how you don’t strangle your colleagues.

    It's for fear of law enforcement :D

    Jokes apart, my database colleagues are among the best people in my
    department!

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Nicola on Wed Mar 31 15:54:50 2021
    On 2021-03-31, Nicola <nicola@nohost.org> wrote:
    Regarding subtyping, my critique is specifically on the notation given
    in ERwin Methods Guide at the crossing of "Complete" with "Inclusive Subtype". Let me denote the specialization symbol with `-O||`, and
    a categorization cluster with `P -O|| {C1, ..., Cn}`.
    By definition, P -O|| {C1, ..., Cn} means:

    "P must be exactly one of C1, ..., Cn".

    If an entity P has two ore more clusters, each should be interpreted as above. For instance:

    P -O|| {A,B}
    P -O|| {C,D}

    reads as:

    - P must be (exactly) one of A and B; and
    - P must be (exactly) one of C and D.

    The notation I'm criticizing corresponds to:

    P -O|| {A}
    P -O|| {B}

    which, by the definition above, one should read as:

    - P must be A; and
    - P must be B.

    Instead, the assumed interpretation is:

    - P must be A or B; and
    - P may be both A and B,

    which is inconsistent with the general definition.

    More precisely, it is inconsistent with IDEF1X's ISO (or FIPS) standard.

    In a previous post I wrote that ERwin's (i.e., Bruce's) interpretation
    is not sound. That is not correct. The interpretation above is well
    defined. It is not entirely satisfying, though, because it introduces an exception in the interpretation of the complete categorization symbol:
    the "completeness" (in the sense that each instance of the parent must
    be an instance of one of the children) applies to the whole cluster
    *set*, as opposed to each single cluster, when clusters have one child.
    For instance, the figure from ERwin's Guide has two single-child
    clusters:

    +-----------+
    | P |
    +-----------+
    | |
    +--- ---+
    | |
    O O
    ----- -----
    ----- -----
    | |
    +---------+ +---------+
    | A | | B |
    +---------+ +---------+

    and the assumed interpretation is that every instance of P must be an
    instance A or of B (or both), as opposed to "every instance of P must be
    A, and every instance of P must be B". The latter cannot be expressed
    under ERwin's interpretation, but it not very important, because if
    "every instance of P is always an instance of A" then A can be absorbed
    into P.

    IDEF1X's standard, on one hand, removes this exception, by stating
    explicitly that, in each complete categorization cluster, each instance
    of the parent must always be an instance of one of the children—even
    when the cluster has only one child.

    On the other hand, it makes it impossible to express the situation
    above, i.e., that "P must be A, B, or both" (complete + inclusive).

    I find it somewhat surprising that this aspect has not been clarified
    and addressed in the standard, which was last revised in 2019.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to confirms what I on Fri Apr 2 01:58:17 2021
    Nicola

    Thanks for yours.

    Before I get into it, let us understand something.

    In academia, academics know nothing of the industry, they have a contrived notion of “industry”, namely anyone who uses PissGreNONsql.

    Two exceptions. Codd, because he was a genuine academic who went beyond the academics of his time, and he had his head attached to reality (the commercial application). You, because you are trying to understand reality, and that sets you apart from the
    academics. The main block you have to get over is, the confidence that academics know reality, which is a total fiction.

    If Industry means all who use a DBMS, up to ten years ago, basically it excluded freeware, and they used commercial DBMS, PissGreNONsql was unheard of. Where freeware is used, MyNONsql leads the field. It still does, it is 1,000 times better than
    PooGoo while remaining in the same NONsql category. But academia only know about the “industry” that uses their pet excreta producer.

    Eg. in the Financial & Banking sector, Sybase has 95% share, with MSSQL the rest. Oracle cannot even compete. In high-performance markets (F&B being one category), it is Sybase and DB2, with MSSQL after a large gap. Oracle cannot compete. Freeware is
    unheard of, no one wants to execute at 10,000 times slower speed or rewrite their “sql” for every new version of the freeware. These are for databases that are permanent, not “refactored” every month or quarter, such as the ever-changing filth
    that OO/ORM crowd excretes, that academia caters for.

    So the market that uses freeware is really the start-ups, the dumb dumb dumb dumb dummies, ignorant of what commercial DBMS provide, aware of only that fraction of DBMS capability that academia bleats about. Start-ups that will not exist in ten years.
    No one cares about them. Except academia. Because they too, use PooGrossNONsql. And they too have no clue about ACID Transactions or Server Architecture or the features in commercial DBMS that their pet freeware does not have, and will never have.
    Same as the academics.

    In the commercial DBMS industry (ie. the DBMS suppliers), no one knows or cares about the academics, because they are, as evidenced, fifty years behind the industry. As evidenced, there is nothing that academics have come up with that has been
    implemented in commercial DBMS (except Codd, again). In Sybase (small company) I can assure you from decades of first-hand experience as a Partner, we have hundreds of PhD level scientists. It may even be 1,000, as the company has grown after the
    acquisition by SAP.


    Don’t include such things as the hysterical MVCC in that, because “MVCC” is not a real thing, it is a imaginary thing, collectively imagined and collectively assented to, by academia alone. All hail the imbecile Stonebraker and insist that he is a
    deity. As I posted in the “MVCC” thread, yes, due to the heavy marketing by academia, “MVCC” has become a check-box item, without being understood by those who request it. Thus Sybase have ADDED it on top of the [existing since 1960 in IBM;
    since 1977 in Britton-Lee; since 1981 in Sybase] Ordinary Locking (aka incorrectly called “Two Phased Locking” or “2PL” by the academics).

    To be clear, if the boffin insists of imagining something that is not real, no problem, we add a set of resources, and we erect his fantasy for him. Meanwhile, regardless of what the boffin does, regardless of what multiverse he is fornicating with his
    beloved sow in, if he executes an SQL verb that does something to the database, it is done in the normal [forty years extant] “2PL” so that he contends with the other users (who are probably not slaves of academia and thus have an attachment to
    reality, the database content), and resolves that contention, and ADDITIONALLY, we erect his fantasy on the ADDITIONAL resources, and provide/deny his attempt against his fantasy that we have erected for him. It is the way a kind and gentle mental
    health nurse provides care for her mentally ill and locked up patients, locked up because they insist fantasy is “reality”, which is dangerous to the public.
    <<<<

    The above are all general points. If you wish to challenge any of them, do so as general points.

    On Wednesday, 31 March 2021 at 22:58:03 UTC+11, Nicola wrote:
    On 2021-03-29, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Introduction

    When it came out in 1970, the Relational Model (Codd, not the
    pretenders) made a paradigm shift in all areas of perceiving data (examination; data modelling; storage and retrieval; programming).
    Codd had an uphill battle against the established academics because
    they could not understand it,

    I don't think that's a fair assessment. Who are those "established academics" you mention?

    The main fight was within IBM, with the likes of Date and Fagin, who pretended to be his supporters but as time has told, they are his subverters. There were others, more later.

    There is absolutely zero articles in academia reinforcing or progressing the /RM/. That is evidence, for FIFTY YEARS, that academia does not understand it. All the nameless freaks, save one. Likewise there is not a single book that honestly promotes
    the /RM/ or progresses it. All of them that purport to articulate “Relational Database” promote instead 1960’s Record Filing Systems, based on RM/T, as confirmed in another thread. Even here, you are the only one looking into genuine Relational
    Data Modelling. The rest promote anti-Relational pig poop.

    *Some* academics may have had issues with Codd's
    proposal, but it was definitely understood, and supported, by many other academics.

    Name one (prior to 1980, because that was the statement I made). After 1981, when Sybase came out, and the IBM product (many names) was established, yes, academia could no longer deny it.

    Try naming one paper written any time after 1970.

    And certainly at a greater degree than people in industry.
    This is confirmed by those who were there:

    https://archive.computerhistory.org/resources/access/text/2015/06/102702111-05-01-acc.pdf

    E.g., quote from p. 8:

    "So Codd's paper got some traction in the academic community where these mathematical concepts were very familiar. It didn't, at first, get much traction in the commercial database community. They had their
    navigational systems. [...]"

    That is not “industry”, that is one voice, and a self-serving one, an academic with no clue about the industry.

    I, who worked for one of the big five DBMS vendors at the time, and previously a specialist on DEC (PDP; VAX) have already categorised it as false. Let me assure you that at Cincom, we had many scientists, many mathematicians, who had no problem
    understanding the /RM/. Yes, we saw the /RM/ as changing the entire landscape. We did not try to “relationalise” the product, thus we had no need to add anything to TOTAL, but the other DBMS vendors did. And that is why Codd had to write his
    famous Twelve Rules, to ensure that vendors were not fraudulently declaring that they were /RM/ compliant.

    (The has progressed to the problem we have today, where even though SQL is THE established Standard, all the freeware and oracle do not comply, but fraudulently declare that they do.)

    Likewise, let me assure you that DEC had hundreds of scientists, who understood and implemented the /RM/, their RDBMS called Rdb was brilliant. It still runs in legacy systems on VAX emulators, it still beats Orable by 10,000 times. I am not saying
    that emulators are good, but there is a market for it, patronised by corporations that do not fix what is NOT broken, which is why they still exist.

    That (what you quote) is typical of the propaganda that academia produce and swallow. Waht you might get from guys like me (or any scientist working for a commercial DBMS provider)is, the actual reality. Obviously the thousands of scientists who work
    for IBM; Sybase; MS, do not even bother with fora such as this, because academics are irrelevant to the real world platforms, only I do.

    Chamberlain contradicts himself all over the place, but you won’t catch it. He comes across as being a friend of Codd, but actually, if you examine it, he demeans Codd, sometimes quite subtely. Very dishonest. It is sad that academics view the
    Chamberlain memories as gospel. Identical to Date. Much like the Stonebraker stupidity, that has no commercial existence, but lives and thrives in academia and in freeware.

    On p12 para 2:
    “System R ... was not a product that was going to be released commercially. It was a feasibility demonstration. It was proof of the concept that Ted Codd's ideas actually made sense and could be implemented in a robust way. And there was a lot of
    skepticism about that.”

    So the simple evidenced fact, from Chamberlains own mouth, his “memories”, confirms what I said, and he includes himself in that category:

    Codd had an uphill battle against the established academics because
    they could not understand it

    On p8 para 1:
    “Ted thought that we should use this concept [relations] to allow users to interact with stored data in a way that was independent of the physical representation of that data. He called this notion //data independence//”

    And on p 8 para 3:
    “Codd introduced the notion of relations as an abstraction for stored data, and he explained about //data independence// and why that was important”

    The term in the /RM/ is Access Path Independence. Data Independence is quite a different thing.

    It is amazing to me, that Chamberlain enumerates all those great mathematicians who were employed by his employer, specifically to go beyond their existing product, but still insists that DBMS providers did not have mathematicians, and were only
    interested in protecting their market share. Only people who are trained to accept contradiction without question can believe such utter hypocrisy. Pig poop rots the brain.

    Here is what Chamberlain actually thought that the “industry” was; what the user base was, and his own admission that what he thought was absurd. Proving yet again that academics are clueless about the industry the purport to serve. p 17 para 5:
    “What Ray and I thought we were doing was making access to databases available to a new class of people that hadn’t accessed databases before. We thought they were going to be engineers and architects and city planners and economists, and people
    like that who were not computer people, not programmers. We thought that these people shouldn’t have to turn themselves into computer experts or programmers in order to ask questions. They should ask questions in this English-keyword notation that we
    called SEQUEL. So with words like SELECT and FROM and WHERE and GROUP BY and ORDER BY and so on, maybe you could teach that kind of notation to people who didn’t have any computer training at all, and weren’t much interested in computers. They were
    interested in their domain of expertise. They wanted to study economics or something like that, and they needed to retrieve statistical information about economics, and they needed a language to do that, but they didn’t need to be programmers. That’
    s what SEQUEL was intended to do. I don’t think it was very successful at doing that. If you look back on it from a perspective of 30 years later, I think you don’t find a lot of architects and economists and city planners writing SEQUEL queries.
    SEQUEL queries are mostly written by experienced programmers who are trained and specialized in doing that, and a lot of them are generated by machines through some kind of interface that’s specialized to some domain.”

    I am not suggesting that he, or any other academic at IBM Labs was stupid. Far from it. I am saying that as an academic, as evidenced, he has huge blind spots, eg. “industry”; “users”. And as is typical of academia, he is unaware that he has
    blind spots, and makes stupid declarations about them.

    Overall, notice the difference, Chamberlain and a host of others (academic but impractical), against Codd (academic and practical). Codd was the bad guy because “he wasn’t a team player”. Thank God for that.

    It is horrendous that he does not mention DSS queries in his discourse on that subject. In his /RM/, Codd provided both OLTP and DSS.

    Another first-hand historical perspective is provided by:

    https://www.mcjones.org/system_r/sql_reunion_95/sqlr95.html

    404 - Not Found.
    They probably realised that it was going to be inspected and removed the filth, because it would not withstand scrutiny.

    MCJones is the same idiot (nicely propagandised, well prepared) who interviewed Chamberlain, and who dutifully spouted the same propaganda. I don’t need to read it to know that it will be in the same vein.

    Quote from the "Prehistory" section:

    "[...] Nevertheless, what kicked off this work [on project Gamma-0 and, eventually, System R] was a key paper by Ted Codd - was it published in
    1970 in CACM?

    - Yes.

    - A couple of us from the Systems Department had tried to read it -
    couldn't make heads nor tails out of it. [laughter] At least back
    then, it seemed like a very badly written paper: some industrial
    motivation, and then right into the math. [laughter]"

    Those are not academics talking.

    Agreed. Those are not capable practitioners either.

    Again, at IBM; Cincom; Honeywell; DEC; Cullinane; etc, we had [academically qualified] scientists, rather than academics. And we laughed at academics and their isolation from reality even then. Nothing has changed, it is much worse now. Once a thing
    is in the toilet bowl, the only way forward, is down down down.

    Regarding the rest of your historical comments, I do not have anything
    to add or object to. Except, perhaps, that the best DBMS in the world apparently survives in legacy mode now.

    Yes. Corps that exist beyond the start-up ten years don’t fix something that is not broken. After 9/11, Wall Street corps scoured the world for 2GB disk drives. (I don’t know if you will appreciate the relevance of that.)

    The point of this thread.

    Let's come to the point.

    On Wednesday, 24 March 2021 at 23:27:48 UTC+11, Nicola wrote:
    One reason is Chen's Entity-Relationship models are likely perceived
    as easier to grasp for novices than something like IDEF1X. Whether
    that is a correct perception, it can be debated. Another reason is
    probably just historical, due to the huge influence of Chen's seminal
    paper.

    It may have been seminal for the academics, let me assure you, it was
    not seminal, or even great, for practitioners of the day. It does not
    have a semantic base, whereas the /RM/ and IDEF1X does.

    For academics. I can grant, up to 1970, the paper was amazing. After
    1970, it was ageing, badly. By 1983, it was dead; obsolete; defunct; superseded.

    Uh? Chen's ER paper is from 1976. That was a period of intense research
    on so called "semantic modelling" (also spurred in part by Codd's work). IDEF1X relies heavily upon Chen's shoulders.

    First let me clarify my statements above.
    For academics. I can grant, [if it were published] up to 1970, the paper was amazing.
    [Since it was published] After 1970, it was ageing, badly.
    By 1983 [when RDBMS platforms were freely available, several providers, AND IDEF1X was freely available], it was dead; obsolete; defunct; superseded.

    The fact that Chen published it in 1976, and that academics performed “intense research” is precisely what I was talking about. Hysterical absurdity, because the /RM/ was published and being accepted, because several vendors were coming out with
    genuine RDBMS Platforms. Anyone with half a brain (eg. the scientists at IBM; Cincom; DEC; and Britton-Lee) laughed at it, because we were implementing the /RM/, and because the /RM? was far superior to the idiotic ERD.

    Do you understand, and appreciate:
    - we had ISAM prior to 1960’s & 1970’s DBMS
    --- that means we understood KEYS
    - separate to being based on FOPC, and therefore a mathematical model, the /RM/ is based on (a) the extant HDBMS, and (b) the extant NDBMS, as detailed in this thread ?
    --- Hierarchical Model and its Relevance in the Relational Model
    --- https://groups.google.com/g/comp.databases.theory/c/5212JwYtip4
    --- HDBMS TECHNOLOGY IS HEAVILY KEY-BASED (of course, the storage is pointer-based)
    --- The /RM/ takes its notion of KEYS from HDBMS, and the notion of Independent/Dependent from NDBMS

    ERD is devoid of KEYS, of any understanding of KEYS, and since it was 1976, is [yet again] anti-Relational.

    That the academics salivated over it, and did their mutual circle-jerk with “intense research” is exactly what I am talking about: it is hysterical absurdity, that can only be done in reinforced isolation from reality, from the /RM/; from the actual [
    R]DBMS platforms available an becoming available.

    IDEF1X relies heavily upon Chen's shoulders.

    Nonsense. Give one
  • From Derek Ignatius Asirvadem@21:1/5 to All on Fri Apr 2 02:36:26 2021
    Nicola

    Thanks for yours.

    On Thursday, 1 April 2021 at 02:54:53 UTC+11, Nicola wrote:

    Summary answer.

    1. We had subtypes prior to RDBMS and IDEF1X. We had diagrams that were primitive compared to IDEF1X, but they worked perfectly well for the DBMS that we did have. We used IEEE notation.
    2. So when IDEF1X was published, no one used {Complete|Incomplete}. [Technically, since one could always add a subtype in the future, every cluster might be Incomplete!].
    3. The first (and only compliant) product ERwin provided both notations from day one.
    4. ERwin Methods Guide was freely available, and even people who did not have ERwin used it as the proper definition for IDEF1X (rather than purchase).

    I concur that the IDEF1X Notation for both Subtypes and Relations is inferior.

    Therefore, forget about the thing that does not work, that is known to be inferior, that only academics use, and use the thing that does work, that practitioners have used since 1983, the IEEE notation. For both Subtypes and Relations. Every DM that I
    am aware of used IEEE (except yours, but you are earnestly trying to understand and use the Standard as is, rather than the modified Standard that practitioners use).

    ----

    Nevertheless, I want to make sure that this particular item is resolved, because absolutely everything that occurs in reality can be modelled under FOPC; the /RM/; and IDEF1X. Refer to my Subtype doc for details and specific examples re what I state
    here.

    First, absolutely and always, think of the Basetype+Subtype pair as a single LOGICAL row (I won’t use silly terms such as “tuple”). Rather than as parent-child (which it is in physical, SQL terms).

    On the other hand, it makes it impossible to express the situation
    above, i.e., that "P must be A, B, or both" (complete + inclusive).

    If you give me an example (names, not A B C), I would be happy resolve it.

    ... each instance
    of the parent must always be an instance of one of the children—even
    when the cluster has only one child.

    A cluster that has only one child is a Normalisation error. It is not a Basetype-Subtype but an optional column and therefore an optional table.

    If it is not optional, then it is as you say “absorbed” into the parent.

    I find it somewhat surprising that this aspect has not been clarified
    and addressed in the standard, which was last revised in 2019.

    Yes. That is because the Date & Darwen freaks messed with it, and they pushed the totally obsolete IDEF1X notation over the IEEE notation. Same as you did before our discussion. Academia sucks dead sows. Even the notion of “Identity-Type” as an
    alternative to Keys, is hysterically backward, but hey, it now “validates” the OO/ORM approach.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to All on Fri Apr 2 19:39:36 2021
    Another first-hand historical perspective is provided by:

    https://www.mcjones.org/system_r/sql_reunion_95/sqlr95.html

    404 - Not Found.

    My fault (wrong case):

    https://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95.html

    I'll come back to the rest at a later time.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Fri Apr 2 14:45:35 2021
    On Saturday, 3 April 2021 at 06:39:42 UTC+11, Nicola wrote:

    https://www.mcjones.org/system_r/sql_reunion_95/sqlr95.html

    404 - Not Found.

    My fault (wrong case):

    https://www.mcjones.org/System_R/SQL_Reunion_95/sqlr95.html


    On Wednesday, 31 March 2021 at 22:58:03 UTC+11, Nicola wrote:

    Another first-hand historical perspective is provided by:

    Quote from the "Prehistory" section:

    "[...] Nevertheless, what kicked off this work [on project Gamma-0 and, eventually, System R] was a key paper by Ted Codd - was it published in
    1970 in CACM?

    - Yes.

    - A couple of us from the Systems Department had tried to read it -
    couldn't make heads nor tails out of it. [laughter] At least back
    then, it seemed like a very badly written paper: some industrial
    motivation, and then right into the math. [laughter]"

    Those are not academics talking.

    No, no, no. Those ARE academics talking. Rather famous ones.

    Those articles reinforce my declarations, not yours ! Each has a great understanding of a very narrow field (of research) and each remained clueless about the other fields, even related fields. And far removed from the “industry” and “users”.

    At Cincom, let me assure you, we were very aware of that, which is typical in large corps such as IBM, and sought to avoid that sort of problem by having a small team made up of specialists, in one location. TOTAL for DEC/PDP was written by a team of
    four. I came to Australia to write the “next generation” TOTAL for DEC/VAX with full ACID, our team was five. We did it in 18 months, it was named ULTRA-DBMS. (Later, Cincom missed the Relational bus, and got side-lined.)

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Sat Apr 3 22:40:15 2021
    On 2021-04-02, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:

    On the other hand, it makes it impossible to express the situation
    above, i.e., that "P must be A, B, or both" (complete + inclusive).

    If you give me an example (names, not A B C), I would be happy resolve it.

    The example from your Subtype.pdf document is fine: a PastTime (P) must
    be a PasttimeHobby (A) or a PasttimeSport (B), or both.

    Using standard IDEF1X symbology, and following the text of the standard
    (FIPS 184 or ISO 31320:2, they don't differ on this), you cannot express
    the assertion above, only approximate it, AFAICS.

    In Bruce's book (and in ERwin) you'd use two clusters, each with one
    child, but that requires an interpretation that does not find
    an equivalent in the standards. At least, to the best of my
    understanding.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Sat Apr 3 22:27:37 2021
    On 2021-04-02, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    On Wednesday, 31 March 2021 at 22:58:03 UTC+11, Nicola wrote:
    On 2021-03-29, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Introduction

    When it came out in 1970, the Relational Model (Codd, not the
    pretenders) made a paradigm shift in all areas of perceiving data
    (examination; data modelling; storage and retrieval; programming).
    Codd had an uphill battle against the established academics because
    they could not understand it,

    I don't think that's a fair assessment. Who are those "established
    academics" you mention?

    The main fight was within IBM, with the likes of Date and Fagin, who pretended to be his supporters but as time has told, they are his
    subverters. There were others, more later.

    There is absolutely zero articles in academia reinforcing or
    progressing the /RM/. That is evidence, for FIFTY YEARS, that
    academia does not understand it. All the nameless freaks, save one.
    Likewise there is not a single book that honestly promotes the /RM/ or progresses it. All of them that purport to articulate “Relational Database” promote instead 1960’s Record Filing Systems, based on RM/T,
    as confirmed in another thread. Even here, you are the only one
    looking into genuine Relational Data Modelling. The rest promote anti-Relational pig poop.

    *Some* academics may have had issues with Codd's
    proposal, but it was definitely understood, and supported, by many other
    academics.

    Name one (prior to 1980, because that was the statement I made).
    After 1981, when Sybase came out, and the IBM product (many names) was established, yes, academia could no longer deny it.

    Try naming one paper written any time after 1970.

    Among the papers I know from before 1980 (Codd's papers excluded), I'd
    say that it's not hard to find some that are supportive of the RM. Any
    that have understood it? Hard to tell... Progressed it? Let's see:
    I have a few papers on semantic modeling, which do not qualify; several
    papers on data dependencies, normal forms and other purely theoretical amenities such as closed/open worlds or the computational complexity of
    joins, which do not qualify because they are not practical; and a few
    papers on physical and systems design (such as the papers on System R),
    which might qualify, but they are from the IBM Systems Journal or IBM
    Research Labs.

    I would consider Grant's 1977's critique on "Null values in a Relational
    Data Base" a progress, as it pointed out the inconsistency of Codd's preliminary proposal for the treatment of nulls. But you'd likely say
    that Codd's treatment of nulls was a regression, so Grant would at most
    move things back to the start.

    I'd rather like to know why you think that, after 1981, papers with
    the qualities that you cannot ascribe to '70s papers would exist, and
    ask you to name one such paper, if you know any.

    Anyway, I appreciate your own recount of those times, albeit somewhat
    critical of the sources I have cited. I do not feel qualified to comment
    on that any further, though.

    IDEF1X relies heavily upon Chen's shoulders.

    Nonsense. Give one example, one article. Rob Brown already had
    a diagrammatic modelling method (as distinct from the various diagrams
    that data modellers created) that was widely accepted ... after
    consultation with Codd, he produced what became known as IDEF1X.

    FIPS 184, Background section: "The theoretical roots for [the initial
    approach to IDEF information modeling] stemmed from the early work of
    Dr. E. F. Codd on relational theory and Dr. P. P. S. Chen on the entity-relationship model."

    And two paragraphs later: "Application within industry had led to the development in 1982 of a Logical Database Design Technique (LDDT) by R.
    G. Brown of the Database Design Group. The technique was based on the relational model of Dr. E. F. Codd, the entity-relationship model of Dr.
    P. P. S. Chen, and the generalization concepts of J. M. Smith and D. C.
    P. Smith."

    Ok, fine. But your words contradict that, you can’t say that and also
    say “My main complaint with IDEF1X is the treatment of generalization hierarchies”.

    So what, if anything, is your remaining complaint re “generalization hierarchies”.

    My complaint is not about "generalization hierarchies" per se. It is
    a specific critique on the specific notation used by IDEF1X. That has
    nothing to do with understanding transactions, or whatever. It is the
    lack of a way (if you follow the standard) or a cumbersome way (if you
    follow Bruce/ERwin) to represent what in your document is called
    "Non-Exclusive Subtyping", using the "complete categorization" symbol.

    Regarding subtyping, my critique is specifically on the notation given
    in ERwin Methods Guide at the crossing of "Complete" with "Inclusive
    Subtype".

    What “crossing” ???

    I did not express myself clearly. I meant the IDEF1X (not IE) notation
    at the intersection of the "Complete" column and "Inclusive Subtype"
    row.

    You can’t use both IDEF1X and IEEE notation in any single model, they cannot be mixed. They are exclusive. You can’t go back-and-forth
    either.

    Sure, sorry if what I wrote seemed to imply that.

    Sorry. I don’t understand what you are trying to say.

    My fault, not the best example of clarity. But the point is, in
    a nutshell, that non-exclusive subtyping is not straightforward as it
    should be (as it is in IE).

    Here is a quick document that clarifies the issues you questioned,
    that I have answered. To be complete, I have added an item re
    Rolenames, because it is the third common “issue” that people raise: >> > https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    A question: what is the use case for an association that does not imply
    a foreign key (rightmost symbol in your "improved IE")? Why would you
    require a parent entity to exist at the time of insertion, but not
    later?

    It is actually a very common requirement. Refer this Data Model: ____https://www.softwaregems.com.au/Documents/Student_Resolutions_2020/Giannis/RoomMonitor%20DM%20V0_51.pdf

    I have had time only for a cursory look at the requirements and the
    model, but one thing that I have noticed is that there is no independent
    Sensor entity. That strikes as something unusual. It's ok to associate
    a Reading with a Room for auditing, but with an independent Sensor you
    should also be able to maintain referential integrity even when
    a sensor's location is changed as the MAC is immutable. But, again,
    I need to re-read your requirements.

    Since we are discussing IDEF1X, you might be interested in this Q&A: ____https://stackoverflow.com/q/4132044/484814

    Interesting reading, thanks.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sun Apr 4 02:05:58 2021
    Nicola

    On Sunday, 4 April 2021 at 08:40:19 UTC+10, Nicola wrote:

    Thanks for yours.

    On 2021-04-02, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    On the other hand, it makes it impossible to express the situation
    above, i.e., that "P must be A, B, or both" (complete + inclusive).

    If you give me an example (names, not A B C), I would be happy resolve it.

    The example from your Subtype.pdf document is fine: a Pastime (P) must
    be a PastimeHobby (A) or a PastimeSport (B), or both.

    Using standard IDEF1X symbology [excluding IEEE notation], and following the text of the standard
    (FIPS 184 or ISO 31320:2, they don't differ on this), you cannot express
    the assertion above, only approximate it, AFAICS.

    The "or both" is not a Predicate, it is a collection of instances.

    It appears this is boiling down to:
    - you do not accept the IEEE notation for Relational Data Modelling
    - you are in denial that IEEE notation exists
    --- in fact it existed before you or I were born
    - you do not accept correction of an incomplete Standard
    --- even if the correction existed prior
    --- or put otherwise, IDEF1X Subtype notation is a regression, and thus invalid - therefore for you there is only the IDEF1X notation

    Yes, the IDEF1X Subtype notation is broken. Yes, that is just one of the many things that one should be able to (a) model, and (b) model compliant with the /RM/, that cannot be rendered in IDEF1X/IDEF1X Subtype Notation.

    The same problem exists with IDEF1X Cardinality notation.

    So freaking what.

    If you are a hardened academic, that is all there is in the modelling world, and you can’t accept a Data Modelling job of any kind, because the Standard is broken and you can’t model things that exist in nature correctly.

    That is why academics cannot work in the industry that they theorise about. They never the leave university mindset.

    Enter the practical man. Drum roll and dancing girls.

    The Standard is bro
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Sun Apr 4 10:50:39 2021
    On 2021-04-04, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    The "or both" is not a Predicate, it is a collection of instances.

    It appears this is boiling down to:
    - you do not accept the IEEE notation for Relational Data Modelling
    - you are in denial that IEEE notation exists
    --- in fact it existed before you or I were born
    - you do not accept correction of an incomplete Standard
    --- even if the correction existed prior
    --- or put otherwise, IDEF1X Subtype notation is a regression, and thus invalid
    - therefore for you there is only the IDEF1X notation

    I am not in denial of anything; I can read your data models without
    issues, for instance, and I am not asking you or anyone to use a "more standard" notation for the sake of it.

    That said, yes, I prefer to stick to IDEF1X notation; but I have no
    problem diverging from the standard if I need to.

    Yes, the IDEF1X Subtype notation is broken. Yes, that is just one of
    the many things that one should be able to (a) model, and (b) model
    compliant with the /RM/, that cannot be rendered in IDEF1X/IDEF1X
    Subtype Notation.

    There are two orthogonal aspects in a generalization hierarchy:

    1. are the subtype mutually exclusive or not?
    2. is every instance of the parent entity an instance of some child
    entity ("subtyping" in your terminology), or not?

    So, four combinations. Following the terminology of your document:

    | Exclusive?
    Subtyping? | Yes No -----------|----------------------------------------------
    Yes | Exclusive Subtyping Non-exclusive subtyping
    No | ? Optional attr.[Group], Not Subtype

    In IDEF1X notation, "non-exclusive subtyping" is the problematic one.

    What is marked with ? corresponds to an "incomplete categorization" in
    IDEF1X terminology. Using IE notation, how would you model an
    "incomplete categorization"? There is no example in your document.

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    Note, I am not asking you how you would *implement* this situation; only
    how a data model would look like.

    The same problem exists with IDEF1X Cardinality notation.

    Which problem do you have with IDEF1X cardinalities?

    In Bruce's book (and in ERwin) you'd use two clusters, each with one
    child, but that requires an interpretation that does not find
    an equivalent in the standards. At least, to the best of my
    understanding.

    Your understanding is correct.
    That interpretation is false.
    Bruce is an idiot (per reasons explained above, for noticing the problem and NOT resolving it).
    Do not follow an idiot.
    Further, the “two clusters with one child each” is a hideous, gross, Normalisation error.
    Thus the model is invalid; incorrect, fix it.

    You could also show us how you would solve the example above in ERwin
    (with IE notation). I do not have an ERwin license, so I can't try it
    myself.

    As a counter-point, think about UML. Even though it is heavily
    marketed as a “Standard”, it is not a Standard by any means, because
    it is (a) grossly incomplete: each modeller adds his own 5 to 10
    notations to cover the missing bits because he has designed objects or interaction for which no UML notation exists. When a few hundred do
    that private dance and publish their models, those 400 or 500
    notations become de facto UML, like it or not. Yes, you and I as
    purists would reject all that. But whereas I would model it in
    a genuine modelling notation, and thus resolve the issue, you would
    stand and argue that UML is broken, that the added notation is
    invalid.

    Well, one thing is asking to fix something that it's just a notational
    glitch that can be easily fixed; "fixing UML" is something on another
    level entirely: I'd not dare ask anything like that.

    Further, the main fault with UML, its self-destroying fault, is [b]
    the lack of integration in all areas, The many different diagrams
    simply do not come together as an integrated System Definition.

    While I sympathize with your position and I accept the UML analogy for explanation purposes, I think I have little or nothing to reply to or
    disagree with you about UML or ORM (by which I assume you mean Object-Relational Mapping).

    I have updated this doc to reflect the above. In case there remains
    anything worth discussing on this issue, I have added a page with the Subtypes, and given the Predicates (which are an excellent method of verifying the model, a feedback loop).

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Yes, the updated chart looks better. IE notation covers subtyping
    correctly. My only remaining question is the one above.

    RE the added page, looking at the transactions, I think PersonPastime's subtypes are not exclusive (the diagram has an X that should not be
    there).

    Happy Easter,
    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sun Apr 4 06:39:05 2021
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    Note, I am not asking you how you would *implement* this situation; only
    how a data model would look like.

    There is a difference in your mind ?

    Why on earth would I implement something other than what I know the data to be, which knowledge I obtain by modelling it ? Why would I waste time modelling data if I did not have an implementation intent ?

    Ok, fine. It is different to you. Why ?

    RE the added page, looking at the transactions, I think PersonPastime's subtypes are not exclusive (the diagram has an X that should not be
    there).

    Thanks.
    Fixed.

    By the way, I have given you two ways of transacting a 1::1-to-n relation.

    Happy Easter
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to But they on Sun Apr 4 19:32:51 2021
    On Sunday, 4 April 2021 at 08:27:43 UTC+10, Nicola wrote:
    On 2021-04-02, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:
    On Wednesday, 31 March 2021 at 22:58:03 UTC+11, Nicola wrote:
    On 2021-03-29, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Introduction

    When it came out in 1970, the Relational Model (Codd, not the
    pretenders) made a paradigm shift in all areas of perceiving data
    (examination; data modelling; storage and retrieval; programming).
    Codd had an uphill battle against the established academics because
    they could not understand it,

    I don't think that's a fair assessment. Who are those "established
    academics" you mention?

    The main fight was within IBM, with the likes of Date and Fagin, who pretended to be his supporters but as time has told, they are his subverters. There were others, more later.

    There is absolutely zero articles in academia reinforcing or
    progressing the /RM/. That is evidence, for FIFTY YEARS, that
    academia does not understand it. All the nameless freaks, save one. Likewise there is not a single book that honestly promotes the /RM/ or progresses it. All of them that purport to articulate “Relational Database” promote instead 1960’s Record Filing Systems, based on RM/T, as confirmed in another thread. Even here, you are the only one
    looking into genuine Relational Data Modelling. The rest promote anti-Relational pig poop.

    *Some* academics may have had issues with Codd's
    proposal, but it was definitely understood, and supported, by many other >> academics.

    Name one (prior to 1980, because that was the statement I made).
    After 1981, when Sybase came out, and the IBM product (many names) was established, yes, academia could no longer deny it.

    Try naming one paper written any time after 1970.

    Among the papers I know from before 1980 (Codd's papers excluded), I'd
    say that it's not hard to find some that are supportive of the RM. Any
    that have understood it? Hard to tell... Progressed it? Let's see:
    I have a few papers on semantic modeling, which do not qualify; several papers on data dependencies, normal forms and other purely theoretical amenities such as closed/open worlds or the computational complexity of joins, which do not qualify because they are not practical; and a few
    papers on physical and systems design (such as the papers on System R), which might qualify, but they are from the IBM Systems Journal or IBM Research Labs.

    Those may be related, but obliquely. By the fact that that is all there is, you are proving my point: there are no academic papers that support the /RM/, but heaps that support everything but, including RM/T marketed as “Relational Model”.

    1. Normal Forms
    They are all a complete joke. Half are redundant, the other half are ignorant of the /RM/, and so they “invent” something that is already in the RM (I have written a couple of responses).

    That does not count the various changes the Date; Darwen; Fagin gang keep making to the NFs, which are pig poop. None of the idiots have articulated the Normal Forms that are in the /RM/. Maybe if we wait another fifty years.

    2. Complexity of Joins
    Nothing compared to the papers already written by Sybase Engineers. We have the most intelligent, third generation, Parser and Query Optimiser. You will not believe the level of analysis and reduction of complexity, then determination of access paths
    based on Statistics. I have read some of those academic papers and cacked myself (I still have difficulty believing that academics are so isolated from the real world, that they read only what their colleagues write, and thus maintain a cocoon).

    (In the last 20 years, we have stopped publishing papers, because we do not want to give the freeware crowd the Method, by publishing our Trade Secrets. I have yanked some of my Sybase doco, and there are a few more than I will yank soon. The Sybase
    Technical Forum has moved out of public view, into a closed SAP-Only stable, so the public don’t get the details even via technical chats.)

    3. “Semantic Models”
    It appears you do not get it, and this one is going to be hard nut to cut through, because the academic mindset is set and reinforced by many papers. Look, as an academic; as a mathematician; as a logician, why is it that every single diagram you draw
    is NOT semantic ???

    You understand FOPC. FOPC is semantic. That is the foundation of the /RM/. Now whatever you draw, make sure it is a legal FOPC Predicate, independent, or dependent on other Predicates. Chose your notation, or write one yourself.

    The problem is, the academics have concocted this notion of “semantic model”, and written 57 papers about it, with lots of self-serving citations, so they think it is “real”. It isn’t, it is a collectively assented fiction. Much like the
    problem of “universals”, the freaks deny that Universals exist; what causes their existence; what sustains their existence, and then they concoct a slew of possible ways that “universals” could exist, and they spend the rest of their lives
    debating the possibilities, never resolving anything. It was resolved in 350BC by Aristotle.

    Same here. Academics deny the simple fundamental atomic existence of SEMANTICS, that it is in FOPC already, that conjuring up another “semantics” or forty three is a stupid but income-producing shell game that they can play with each other. Further
    by denying THE semantic root (FOPC), and then fabricating a “semantic” layer somewhere else, whatever semantics their “semantic” layer has is a mere fraction, and due to incorrect architectural deployment, both massive and hard to design and
    implement. In any case, it will be grossly incomplete, with no sense of integration.

    I will give you a parallel example, which we have discussed to some degree (unfortunately not to closure), the Movie Title Thread. The Relational Data Modeller gave you the Relational Data Model for Movie Title, it has all the FOPC Predicates thought
    out and modelled. What you engaged in over 14 iterations. Strict FOPC and /RM/, therefore any SQL written against it will be straight-forward (no complexity, /Complexity of Joins/ papers may be irrelevant, yet another academic shell game). In fact any
    report requirement can be serviced via a single SELECT. But the starting position; the academic position was, “it can’t be done in the /RM/, we need an /ontology/ and a /description logics/“. Don’t mention a fat middleware server, and masses of
    s/w. Don’t mention that when the perception of data changes, all three layers must be changed, and the “database” has to be “refactored”..

    When we insist of FOPC; the /RM/; and genuine Relational Modelling, the /hoontology/ and /descwiption non-logics/ are eliminated, they stand as vacuums. There is no need for an /onotology/ [what a filthy label] to tell the world what the structure of
    the data is, because the story is told in super integrated form, by the Data Model itself, because the DM is Semantic, because it engages FOPC Predicates.

    Another parallel example. FOPC -> Relational Model -> SQL. So real SQL is strictly based on FOPC. But the Torrid Manifesto gulag, the Date; Darwen; Fagin religion totally suppress FOPC and the /RM/, and then assert that SQL is broken. Not only that,
    they will produce a “data sublanguage” that conforms to the “relational model” which is in fact the anti-Relational RM/T. Thirty years and still nothing.

    Meanwhile, back at the farm, guys like me who are unsoiled with their pig poop find absolutely nothing wrong with SQL, there is nothing we cannot do in SQL over a genuine Relational Database.

    Do you see what I am trying to say ? Academics are clueless about what SEMANTICS is, that it is already in FOPC, they are therefore clueless about FOPC, what it really and truly is, how the /RM/ isfounded on FOPC. But they write volumes of papers about
    what “semantics” could be.

    I would consider Grant's 1977's critique on "Null values in a Relational Data Base" a progress, as it pointed out the inconsistency of Codd's preliminary proposal for the treatment of nulls. But you'd likely say
    that Codd's treatment of nulls was a regression, so Grant would at most
    move things back to the start.

    Correct.

    Three-valued logic is plain stupid. I have never used it. I have no Nulls in any database, not even from 1983.

    It can be understood only in the context that Codd was bending over backwards to get some engagement from the academic community. For ten years. Same as RM/T. A massive regression to pre-1960’s filing systems. Not even 1970’s.

    I'd rather like to know why you think that, after 1981, papers with
    the qualities that you cannot ascribe to '70s papers would exist, and
    ask you to name one such paper, if you know any.

    Sorry, I am not sure I understand the question, I will try to answer, but please re-state if I am wrong.

    When I bracketed 1970 to 1980, it was about that critical period when Codd had no support, and was running around the country marketing the /RM/, and unfortunately bending over backwards to demonstrate how even Record-ID-based ISAM and HDBMS could
    benefit from the /RM/, which was RM/T, which was then fraudulently used by the pig poop Gulag to market as “the Relational Model”.

    After 1980, when the /RM/ was accepted, and notably first by RDBMS providers, who actually produced RDBMSs, not by academics, the papers were commercial, internal.

    Sure, there were total lunatics such as Stonebraker (great salesman, great cult leader, disgusting academic) that tried to implement parts of the /RM/, while being clueless about databases; contention; concurrency; and transactions (all of which were
    well and truly implemented and implemented correctly, for 30 years at that time). So in perfect academic fashion, he ignored all that reality, that the database is a shared resource that is in constant change, and concocted the schizophrenic [reality-
    contradicting] notion of the dumb user that has view of a fixed unchanging database to engage with.

    It was called MVCC, but the label is false, there is no such thing in reality as “multiple versions” of a single database, that is the first layer of schizophrenia, like everyone going back to their private tiled cells in the asylum, each holding one
    row from the single ever-changing story in the library. And no problem, they take their time modifying “their” row, and they will submit in in the morning, after ablutions and a good breakfast. It breaks the first principle of a database: a single
    version of the truth, shared by all who access it. Maybe have a soy latte, and watch the little girls walk by.

    The “concurrency control” part of the label is utterly Stonebraker-style false. It does absolutely nothing re concurrency (each user is left to his own devices, which is the pretence that it is a single-user database mounted between his big toes, to
    do as he pleases), and certainly nothing to control concurrency. Concurrency is denied, and resolution of the fantasised changes is deferred to the COMMIT.

    The best that can be said for it, in honest technical terms that academics have no access to, is that it attempts to serialise the multiple [chronological] events that each user schizophrenically thinks he did (which he actually did not do), in denial of
    the other users’ events (some of which actually did happen), after the fact [of the fantasy that he did], after all the horses have bolted, when he sends COMMIT. And it fails miserably.

    The mantra “readers never block writers, and writers never block readers" is exactly that, a mantra. Same as when a fat and ugly old man goes up to the mirror and repeats his mantra “I am a chick magnet”. It is very satisfying, thinking about
    events, that have never happened in the past, that will definitely positively absolutely happen in the future. Coz he said so. Check the resolute look in the mirror, tis “real”.

    The simple fact is, MVCC does not work without locking, it is a gross lie that MVCC is a substitute for locking. PissGross has four LEVELS of locking (with minor levels within each), on top of MVCC, and it still can’t resolve the millions of multiple
    versions of records that it has to maintain.
    ____ https://stackoverflow.com/search?q=%5Bpostgresql%5D+lock+problem

    Meanwhile, back at the commercial farm, since 1981 [for RDBMS], with Ordinary Locking (aka “2PL”), of the single version of the truth (ala the first Principle of a Database), we don’t have versions of data, let alone multiple versions, let alone
    deferred resolutions of multiple version.

    Note that that description touches the fantasy of MVCC (which has hidden Locking) vs Locking, it does not mention the main limiting issue re concurrency: the Transaction Log, which also has to be serialised, and which is a higher order than the
    resolution of the multiple false versions of reality. It must be mentioned, there are two orders [not one] of issues that have to be resolved at COMMIT, which the guru of idiocy Stonebraker denies, and defers to the COMMIT.

    The second and third layers of schizophrenia are the ways and means they have written, first in academic papers, and then in implementations, about how to not-have contention problems (by denying the existence of other users that cause contention); how
    to not-have consistency problems (by denying the existence of all other versions of the row except his “own” single row). Don’t worry, we will resolve everything when the drooling idiot COMMITS. Oopsy, it cannot be resolved, Sally’s row is 42
    versions out-of-date, and Fred’s row that is blocking it is 36 versions out-of-date. No problem, let’s redefine “transactions”.

    So they munchkins at Berkeley produced Ingres. Total failure. But heavily promoted by academia. So they produced PissGrossNONsql. Total failure. But heavily promoted by academia. “Don’t worry, we are clueless now, but at any moment now we won’
    t be, promise.” Same as the single cell from which all life forms “evolved”, “we will find it any moment now, even though we haven’t found it in 120 years”.

    Larry Ellis saw a commercial opportunity, that he could do a better job of implementing the MVCC fiction than the Stonebraker ashram could (“hey, I don’t have to understand contention, I just deny its existence, and I can deny its existence better
    than Stonebraker”). It has no ACID, because MVCC cannot support ACID, it has contention problems that “2PL” systems simply do not have, but hey, everyone has a right to grab and hold a private row, while they wait for the coffee to get cold. It
    is institutionalised schizophrenia, a collective assent to a fiction, with masses of s/w and h/w resources demanded to make it “real”.

    So the mantra “readers never block writers, and writers never block readers" may be true if we are charitable, but the great fraud is, they never mention that the method produces; tracks; sort-of-resolves, millions of multiple versions of the rows,
    which systems that utilise Locking do not do. And the second fraud is, the non-locking MVCC cannot resolve the multiple versions except by using Locking (and a disgusting mess of locks it is) on top of MVCC.

    Hey, you get what you pay for. Freeware is free, no one can be held responsible.

    Anyway, I appreciate your own recount of those times, albeit somewhat critical of the sources I have cited. I do not feel qualified to comment
    on that any further, though.

    Hah. You will love the critique I have for the new list of academics, above.

    IDEF1X relies heavily upon Chen's shoulders.

    Nonsense. Give one example, one article. Rob Brown already had
    a diagrammatic modelling method (as distinct from the various diagrams that data modellers created) that was widely accepted ... after consultation with Codd, he produced what became known as IDEF1X.

    FIPS 184, Background section: "The theoretical roots for [the initial approach to IDEF information modeling] stemmed from the early work of
    Dr. E. F. Codd on relational theory and Dr. P. P. S. Chen on the entity-relationship model."

    Yes, it is written.

    So what, do you believe everything that is written ? They have written that homosexuals can have children, and that Chinese is a “language”.

    When I said “article” I did not mean a report somewhere, I meant a concept, that is recognisable.
    a. Name one thing, a method or rule or whatever, from the Chen ERD, that exists in IDEF1X.
    b. Name one thing FROM the /RM/ that Chen has in his ERD.

    And two paragraphs later: "Application within industry had led to the development in 1982 of a Logical Database Design Technique (LDDT) by R.
    G. Brown of the Database Design Group. The technique was based on the relational model of Dr. E. F. Codd, the entity-relationship model of Dr.
    P. P. S. Chen,

    Written twice. Published by the thousands.

    and the generalization concepts of J. M. Smith and D. C.
    P. Smith."

    Another fiction. Ok, written fiction. I will happily admit that they wrote an academic paper; that they used the term “generalisation” as if it were new. But we had Subtypes before that paper was written, and specific Subtype implementations for
    each DBMS. For God’s sake man, I had Subtypes in my silly old ISAM-based ACID system. DEC had Subtypes in PDP/ISAM. It is the same as some academic today “inventing” a “normal form”, in blissful ignorance that the Normal Forms in the /RM/
    deem his “normal form” (a) incomplete and (b) redundant. But the academics will circle-jerk over it. And thus continue the suppression of, and ignorance of, the /RM/.


    Ok, fine. But your words contradict that, you can’t say that and also say “My main complaint with IDEF1X is the treatment of generalization hierarchies”.

    So what, if anything, is your remaining complaint re “generalization hierarchies”.

    My complaint is not about "generalization hierarchies" per se. It is
    a specific critique on the specific notation used by IDEF1X. That has nothing to do with understanding transactions, or whatever. It is the
    lack of a way (if you follow the standard) or a cumbersome way (if you follow Bruce/ERwin) to represent what in your document is called "Non-Exclusive Subtyping", using the "complete categorization" symbol.

    Well the notation in my doc (Bruce; ERwin; Asirvadem) is IEEE, which has {Exclusive|Non-Exclusive}, and does not have {Complete|Incomplete}. You can’t apply {Complete|Incomplete} directly to {Exclusive|Non-Exclusive}, but you can progress from the
    lower order {Complete|Incomplete} mindset to the higher order {Exclusive|Non-Exclusive} mindset.

    If you take the {Complete|Incomplete} text in the Standard as gospel, and set it up as a rule for perceiving data [that you wish to model and understand], no, that will damage your perception of data badly. IDEF1X is not a DEFINITION of Data Modelling
    as an exercise, it is a notation. The Data Modelling exercise requires you to be open, to perceive the data as it actually exists in reality, not forced into a {Complete|Incomplete} mindset.

    Separately, there is nothing that you cannot define [from the real universe, using legal Predicates], in FOPC; and thus the /RM/, which is why I asked, give me a real example, and I will resolve it for you, it has nothing to do with {Complete|Incomplete}
    vs {Exclusive|Non-Exclusive}, it has everything to do with accurate Data Modelling, without any fixed mindset.

    cumbersome

    How exactly, is it “cumbersome” ? Predicates are Predicates, atomic. If your model does not resolve, due to not-having the right Predicates, and I resolve the model by inserting the missing Predicate, which of course is essential, and therefore
    minimal, how is that “cumbersome” ? It is only “cumbersome” to the person who holds the invalid perception of the unresolved model with the one less Predicate.

    Regarding subtyping, my critique is specifically on the notation given
    in ERwin Methods Guide at the crossing of "Complete" with "Inclusive
    Subtype".

    What “crossing” ???

    I did not express myself clearly. I meant the IDEF1X (not IE) notation
    at the intersection of the "Complete" column and "Inclusive Subtype"
    row.

    Addressed in another post. Doc corrected.

    Sorry. I don’t understand what you are trying to say.

    My fault, not the best example of clarity. But the point is, in
    a nutshell, that non-exclusive subtyping is not straightforward as it
    should be (as it is in IE).

    Ok, I have enhanced the doc, and added the Predicates to ensure that their existence is not missed, and to invite approval/correction.

    Please inform me as to how Non-Exclusive Subypes is not straight-forward.

    Here is a quick document that clarifies the issues you questioned,
    that I have answered. To be complete, I have added an item re
    Rolenames, because it is the third common “issue” that people raise:
    https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    A question: what is the use case for an association that does not imply >> a foreign key (rightmost symbol in your "improved IE")? Why would you
    require a parent entity to exist at the time of insertion, but not
    later?

    It is actually a very common requirement. Refer this Data Model: ____https://www.softwaregems.com.au/Documents/Student_Resolutions_2020/Giannis/RoomMonitor%20DM%20V0_51.pdf
    I have had time only for a cursory look at the requirements and the
    model,

    Please give it a closer look, at your convenience.

    but one thing that I have noticed is that there is no independent
    Sensor entity.

    Yes.

    That strikes as something unusual. It's ok to associate
    a Reading with a Room for auditing, but with an independent Sensor you should also be able to maintain referential integrity even when
    a sensor's location is changed as the MAC is immutable. But, again,
    I need to re-read your requirements.

    The MAC identifies the Monitor, not the Sensor. The Monitor houses 0-to-n Sensors, which are simple dumb circuits. The Monitor is the <<Device>> that via the MAC broadcasts the status of its Sensors. The Sensor is not independent, it does not have a
    MAC.

    When a Sensor is replaced, there is no other change to the Monitor, or to the location.

    When a Monitor is replaced (repair; back to factory; etc), the extant Sensors stay with the Monitor. After repair and refurbishment, the Monitor gets shipped to a new location, the next waiting.

    At the end of the day, it is Reading that is permanent, not Monitor; not Sensor.

    Sure, it is possible to model/implement a permanent identifier for each little Sensor, that stays with the Room, rather than the Monitor, but I would have two problems with that: first, it is not reality (there is no permanent or unique Sensor identifier)
    , so it would have to be fabricated, and thus not Relational. Second, the model would have to be re-worked raising Sensor above the Monitor that houses it, which is false.

    Besides, that DM has been through 51 iteration slots by virtue of the version number, probably 34 actual iterations (whereas Movie Title was 14 iterations, not yet mature). It is pretty mature, and implemented with no problem whatsoever.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sun Apr 4 20:59:07 2021
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:
    On 2021-04-04, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Yes, the IDEF1X Subtype notation is broken. Yes, that is just one of
    the many things that one should be able to (a) model, and (b) model compliant with the /RM/, that cannot be rendered in IDEF1X/IDEF1X
    Subtype Notation.

    Before I get into the response, as detailed in my previous post, you need to divest yourself of rules or “rules” that you take by implication of the IDEF1X/IDEF1X Subtype definition. And open up to the world of reality, of modelling data as it is,
    of course in conformation to FOPC and the /RM/ but not conforming to limitations of IDEF1X or anything else (such as physical implementation in limited freeware; etc).

    There are two orthogonal aspects in a generalization hierarchy:

    I don’t care for the title, it is some academic artefact, of relevance to academia only. I know that what you mean is the Basetype-Subtype clusters that we have had in databases, decades before those papers were written. And again, I am very
    interested in modelling data the way it actually exists, not limited to any perception.

    Further, I accept wholeheartedly that the correct observation of genus vs species is an essential part of genuine Analysis, here Data Analysis.

    1. are the subtype mutually exclusive or not?

    Ok. One category is. Because they are Exclusive, we [normal people, not prone to reading academic fantasies, unless forced] call the category:
    ____Exclusive
    In Logic, that is an XOR Gate [Discriminator] on the Basetype that identifies the single Subtype. It is Semantic (examples in the progressing doc).

    The remaining category, since it is not Exclusive, and certainly not inclusive, is called:
    ____Non-Exclusive
    The Subtypes are not mutually exclusive. There is no Discriminator. Typically, the Basetype has more than one [but not many or all] Subtypes. Note that each Basetype-Subtype pair must be perceived as a logical row.

    2. is every instance [row] of the parent entity an instance [row] of some child
    entity ("subtyping" in your terminology), or not?

    For Exclusive: yes, exactly one Subtype row.
    For Non-Exclusive: yes, one or more Subtype rows.

    So, four combinations.

    Whoa. What four combinations ??? How can you combine Exclusive with Non-Exclusive ??? You will get “everything”, or scrambled eggs without salami. That is an error at the intellection level, the conceptualisation level. It is invalid.

    Following the terminology of your document:

    | Exclusive?
    Subtyping? | Yes No -----------|----------------------------------------------
    Yes | Exclusive Subtyping Non-exclusive subtyping
    No | ? Optional attr.[Group], Not Subtype

    1. I have dismissed this categorically, as per detail above.
    2. I don’t understand it, so much as I would like to respond, I can’t.

    In IDEF1X notation, "non-exclusive subtyping" is the problematic one.

    If you say so. But you are mixing things up: in IDEF1X Notation, there is no “Non-Exclusive” Subtyping, there is only {Complete|Incomplete}. If you try to model somethig that your modelling restrictions disallow, you will fail, yes.

    Which I find seriously lacking, since {Exclusive|Non-Exclusive} Subtypes existed before the /RM/ and before IDEF1X. Further, I am not about to be restricted by artificial limitations that are part of some notation, so I dismiss it on a second count.

    What is marked with ? corresponds to an "incomplete categorization" in IDEF1X terminology.

    Ok.

    Using IE notation, how would you model an
    "incomplete categorization"?

    Well, you can’t. Because it does not exist in IE. Because it does not exist in reality.

    Well you can’t. Because the two methods of classification cannot be mixed.

    Nevertheless, because the IDEF1X notation is inferior, a lower-order concept, it can be progressed to a superior, higher-order concept. Just get rid of the notion of “incomplete/complete”.

    There is no example in your document.

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4 added:
    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Note, I am not asking you how you would *implement* this situation; only
    how a data model would look like.

    There is a difference in your mind ?

    Why on earth would I implement something other than what I know the data to be, which knowledge I obtain by modelling it ? Why would I waste time modelling data if I did not have an implementation intent or that is not-for-implementation ? It would be a
    pathetic relic made of cigar smoke. No thanks.

    Ok, fine. It is different to you. Why ?

    The same problem exists with IDEF1X Cardinality notation.

    Which problem do you have with IDEF1X cardinalities?

    Sorry, not exactly the same, but a very similar problem. IEEE Cardinality Notation existed prior, and was readily understood. People baulked at the new solid circle plus an alpha character. It was less than expected, a regression to some esoteric
    concept that was less precise than required for concrete understanding, for implementation (that naughty word again). They were happy with the crows foot that exposed more definition, that they were used to.

    If the notation cannot be implemented, then it is something that only theoreticians can use (without confidence). Thus any data modelling notation must have enough definition to host an implementation. The academic notion that theory should not make
    reference to practice deems the academic unfit for the theory that is the foundation of practice. Which means, we have had no academic; no theoretician, since 1970 and Dr E F Codd.

    In Bruce's book (and in ERwin) you'd use two clusters, each with one
    child, but that requires an interpretation that does not find
    an equivalent in the standards. At least, to the best of my
    understanding.

    Your understanding is correct.
    That interpretation is false.
    Bruce is an idiot (per reasons explained above, for noticing the problem and NOT resolving it).
    Do not follow an idiot.
    Further, the “two clusters with one child each” is a hideous, gross, Normalisation error.
    Thus the model is invalid; incorrect, fix it.

    You could also show us how you would solve the example above in ERwin
    (with IE notation). I do not have an ERwin license, so I can't try it myself.

    Done. Page 4.

    As a counter-point, think about UML. Even though it is heavily
    marketed as a “Standard”, it is not a Standard by any means, because it is (a) grossly incomplete: each modeller adds his own 5 to 10
    notations to cover the missing bits because he has designed objects or interaction for which no UML notation exists. When a few hundred do
    that private dance and publish their models, those 400 or 500
    notations become de facto UML, like it or not. Yes, you and I as
    purists would reject all that. But whereas I would model it in
    a genuine modelling notation, and thus resolve the issue, you would
    stand and argue that UML is broken, that the added notation is
    invalid.

    Well, one thing is asking to fix something that it's just a notational glitch that can be easily fixed; "fixing UML" is something on another
    level entirely: I'd not dare ask anything like that.

    Totally. I wouldn’t either. I would extend SSADM to define Objects, only.

    I have updated this doc to reflect the above. In case there remains anything worth discussing on this issue, I have added a page with the Subtypes, and given the Predicates (which are an excellent method of verifying the model, a feedback loop).

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Yes, the updated chart looks better. IE notation covers subtyping
    correctly. My only remaining question is the one above.

    Updated again. I have added page 4 with the tentative solution. Tentative, because I don’t think I have grasped the problem you have described.

    RE the added page, looking at the transactions, I think PersonPastime's subtypes are not exclusive (the diagram has an X that should not be
    there).

    Thanks. Fixed.

    By the way, I have given you two ways of transacting a 1::1-to-n relation.

    Happy Easter
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sun Apr 4 22:53:21 2021
    On Sunday, 4 April 2021 at 08:27:43 UTC+10, Nicola wrote:

    My complaint is not about "generalization hierarchies" per se. It is
    a specific critique on the specific notation used by IDEF1X.
    **That has nothing to do with understanding transactions, or whatever.**

    Well it does. It is fair enough that the academics think in terms of fragments, isolated from the context in which it exists.

    But that is not the real world, in which things are integrated, atoms are not fragmented. We do not want to entertain something in theory that is not possible in implementation. A database is a single recovery unit. As long as one is using a genuine
    SQL platform, one has ACID Transactions. The following Predicates for the Basetype::Subtype relation:
    __ Basetype is one of {Subtype1|Subtype2|...} -- Exclusive
    ____ Cardinality 1::1
    __ Basetype is any of {Subtype1|Subtype2|...} -- Non-Exclusive
    ____ Cardinality 1::1-to-n
    are implemented by a Constraint (Declaration in SQL). Transactions are declared Constraints (Methods in UML-speak), that provide ACID (if the SQL Platform provides ACID). They form the Database API.

    That [SQL platform] gives us confidence that the implied Database Integrity; the Cardinality of 1::1 or 1::1-to-n is possible, and quite ordinary.

    Corollary: it is not possible to implement such Database Integrity on freeware and other mickey mouse program suites (they cannot be called “platforms”), that do not have ACID and fraudulently use “SQL” in the label.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 5 13:28:40 2021
    On 2021-04-04, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    That captures the requirements correctly, but it introduces an entity
    (Employee FT_or_C) that does not exist in reality, it is not in the requirements and, in fact, is not inherently necessary. An IDEF1X model
    would have just three entities => IDEF1X is better than your IE by
    Occam's Razor. QED

    Note that your model, in a larger context, might be a better choice in
    some circumstances. But with your modeling language, it's the only one
    you can build for the requirements above.

    You may counter this, but know in advance that I will not respond,
    because for me this matter is settled. The last word is yours!

    Note, I am not asking you how you would *implement* this situation; only
    how a data model would look like.

    There is a difference in your mind ?

    The difference between logical and physical.

    By the way, I have given you two ways of transacting a 1::1-to-n
    relation.

    Noticed that. They look good to me.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola Vitacolonna@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 5 13:50:53 2021
    On 2021-04-05, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    There are two orthogonal aspects in a generalization hierarchy:

    I don’t care for the title, it is some academic artefact, of relevance
    to academia only. I know that what you mean is the Basetype-Subtype
    clusters that we have had in databases, decades before those papers
    were written. And again, I am very interested in modelling data the
    way it actually exists, not limited to any perception.

    Further, I accept wholeheartedly that the correct observation of genus
    vs species is an essential part of genuine Analysis, here Data
    Analysis.

    1. are the subtype mutually exclusive or not?

    Ok. One category is. Because they are Exclusive, we [normal people,
    not prone to reading academic fantasies, unless forced] call the
    category:
    ____Exclusive
    In Logic, that is an XOR Gate [Discriminator] on the Basetype that
    identifies the single Subtype. It is Semantic (examples in the
    progressing doc).

    The remaining category, since it is not Exclusive, and certainly not inclusive, is called:
    ____Non-Exclusive
    The Subtypes are not mutually exclusive. There is no Discriminator. Typically, the Basetype has more than one [but not many or all]
    Subtypes. Note that each Basetype-Subtype pair must be perceived as
    a logical row.

    2. is every instance [row] of the parent entity an instance [row] of
    some child entity ("subtyping" in your terminology), or not?

    For Exclusive: yes, exactly one Subtype row.
    For Non-Exclusive: yes, one or more Subtype rows.

    No, the distinction I have made is between subtyping/not subtyping.

    So, four combinations.

    Whoa. What four combinations ??? How can you combine Exclusive with Non-Exclusive ???

    I thought that was clear enough, but it mudded the waters instead. It
    doesn't matter, though, because the matter is settled for me, as per my previous post.

    In IDEF1X notation, "non-exclusive subtyping" is the problematic one.

    If you say so. But you are mixing things up: in IDEF1X Notation,
    there is no “Non-Exclusive” Subtyping, there is only {Complete|Incomplete}.

    Exactly. But "non-exclusive subtyping" is not a notation, it is
    a concept. And IDEF1X has not straightforward notation for that.

    What is marked with ? corresponds to an "incomplete categorization"
    in IDEF1X terminology.

    Ok.

    Using IE notation, how would you model an
    "incomplete categorization"?

    Well, you can’t. Because it does not exist in IE. Because it does
    not exist in reality.

    Look who is in denial of reality. My Employee[Full-Time,Consultant]
    example is just that. Similarly to the above, "incomplete
    categorization" is not a notation, it is a concept. And your IE has not straightforward notation for that.

    Nevertheless, because the IDEF1X notation is inferior, a lower-order
    concept, it can be progressed to a superior, higher-order concept.
    Just get rid of the notion of “incomplete/complete”.

    Without such a notion, you are forced to model "incompleteness" of
    a generalization hierarchy with 1:1-0:1 relationships. While you can do
    that, it may not be the most natural or more economical way of modeling
    some situations, witness your Employee[Full-Time,Consultant] solution.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 5 14:32:26 2021
    On 2021-04-05, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    Anyway, I appreciate your own recount of those times, albeit somewhat
    critical of the sources I have cited. I do not feel qualified to comment
    on that any further, though.

    Hah. You will love the critique I have for the new list of academics,
    above.

    Too bad the people you mention, and often insult, are not here to
    provide their point of view. You know, the discussion would be much more interesting.

    IDEF1X relies heavily upon Chen's shoulders.

    Nonsense. Give one example, one article.

    FIPS 184, Background section:

    Yes, it is written.

    So what, do you believe everything that is written ?

    Never. Not by you, either :-)

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 5 18:48:49 2021
    On 2021-04-04, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    This is my comparative assessment of IE vs IDEF1X notation, re
    generalization:

    https://jirafeau.net/f.php?h=1mnluFoq

    Feel free to add your comments, reuse as you see fit, or put on your
    site.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to You on Wed Apr 7 02:51:16 2021
    On Monday, 5 April 2021 at 23:28:43 UTC+10, Nicola wrote:
    On 2021-04-05, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Anyway, I appreciate your own recount of those times, albeit somewhat
    critical of the sources I have cited. I do not feel qualified to comment >> on that any further, though.

    Hah. You will love the critique I have for the new list of academics, above.

    Too bad the people you mention, and often insult, are not here to
    provide their point of view. You know, the discussion would be much more interesting.

    Not really. The slaves of the “people I mention”, as well as of the “sources you have cited” post in this forum, so there is no question that their fetid legacy lives on in spirit. They are not here in person, true, but they and their legacy
    are here, destroying science, and hammering anyone who does not toe the communist party line. It is a protected space for academics.

    If you notice the interaction in this forum over the last 15 years, I am the only one who rejects the insanity and takes them on, point by laboured point. I too, did not invent the science, I stand on the shoulders of Science (as defined 350BC to 1911,
    when the destruction commenced) and Codd, I too, am acting in that spirit, a slave of that system.

    So what we have here is the the great war between sanity and insanity, being played out by second generation slaves. It used to be interesting when the golum army was active, but over the years, as O destroyed each of them, they have gone quiet, their
    only remaining weapon ad hominem, which advertises their position of total loser.

    The discussion /was/ interesting. But in the sense of resolution, after the battle is over and the issue has been closed by me, there is not the academic Middle to keep debating, I have Excluded it.

    It is with some gratitude that I welcome you, as leaving that crowd, and attempting to cross the great divide into reality (we will have to define that now). But as evidenced, it is slow, moving in fits and starts, often not resolving the issue
    discussed. And although you are trying hard to grow out of the academic mindset of non-reality, when cornered, you fall back into it.

    insult

    Sure, the tone might sometimes be insulting, it is very hard to discuss an idiotic concept without calling it an idiotic concept. But I take pains to ensure the charge is clear. If you have noticed any insult that does not have an underlying charge,
    please let me know.

    I do not retract my insults. You are free to protect the mentally ill; the deranged; the drooling idiots; the purposely evil saboteurs, who are established as academics, from normal humans. You have to decide between your loyalty to freaky academia and
    the truth.

    One the one hand academics argue that an argument from authority is poor, but hysterically, hypocritically, they venerate published academics, regardless of how idiotic their papers are. I don’t hold imbeciles in positions of authority. Genuine
    authorities rule, and teach. None of you guys do the smallest ruling or tiniest teaching of the science, all of you guys make rulings on anti-Relational filth, and teach anti-Relational pig poop as “Relational”. You want nice treatment ? Go to a
    brothel. From the real world, you will get disrespect, insults.

    What about the fact that for FIFTY years you have come up with nothing, while ranting and railing and caterwauling that you’ve producing the cutting edge of Jello. That is an insult to the undamaged intellect. You insult us, we will insult you back.

    Respect is something that is earned, not something that is freely given. You want respect, sure, DO SOMETHING RESPECTABLE. Come up with one thing that articulates or progresses the /RM/, come up with one academic that attacks the fifty years worth of
    anti-Relational filth. Zero. We get only upset that we did not toe the academic line and genuflect to your imbeciles that never did anything, but tell great stories to interviewers.

    Now you are the single exception. Please do not ask me to follow your lead and genuflect to imbecility. Come across the chasm and join me in the real world. Do not run back the safety, the reinforced bastion of insanity, at war with Reality.

    IDEF1X relies heavily upon Chen's shoulders.

    Nonsense. Give one example, one article.

    FIPS 184, Background section:

    Yes, it is written.

    So what, do you believe everything that is written ?

    You, an established academic, capable of examining these things, did not answer this:

    When I said “article” I did not mean a report somewhere, I meant a concept, that is recognisable.
    a. Name one thing, a method or rule or whatever, from the Chen ERD, that exists in IDEF1X.
    b. Name one thing FROM the /RM/ that Chen has in his ERD.

    [a] Therefore there is nothing in IDEF1X that is a contribution or “contribution” from Chen. No evidence at all. Nor surprise because the idiotic Chen ERD does not address the central article of the /RM/, the Relational Key, whereas IDEF1X does,
    and explicitly.

    What is written is lies.

    [b] Therefore there is nothing in ERD that can be identified as Relational, not one skerrick.

    c. Therefore given that (i) there is nothing Relational in ERD, (ii) the /RM/ has demands that ERD does not supply, (iii) that IDEF1X does supply, the use of ERD by all academics (except possibly you), is an anti-Relational act. Consistent with the
    freaks suppressing the /RM/, in order to promote their primitive concepts as the /RM/,

    So what, do you believe everything that is written ?

    Never. Not by you, either :-)

    Well, the scientific method is to question, to determine if there is evidence, and then to accept. But refusal to accept evidence or denial of reality, is not just unscientific, not just anti-science, but insanity, plain and simple. That passes for
    academics these days.

    The problem with academics is, they believe what the have written, they don’t wait for testing or peer reviews. “Here, MyLittlePony has rainbow mane, you can’t prove that that is false, therefore it is true. QED.” And then if anyone disagrees,
    they refuse to engage. “If you don’t believe that MyLittlePony has a rainbow mane, you are anti-semitic or homophobic or worse. I QED-ed you.”

    It is a game for small children, devoid of science. But played all the time, by academics, presenting that filth as “science”.

    On 2021-04-04, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    That captures the requirements correctly, but it introduces an entity (Employee FT_or_C) that does not exist in reality, it is not in the requirements and, in fact, is not inherently necessary. An IDEF1X model would have just three entities => IDEF1X is better than your IE by
    Occam's Razor. QED

    God help me. By virtue of the evidence, you had an agenda from the outset, which was not declared. Then you played a stupid game, no doubt Masters Level, that I was not aware of (I thought you were engaged in honest technical discussion), in order to
    lead me into a “trap”, and once there, you gleefully declare that the “trap” worked.

    Ok, I grant, in the confines of your mind, you “won”. Ok, your academic programming is heavy and deep, and much as you tried to understand normal logic, you could not, you reverted to the mindless, logic-less, academic mindset. You “win” but
    you learned nothing.

    Let’s try again, in the vain hope that honesty, your conscience motivates you to step outside your Masters level trick question.

    Concrete example:

    Pffft. Nothing concrete about it. It is a concept level, simple Logic, question. Calling it “concrete” merely sets up the deceit for the “trap”. Called an ass a horse does not transform the ass into a horse, it only deems the person as
    dishonest at best, or a deranged evil “scientist” at worst.

    Concept level question:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    I answered your concept level question with a concept level answer (note, Lntity level display, not Key level, not Attribute level).

    That captures the requirements correctly, but it introduces an entity (Employee FT_or_C) that does not exist in reality,

    Course it does.

    Your notion of “science” is in fact Materialism; Modernism, which artificially excludes science (Logic; the Four Laws; Causality; Hierarchy; Integration) that we have had from 350BC to 1911, such that you **van** pick out fragments of reality and
    treat them in isolation, divorced from their context and meaning (remember, you are learning about bringing meaning into the picture, very slowly, but you will not admit that which has excised meaning).

    Thus the academic [your] sense of reality is perverted. It is (a) in denial of reality, and 9) a concoction, that becomes a collective agreement, widely cited, a “reality”. It is very narrow and self-serving, which is why people who are not
    crippled by the academic mindset, who model reality, come up with and use pedestrian methods for forty years, that you alone from academia are finding out about today.

    Thus I, not being crippled; or ham-strung; or fed with pig poo, that is, relying only on undamaged science, which includes unperverted Logic, submit that Employee FT_or_C is a Logical Fact in Reality. Yes, it is not material at this silly conceptual
    level, so you being limited to Materialism, will be blind to the facts of reality.

    it is not in the requirements

    So what. That means nothing.

    1. The requirements for examples; class problems; and even Masters level tests, often leave something out (otherwise getting the answer would be a clerical, not technical, task). Check out the three ERDs that OP was labouring over. The solution is to *
    DETERMINE* the existence of FACTS that the entities in the ERD depend upon but were excluded (due to purposeful set up of a classroom problem, or criminal insanity [anyone giving those problems as solvable via ERD, as a part of Relational Data Modelling
    is criminally insane] ).

    It is rather common in Data Modelling of reality, to determine the existence of such Facts which are not obvious to the novice. But academics evidently are blind to such: they concoct a “reality” and deny that reality exists. Therefore nothing that
    they produce can be used in reality. Eg. nothing since 1970, since Codd. If you challenge this, name one article.

    2. If the example were a real one (exists in reality) as opposed to the classroom problem, then the producer of the test is an academic who is blind to reality, the Facts that exist but have no Matter (Materialism) to “sense” their existence.

    3. But here we have a deceit, the typical academic Straw Man kind, the academic presents a silly classroom problem as “concrete”. And forces the End of Story. Precisely because he dare not go further, because going further will destroy his
    smugness, his glee, his “victory”. And after forcing a premature and anti-scientific termination to the study of the article he alleges to be studying, he prematurely sings out a “QED”. You asked a Q with an E and got a D.


    and, in fact, is not inherently necessary. An IDEF1X model
    would have just three entities => IDEF1X is better than your IE by
    Occam's Razor. QED

    Nonsense. Those are not “facts”, they are all mere suppositions and speculations, which cannot be made about the thing, a simple conceptual problem, and its simple conceptual solution. It is too premature to be seeking Occam’s Razor/Proper Subset/
    Normalisation at this conceptual stage. You are deluding yourself by calling a problem that is conceptual, nowhere near concrete, a “concrete” problem.

    Note that your model, in a larger context, might be a better choice in
    some circumstances.

    Good. So you see that. Why not all circumstances ? Why is the solution that handles all possibilities in future stages (keeping in mind that this is the conceptual stage), precisely because it establishes the facts that exist in Reality, somehow
    problematic, and the concocted conceptual level model that is fraudulently branded “concrete”, that fails to recognise the facts in Reality, with no suggestion of handling all possibilities, somehow better ?

    Why is it that you attempt optimisation at the conceptual stage ? While making sure that the doctrine of **NOT** optimising at the early stages is taught ? Gee, an “extra” entity; an “extra” index; an “extra” INSERT. Hilarious. You do not
    have four wheels on the car yet, but you insist that wheel number three is “extra”.

    Why can you not see, that I have done this a thousand times, in Reality, in real world models that are implemented, and after about the third time of optimising the four-table model into the three-table model (not resolved but let’s not get distracted)
    and then reverting to the four-table model, I the real world practitioner, have determined that it is better to implement the plain Facts; the plain Logic, that never need changes, rather than the optimised Facts that always need change.

    Let’s see what happens if we progress the conceptual model falsely labelled “concrete” in the direction of concrete, just a little bit. Let’s see, what can we come up with is we contemplate the three concepts in Reality, with or without the
    establishment of the Fact of Employment. I hope you do not mind if I do not labour over each and every increment. I have added to page 4.

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    But with your modeling language, it's the only one
    you can build for the requirements above.

    So what. Why doe you need to build two or forty two models from this ? If the resolution is single, why is it diminished by others that don’t exist. The point it silly.

    You may counter this, but know in advance that I will not respond,
    because for me this matter is settled.

    As I determined at the beginning of this post, you had an agenda, you were only interested in validating it. Sorry, I do not validate it. So you end the engagement, having “proved” your point, in the isolation of your cranium, devoid of outside
    acknowledgement.

    The last word is yours!

    Ok. Look, I would love to validate your point, but before I can validate it, I have to understand it, and you have not defined it (described: yes, technical: no, coherent: no). You are the only academic who has started moving in the direction of the
    Relational Model/, and towards IDEF1X, I want to support that. God knows I have far more patience for you than the pig poop vendors.

    Please, define your problem in technical terms, as a definition (even Incomplete/“Partial” appears to be misunderstood, but I cannot confirm/deny that because you do not have a definition).

    As detailed, do not mix mutually exclusive classes, such as IDEF1X **and** IEEE notation for Subtypes.

    It appears to me, that you have taken up IDEF1X (hurrah, forty years late but hurrah), over ERD (another hurrah), but you are stuck in that academic mindset of defending academics; of promoting their false authority. Instead of taking up the real world
    practice of IDEF1X usage, you have taken up the original version (which is forty years out-of-date, and parts have been rejected by practitioners from day one), plus a superficial academic critique that you know to be false but you trumpet it anyway.

    The solution might be, to trust a theoretically solid practitioner, instead of taking the academic route (IDEF1X notation for subtypes) which is known to fail by everyone except academics.

    Note, I am not asking you how you would *implement* this situation; only >> how a data model would look like.

    There is a difference in your mind ?

    The difference between logical and physical.

    That difference is contrived. It is absurd. You turn it OFF and ON when convenient, as per the evidence. It is incoherent. Further, academics have no clue what LOGICAL means, but that should be a separate thread.

    your modeling language
    your IE

    Pardon me. As evidenced in the ERwin Methods Guide, IE was established and known long before IDEF1X and the idiotic ERD came along. It belongs to IEEE, an international Standards body, it does not belong to me. I just use the Standard.

    The language (semantics) is FOPC. As articulated by Dr E F Codd in his /RM/. And his RA. And articulated in IDEF1X.

    IDEF1X lacks the definition of IEEE subtypes that we had prior. Get over it.

    Last, again, please define your thus-far undefined and incoherent problem, so that we can resolve it. Or at least agree that there is a problem. Terminating the engagement is anti-science, anti-transparent. I lose nothing, you lose your credibility.

    I will get to the other posts over the next few days.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Wed Apr 7 03:31:54 2021
    Nicola

    On Tuesday, 6 April 2021 at 04:48:54 UTC+10, Nicola wrote:
    On 2021-04-04, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:
    On Sunday, 4 April 2021 at 20:50:43 UTC+10, Nicola wrote:

    Concrete example:

    - An Employee may be a Consultant;
    - An Employee may be a Full-Time Employee;
    - An Employee may be neither a Consultant nor a Full-Time Employee;
    - An Employee cannot be both a Consultant and a Full-Time Employee.

    I fail to see the problem, I must be missing something. Sorry.

    Page 4

    This is my comparative assessment of IE vs IDEF1X notation, re generalization:

    https://jirafeau.net/f.php?h=1mnluFoq

    There is a problem with that. Actually two. First, let me confirm that my docs are in the public domain, and you are free to use them. But a copyright notice generally means “use as is” and “if used, you must include the copyright notice”. In
    these days of the internet, that means, most people refer to the doc. Cut-paste is frowned upon, because (a) it can be misused, and (b) the such content is removed from the context.

    In future, please feel free to use my docs and to refer to them, please do not-cut-paste.

    The second problem is, you have performed a nice Reverse Straw Man. This damages you more than it does me. I have no comment whatsoever re the matter (material) in your doc. I am only addressing the use of my graphics under your headings, your context.
    I am not saying you are dishonest (a Straw Man is always dishonest), but that in the Modern “science” using the Straw Man is a well established method for “argumentation”, and you are schooled in it; indoctrinated in it, and you are using it
    unconsciously.

    Think about this. In reality, a horse exists. There are pictures of horses. You have a concept, which is an abstraction, not real, it does not exist in reality (I am explaining something, not commenting on your proposition). Let’s call it ABCDEF.
    So you write it up, and present ABCDEF-1; ABCDEF-2; etc. And under each section, you attach a picture of a different horse.

    You might have mulled over thee ABCDEF for years, it might be very “real” to you, but it does not exist. It is a Reverse Straw Man because you have substituted something real for something false (whereas the missionary Straw Man substitutes
    something false for something real, and then burns it). Because the content that has been substituted belongs to me, it is I who has the task of burning it. Sorry.

    You cannot use good graphics under those headings, it is a mis-representation. That is all. Please feel free to re-issue your doc with references [not cut-pastes] to my doc.

    This is what respectful correction looks like:
    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20Non-Problem%20Proposal%20-%20Response.pdf

    Feel free to add your comments,

    If you do not mind, I would rather not. I am very happy to engage with you on all subject matter related to Relational data science, and I would like to maintain that friendliness. I am happy to fulfil your requests, whether answering questions, or
    providing decent commentary. But your doc, what you are trying to say, is incoherent. Right now there is no problem in the use of IDEF1X, but given your definition thus far, you appear to have created one, and a complex solution to go with the non-
    problem. I can’t say for sure because the definition is poor.

    Further, your intent, the final goal, your agenda, is not declared (but implied).

    Therefore I would ask you to excuse me from that request, this one time.

    If you care to progress the work to the point of making a coherent proposal, I would be happy to comment. Obviously, prior to that, we can discuss it in this thread, to afford that progress.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Wed Apr 7 18:51:49 2021
    On 2021-04-07, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    Nicola

    This is my comparative assessment of IE vs IDEF1X notation, re
    generalization:

    https://jirafeau.net/f.php?h=1mnluFoq

    There is a problem with that. Actually two.
    [...]
    In future, please feel free to use my docs and to refer to them,
    please do not-cut-paste.

    My apologies. That document is not online any more.

    The second problem is, you have performed a nice Reverse Straw Man.

    I think that the misrepresentation is more in the eyes on the beholder.
    Anyway, here is a revised document (with references this time):

    https://jirafeau.net/f.php?h=2NbPmq6L

    What I see is that both notations have deficiencies, which are easily
    fixed. Once that is done, they become completely equivalent. IE's only advantage is being vastly more popular.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Nicola on Wed Apr 7 19:06:04 2021
    On 2021-04-07, Nicola <nicola@nohost.org> wrote:
    Anyway, here is a revised document (with references this time):

    Fixed a typo:

    https://jirafeau.net/f.php?h=1WA2Cs0R

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Wed Apr 7 15:15:46 2021
    On Thursday, 8 April 2021 at 04:51:55 UTC+10, Nicola wrote:
    On 2021-04-07, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote: Nicola

    This is my comparative assessment of IE vs IDEF1X notation, re
    generalization:

    There is a problem with that. Actually two.
    [...]

    In future, please feel free to use my docs and to refer to them,
    please do not-cut-paste.

    My apologies. That document is not online any more.

    No worries.

    The second problem is, you have performed a nice Reverse Straw Man.
    I think that the misrepresentation is more in the eyes on the beholder.

    I explained my perspective.

    Anyway, here is a revised document (with references this time):

    https://jirafeau.net/f.php?h=2NbPmq6L

    What I see is that both notations have deficiencies, which are easily
    fixed. Once that is done, they become completely equivalent. IE's only advantage is being vastly more popular.

    That is a new presentation. Worthy of discussion. Certainly, you may have insights as to why that is so, how you reach that conclusion, but that is unknown to me, you have not discussed it here, so I can neither agree nor disagree.

    This post does not respond to that, only to the content in the revised the doc.


    On Thursday, 8 April 2021 at 05:06:08 UTC+10, Nicola wrote:
    On 2021-04-07, Nicola <nic...@nohost.org> wrote:
    Anyway, here is a revised document (with references this time):
    Fixed a typo:

    https://jirafeau.net/f.php?h=1WA2Cs0R

    Responding to issues in the doc only.

    0. Intro. Ok, now I know the purpose. Comments are relative to that declaration.

    a. Re links. It seems in each instance, the entire text box is “hot”, not just the words in “hot” colour and underlined. Is that what you intend ? It also makes the text in the text box out os reach (eg. for copy-paste).

    b. Re Place. In my DM, I am displaying the Entity level symbol for this entity, on a page that is displaying Attribute level. That means that Place is fully defined somewhere else (another page) in the DM. What does the dot-dot-dash line intend to
    convey ?

    c. AK. The order of the attributes has great significance in many areas. In the context of academic data modelling, ok, it has to be given before the Physical. In real life, it is given whenever more than one attribute is defined for the AK. ERwin of
    course has to demand it, and it does. The mistake is in the ERwin Methods Guide, where the sequence is *not* given and therefore suggests that it is not always required. That is false.

    d. Cardinality. The expected (universally understood) notation is:
    __ Parent::Child
    __ 1::0-to-1 -- eg. optional attribute
    __ 1::0-or-1 -- equally understood
    This is new:
    __ 1:1-0:1

    1. Other than the minor issues above, I agree, that is the correct IDEF1X rendition of [Optional Attribute (Not Subtype) ]. But ...

    There is no such thing as “Subtype” in IDEF1X. Use “generalisation” and “category” throughout, to be faithful to the IDEF1X terminology.

    2. There is no such thing as “Exclusive” “Subtyping” in IDEF1X. I suggest remove the page. Use “generalisation” and “category” throughout, to be faithful to the IDEF1X terminology.

    (Subtype; Exclusive, are IEEE terms. Basetype; Non-Exclusive are my corrections to incorrect ERwin terms.)

    In a technical doc that recasts IEEE into IDEF1X, I would use only IDEF1X terminology. If you have to make reference to IEEE terms, then label it as such.

    3. I know what it is but I have not used Incomplete Categorisation, so my comments on this point exclude that of correctness against [Incomplete Categorisation].

    a. You are attempting to use “Partial” as a synonym for Incomplete (not the other way around).
    - Why introduce yet another label ? For what purpose ? Is Incomplete not definitive enough ?
    - “Partial” is not adequately defined (“not every” does not indicate if 1 is the minimum)

    b. I don’t agree with your definition (yellow panel in the middle). The points are too many, here are a few:
    - “is-a” is an ambiguous term, not related to the /RM/ or IDEF1X. If you use it, it needs to be defined.
    --- (The IEEE meaning is strictly {Exclusive|Non-Exclusive} = {is one of|is any of}. Some people make it more strict {is exactly one of|is at least one of} but I declare that that is superfluous, the former is easily understood.)
    - declarations SUCH AS “business party and a customer must be treated as a single logical unit” are valid for IEEE Subtypes, I don’t see how they apply to IDEF1X Categories.
    - in the example, the declaration “business party and a customer must be treated as a single logical unit” violates (a) logic, and (b) IDEF1X Categories.
    --- “when the business part[y] is a customer” is contrived.
    - the declaration “customer and business party are the same entity” is patently false: the model shows two distinct entities.
    - Finally, a Category with a single member is a gross Normalisation error, it is corrected by making it an Optional Attribute.
    --- Thus the DM on the left is false (impossible, if being true to IDEF1X terminology; false as detailed above; gross error in
  • From Derek Ignatius Asirvadem@21:1/5 to All on Wed Apr 7 17:54:31 2021
    On Monday, 5 April 2021 at 23:50:56 UTC+10, Nicola Vitacolonna wrote:
    On 2021-04-05, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:
    There are two orthogonal aspects in a generalization hierarchy:

    I don’t care for the title, it is some academic artefact, of relevance to academia only. I know that what you mean is the Basetype-Subtype clusters that we have had in databases, decades before those papers
    were written. And again, I am very interested in modelling data the
    way it actually exists, not limited to any perception.

    Further, I accept wholeheartedly that the correct observation of genus
    vs species is an essential part of genuine Analysis, here Data
    Analysis.

    1. are the subtype mutually exclusive or not?

    Ok. One category is. Because they are Exclusive, we [normal people,
    not prone to reading academic fantasies, unless forced] call the
    category:
    ____Exclusive
    In Logic, that is an XOR Gate [Discriminator] on the Basetype that identifies the single Subtype. It is Semantic (examples in the
    progressing doc).

    The remaining category, since it is not Exclusive, and certainly not inclusive, is called:
    ____Non-Exclusive
    The Subtypes are not mutually exclusive. There is no Discriminator. Typically, the Basetype has more than one [but not many or all]
    Subtypes. Note that each Basetype-Subtype pair must be perceived as
    a logical row.

    2. is every instance [row] of the parent entity an instance [row] of
    some child entity ("subtyping" in your terminology), or not?

    For Exclusive: yes, exactly one Subtype row.
    For Non-Exclusive: yes, one or more Subtype rows.

    No, the distinction I have made is between subtyping/not subtyping.

    I do not see how. Your stated heading is “two orthogonal aspects in a generalization hierarchy”. Where is this “distinction between subtyping/not subtyping” ?

    So, four combinations.

    Whoa. What four combinations ??? How can you combine Exclusive with Non-Exclusive ???

    I thought that was clear enough, but it mudded the waters instead. It doesn't matter, though, because the matter is settled for me, as per my previous post.

    That response is probably obsolete, please continue the exchange.

    How does one COMBINE opposites ??? Naming it “orthogonal” may allow a 2 x 2 grid, but the content would be meaningless. Eg. if you are trying to do something along the lines of the UNCORRECTED ERwin Mthods Guide p69, no, I have corrected it and you
    have accepted it.

    In IDEF1X notation, "non-exclusive subtyping" is the problematic one.

    If you say so. But you are mixing things up: in IDEF1X Notation,
    there is no “Non-Exclusive” Subtyping, there is only {Complete|Incomplete}.

    Exactly. But "non-exclusive subtyping" is not a notation, it is
    a concept.

    ???

    It is first a concept, absolutely.
    It is a concept in IEEE, which existed prior to IDEF1X.
    It is a concept outside IDEF1X.
    The concept has a notation. (In the same way that a concept has a word.)
    The IEEE concept has an IEEE notation.
    It is both a concept and a notation.

    How can that be denied ???

    And IDEF1X has not straightforward notation for that.

    The concept is outside IDEF1X.
    It is not that it “has not a straightforward notation”, it has no notation whatsoever for the concept that it does not have.

    What is marked with ? corresponds to an "incomplete categorization"
    in IDEF1X terminology.

    Ok.

    Using IE notation, how would you model an
    "incomplete categorization"?

    Well, you can’t. Because it does not exist in IE. Because it does
    not exist in reality.

    Look who is in denial of reality.

    Stop trying to trip me up. Try to understand what I am saying, in the context of the exchange. Otherwise we will never get to closure.

    I am taking the IEEE mindset. If you wish to understand that, and you have to, in order to mount an argument against it, try to understand it. Ask questions. Do not merely perceive the IEEE mindset from a fixed IDEF1X concept-and-notation mindset,
    because that prevents understanding.

    So what am I trying to say in this context ? I have already stated, I cannot understand your cross-hatch pseudo-tabulation. I am trying to understand this thing [?]. You said it “corresponds to an "incomplete categorization" in IDEF1X terminology”.
    It can’t. Because that thing [incomplete categorization] does not exist in IEEE. It is foreign (not merely “orthogonal”). Stop there and agree/disagree.

    ----

    Now for the next point, after the previous point has been addressed. I say that IEEE does not have [incomplete categorization] because it does not exist in reality. That is not a denial of reality (it is, only if you provide an example of such from
    reality). A mere declaration will not suffice.

    So why do I say such thing, how can it be true ? Because the IDEF1X [incomplete categorization] is not defined, the definition given is not technical, not Relational, not a Predicate that can be implemented (recall, the foundation sequence is: FOPC; /RM/
    ; Modelling; SQL). It is merely “not Complete”.

    //For understanding, virtually all Categories, except the most rudimentary (such as Male/Female), would be Incomplete, because they will never be completed, they can be extended in the future. Thus {Complete|Incomplete} fall into the category of
    meaningless. Thus no one uses it. And particularly since the IEEE Subtypes existed prior, we have no reason to take up this meaningless new categorisation.//

    Now if you have a better understanding of IDEF1X[incomplete categorization], or a better definition, please provide.

    My Employee[Full-Time,Consultant]
    example is just that.

    No. It is a classroom exercise at the conceptual level only, falsely labelled “concrete”. And then elevated to the status of an universal, by you alone. I have already rejected the requirement as being incomplete, and invalid in terms of providing
    an example of a generic problem. Yes of course it is IDEF1X[Incomplete] because you made it so, it is your example.

    //The burden of proof is on the proposer; the prosecution, not on the defence. It is not for me to disprove your proposal, it is for you to prove it, independently.//

    Similarly to the above, "incomplete
    categorization" is not a notation, it is a concept.

    No. As explained above, it is an [IDEF1X] concept first, and an [IDEF1X] notation second. Foreign to IEEE concepts and notation.

    And your IE has not
    straightforward notation for that.

    Well, IEEE has NO notation for it, because IEEE has NO concept for it. It is foreign. You can’t fit a square peg into a round hole.

    Now if you are trying to say that there is something lacking in the IEEE concepts-and-notation, just explain it, without using IDEF1X concepts-and-notation. If you use your Employee{Full-Time|Consultant} example again, recall I have already proved [not
    my job] that it is not complete enough to consider as a problem; a lack. The notion that it can be shown in some other notation (eg. Swahili or Chinese pictographs) is irrelevant, it does not prove a lack in the IEEE concepts-and-notation.

    Analogy. In the real world, we have only Male/Female, anyone who denies their physical reality is insane. It does not matter what they say they are because they are insane. When a man goes to a doctor and asks for a hysterectomy, he gets treated for
    insanity, not for a hysterectomy.

    Now the insane person comes around, and gleefully declares that his/her/its/shits list of concocted “genders” is better because it has more members and it is forever changing and it will never be complete. That even Fakebook has 104 Genders listed.
    My response is to give it a sedative and a warm bed. Your response is to declare that there is something lacking in the {Male|Female} set.

    Another one. The rag-and-bone man comes along and says he has a child with both male and female organs. Ok, no problem. But then he says it violates the {Male|Female} set. No, it does not, his child is a deformed freak, 0.0001% of the population, due
    to his wife being his niece. The deformed; the abnormal, prove nothing about the normal, the only thing they prove is about the abnormal.

    So if you are trying to say that IEEE concepts-and-notation is lacking in some way, say it squarely, in technical and IEEE terms, not in Swahili; Chinese; insane; or IDEF1X terms.

    Nevertheless, because the IDEF1X notation is inferior, a lower-order concept, it can be progressed to a superior, higher-order concept.
    Just get rid of the notion of “incomplete/complete”.

    Without such a notion, you are forced to model "incompleteness" of
    a generalization hierarchy with 1:1-0:1 relationships. While you can do that, it may not be the most natural or more economical way of modeling
    some situations, witness your Employee[Full-Time,Consultant] solution.

    I think that is mostly answered. The bits remaining are:
    - nothing is “forced”, that is emotional nonsense
    - there is no “incompleteness” or incompleteness in IEEE concepts-and-notation
    - if you explain how IEEE IEEE concepts-and-notation is lacking, I would be happy to respond

    Yes, I agree IDEF1X concepts-and-notation is broken. That is why I have never used it, that is why I have never seen anyone else use it. (Except you, but you are an academic purist, trying to use something that was deemed obsolete and irrelevant forty
    years ago, and resisting the actual use by practitioners during those forty years.) No, I will not help you improve or fix that broken thing, because it is obsolete and irrelevant.

    Whereas I am very interested in any genuine problem with the IEEE concepts-and-notation. I will help you sort it out, and certainly if an amendment is necessary, I will assist in defining such.

    (I don’t think it likely, because it has stood for forty years since IDEF1X came out, and no one has raised such. You are new to this, so it is likely a matter of understanding.)

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Thu Apr 8 22:02:44 2021
    On 2021-04-07, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    Responding to issues in the doc only.

    a. Re links. It seems in each instance, the entire text box is “hot”, not just the words in “hot” colour and underlined.

    Bug. Fixed.

    b. Re Place. In my DM, I am displaying the Entity level symbol for
    this entity, on a page that is displaying Attribute level. That means
    that Place is fully defined somewhere else (another page) in the DM.
    What does the dot-dot-dash line intend to convey ?

    Exactly the same. It's one of the very few additions to ISO 31320:2
    compared to FIPS 184.

    d. Cardinality. The expected (universally understood) notation is:
    __ Parent::Child
    __ 1::0-to-1 -- eg. optional attribute
    __ 1::0-or-1 -- equally understood
    This is new:
    __ 1:1-0:1

    That is (min parent):(max parent)-(min child):(max child). But I am not morbidly attached to it. Changed.

    1. Other than the minor issues above, I agree, that is the correct
    IDEF1X rendition of [Optional Attribute (Not Subtype) ]. But ...

    There is no such thing as “Subtype” in IDEF1X. Use “generalisation” and “category” throughout, to be faithful to the IDEF1X terminology.

    Ok.

    2. There is no such thing as “Exclusive” “Subtyping” in IDEF1X.

    ISO 31320:2, §3.1.21 (emphasis mine):

    "category entity: An entity whose instances represent a **subtype** or subclassification of another entity (generic entity). Syn: subclass; **subtype.**."

    §9.6.1.2 (again, emphasis mine):

    "Since an instance of the generic entity may not be an instance of more
    than one of the category entities in the cluster, the category entities
    are **mutually exclusive**".

    I suggest remove the page.

    Overruled. That example is good as it is—except perhaps for terminology, which I have updated.

    Use “generalisation” and “category”
    throughout, to be faithful to the IDEF1X terminology.

    Sustained.

    (Subtype; Exclusive, are IEEE terms.

    Well, IEEE does not hold a trademark, I guess. As witnessed above, other standards use them, as well.

    Basetype; Non-Exclusive are my
    corrections to incorrect ERwin terms.)

    I agree that "Non-Exclusive" is more accurate than "Inclusive". I do not
    recall what term ERwin uses instead of "Basetype".

    3. I know what it is but I have not used Incomplete Categorisation,
    so my comments on this point exclude that of correctness against
    [Incomplete Categorisation].

    b. I don’t agree with your definition (yellow panel in the middle).

    Simplified.

    - declarations SUCH AS “business party and a customer must be treated
    as a single logical unit” are valid for IEEE Subtypes, I don’t see how they apply to IDEF1X Categories.

    I do because I see no difference between "complete categorization" and "exclusive subtyping" in terms of the predicates they represent. If
    there are any, please let me know.

    - in the example, the declaration “business party and a customer must
    be treated as a single logical unit” violates (a) logic, and (b)
    IDEF1X Categories.

    You are quoting the unqualified sentence.

    --- “when the business part[y] is a customer” is contrived.

    That completes the sentence above. But ok, it's contrived.

    - the declaration “customer and business party are the same entity” is patently false: the model shows two distinct entities.

    Let me rephrase it: each instance of a Customer entity represents the
    same real-world "thing" as its associated instance of the Business Party entity.

    - Finally, a Category with a single member is a gross Normalisation
    error, it is corrected by making it an Optional Attribute.

    Why is that? To me it looks perfectly fine.

    c. To be clear, in any case (IDEF1X xor IEEE) Customer is definitely
    not BusinessParty.

    Go back to the Predicates to check: Business Party
    is 0-to-1 Customer. Which of course is an optional attribute, an
    optional Fact, of BusinessParty.

    A Business Party is 0-to-1 Organization. Why does that not make it an
    optional fact of Business Party?

    4-Non-Exclusive Subtyping

    a. There is no such thing as “Non-Exclusive Subtyping” in IDEF1X.

    This is the issue I originally pointed out in IDEF1X treatment of generalization.

    I don’t know what the IDEF1X equivalent of “Non-Exclusive Subtyping” would be, or what you think it would be, thus I can’t help you there.

    Exactly, that's not clear. That's where I find IDEF1X notation lacking.

    4-Partial Specialization with Mutually Exclusive Child Entities

    a. Categorisation, not Specialisation.

    b. Re the “Nicola IDEF1X” link. Goes to my doc that supports the
    entire discussion, progressively: I don’t mind, but is that what you
    want ? Page 4 specifically, which has changed (as noted in my
    previous post) ? To me, that page provides a number of models, the
    purpose of which is to foster discussion in this thread, it is not
    definitive of anything.

    Yes, I am referring to the latest revision of your document.

    I have simplified the document a bit. Note that I have also reordered
    the sections:

    https://jirafeau.net/f.php?h=180L-e4H

    g. The new symbol.
    Text box on right. I don’t understand how you can apply “Incomplete specialisation [Categorisation]” which is a valid IDEF1X term, to the
    IEEE classifications, let alone to a specific IEEE symbol, which has
    a defined meaning totally unrelated to the IDEF1X classifications.

    The classifications are not "totally unrelated". They are strictly
    related, and with small changes, they are equivalent, as I said, in the
    sense that they represent the same first-order predicates. If you are
    not convinced, show me a counterexample.

    - Further, I do not understand how it is “the same meaning as” the
    IDEF1X Incomplete Category symbol.

    Graphical rendition of the same first-order predicates.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Nicola on Fri Apr 9 08:31:04 2021
    On 2021-04-08, Nicola <nicola@nohost.org> wrote:
    I have simplified the document a bit. Note that I have also reordered
    the sections:

    Here is v3, which is identical to v2, except that I have added a page
    (§6) with predicates, which I believe is what you will be more
    interested in dissecting:

    https://jirafeau.net/f.php?h=18wYFi9U

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Fri Apr 9 02:54:48 2021
    Nicola

    Thanks for yours. Good work.

    I think one item of difference, generally, re the 1997 revision of IDEF1X, because (a) it validates the anti-Relational “identity-based”, and (b) it is watered down (eg. allowing “Subtype” for Category; etc), is that I rejected it. So there is a
    difference between the original IDEF1X and the revision, my position is the original, and yours is the revision. I will try to hold the 1997 mindset for this thread.

    The second general item is, the purpose of your venture is not completely clear to me. This has gone back-and-forth a bit, and your attempt to demonstrate the need for a new symbol seemed like the end goal (and thus we were discussing whether the
    condition for it exists), and I was arguing from strict IDEF1X. But now it seems like you trying to cover any and all ways of **classifying** Subtype sets, and that uses the new loose and floppy IDEF1X revision terminology. Thus the comments in my
    previous post may be too strict.

    I have no option. I remain in this class, in this hierarchy:
    - strict FOPC
    --- Predicates
    - strict /RM/
    --- Relational Predicates
    --- Relational Normal Forms
    - strict Data Modelling
    - strict IDEF1X
    --- original
    --- plus IEEE mods (loosely described in the ERwin Methods Guide; strictly defined in my SG docs)
    --- as used for forty years
    --- revision rejected
    - strict SQL.

    I will respond to your post first, and then to your revised doc V2.

    On Friday, 9 April 2021 at 08:02:50 UTC+10, Nicola wrote:
    On 2021-04-07, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    d. Cardinality. The expected (universally understood) notation is:
    __ Parent::Child
    __ 1::0-to-1 -- eg. optional attribute
    __ 1::0-or-1 -- equally understood
    This is new:
    __ 1:1-0:1
    That is (min parent):(max parent)-(min child):(max child).

    Well it is redundant because in the Relational world, an optional parent [Null FK] is prohibited.
    - Min parent = 1
    - Max parent = 1
    - Max parent > 1 is hysterically stupid
    - Min parent < 1 is anti-logic

    The IDEF
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Fri Apr 9 13:59:03 2021
    Derek,

    the last version I have linked in my previous post (v3) has the
    predicates you have asked for.


    On 2021-04-09, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    I think one item of difference, generally, re the 1997 revision of
    IDEF1X, because (a) it validates the anti-Relational “identity-based”,

    The "identity-based" part can be ignored. What is relevant is Section 9,
    which is essentially a copy of FIPS 184, minus the methodology and the first-order formalization. But I'll do as you prefer and refer to FIPS
    184 directly (I assume that FIPS 184 is "the original" you mention).

    The second general item is, the purpose of your venture is not
    completely clear to me. This has gone back-and-forth a bit, and your
    attempt to demonstrate the need for a new symbol seemed like the end
    goal

    Yes.

    (and thus we were discussing whether the condition for it
    exists), and I was arguing from strict IDEF1X. But now it seems like
    you trying to cover any and all ways of **classifying** Subtype sets,

    That's the purpose of adding a new symbol: to be able to express all
    kinds of generalization hierarchies.

    and that uses the new loose and floppy IDEF1X revision terminology.

    Not new, not floppy. See below.

    On Friday, 9 April 2021 at 08:02:50 UTC+10, Nicola wrote:
    2. There is no such thing as “Exclusive” “Subtyping” in IDEF1X.

    FIPS 184, ("Definitions" section):

    «2.22 Entity, Category: An entity whose instances represent a sub-type or sub-classification of another entity (generic entity). Also known as
    sub-type or sub-class.»

    «2.24 Entity, Generic: An entity whose instances are classified into one
    or more sub-types or sub- classifications (category entity). Also known
    as super-type or super-class.»

    «2.48 Relationship, Categorization (Category): A relationship in which instances of both entities represent the same real or abstract thing.
    One entity (generic entity) represents the complete set of things the
    other (category entity) represents a sub-type or sub-classification of
    those things [...] Each instance of the category entity is
    simultaneously an instance of the generic entity.»

    So, a category "is also known as" a sub-type.

    p. 19 (emphasis mine):

    «Since an instance of the generic entity cannot be associated with an
    instance of more than one of the category entities in the cluster, the
    category entities **are mutually exclusive**. [...] an entity can be the generic entity in more than one category cluster, and the category
    entities in one cluster **are not mutually exclusive** with those in
    others [the male/female example follows, btw]»

    So, exclusive/non-exclusive is covered quite explicitly. More on that
    below.

    - declarations SUCH AS “business party and a customer must be treated
    as a single logical unit” are valid for IEEE Subtypes, I don’t see how >> > they apply to IDEF1X Categories.

    I do because I see no difference between "complete categorization" and
    "exclusive subtyping" in terms of the predicates they represent. If
    there are any, please let me know.

    Ok.
    1. Where, pray tell, in the definition of IDEF1X[Complete
    Categorisation] (preferably the original, but ok, the revised if you
    must), excluding your interpretation, does it state that the members
    are mutually exclusive, as it states in the IEEE[Exclusive Subtype].

    Besides the above, FIPS 184, Annex B also contains a first-order
    formalization of IDEF1X, which also asserts the exclusivity requirement. Specifically (the labeling starts with "C" although the section is "B"),
    p. 116:

    «C1.2 The categories within a cluster are mutually exclusive.
    For 1 <= i < j <= n, add a rule

    (for all *)(not exists(v: e_i): I, exists(v: e_j: I))

    to the theory

    C1.3 If the categorization is complete, ensure a category instance for
    every generic instance by adding the rule

    (for all *)(if exists(v: e): I
    then exists(v: e_1): I or ... or exists(v: e_n): I)»

    2. Where, pray tell, in the definition of IEEE[Exclusive Subtype],
    excluding your interpretation, does it state that the set of members
    is complete [ie. there will not be a new member added in the future],
    as it states in the IDEF1X[Complete Categorisation] definition
    (preferably the original, but ok, the revised if you must).

    Give me a standard reference where I can read "the definition of
    IEEE[Exclusive Subtype]". Without that, the definition I am assuming is
    from your Subtype document, where you state (p. 2): "For each Basetype,
    there is exactly one Subtype", which entails that for every instance of
    the basetype, there is an instance of subtype 1 or ... or subtype
    n (essentially, C1.3 above).

    6. My Subtype doc, §4 Optional Attribute[Group], Not Subtype:
    “If the Basetype can exist without any of the Subtypes, then it is not
    a Basetype::Subtype Relation, it is an ordinary Relation, which is an optional child (1::0-1)”

    With this premise, your reasoning is correct, I am not arguing against
    your inferences. The premise is a reasonable assumption, too. But it's
    not an absolute truth. I could equally state:

    If the generic entity can exist without any of its categories, then it
    is still a generalization structure. Hence, a Business Party is
    a generalization of a Customer (a Customer *is* a Business Party),
    although not all Business Parties are customers.

    8. You have not exposed the Predicates, as you should.

    Knock yourself out. Give the Predicates.

    Give the Predicates.

    See my document v3, §6.

    - the declaration “customer and business party are the same entity” is
    patently false: the model shows two distinct entities.

    Let me rephrase it: each instance of a Customer entity represents the
    same real-world "thing" as its associated instance of the Business Party
    entity.

    Nonsense.

    So, except from your own documents, what else is not nonsense? You have
    asked me to point out "articles", "standards". I have complied, with
    titles, page numbers, paragraphs, verbatim quotes. Everything wrong,
    false, fragmented and invented, of course. I start to believe that if
    I quoted one of your documents as a reply to some of your objections,
    you would call that nonsense as well!

    c. To be clear, in any case (IDEF1X xor IEEE) Customer is definitely
    not BusinessParty.

    No answer ?

    You are right. I'll defer further comments after you have seen §6 of my document (v3).

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to - I on Sat Apr 10 00:27:54 2021
    On Friday, 9 April 2021 at 23:59:07 UTC+10, Nicola wrote:
    On 2021-04-09, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:

    Nonsense.

    You have
    asked me to point out "articles", "standards". I have complied, with
    titles, page numbers, paragraphs, verbatim quotes.

    Thank you.

    Everything wrong, false, fragmented and invented, of course.

    No, you are getting frustrated and mixing things up nicely.
    - I could not have said all the references were wrong, because you just gave it to me in this post.
    - I did say that the single reference that was a superficial critique was a superficial critique.
    - I did say the fragmentation is a general problem for all people who are “educated” in the Modernist “science” system, and you are no less affected by it
    - I said the inventions are premature, that you have to progress them further.

    So, except from your own documents, what else is not nonsense?

    It appears you are experiencing difficulty. From my side, it is a bit upsetting that you jump from one mindset to another. From someone who has done a few hard yards, experienced difficulties, realised the subject matter is a mess, so you sought out
    the oracle and climbed the mountain. But then you did not accept the oracle and you argued against the single truth. You want the answers, but you want them delivered in your re-framed perspective.

    Part of the problem is, I am following your lead in this thread. No complaint, but you have to understand that. The question-and-answer style, interspersed with accusations, is laborious.

    As a counter-point consider this. I am known for my Standards, for rock-solid methods that do not change (truth is permanent, it does not change). Of course each of those Standards is written up, included in any project for a customer, which means IP
    and income. I have a number of docs intended for public consumption, which are the bare bones to get people going (no cost). Obviously, those docs are each a fraction of the customer versions.

    I can’t give you the customer version for my IDEF1X document (it is illegal to give away something that I charge others for). You have seen three docs related that are published. All we have been doing in this entire thread is, closing that gap. Now
    the fastest way is, closing it from my side: you have to be open to education, and I deliver it in one practised sequence. You won’t do that, you want to close it from your side; your perspective: a Q&A process, dealing with only the points you bring
    up. That leads to more points that you did not know about, and so on. So it is laborious for both parties.

    Another way of understanding it is, I am very much top-down, I explain things in the natural hierarchy. You are very much bottom up, and as detailed, schooled in fragmentation, which is the fragments at the bottom, up.

    Analogy. Recall my little discourse on Atomicity. It often happens on a project where I am responsible for writing V2 of the customer’s horrendous V1 database, that the developers want to know how come my SQL runs at about 1,000 times faster than
    theirs. So I am happy to teach them. As you know Codd asks us to think in terms of SETS, and SQL is of course a Set-oriented language. So the main subject is how to deal with Sets. While most of their code is not procedural, it is very superficially
    Set-oriented (think OO/ORM cretins who are only interested in “poishistance”). The ones who can cross over to full Set-oriented queries obtain say 100 times the speed. The ones who are stuck in their row-to-row method obtain nothing. I have given
    up trying to teach Chinese: they desperately want it but are so closed, they cannot receive it.

    I need you to stop working with fragments, stop relating fragments of one entity to fragments of another entity (because there is no connection between the fragments, only imagined), and start treating each entity as an Atom and connect the entities via
    their Atomic Relational Keys.

    I start to believe that if
    I quoted one of your documents as a reply to some of your objections,
    you would call that nonsense as well!

    I will overlook the rhetoric, and you are free to get past it and make an actual finding of something wrong.

    FIPS 184, ("Definitions" section):

    That (and the detail you provided, thanks) caused me to go back to the archives and dig my FIPS 184 doc out. God help me. The exercise brought back the memories, and also the docs that I have, that have not changed in thirty years.

    When IDEF1X came out, and my customers wanted it, I engaged with it. It was a mess. I wrote a doc that:
    - determined the errors, and excised them
    - determined ambiguities, and if possible tightened up the definitions, and if not dismissed them
    - of course, where a Standard pre-existed (IEEE) I used that, I did not invent anything
    The value is in the straightened-out and totally clarified [IDEF1X SG Qualified] document, not in the messed up FIPS doc.

    I have done this business of Relational Data Modelling for over thirty years. I have gotten so used to implementing [SG IDEF1X Qualification], which as you can perhaps imagine, in all those project teams, we discussed and implemented as “IDEF1X”,
    not as [IDEF1X SG Qualified]. It was only my dealing with your FIPS 184 reference that exposed the fact that I have entirely forgotten about what the original IDEF1X really is, that I worked with thirty years ago.

    So a big mistake on my part has been exposed. In this thread, up to this point, all my references to an IDEF1X Standard that is rock-solid and reliable, is sorry, actually references to my corrected and qualified version of IDEF1X.

    You are right. The original IDEF1X Standard, FIPS 184, is a mess. You can’t use it.

    If and when you recognise that there is a man who has the correct and mature knowledge of (a) Relational Data Modelling, and (b) IDEF1X as an important part of that, which means (c) a method of how to implement IDEF1X without problems, come to me. I can
    t give [IDEF1X SG Qualified] to you, but I can give its content, in answer to questions, or [top-down] in a lecture style.

    So, except from your own documents, what else is not nonsense?

    I don’t know of anything else that is not nonsense. Everything else that I have seen on this subject matter other than [IDEF1X SG Qualified] is nonsense, yes. The original IDEF1X definition; the 1997 revision; the superficial critique; the ERwin
    Methods Guide.

    And who is to blame for that, who bears the responsibility ? The pig poop eaters that have created a mountain of excreta, marketed as “science”.

    Confirming only the Grace of God, yes, whether it has to do with the real /Relational Model/ or IDEF1X, there is just one person whom I know of, who produces a single, clear, unchanging definition.

    With a view to making the exchange a bit more top-down, I have added to this doc. Page 7 gives a chronology of the appearance of Standards, and my Software Gems docs that are relevant. Hopefully that will assist you in obtaining an overview, and thus
    reduce the back-and-forth.

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    I realise that you have posted a V3 with Predicates overnight: please understand that our posts have crossed paths.

    Now that I have gone through my ancient docs, I can declare that my position on the subject matter [previously from memory only] is further confirmed, and that what you seek (a common set of classifications) is impossible. But I don’t think you will
    accept that from the oracle, you will want to work it out for yourself, and use me just to confirm/deny small items, one at a time. Ok.

    Now for your post ...

    the last version I have linked in my previous post (v3) has the
    predicates you have asked for.

    Will get back to you on that.

    I think one item of difference, generally, re the 1997 revision of
    IDEF1X, because (a) it validates the anti-Relational “identity-based”,

    The "identity-based" part can be ignored.

    Accepted.

    What is relevant is Section 9,
    which is essentially a copy of FIPS 184, minus the methodology and the first-order formalization. But I'll do as you prefer and refer to FIPS
    184 directly (I assume that FIPS 184 is "the original" you mention).

    Yes.
    There is a better version will less muck, but that is no longer available.

    The second general item is, the purpose of your venture is not
    completely clear to me. This has gone back-and-forth a bit, and your attempt to demonstrate the need for a new symbol seemed like the end
    goal

    Yes.

    (and thus we were discussing whether the condition for it
    exists), and I was arguing from strict IDEF1X.

    No, I was arguing from [IDEF1X SG Qualified], which is strict and immediately implementable.

    But now it seems like
    you trying to cover any and all ways of **classifying** Subtype sets,

    That's the purpose of adding a new symbol: to be able to express all
    kinds of generalization hierarchies.

    (I am now more certain that that is not possible, but I will let nature take its course.)

    and that uses the new loose and floppy IDEF1X revision terminology.

    Not new, not floppy. See below.

    No. The new is loose and floppy. *AND* the original is only slightly less loose and floppy.

    On Friday, 9 April 2021 at 08:02:50 UTC+10, Nicola wrote:

    2. There is no such thing as “Exclusive” “Subtyping” in IDEF1X.

    FIPS 184, ("Definitions" section):

    [...]

    Thank you.

    So, a category "is also known as" a sub-type.

    Yes. Might be a good idea to use one, not two, not three, sets of terminology. That is why most of us use Generic::Category; etc to identify the original IDEF1X intent [failed] vs Basetype::Subtype; etc to identify the IEEE method.

    So, exclusive/non-exclusive is covered quite explicitly. More on that
    below.

    Yes, but although the terms are defined in the glossary, there is no definition for the method (or the definition is useless), ie. for a rigid scientist such as I, {Exclusive/Non-Exclusive} does not exist in IDEF1X.

    - declarations SUCH AS “business party and a customer must be treated >> > as a single logical unit” are valid for IEEE Subtypes, I don’t see how
    they apply to IDEF1X Categories.

    I do because I see no difference between "complete categorization" and
    "exclusive subtyping" in terms of the predicates they represent. If
    there are any, please let me know.

    Ok.

    1. Where, pray tell, in the definition of IDEF1X[Complete
    Categorisation] (preferably the original, but ok, the revised if you must), excluding your interpretation, does it state that the members
    are mutually exclusive, as it states in the IEEE[Exclusive Subtype].

    Besides the above, FIPS 184, Annex B also contains a first-order formalization of IDEF1X, which also asserts the exclusivity requirement. Specifically (the labeling starts with "C" although the section is "B"),

    p. 116:

    «C1.2 The categories within a cluster are mutually exclusive.
    For 1 <= i < j <= n, add a rule

    (for all *)(not exists(v: e_i): I, exists(v: e_j: I))

    to the theory

    Great. I am saying that entire section, the “formalisms”, is loose and floppy. Eg. We need the Discriminator in the Basetype, not in the Subtypes. Eg. Complete has two meanings: it is meaningless in the ordinary sense (the required constraint
    would prevent the modeller from adding Subtypes). It is meaningful in the second sense, that all the Generic::Category pairs are “complete” ... but that is only meaningful in the context that “Incomplete” means a Basetype/Generic that has no
    Subtype/Category. Insanity compounded. Etc.

    Eg. ERwin implements what I said, not what the FIPS 184 doc “defines”.

    C1.3 If the categorization is complete, ensure a category instance for
    every generic instance by adding the rule

    (for all *)(if exists(v: e): I
    then exists(v: e_1): I or ... or exists(v: e_n): I)»

    Really. See above.

    2. Where, pray tell, in the definition of IEEE[Exclusive Subtype], excluding your interpretation, does it state that the set of members
    is complete [ie. there will not be a new member added in the future],
    as it states in the IDEF1X[Complete Categorisation] definition
    (preferably the original, but ok, the revised if you must).

    I grant that you have provided what I requested, and more.

    Give me a standard reference where I can read "the definition of IEEE[Exclusive Subtype]". Without that, the definition I am assuming is
    from your Subtype document,

    Unfortunately, yes.

    You can purchase it from IEEE or ISO at institutional prices.

    where you state (p. 2): "For each Basetype,
    there is exactly one Subtype", which entails that for every instance of
    the basetype, there is an instance of subtype 1 or ... or subtype
    n

    Yes.

    (essentially, C1.3 above).

    Definitely not.

    [C1.3] ensures that for every Basetype, there is one Subtype, that is their notion of “Complete”. Contrast that to their notion of “Incomplete”, which means a Subtype cluster which includes a Basetype that has no Subtype. Hopefully now you will
    understand the IDEF1X meaning of {Complete|Incomplete}, the two go together, and that it is a royal farce.

    A Basetype that has no Subtype [Category with no members] is ridiculous (in logic). It is not a part of a Subtype cluster. To call it a “Category” or “Generic” does not magically transform it into one, it means the label is false.

    Second last, there is no valid formalism for IEEE{Exclusive|Non-Exclusive}. Exclusive is “defined” but not “formalised”. Non-Exclusive is not even “defined”.

    Last, again, do not use that quote of mine which is valid of RM/IEEE, to try and perceive what the IDEF1X folks meant. No, it does not have that. You can’t impose modern sensibilities onto the past, you can’t impose a higher-order onto a lower-
    order. You must try and understand what the IDEF1X folks meant, via their “definitions”.

    6. My Subtype doc, §4 Optional Attribute[Group], Not Subtype:
    “If the Basetype can exist without any of the Subtypes, then it is not
    a Basetype::Subtype Relation, it is an ordinary Relation, which is an optional child (1::0-1)”

    With this premise, your reasoning is correct, I am not arguing against
    your inferences. The premise is a reasonable assumption, too. But it's
    not an absolute truth.

    It is an absolute truth.

    I could equally state:

    If the generic entity can exist without any of its categories, then it
    is still a generalization structure.

    If I *state* that I am a 5-year-old girl, does that mean that that is true ?

    What “generalisation structure” ??? Since when is a single member a “hierarchy” ???

    Give us some reasoning, not mere false labelling.

    Hence, a Business Party is
    a generalization of a Customer (a Customer *is* a Business Party),
    although not all Business Parties are customers.

    I have already dismissed that as connecting fragments instead of connecting atoms, and explained in great detail the issue of fragmentation. If you are going to take it up you have to respond to that. Since you are not, since you are just re-stating,
    sorry, it is already dismissed.

    Yes, of course, “a Customer *is* [always] a Business Party”, but that is not a Predicate, and that connects two unconnected things. You are mixing up queries with Predicates.

    Where are the Predicates ? Ok, I have to look at the V3 doc.

    Last but not least, I repeat, it is great that you are taking up IDEF1X, but please understand this is forty years late. Guys like me worked out how to correct and use IDEF1X thirty; thirty-five years ago. Which is why I had forgotten that, and held
    onto the “IDEF1X” Identity. Apologies again.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sat Apr 10 01:51:50 2021
    On Saturday, 10 April 2021 at 17:27:56 UTC+10, Derek Ignatius Asirvadem wrote:
    On Friday, 9 April 2021 at 23:59:07 UTC+10, Nicola wrote:

    Just clarifying, these comments pertain to V2 or V3 §5, your IDEF1X notation model at top left, where Customer is a Category (of one member, which is a separate error):

    Hence, a Business Party is
    a generalization of a Customer (a Customer *is* a Business Party), although not all Business Parties are customers.
    I have already dismissed that as connecting fragments instead of connecting atoms, and explained in great detail the issue of fragmentation. If you are going to take it up you have to respond to that. Since you are not, since you are just re-stating,
    sorry, it is already dismissed.

    Yes, of course, “a Customer *is* [always] a Business Party”, but that is not a Predicate, and that connects two unconnected things. You are mixing up queries with Predicates.

    Whereas in the model at bottom right, IEEE notation, is legal. There you can say *Customer is a BusinessParty*, and it is [the converse of] a Predicate.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Sun Apr 11 08:40:30 2021
    On 2021-04-10, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    With a view to making the exchange a bit more top-down, I have added
    to this doc. Page 7 gives a chronology of the appearance of
    Standards, and my Software Gems docs that are relevant. Hopefully
    that will assist you in obtaining an overview, and thus reduce the back-and-forth.

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Ok, I have understood your definitions and explanation, and how you
    consider subtyping different from "proper subsetting" (for a lack of
    a better term). Nothing to object. After all, this back and forth was
    prompted by my critique of IDEF1X's treatment of generalization. You
    have made it sharper.

    I will just point out that the example you have chosen for §4.7 is
    a straw man: if you look at my document (§1), I have not used an
    incomplete categorization for that, because that would be wrong. Use the Business Party/Customer/Supplier instead (if you do not want to assume
    that a Business Part might be something different from a Customer or
    a Supplier, remove Supplier).

    As you said, our posts have crossed paths: feel free to comment on my v3
    (I am still interested), although you have already brought forth the
    arguments to dismiss my tentative IEEE addition.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sun Apr 11 15:08:56 2021
    Nicola

    I do have a long response to your V3 doc, it is just not ready yet. Short answer for now, responding to youe post only.

    On Sunday, 11 April 2021 at 18:40:33 UTC+10, Nicola wrote:
    On 2021-04-10, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote:
    With a view to making the exchange a bit more top-down, I have added
    to this doc. Page 7 gives a chronology of the appearance of
    Standards, and my Software Gems docs that are relevant. Hopefully
    that will assist you in obtaining an overview, and thus reduce the back-and-forth.

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf
    Ok, I have understood your definitions and explanation, and how you
    consider subtyping different from "proper subsetting" (for a lack of
    a better term).

    Well, it is the misunderstanding of terms (or having two different understandings for the one term) that has caused the slow progress, thus I am happy to sharpen them, and agree/disagree.

    It is not “my” consideration. It is what we had under the title of **Subtype**, before IDEF1X, which was served by IEEE prior to IDEF1X. As implemented by thousands in that day and age, in their {HDBMS, NDBMS, ISAM}, with and without DBMS-specific
    methods. Eg. in TOTAL (NDBMS) there was no addition because the [Master::Variable] structure allowed for it, I just wrote a one-page “how to” doc for the DBAs. Eg. in IMS they did have an additional structure for it (I don’t recall the name).

    A word on Sets and Proper Subsets. While there is no problem at all in the treatmesnt of Sets in Codd’s /RM/ and Codd’s /RA/, and that can be articulated better, and that leads to a superior understanding of the data ... the detractors and pig poop
    eaters have buried those mathematical notions of Sets, through their promotion of a false “RM”, such that people are driven to fiddle and fart around with records or “instances” while ignorant of Sets. I point this out because you are coming out
    of the latter, but you are not yet in the former. I have not given you a discourse on Sets per the /RM/.

    Nothing to object. After all, this back and forth was
    prompted by my critique of IDEF1X's treatment of generalization. You
    have made it sharper.

    Ok.

    I will just point out that the example you have chosen for §4.7 is
    a straw man:

    That is a silly charge.

    There was a progression, and the choice of that example was yours from the outset. Granted in comes from my Subtype doc, which has been there for decades, in two forms (it is a teaching tool), and you referred to that example. Further, you have used
    the example, in two renditions, also as a teaching tool.

    Charges have to do with intent, if there is no intent there is no crime. I am not trying to prove you right/wrong. Don’t take it personally. It is not a competition. I am trying to prove some declaration that you made (or that IDEF1X made) right/
    wrong, *AND* I supply the correct method which at the least, stands as counter-point for understanding.

    For a long time, your goal was not clear, and we were arguing at the lower levels without understanding the [higher-level] intent.

    There is also a small error (harmless to the argument) in that $4.7, which may be what you are zeroing in, or not. It will be corrected in the next edition.

    if you look at my document (§1), I have not used an
    incomplete categorization for that, because that would be wrong. Use the Business Party/Customer/Supplier instead (if you do not want to assume
    that a Business Part might be something different from a Customer or
    a Supplier, remove Supplier).

    No problem at all to change the example (because the truth is the truth and it will destroy falsity anywhere). Next edition.

    I don’t know if it would help, because you appear to be fairly fixed on your understanding of {Complete, Incomplete}. And I have thus far been unable to get you to see it.

    As you said, our posts have crossed paths: feel free to comment on my v3
    (I am still interested),

    It is coming.

    although you have already brought forth the
    arguments to dismiss my tentative IEEE addition.

    Yes. Only the IEEE addition. Because it is formed on the basis of misunderstanding. So the discussion continues.

    Not on the tentative IDEF1X addition. That cannot be evaluated properly because it is an open sore. So the discussion continues to close that. In case it is not clear, I closed the wound thirty odd years ago, with IEEE being maintained within IDEF1X
    with sharp definitions (as ERwin does [with horrible definitions]), but now you seek to return to the original, determine the issues, and provide a new classification. If and when that discussion clarifies the issues, then I can accept/reject your
    IDEF1X addition.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nicola@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 12 07:23:33 2021
    On 2021-04-11, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    I do have a long response to your V3 doc

    Looking forward to reading it.

    I will just point out that the example you have chosen for §4.7 is
    a straw man:

    That is a silly charge.

    You have taken an example which I (as you in the original model) have (correctly) modelled with optional attributes and turned it into an
    example using (incorrectly) an incomplete categorization, and then you
    have pointed out its obvious flaws.

    Charges have to do with intent, if there is no intent there is no
    crime.

    My "straw man" qualification is directed at the argument, not at the
    author.

    No problem at all to change the example (because the truth is the
    truth and it will destroy falsity anywhere).

    Exactly. That's why there is no point in choosing a bad example.

    I don’t know if it would help, because you appear to be fairly fixed
    on your understanding of {Complete, Incomplete}. And I have thus far
    been unable to get you to see it.

    As I said, I have fully understood your definitions, why you favor the Exclusive/Non-Exclusive distinction over Complete/Incomplete, and
    I agree with you on that. My understanding of "complete" is different
    from yours and I have never thought that it prevents the addition of new categories: I have always attributed to it a meaning analogous to your "basetype is always a subtype". I acknowledge that the term "complete"
    is not the best, though. That's why in my first revision of my document
    I had also used "total/partial", which is my preferred terminology,
    standard or not.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Mon Apr 12 05:13:43 2021
    On Monday, 12 April 2021 at 08:08:57 UTC+10, Derek Ignatius Asirvadem wrote:

    I do have a long response to your V3 doc, it is just not ready yet. Short answer for now, responding to your post only.

    First, I am a bit busy, please forgive the delay.

    Second, in order to provide a Normalised answer (ie. avoid duplication; reduce back-and-forth between it and your V3 doc), I have had to update the Response doc. The intent is to foster a deeper understanding:
    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    As mentioned, I have taken some of the content from my IDEF1X Qualification doc, transformed it for public use, into the Response doc.

    I have run out of time tonight, and I did not complete the Response to your V3 doc. And Tuesday is very busy for me, I will get back to this on Wednesday. Thus I am giving you what I have completed right now.

    I don't *need* an updated V3 from you, I am happy closing V3 as it stands, but you may wish to produce a V4.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Mon Apr 12 05:43:36 2021
    Nicola

    On Monday, 12 April 2021 at 22:13:44 UTC+10, Derek Ignatius Asirvadem wrote:

    As mentioned, I have taken some of the content from my IDEF1X Qualification doc, transformed it for public use, into the Response doc.

    A fair amount has changed. Even the pages in the previous version have small changes. The last-updated-date at the bottom of each page will inform as to whether it needs to be re-read.


    On Monday, 12 April 2021 at 17:23:37 UTC+10, Nicola wrote:
    On 2021-04-11, Derek Ignatius Asirvadem wrote:

    I do have a long response to your V3 doc

    Looking forward to reading it.

    Sorry. ETA now Wednesday.

    I will just point out that the example you have chosen for §4.7 is
    a straw man:

    That is a silly charge.

    You have taken an example which I (as you in the original model) have (correctly) modelled with optional attributes and turned it into an
    example using (incorrectly) an incomplete categorization, and then you
    have pointed out its obvious flaws.

    No. I accept that from your perspective, ie. what you are attempting to portray, it is not the right example. But I was not attacking your proposal in that way, I was demonstrating a different thing, a more simple failure.

    The latest edition of my Response doc makes that more clear.

    Charges have to do with intent, if there is no intent there is no
    crime.

    My "straw man" qualification is directed at the argument, not at the
    author.

    Understood. But intent can only be in the Author, who gives the argument. I am saying, the charge is only because you do not understand my intent (in that example), and you relate it to your intent (which it is not), and therefore assume a nefarious
    intent on my part (ie. to attack your V3$5 example).

    The Straw Man issue is closed AFAIC.

    No problem at all to change the example (because the truth is the
    truth and it will destroy falsity anywhere).

    Exactly. That's why there is no point in choosing a bad example.

    Please see if the examples in the latest edition suffice.

    I don’t know if it would help, because you appear to be fairly fixed
    on your understanding of {Complete, Incomplete}. And I have thus far
    been unable to get you to see it.

    As I said, I have fully understood your definitions,

    I have provided even better definitions.

    why you favor the
    Exclusive/Non-Exclusive distinction over Complete/Incomplete, and
    I agree with you on that.

    Ok. So do you now accept that the choice between them is XOR (“orthogonal” in freak-speak) ?

    That undermines the premise of your venture.

    My understanding of "complete" is different
    from yours and I have never thought that it prevents the addition of new categories: I have always attributed to it a meaning analogous to your "basetype is always a subtype".

    I understood that. I understood you needed more definition of what a Subtype really is, before IEEE, before the /RM/, before IDEF1X, and I have provided it just now.

    The original IDEF1X “definition” of “complete” is quite a different thing. Detailed in the latest edition.

    I acknowledge that the term "complete"
    is not the best, though. That's why in my first revision of my document
    I had also used "total/partial", which is my preferred terminology,
    standard or not.

    Ok. But I hope you realise, it is better to keep use the Standard terms, even though the Standard, or some terms in it, is putrid.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Mon Apr 12 06:43:35 2021
    Nicola

    On Monday, 12 April 2021 at 22:43:38 UTC+10, Derek Ignatius Asirvadem wrote:
    On Monday, 12 April 2021 at 22:13:44 UTC+10, Derek Ignatius Asirvadem wrote:

    I don’t know if it would help, because you appear to be fairly fixed on your understanding of {Complete, Incomplete}. And I have thus far been unable to get you to see it.

    As I said, I have fully understood your definitions,
    I have provided even better definitions.
    why you favor the
    Exclusive/Non-Exclusive distinction over Complete/Incomplete, and
    I agree with you on that.

    Ok. So do you now accept that the choice between them is XOR (“orthogonal” in freak-speak) ?

    That undermines the premise of your venture.
    My understanding of "complete" is different
    from yours and I have never thought that it prevents the addition of new categories: I have always attributed to it a meaning analogous to your "basetype is always a subtype".

    I understood that. I understood you needed more definition of what a Subtype really is, before IEEE, before the /RM/, before IDEF1X, and I have provided it just now.

    The original IDEF1X “definition” of “complete” is quite a different thing. Detailed in the latest edition.

    I acknowledge that the term "complete"
    is not the best, though. That's why in my first revision of my document
    I had also used "total/partial", which is my preferred terminology, standard or not.

    Ok. But I hope you realise, it is better to keep use the Standard terms, even though the Standard, or some terms in it, is putrid.

    Especially when making a reference to a term in the Standard.

    But that exposes something more serious. You can’t be relying on the original “definition” of IFEX1X[Incomplete], and at the same time, deny IFEX1X{Incomplete,Complete} that hosts it. That is why we have the Four Laws of Thought, it determines
    and excludes insanity.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Mon Apr 12 09:26:42 2021
    On Monday, 12 April 2021 at 22:13:44 UTC+10, Derek Ignatius Asirvadem wrote:

    Second, in order to provide a Normalised answer (ie. avoid duplication; reduce back-and-forth between it and your V3 doc), I have had to update the Response doc:
    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Page 10 updated just now.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Tue Apr 13 20:27:25 2021
    Nicola

    On Tuesday, 13 April 2021 at 02:26:44 UTC+10, Derek Ignatius Asirvadem wrote:

    Updated again, just now:

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    I can’t recall ever having to explain Subtypes from scratch. The problem here is, academics are clueless about **The Logical** such as Subtypes and Atomicity, and about how to implement them (the notion that a “relation” is just a selected set of
    attributes is fragmented; crippling). Here you obtained your initial understanding of Subtypes from the idiotic IDEF1X doc (original or revised), instead of from reality (practitioners from 1960’s onwards, relational practitioners from the 1980’s
    onwards), and formed an opinion re what is missing, and how to correct it. Thus this lengthy discussion has been about informing you about reality, dragging you back from that academic position.

    No doubt, the filth that passes for “textbooks” these dark days, fail to define Subtyping.

    Comments re your V3 doc:
    ____ https://jirafeau.net/f.php?h=18wYFi9U

    0. Intro

    a. Typo, remove [’s] after my name.

    b. For clarity, I suggest you add a note, that [in your words] Derek Asirvadem uses a stricter form of IDEF1X wherein all ambiguities are removed and all methods are given. He rejects the changes that resulted in ISO 31320:2 outright. Otherwise, those
    who follow the link to my doc will not understand it adequately. Further, it better identifies the context of your doc.

    c.
    Note: IDEF1X technical terms are in boldface italic: refer to the standard (ISO 31032:2, Sec. 9) for their definition.

    I agree that the doc would be better if you separate the IDEF1X and IEEE terminology, and do so clearly. But then do not refer to the standard because that is clear as two mud puddles. You may not need to give full definitions, because the names may be
    distinctive enough, but yes, you do need to separate them. Perhaps a little grid, something like my page 11.

    The IDEF1X doc was written by an academic. Putrid and unusable definitions.

    ----
    1.
    ----

    is fine.

    ----
    2. Complete Categorisation
    ----

    a. (You think this is equivalent to Exclusive. It is not. Detailed in my doc.)

    Read the FIPS 184 doc (mine is 145 pages; has diagrams. The other is 175 pages; no diagrams; includes the bit that you said is removed).

    As an example of stating things backwards, and thus with far more complexity than necessary (schizophrenic) check out § 3.6.1. paras 4; 5; 6.

    In any case, it is clear [after removing their mud] that Incomplete means the set contains Generic rows that do not have Category rows. And thus Complete means the set the does.

    Agreed, the IDEF1X classification {Complete|Incomplete} is “mutually exclusive” but that is not the same thing as the component of the IEEE classification {Exclusive|Non-Exclusive}. Detailed in the Nicola IDEF1X 2 doc.

    (And then there are the missing or invalid “formalisms”, which confirm/deny the categories.)

    b. After this:
    For each (instance of the) generic entity, there is exactly one (instance of a) category.
    think about adding this, to specify the IDEF1X meaning of Complete:
    + There is no generic row without a category row.

    Depending on your bent, you could instead say this:
    ± For each generic row, there is at least one category row.

    Now when you get to Incomplete Categorisation, if you do get to a page for it, add this:
    + There are generic rows without a category row.

    c. You need Table[Sex]; PK[SexCode] instead of Gender; GenderCode. (Gender is not a table; not a FK in Person, because it is an imagined state; fluid; ever-changing; no limits. Sex is a physical reality, defined at the chromosome level, every cell in a
    body is EITHER male XOR female. Regardless of deformations; mutilations; additions.)

    d. Different point. This:
    For each (instance of the) generic entity, there is exactly one (instance of a) category.
    is actually a definition for Exclusive. It is inadequate as a definition for Complete ... you have to add [b] and fiddle.

    It does not work to position IDEF1X[Complete] as IEEE[Exclusive], it is a great misrepresentation.

    e. While we are here, let me point out something we have not touched, that befuddles developers, as a caveat. It is important because it deals with semantics; Logic.

    §3.6.1 para 3:
    There are two categorization relationships in this cluster, one between EMPLOYEE and SALARIED-EMPLOYEE and one between EMPLOYEE and HOURLY-EMPLOYEE.

    That is totally, utterly false. The Generic::CategorySET relation is a single, not one per Category, the symbol is the switching-point or pivot-point. If one accepts their idiocy, it breaks Predicates; Logic; Semantics. If one rejects it, Predicates;
    Logic; Semantics remain unaffected.

    At the physical level, in SQL, yes of course, each Generic::Category pair is a PK::FK relation. The set of relations in the cluster is the “web”, upon which the logical (eg. constraints that make it a Category cluster) is defined, and exists.

    (In case this sounds like the physical governs the logical, no, never, the logical always governs the physical. The problem is, academics do not have a grasp of the Logical.)

    ----
    3. Complete Categorization and Non-Exclusive Child Entities
    ----

    Much better notes in general.

    a. “both” is a description, not logical, not a Predicate. You are treating it as a Predicate, which will lead to confusion.

    b. IDEF1X[Incomplete] is already defined, it needs no further definition.

    There is no such thing as “Non-Exclusive” in IDEF1X, you need to define it first, then give the pictures re what it looks like. Yes, sure, you can take the Predicates straight out of the IEEE[Non-Exclusive] definition, but then again, it needs a
    definition first.

    c. The reference [Subtype doc §3] is clearly quite different.

    d. the model as shown is illegal. A Generic with a single Category (the Category SET has one member) is a gross Normalisation error. For the given model, if a reference is used it should be [Subtype doc §4].

    e.
    this is problematic in IDEF1X
    No. It is not “problematic”, it simply does not exist in IDEF1X.

    Further, you can’t walk up to IDEF1X (as defined) and just add IEEE[Non-Exclusive]. Because IDEF1X has a **CLASSIFICATION** that has its own components, and IEEE has a **CLASSIFICATION** that has quite different components, eg. [Non-Exclusive]. If
    you are going to change anything, you have to change that **CLASSIFICATION**, not just grab a component (**FRAGMENT**) from here and add it there.

    f.
    The intended interpretation ...

    Intended by whom ??? IDEF1X has been with us for forty years, even though the definitions are not great, the interpretations is single, arrived at logically. IDEF1X allows no such thing. It propose that after forty years, IDEF1X has a novel “
    interpretation” is a gross misrepresentation. As confirmed in:

    The intended interpretation does not ... conform to ISO 31320:2.

    g.
    If one sticks to the standard, non-exclusive subtyping can only be approximated.

    False. If one sticks to the standard, Non-Exclusive subtyping is prohibited, because the only defined **CLASSIFICATION** (not either of {Complete|Incomplete} demands exclusivity. it is not even defined.

    h.
    The issue can be easily remedied by adding a specific symbol for this case

    Sure. Give the name & definition first, the example second, and the new symbol third. Not that such will have no reference to IDEF1X{Complete|Incomplete}, which is why I say you need a separate page. Do not conflate DEF1X[Complete].

    i. General note. Do not use the terms /parent/ and /child/. What we have here at the logical level is siblings, more precisely Generic and Category. Yes, of course, in SQL, which is physical, the only possibility for a relation is parent and child.

    ----
    4. Incomplete Categorization
    ----

    a. [Incomplete] is already defined in IDEF1X, it needs no further definition.

    b. IDEF1X[Incomplete] already provides what you are suggesting, read the definitions. The page is redundant.

    c. A separate point is, DEF1X[Incomplete] is not a Subtype structure at all, it is illegal as a Subtype definition.

    d. What you are trying to show is something else, such as giving props to the crippled concept, by showing that the crippled concept is somehow better than another concept which is not crippled. False.

    e. I don’t think you have anything of substance to add under the heading [4. Incomplete Categorisation]. If you insist that you do, you need to define that (without reference to IDEF1X or IEEE), and give it a name.

    f. I categorically state that that thing is not a Subtype of any kind, that it is a combination of an illegal component (Generic that does not have a Category) and optionality. There is no legal Predicate for that strange mixture.

    g. The example is contrived. It is possibly acceptable as a classroom exercise at the conceptual level only, it breaks down upon entering the logical level, where Predicates are demanded. Which is where OP was stuck, and my application of Logic solved
    it.

    h.
    A (not equivalent) rendition in IE notation

    There is no equivalent in IEEE because it is insane, and IEEE does not allow insanity.

    i. Re IEEE new symbol
    It definitely does not need the insanity of an optional set of Categories. We are not about to change something that has been established, and remains unchanged (truth does not change) for sixty years. We do not need to add a crippled horse to the
    stable of able horses.

    ----
    5. Incomplete Categorization and Non-Exclusive Child Entities
    ----

    a. Again “both” is descriptive, not necessary for logic.
    Likewise “neither” and “nor”.
    When stated as Predicates those words will disappear.

    b. IDEF1X[Incomplete] is already defined, it needs no further definition.

    There is no such thing as “Non-Exclusive” in IDEF1X, you need to name it and define it first, then give the pictures re what it looks like. Yes, sure, you can take the Predicates straight out of the IEEE[Non-Exclusive] definition, but then again, it
    needs a name and definition first.

    c. Further, you can’t walk up to IDEF1X (as defined) and just add IEEE[Non-Exclusive]. Because IDEF1X has a **CLASSIFICATION** that has its own components, and IEEE has a **CLASSIFICATION** that has quite different components, eg. [Non-Exclusive]. If
    you are going to change anything, you have to change that **CLASSIFICATION**, not just grab a component (**FRAGMENT**) from here and add it there.

    d. the model top left as shown is illegal. A Generic with a single Category (the Category SET has one member) is a gross Normalisation error. For the given model, if a reference is used it should be [Subtype doc §4].

    Therefore the model at top right is the only correct one.


    I have a problem with your language. This is technical subject matter; science, wherein we have certainty and things are stated as true or false. It is not Modernist philosophy, wherein things are stated as tentative. You have gone soft, since we
    first started our interaction.

    Also, due to the silly notion of “relation”, academics have to labour about the distinction between the entity and the “instance”, which is quite unnecessary. (What happened to the hilarious “tuple” !!!)
    <<<<

    e.
    Incomplete: an instance of the generic entity may exist without being an instance of any of the category entities.

    Massively incorrect use of the word [be]. At no time does a generic [be] something other than what it is, a generic, and nothing but a generic. At no time does a category [be] something other than what it is, a category, and nothing but a category. A
    generic cannot [be] a category, a category cannot be a generic.

    In case you try to use the word [is], don’t, that is already established, and such a misuse would be insanity.

    I think you are trying to say something like:
    Complete: each generic is related to one category.
    Incomplete: a generic may exist without a category.
    ____(Thus the SET of categories is incomplete.)

    f.
    IE notation does not have a concept of “incomplete categorization”
    Because it is logically ridiculous. It is not a lack or privation. Declaring it as such is a silly error, same as declaring that a virgin does not have a venereal disease as a privation. (It is only a privation to those who are sluts, not to normal
    humans.)

    g. Collecting two errors (top left: Customer, Supplier) and trying to make a new concept out of it fails, and miserably. You need to correct the errors, and then of course, the new concept will disappear. Populism is ochlocracy; socialism; communism,
    it is anti-science.

    h. You have not given the Predicates. If you do, you would see that it [g] fails.

    i.
    Although not strictly necessary, in the [top] left model I would “collapse” the [two] incomplete categorization symbols into a single (non- standard) symbol (see below, left), as a matter of convenience, conciseness, and symmetry.

    That remains a gross Normalisation error, it fails to recognise the concept of Subtype. The two optional entities remains separate optional entities wrt to the parent. The parent is not a Basetype for either Subtype, that hosts two optional entities,
    cannot be mutilated into a “basetype” that optionally hosts non-exclusive “subtypes” that IDEF1X does not have.

    Further [Customer] and [Supplier] cannot be said to have the same classification (that classifies some SET). Again, you are dealing with fragments (members of some set) while denying (or being unconscious of) the fact that the set is an atom, it has a
    classification; a definition.

    Since when should IT people care about “convenience” and “symmetry” ??? Should we care about empathy and sympathy ???

    Errors are never symmetric.

    ----
    6. Notation and Terminology
    ----

    a.
    Generic entity: An entity whose instances are classified into one or more subtypes or subclassifications (category entities). Syn: superclass; supertype. [ISO 31320:2, §3.1.72]

    The “one” is false, because zero is permitted ala [Incomplete]

    The “or more” is false (both sets of Categories are mutually exclusive). If you are addressing the row rather than the entity, then the word [entity] is totally incorrect.

    I wouldn’t mention the synonyms, because they are incorrect.

    I would state (remaining at the [entity] level):
    ± Generic: An entity that is classified into zero, one or more categories. [ISO 31320:2, §3.1.72]

    b.
    Category (entity): An entity whose instances represent a subtype or subclassification of another entity (generic entity). Syn: subclass; subtype. [ISO 31320:2, §3.1.21]

    I would state:
    ± Category: An entity that is a classification of one generic
    [ISO 31320:2, §3.1.21]

    c. Predicates
    Great. Not perfect but quite adequate for this exercise.

    c.1. In general, do not use parent/child, use Generic/Category on the IDEF1X side, Basetype/Subtype on the IEEE side.

    c.2. The missing Predicates are (IEEE side only, the IDEF1X side is still not clear):

    Each basetype identifies the subtype
    ____ (because we can have an alternated Key, in which case it does not).

    Exclusive basetype:
    Basetype is discriminated by ( Discriminator ).

    C.3. Minors. I suggest:
    Children: instead use (Category, ...) or (Subtype, ...)
    Non-Exclusive basetype: “one or more”: instead use “any of”

    d. Now that we have the Predicates, and I can confirm precisely what you mean in the IEEE sets, I reject the two new IEEE sets outright, because they defy logic (reason). And of course the new IEEE symbols. If you challenge this, please supply an
    example from the natural universe (trannies and other insane excluded as abnormal), where a basetype is a valid basetype, and has zero subtypes.

    You already know the reasons (logic) for this, they are further detailed in the latest edition of my [Nicola IDEF1X 2] doc. You are merging two discrete Facts into one non-fact (scrambled eggs).

    Again, it is not for me to disprove your proposal, but for you to prove it, and you have not done so.

    If you want to go into it a bit more deeply, a privation is not a thing, it is a lack of a thing. So if the deprived thing really exists, then it exists as a thing, not as a thing deprived based on a Generic. Therefore:
    1. the “generic with zero categories” is not a generic but an ordinary entity
    2. the categories are optional
    --- you cannot have a set of one, or zero (except in hilarious theory, divorced from reality)
    --- categories means a SET, at least two
    --- the SET of categories is mandatory, not optional
    3. the categories needs a generic to be categories of, which is not the ordinary entity
    --- (if it were the entity, it fails [1]

    e. The grid is good, the column headings are good. You need row headings. Also, move column 2 into position 3, it will make more sense.

    f. I reserve my comments re the new IDEF1X sets and therefore the new symbols, because the definitions are progressing, still not complete.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to Derek Ignatius Asirvadem on Thu Apr 15 14:24:03 2021
    On Wednesday, 14 April 2021 at 13:27:26 UTC+10, Derek Ignatius Asirvadem wrote:
    Nicola

    On Tuesday, 13 April 2021 at 02:26:44 UTC+10, Derek Ignatius Asirvadem wrote:

    Updated again, just now:

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    I can’t recall ever having to explain Subtypes from scratch. The problem here is, academics are clueless about **The Logical** such as Subtypes and Atomicity, and about how to implement them (the notion that a “relation” is just a selected set of
    attributes is fragmented; crippling). Here you obtained your initial understanding of Subtypes from the idiotic IDEF1X doc (original or revised), instead of from reality (practitioners from 1960’s onwards, relational practitioners from the 1980’s
    onwards), and formed an opinion re what is missing, and how to correct it. Thus this lengthy discussion has been about informing you about reality, dragging you back from that academic position.

    No doubt, the filth that passes for “textbooks” these dark days, fail to define Subtyping.

    Comments re your V3 doc:
    ____ https://jirafeau.net/f.php?h=18wYFi9U

    0. Intro

    a. Typo, remove [’s] after my name.

    b. For clarity, I suggest you add a note, that [in your words] Derek Asirvadem uses a stricter form of IDEF1X wherein all ambiguities are removed and all methods are given. He rejects the changes that resulted in ISO 31320:2 outright. Otherwise, those
    who follow the link to my doc will not understand it adequately. Further, it better identifies the context of your doc.

    c.
    Note: IDEF1X technical terms are in boldface italic: refer to the standard (ISO 31032:2, Sec. 9) for their definition.

    I agree that the doc would be better if you separate the IDEF1X and IEEE terminology, and do so clearly. But then do not refer to the standard because that is clear as two mud puddles. You may not need to give full definitions, because the names may be
    distinctive enough, but yes, you do need to separate them. Perhaps a little grid, something like my page 11.

    The IDEF1X doc was written by an academic. Putrid and unusable definitions.

    ----
    1.
    ----

    is fine.

    ----
    2. Complete Categorisation
    ----

    a. (You think this is equivalent to Exclusive. It is not. Detailed in my doc.)

    Read the FIPS 184 doc (mine is 145 pages; has diagrams. The other is 175 pages; no diagrams; includes the bit that you said is removed).

    As an example of stating things backwards, and thus with far more complexity than necessary (schizophrenic) check out § 3.6.1. paras 4; 5; 6.

    In any case, it is clear [after removing their mud] that Incomplete means the set contains Generic rows that do not have Category rows. And thus Complete means the set the does.

    Agreed, the IDEF1X classification {Complete|Incomplete} is “mutually exclusive” but that is not the same thing as the component of the IEEE classification {Exclusive|Non-Exclusive}. Detailed in the Nicola IDEF1X 2 doc.

    (And then there are the missing or invalid “formalisms”, which confirm/deny the categories.)

    b. After this:
    For each (instance of the) generic entity, there is exactly one (instance of a) category.
    think about adding this, to specify the IDEF1X meaning of Complete:
    + There is no generic row without a category row.

    Depending on your bent, you could instead say this:
    ± For each generic row, there is at least one category row.

    Now when you get to Incomplete Categorisation, if you do get to a page for it, add this:
    + There are generic rows without a category row.

    c. You need Table[Sex]; PK[SexCode] instead of Gender; GenderCode. (Gender is not a table; not a FK in Person, because it is an imagined state; fluid; ever-changing; no limits. Sex is a physical reality, defined at the chromosome level, every cell in a
    body is EITHER male XOR female. Regardless of deformations; mutilations; additions.)

    d. Different point. This:
    For each (instance of the) generic entity, there is exactly one (instance of a) category.
    is actually a definition for Exclusive. It is inadequate as a definition for Complete ... you have to add [b] and fiddle.

    It does not work to position IDEF1X[Complete] as IEEE[Exclusive], it is a great misrepresentation.

    e. While we are here, let me point out something we have not touched, that befuddles developers, as a caveat. It is important because it deals with semantics; Logic.

    §3.6.1 para 3:
    There are two categorization relationships in this cluster, one between EMPLOYEE and SALARIED-EMPLOYEE and one between EMPLOYEE and HOURLY-EMPLOYEE.

    That is totally, utterly false. The Generic::CategorySET relation is a single, not one per Category, the symbol is the switching-point or pivot-point. If one accepts their idiocy, it breaks Predicates; Logic; Semantics. If one rejects it, Predicates;
    Logic; Semantics remain unaffected.

    At the physical level, in SQL, yes of course, each Generic::Category pair is a PK::FK relation. The set of relations in the cluster is the “web”, upon which the logical (eg. constraints that make it a Category cluster) is defined, and exists.

    (In case this sounds like the physical governs the logical, no, never, the logical always governs the physical. The problem is, academics do not have a grasp of the Logical.)

    ----
    3. Complete Categorization and Non-Exclusive Child Entities
    ----

    Much better notes in general.

    a. “both” is a description, not logical, not a Predicate. You are treating it as a Predicate, which will lead to confusion.

    b. IDEF1X[Incomplete] is already defined, it needs no further definition.

    There is no such thing as “Non-Exclusive” in IDEF1X, you need to define it first, then give the pictures re what it looks like. Yes, sure, you can take the Predicates straight out of the IEEE[Non-Exclusive] definition, but then again, it needs a
    definition first.

    c. The reference [Subtype doc §3] is clearly quite different.

    d. the model as shown is illegal. A Generic with a single Category (the Category SET has one member) is a gross Normalisation error. For the given model, if a reference is used it should be [Subtype doc §4].

    e.
    this is problematic in IDEF1X
    No. It is not “problematic”, it simply does not exist in IDEF1X.

    Further, you can’t walk up to IDEF1X (as defined) and just add IEEE[Non-Exclusive]. Because IDEF1X has a **CLASSIFICATION** that has its own components, and IEEE has a **CLASSIFICATION** that has quite different components, eg. [Non-Exclusive]. If
    you are going to change anything, you have to change that **CLASSIFICATION**, not just grab a component (**FRAGMENT**) from here and add it there.

    f.
    The intended interpretation ...

    Intended by whom ??? IDEF1X has been with us for forty years, even though the definitions are not great, the interpretations is single, arrived at logically. IDEF1X allows no such thing. It propose that after forty years, IDEF1X has a novel “
    interpretation” is a gross misrepresentation. As confirmed in:

    The intended interpretation does not ... conform to ISO 31320:2.

    g.
    If one sticks to the standard, non-exclusive subtyping can only be approximated.

    False. If one sticks to the standard, Non-Exclusive subtyping is prohibited, because the only defined **CLASSIFICATION** (not either of {Complete|Incomplete} demands exclusivity. it is not even defined.

    h.
    The issue can be easily remedied by adding a specific symbol for this case

    Sure. Give the name & definition first, the example second, and the new symbol third. Not that such will have no reference to IDEF1X{Complete|Incomplete}, which is why I say you need a separate page. Do not conflate DEF1X[Complete].

    i. General note. Do not use the terms /parent/ and /child/. What we have here at the logical level is siblings, more precisely Generic and Category. Yes, of course, in SQL, which is physical, the only possibility for a relation is parent and child.

    ----
    4. Incomplete Categorization
    ----

    a. [Incomplete] is already defined in IDEF1X, it needs no further definition.

    b. IDEF1X[Incomplete] already provides what you are suggesting, read the definitions. The page is redundant.

    c. A separate point is, DEF1X[Incomplete] is not a Subtype structure at all, it is illegal as a Subtype definition.

    d. What you are trying to show is something else, such as giving props to the crippled concept, by showing that the crippled concept is somehow better than another concept which is not crippled. False.

    e. I don’t think you have anything of substance to add under the heading [4. Incomplete Categorisation]. If you insist that you do, you need to define that (without reference to IDEF1X or IEEE), and give it a name.

    f. I categorically state that that thing is not a Subtype of any kind, that it is a combination of an illegal component (Generic that does not have a Category) and optionality. There is no legal Predicate for that strange mixture.

    g. The example is contrived. It is possibly acceptable as a classroom exercise at the conceptual level only, it breaks down upon entering the logical level, where Predicates are demanded. Which is where OP was stuck, and my application of Logic solved
    it.

    h.
    A (not equivalent) rendition in IE notation

    There is no equivalent in IEEE because it is insane, and IEEE does not allow insanity.

    i. Re IEEE new symbol
    It definitely does not need the insanity of an optional set of Categories. We are not about to change something that has been established, and remains unchanged (truth does not change) for sixty years. We do not need to add a crippled horse to the
    stable of able horses.

    ----
    5. Incomplete Categorization and Non-Exclusive Child Entities
    ----

    a. Again “both” is descriptive, not necessary for logic.
    Likewise “neither” and “nor”.
    When stated as Predicates those words will disappear.

    b. IDEF1X[Incomplete] is already defined, it needs no further definition.

    There is no such thing as “Non-Exclusive” in IDEF1X, you need to name it and define it first, then give the pictures re what it looks like. Yes, sure, you can take the Predicates straight out of the IEEE[Non-Exclusive] definition, but then again,
    it needs a name and definition first.

    c. Further, you can’t walk up to IDEF1X (as defined) and just add IEEE[Non-Exclusive]. Because IDEF1X has a **CLASSIFICATION** that has its own components, and IEEE has a **CLASSIFICATION** that has quite different components, eg. [Non-Exclusive]. If
    you are going to change anything, you have to change that **CLASSIFICATION**, not just grab a component (**FRAGMENT**) from here and add it there.

    d. the model top left as shown is illegal. A Generic with a single Category (the Category SET has one member) is a gross Normalisation error. For the given model, if a reference is used it should be [Subtype doc §4].

    Therefore the model at top right is the only correct one.


    I have a problem with your language. This is technical subject matter; science, wherein we have certainty and things are stated as true or false. It is not Modernist philosophy, wherein things are stated as tentative. You have gone soft, since we first
    started our interaction.

    Also, due to the silly notion of “relation”, academics have to labour about the distinction between the entity and the “instance”, which is quite unnecessary. (What happened to the hilarious “tuple” !!!)
    <<<<

    e.
    Incomplete: an instance of the generic entity may exist without being an instance of any of the category entities.

    Massively incorrect use of the word [be]. At no time does a generic [be] something other than what it is, a generic, and nothing but a generic. At no time does a category [be] something other than what it is, a category, and nothing but a category. A
    generic cannot [be] a category, a category cannot be a generic.

    In case you try to use the word [is], don’t, that is already established, and such a misuse would be insanity.

    I think you are trying to say something like:
    Complete: each generic is related to one category.
    Incomplete: a generic may exist without a category.
    ____(Thus the SET of categories is incomplete.)

    f.
    IE notation does not have a concept of “incomplete categorization”
    Because it is logically ridiculous. It is not a lack or privation. Declaring it as such is a silly error, same as declaring that a virgin does not have a venereal disease as a privation. (It is only a privation to those who are sluts, not to normal
    humans.)

    g. Collecting two errors (top left: Customer, Supplier) and trying to make a new concept out of it fails, and miserably. You need to correct the errors, and then of course, the new concept will disappear. Populism is ochlocracy; socialism; communism,
    it is anti-science.

    h. You have not given the Predicates. If you do, you would see that it [g] fails.

    i.
    Although not strictly necessary, in the [top] left model I would “collapse” the [two] incomplete categorization symbols into a single (non- standard) symbol (see below, left), as a matter of convenience, conciseness, and symmetry.

    That remains a gross Normalisation error, it fails to recognise the concept of Subtype. The two optional entities remains separate optional entities wrt to the parent. The parent is not a Basetype for either Subtype, that hosts two optional entities,
    cannot be mutilated into a “basetype” that optionally hosts non-exclusive “subtypes” that IDEF1X does not have.

    Further [Customer] and [Supplier] cannot be said to have the same classification (that classifies some SET). Again, you are dealing with fragments (members of some set) while denying (or being unconscious of) the fact that the set is an atom, it has a
    classification; a definition.

    Since when should IT people care about “convenience” and “symmetry” ??? Should we care about empathy and sympathy ???

    Errors are never symmetric.

    ----
    6. Notation and Terminology
    ----

    a.
    Generic entity: An entity whose instances are classified into one or more subtypes or subclassifications (category entities). Syn: superclass; supertype. [ISO 31320:2, §3.1.72]

    The “one” is false, because zero is permitted ala [Incomplete]

    The “or more” is false (both sets of Categories are mutually exclusive). If you are addressing the row rather than the entity, then the word [entity] is totally incorrect.

    I wouldn’t mention the synonyms, because they are incorrect.

    I would state (remaining at the [entity] level):
    ± Generic: An entity that is classified into zero, one or more categories. [ISO 31320:2, §3.1.72]

    b.
    Category (entity): An entity whose instances represent a subtype or subclassification of another entity (generic entity). Syn: subclass; subtype. [ISO 31320:2, §3.1.21]

    I would state:
    ± Category: An entity that is a classification of one generic
    [ISO 31320:2, §3.1.21]

    c. Predicates
    Great. Not perfect but quite adequate for this exercise.

    c.1. In general, do not use parent/child, use Generic/Category on the IDEF1X side, Basetype/Subtype on the IEEE side.

    c.2. The missing Predicates are (IEEE side only, the IDEF1X side is still not clear):

    Each basetype identifies the subtype
    ____ (because we can have an alternated Key, in which case it does not).

    Exclusive basetype:
    Basetype is discriminated by ( Discriminator ).

    C.3. Minors. I suggest:
    Children: instead use (Category, ...) or (Subtype, ...)
    Non-Exclusive basetype: “one or more”: instead use “any of”

    d. Now that we have the Predicates, and I can confirm precisely what you mean in the IEEE sets, I reject the two new IEEE sets outright, because they defy logic (reason). And of course the new IEEE symbols. If you challenge this, please supply an
    example from the natural universe (trannies and other insane excluded as abnormal), where a basetype is a valid basetype, and has zero subtypes.

    You already know the reasons (logic) for this, they are further detailed in the latest edition of my [Nicola IDEF1X 2] doc. You are merging two discrete Facts into one non-fact (scrambled eggs).

    Again, it is not for me to disprove your proposal, but for you to prove it, and you have not done so.

    If you want to go into it a bit more deeply, a privation is not a thing, it is a lack of a thing. So if the deprived thing really exists, then it exists as a thing, not as a thing deprived based on a Generic. Therefore:
    1. the “generic with zero categories” is not a generic but an ordinary entity
    2. the categories are optional
    --- you cannot have a set of one, or zero (except in hilarious theory, divorced from reality)
    --- categories means a SET, at least two
    --- the SET of categories is mandatory, not optional
    3. the categories needs a generic to be categories of, which is not the ordinary entity
    --- (if it were the entity, it fails [1]

    e. The grid is good, the column headings are good. You need row headings. Also, move column 2 into position 3, it will make more sense.

    f. I reserve my comments re the new IDEF1X sets and therefore the new symbols, because the definitions are progressing, still not complete.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to Derek Ignatius Asirvadem on Thu Apr 15 17:59:44 2021
    Nicola

    On Monday, 12 April 2021 at 17:23:37 UTC+10, Nicola wrote:
    On 2021-04-11, Derek Ignatius Asirvadem wrote:

    I do have a long response to your V3 doc

    Looking forward to reading it.

    Delivered:

    On Wednesday, 14 April 2021 at 13:27:26 UTC+10, Derek Ignatius Asirvadem wrote:

    [...]

    Response please.

    On Wednesday, 14 April 2021 at 13:27:26 UTC+10, Derek Ignatius Asirvadem wrote:

    e. The grid is good, the column headings are good. You need row headings. Also, move column 2 into position 3, it will make more sense.

    Since nothing appears to be forthcoming, and you have been horrible at providing closure in the past, I have added a section to chapter 5. Minor wording changes to the previous content in ch 5 (ie. only ch 5 has changed).

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    On Thursday, 8 April 2021 at 04:51:55 UTC+10, Nicola wrote:
    On 2021-04-07, Derek Ignatius Asirvadem wrote:

    What I see is that both notations have deficiencies

    After all that explanation, hopefully you can see there is no deficiency in the IEEE notation. Not since 1960 for IEEE, not since 1983 for IDEF1X using IEEE notation, not since 1993 for IDEF1X via ERwin. If you still see any “deficiency” in the
    IEEE notation, please identify. Otherwise I will take it that my explanation has closed the issue, that there is no deficiency in the IEEE notation.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LP@21:1/5 to Derek Ignatius Asirvadem on Fri Apr 16 08:09:30 2021
    On 2021-04-16, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    Response please.

    Since nothing appears to be forthcoming,

    Be patient, I am very busy currently, but I have read your updated
    document.

    I have added a section to chapter 5.
    Minor wording changes to the previous content in ch 5 (ie. only ch
    5 has changed).

    ____ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Got that.

    After all that explanation, hopefully you can see there is no
    deficiency in the IEEE notation.

    Yes, the "deficiencies" exist only in IDEF1X notation.

    Otherwise I will take it that my explanation has closed the
    issue, that there is no deficiency in the IEEE notation.

    I will reply to your comments in the other post, but they will be only
    minor remarks. The matter is settled for me. I agree with you that there
    is no need to "fix" IEEE notation, and that IDEF1X's is broken (but the
    latter was my point to begin with).

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Sat Apr 17 00:24:57 2021
    On Friday, 16 April 2021 at 18:09:33 UTC+10, LP wrote:
    On 2021-04-16, Derek Ignatius Asirvadem <derek.a...@gmail.com> wrote: Response please.

    Since nothing appears to be forthcoming,

    Be patient, I am very busy currently, but I have read your updated
    document.

    Ok. Take your time. Since you have conceded, there is no rush now.

    I will reply to your comments in the other post, but they will be only
    minor remarks. The matter is settled for me. I agree with you that there
    is no need to "fix" IEEE notation, and that IDEF1X's is broken (but the latter was my point to begin with).

    Ok. I apologise again, for not making the distinction between IDEF1X as published (by an academic, and which is quite unuseable) vs IDEF1X as used (by practitioners, after resolving all issues). I beg your understanding, that thirty years of use of the
    latter had caused me to forget the former.

    If you have any suggestions for my doc, let me know.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From LP@21:1/5 to All on Sun Apr 18 16:16:48 2021
    Derek,
    rather than replying point by point, I have uploaded a new document:

    https://jirafeau.net/f.php?h=3IaydAN-

    This should address your comments in your previous posts.

    As I said, for me the matter is settled. I welcome your comments (or by others), but I do not plan to perform any further significant revisions.

    All the definitions I have used are on page 2. Although not completely
    formal, they are accurate enough for understanding the document. I have
    added predicates throughout: hopefully, that will prevent further misunderstandings.

    Thanks for helping me clarifying some aspects of generalization
    hierarchies.

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Mon Apr 19 04:15:13 2021
    On Monday, 19 April 2021 at 02:16:52 UTC+10, LP wrote:
    Derek,
    rather than replying point by point, I have uploaded a new document:

    https://jirafeau.net/f.php?h=3IaydAN-

    This should address your comments in your previous posts.

    Thanks for helping me clarifying some aspects of generalization
    hierarchies.

    On the one hand, you are welcome, I am happy to assist.

    But I am not sure that I did that. That was not declared from the beginning, I answered only what was presented, in the increments that were presented.

    You have a new doc, which presents the overall subject under a new heading (new terminology). Thus, AFAIC, this is a continuation of the thread, the next increment of revelation.

    As I said, for me the matter is settled. I welcome your comments (or by others), but I do not plan to perform any further significant revisions.

    I accept that the issue is closed for you, sure, but for me, it is the same old issue of tightening loose definitions, and ongoing. I hope you don’t mind, it is not possible for me to give directions that are not precise, and that takes time and space.

    This doc is frequently used, it is generally viewed as authoritative: __https://people.cs.vt.edu/~kafura/cs2704/generalization.html

    But even that:
    - fails to define Specialisation
    - fails to define the *SET* of specialisations.
    Can you imagine, that if genuine authorities were used, life would be so much simpler for all concerned, developers and modellers alike.


    For what it is worth, here are the definitions I give GUI developers (employed by the customer, seconded to me for the duration of the project):

    Generalisation
    the determination and organisation of a set of abstractions that have common properties

    Specialisation
    each abstraction in a set of generalised abstractions, representing its distinct properties.

    Copyright © 1993-2021 Derek Ignatius Asirvadem
    <<<<

    Yes, the only one that is similar to the classification that applies to data is “generalisation/specialisation hierarchy”. But ...

    I reject the terms “generalisation specialisation”; “generalisation hierarchy”; “generalisation/specialisation hierarchy” as pertaining to data, because:
    - they are OO/ORM terms, and
    - carry heavy OO/ORM connotations (refer link above)
    - OO/ORM have nothing to say about Data Modelling (they do and very loudly, but it is a grave mistake)
    - the definitions for Subtyping (that does apply to data), is absent.

    Data Modelling and Process Modelling (including Objects as a type of Process) are two vastly different sciences. I reject any terminology that suggests OO/ORM can pertain to data, it is the single most destructive assumption, destructive on both the
    Data Modelling and Object Modelling sides.


    Just one eg. In OO/ORM it is a “generalization hierarchy”, whereas in Data Modelling where “hierarchy” already has a specific data-centric meaning, it is not an hierarchy, it is a treatment of sets, what you might call “sibling” sets. There
    is nothing hierarchical about it.
    <<

    Whereas Subtype existed before OO/ORM, and indeed before IDEF1X (which is why I say the academic that wrote IDEF1X is as schizophrenic as his colleagues, no more, no less). The worse problem, if there can be such, is his introduction of the new
    classification (hithertofore unknown and untested) *AS* a standard. (Again, there are more problems in the IDEF1X definition, this covers only the Category classification.)

    Thus I suggest terms that do not carry non-data connotations, and preferably, terms that existed before both OO/ORM and IDEF1X. Failing that, use IDEF1X terms exclusively, but with the restated definitions as demanded.

    All the definitions I have used are on page 2. Although not completely formal, they are accurate enough for understanding the document.

    No problem.

    I have
    added predicates throughout: hopefully, that will prevent further misunderstandings.

    Since this appears to be re a Data Modelling course, that uses IDEF1X, and from another thread, you have stated that you teach Predicates, I would say it is important to state that IDEF1X allows mathematical, logical definition of Relational database
    elements, in a graphical form, and since Relational means FOPC Predicated, the graphical model embodies such ... therefore the Predicates given in text form are duplicates, to assist novices. Or in some case [in your doc] where a model is not given, to
    provide clarity.


    For understanding. In my page 3, the Predicates given in text form.
    For brevity, when two binary Predicates have the same two Variables, rather than stating them separately:
    __ <Variable_A> <Predicate_1> <Variable_B>
    __ <Variable_A> <Predicate_2> <Variable_B>
    they are stated:
    __ <Variable_A> <Predicate_1> {and|,} <Predicate_2> <Variable_B>
    <<

    That may or may not suit your purpose. For what I think your purpose is, I would show the separate
    Predicates.

    -------------------------------------------------------------------------------
    6. Summary and Comparison with IEEE notation
    -------------------------------------------------------------------------------

    a.
    IDEF1X <all four classes>
    Specialization is an exclusive subtype [of] 1 Generic
    Specialization is 1 Generic
    the second is redundant because the first states it (its existential reality, dependence), and does so more precisely.

    b.
    IDEF1X <all four classes>
    Generic is { an exclusive | a non-exclusive } basetype of {Subtypes}
    Generic is <Quantity> of {SpecializationList}

    In my lexicon of Relational Predicates, the second is a declaration of a discrete Fact (the relation) and thus gives the list, the first should be a declaration about the discrete Fact of Generic (its existential reality) alone. (For clarity, refer to
    my §3.1):
    - the duplication of the list is an error
    - the “of” is ambiguous
    Therefore it should be:
    __Generic is { an exclusive | a non-exclusive } basetype
    Generic is <Quantity> of {SpecializationList}

    c. Ditto for IEEE <both classes>.

    d.
    IDEF1X <all four classes>
    Specialization is { an exclusive | a non-exclusive } specialization [of] 1 Generic
    Specialization is dependent on 1 Generic
    The first Predicate clearly indicates dependence, thus the second is redundant.

    e. Ditto for IEEE <both classes>.

    f.
    IDEF1X <all four classes>
    The predicate headings:
    Generic
    Specialization
    should be:
    <Generic>
    <Specialization>

    f.1. Two instances of “subtype” under IDEF1X should be “specialisation”.

    f.2. Four instances of “basetype” under IDEF1X should be “generic”.

    g. Last but not least, each of the six sets needs a clear and unambiguous title.

    h.
    is discriminated by Discr [not shown]

    In IDEF1X it *is* shown, therefore it is shown in IEEE (same as yours but in the font used for columns).

    My Extension shows it: either with the symbol (typically at the Entity level); or in the column, which must be designated [D] (typically at the Key and Attribute level).

    -----------------------
    0 Definitions
    -----------------------

    It is great that you have this page.

    Before I get into the specifics, let me make some general declarations.
    - /Reality/ includes both material reality and Facts about reality (which may be abstractions and thus not material, ie. Logic; Predicates).
    - the empty set or the null set or null is very, very, necessary for the theory --- it does not exist in reality (ie. it can be ignored outside the theory classroom)
    --- if you challenge this, please provide an example from the natural universe (excludes the contrived fantasies in the asylum)
    - the set of one member is a valid set, but it is not a Proper Subset (by definition)
    --- the set of one exists in reality
    - the set of one is not feasible where commonality is required, because commonality requires at least two members
    --- thus the set of one is illegal re Subtypes
    --- it is also ridiculous re OO/ORM Objects
    --- (I HAVE DETAILED THIS IN PREVIOUS POSTS, NOT REPEATED HERE)

    What you are trying to do is two separate things:
    - validate IDEF1X Incomplete
    - introduce Non-Exclusive
    I suggest you make that clear (eg. as per my §5.3 or similar), rather than attempting to do both together without clarity ... which leads to some sort of combined form.

    ----

    “Categorization” is avoided because it may be taken to imply mutual exclusivity (in IDEF1X, the categories within
  • From LP@21:1/5 to Derek Ignatius Asirvadem on Mon Apr 19 21:18:49 2021
    Derek,
    I have taken note of your comments, and applied some of your suggestions
    to my document (those that made sense to me, more on that below). But
    I am not posting another version (yet).

    On 2021-04-19, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote:
    I accept that the issue is closed for you, sure, but for me, it is the
    same old issue of tightening loose definitions, and ongoing. I hope
    you don’t mind, it is not possible for me to give directions that are
    not precise, and that takes time and space.

    Fine.

    This doc is frequently used, it is generally viewed as authoritative: __https://people.cs.vt.edu/~kafura/cs2704/generalization.html

    Read, but I did not find it particularly insightful or relevant to our
    present discussion. As you said, the OO world is a different beast.

    For what it is worth, here are the definitions I give GUI developers (employed by the customer, seconded to me for the duration of the
    project):

    Generalisation
    the determination and organisation of a set of abstractions that have common properties

    Specialisation
    each abstraction in a set of generalised abstractions, representing its distinct properties.

    Ok.

    Just one eg. In OO/ORM it is a “generalization hierarchy”, whereas in Data Modelling where “hierarchy” already has a specific data-centric meaning, it is not an hierarchy, it is a treatment of sets, what you
    might call “sibling” sets. There is nothing hierarchical about it.

    You have argued that point of view convincingly enough in your "Nicola
    IDEF1X 2" document.

    I have
    added predicates throughout: hopefully, that will prevent further
    misunderstandings.

    I would say it is important to state that IDEF1X allows mathematical,
    logical definition of Relational database elements, in a graphical
    form, and since Relational means FOPC Predicated, the graphical model embodies such ... therefore the Predicates given in text form are
    duplicates, to assist novices. Or in some case [in your doc] where
    a model is not given, to provide clarity.

    Sure.

    For understanding. In my page 3, the Predicates given in text form.
    For brevity, when two binary Predicates have the same two Variables, rather than stating them separately:
    __ <Variable_A> <Predicate_1> <Variable_B>
    __ <Variable_A> <Predicate_2> <Variable_B>
    they are stated:
    __ <Variable_A> <Predicate_1> {and|,} <Predicate_2> <Variable_B>
    <<

    That may or may not suit your purpose.

    That is deliberate, to have one simple predicate per line and facilitate comparisons.

    -------------------------------------------------------------------------------
    6. Summary and Comparison with IEEE notation
    -------------------------------------------------------------------------------

    a.
    IDEF1X <all four classes>
    Specialization is an exclusive subtype [of] 1 Generic
    Specialization is 1 Generic
    the second is redundant because the first states it (its existential
    reality, dependence), and does so more precisely.

    Again, that is deliberate, for better comparisons when alternative
    models or notations are proposed. For now I have left them untouched,
    but I may remove them in the future.

    b.
    IDEF1X <all four classes>
    Generic is { an exclusive | a non-exclusive } basetype of {Subtypes}
    Generic is <Quantity> of {SpecializationList}

    In my lexicon of Relational Predicates, the second is a declaration of
    a discrete Fact (the relation) and thus gives the list, the first
    should be a declaration about the discrete Fact of Generic (its
    existential reality) alone. (For clarity, refer to my §3.1):
    - the duplication of the list is an error
    - the “of” is ambiguous
    Therefore it should be:
    __Generic is { an exclusive | a non-exclusive } basetype
    Generic is <Quantity> of {SpecializationList}

    Ok. Before I change that, I need a clarification.

    Let's say a music school employs teachers, and needs to keep track of
    male and female teachers. Also, each teacher is a violinist, a pianist,
    or both. Would you state both the following then:

    Teacher is an exclusive basetype
    ...
    Teacher is a non-exclusive basetype
    ...

    ? That sounds contradictory.

    c. Ditto for IEEE <both classes>.

    Ok.

    d.
    IDEF1X <all four classes>
    Specialization is { an exclusive | a non-exclusive } specialization [of] 1 Generic
    Specialization is dependent on 1 Generic
    The first Predicate clearly indicates dependence, thus the second is redundant.

    Answered above.

    e. Ditto for IEEE <both classes>.

    f.
    IDEF1X <all four classes>
    The predicate headings:
    Generic
    Specialization
    should be:
    <Generic>
    <Specialization>

    Ok.

    f.1. Two instances of “subtype” under IDEF1X should be “specialisation”.

    Why? If anything, it should read "total specialization" then (which is
    the same as "subtype").

    f.2. Four instances of “basetype” under IDEF1X should be “generic”.

    Ditto. It is "basetype" in the same sense as it is "basetype" in
    reference to the IEEE symbol.

    g. Last but not least, each of the six sets needs a clear and
    unambiguous title.

    Noted, yet to be added (some other things need to be resolved first).

    h.
    is discriminated by Discr [not shown]

    In IDEF1X it *is* shown, therefore it is shown in IEEE (same as yours
    but in the font used for columns).

    My Extension shows it: either with the symbol (typically at the Entity level); or in the column, which must be designated [D] (typically at
    the Key and Attribute level).

    Ok.

    -----------------------
    0 Definitions
    -----------------------

    What you are trying to do is two separate things:
    - validate IDEF1X Incomplete

    Yes, it's an attempt.

    - introduce Non-Exclusive

    Yes.

    I suggest you make that clear (eg. as per my §5.3 or similar), rather
    than attempting to do both together without clarity ... which leads to
    some sort of combined form.

    Not sure what you mean by "combined form". You have understood what I am
    trying to do.

    ----

    “Categorization” is avoided because it may be taken to imply mutual
    exclusivity (in IDEF1X, the categories within the same cluster are
    mutually exclusive by definition).

    That is not true. You are explicitly rejecting the IDEF1X definition
    and classification of Category, which quite definitely is mutually
    exclusive. (There is no problem with you adding a new classification
    to allow non-exclusive.)

    I stand by my statement above, which is according to the published
    standards. Anyway, "category" is banned, because we do not agree on
    its meaning.

    Specialization: an entity that models a proper subset of the
    instances of another entity. For example, Employee is
    a specialization of Person, because the set of all employees is
    a subset of the set of all individuals (and there are individuals who
    are not employees).

    Whoa. I do understand that you are trying to arrive at a combined
    form of definition.

    Ah ok, now I understand what you mean above. I beg to disagree: my
    definitions are quite the opposite of "combined"; they are quite
    orthogonal.

    But: - this sort of redefinition makes it (both the error of
    a combined form, and the definition) absurd.
    - a redefinition of an existing, well-established term has to be
    rejected outright.

    The example given is strictly *NOT* a specialisation in the sense that
    people would understand, therefore you are perverting that sense, in
    order to generalise it, in order to include Incomplete.

    Is there any other term you would accept for that concept? Or is the
    concept itself absurd?

    The truth is, Employee is a Person because it is Dependent on Person,
    not because it is a “specialisation” of Person (It is not).

    By the perverted definition, *ANY* Dependent entity is
    a specialisation of the parent. Which is hysterical. In Order DM
    Advanced:
    __ https://www.softwaregems.com.au/Documents/Documentary%20Examples/Order%20DM%20Advanced.pdf
    according to your definition, PartyAddress; OrderSale; OrderSaleItem; OrderPurchase; OrderPurchaseItem; PartVendor are each
    “specialisations” of Party, which is ridiculous and false.

    I do not follow you. Perhaps, you have a reversed implication in mind.
    I have written that, *since* Employee is a (perverted) specialization of Person, *then* "in particular, employees have the same attributes as individuals [...] and typically have additional attributes". The latter
    is a *consequence* of the former. The converse does not hold, of course.

    And again, while it is true in the simple Relational sense that each PartyAddress; OrderSaleItem; OrderPurchaseItem; PartVendor [is a]
    Party, it is not true in the “generalisation/specialisation” sense. Suburb is certainly not a Country, but yes, it depends on; belongs to, Country.

    Granted.

    proper subset
    Since when is the empty set a proper subset ??? The freaky fantasy is
    not even a set, let alone a proper subset.

    "Proper" has a very specific technical meaning in mathematics, and set
    theory in particular. It does not mean what you think it means.

    Anyway, the definition could in fact be stricter by saying "a proper
    non-empty set".

    Generic entity: an entity that has at least one specialization. In
    the example above, Person is a generic entity.
    The definition is fine, but the example is horrendous, supply a valid example.

    In what sense do you think that the example is "invalid"?

    This may be a good point at which to declare the differentiation:
    - Total = at least two specialisations

    That is mentioned. It's also obvious from the definitions (this is also mentioned).

    - Partial = zero; one; or more

    No. A (perverted) *specialization cluster* ("partial" applies to
    a cluster) has at least one specialization (reread the definition).

    - Generic = at least one
    - Specialisation = zero; one; or more

    You are writing fragments here. "Generic" qualifies "entity"; "Total"
    and "partial" qualify a "specialization *cluster*". A "specialization"
    in my perverted definition is an entity (ok, perhaps "specialized
    entity" would be better). Do not take a noun here and an adjective
    there, otherwise we cannot understand each other.

    I'm fine if you do not like my choice of terms, and I'm happy to change
    them for better ones. But, even if "specialization" is not used with
    a conventional meaning, it's the definition that matters, and within the
    scope of that document the definition is given. We could change it to "spizzalization" throughout, and the document would be understood in the
    same way (this is a dejà-vu).

    All occs of “Specialization cluster”
    Generalisation cluster.

    I may consider this change.

    We also say that each employee is a person.
    No, we do not. That perverts the well-established understanding of
    the [is a] relation.

    I admit then that my understanding of [is a] is lacking. Can you please elaborate on this point? How should the [is a] relation be understood if
    not as above?

    Note, though, Employee and Person are two distinct entities (different sets).

    ??? Are not all depicted sets distinct sets; distinct entities.

    Sure, just a trivial remark.

    Footnote [2]
    Can be removed.

    Done.

    Total, Partial
    Yes, I see where you are going, I have no argument. But they are not commonly understood or “commonly accepted definitions”. The words in English are way too general, they cannot be used as specific in an application.

    Any better ones?

    Partial specialization cluster: a specialization cluster that is not total. >> Partial [generalisation] cluster: a [generalisation] cluster that is not total.
    In a section for Definition, I would not state that (what it is not). I would state what it is.

    That was to make the definitions shorter. I may change that.

    Exclusive specialization cluster: a specialization cluster such that,
    at every time, Si \ Sj is the empty set for all i ≠ j.
    Exclusive [generalisation] cluster: a [generalisation] cluster such
    that, at every time, Si \ Sj is the empty set for all i ≠ j.
    Great for a theoretician. What about saying “one of”, so that implementors can understand it.

    The audience of my document has no problem understand that. It would
    consider "one of" ambiguous.

    A basetype is always a generic entity, but a generic entity is not
    necessarily a basetype

    Cliché, cabalist nonsense, not fit for a technical document. It means nothing: a specialisation *IS ALWAYS** -<is>- relative to its parent,
    and a generic *IS NOT ALWAYS** -<is>- any of its specialisations.

    There are too many "is" in this post. I am really confused.

    Where you are trying to differentiate Basetype vs Generic, just state
    that: Basetype is Total; Generic is {Total|Partial}

    It's not only that. According to my definition, that is the only
    difference.

    Total specialization clusters (i.e., subtyping) always have at least
    two specializations (subtypes)

    [Whereas] a Total [generalisation] cluster (i.e., Subtype cluster)
    ]always[ has at least two specialisations (subtypes) ... a Partial generalisation cluster allows zero or one specialisation.

    At least one.

    What is your definition of a zero-specialisation ?

    There is no zero-specialization.

    Doc updated.
    - I have added §1.6 in response to your V4 diagrams, but the argumentation is in this post.
    - Date at the bottom of each page informs you if it has been updated.

    ____https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    The qualitative figures are not essential for understanding, just an
    addition for the visually inclined; together with the definitions, mine
    are quite ok. One thing to notice, though, is that I am labelling only
    the entities that are actually part of a hypothetical data model, while
    you insist in adding the complement to show that the universe is
    complete (which is obvious—it's the yellowish part in my Venn diagrams).
    You would not have a NotEmployee or NotSecretaryAndNotConsultant entity
    in your database, would you?

    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to if you understand what I on Tue Apr 20 03:35:11 2021
    Nicola

    On Tuesday, 20 April 2021 at 07:18:54 UTC+10, LP wrote:


    For understanding. In my page 3, the Predicates given in text form.
    For brevity, when two binary Predicates have the same two Variables, rather than stating them separately:
    __ <Variable_A> <Predicate_1> <Variable_B>
    __ <Variable_A> <Predicate_2> <Variable_B>
    they are stated:
    __ <Variable_A> <Predicate_1> {and|,} <Predicate_2> <Variable_B>
    <<

    That may or may not suit your purpose.

    That is deliberate, to have one simple predicate per line and facilitate comparisons.

    Good.

    Well, in that case, I have to take the declarations given as Predicates, and in that case the Predicates are plain incorrect; false. In that case, the redundant Predicate is a gross error. Every Predicate is an implementation directive. After the
    first [correct] Predicate is given [implemented], the second [redundant] Predicate simply cannot be implemented because the first is already implemented. Therefore the second [redundant] Predicate is false; incorrect.

    I trust you understand that Predicates are Normalised.

    Do not list false Predicates and descriptive text with correct Predicates in a Predicate List.

    -------------------------------------------------------------------------------
    6. Summary and Comparison with IEEE notation
    -------------------------------------------------------------------------------

    a.
    IDEF1X <all four classes>
    Specialization is an exclusive subtype [of] 1 Generic
    Specialization is 1 Generic
    the second is redundant because the first states it (its existential reality, dependence), and does so more precisely.

    Again, that is deliberate, for better comparisons when alternative
    models or notations are proposed. For now I have left them untouched,
    but I may remove them in the future.

    Ok, as per the clarification above, now my comments are certain.
    The second is redundant; false; incorrect.

    b.
    IDEF1X <all four classes>
    Generic is { an exclusive | a non-exclusive } basetype of {Subtypes}
    Generic is <Quantity> of {SpecializationList}

    In my lexicon of Relational Predicates, the second is a declaration of
    a discrete Fact (the relation) and thus gives the list, the first
    should be a declaration about the discrete Fact of Generic (its existential reality) alone. (For clarity, refer to my §3.1):
    - the duplication of the list is an error
    - the “of” is ambiguous
    Therefore it should be:
    __Generic is { an exclusive | a non-exclusive } basetype
    Generic is <Quantity> of {SpecializationList}

    Ok. Before I change that, I need a clarification.

    Let's say a music school employs teachers, and needs to keep track of
    male and female teachers. Also, each teacher is a violinist, a pianist,
    or both. Would you state both the following then:

    Teacher is an exclusive basetype
    ...
    Teacher is a non-exclusive basetype
    ...
    ? That sounds contradictory.

    (I trust you are not in denial of the fact that there is a Subtype Cluster; a Subtype Set, that that is just your way of pointing something out to me.)

    No, it is not contradictory because each declaration applies to a discrete Subtype Set.

    Yes, it gets resolved in my Normalised or combined forms with the “and”. Sorry, my Lexicon is not published.

    You are right, in the single-Predicate list, {SubtypeList} has to be stated.

    Teacher is an exclusive basetype of {SubtypeList}
    ...
    Teacher is a non-exclusive basetype of {SubtypeList}

    f.1. Two instances of “subtype” under IDEF1X should be “specialisation”.
    Why?

    For your purpose, I am assuming that you want to maintain the “generalisation/specialisation hierarchy” terminology, even though I have stated it would be better to maintain the IDEF1X terminology and *add* your proposed classifications. In the
    Predicate text:
    - so first, [subtype] does not belong on the IDEF1X side, the word is [Category]
    - second, if you are using the OO/ORM terminology, the word is [Specialisation]

    Not:
    Specialisation is an exclusive subtype 1 Generic
    Specialisation is a non-exclusive subtype of 1 Generic
    but IDEF1X:
    <Category> is an exclusive category 1 <Generic>
    <Category> is a non-exclusive category of 1 <Generic>
    or OO/ORM:
    <Specialisation> is an exclusive specialisation 1 <Generalisation> <Specialisation> is a non-exclusive specialisation of 1 <Generalisation>

    Throughout your doc, basically, be consistent and use one set of terminology, as applicable. Yes, when you describe IEEE sets, use IEEE terminology. I don’t know what you want to do with IDEF1X original terminology vs your proposal terminology (which
    seems OO/ORM). I have just tried to assistin obtaining that consistency.

    If anything, it should read "total specialization" then (which is
    the same as "subtype").

    I don’t see how that applies.

    f.2. Four instances of “basetype” under IDEF1X should be “generic”.

    Ditto. It is "basetype" in the same sense as it is "basetype" in
    reference to the IEEE symbol.

    First, not repeating the above.
    Why would you want to mix the terminology ?
    Why does IDEF1X terminology not stand on their own ? [It does]
    Why does your proposal terminology not stand on its own ? [In progress]

    Second, it exposes a deeper issue. If your proposal is dependent on the IEEE definitions, then you need to state that openly, at the beginning. Ditto any dependencies on IDEF1X. That will make your porposal straight-forward and clear.

    What you have now [V4] is a strong push for your proposal, minimising both IEEE and IDEF1X dependencies, in fact denying it in some cases. Which leads to the back-and-forth, as evidenced.


    When I meet a new friend, somewhere in the conversation it becomes obvious that he is an atheist and I am not. Due to their insecurity, he has to make some demeaning declaration about God. So I ask him my single question that destroys the heavily-
    maintained bubble of atheism:
    - Define atheism without using the concept of God

    Silence.

    Blank stare.

    Immediate change of subject.

    So the simple undeniable fact of atheism is, it depends on the existence of God. 95% of atheist polemics are eliminated if you understand this.
    <<<<

    Thus far, you are trying to define a set without making a clear reference to the set that it is dependent upon, and running into problems. Declare the dependency (and thus an acknowledgement) at the outset, and that class of problems will disappear. (
    My doc §3 may be an example.)

    g. Last but not least, each of the six sets needs a clear and
    unambiguous title.
    Noted, yet to be added (some other things need to be resolved first).

    Ok.
    In Predicate terms, if it is not named, it does not exist. Yet.

    -----------------------
    0 Definitions
    -----------------------
    What you are trying to do is two separate things:
    - validate IDEF1X Incomplete
    Yes, it's an attempt.

    - introduce Non-Exclusive

    Yes.
    I suggest you make that clear (eg. as per my §5.3 or similar), rather than attempting to do both together without clarity ... which leads to some sort of combined form.
    Not sure what you mean by "combined form". You have understood what I am trying to do.

    I have understood, at this late stage in the discussion. The combined form is what you have in V4, in which the two goals are not stated but can be inferred. I am saying, state those two goals as separate, *NOT* in the combined form. That will make
    the doc and your proposals clear to any reader.

    “Categorization” is avoided because it may be taken to imply mutual >> exclusivity (in IDEF1X, the categories within the same cluster are
    mutually exclusive by definition).

    That is not true. You are explicitly rejecting the IDEF1X definition
    and classification of Category, which quite definitely is mutually exclusive. (There is no problem with you adding a new classification
    to allow non-exclusive.)

    I stand by my statement above, which is according to the published standards.

    I agree with your earlier statement above, I can’t but agree with the content of a published standard. I am saying something else:
    - that it is not an “implication”, it is explicit
    - you can’t get rid of it or ban it (that would be denial of reality)
    - that you would be better off acknowledging it [mutual exclusivity in IDEF1X Categorisation], and then proposing the new set [*NOT* mutually exclusive].

    Since you rely on IDEF1X[Incomplete] so much, state that too, and then build on it.

    You can’t rely on something, and deny it at the same time (refer to my argument re atheism above).

    Anyway, "category" is banned, because we do not agree on
    its meaning.

    Answered above.

    Specialization: an entity that models a proper subset of the
    instances of another entity. For example, Employee is
    a specialization of Person, because the set of all employees is
    a subset of the set of all individuals (and there are individuals who
    are not employees).

    Whoa. I do understand that you are trying to arrive at a combined
    form of definition.
    Ah ok, now I understand what you mean above. I beg to disagree: my definitions are quite the opposite of "combined"; they are quite
    orthogonal.

    (That word is so over-used, so meaningless.)

    No.
    1. Your definitions are fragments. That only stand in the context of denial of the atoms from which you extracted said fragments.
    2. Then you either combine the fragments, and make something new, which lacks integrity,
    3. Or make connections between the fragments, where there is no connection between the Atoms to which the said fragments belong.
    It is a grand contrivance.

    I am saying, do not deny the reality of IDEF1X definitions; do not deny the reality of Atoms. If your definitions depend on anything, declare those things [no definition or redefinition], and the dependency. Then give your definition for the new thing
    only. The whole of which will then be clear to any reader { strict IEEE | loose IDEF1X | tight IDEF1X }.

    Specialization [...]

    But: - this sort of redefinition makes it (both the error of
    a combined form, and the definition) absurd.
    - a redefinition of an existing, well-established term has to be
    rejected outright.

    The example given is strictly *NOT* a specialisation in the sense that people would understand, therefore you are perverting that sense, in
    order to generalise it, in order to include Incomplete.

    Is there any other term you would accept for that concept? Or is the
    concept itself absurd?

    (Which concept ? I will go through the possibilities, in order to avoid a round of back-and-forth. Sorry if it is long.)

    1. Here, my comments pertained immediately to Specialisation, and your redefinition of it.
    - you can’t, it is already well-established
    --- you particularly can’t deny the definition of the atom [ Concept{Generalisation::Specialisation} ] and then use fragments of it [Specialisation alone, minus Generalisation]
    --- and then a fragment of [Specialisation alone]
    --- and then a novel definition under the head [Specialisation] which is in fact a redefinition
    - accept it and move on
    - use it as it is defined in the Standard, which is the atom [ Concept{Generalisation::Specialisation} ]

    2. The IDEF1X Concept Categorisation{Generic::Category}
    That in itself is no problem, it is just new words for Subtype{Basetype::Subtype}, the problem is the new classification {Complete|Incomplete}: as I have detailed, [Incomplete] is totally invalid in a database of any kind, invalid by definition in a
    Relational database. Again, it is not [Incomplete] as a member that can be eliminated ]and [Complete] retained[ because it is the classification that defined [Incomplete] that is in error, so the classification has to be rejected, neither member can be
  • From Derek Ignatius Asirvadem@21:1/5 to All on Wed Apr 21 13:39:51 2021
    Nicola

    On Tuesday, 20 April 2021 at 20:35:12 UTC+10, Derek Ignatius Asirvadem wrote:

    Total specialization clusters (i.e., subtyping) always have at least
    two specializations (subtypes)

    [Whereas] a Total [generalisation] cluster (i.e., Subtype cluster) ]always[ has at least two specialisations (subtypes) ... a Partial generalisation cluster allows zero or one specialisation.

    At least one.

    Yes, I understand that. I am saying, and I have detailed in previous posts, and in my response doc §3.1.1/1, a Subtype Set of 1 is illegal, logically incoherent. Therefore if you allow that, I have no choice but to reject any definition that relies on
    a incoherent article.

    Again, I say, you are trying to validate the incoherent IDEF1X{Incomplete] which is impossible because you cannot validate insanity. With “at least one”, you have realised that. Great. All you have to do is declare the difference re IDEF1X defns:
    Partial is not Incomplete because Incomplete is incoherent, and the correction is coherent. Crack open the Proseco.

    Likewise, here you are trying to validate the set of one, which is not a set.

    The sense should be clear from previous posts, and from the context, but the mistake needs to be corrected explicitly. That should read:

    __ Likewise, here you are trying to validate the set of one, which is not a valid SubtypeSet.

    Of course a set of one is a valid set, but it has no Proper Subset, and it is not a valid SubtypeSet:

    The challenge: define the commonality in the set of one, that can be extracted into the Basetype. And define the remainder that is distinct.

    At least one.

    If zero is eliminated, that means the IDEF1X[Incomplete] is eliminated.

    That means in your §6, the lower two classifications under IDEF1X are eliminated. Please confirm.

    That leaves your venture with two remaining items:
    - introduction of Non-Exclusive as an amendment to IDEF1X
    --- ignoring the IEEE notation (vastly more accepted, as you said)
    --- with a new symbol
    - the SubtypeSet of one issue awaits a decision

    We also say that each employee is a person.
    No, we do not. That perverts the well-established understanding of
    the [is a] relation.
    I admit then that my understanding of [is a] is lacking. Can you please elaborate on this point? How should the [is a] relation be understood if not as above?

    1. [...]

    2. [...]

    3. Third, we can now get into the OO/ORM perception of Relational elements. While they completely destroy most of it due to the disability mentioned above, the one thing they immediately understand in small part (ie. not the definitions I have given in
    either my Subtype doc or my response doc) is the subtyping, which they call Generalisation Hierarchy. Note again, it is not the same thing, it is that which they can understand in Subtypes, due to the similarity in Objects in some parts.

    So yet aga
  • From LP@21:1/5 to Derek Ignatius Asirvadem on Wed Apr 21 20:27:52 2021
    On 2021-04-20, Derek Ignatius Asirvadem <derek.asirvadem@gmail.com> wrote: >anything derived from it, anything relying on it, is absurd.
    [...]
    Further, the actual Predicates refute the absurd proposition.
    [...]
    Likewise, logic is the form, your proposal is the matter, it fails logic. [...]
    Ok then, it is a major mistake in conceptualisation. Because you are addressing the fragments, not the atoms.

    Well, son, IDEF1X Categorisation{Complete|Incomplete} already exists,
    and has for forty years, and it is the doc that you are intending to
    apply amendments to, the source doc, if you will. So I would stick to
    that, which means you don’t have to supply definitions, you can just
    refer to the Standard.

    Yes, it is broken. So then you have to first define and apply the resolutions.

    Then define only your new proposal.

    Not quoting the rest of your post, it is not necessary. I have
    understood that what I was stubbornly trying to do is a hopeless
    endeavour. My premises and my expectations were wrong.

    I am saying, ditch the whole thing, go with the historic path that
    many implementors have trodden: accept the Standard;

    I think that is the way to go then.

    define the resolutions; add to it.

    That would inevitably end up where you are at. I can skip the effort of
    going through the same road (the effort to get to this realization was
    already substantial enough), and join you directly at the light at the
    end.

    Only one minor detail: I have tried to track the origin of the IEEE
    symbols for subtyping, but I don't seem to be able to find much
    information. AFAIK, Information Engineering originally used nested boxes (derived from Barker's notation?). Who was/is using it apart from you
    and ERwin? You keep mentioning a standard, but there are dozens of IEEE standards: any reference?

    Regards,
    Nicola

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Wed Apr 21 15:39:59 2021
    On Thursday, 22 April 2021 at 06:27:56 UTC+10, LP wrote:
    On 2021-04-20, Derek Ignatius Asirvadem wrote:
    anything derived from it, anything relying on it, is absurd.
    [...]
    Further, the actual Predicates refute the absurd proposition.
    [...]
    Likewise, logic is the form, your proposal is the matter, it fails logic. [...]
    Ok then, it is a major mistake in conceptualisation. Because you are addressing the fragments, not the atoms.

    Well, son, IDEF1X Categorisation{Complete|Incomplete} already exists,
    and has for forty years, and it is the doc that you are intending to
    apply amendments to, the source doc, if you will. So I would stick to that, which means you don’t have to supply definitions, you can just refer to the Standard.

    Yes, it is broken. So then you have to first define and apply the resolutions.

    Then define only your new proposal.

    Not quoting the rest of your post, it is not necessary. I have
    understood that what I was stubbornly trying to do is a hopeless
    endeavour. My premises and my expectations were wrong.

    That admission is to be commended, it is rare among academics.

    I am saying, ditch the whole thing, go with the historic path that
    many implementors have trodden: accept the Standard;

    I think that is the way to go then.
    define the resolutions; add to it.

    That would inevitably end up where you are at. I can skip the effort of going through the same road (the effort to get to this realization was already substantial enough), and join you directly at the light at the
    end.

    Only one minor detail: I have tried to track the origin of the IEEE
    symbols for subtyping, but I don't seem to be able to find much
    information. AFAIK, Information Engineering originally used nested boxes (derived from Barker's notation?). Who was/is using it apart from you
    and ERwin? You keep mentioning a standard, but there are dozens of IEEE standards: any reference?

    I can’t answer the question directly, but I can give you some understanding. Please appreciate that during that time, I worked for Cincom, their TOTAL NDBMS codeline, across all DEC machines, first in Level 3 support and then in R&D writing the “
    next generation”. Those were the days when the arguments between the players were articles in Datamation, etc. Boyce; Date; and Chamberlin were big-noting themselves, Barker and Bachman had competing notation, Codd was trying to stop the tide of
    adulteration of the /RM/ (which he himself started, unwittingly, by bending over and giving RM/T for the hordes that could not understand the /RM/). Point being, I was covering the market at the very high end, and had little knowledge of the insanity
    that was academic papers, which were brought to our attention by our internal academics if and only if relevant. We just knew it was happening.

    The progress, the whole enterprise, was driven by the DBMS vendors, because they had actual products and they delivered actual methods. Eg. Subtyping. But it was not called Subtyping, it was called <providers_navigation_method>, and one provider would
    declare that his was better than the others, etc. TOTAL was beating the crap out of IMS and other HDBMS in the online market, but the latter held its own in the conservative DSS/OLAP market (fast access vs Modified-ISAM hierarchic access). IMS and
    others had a verb to “SWITCH-PATH”, which was their implementation, TOTAL just needed understanding at the designer level, a single page “How To” that I mentioned.

    IEEE had various notations to support the various articles that those guys were publishing/proposing. Some lived to become known (eg. instead of the crows foot, the arrow with one arrowhead at the parent end and two arrowheads at the child end; the
    Subtype symbol), and others died by the wayside.

    The nested boxes was classic Hierarchic Paradigm (JKL has corrected me, that it was not a model because it did not have a formal mathematical definition, but it was a model in the sense of the common use of the word these days, ala “business model”,
    it is a formula), it was in common use. We knew it was not a Venn diagram, but a file design. Imagine your doc §0 Venn diagrams drawn properly as a data model: the sets would be nested. For §2, PersonMale; PersonFemale; and Gender would each be
    boxes nested inside the Person box. It defined the navigation path (via notation, specific to the product). There was just one file Person. As things progressed, the child tables were differentiated, basically setting conditions or qualifying the path,
    and that depended on the facility (if any) that was in the product.

    Nested boxes meant the designer was using a HDBMS. The notation (lines; notches; arrows; crows foot; etc, were IEEE is the sense that they were common and understood but there was no IEEE published standard that I can recall. Think Popular Electronics
    magazine being applied by IT professionals in that day and age. In those days, the only standards were IEEE and ANSI/FIPS, if it was not strictly IEEE, it was an extension that was commonly understood. There were many notations, and the designer used
    the one he subscribed to {Bachman; Barker; etc). No one used ERD, it was plain stupid, eg. considering the nested box diagrams.

    An Hierarchic file consisted of one parent type-of-record, and many child types-of-record. What we now call sets. But they were implemented as a continuous series of records, from the parent record through one bunch of child records; then the next
    bunch; then the next parent; etc. That was the navigation path, which had to be programmed. But we knew that each child was a logical set, and the data model showed it as a nested box, the good designer had both logical and physical notation in one
    model; one diagram [intense], the rest had separate logical and physical models. (In those days, we called them [File Definition] or [File Design], not models.)

    Whereas in the NDBMS, each type-of-record was a separate file, and we had two types of file: Master (key access) and Variable (linked-list chain from the Master). Therefore no nested boxes.

    (In his /RM/ Codd clearly speaks about these aspects and issues. Not to the academics, but to normal un-perverted minds, he gives The Hierarchic Normal Form.)

    The Hierarchic access concept lives on today:
    - Genuine RDBMS (not the freeware) where the modeller implements the /RM/, Relational Keys ... obviously not in files but in every Relational table
    --- Sybase has the best implementation and the fastest, with their [Clustered Index], copied by MSSQL. The concept was pure Britton-Lee, which morphed into Sybase.
    - in Oracle Index Ordered Tables (a monstrous mess) in the one table, which is one FILE (hidden as “tablespace”)
    --- identical to HDBMS in terms of physical structure but with “sql” access The /RM/ is a direct progression of the HM, with the FOPC foundation, and the Independent Access from NDBMS. The academics position it as if it was created on the Jupiters fourth moon, with no past, isolated from the reality that gave it context, that
    produced it. As usual.

    To differentiate ordinary child type-of-record from a Subtype type-of-record, which were both drawn as nested boxes, was a matter of notation, limited by what the HDBMS provided and the flavour preferred by the designer. The concept was in the designer
    s head, and [just as we have argued here] some designers had a better understanding. I can’t count the number of tim
  • From Derek Ignatius Asirvadem@21:1/5 to All on Thu Apr 22 02:27:02 2021
    On Thursday, 22 April 2021 at 06:27:56 UTC+10, LP wrote:
    On Thursday, 22 April 2021 at 06:39:53 UTC+10, Derek Ignatius Asirvadem wrote:

    Posts crossed again, minutes apart !

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Tue Apr 27 23:28:43 2021
    On Thursday, 22 April 2021 at 08:40:00 UTC+10, Derek Ignatius Asirvadem wrote:
    On Thursday, 22 April 2021 at 06:27:56 UTC+10, LP wrote:

    Only one minor detail: I have tried to track the origin of the IEEE
    symbols for subtyping, but I don't seem to be able to find much information. AFAIK, Information Engineering originally used **nested boxes**
    (derived from Barker's notation?).

    [ explanation, skipped ]

    The nested boxes was classic Hierarchic Paradigm ...

    Nested boxes meant the designer was using a HDBMS ...

    An Hierarchic file consisted of one parent type-of-record, and many child types-of-record ... implemented as a continuous series of records, from the parent record through one bunch of child records; then the next bunch; then the next parent; etc ...

    Whereas in the NDBMS, each type-of-record was a separate file, and we had two types of file: Master (key access) and Variable (linked-list chain from the Master). Therefore no nested boxes.

    __Nested boxes__ in pre-Relational File Definition diagrams, is not to be confused with:
    __Nested Sets__

    An abortion, straight from hell. A Record Filing System within a Record Filing system. Not only does this generate masses of duplication and break Normalisation rules, this fixes the records in the filing system in concrete.

    Moving a single node requires the entire affected part of the tree to be re-written. Beloved of the Date, Darwen and Celko types.

    The MS HIERARCHYID Datatype does the same thing. Gives you a mass of concrete that has to be jack-hammered and poured again, every time a node changes. Perfect for beginners who think that Lego is an implementation method in SQL containers.

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Derek Ignatius Asirvadem@21:1/5 to All on Thu Jun 10 07:21:17 2021
    The discussion document. Page 8 has a couple of errors fixed. Added Hunter. __ https://www.softwaregems.com.au/Documents/Article/Database/Relational%20Model/IDEF1X/Nicola%20IDEF1X%202.pdf

    Cheers
    Derek

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)