So recently, I had a client ask me to restructure his Database hierarchy which consisted mainly of changing table names and column names and creating cross-references to stop red locks.
He later emailed me about his ‘program’ no longer functioning: which the reason was simple, he hadn’t updated the queries in his program.
This lead me to think about the integrity of the way we structure data rather than the integrity of the data itself: if the data changes, the view changes. If the structure changes, the program will no longer function.
Is it possible to create such a structure of data where the program can create its own decisions about the form of the data?
I am probably thinking ‘futuristic’ but if this was possible, would a web search be a possibility?
Add up the most common words, check the words appear in the definition, ect…
If my data was ‘developer’ id expect the program to recognise its a job role by searching the web and creating a decision based on the keywords, definition, word recurrence ect…
Not sure but I think perhaps you are thinking about fourth generation languages. A 4GL like LANSA makes the following promise:
LANSA has implemented its data services layer to provide a single access point for all data and serves to abstract formats, locations and conventions. Specific programs – called Object Access Modules – are generated from data held in the repository. These OAMs know about the structure of the database (fields and files) and contain the rules that govern all Create, Read, Update and Delete transactions. So whenever any program anywhere on the network wants to ‘create_New_Employee’ in the ‘comp_Employee’ table in the HR system, that request will be directed via the data services layer and the appropriate OAM. Future changes would only cause that specific OAM to be regenerated on the server and would not impact other programs. It is possible to make a data services layer, specifically the OAM, even more intelligent by using built-in features like database independent triggers or derived fields that perform calculations or concatenate strings on-the-fly.
That being said, I’ve never seen a 4GL used in a serious production environment successfully. Maybe some other posters will disagree.