Kevin Feeney (LinkedIn, Data Modeling, 2020/03/24)
In his presentation on data modeling (https://lnkd.in/dnwYTEY) says that an accurate data model defines Things, Properties of things, how things are Identified, and Relationships.
Everest says:
A caution when thinking about Properties. You cannot define an Attribute until you first have (or presume) a Relationship. An Attribute is a thing with a population (a domain of values). So ORM does not distinguish, it calls them both Objects. For example, I could have a thing called a Skill Code and Employees have Skills. That means there is a relationship between Employee and Skill. We often depict an Attribute being tucked away in a box for the Employee. This naturally leads to (thinking about) putting it in a column in a table for the Employee entity. That can lead to problems. In ORM we defer thinking about tables since that is really a step toward implementation (in a Relational DBMS). Better to think in terms of two objects, Employee and Skill, with a relationship between them. So here is the definition: An ATTRIBUTE (or Property) is an OBJECT which plays a ROLE in a RELATIONSHIP with another OBJECT. Now we can add cardinality to the relationship. In fact, in this example, if an Employee can possess multiple Skills there is a M:N relationship and Skill cannot be stored in an Employee table (it would violate First Normal Form). But Skill is no less an attribute of Employee, even if it is not stored in the Employee table. That further reinforces the fact that an OBJECT has ATTRIBUTES by virtue of having RELATIONSHIPS with other OBJECTS. Hence, there is no need for an Attribute artifact in a data model.
Intro
I have collected Q&A topics since about 2010. These are being put onto this blog gradually, which explains why they are dated 2017 and 2018. Most are responses to questions from my students, some are my responses to posts on the Linkedin forums. You are invited to comment on any post. To create a new topic post or ask me a question, please send an email to: geverest@umn.edu since people cannot post new topics on Google Blogspot unless they are listed as an author. Let me know if you would like me to do that.
Showing posts with label role. Show all posts
Showing posts with label role. Show all posts
2020-04-01
2018-01-02
Definitions of concepts should start with their supertype. Why not?
Andries van Renssen -posts on LinkedIn.
A good definition of a concept should build on the definition of more
generalized concepts. This can be done by two parts of a definition:
1. Specifying that the concept is a subtype of some other more
generalized concept.
2. Specifying in what respect the concept deviates from other subtypes
of the same supertype concept.
Such kind of definitions have great advantages, such as:
‑ The definition of (and the knowledge about) the supertype concept
does not need to be repeated, as it is also applicable ("by
inheritance") for the defined (subtype) concept.
‑ The definition implies a taxonomy structure that helps to find
related concepts that are also subtypes of the same supertype (the 'sister‑concepts').
Comparison with the 'sister‑concepts' greatly helps to refine the definitions.
Furthermore, the definitions prepare for creating an explicit taxonomy.
‑ Finding the criteria that distinguishes the concept from its 'sister
concepts' prepares for explicit modeling of the definitions, which prepares for
computerized interpretation and the growth towards a common Formal Language.
--Thus, why not?
Labels:
attribute,
classification,
concepts,
extensional set,
generalization,
identification,
identity,
intentional set,
language,
ontology,
population,
role,
specialization,
subtype,
supertype,
taxonomy,
vocabulary
Subscribe to:
Posts (Atom)