Home | Previous Page | Next Page  

Contents

Introduction
About This Manual
Types of Users
Software Dependencies
Assumptions About Your Locale
Demonstration Database
New Features in Dynamic Server, Version 9.4
Documentation Conventions
Typographical Conventions
Feature, Product, and Platform
Syntax Diagrams
Example Code Conventions
Additional Documentation
Installation Guides
Online Notes
Informix Error Messages
Manuals
Online Help
Accessibility
Related Reading
Compliance with Industry Standards
IBM Welcomes Your Comments
Basics of Database Design and Implementation
Planning a Database
Choosing a Data Model for Your Database
Using ANSI-Compliant Databases
Differences Between ANSI-Compliant and Non-ANSI-Compliant Databases
Determining if an Existing Database Is ANSI Compliant
Using a Customized Language Environment for Your Database (GLS)
Building a Relational Data Model
Building a Data Model
Overview of the Entity-Relationship Data Model
Identifying and Defining Principal Data Objects
Discovering Entities
Defining the Relationships
Identifying Attributes
Diagramming Data Objects
Reading E-R Diagrams
Telephone Directory Example
Translating E-R Data Objects into Relational Constructs
Defining Tables, Rows, and Columns
Determining Keys for Tables
Resolving Relationships
Resolving m:n Relationships
Resolving Other Special Relationships
Normalizing a Data Model
First Normal Form
Second Normal Form
Third Normal Form
Summary of Normalization Rules
Choosing Data Types
Defining the Domains
Data Types
Choosing a Data Type
Numeric Types
Chronological Data Types
BOOLEAN Data Type (IDS)
Character Data Types (GLS)
Null Values
Default Values
Check Constraints
Referential Constraints
Implementing a Relational Data Model
Creating the Database
Using CREATE DATABASE
Using CREATE TABLE
Using CREATE INDEX
Using Synonyms with Table Names
Using Synonym Chains
Using Command Scripts
Populating the Database
Moving Data from Other Informix Databases
Loading Source Data into a Table
Performing Bulk-Load Operations
Managing Databases
Table Fragmentation Strategies
What Is Fragmentation?
Why Use Fragmentation?
Whose Responsibility Is Fragmentation?
Enhanced Fragmentation (XPS)
Fragmentation and Logging
Distribution Schemes for Table Fragmentation
Expression-Based Distribution Scheme
Round-Robin Distribution Scheme
Range Distribution Scheme (XPS)
System-Defined Hash Distribution Scheme (XPS)
Hybrid Distribution Scheme (XPS)
Creating a Fragmented Table
Creating a New Fragmented Table
Creating a Fragmented Table from Nonfragmented Tables
Rowids in a Fragmented Table
Fragmenting Smart Large Objects (IDS)
Modifying Fragmentation Strategies
Reinitializing a Fragmentation Strategy
Modifying Fragmentation Strategies for Dynamic Server
Modifying Fragmentation Strategies for XPS
Granting and Revoking Privileges from Fragments (IDS)
Granting and Limiting Access to Your Database
Using SQL to Restrict Access to Data
Controlling Access to Databases
Granting Privileges
Database-Level Privileges
Ownership Rights
Table-Level Privileges
Column-Level Privileges
Type-Level Privileges
Routine-Level Privileges
Language-Level Privileges
Automating Privileges
Determining Current Role at Runtime
Using SPL Routines to Control Access to Data
Restricting Data Reads
Restricting Changes to Data
Monitoring Changes to Data
Restricting Object Creation
Using Views
Creating Views
Restrictions on Views
Modifying with a View
Privileges and Views
Privileges When Creating a View
Privileges When Using a View
Using Distributed Queries
Overview of Distributed Queries
Coordinator and Participant in a Distributed Query
Configuring the Database Server to Use Distributed Queries
The Syntax of a Distributed Query
Accessing a Remote Server and Database
Valid Statements for Accessing Remote Objects
Accessing Remote Tables
Other Remote Operations
Monitoring Distributed Queries
Server Environment and Distributed Queries
PDQPRIORITY Environment Variable
DEADLOCK_TIMEOUT
Database Access Restrictions
Transaction Processing
Isolation Levels
DEADLOCK_TIMEOUT and SET LOCK MODE
Two-phase Commit and Recovery
Cross Server Compatibility Issues (XPS)
BYTE and TEXT Data Types
Other Restrictions
Object-Relational Databases
Creating and Using Extended Data Types in Dynamic Server
Informix Data Types
Fundamental or Atomic Data Types
Predefined Data Types
Extended Data Types
Smart Large Objects
BLOB Data Type
CLOB Data type
Using Smart Large Objects
Copying Smart Large Objects
Complex Data Types
Collection Data Types
Named Row Types
Unnamed Row Types
Understanding Type and Table Inheritance in Dynamic Server
What Is Inheritance?
Type Inheritance
Defining a Type Hierarchy
Overloading Routines for Types in a Type Hierarchy
Inheritance and Type Substitutability
Dropping Named Row Types from a Type Hierarchy
Table Inheritance
The Relationship Between Type and Table Hierarchies
Defining a Table Hierarchy
Inheritance of Table Behavior in a Table Hierarchy
Modifying Table Behavior in a Table Hierarchy
SERIAL Types in a Table Hierarchy
Adding a New Table to a Table Hierarchy
Dropping a Table in a Table Hierarchy
Altering the Structure of a Table in a Table Hierarchy
Querying Tables in a Table Hierarchy
Creating a View on a Table in a Table Hierarchy
Creating and Using User-Defined Casts in Dynamic Server
What Is a Cast?
Creating User-Defined Casts
Invoking Casts
Restrictions on User-Defined Casts
Casting Row Types
Casting Between Named and Unnamed Row Types
Casting Between Unnamed Row Types
Casting Between Named Row Types
Using Explicit Casts on Fields
Casting Individual Fields of a Row Type
Casting Collection Data Types
Restrictions on Collection-Type Conversions
Collections with Different Element Types
Converting Relational Data to a MULTISET Collection
Casting Distinct Data Types
Using Explicit Casts with Distinct Types
Casting Between a Distinct Type and Its Source Type
Adding and Dropping Casts on a Distinct Type
Casting to Smart Large Objects
Creating Cast Functions for User-Defined Casts
An Example of Casting Between Named Row Types
An Example of Casting Between Distinct Data Types
Multilevel Casting
Dimensional Databases
Building a Dimensional Data Model
Overview of Data Warehousing
Why Build a Dimensional Database?
What Is Dimensional Data?
Concepts of Dimensional Data Modeling
The Fact Table
Dimensions of the Data Model
Building a Dimensional Data Model
Choosing a Business Process
Summary of a Business Process
Determining the Granularity of the Fact Table
Identifying the Dimensions and Hierarchies
Choosing the Measures for the Fact Table
Resisting Normalization
Choosing the Attributes for the Dimension Tables
Handling Common Dimensional Data-Modeling Problems
Minimizing the Number of Attributes in a Dimension Table
Handling Dimensions That Occasionally Change
Using the Snowflake Schema
Implementing a Dimensional Database (XPS)
Implementing the sales_demo Dimensional Database
Using CREATE DATABASE
Using CREATE TABLE for the Dimension and Fact Tables
Mapping Data from Data Sources to the Database
Loading Data into the Dimensional Database
Creating the sales_demo Database
Testing the Dimensional Database
Logging and Nonlogging Tables in Extended Parallel Server
Choosing Table Types
Switching Between Table Types
Indexes for Data-Warehousing Environments
Using GK Indexes in a Data-Warehousing Environment
Defining a GK Index on a Selection
Defining a GK Index on an Expression
Defining a GK Index on Joined Tables
Appendixes
Notices
Index
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]