CONTENTS Title Page Copyright Page Preface 1 Introduction to CDD/Repository 1.1 Overview of CDD/Repository Version 5.0 1.1.1 Object-Oriented Data Model 1.1.2 Features of CDD/Repository Version 5.0 1.2 CDO Naming Conventions 1.2.1 Parts of a Name 1.2.2 Directory and Processing Names 1.3 Getting Started with CDD/Repository 1.3.1 Using the CDO Utility 1.3.2 Upgrading to CDD/Repository Version 5.0 1.3.3 Starting and Ending a Repository Session 1.3.4 Using Online HELP 1.3.5 Creating the Repository 1.3.5.1 Setting the Default Directory 1.3.6 Defining Logical Names to Access Multiple Repositories 1.3.6.1 Defining Special-Purpose Keys 1.3.6.2 Creating a CDO Initialization File 1.3.6.3 Setting up the Protection Schema for Your Repository 1.3.6.4 Defining the Partition Hierarchy 1.3.6.5 Creating A Context 1.3.6.6 Creating A Collection 1.3.7 Defining a New FIELD Definition 1.3.7.1 Changing a Controlled Element in CDO 1.3.8 Using CDO Command Procedures 1.3.8.1 Entering Definitions with Command Procedures 2 Using the CDO Screen Editor 2.1 Overview of the CDO Screen Editor 2.1.1 Defining CDO Screen Editor Keys 2.1.2 Invoking the CDO Screen Editor 2.1.3 Accessing Help in the CDO Screen Editor 2.1.4 Editing Text Within the CDO Screen Editor 2.1.5 Creating Definitions 2.1.6 Creating Record Definitions Containing Existing Fields 2.1.7 Browsing Through Current Definitions 2.1.8 Exiting from the CDO Screen Editor 2.1.9 A Sample CDO Editing Session 2.1.10 Customizing Your CDO Screen Editor Display 3 Managing a Repository 3.1 Understanding Repository Components 3.1.1 Extending the CDD-Supplied Repository Template 3.2 Planning a Repository Structure 3.2.1 Deciding Where to Place Definitions 3.2.2 Configuring a Repository over a Network 3.2.3 Using Logical Names to Preserve Structure 3.3 Creating New Repositories 3.4 Verifying and Rebuilding Repositories 3.4.1 Journaling 3.4.2 Backing Up Repositories 3.4.3 Verifying the Repository Condition 3.4.3.1 Recovering the Directory System 3.4.3.2 Shrinking the Snapshot File 3.4.3.3 Establishing Local Procedures for the VERIFY Command 3.5 Moving a Repository 3.6 Deleting a Repository 3.7 Tuning the Lock-Related Parameters 3.8 Enhancing Repository Performance 3.9 Managing Lock Conflicts with CDD$WAIT 3.10 Assigning an Identifier to Prevent Disk Quota Errors 4 Managing Repository Elements 4.1 Creating Elements 4.1.1 Using Uncontrolled vs. Controlled Elements 4.1.2 Creating Field Definitions 4.1.2.1 Defining a One-Dimensional Array Field 4.1.2.2 Defining a Two-Dimensional Array Field 4.1.2.3 Using the BASED ON Property 4.1.3 Creating Record Definitions 4.1.3.1 Nesting Definitions 4.1.3.2 Using the VARIANTS Clause 4.1.3.3 Creating Top-Down Definitions 4.1.4 Creating Relationships 4.1.4.1 Viewing a Definition's Relationships 4.2 Listing Repository Definitions 4.2.1 Listing Specified Types of Definitions 4.3 Displaying Elements 4.4 Changing Repository Elements 4.4.1 Documenting Changes 4.4.2 Using the Version Control Model 4.4.3 Tracking Parallel Versions of a Project 4.4.4 Showing the Effects of Changes 4.4.5 Tracking Changes to Definitions 4.4.6 Using the SHOW UNUSED Command 4.4.7 Displaying Relationships Between Elements 4.4.8 Predicting the Effects of the CHANGE Command 4.4.9 Deleting and Purging Repository Elements 4.4.10 Deleting a Directory 4.4.11 Accessing Notices About Changes 4.4.11.1 Reading Notices 4.4.11.2 Resolving Inconsistencies 4.4.11.3 Clearing Notices 4.4.11.4 Creating Your Own Protocols 4.4.12 Modifying the Access Rights to Allow Changes 4.4.13 Changing Original Definitions in Place 4.4.14 Creating New Versions of Definitions 4.4.14.1 Changing Field Definitions 4.4.14.2 Changing Record Definitions 4.4.14.3 Using New Versions of Field Definitions in Records 4.4.14.4 Extracting Current Definitions 4.4.15 Changing Relationships 4.4.15.1 Changing a Member with the CHANGE Command 4.4.15.2 Changing a Member with the DEFINE Command 4.4.16 Recompiling Application Programs 4.4.17 Changing Elements in a Network 4.4.18 Performing Impact Analysis 4.5 Upgrading the Repository 4.5.1 Creating a Repository Backup File 4.5.2 Restoring a Repository From a Backup File 4.6 Copying Definitions 4.6.1 Copying Relationships 4.6.2 Copying a Complete Dictionary 5 Implementing a Distributed Repository 5.1 Introduction to a Distributed Repository 5.1.1 Distributing an Uncontrolled Element 5.1.2 Defining a New Version of Metadata for Remote Distribution 5.1.3 Using CDD/Repository Messaging for Repository Integrity 5.1.4 Using the Journal File 5.1.5 Accessing Remote Repository Elements 5.1.5.1 Using Proxy Access to Remote Repository Elements 6 Managing Repository Protection 6.1 Understanding CDD/Repository Protection Schema 6.1.1 Protecting Repository Elements 6.1.1.1 Using Default Protections for Repository Elements 6.1.1.2 Displaying the Protection on an Element 6.1.1.3 Organizing Access Control Entries (ACEs) 6.1.1.4 Changing Access Control Entries (ACEs) 6.1.1.5 Deleting an Access Control Entry (ACE) or an Access Control List (ACL) 6.1.1.6 Protecting Interrelated Elements 6.1.2 Protecting Repository Directories 6.1.2.1 Using the Default Protection for Repository Directories and Other Elements 6.1.3 Protecting Repository Protocols and Types 6.1.3.1 Using Default Protection for Digital-Supplied Types 6.1.3.2 Using Default Protection for User-Defined Types 6.1.3.3 Using CDD$EXTENDER to Change the Protection for User-Defined Types 6.1.4 Protecting a Repository 6.2 Setting VMS Protections 6.2.1 The UIC Identifier 6.2.1.1 Adding UIC-Based Protection 6.2.2 Using General Identifiers 6.2.3 Using System-Defined Identifiers 6.2.4 Specifying Multiple Identifiers 6.2.5 Protecting the Anchor Directory 6.2.5.1 Protecting the Anchor Directory with ACLs 6.2.6 Preventing Repository Corruption 6.2.6.1 Understanding Remote Access Rights 7 Using CDD/Repository with Rdb/VMS 7.1 Introduction to Using CDD/Repository with Rdb/VMS 7.2 Creating New Repository Definitions 7.2.1 Defining a Shareable Field Using CDO 7.2.2 Setting Protection on Data and Metadata 7.3 Modifying Repository Definitions and Database Files 7.3.1 Modifying Repository Definitions Using CDO 7.3.2 Updating the Repository Using the Database Files 7.3.2.1 Modifying Repository Definitions Using VAX SQL 7.3.2.2 Creating Repository Definitions Using VAX SQL 7.3.2.3 Making an Rdb/VMS Record Shareable in the Repository 7.3.2.4 Changing a Field's Datatype Using CDO 7.3.3 Updating the Database File Using the Repository Definitions 7.4 Deleting Definitions Using VAX SQL and CDO 7.5 Deciding Whether or Not to Require CDD/Repository 7.5.1 Criteria for Using CDD/Repository with Rdb/VMS Databases 7.6 Restoring a Database That Uses Shareable Repository Definitions 7.6.1 Backing Up and Restoring Databases 7.6.2 Restructuring and Reloading Databases 7.7 Deleting Databases 7.8 Solving Duplicate Name Problems 7.9 Using VALID IF Clauses in CDO and Rdb/VMS 8 Managing RMS Files with CDO 8.1 Using CDD/Repository with RMS Overview 8.2 Creating RMS Database Definitions 8.3 Creating Physical Database Files 8.4 Using RMS File Definitions in Programs and Applications 8.5 Showing Databases and Database Definitions 8.6 Moving Databases with CHANGE DATABASE 8.7 Deleting Databases and Database Definitions EXAMPLES 4-1 Version Control Example 5-1 Remote Distribution for a Controlled Element 7-1 Defining Shareable Fields in CDO 7-2 Checking Field Definitions 7-3 Defining CDO Records 7-4 Using CDO Definitions to Create a Schema in SQL 7-5 Modifying Repository Definitions Using the INTEGRATE Statement with ALTER DICTIONARY Clause 7-6 Storing Existing Database System File Definitions in the Dictionary Using the INTEGRATE Statement with CREATE PATHN 7-7 Updating the Database File to Match the Dictionary Definitions FIGURES 1-1 CDD/Repository Element Names 2-1 CDO Screen Editor Keypad Key Functions 2-2 CDO Screen Editor Menu Keypad and Key Functions 4-1 Creating Local Copies of Remote Dictionary Definitions 5-1 Sample Logical Repository Structure 6-1 How CDD/Repository Checks Access Rights 7-1 Sharing Repository Definitions Among Database Products 7-2 Shareable Fields in VAX CDD/Repository 7-3 Directory Names and Processing Names are Not Always the Same 7-4 Different Directory and Processing Names in a Repository Record 7-5 Mismatching Directory and Processing Names in a Database Relation Definition TABLES 1 Documentation Conventions 6-1 Access Rights for Elements 6-2 Access Rights for Directories 6-3 Access Rights for Types 8-1 Summary of Commands for Manipulating RMS Files 8-2 DEFINE_RMS_DATABASE Attribute Clauses