Oracle offers a variety of data structures to help create robust database systems.
Oracle supports the full use of
- (BLOB) binary large objects ,
- nested tables,
- non first-normal-form table structures (VARRAY tables), and
- object-oriented table structures.
In addition, flat files are treated as if they were tables within the Oracle database.
It is a challenge to many Oracle professionals to know when to use these Oracle
data model extensions.
Here is a brief review of advanced Oracle topics and how they are used to design high-performance Oracle databases.
The ability of Oracle to support object types (sometimes called user-defined datatypes) has profound implications for Oracle design and implementation.
User-defined datatypes will enable the database designer to:
- Create aggregate datatypes: Aggregate datatypes are datatypes that contain other datatypes.
For example, you could create a type called FULL_ADDRESS that contains all of the subfields necessary for a complete mailing address.
- Nest user-defined datatypes: Datatypes can be placed within other user-defined datatypes to create data structures that can be easily reused within Oracle tables and PL/SQL.
For example, you could create a datatype called CUSTOMER that contains a datatype called CUSTOMER_DEMOGRAPHICS,
which in turn contains a datatype called JOB_HISTORY, and so on.
One of the user-defined data types in the Oracle object-relational model is a "pointer" data type.
A pointer is a unique reference to a row in a relational table. The ability to store these row IDs inside a relational table extends the traditional relational model and enhances the ability of an
object-relational database to
establish relationships between tables.