blob: 02bb22014d48afbac52709bdd18dd4fdd3e82b6d [file] [log] [blame]
4.20 SQL-schemas
An SQL-schema is a persistent descriptor that includes:
- The name of the SQL-schema.
- The <authorization identifier> of the owner of the SQL-schema.
- The name of the default character set for the SQL-schema.
- The <schema path specification> defining the SQL-path for SQL-invoked routines for the SQL-schema.
- The descriptor of every component of the SQL-schema.
In this part of ISO/IEC 9075, the term "schema" is used only in the sense of SQL-schema. The persistent objects described by the descriptors are said to be owned by or to have been created by the <authorization identifier> of the schema. Each component descriptor is one of:
- A domain descriptor.
- A base table descriptor.
- A view descriptor.
- A constraint descriptor.
- A privilege descriptor.
- A character set descriptor.
- A collation descriptor.
- A transliteration descriptor.
- A user-defined type descriptor.
- A routine descriptor.
- A sequence generator descriptor.
A schema is created initially using a <schema definition> and may be subsequently modified incrementally over time by the execution of <SQL schema statement> s. <schema name> s are unique within a catalog. A <schema name> is explicitly or implicitly qualified by a <catalog name> that identifies a catalog. Base tables and views are identified by <table name> s. A <table name> consists of a <schema name> and an <identifier> . The <schema name> identifies the schema in which a persistent base table or view identified by the <table name> is defined. Base tables and views defined in different schemas can have <identifier> s that are equal according to the General Rules of Subclause 8.2, "<comparison predicate> ".
If a reference to a <table name> does not explicitly contain a <schema name> , then a specific <schema name> is implied. The particular <schema name> associated with such a <table name> depends on the context in which the <table name> appears and is governed by the rules for <schema qualified name>. If a reference to an SQL-invoked routine that is contained in a <routine invocation> does not explicitly contain a <schema name> , then the SQL-invoked routine is selected from the SQL-path of the schema. The containing schema of an <SQL schema statement> is defined as the schema identified by the <schema name> implicitly or explicitly contained in the name of the object that is created or manipulated by that SQLstatement.