application through a connection pool and a **Dialect**, which describes how
to talk to a specific kind of database/DBAPI combination.
-The general structure is this::
-
- +-----------+ __________
- /---| Pool |---\ (__________)
- +-------------+ / +-----------+ \ +--------+ | |
- connect() <--| Engine |---x x----| DBAPI |---| database |
- +-------------+ \ +-----------+ / +--------+ | |
- \---| Dialect |---/ |__________|
- +-----------+ (__________)
+The general structure can be illustrated as follows:
+
+.. image:: sqla_engine_arch.png
Where above, a :class:`~sqlalchemy.engine.base.Engine` references both a
:class:`~sqlalchemy.engine.base.Dialect` and :class:`~sqlalchemy.pool.Pool`,
========
-The SQLAlchemy SQL Toolkit and Object Relational Mapper is a comprehensive set of tools for working with databases and Python. It has several distinct areas of functionality which can be used individually or combined together. Its major components are illustrated below. The arrows represent the general dependencies of components:
-
-.. image:: sqla_arch_small.jpg
-
-Above, the two most significant front-facing portions of SQLAlchemy are the **Object Relational Mapper** and the **SQL Expression Language**. SQL Expressions can be used independently of the ORM. When using the ORM, the SQL Expression language remains part of the public facing API as it is used within object-relational configurations and queries.
+The SQLAlchemy SQL Toolkit and Object Relational Mapper
+is a comprehensive set of tools for working with
+databases and Python. It has several distinct areas of
+functionality which can be used individually or combined
+together. Its major components are illustrated below. The
+arrows represent the general dependencies of components:
+
+.. image:: sqla_arch_small.png
+
+Above, the two most significant front-facing portions of
+SQLAlchemy are the **Object Relational Mapper** and the
+**SQL Expression Language**. SQL Expressions can be used
+independently of the ORM. When using the ORM, the SQL
+Expression language remains part of the public facing API
+as it is used within object-relational configurations and
+queries.
Documentation Overview
======================