Which language should I use? Except from Clipper, I mastered only Mainframe 4GL languages, like IDEAL or NATURAL. After a little bit of research, I selected Microsoft C compiler, although I was really tempted to user Borland's compiler instead. I am still grateful to Marco Antonio, of Livraria Cultura, whose counsels on the appropriate literature where of invaluable help.
So the first working version -and MS-DOS product- was developed in C (plain C), using the Microsoft C Version 6.0 compiler (which cost me around US$ 1.000,00). Later I upgraded to C/C++ 7.0.
Data Model Designer first version was suitable for Datacom/DB, back then an Applied Data Research product, later Ameritech and finally Computer Associate's. Why Datacom? Because most of my consulting customers used Datacom, and I was pretty sure I could sell them the product very easily. The physical DB was accessed through a program written in IDEAL (a 4GL language sold with Datacom), which produced a sequential file as output. That file had to be downloaded in text mode to a PC (sort of a sophisticated technology at the time), and it served as input to Data Model Designer.
Then I developed a SQL/DS version, with the help of GAFISA (Gomes de Almeida, Fernandes), one of the main building companies in Sao Paulo, which was also my client. It was a pain in the butt since the SQL/DS catalog was fully unnormalized, and the information about the keys was store in a binary array. Just to figure out how to understand that took me days. GAFISA Manager of Information Systems, Edson, and their team, were REALLY patient and of invaluable help.
Then I developed a DB2 version, with the help of Sao Paulo Alpargatas, a huge industrial company which was my client too. I am still grateful to Mr. Prado and other members of their support team, as well as their MIS, Mr. Alipio, who authorized the development.
A couple of months later I went to SABESP, Sao Paulo's water company, to show DMD, but they had ORACLE (version 6). The were very interested, and wanted me to develop an ORACLE version. Their DBA (a girl whose name I do not recall nowadays) handed me all the info I needed, including output from their catalog, so the ORACLE version was soon developed.
The output
Initially Data Model Designer reversed-engineered the physical database and produced a graphical display of the model and its relationships. The model output (take a look) was pretty good, of valuable assistance to anyone working with a data model
The Primary Keys where flagged with a *K symbol. Those fields which belonged to Foreing Keys with an "F". The output of the relationship, if implemented via Foreign Key, showed, in a little square box, the type of the delete rule: "R" for Restricted, for instance.
The Table Space (TS: ) for IBM databases was also shown, and you could turn on and off certain options (like displaying the datatypes, for instance).
After visiting some IBM shops, I realized that invariably the first question was: "Do you have a VSAM version of DMD?". Soon after, I developed a VSAM parser and the VSAM version as ready. Forced by the circumstances, since everybody prefixed their datatypes in VSAM files, I had to develop several algorithms to deal with prefixes and suffixes.
That was it. But just THAT impressed a lot of people.