What is a Data Structure?

Since we will be using this as a foundation to introduce a new way of looking at the way data architecture is done, we should start with a formal definition of the components that make up this term.

According to the Wiktionary some of the definitions of structure are:

                A cohesive whole built up of distinct parts.
                The overall form or organization of something. 

Again, according to Wiktionary some of the definitions of data are:

                Pieces of information.
                A representation of facts or ideas in a formalized manner capable of being communicated or manipulated by some process. 

Now that we have these component definitions, we can define a data structure. 

A Data Structure is: The organization of data in support of an application, organization, or workflow.
English: Traditional Aggregate Data Structure ...
English: Traditional Aggregate Data Structure Diagram (Legend/Map Unit) (11/13/07) (Photo credit: Wikipedia)
A Data Structure is what is created by a Data Architect, Data Modeler, Application Designer, Business Intelligence Architect, Data Warehouse Architect, Enterprise Architect, Data Scientist, or anyone else that designs platforms that capture, store and provide access to data. These artifacts can be in the form of an ERD (Entity Relationship Diagram), JSON schema definition, XML schema definition, a workflow, an Architecture Diagram, and ETL (Extract Transform and Load) source to target mapping document. 

All of these are Data Structures. 

Eric Raymond once said: “Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I won't usually need your code; it'll be obvious.”
I have seen this be the case over and over again with multiple customers.

Reading code is a fun past time to some people. Having a diagram that shows how data flows through an application, or enterprise is most useful for a wider audience. The audience would determine the level of detail required for the diagram. The diagrams should be built through the process of progressive elaboration.

In a later post we will talk about how to interpret a Data Structure as a Graph, and how that can help in the design phase of an application, architecture, or workflow to highlight where any bottlenecks, obstructions, or optimizations may be found.

No comments:

Post a Comment