An application container is an optional, user-created component within a multitenant container database (CDB). An application container stores data and metadata for pluggable databases (PDBs) that are specific to an application.
In some ways, an application container functions as an application-specific CDB within a CDB. An application container, like the CDB itself, can include multiple application PDBs and enables these PDBs to share data and metadata in the same way that the CDB root shares data and metadata with the seed PDB, user-created PDBs, and application containers that are plugged into the CDB root.
A CDB can include zero or more application containers. An application container consists of exactly one application root and one or more application PDBs, which plug into the application root. The application root belongs to the CDB root. An application root differs from both the CDB root and standard PDB because it can store user-created common objects, which are accessible to the application PDBs that are plugged in to the application root.
An application seed is an optional, user-created PDB within an application container. An application container can have zero or one application seed. An application seed enables you to create application PDBs quickly. It serves the same role within the application container as the seed PDB serves within the CDB itself.
At a physical level, containers consist of physical data files. Each container has at least one data file. At a logical level, the database allocates data across data files with logical structures called tablespaces.
A typical application installs application common users, metadata-linked common objects, and data-linked common objects. For example, you might create multiple sales-related PDBs within one application container, with these PDBs sharing an application back end that consists of a set of common tables and table definitions.