Information Stores and Relational Databases

Post Reply
granatk
Posts: 1
Joined: 08 Feb 2013, 16:15

From the reading I've been doing in the documentation and the forums, I understand that an Information Store may be (for example) an Excel spreadsheet or a database. Currently my group is working with lots of relational databases. Can you give me some advice about how people usually represent the tables within a database using the metamodel? It makes sense that, if the Information Store represents a database, then an instance of that is deployed to a Technology Node (in my case, this is a server), but I want to be able to say "Application Provider A uses data stored in Table B and Table C, which are contained in Database D which is on server E". I think I'm looking for something more granular than an Information Representation but less granular than a Data Representation (I'm basing this assumption on a answer to another post which explained that a Data Object could be Person_ID, with Data Representations EMPID, USERNAME, Operator_ID).

Thanks for your help.
User avatar
jonathan.carter
Posts: 1087
Joined: 04 Feb 2009, 15:44

Good post.

In a similar way to how we treat software in the application layer, we hand over to suitable database design tools when it comes to actual table design. These designs (somewhat confusingly called Physical Models by many DBAs and data architects) are detailed implementation designs that from our consistent Conceptual / Logical / Physical definitions in our meta model are actually logical models that describe the technical implementation within a particular database.

Essential Architecture Manager will not be producing DDL or similar database code to create the tables to represent the information and data artefacts that we've captured in the repository.

However, that's not to say that we are no interested in the data objects and information views - right down to the attribute level. The Object and View level classes capture the design of how we would like to manage such elements. To capture how these are implemented, we use the corresponding Data and Information Representation classes to model the different ways in which each is implemented.

We can use these representations at different levels of granularity, which means that we might define an Information Representation that covers the entire database for a particular Application Provider. Similarly, we might have another instance that describes a particular subset of the overall database. With the Data Representations, we capture the implementation designs for the data elements that are being used and this class has a slot to define the 'Technical Name' of the data representation, which could be a Table Name, e.g. in a packaged application or even the specific column in a table.

That's some background information. To your question about how to capture how an application uses data in specific tables, we do this through the relationships between Application Providers and Information Representations. We have some powerful, highly contextual and quite subtle relationships between Applications, Information and Data that are extremely important for the fidelity of the model that we define in the repository.

In the Applications deal in Information, producing and consuming Information elements. However, in the course of doing this, they operate on data elements.
We can define the Information that Application Provider A is using by creating a new instance in the "Uses Information" slot and in here, we can describe the 'CRUD' in terms of how Application A operates on it.
In this context, we can then describe the data representations (tables / columns) that are used by creating a new instance in the "Specific Data Operated On" slot. For each of the Data Representations being used in this context, we can then describe the 'CRUD' on that data.

Each of the Data Representations can be linked to the Physical Data Objects that capture the actual 'instances' of that Data and each of those Physical Objects is associated with the Information Store in which it is contained.

As I mentioned, the logical Application / Information / Data relationships are quite subtle but these have proven to be very powerful in reflecting the real use of information and data by the systems.

Jonathan
Essential Project Team
james.nesperos
Posts: 20
Joined: 04 May 2020, 09:44

Hi Team,

Wondering if we have a view for this kind of created relationship? Just to validate if what was modeled was correct?

I have also tried modeling applications to database to database tables relationships but not sure where to look for validations using protege and the instructions above.

Please let me know your thoughts on this.

Thank you very much.
JohnM
Posts: 467
Joined: 17 Feb 2009, 20:19

Hi,

Try the Data Object Provider Model (provided you've mapped Data Representations to Data Objects). That should give you what you want
Post Reply