We have clients that use Crystal reports and Windchill and use it with some custom webservices which it supports. Direct access to the database using Crytsal is possible via JDBC and the data model is not that hard to understand as there is a one to one object relational mapping, so it you look at the table it has an object with exactly the same name in the API (found here codebase\wt\clients\library\api\index.html). The advantage of webservices is that they go through the API layer adding authentication and therefore access control. Note that webservices have an additional license cost.
Simon