Has anyone mapped the CiviCRM Schema to Classes in SQLAlchemy?
Directly accessing the SQL tables is certainly possible, but not a recommended approach. Reporting (ie read only) is safer than attempting to write to the tables but there can be many tables to join correctly depending on what you are trying to do.

If the standard reports and the various reports extensions don't provide what you need, try getting your data via the API.