<?xml version="1.0" encoding="UTF-8"?>
<TEI xmlns="http://www.tei-c.org/ns/1.0" xml:lang="en">
  <teiHeader>
    <fileDesc>
      <titleStmt>
        <title>A Relational Model of Data for Large Shared Data Banks</title>
        <author>Edgar F. Codd</author>
      </titleStmt>
      <publicationStmt>
        <p>Tag layer of the DHSS Meta-Tagging Project. The article text is reproduced from the
           staged copy named in sourceDesc and is not altered; the tags are held separately in
           standOff so that overlapping and nested spans are preserved.</p>
      </publicationStmt>
      <sourceDesc>
        <bibl>
          <title>A Relational Model of Data for Large Shared Data Banks</title>
          <date>1970</date>
          <publisher>Communications of the ACM</publisher>
          <idno type="DOI">10.1145/362384.362685</idno>
          
          <idno type="record">codd1970-relational-model</idno>
          <note type="staged-file">codd1970-relational-model.txt, the project's staged copy</note>
          <note type="text-sha1">9c15bb2b90986817f7b3cd7a72223432064f7c2e</note>
          <note type="rights">open-access</note>
        </bibl>
      </sourceDesc>
    </fileDesc>
    <profileDesc>
      <textClass><keywords><term>computer-science</term></keywords></textClass>
      <particDesc>
        <person xml:id="paper"><p>the paper's own words</p></person>
        <person xml:id="tagger"><p>the tag layer; a sentence written by the tagger about the
          paper, always anchored to a quotation but not itself a quotation</p></person>
      </particDesc>
    </profileDesc>
    <revisionDesc>
      <change when="2026-10-06"
              who="build_paper_edition.py">0 spans located by searching the stored text for the quote's exact words, allowing any whitespace between them</change>
    </revisionDesc>
  </teiHeader>
  <standOff>
    <spanGrp type="tags">
      <span xml:id="t0" type="claim_type" ana="#claim_type" resp="#paper">
        <label>method</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t1" type="phenomenon" ana="#phenomenon" resp="#paper">
        <label>data independence in shared data banks</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t2" type="method" ana="#method" resp="#paper">
        <label>formal-model</label>
        <term>formal-model</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t3" type="mechanisms" ana="#mechanisms[0]" resp="#tagger">
        <label>mechanisms</label>
        <term>represent data as mathematical relations (tables) decoupled from physical storage, so programs are independent of how data is stored and can be queried with a high-level relational language</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t4" type="limitations" ana="#limitations[0]" resp="#tagger">
        <label>the range of representation changes achievable without impairing programs is still limited</label>
        <note>what this limits: the data-independence claim: the range of representation changes THAT CAN BE CHANGED WITHOUT LOGICALLY IMPAIRING SOME APPLICATION PROGRAMS IS STILL QUITE LIMITED</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t5" type="limitations" ana="#limitations[1]" resp="#tagger">
        <label>The paper deliberately excludes any discussion of how systems supporting the model would be implemented.</label>
        <note>what this limits: any implementation reading: IMPLEMENTATIONS OF SYSTEMS TO SUPPORT THE RELATIONAL MODEL ARE NOT DISCUSSED</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t6" type="limitations" ana="#limitations[2]" resp="#tagger">
        <label>Further normalisation operations exist but are left out of the paper.</label>
        <note>what this limits: the normalisation account as complete: further operations exist and THESE ARE NOT DISCUSSED IN THIS PAPER</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t7" type="limitations" ana="#limitations[3]" resp="#tagger">
        <label>The proposed data sublanguage is only sketched; neither its linguistic detail nor its implementation is worked out.</label>
        <note>what this limits: any use of the paper as a specification for a query language: NEITHER THE PURELY LINGUISTIC DETAILS OF SUCH A LANGUAGE NOR THE IMPLEMENTATION PROBLEMS ARE DISCUSSED</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t8" type="limitations" ana="#limitations[4]" resp="#tagger">
        <label>Checking consistency requires an instantaneous snapshot of possibly very large, highly variable relations, a practical problem the paper does not address.</label>
        <note>what this limits: the consistency-checking proposal at scale: THERE ARE PRACTICAL PROBLEMS (WHICH WE SHALL NOT DISCUSS HERE) IN TAKING AN INSTANTANEOUS SNAPSHOT OF A COLLECTION OF RELATIONS, SOME OF WHICH MAY BE VERY LARGE AND HIGHLY VARIABLE</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t9" type="limitations" ana="#limitations[5]" resp="#tagger" cert="1.0">
        <label>Following a chain of stored connections to answer a question is stated to be erroneous in general; it is valid only when the target relation IS the natural composition of the links, and only if that holds for all time.</label>
        <note>what this limits: any answer obtained by following paths through linked records: it is correct only in the very special case that the target relation is the natural composition of the relations traversed, and the phrase &#x27;for all time&#x27; must normally be added</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t10" type="limitations" ana="#limitations[6]" resp="#tagger" cert="1.0">
        <label>The normalisation procedure is stated to apply only when the collection of relations already satisfies stated structural conditions.</label>
        <note>what this limits: the claim that a collection of relations can be normalised: the procedure requires the graph of interrelationships of the nonsimple domains to be a collection of trees</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t11" type="limitations" ana="#limitations[7]" resp="#tagger" cert="1.0">
        <label>A distinction the paper draws is then declared not worth maintaining for the rest of the paper.</label>
        <note>what this limits: the words &#x27;relation&#x27; and &#x27;relationship&#x27; anywhere after Section 1: the paper states it will not distinguish them except where being explicit is advantageous</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t12" type="transfers" ana="#transfers[0]" resp="#tagger">
        <label>modelling data as mathematical n-ary relations queried via predicate calculus, giving data independence</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t13" type="concepts" ana="#concepts[0]" resp="#paper">
        <label>relational model</label>
        <term>relational model</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t14" type="concepts" ana="#concepts[2]" resp="#paper">
        <label>normalization</label>
        <term>normalization</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t15" type="concepts" ana="#concepts[3]" resp="#paper">
        <label>data independence</label>
        <term>data independence</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t16" type="concepts" ana="#concepts[4]" resp="#paper">
        <label>connection trap</label>
        <term>connection trap</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t17" type="concepts" ana="#concepts[5]" resp="#paper">
        <label>foreign key</label>
        <term>foreign key</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t18" type="concepts" ana="#concepts[6]" resp="#paper">
        <label>primary key</label>
        <term>primary key</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t19" type="senses" ana="#senses[0]" resp="#tagger" cert="1.0">
        <label>the connection trap - A NAMED ERROR: mistaking the derivation of connections for the derivation of relations, which the paper attributes to a lack of understanding of relational composition</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t20" type="senses" ana="#senses[1]" resp="#tagger" cert="1.0">
        <label>derivability - HOLDING FOR ALL TIME, not at an instant: because the relations vary in time, the sequence of operations must yield the relation over a significant period, not once</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t21" type="senses" ana="#senses[2]" resp="#tagger" cert="1.0">
        <label>data independence - AS INDEPENDENCE FROM TWO THINGS AT ONCE: growth in data types, and changes in data representation, for application programs and terminal activities alike</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t22" type="alternatives" ana="#alternatives.claim_type" resp="#tagger" cert="0.8">
        <label>claim_type: method</label>
        <note>a second reading reaching the same value. Recorded: method — note: A BLIND second reading by the project on 2026-08-25: the record&#x27;s own claim type/method/phenomenon were not looked at until every value here was written and substring-verified. Not applied - a person decides. Sampling frame: the 504 staged records carrying no alternatives block, so this never re-measures the 202. All 11 records with 130+ tags were taken as a census and 19 more spread one per discipline across 22 disciplines - the dense non-neuroscience cell is the one the 202 do not contain (inside them, 94-100% of the densest bands are neuroscience; among these 11, one is).,</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t23" type="alternatives" ana="#alternatives.method" resp="#tagger" cert="0.8">
        <label>method: formal-model</label>
        <note>a second reading DIFFERING from the recorded value. Recorded: formal-model — note: A BLIND second reading by the project on 2026-08-25: the record&#x27;s own claim type/method/phenomenon were not looked at until every value here was written and substring-verified. Not applied - a person decides. Sampling frame: the 504 staged records carrying no alternatives block, so this never re-measures the 202. All 11 records with 130+ tags were taken as a census and 19 more spread one per discipline across 22 disciplines - the dense non-neuroscience cell is the one the 202 do not contain (inside them, 94-100% of the densest bands are neuroscience; among these 11, one is).,</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t24" type="alternatives" ana="#alternatives.phenomenon" resp="#tagger" cert="0.85">
        <label>phenomenon: data independence - insulating application programs from changes in how data is represented</label>
        <note>a second reading DIFFERING from the recorded value. Recorded: data independence in shared data banks — note: A BLIND second reading by the project on 2026-08-25: the record&#x27;s own claim type/method/phenomenon were not looked at until every value here was written and substring-verified. Not applied - a person decides. Sampling frame: the 504 staged records carrying no alternatives block, so this never re-measures the 202. All 11 records with 130+ tags were taken as a census and 19 more spread one per discipline across 22 disciplines - the dense non-neuroscience cell is the one the 202 do not contain (inside them, 94-100% of the densest bands are neuroscience; among these 11, one is).,</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t25" type="claim_relations" ana="#claim_relations[0]" resp="#tagger">
        <label>builds-on → n-ary relations and predicate calculus (mathematics/logic)</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t26" type="claim_relations" ana="#claim_relations[1]" resp="#tagger">
        <label>contradicts → the graph or network model of data [3, 4] then in use for noninferential systems</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t27" type="claim_relations" ana="#claim_relations[2]" resp="#tagger">
        <label>builds-on → data description tables in recently developed information systems [5, 6, 7]</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t28" type="concept_edges" ana="#concept_edges[0]" resp="#tagger">
        <label>foreign key —distinct-from→ primary key</label>
        <term>foreign key</term>
        <term>primary key</term>
        <note>the relation itself is separately evidenced · strength of the relation: 1 · the relation stated: a foreign key is DEFINED BY NOT BEING the primary key, while drawing its values from one</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t29" type="concept_edges" ana="#concept_edges[1]" resp="#tagger">
        <label>relational model —causes→ data independence</label>
        <term>relational model</term>
        <term>data independence</term>
        <note>strength of the relation: 1
Audit 2026-09-28: DOUBTFUL - read against its full span and kept, but endpoint by anaphora: &#x27;it&#x27; = relational model (previous sentence); the span writes &#x27;maximal independence between programs ... and machine representation&#x27;, not &#x27;data independence&#x27;.</note>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t30" type="content_tags" ana="#content_tags.quantities[0]" resp="#tagger">
        <label>3 — data dependencies still needing removal</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t31" type="content_tags" ana="#content_tags.findings[0]" resp="#tagger">
        <label>the relational view appears superior in several respects to the graph or network model</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t32" type="content_tags" ana="#content_tags.findings[1]" resp="#tagger">
        <label>the relational model gives a basis for a high-level data language with maximal independence</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t33" type="content_tags" ana="#content_tags.findings[2]" resp="#tagger">
        <label>the paper&#x27;s core problem is data independence</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t34" type="content_tags" ana="#content_tags.findings[3]" resp="#tagger">
        <label>the relational view forms a sound basis for treating derivability</label>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t35" type="content_tags" ana="#content_tags.variables[0]" resp="#tagger">
        <label>n-ary relations</label>
        <term>n-ary relations</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t36" type="content_tags" ana="#content_tags.variables[1]" resp="#tagger">
        <label>data representation</label>
        <term>data representation</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t37" type="content_tags" ana="#content_tags.variables[2]" resp="#tagger">
        <label>application programs</label>
        <term>application programs</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t38" type="content_tags" ana="#content_tags.variables[3]" resp="#tagger">
        <label>redundancy and consistency</label>
        <term>redundancy and consistency</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t39" type="content_tags" ana="#content_tags.definitions[0]" resp="#tagger">
        <label>relational view (or model)</label>
        <term>relational view (or model)</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t40" type="content_tags" ana="#content_tags.definitions[1]" resp="#tagger">
        <label>data independence</label>
        <term>data independence</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
      <span xml:id="t41" type="content_tags" ana="#content_tags.definitions[2]" resp="#tagger">
        <label>connection trap</label>
        <term>connection trap</term>
        <note type="quotation-withheld">Quotation withheld because this record is not cleared for redistribution.</note>
      </span>
    </spanGrp>
  </standOff>
  <text>
    <body>
      <p><note type="rights">The full text of this article is not redistributable, so it is
      not included here. The evidence sentences are withheld with it; the tag layer and its
      grounding status remain. The article itself is at https://doi.org/10.1145/362384.362685.</note></p>
    </body>
  </text>
</TEI>
