|Oracle9i Application Developer's Guide - Large Objects (LOBs)
Release 1 (9.0.1)
Part Number A88879-01
The Multimedia Schema Used for Examples in This Manual, 4 of 5
Figure B-1, "The Multimedia Schema", shows table Multimedia_tab's structure. Table Multimedia_tab columns are described below:
SEQUENCERas a matter of convenience, and has nothing to do with the eventual ordering of the clip.
PhotoLib_tabarchive. Since a large database of this kind would be stored on tertiary storage that was periodically updated, the column for photographs makes use of the BFILE datatype.
VoiceOver_tabwhose purpose is to store audio recordings for use as voice-over commentaries. For instance, these might be readings by actors of words spoken or written by people for whom no audio recording can be made, perhaps because they are no longer alive, or because they spoke or wrote in a foreign language.
This structure offers the application builder a number of different strategies from those discussed thus far. Instead of loading material into the row from an archival source, an application can simply reference the data. This means that the same data can be referenced from other tables within the application, or by other applications. The single stipulation is that the reference can only be to tables of the same type. Put another way: the reference,
Voiced_ref, can refer to row objects in any table which conforms to the type,
Voiced_typ combines the use of two LOB datatypes:
InSeg_ntabof predefined type
InSeg_typcan be used to store zero, one, or many interview segments in a given clip. So, for instance, a hypothetical user could use this facility to collect together one or more interview segments having to do with the same theme that occurred at different times.
In this case, nested table,
interviewsegments_ntab, makes use of the following two LOB datatypes:
Since such segments might be of great length, it is important to keep in mind that LOBs cannot be more than 4 gigabytes.
MAP_OBJ, of the object type
MAP_TYP. In this case, the object is contained by value, being embedded in the row.
As defined in our application,
MAP_TYP has only one LOB in its structure -- a BLOB for the drawing itself. However, as in the case of the types underlying REFs and nested tables, there is no restriction on the number of LOBs that an object type may contain.