List of articles   Choose language


Own concept vs. foreign, way first:
scheme of screen is scheme of data


Complexity of database scheme and intricacy of configuration (program adjustment), built for a database, is roughly equal. However it is always difficult to understand foreign thoughts, than to state own. So we shall create scheme of database-for-yourself faster, than imagine map of interrelations of foreign adjustments [1]. And if only scheme and map would be on balance, it is clear, what you would prefer.

But what forces us to choose bad decision, and even to pay for it? Which part we have to through out to get double benefit? We have to throw out programming off - or to reduce it in maximum way.

It is possible, if we pay attention to one subtlety - output fields are bound by relations IDEF1. Screen of program has scheme, and this scheme completely repeats scheme of database!

For example, if we extract employees of any department





than obtained hierarchy is tracing-paper from relations of database




There is second subtlety - syntax, expressing hierarchy, e.g. "Departments.Persons" is absent in SQL at all. Client cannot separate in Cartesian products, what fields belong to one table, or another. So taking information from database, we lose a part of information!

Instead of inserting lost information by machine, we try to make it manually, forcing user to trace work of computer. It occupies up to 50% of working time. Tracing is written in notation LOOP/FETCH. We take one record at a time to find records, bound with it. And this problem until now is not addressed by industry.

Strong decision exists. It is expressions like "SELECT * FROM Departments.Persons" [2]. Development of this idea is presented in part " Hierarchical input-output (hIO) " of separate pdf-document (p.5-77). In moment, when we can reflect scheme of database on scheme of screen, passing manual trace, we can write personalized software.


[1] We leave fact, that almost each foreign application does not automize part of process of consumer

[2] Author already casually mentioned it between decisions of 2-nd and 3-rd problems in previous article. Besides this, departments and persons can be bound not directly, but via intermediate table, e.g. via table "Sections" - then mentioned query will look so (p.23 of pdf-document)

select Departments.Persons
from   Departments.Sections.Persons
where  Departments/@name="E-banking";

Dima Turin, dmitryturin@yandex.ru



List of articles   Choose language