IRAF Database I/O Design Contents 1. PREFACE 1.1 Scope of this Document 1.2 Relationship to Previous Documents 2. INTRODUCTION 2.1 The Database Subsystem 2.2 Major Subsystems 2.3 Related Subsystems 3. REQUIREMENTS 3.1 General Requirements 3.1.1 Portability 3.1.2 Efficiency 3.1.3 Code Size 3.1.4 Use of Proprietary Software 3.2 Special Requirements 3.2.1 Catalog Storage 3.2.2 Image Storage 3.2.3 Intermodule Communication 3.2.4 Data Archiving 3.3 Other Requirements 3.3.1 Concurrency 3.3.2 Recovery 3.3.3 Data Independence 3.3.4 Host Database Interface 4. CONCEPTUAL DESIGN 4.1 Terminology 4.2 System Architecture 4.3 The DBMS Package 4.3.1 Overview 4.3.2 Procedural Interface 4.3.2.1 General Operators 4.3.2.2 Form Based Data Entry and Retrieval 4.3.2.3 List Interface 4.3.2.4 FITS Table Interface 4.3.2.5 Graphics Interface 4.3.3 Command Language Interface 4.3.4 Record Selection Syntax 4.3.5 Query Language 4.3.5.1 Query Language Functions 4.3.5.2 Language Syntax 4.3.5.3 Sample Queries 4.3.6 DB Kernel Operators 4.3.6.1 Dataset Copy and Load 4.3.6.2 Rebuild Dataset 4.3.6.3 Mount Foreign Dataset 4.3.6.4 Crash Recovery 4.4 The IMIO Interface 4.4.1 Overview 4.4.2 Logical Schema 4.4.2.1 Standard Fields 4.4.2.2 History Text 4.4.2.3 World Coordinates 4.4.2.4 Histogram 4.4.2.5 Bad Pixel List 4.4.2.6 Region Mask 4.4.3 Group Data 4.4.4 Image I/O 4.4.4.1 Image Templates 4.4.4.2 Image Pixel Access 4.4.4.3 Image Database Interface (IDBI) 4.4.5 Summary of IMIO Data Structures 4.5 The DBIO Interface 4.5.1 Overview 4.5.2 Comparison of DBIO and Commercial Databases 4.5.3 Query Language Interface 4.5.4 Logical Schema 4.5.4.1 Databases 4.5.4.2 System Tables 4.5.4.3 The System Catalog 4.5.4.4 Relations 4.5.4.5 Attributes 4.5.4.6 Domains 4.5.4.7 Groups 4.5.4.8 Views 4.5.4.9 Null Values 4.5.5 Data Definition Language 4.5.6 Record Select/Project Expressions 4.5.6.1 Introduction 4.5.6.2 Basic Syntax 4.5.6.3 Examples 4.5.6.4 Evaluation 4.5.7 Operators 4.5.7.1 General Operators 4.5.7.2 Record Level Access 4.5.7.3 Field Level Access 4.5.7.4 Variable Length Fields 4.5.7.5 IMIO Support 4.5.8 Constructing Special Relational Operators 4.5.9 Storage Structures 4.6 The DBKI Interface (DB Kernel Interface) 4.6.1 Overview 4.6.1.1 Default Kernel 4.6.1.2 Host Database Interface 4.6.1.3 Network Support 4.6.2 Logical Schema 4.6.2.1 System Tables 4.6.2.2 User Tables 4.6.2.3 Indexes 4.6.2.4 Record Structure 4.6.2 Database Management Operators 4.6.2.1 Database Creation and Deletion 4.6.2.2 Database Access 4.6.2.3 Table Creation and Deletion 4.6.2.4 Index Creation and Deletion 4.6.3 Record Access Methods 4.6.3.1 Direct Access via an Index 4.6.3.2 Direct Access via the Record ID 4.6.3.3 Sequential Access 4.6.4 Record Access Operators 4.6.4.1 Fetch 4.6.4.2 Update 4.6.4.3 Insert 4.6.4.4 Delete 4.6.4.5 Variable Length Fields 4.7 The DBK (IRAF DB Kernel) 4.7.1 Overview 4.7.2 Storage Structures 4.7.2.1 Database 4.7.2.2 System Catalog 4.7.2.3 Table Storage 4.7.3 The Control Interval 4.7.3.1 Introduction 4.7.3.2 Shared Intervals 4.7.3.3 Private Intervals 4.7.3.4 Record Insertion and Update 4.7.3.5 Record Deletion 4.7.3.6 Adding New Fields 4.7.3.7 Array Storage 4.7.3.8 Rebuilding a Dataset 4.7.4 Indexes 4.7.4.1 Nonindexed Tables 4.7.4.2 Primary Index 4.7.4.3 Secondary Indexes 4.7.4.4 Key Compression 4.7.5 Host Database Interface (HDBI) 4.7.6 Concurrency 4.7.7 Backup and Transport 4.7.8 Accounting Services 4.7.9 Crash Recovery 5. SPECIFICATIONS 5.1 DBMS Package 5.1.1 Overview 5.1.2 Module Specifications 5.2 IMIO Interface 5.2.1 Overview 5.2.2 Examples 5.2.3 Module Specifications 5.2.3.1 Image Header Access 5.2.3.2 History Text 5.2.3.3 World Coordinates 5.2.3.4 Bad Pixel List 5.2.3.5 Region Mask 5.2.3.6 Pixel Access 5.2.4 Storage Structures 5.2.4.1 IRAF Runtime Format 5.2.4.2 Archival Format 5.2.4.3 Other Formats 5.3 DBIO (DataBase I/O interface) 5.3.1 Overview 5.3.2 Examples 5.3.3 Module Specifications 5.4 DBKI (DB Kernel Interface) 5.4.1 Overview 5.4.3 Module Specifications 5.5. DBK (IRAF DB Kernel) 5.5.1 Overview 5.5.2 Storage Structures 5.5.3 Error Recovery 5.5.4 Concurrency 6. SUMMARY Glossary Index