Talking about Multi Tenant and applications, one has to talk about the different options for sharing. It is one of the great features of multi tenant.
It is a way to let one PDB – the application root – have data that can be used from other PDBs.
There are three kinds that allow you to get different features of the sharing.
- Extended Data
Lets review each kind and why and how you’d use it.
This allows you to create a table in the application container and also add data to it. However upon syncing it to an application PDB, only the tables structure is copied. The data is local to each PDB.
This would be useful to install the same schema structure in many PDBs. Say that each PDB is used for a different customers data. Or that you in test want to quickly set up the schemas a new PDB needs. Then each schema is a different application in the application root and you just sync the ones you need.
In testing this may be one of the greatest features in the database to drive productivity in getting new PDBs ready for developers.
Data is the direct opposite of a metadata shared table. It makes it so the table can be found in an application PDB, but all data is stored in the table defined in the application root.
This is a great feature when you have a system that manages the data, but many other systems needs to read it. It becomes a master data of sorts without even copying the data to every target system. Each application can use it as if it was a table local to them and the data is always exactly what the source system has.
For production where one system created data that is used by many other systems. For example a system that holds all you products or all people that are or have been customers. Or in test it can be all the reference data your systems use. No need to copy it into every single PDB, set it up once and let every PDB just have read access.
Extended Data is a hybrid of Data and Metadata. It allows the data and table to exist in both the application root and in the application PDB. From the PDB, you see the data in the root as well as the data in the PDB. Data can be written and modified in the PDBs data.
This can be used in systems where all systems should have a base of information, but that new data can be created in each localized version for a customer (in their own PDB).
It can also be used in testing to get every tester a base of test data which they can add more data to.
Using the different versions of sharing for tables in a multi tenant setup can greatly enhance your ability to support developers and testers to be more productive as well as to deliver key features in production in a very nice way.
Used the right way, application containers in multi tenant is probably in itself worth the price of admission.