(U03)

www.btinternet.com/~adrian.larner/database/pci0

PLATOCLAST
ON DATA

A New Approach to
Relational Data Base

Adrian Larner

 

 

 

Dedication

 

To the memory of

A H G Palmer

Headmaster of
Great Yarmouth Grammar School

A fine mathematician

 

 

Acknowledgments

 

I am indebted, especially for what understanding I have of usability and simplicity, to John Kay, who showed me how to design software, and to William Reynolds, who showed me how to do systems analysis.

This book has its genesis in my design of the IBM Query.DL/I program product, a user-friendly front-end to DL/I (hierarchical) data bases. I am indebted to my former manager, Ian Nussey, without whose commitment and zeal the product would never have seen the light of day; to John Knapman, who originally conceived it, and who kindly criticised the unpublished paper that was the distant predecessor of these lectures; to Chris Corfield, who checked the formal definitions in that paper; to John Dawkins, who originated the concept that I have called “many-dimensioned data”; to my colleagues on the Query.DL/I project. especially Peter Hayes, Michael Fabianski, and Mike Rigby, who managed against all the odds to implement the product; and to Leo Wu and Olov Pettersson, who worked so hard to get Query.DL/I accepted and enhanced. As the approach to data base theory in this book was the eventual outcome of my sleeplessness, Olov is now forgiven for inadvertently committing me to creating an SQL-Iike front-end to Query.DL/I overnight. My thanks go also to Hugh Darwen and Chris Date for many valuable discussions and criticisms of the ideas in this book, both face-to-face and by correspondence.

Except in exposition of his theory I am not, in general, to be taken as speaking in propria persona through the mouth of Professor Platoclast, but his words are indeed mine when he begins by saying that “Dr Codd’s achievement is very great indeed”, and concludes: “I would be proud for my theory to be considered an extension (even merely an extension) to one of the greatest advances in the history of DP.”

I would like to thank the many faculty members of the departments of Computer Science and Philosophy at the University of Warwick who made me welcome and stimulated my ideas during my sabbatical there in 1986/87, the only extended period that I have had for careful, calm deliberation of many of the ideas in these lectures. And I am most grateful to my employers, IBM United Kingdom Ltd, both for granting me that sabbatical and for filling my long career with the practical challenges in software design that have driven me to the theory propounded here.

 

Adrian Lamer
March 1993

 

 

Contents

 

Editor’s Introduction

Platoclast’s Objective
Platoclast’s Argument
Platoclast’s Permission to Publish
Platoclast’s Introduction

Lecture I – Data Structure

The Definition of Formatted Data
    Vagueness and Criteria of Application
    Ambiguity and Criteria of identity
Fields
Records
    Records are Essential
    Other Data Structures are Inessential
    No Duplicate Records
    Records are Unordered
Tables
    Columns and Rows
    Polynormal Records
    Normal Records
    Tables of Uniform Format
    Are Tables Essential?

Lecture II – Data Formalised

Using a Logic
Primitives, Definitions, and Postulates
The First Order Logic
Records, Parts, and Aggregates
    Record Types
    Record Values
    Base Records
Implication

Lecture III – The Interpretation of Relations

Domains
Relations
    Predicates and Propositions
    Speaking of Sets
    Speaking of Relations
Set Theory
    Relations Are Not Sets

Lecture IV – Data Manipulaton

The Theory of Two-Dimensional Data
    Data Manipulations
    Aggregation of Records
Interpretation
    Natural Join
    Selection
    Cartesian Product
    Intersection
    Extension
    Projection
    An Exercise in Interpretation
    Other Operations

Lecture V – Predicates and Names

Identity
    Natural Composition
    Names as Values
    Names and Implication
    Intensional Predicates
    “Shakespearean” Predicates
Self-Interpretation
The Join Trap
    Proper Names
The FOPC and Identity

Lecture VI – Entities and Identities

The “Entity” Interpretation
    What Are Entities?
    Discovering Entities in the “Real World”
    Objections to “Entities”
    Entity and Identity
Identity
    Absolute Identity
    Relative Identity
    Systemic Identity
    A Persistent Identity
Does Each Record Represent an Entity?

Lecture VII – The Same Again

Economy of Means
Relative Identity
    Naming
    Counting
    Trying to Count under Absolute Identity
    Concrete (Non-additional) Types
    Systemic Identity Neither Absolute Nor Persistent
    Relative Identity Persistent
Abstract (Additional) Types (Sets)
    Abstraction and Cardinality
    Impossibility of Counting under Absolute Identity
    Sets as Interpretations
    Appeal to Simplicity

Lecture VIII – New Interpretations

Column Definitions and Criteria of Identity
    Narrowness and Completion of Criteria of Identity
    Proper and Common Names
Existential Interpretation
    Special Cases
    Restriction
    Joins
    Projection
    Cryptic Data
    Proper Values
Are Records Assertions?

Lecture IX – Tables Are Not Essential

The Classical Interpretation Reconsidered
    Can Abstract Types Be Saved?
Tables
    Table Names
    Are Table Names Essential?
    Record Identifiers and Table Names
    Two Levels of Record
    Table Uniformity and a Language Question
    Connection Between Record Levels

Lecture X – Handling Non-normal Records

Typed and Untyped Quantification
Polynormal Records
    The Postulate of Two-Dimensionality
    Restriction Conditions and the Quantifying Operators
    Restrictions on Present and Absent Fields
Completed Identities and Cryptic and Esoteric Data
SQL Introduced

Lecture XI – Nulls

Non-Uniform Tables
    Operations
Nulls
    Missing Information
    Modalities
    What is the Problem of Nulls?
    Nulls and Joins
    Semantic Nulls
Improper Values
    Proper Semantic Nulls
    Improper Semantic Non-Nulls
Semantic Nulls
    Which Semantic Null?

Lecture XII – Integrity, Domains, Defaults

Entity Integrity
Referential Integrity
Domains and Nulls
    Default Values
    Operations
    Modalities
    Relatively Proper Values
    Padding
    Proper Semantic Nulls
    Improper Semantic Non-Nulls
Afterthoughts on Nulls

Lecture XIII – Conjunction Operations

Reinterpretation
    Conjunction
    Varieties of Conjunction
Data Manipulation Languages
    Domain Calculus
    Relational Algebra
    Tuple Calculus
Union

Lecture XIV – The Combination Operation

Outer Join
    Varieties of Outer Join
    Loss of Information on Outer Join
    Intractability of Outer Join
    Conjoin
Combination

Lecture XV – Quantification

Combination as a Primitive Operator
    Non-Uniform Tables and Language Issues
Relational Union
Quantification
    Accumulation and Collection
    Interpretation

Lecture XVI – Data Types

Data Representation Independence
    Data Encapsulation
    Token Processing
Handling Nulls and Absent Values
Accumulation by Reduction of Collections
On Some Fallacies

Lecture XVII – Collection and Negation

Token Identity
    Identities of Multidimensional Data
    Modality as a Data Dimension
Collections
    Differentiation
    Collections as Joins
Difference
A Clarification

Lecture XVIII – Recapitulation

Tables and Records
Data Manipulations
Fields
Handling Data Outside the Data Manipulation Language
Token Handling
First Order Logic Subset Data Manipulation Language
The “Closed Data Base” Assumption
Outer Join Defined
A Remark on Object Orientation
A Remark on Polymorphic Types

Lecture XIX – Data Independence

Access Independence
Data Organisation
    Program Data is Structured
    Program Structure
    Data Structured Programming
    A Common Program Structure
    Parallel Processing
Closure
Afterword on Program Structures
    Encapsulation of Structure

Lecture XX – More Data Manipulations

Hierarchies
    Level Breaks
    Headlining
    Empty-Headlining
Constraints of Uniform Format
    Grouping
    Nested Queries
    Relaxing the Uniform Format Constraint
    “Ideal” Query Scheme
    Recapitulation

Lecture XXI – Views

Queries and Views
    View Facilities
    Schematic Queries
    User Views
    Program Queries and Views
    “Ideal” Definition of Views
Updating Through Views
    Views Enhanced with Record Identifiers
Relational Data Base Design
    Physical Design
    Stored Records
Views of What?

Lecture XXII – Some Data Base Problems

Cryptic Identifiers
    Ordered Records
Physical Views
Limits of First Order Logic
    The Problem of the Ancestral
    Bills of Material
What is “Logically Basic”?

Lecture XXIII – Bills of Material

A Solution in the Theory of Two-Dimensional Data
A Solution Using a Schematic Query
Logically Basic Records
    Primitive Predicates
    Postulates
    Updating Through Views
    Non-Updatable Views

Lecture XXIV – Keys

Primary Keys
Identifiers and Keys
    Candidate Keys
    Keys in Optimisation
    Keys in Data Base Design
    The Join Trap
    Origins of Functional Determination
Duplicate Rows
“Duplicate” Needs Definition
Interpretation of Duplicate Rows
    A Case for Duplicate Rows
    Arbitrary Choice Among Duplicates
    Duplicate Rows in SQL

Lecture XXV – Integrity and Design

Referential Integrity
    Existence Dependence and Simple Dependence
    Normal and Non-Normal Records
    Integrity Constraints on Views
Dependence and Functional Determination
    Independent Entities
    Columns as Classifications of Entities
    Existence Dependence and Classification
    Independence and Existential Interpretations

Lecture XXVI – More on Design

Four Levels of Data Design
    Problems of Design
    Analysing “Part” Entities
    Composition Deletion
Query Results Affected by Functional Determination
    Assertions
A Miscellany of Problems
    Design of One-One Relationships
    Counts and Tallies
    Nested Queries
A Problem with Normal Records

Lecture XXVII – First Normal Form

Polynormality
Non-Normality
Limits of Complexity
Deviations from Normality
    Composite Columns
    Compound Values
    Encapsulated Data Structures
Adequacy of Normal Records
    Non-Normal Relations
    Data Structure Dependence
    Structured Output
    Simplicity and Power
Character Strings

An Informal Symposium

Tables and Views
    Table Types and Instances
    Views
    Adding Columns to Tables
Cartesian Product v. Natural Join
    The Identity of Queries
    User Front-End with Natural Join
Handling Very Large Tables
Nested Queries
    Unnesting Queries
    Nesting as a Syntactic Variation
    The Importance of Syntax
Non-Uniform Format Needed for Meta-Data
    A Philosophical Objection
    The End of the Conversation
On Nested Relations

Lecture XXIX – The Reckoning

Platoclast‘s Theory
    Records
    Tables
    Interpretation
    Data Manipulations
    Nulls
    Multi-level Analysis
    Schematic Queries
    Negative Achievements
Evaluation
    Extendability
    Upward Compatibility

Lecture XXX – Retrospect and Prospect

Challenges to Relational Theory
    The Use of Relative Identity
    Formalisation
    Non-Uniform Format
Looking to the Future
Duplicate Records Once Again
Farewell

Index

 

SITE HOME PAGE

 

THE DATABASE PAGE

THE DATABASE PAPERS

Platoclast on Data:
Editor’s Introduction

 

Copyright © 1993, 2001 Adrian Larner. The author asserts all moral rights.