Schemas are a method to allow multiple sets of database objects (tables, views, etc.) to be logically distinct from one another, while physically (potentially) using the same underlying files for storage. Of course, you can also use separate tablespaces to allow physically separate underlying data files as well. You might follow the approach of each application using a separate schema. In this approach, you can access the other data using three-part naming (schemaname.tablename.fieldname)
Each database maintains a separate set of catalog data in the
Information schema, a set of views which can be used with SQL Server (2005 and greater) MySQL and PostgreSQL. pg-specific metadata is not available in the information schema - you must use system tables to view these metadata.
If you create separate databases, however, you must use the
dblink function to access the other databases. You could conceivably use the dblink function to access the information schema (or system tables) in other databases to retrieve their metadata, and once the metadata is retrieved, you could retrieve the data. (dblink requires a field list; the '*' convention representing fields in a table is not supported.)
The advantage of placing separate applications within the same database in separate schemas is that, since these schemas share a common catalog, it is much easier to access the metadata and data, using three-part naming. (SchemaName.TableName.FieldName)