Summary
In 1970, most databases were hierarchical or network systems. Applications navigated records by following pointers, so they depended on how the data was physically stored. When the storage layout changed, programs broke. Codd set out to separate what data means from how it is laid out on disk.
He proposed modelling data as relations: sets of tuples over named domains, identified by keys rather than by position or pointer. Queries are expressed declaratively, using operations over whole relations, and the system decides how to find the data. The paper also introduces normalisation as a way to remove redundancy and the update anomalies that come with it.
Every SQL database descends from this idea. Data independence is what lets a system add an index, change a storage format or pick a new join algorithm without rewriting applications. It is also the reason query optimisers exist at all.
