Depends, but not on the complexity of the application.
Given the data design of even the most complex set of applications that all interact with the same data, you can almost always predict what business logic is supported by the set of applications.
Given all the code for the same set of applications, and you'd find it difficult, if not impossible, to predict what the business logic is across all the applications.
How so? Every table, file, or other data structure added increases the possible of uses with factorial complexity (think of, e.g., the traveling salesman or other graph/network problems). Without seeing something else, e.g., the code, a flowchart, or other diagrams it is impossible to predict what the program actually does. One can guess at bits and pieces of it, but not more.
It’s like saying that given a table of numbers one can predict exactly what functions produced them.
Only if they're randomly named.
> Without seeing something else, e.g., the code, a flowchart, or other diagrams it is impossible to predict what the program actually does.
Seeing a table named "invoices", which has a column named "user_id" that is a foreign key for table "user" doesn't give you at least a few clues about the business logic there?
Seriously, I want to see an example (choose an open source project) of a project where the data structures don't give any clue to what the business logic is.
Once you go looking for that example, you'll see why the data structures are more revealing than looking at the code.