David Portas

Data Engineer, New York, NY, USA

The End of Change?
There are many important milestones in the history of Agile ideas. The Shewhart Cycle of the 1930s is sometimes said to be the origin of modern adaptive methods of production. The development of Kaizen in Japan in the 1950s and Scrum in the 1980s and 90s were also important influences. Let me call out one noteworthy event which has its 30th anniversary this year: the genesis of the Agility Forum at Lehigh University in 1994.

Software Developers are Gardeners
Developing software is a collaborative process of creativity, discovery, problem solving and hard work which can continue indefinitely. Working software systems are modified and reinvented in an organic process that often goes on for many years. Building software is therefore very unlike constructing a house or a bridge and much more like gardening: software grows, gets redesigned, pruned, improved and maintained over many years, very like a garden.

FX Rate Triangulation in SQL
When populating a database from a feed of exchange rate data it can be useful to derive rates for extra pairs of currencies that are not available from the feed itself. Triangulation is a widely used method to derive rates between pairs of currencies.

Exclusive Subtyping in SQL
Subtyping is a very common data modelling scenario that gets extensive coverage in database design textbooks but it isn’t necessarily well supported by SQL DBMSs. Here's a simple technique for implementing exclusive subtypes.

Zero Degree Keys and Dependencies
Examples of zero degree keys and zero degree dependencies are rarely found in the literature on dependency theory and normalization. It is worth considering some examples of a dependency on the empty set and to demonstrate why singleton relations are a useful part of the database designer's toolkit.

Singleton Tables - Implementation and Modelling
A singleton relation is a relation consisting of exactly one tuple. In relational database terms it can be formally defined as the value of a non-empty relation variable with a key of ∅ (the empty set), meaning the key has no attributes at all.

A Memory of Jim Gray
I wrote this in 2006 after meeting Jim Gray. Jim was sadly lost at sea in January 2007.

The Relational Model Turns 40
2009. The Relational Data Model is 40 years old. Edgar Codd first described the idea that databases could be constructed from mathematical relations in an internal IBM Research report in August 1969.

The Primary Key Assumption
Archive of some random comments of mine about the use of primary keys.


Temporal Data

Basics, Managing Temporal Data with Multiple Domain Keys

Design Theory

A Simple Guide to Boyce-Codd Normal Form

3NF vs BCNF
Defining the difference

The Principle of Orthogonal Design
The POD is a database design principle devised by Chris Date and Dave McGoveran. It is a formalised version of a familiar idea in software engineering, namely "Don't repeat yourself" or "Once and once only"

First Normal Form: Repeating Groups vs Relation Valued Attributes
How a relation as an attribute is different from a repeating group. The issue of RVAs under First Normal Form.

Why Keys Must Be Composite

The Relational Model - An Example of a Relation


Forthcoming...

Some Notes on Natural Join