Bookshelf Home | Contents | Index | Search | PDF |
Siebel Tools Reference > Siebel Architecture (Basic Concepts) > Application Architecture Overview >
Data Objects Layer
Data object definitions create a layer of abstraction over the DBMS, insulating the application and the developer from database administration and restructuring. The Data Objects layer is implemented by means of the data manager classes.
Object definitions in the Data Objects layer provide a logical representation of the underlying physical database (constructs like table, column, and index), and are independent of the installed DBMS.
This product feature allows you to migrate a Siebel application from one DBMS to another without having to modify the repository file where the metadata is stored. In fact, you can have a single repository file and a mix of databases from different vendors (for example, one on the server, another for connected clients, and a third for remote clients).
The physical tables in the DBMS are created as part of the Siebel application installation process.
Relationship Between the Siebel Application and the Database
Relational database management in Siebel applications is implemented through layers of Siebel object definitions functioning as a superstructure over a third-party relational DBMS. The Siebel applications generate queries in response to user actions, in combination with the context established by relevant object definitions. The relational DBMS holds the data, and processes the queries originating in the Siebel application. Query results that are returned from the DBMS are processed up through the relevant object definitions in the Siebel applications architecture, and presented to the user.
The layered architecture in Siebel applications places various object definitions at different levels relative to the database. In immediate proximity to the database are the data object definitions. Individual data object definitions directly represent individual tables, columns, and indexes in the DBMS. At an intermediate level of relationship are the business object definitions. All business object definitions are based on data object definitions or other business object definitions; they do not have any direct relationship to the database. The object definitions most indirectly related to the database are the Web interface object definitions. These are based on business object definitions, and do not directly access either the database or the data object definitions.
A developer or customer can change or extend Siebel applications without impacting the database in the DBMS. Similarly, you can make database changes without impacting, or only minimally impacting, the applications. This is possible because each architectural layer insulates the layers above it from the layers beneath, including the DBMS at the bottom of the architecture.
For example, a form applet is a Web interface object definition that implements a data entry form. The textbox controls in which the user enters data for individual columns in the database are tied not to those database columns, or to column object definitions in the Data Objects layer, but to field object definitions in the Business Objects layer. The controls represent fields, the fields represent column object definitions, and the column object definitions represent database columns.
Standard Tables and Columns
A set of standard tables is provided with Siebel applications for installation in the DBMS at a customer's site. These provide data storage for all of the features included in the standard Siebel applications, as well as expansion capability. The standard tables and their columns and indexes are represented by corresponding table, column, index, and index column object definitions.
Standard tables and their table object definitions generally are of the following types:
- Data Tables. The data tables comprise the bulk of the table object definitions in Siebel applications. The columns in data tables provide the data for fields. A data table may serve as a base table for a business component. That is, it may provide the primary source of data for that business component. Data tables may be provided with additional columns by means of extension tables.
- Intersection Tables. An intersection table (in combination with certain business object definitions) implements a many-to-many relationship between two data tables. The intersection table provides the means to implement the many-to-many relationship as two one-to-many relationships, which the underlying DBMS is equipped to handle (there is no database construct that implements many-to-many relationships directly).
- Extension Tables. An extension table provides additional columns that cannot be directly added to a data table. The database product may support only a limited number of columns, or will not allow adding a column to a table once it is populated with data. An extension table allows you to provide additional columns for use as fields in a business component without violating DBMS or Siebel restrictions.
- Interface Tables. The interface tables are intermediate database tables between the Siebel application database and other databases. Interface tables are used by the Siebel Enterprise Integration Manager to import initial data for populating one or more base tables and, subsequently, to exchange data between Siebel applications and other enterprise applications.
The columns in standard tables are of the following types:
- Data Columns. The data columns are part of the original set of columns implemented in the standard Siebel applications. They hold data that is made available through fields to developers and users.
- Extension Columns. An extension column is a column that is not used by standard Siebel applications. However, it is included for use in reconfigured applications. There are three kinds of extension columns:
- Standard Extension Columns. Standard extension columns are included in standard extension tables for developer use. They are named ATTRIB_nn, where nn is a value between 01 and 47 (for example, ATTRIB_13). Each has a predefined data type and length. (Note that some tables—for example, S_ORDER_X, SPROD_INT_X—have more than 50 extension columns, and that adding more columns may affect application performance adversely. Also note that some extension columns are used by the Siebel application and are unavailable to developers.)
- Custom Extension Columns in an Extension or Intersection Table. These are columns added by the developer to an extension or intersection table, and given a custom name.
- Custom Extension Columns in a Base Table. These are columns added by the developer to the base table of an extension table. Their names have the X_ prefix.
- System Columns. Various system columns appear in all tables in Siebel applications, although no one set of system columns appears in every table. Some standard system columns are ROW_ID, CREATED, and CREATED_BY. The developer may use the data in system columns for various purposes; for example, the ROW_ID column in tables is used in the construction of joins. Generally the developer does not modify the data in system columns, although there are exceptions, such as certain of the system columns in interface tables.
The set of tables and columns provided in standard Siebel applications implements a very comprehensive design, and supports a very wide range of configuration activities. However, it is also designed to work in certain ways, and changes made that are not in accordance with Siebel standards can slow performance or cause software failures. A developer can add extension tables as well as extension columns to base tables using Siebel Tools. The developer cannot, however, add new base tables, delete base tables and columns, or modify the properties of base columns. Rather, the extension table and extension column facilities are employed.
Standards, limitations, and procedures for using extension tables are discussed in Extension Tables. For information on database enhancement, see Adding Custom Extensions to the Data Model.
Data Object Types
The object types for the data object layer are described briefly below. For more detailed descriptions, see Object Types Reference.
- Table. A table object definition is the direct representation of a database table in a DBMS. It has column and index child object definitions that represent the table's columns and indexes. Table, column, and index object definitions within Siebel Tools provide a detailed picture of all of the tables, columns, and indexes in use in the DBMS.
- Column. A column object definition represents one column in the database table. Database columns in a database table are represented by the column object definitions that are children of the corresponding table object definition. Each column in the table has a corresponding column object definition.
- Index. Each index object definition identifies a physical index file in the DBMS.
Bookshelf Home | Contents | Index | Search | PDF |
Siebel Tools Reference Published: 20 October 2003 |