Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8422091
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 10, 20262026-06-10T03:20:30+00:00 2026-06-10T03:20:30+00:00

I am learning how to interpret Entity Relationship Diagrams into SQL DDL statements and

  • 0

I am learning how to interpret Entity Relationship Diagrams into SQL DDL statements and I am confused by differences in notation. Consider a disjoint relationship as in the following diagram:

"Vehicle" box connects to "IsA" triangle, noted as "disjoint," which connects separately to "2WD" box and "4WD" box.

Would this be represented as:

  1. Vehicle, 2WD and 4WD tables (2WD and 4WD would point to the PK of Vehicle); or
  2. ONLY the 2WD and 4WD tables (and NO Vehicle table), both of which would duplicate whatever attributes Vehicle would have had?

I think these are other ways of writing the relationship:

"Vehicle" box connects with a thick line to "IsA" triangle, which connects with thin lines separately to "2WD" box and "4WD" box.
"Vehicle" box connects to "IsA" triangle, which connects separately to "2WD" box and "4WD" box, all by thin lines.

I’m looking for a clear explanation of the difference in regard to what tables you’d end up with for each diagram.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-10T03:20:32+00:00Added an answer on June 10, 2026 at 3:20 am

    ER Notation

    There are several ER notations. I’m not familiar with the one you are using, but it’s clear enough you are trying to represent a subtype (aka. inheritance, category, subclass, generalization hierarchy…). This is the relational cousin of the OOP inheritance.

    When doing subtyping, you are generally concerned with the following design decisions:

    • Abstract vs. concrete: Can the parent be instantiated? In your example: can a Vehicle exist without also being 2WD or 4WD?1
    • Inclusive vs. exclusive: Can more than one child be instantiated for the same parent? In your example, can Vehicle be both 2WD and 4WD?2
    • Complete vs. incomplete: Do you expect more children to be added in the future? In your example, do you expect a Bike or a Plane (etc…) could be later added to the database model?

    The Information Engineering notation differentiates between inclusive and exclusive subtype relationship. IDEF1X notation, on the other hand, doesn’t (directly) recognize this difference, but it does differentiate between complete and incomplete subtype (which IE doesn’t).

    The following diagram from the ERwin Methods Guide (Chapter 5, Subtype Relationships) illustrates the difference:

    enter image description here

    Neither IE nor IDEF1X directly allow specifying abstract vs. concrete parent.

    Physical Representation

    Unfortunately, practical databases don’t directly support inheritance, so you’ll need to transform this diagram to real tables. There are generally 3 approaches for doing so:

    1. Put all classes in the same table and leave child fields NULL-able. You can then have a CHECK to make sure the right subset of the fields in non-NULL.
      • Pros: No JOINing, so some queries can benefit. Can enforce parent-level keys (e.g. if you want to avoid different 2WD and 4WD vehicles having the same ID). Can easily enforce inclusive vs. exclusive children and abstract vs. concrete parent (by just varying the CHECK).
      • Cons: Some queries can be slower since they must filter-out “uninteresting” children. Depending on your DBMS, child-specific constraints can be problematic. A lot of NULLs can waste storage. Less suitable for incomplete subtyping – adding new child requires altering the existing table, which can be problematic in a production environment.
    2. Put all children in separate tables, but don’t have a table for the parent (instead, repeat parent’s fields and constraints in all children). Has most of the the characteristics of (3) while avoiding JOINs, at the price of lower maintainability (due to all these field and constraint repetitions) and inability to enforce parent-level keys or represent a concrete parent.
    3. Put both parent and children in separate tables.
      • Pros: Clean. No fields/constraints need to be artificially repeated. Enforces parent-level keys and easy to add child-specific constraints. Suitable for incomplete subtyping (relatively easy to add more child tables). Certain queries can benefit by only looking at “interesting” child table(s).
      • Cons: Some queries can be JOIN-heavy. Can be hard to enforce inclusive vs. exclusive children and abstract vs. concrete parent (these can be enforced declaratively if the DBMS supports circular and deferred foreign keys, but enforcing them at the application level is usually considered a lesser evil).

    As you can see, the situation is less than ideal – you’ll need to make compromises whatever approach you choose. The approach (3) should probably be your starting point, and only choose one of the alternatives if there is a compelling reason to do so.


    1 I’m guessing this is what thickness of the line stands for in your diagrams.

    2 I’m guessing this is what presence or absence of “disjoint” stands for in your diagrams.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Learning xml, Can anyone help me? I have following XML code: **<book lang=en>name of
I am learning assembler, and found some the following surprising. I essentially copied some
I am learning linq to sql and I am trying to setup a lookup
I am learning SQL and do some practice on the internet. I cannot find
I'm looking into learning the basics of OpenGL only with v.3.0 methods onwards. I've
Learning some VBA. So far, I've constructed this piece of code which should allow
learning the basics of Python, now ready for a bigger challange... it didn't take
Learning Spring (3.1.0) and Hibernate (4.1.1). Just wondering what most developers do when handling
Learning x86 assembly and the frame pointer is blowing my mind a little. I
Learning a lot in my few years of programming that the best projects are

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.