SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Subtypes vs. Roles


One question recently posed referred to the concept of the subtype in the logical data model, the
questioner seeking to know what they are, why do we use them and what benefits they bring to the
table. Using subtypes to categorize data has always been a challenging area to the novice data modeler
especially when dealing with the concept of exclusive and inclusive subtypes. An exclusive subtype is
defined as follows: for each occurrence in the super type there can be one and only one subtype
occurrence. Example:

                                                Party




                                  Person                   Organization




The super type Party may be sub typed as a person (or individual) or an Organization (a group of
people). Therefore, these subtypes are mutually exclusive, a Party can only be categorized as one or the
other but never both.

The inclusive subtype is defined as follows: for each occurrence in the super type there may be one to
many subtype occurrences. Example:

                                                Person




                                Customer        Employee           Vendor




The super type Person then may be categorized as both a Customer and an Employee. For that matter,
a person could be subtyped as all three or any combination.

In reality, the exclusive subtype is the form of subtyping most commonly used. Inclusive subtypes have



                                                Page 1
Subtypes vs. Roles


been used less and less overtime for the following reasons:

    1.    Data modelers have focused more on the semantics (the study of meaning) of data objects
         such as entities in the data model

    2. Inclusive subtypes can create complexity and ambiguity in the data model.

    3. There are inherent difficulties in defining relationships between subtype entities as well as
       relationships between subtype entities that are on different levels of a subtype - supertype
       hierarchy.

Data modeling represents more than creating structures for databases. A logical data model must also
capture clear definitions of data objects, the relationships between data objects and the related
business rules. Identifying Customer as a subtype of person upon reflection does not accurately reflect
the semantic differences between Person and Customer. A Person is a unique human being, a single
physical object. A customer is a role that a person may play. In life and in business, people often play
multiple roles; a Person may play a role of a Customer for one or more businesses while being an
Employee of one or more businesses and additionally that customer may also be a Vendor providing
goods and/or services to a Customer.

There then is a clearly defined difference between an entity that is in a supertype subtype hierarchy and
entities that represent roles.

    -    Entities in a supertype – subtype represent things

    -    Entities that are role entities represent the roles/purposes that things serve.

So what does this matter? It’s just semantics, right?
Actually, there is a heavy price that may be paid by unclear semantics. How many tables have we seen in
systems that have a Customer table, an Employee table and a Vendor table such as the one below:




                                                  Page 2
Subtypes vs. Roles


                                                    Person




Customer                                 Employee                            Vendor
 Customer Number: INTEGER                 Employee Number: NUMBER(5)          Vendor Number: DECIMAL(7)

 Customer Name: TEXT(45)                  Employee First Name: VARCHAR(25)    Vendor Name: VARCHAR(20)
 Csustomer Street Address: VARCHAR(20)    Employee Middle Initial: CHAR(1)    Vendor Personal First Name: VARCHAR(15)
 Customer City: VARCHAR(30)               Employee Last Name: VARCHAR(20)     Vendor Personal Middle Name: VARCHAR(15
 Customer State Abbreviation: CHAR(2)     Employee Address: VARCHAR(45)       Vendor Personal Last Name: VARCHAR(15)
 Customer: NUMBER(5)                                                          Vendor Street Address: VARCHAR(35)
                                                                              Vendor City State Address: VARCHAR45)
                                                                              Vendor Zip Code: CHAR(10)



The challenges abound! The inclusive subtyping tends to lead to denormalization and data duplicationAs
always, duplicated data creates challenges of synchronizing data and maintaining standardized formats
and data. The non standardization names and address create problems with sharing and comparing
data. Also, how do we determine which Employees are also Vendors to the company? Harte Hanks,
Trillium … many companies have made significant profits trough offering address cleansing, names
cleansing and rationalization (de duplication) services just to identify the same person in these different
tables and/or to determine the correct and most current address for a Customer who is also a Vendor?

But wait, there is more!
Can’t a Vendor be a Person or a Company (Organization?) Can’t a Customer be a Person or a company?
What does this look like?




                                                    Page 3
Subtypes vs. Roles


                              Party




    Person



                                                                    Organization




                     Employee




                       Customer




                                                                                       Regulator
                        Vendor




What does this do to relationships?
We have not added all of the relationships but we begin to see challenges 2 and 3 with the inclusive
subtypes. Multi subtype relationships, ambiguity and the lack of clarity abound!




                                                Page 4
Subtypes vs. Roles


                               Party




     Person



                                                                        Organization




                      Employee




                        Customer




                                                                                           Regulator
                         Vendor



Clearly if you are a believer in the KISS (Keep It Simple Stupid) principle in data modeling, this will not be
a satisfactory outcome. Several other questions arise:

    1. How flexible would this model be?

    2. How extensible is this model?

    3. How easily maintained would be the programs developed against the model?

Let’s look at a role based model.



                                                  Page 5
Subtypes vs. Roles



                                                                                           Customer Role




                    Address
                                                   Party
                                                                                            Vendor Role




                                                                                            Regulator Role

Physical Address   Phone Address   EMail Address




                                                                                            Employee Role

                                        Person               Organization




A much simpler model that is more semantically correct, less complex and has greater clarity. This
model of course is a starting point. Addresses definitely have roles. An associative entity between
Address and Party named Party Address Role would cover this.

Semantics play an important role in developing successful supertype – subtype hierarchies. The
exclusive subtype assists in maintaining clarity and simplicity in the model. Inclusive subtypes may often
be indicative of roles and are better expressed in the model by using a role based approach.

Hopefully, these musings will spark some thoughts.




                                                    Page 6

Más contenido relacionado

La actualidad más candente

La actualidad más candente (7)

Software Architecture and Project Management
Software Architecture and Project ManagementSoftware Architecture and Project Management
Software Architecture and Project Management
 
ikd312-03-design
ikd312-03-designikd312-03-design
ikd312-03-design
 
Design dbms
Design dbmsDesign dbms
Design dbms
 
DBMS Class 3
DBMS Class 3DBMS Class 3
DBMS Class 3
 
ER Diagrams Simplified
ER Diagrams SimplifiedER Diagrams Simplified
ER Diagrams Simplified
 
DataBase ch2
DataBase ch2DataBase ch2
DataBase ch2
 
Erd chapter 3
Erd chapter 3Erd chapter 3
Erd chapter 3
 

Similar a Subtypes vs, roles

Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docx
Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docxRunning head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docx
Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docxtodd271
 
Have a Better Resume than the Other Candidates
Have a Better Resume than the Other CandidatesHave a Better Resume than the Other Candidates
Have a Better Resume than the Other CandidatesTuan Yang
 
Boston ML - Architecting Recommender Systems
Boston ML - Architecting Recommender SystemsBoston ML - Architecting Recommender Systems
Boston ML - Architecting Recommender SystemsJames Kirk
 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPTTrinath
 
Informatica Data Modelling : Importance of Conceptual Models
Informatica Data Modelling : Importance of  Conceptual ModelsInformatica Data Modelling : Importance of  Conceptual Models
Informatica Data Modelling : Importance of Conceptual ModelsZaranTech LLC
 
Enterprise Information SystemsTopic .docx
Enterprise Information SystemsTopic .docxEnterprise Information SystemsTopic .docx
Enterprise Information SystemsTopic .docxkhanpaulita
 
Jobs manager vs supervisor.pptx
Jobs manager vs supervisor.pptxJobs manager vs supervisor.pptx
Jobs manager vs supervisor.pptxprosofts1
 
Evaluation Of A Customer Relation Assignment
Evaluation Of A Customer Relation AssignmentEvaluation Of A Customer Relation Assignment
Evaluation Of A Customer Relation AssignmentJan Champagne
 
AbstractThe American Intellectual Union collected data from its .docx
AbstractThe American Intellectual Union collected data from its .docxAbstractThe American Intellectual Union collected data from its .docx
AbstractThe American Intellectual Union collected data from its .docxannetnash8266
 
Data model scorecard (Article 5 of 11)
Data model scorecard (Article 5 of 11)Data model scorecard (Article 5 of 11)
Data model scorecard (Article 5 of 11)Analytics8
 
Customer Relation
Customer RelationCustomer Relation
Customer RelationGina Buck
 
11 course summary and wrap up
11 course summary and wrap up11 course summary and wrap up
11 course summary and wrap upRishi Mathur
 
024 Essay Example Social Media Introduction In Pakis
024 Essay Example Social Media Introduction In Pakis024 Essay Example Social Media Introduction In Pakis
024 Essay Example Social Media Introduction In PakisCarolina Cardona
 
Oracle ps person_model rev 08242005
Oracle ps person_model rev 08242005Oracle ps person_model rev 08242005
Oracle ps person_model rev 08242005ssauradi
 

Similar a Subtypes vs, roles (20)

Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docx
Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docxRunning head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docx
Running head DATABASE PROJECT 1DATABASE PROJECT 1Database S.docx
 
Have a Better Resume than the Other Candidates
Have a Better Resume than the Other CandidatesHave a Better Resume than the Other Candidates
Have a Better Resume than the Other Candidates
 
Boston ML - Architecting Recommender Systems
Boston ML - Architecting Recommender SystemsBoston ML - Architecting Recommender Systems
Boston ML - Architecting Recommender Systems
 
Data Modeling PPT
Data Modeling PPTData Modeling PPT
Data Modeling PPT
 
Informatica Data Modelling : Importance of Conceptual Models
Informatica Data Modelling : Importance of  Conceptual ModelsInformatica Data Modelling : Importance of  Conceptual Models
Informatica Data Modelling : Importance of Conceptual Models
 
11.pptx
11.pptx11.pptx
11.pptx
 
Enterprise Information SystemsTopic .docx
Enterprise Information SystemsTopic .docxEnterprise Information SystemsTopic .docx
Enterprise Information SystemsTopic .docx
 
Jobs manager vs supervisor.pptx
Jobs manager vs supervisor.pptxJobs manager vs supervisor.pptx
Jobs manager vs supervisor.pptx
 
Evaluation Of A Customer Relation Assignment
Evaluation Of A Customer Relation AssignmentEvaluation Of A Customer Relation Assignment
Evaluation Of A Customer Relation Assignment
 
Ermodeling
ErmodelingErmodeling
Ermodeling
 
AbstractThe American Intellectual Union collected data from its .docx
AbstractThe American Intellectual Union collected data from its .docxAbstractThe American Intellectual Union collected data from its .docx
AbstractThe American Intellectual Union collected data from its .docx
 
Data model scorecard (Article 5 of 11)
Data model scorecard (Article 5 of 11)Data model scorecard (Article 5 of 11)
Data model scorecard (Article 5 of 11)
 
Ooa 1 Post
Ooa 1 PostOoa 1 Post
Ooa 1 Post
 
Customer Relation
Customer RelationCustomer Relation
Customer Relation
 
Chapter2
Chapter2Chapter2
Chapter2
 
Chapter2
Chapter2Chapter2
Chapter2
 
11 course summary and wrap up
11 course summary and wrap up11 course summary and wrap up
11 course summary and wrap up
 
6
66
6
 
024 Essay Example Social Media Introduction In Pakis
024 Essay Example Social Media Introduction In Pakis024 Essay Example Social Media Introduction In Pakis
024 Essay Example Social Media Introduction In Pakis
 
Oracle ps person_model rev 08242005
Oracle ps person_model rev 08242005Oracle ps person_model rev 08242005
Oracle ps person_model rev 08242005
 

Último

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 

Último (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 

Subtypes vs, roles

  • 1. Subtypes vs. Roles One question recently posed referred to the concept of the subtype in the logical data model, the questioner seeking to know what they are, why do we use them and what benefits they bring to the table. Using subtypes to categorize data has always been a challenging area to the novice data modeler especially when dealing with the concept of exclusive and inclusive subtypes. An exclusive subtype is defined as follows: for each occurrence in the super type there can be one and only one subtype occurrence. Example: Party Person Organization The super type Party may be sub typed as a person (or individual) or an Organization (a group of people). Therefore, these subtypes are mutually exclusive, a Party can only be categorized as one or the other but never both. The inclusive subtype is defined as follows: for each occurrence in the super type there may be one to many subtype occurrences. Example: Person Customer Employee Vendor The super type Person then may be categorized as both a Customer and an Employee. For that matter, a person could be subtyped as all three or any combination. In reality, the exclusive subtype is the form of subtyping most commonly used. Inclusive subtypes have Page 1
  • 2. Subtypes vs. Roles been used less and less overtime for the following reasons: 1. Data modelers have focused more on the semantics (the study of meaning) of data objects such as entities in the data model 2. Inclusive subtypes can create complexity and ambiguity in the data model. 3. There are inherent difficulties in defining relationships between subtype entities as well as relationships between subtype entities that are on different levels of a subtype - supertype hierarchy. Data modeling represents more than creating structures for databases. A logical data model must also capture clear definitions of data objects, the relationships between data objects and the related business rules. Identifying Customer as a subtype of person upon reflection does not accurately reflect the semantic differences between Person and Customer. A Person is a unique human being, a single physical object. A customer is a role that a person may play. In life and in business, people often play multiple roles; a Person may play a role of a Customer for one or more businesses while being an Employee of one or more businesses and additionally that customer may also be a Vendor providing goods and/or services to a Customer. There then is a clearly defined difference between an entity that is in a supertype subtype hierarchy and entities that represent roles. - Entities in a supertype – subtype represent things - Entities that are role entities represent the roles/purposes that things serve. So what does this matter? It’s just semantics, right? Actually, there is a heavy price that may be paid by unclear semantics. How many tables have we seen in systems that have a Customer table, an Employee table and a Vendor table such as the one below: Page 2
  • 3. Subtypes vs. Roles Person Customer Employee Vendor Customer Number: INTEGER Employee Number: NUMBER(5) Vendor Number: DECIMAL(7) Customer Name: TEXT(45) Employee First Name: VARCHAR(25) Vendor Name: VARCHAR(20) Csustomer Street Address: VARCHAR(20) Employee Middle Initial: CHAR(1) Vendor Personal First Name: VARCHAR(15) Customer City: VARCHAR(30) Employee Last Name: VARCHAR(20) Vendor Personal Middle Name: VARCHAR(15 Customer State Abbreviation: CHAR(2) Employee Address: VARCHAR(45) Vendor Personal Last Name: VARCHAR(15) Customer: NUMBER(5) Vendor Street Address: VARCHAR(35) Vendor City State Address: VARCHAR45) Vendor Zip Code: CHAR(10) The challenges abound! The inclusive subtyping tends to lead to denormalization and data duplicationAs always, duplicated data creates challenges of synchronizing data and maintaining standardized formats and data. The non standardization names and address create problems with sharing and comparing data. Also, how do we determine which Employees are also Vendors to the company? Harte Hanks, Trillium … many companies have made significant profits trough offering address cleansing, names cleansing and rationalization (de duplication) services just to identify the same person in these different tables and/or to determine the correct and most current address for a Customer who is also a Vendor? But wait, there is more! Can’t a Vendor be a Person or a Company (Organization?) Can’t a Customer be a Person or a company? What does this look like? Page 3
  • 4. Subtypes vs. Roles Party Person Organization Employee Customer Regulator Vendor What does this do to relationships? We have not added all of the relationships but we begin to see challenges 2 and 3 with the inclusive subtypes. Multi subtype relationships, ambiguity and the lack of clarity abound! Page 4
  • 5. Subtypes vs. Roles Party Person Organization Employee Customer Regulator Vendor Clearly if you are a believer in the KISS (Keep It Simple Stupid) principle in data modeling, this will not be a satisfactory outcome. Several other questions arise: 1. How flexible would this model be? 2. How extensible is this model? 3. How easily maintained would be the programs developed against the model? Let’s look at a role based model. Page 5
  • 6. Subtypes vs. Roles Customer Role Address Party Vendor Role Regulator Role Physical Address Phone Address EMail Address Employee Role Person Organization A much simpler model that is more semantically correct, less complex and has greater clarity. This model of course is a starting point. Addresses definitely have roles. An associative entity between Address and Party named Party Address Role would cover this. Semantics play an important role in developing successful supertype – subtype hierarchies. The exclusive subtype assists in maintaining clarity and simplicity in the model. Inclusive subtypes may often be indicative of roles and are better expressed in the model by using a role based approach. Hopefully, these musings will spark some thoughts. Page 6