Dim St Thomas wrote:
But this seems to be an arbitary collection rather than a "real"
database object. In the example schemas, a schema is equivalent to a
user. Is this an acceptable model, i.e. create a new user account for
each schema?
An Oracle schema is a collection as described. Generally a schema is used
to define a consistent collection ... consistency preferrably defined in
terms of a specific application. As such a schema could be considered the
set of tables, indexes, views, stored procedures, security and audit
mechanisms (and so on) that form the data core to an application.
(As an aside, note also that Oracle supports Java Stored Procedures, which I
find often overlooked but in many instances preferrable to middle tier
procedures.)
The second part of a schema is that it needs an 'owner' to take
responsibility for the definition. Historically the 'owner' translates to
a 'user'. However, this need not be the case as it is possible to have an
owner account locked out and it's objects still accessible. (As a personal
opinion, I believe this 'locked account ownership model' is frequently a
sign of a professional Oracle development environment.)
To see one specific variant of this, refer to the MDSYS owner which holds
the object types for the 'spatial' and 'locator' geometries as well as the
universal lookup tables and their contents but should be locked out. In
this model , the stored procedures can be used as required, and the type
defs are used as complex columns (objects or intelligent structures) in
your application tables.
I very strongly encourage your research starting with the Thomas Kyte
'Expert One On One Oracle' book, followed by (or concurrently studied with)
the Concepts manual for your version - found at
http://docs.oracle.com and
these followed by the appropriate "Administrator's Guide" or "Developer's
Guide(s)" from the same location.
Good luck (and apologies for my [typical] wordiness)
/Hans