Databases: 50 years of stupidity

stupidity

Database conventions are not best practices.  Database naming conventions are based on random ontological concepts.  Ideas about what constitutes an entity are misdirected.  Programmers know nothing about what a class or an object is or how to name them.  Hierarchical, Relational and Network databases have maintained a persistent and ignorant set of practices that the information technology intelligencia have followed mindlessly.  What we have after 50 years is a brute force patchwork of bad design practices and mediocre engineering that continues to work within the same set of assumptions.  It’s a product of the inertia of intellectual lethargy that dominates not just the technological world, but the world that uses technology in general.  Workers are too busy being inefficient and ineffective to improve their business practices.  They jump at silver bullet solutions that promise results without change.

Database people have never understood data.  Programmers have never understood data.  They have instead tried to please everybody’s ontological misconceptions with grotesque architecture and then shoehorn it all into a physical processor that is about as progressive and efficient as the internal combustion engine.  Eco-nut technologists like to use buzzwords like “organic” to describe the chaotic crap they are producing on the web.  It isn’t organic, its a massive slum composed of any piece of detritus the occupants can build with surrounding a district of monolithic towers of gross excess and shameless waste.  Google’s motto is “Don’t be evil.”  Has any company ever considered having the motto, “Be good”?  The more I work with corporations the more I recognize that goodness is discouraged and evil is whatever the corporation says it is.  If you work for anyone you are part of a Milgram experiment and you are delivering those electric shocks everyday under the direction of psychopaths.  The merit you get promoted for is based on your willingness to flip those switches more than anyone else.  Having a conscience is deemed unprofessional and grounds for termination.

This is the environment within which real innovation has to work.

Hungarian Backwords Notation, a naming convention by Charles Simonyi, has been abused and bastardized by programmers and database administrators with no understanding of semantics, which is most of them.  Consequently, it has been rejected by a large portion of the IT community.  Not even Microsoft knew what it had.  I fought with Simonyi’s concept for years and applied it in several working applications successfully against massive resistance.  The more I worked with it the more I realized that Object Oriented Programming was based on a completely false ontology.  The metaphors were completely wrong.  And the Unified Modeling Language entrenched the misconceptions even further.  Information technology is spawning increasing complexity without any appreciation for underlying order.  The order was datatypes.  There are only a handful of Classes and they are datatypes. The English are backwards, not the Hungarians.

If the world was looked at as a collection of datatype classes the entire philosophy of data and programming and systems would have to change.  Objects do not have properties, properties have objects.  And there are only a handful of properties.  I’ve realized this and it has changed my perspective of data design forever.  Throw away your OOP and your Data Model textbooks.  They’re crap.  Google, Apple and Microsoft are not the future.  Einstein had a better grip on reality than Turing ever did.  The typical mind, including the IT mind, still thinks elephants are bigger than the moon.

Related Links:

Systema Framework: Structured Thinking Advances

Forget Microsoft. Forget Apple. Let’s break the rules and create something truly beautiful.

This is the new Systema Framework. Let’s look at definitions for each of the icons. I want you to note that putting this together even close to coherently is taking considerable time and I will be revising this post repeatedly.

Things I’ve learned:

  • I am abandoning the term entity for the term logos which is closer to the correct concept we are dealing with.  Logic deals with the logos (words) of reason versus the forms (things) of reality.
  • I have found that de Bono lead me to realize that a relationship or association is not the correct term for these connections. The correct term is “directive” because the connector has a source.verb.target structure. Sun Tzu would call it a command. Ultimately, all people are directors not actors.
  • The real genius of Zachman was creating a two dimensional framework where all his predecessors had only provided one dimension.
  • “To every action there is an equal and opposite reaction.” Reaction is induction. Action is deduction. Thus a bottom up inductive process involves:
    • Reintuition, Renegation, Reobjection, Reposition, Redirection and Recreation
  • While a top down deductive process involves:
    • Creation, Direction, Position, Objection, Negation and Intuition
  • The finer points can be debated.
  • I find the relational model is not best adapted to this framework. The associative model of data found at LazySoft is better equipped to meet the framework’s requirements.

Systema Framework Terms

Systema Framework Icons

Icon Definitions

CREATIVE Logic Logics

CREATIVE are the logic logos in your system. These are the logos you will use to explain your motives. Another way to look at it is using Edward de Bono’s hats in two dimensions: Creative creations. In Sun Tzu factors Moral Law Moral Law.

DIRECTIVE Logic Organics

DIRECTIVE are the logic directions in your system.  Reason directions are mandatory or optional; single, multiple or plural and cursive or recursive.  They connect source reason logos and target reason logos. In de Bono hats Creative directions. In Sun Tzu factors Moral Law Command.

POSITIVE Logic Methodics

POSITIVE are logic methods in your system. Reason methods are mandatory or optional; single, multiple or plural and cursive or recursive. Ultimately the reason methods act on the reason forms. In de Bono hats Creative Positions. In Sun Tzu factors Moral Law Training.

OBJECTIVE Logic Pragmatics

OBJECTIVE deals with the logic forms you add to the system. In de Bono hats Creative objections. In Sun Tzu factors Moral Law Discipline.

NEGATIVE Logic Cosmics

NEGATIVE is the logic universe of your system. The reason nouns, reason verbs, reason methods and reason forms have been created and are an existing part of your system. In de Bono’s hats Creative Negations. Note that it is called a negative because a cosmos can only falsify a system otherwise it simply corroborates. In Sun Tzu factors Moral Law Terrain.

INTUITIVE Logic Chronics

INTUITIVE are the logic triggers applied to the reason universe of your system. Changes to reason forms are reason triggers. In de Bono hats Creative intuitions. In Sun Tzu factors Moral Law Heavens.

CREATOR Organic Logics

CREATOR are the director logos (plant, animal, person) in your system. In de Bono hats Directive creations. In Sun Tzu factors Command Moral Law.

DIRECTOR Organic Organics

DIRECTOR are the director directions between director logos. In de Bono hats Directive Directions. In Sun Tzu factors Command Command.

POSITOR Organic Methodics

POSITOR are the director methods applied to director forms. In de Bono hats Directive Positions. In Sun Tzu factors Command Training.

OBJECTOR Organic Pragmatics

OBJECTOR are the director forms. In de Bono hats Directive objections. In Sun Tzu factors Command Discipline.

NEGATOR Organic Cosmics

NEGATOR is the director universe. In de Bono hats Directive Negations. In Sun Tzu factors Command Terrain.

INTUITOR Organic Chronics

INTUITOR are the director triggers applied to the director universe. In de Bono hats Directive Intuitions. In Sun Tzu factors Command Heavens.

CREATE Methodic Logics

CREATE is the methodic logos of the system. In de Bono hats Positive creations. In Sun Tzu factors Training Moral Law.

DIRECT Methodic Organics

DIRECT is the methodic directions of the system. In de Bono hats Positive directions. In Sun Tzu factors Training Command.

POSIT Methodic Methodics

POSIT is the methodic methods of the system. In de Bono hats Positive Positions. In Sun Tzu factors Training Training.

OBJECT Methodic Pragmatics

OBJECT is the methodic forms of the system. In de Bono hats Positive Objections. In Sun Tzu factors Training Discipline.

NEGATE Methodic Cosmics

NEGATE is the methodic univserse of the system. In de Bono hats Positive Negations. In Sun Tzu factors Training Terrain.

INTUIT Methodic Chronics

INTUIT is the methodic triggers of the system. In de Bono hats Positive Intuitions. In Sun Tzu factors Training Heavens.

CREATION Pragmatic Logics

CREATION are the pragmatic logos of the system. In de Bono hats Objective Creations. In Sun Tzu factors Discipline Moral Law.

DIRECTION Pragmatic Organics

DIRECTION are the pragmatic directions of the system. In de Bono hats Objective Directions. In Sun Tzu factors Discipline Command.

POSITION Pragmatic Methodics

POSITION are the pragmatic methods of the system. In de Bono hats Objective Positions. In Sun Tzu factors Discipline Training.

OBJECTION Pragmatic Pragmatics

OBJECTION are the pragmatic forms of the system. In de Bono hats Objective Objections. In Sun Tzu factors Discipline Discipline.

NEGATION Pragmatic Cosmics

NEGATION are the pragmatic univserse of the system. In de Bono hats Objective Negations. In Sun Tzu factors Discipline Terrain.

INTUITION Pragmatic Chronics

INTUITION are the pragmatic triggers of the system. In de Bono hats Objective Intuitions. In Sun Tzu factors Training Heavens.

CREATORY Cosmic Logics

CREATORY are the universe logos of the system. In de Bono hats Negative creations. In Sun Tzu factors Terrain Moral Law.

DIRECTORY Cosmic Organics

DIRECTORY are the univserse directions of the system. In de Bono hats Negative Directives. In Sun Tzu factors Terrain Command.

POSITORY Cosmic Methodics

POSITORY are the universe methods of the system. In de Bono hats Negative Positions. In Sun Tzu factors Terrain Training.

OBJECTORY Cosmic Pragmatics

OBJECTORY are the universe forms of the system. In de Bono hats Negative Objections. In Sun Tzu factors Terrain Discipline.

NEGATORY Cosmic Cosmics

NEGATORY are the universe universe of the system. In de Bonos hats Negative Negations. In Sun Tzu factors Terrain Terrain.

INTUITORY Cosmic Chronics

INTUITORY are the universe triggers of the system. In de Bono hats Negative Intuitions. In Sun Tzu factors Terrain Heavens.

CREATUM Chronic Logics

CREATUM are the chronic logos of the system. In de Bono hats Intuitive Creations. In Sun Tzu factors Heavens Moral Law.

DIRECTUM Chronic Organics

DIRECTUM are the chronic directions of the system. In de Bono hats Intuitive Directions. In Sun Tzu factors Heavens Command.

POSITUM Chronic Methodics

POSITUM are the chronic methods of the system. In de Bono hats Intuitive Positions. In Sun Tzu factors Heavens Training.

OBJECTUM Chronic Pragmatics

OBJECTUM are the chronic forms of the system. In de Bono hats Intuitive Objections. In Sun Tzu factors Heavens Discipline.

NEGATUM Chronic Cosmics

NEGATUM are the chronic universe of the system. In de Bono hats Intuitive Negations. In Sun Tzu factors Heavens Terrain.

INTUITUM Chronic Chronics

INTUITUM are the chronic triggers of the system. In de Bono hats Intuitive Intuitions. In Sun Tzu factors Heavens Heavens.

Structured Thinking System: Attributes and Constraints

A wise man will make more opportunities than he finds.
Sir Francis Bacon

One of my regular readers has asked me to put Lao-Tzu aside and tighten up my language. Since he is a Director of Emergency Management for a metropolitian area, I can understand his requirement for clarity and brevity. So I will put away my gong and see what I can do regarding what he says. He also asked me if I intend to use this concept and I want to make it clear that I will be the first to use it and I will use it until it works smoothly before putting anyone else at risk.

Another question that has come up is my continual tinkering with the terminology. I am doing so because the semantics are crucial to understanding this concept. I have found so far that wrestling with the terms reveals new layers of the concept I hadn’t seen before. For example, I have to distinguish between induction and deduction using a consistent terminology. This is not always obvious at first and requires several interations of refinement. I also wish to create a set of terms that are easy to remember. For example, I have been attempting to find a six letter word that starts with “RE” and means “trust”. Quite accidentally I came upon the term “REPOSE” and will be incorporating it into the vocabulary.

Anyone who has been following the full thread of this blog has probably discovered one of the underlying conclusions I have reached regarding the variety of Hexads I have created and explored. That conclusion is that the Six Hats, Six Coats Framework is a Cartesian Square. I also believe that the Structured Thinking System Entities are a Cartesian square. And now I am faced with the challenge of using the verb REPORT to create the attributes for the thirty-six Structured Thinking System entities.

Here is the latest version of the Structured Thinking System Entities:

sts-entities-01.jpg

I have already concluded the REPORT verb works with only six attributes:

  1. Motive
  2. Person
  3. Method
  4. Object
  5. Locale
  6. Moment

The RECORD verb is constrained to only six values per attribute:

  1. Motive: Reality, Unity, Quality, Quantity, Safety, Remedy
  2. Person: Creator, Leader, Master, Novice, Guide, Contact
  3. Method: Revise, Relate, Report, Record, Repose, Replace
  4. Object: Motive, Person, Method, Object, Locale, Moment
  5. Locale: Universal, Global, Official, Collegial, Habitual, Physical
  6. Moment: Year, Month, Day, Hour, Minute, Second

One of each of these attribute values are captured by the RECORD verb to define a Structured Thinking System entity’s state. The Structured Thinking System relationships define which of the states can be assigned according to the hierarchy.

Related Posts:

Systema: Seven Hats, Seven Links

Structured Thinking System: Objects

Be Content with what you have; rejoice in the way things are. When you realize there is nothing lacking, the whole world belongs to you.
Lao Tzu

sts-entities.jpg

  1. MOTIVE refers to rules. Moral Law content.
  2. PERSON refers to people. Command content.
  3. OBJECT refers to data. Discipline content.
  4. METHOD refers to function. Training content.
  5. LOCALE refers to node. Terrain content.
  6. MOMENT refers to event. Climate content.

Related Links:

STL: Shakedown R0.4

structured-thinking

I believe we are on an irreversible trend toward more freedom and democracy
– but that could change.
Dan Quayle

I’ve been playing with writing STL code for a couple of days now and have been working out some major logical issues. Actually trying to write code instead of syntax that is logical has shaken down the Six Hats, Six Coats Framework considerably. Sort of like dismantling and rebuilding a Chevy and then taking it on its first drive through the neighborhood without a muffler.

One of the things I have discovered is that Structured Thinking Language is best for describing Structured Thinking Systems (The Six Hats, Six Coats Framework). So let’s take a look at what I found.

First, we will go over the revised verbs and nouns. Here are the Structured Thinking Verbs:

stl-verbs.jpg

  1. CREATE refers to the extistential. Capability. Right a wrong.
  2. RELATE refers to the unity. Portability. Have a mantra.
  3. REPORT refers to the benefit. Reliability. Unique and valuable.
  4. RECORD refers to the cost. Profitability. Have a business plan.
  5. AFFORD refers to the usability. Security. Easy to adopt.
  6. ENGAGE refers to the convenience. Availability. Spawn evangelists.

And Here are the Structured Thinking Nouns:

stl-nouns.jpg

  1. MOTIVE refers to the rule hierarchy. Moral Law.
  2. PERSON refers to the people hierarchy. Command.
  3. OBJECT refers to the data hierarchy. Discipline.
  4. METHOD refers to the function hierarchy. Training.
  5. LOCALE refers to to the node hierarchy. Terrain.
  6. MOMENT refers to the event hierarchy. Climate.

This gives us our Structured Thinking Framework:

structuredthinking02.jpg

What we have as a result is the meshing of six horizontal hierarchies and six vertical hierarchies.

Next, we create all of the entities. There are six entities per noun.

CREATE	CreateName
	MOTIVE	(	Virtue,
			Unity,
 			Esteem,
 			Accord,
 			Safety,
 			Entity
 		) 

 	PERSON	(	Creator,
			Leader,
			Patron,
			Member,
			Friend,
			Teller
 		) 

 	OBJECT	(	Motive,
 			Person,
 			Object,
 			Method,
 			Locale,
 			Moment
 		) 

 	METHOD	(	Create,
 			Relate,
 			Report,
 			Record,
 			Afford,
 			Engage
 		) 

 	LOCALE	(	ExtraNet,
 			InterNet,
 			IntraNet,
 			ExtraNode,
 			InterNode,
 			IntraNode
 		)
 	MOMENT	(	Year,
 			Month,
 			Day,
 			Hour,
 			Minute,
 			Second
 		);

Next we relate the entities to one another. The keys are surrogates, so they are not visible. I am building a set of relationships from left to right on each row and a set of relationships top to bottom on each column:

RELATE 	RelationshipName
 	(	MOTIVE.Virtue 	TO MOTIVE.Unity,
		MOTIVE.Unity	TO MOTIVE.Esteem,
 		MOTIVE.Esteem 	TO MOTIVE.Accord,
 		MOTIVE.Accord 	TO MOTIVE.Safety,
 		MOTIVE.Safety 	TO MOTIVE.Entity
		MOTIVE.Mantra 	TO PERSON.Creator,
 		PERSON.Creator  TO OBJECT.Motive,
 		OBJECT.Motive 	TO METHOD.Create,
 		METHOD.Create 	TO LOCALE.ExtraNet,
 		LOCALE.ExtraNet	TO MOMENT.Year
 		PERSON.Creator 	TO PERSON.Leader,
 		PERSON.Leader 	TO PERSON.Patron,
 		PERSON.Patron 	TO PERSON.Member,
 		PERSON.Member 	TO PERSON.Friend,
 		PERSON.Friend 	TO PERSON.Teller,
		MOTIVE.Unity 	TO PERSON.Leader,
 		PERSON.Leader	TO OBJECT.Person,
 		OBJECT.Person	TO METHOD.Relate,
 		METHOD.Relate	TO LOCALE.InterNet,
		...
 	);

This gives us the following entities composing our Structured Thinking System (STS):

stl-entities-03.jpg

As you can see, the order of the columns have been changed. You can also see that I have changed the color coding of the hats and coats to better reflect common usage in the industry (ie. Black Hat = Secure). I also think I am coming more into line with de Bono, but the jury is still out on that one.

Another issue raised in making the relationships is they are one to many as they proceed left to right across the rows and one to many as they proceed down the columns. There is no compromise to this if the system is to work at peak effectiveness.

There is no need for normalization or denormalization as the structure is fully normalized. There is also no need for attributes because they are identical for every entity:

  • Motive
  • Person
  • Object
  • Method
  • Locale
  • Moment

I am at a turning point here. I have to go deeper into the model to determine how to create attributes. Which I have not yet attempted. I have to save it for later posts.

Now we can create our reports. This is an alternate function of the six verbs that occurred to me. Note that the selected cells are all adjacent to one another either horizontally or vertically and flow from left to right; top to bottom:

REPORT	ReportName
 	(	MOTIVE.Esteem,
 		MOTIVE.Accord,
 		PERSON.Member,
 		OBJECT.Method,
 		METHOD.Record,
 		METHOD.Afford,
 		LOCALE.IntraNode,
 		MOMENT.Minute
 	);

Giving us the following Report:

If you want to throw in some filters it is easy:

REPORT	ReportName 

 	(	MOTIVE.Esteem,
 		MOTIVE.Accord,
 		PERSON.Member = John Doe,
 		OBJECT.Method,
 		METHOD.Record,
 		METHOD.Afford,
 		LOCALE.IntraNode,
 		MOMENT.Minute = 30 	);

The “30” aggregates to every 30 minutes.

Now we can plan our data capture. Again an alternate use for the RECORD verb. Again the cells for capture are all adjacent to the left or down:

RECORD	RecordName
 	(	MOTIVE.Esteem,
 		PERSON.Patron,
 		PERSON.Member,
 		OBJECT.Method
 );

This would create the following form:

Here we set up the affordances for the entities:

AFFORD	AffordName
 		RECORD.RecordName
	TO 	PERSON.Member;

Finally, we execute the RECORD Script and as the Member isn’t given the Member must log in:

ENGAGE	EngageName
 	(	RECORD.RecordName
	AND	PERSON.Member
	);

The code I have created here is a radical departure from the syntax releases I have come out with so far as I realized what the design was leading me to create. And that is the clincher. The design brought itself out. I have just been trying to follow it along.

What I am finding is there are not four verbs–Select, Insert, Update, Delete–but six–create, relate, report, record, afford and engage!

Related Posts:

Systema: Seven Hats, Seven Links

STL: Structured Thinking Language R0.3

I had a bit of an epiphany today. What I realized is that by structuring Structured Thinking Language as I have, everything can evolve as lists. Each VERB is simply the addition of another list to the NOUN you are working with.

Six Verbs: CREATE, RELATE, REPORT, RECORD, AFFORD, ENGAGE

Six Nouns: MOTIVE, LOCALE, OBJECT, METHOD, PERSON, MOMENT

Four Adjectives: INDUCED, DEDUCED and IMPLICIT, EXPLICIT

CREATE INDUCED|DEDUCED IMPLICIT|EXPLICIT
     NOUN
        (   nounname_1,
            ...,
            nounname_n
        );       

RELATE INDUCED|DEDUCED IMPLICIT|EXPLICIT
     NOUN.nounname TO
                (    NOUN_1.nounname_1,
                     ...,
                     NOUN_n.nounname_n
                );         

REPORT INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname
                (    attributename_1,
                     ...,
                     attributename_n
                );       

RECORD INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname.attributename
                (    constraintname_1,
                     ...,
                     constraintname_n
                );         

AFFORD INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname
                (    SELECT
                     INSERT,
                     UPDATE,
                     DELETE
                )
                ON
                (   NOUN_1.nounname_1,
                    ...,
                    NOUN_n.nounname_n
                );         

ENGAGE INDUCED|DEDUCED IMPLICIT|EXPLICIT
SELECT|INSERT|UPDATE|DELETE

Obviously, it still needs work, but we can see where the Structured Thinking Language adds value to the design process. SQL does have it’s place in data manipulation. However, STL has a place in data definition. See the related posts for background information on this syntax.

Related Posts:

Structured Thinking Language R0.3

STL: Structured Thinking Language R0.2

The more original a discovery, the more obvious it seems afterwards.
Arthur Koestler

I find I hated the Six Hats being six adjectives in STL R0.1 so I am changing them back to verbs:

  1. CREATE refers to the creation of entities. Meaning. Capability.
  2. RELATE refers to the creation of relationships. Uniqueness. Portability.
  3. REPORT refers to the creation of attributes. Value. Reliability.
  4. RECORD refers to the creation of constraints. Business Plan. Profitability.
  5. AFFORD refers to the creation of affordances. Adoption. Usability.
  6. ENGAGE refers to the creation of manipulations. Evangelism. Availability.

The Six Coats remain the unchanged nouns:

  1. MOTIVE refers to the rules of the system.
  2. LOCALE refers to to the nodes of the system.
  3. OBJECT refers to the data of the system.
  4. METHOD refers to the functions of the system.
  5. PERSON refers to the people of the system.
  6. MOMENT refers to the events of the system.

Giving us the following:

stl_r02_1.jpg

INDUCE and DEDUCE will be changed to the adjectives INDUCED and DEDUCED.

Now that we have the verbs, adjectives and nouns of STL we can work on Release 0.2 of the syntax:

CREATE INDUCED|DEDUCED IMPLICIT|EXPLICIT
     NOUN.nounname;

RELATE INDUCED|DEDUCED IMPLICIT|EXPLICIT
     NOUN.nounname
                (   MOTIVE.motivename,
                    LOCALE.localename,
                    OBJECT.objectname,
                    METHOD.methodname,
                    PERSON.personname,
                    MOMENT.momentname
                ); 

REPORT INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname.attributename; 

RECORD INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname.attributename.constraintname; 

AFFORD INDUCED|DEDUCED IMPLICIT|EXPLICIT
    NOUN.nounname
 	(	SELECT,
 		INSERT,
 		UPDATE,
 		DELETE
 	); 

ENGAGE INDUCED|DEDUCED IMPLICIT|EXPLICIT
SELECT|INSERT|UPDATE|DELETE
    NOUN.nounname.attributename.value;

That’s it for now. Time to get some sleep.

Related Posts:

Structured Thinking Language R0.2