home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / c / coddrule.zip / CODDRULE.TXT next >
Text File  |  1989-12-18  |  30KB  |  687 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.         THE TWELVE RULES
  8.         for determining how relational a DBMS product is
  9.  
  10.         by
  11.  
  12.         E. F. Codd
  13.         President
  14.         The Relational Institute
  15.  
  16.  
  17.         May 16, 1986
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.         Abstract
  27.  
  28.         In a database management system (DBMS) omission of a few features
  29.         of the relational model can have seriously adverse effects on the
  30.         usability, the economic advantage, and the integrity advantage of
  31.         that  system.   Frequently,  DBMS  vendors  have  been  amazingly
  32.         short-sighted in the design of their new DBMS products.  However,
  33.         they all want to claim their products are "relational". The rules
  34.         described  in this paper  are intended to reflect  the compelling
  35.         advantages  to  be gained by a DBMS that is  fully supportive  of
  36.         each  and every feature of the  relational  model.   Furthermore,
  37.         these rules  may help users  to evaluate DBMS products (which are
  38.         claimed to be relational) more rapidly than if they examined  the
  39.         support for each and every feature of the relational model.   The
  40.         rules may also help  vendors  realize  how far short of  the mark
  41.         their DBMS products are.
  42.  
  43.         NOTE: Authorization to upload to a BBS was obtained from The
  44.               Relational Institute by both Hugo Blasdel (who scanned
  45.               corrected and uploaded the document) and Fabian Pascal
  46.               (who originally obtained it from TRI).  Errors in text
  47.               are preserved (bottom of page 5) and formating (middle
  48.               of page 5) are preserved, although this note and fixed
  49.               phone number below are added.
  50.  
  51.             Copyright (c) 1986  E. F. Codd / The Relational Institute
  52.                               All rights reserved
  53.  
  54.                  This material is planned for inclusion in a book
  55.                by E. F. Codd to be published soon by Addison-Wesley
  56.  
  57.         The Relational Institute                 Telephone:  408-268-8821
  58.         Suite 106
  59.         6489 Camden Avenue                           TRI Technical Report
  60.         San Jose, CA  95120                              EFC-6 / 05-16-86
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.                            CONTENTS                                PAGE
  78.  
  79.             1      Introduction to the rules  . . . . . . . . . . . . . 1
  80.             2      Non-claims . . . . . . . . . . . . . . . . . . . . . 2
  81.  
  82.               R1     Rule 1  The information rule  . . . . . . . . 2
  83.               R2     Rule 2  Guaranteed access . . . . . . . . . . 3
  84.               R3     Rule 3  Systematic treatment of
  85.                                  missing information . . . . . . . 3
  86.               R4     Rule 4  Dynamic on-line catalog . . . . . . . 4
  87.               R5     Rule 5  Comprehensive data sublanguage  . . . 4
  88.               R6     Rule 6  View updating . . . . . . . . . . . . 5
  89.               R7     Rule 7  High-level insert, update, delete . . 5
  90.               R8     Rule 8  Physical data independence  . . . . . 6
  91.               R9     Rule 9  Logical data independence . . . . . . 6
  92.               R10    Rule 10 Integrity independence  . . . . . . . 6
  93.               R11    Rule 11 Distribution independence . . . . . . 7
  94.               R12    Rule 12 Non-subversion  . . . . . . . . . . . 8
  95.  
  96.             3      Concluding remarks . . . . . . . . . . . . . . . .   9
  97.             4      References . . . . . . . . . . . . . . . . . . . .   9
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.               Copyright (c) 1986  E. F. Codd / The Relational Institute
  120.  
  121.  
  122.  
  123.  
  124.  
  125.                                THE TWELVE RULES
  126.  
  127.          1.  Introduction
  128.  
  129.          The   twelve   rules  defined  below  were  first  published   in
  130.          Computerworld  U.S.A.   October  14  &  21,  1985.  The  versions
  131.          presented here  are slightly revised  to make  their  definitions
  132.          more  precise   (not  to  change  their  meaning).    A  database
  133.          management  system  (DBMS)  is  fully  relational   if  it  fully
  134.          supports   each  and  every one of the twelve rules  and  all  30
  135.          features of the relational model.
  136.  
  137.          Like  the relational model itself,  these rules  are based on the
  138.          practical requirements of users,  database administrators (DBAs),
  139.          application  programmers,  security officers  and their managers.
  140.          For example,  in rules 8 through 11,   I specify,  and   require,
  141.          four   different  types  of  independence  aimed  at   protecting
  142.          customers'   investment   in   application   programs,   terminal
  143.          activities, and training.  Rules 8 and 9 -- physical and  logical
  144.          data  independence -- have been heavily discussed for many years.
  145.          Rules  10  and  11  -- integrity  independence  and  distribution
  146.          independence -- are aspects of the relational approach which have
  147.          received inadequate attention to-date,  but are likely to  become
  148.          as important as rules 8 and 9.
  149.  
  150.          These  rules are collectively based on a single foundation  rule,
  151.          which I call Rule Zero:.
  152.  
  153.               For any system that is advertised as, or claimed to be, a
  154.               RELATIONAL  DATABASE MANAGEMENT SYSTEM,  that system must be
  155.               able  to  manage databases  entirely through  its relational
  156.               capabilities as specified in the relational model.
  157.  
  158.          This  must  hold  whether  or not the system  supports  any  non-
  159.          relational capabilities of managing data.  Any DBMS that does not
  160.          satisfy this Rule Zero is not worth rating as a RELATIONAL DBMS.
  161.  
  162.          One  consequence  of  this  rule:  any system  claimed  to  be  a
  163.          relational DBMS must support database insert,  update, and delete
  164.          at  the RELATIONAL level (multiple-record-at-a-time) -- see  rule
  165.          R7   below.   Another consequence is the necessity of  supporting
  166.          the information rule and the guaranteed access rule -- see  rules
  167.          Rl and R2 below.  "Multiple-record-at-a-time" includes as special
  168.          cases  those situations in which zero or one record is retrieved,
  169.          inserted,  updated,  or  deleted.   In other  words,  a  relation
  170.          (R-table)  may have either zero tuples (rows)  or one tuple (row)
  171.          and still be a valid relation (R-table). Note that although these
  172.          are special cases, they do not receive special treatment.
  173.  
  174.          What is the danger to buyers and users of a system:
  175.  
  176.               1  that is claimed to be a RELATIONAL DBMS
  177.          and  2  that fails on Rule Zero ?
  178.  
  179.  
  180.  
  181.  
  182.                                     1
  183.  
  184.  
  185.  
  186.  
  187.  
  188.          Buyers  and  users  will  expect all the advantages  of  a  truly
  189.          relational DBMS, and they will fail to get these advantages.
  190.  
  191.          2.  Non-Claims
  192.  
  193.          It  is important for the reader to realize that the author is NOT
  194.          making any of the following claims about the 12 rules:
  195.  
  196.             1) that the rules are independent of one another;
  197.             2) that the 12 rules are complete in any sense;
  198.             3) that all a user needs to consider in evaluating any DBMS
  199.                is its fidelity to the relational model or to the rules
  200.                (for more complete evaluations, see the forthcoming Product
  201.                Reports from The Relational Institute).
  202.  
  203.          As  time  goes on,  it may be deemed advisable to  augment  these
  204.          rules  to make them "more complete",  but in any event they  will
  205.          continue  to be based principally on the relational model.   This
  206.          model is not expected to change in any radical way.  It has  been
  207.          very  stable  for the last ten years at least.   Minor  additions
  208.          are  expected every five years at the beginning and  midpoint  of
  209.          each  decade.    For  an  example of such an  addition,  see  the
  210.          references [EFC1,2] cited in connection with Rule 3:  it contains
  211.          a  candidate extension re missing information,  one that will  be
  212.          included  by  1990,  if  there are no  insuperable  technical  or
  213.          semantic problems uncovered.
  214.  
  215.          Now for the 12 rules based on Rule Zero.
  216.          Rl  The Information Rule
  217.  
  218.           Rule 1:     ALL   INFORMATION   in  a  relational  database  is
  219.                       represented  explicitly at the logical level and in
  220.                       exactly one way -- by values in R-tables.
  221.  
  222.           Even R-table names, column names, and domain names are represented
  223.           as  character strings in some R-tables.  R-tables containing such
  224.           names  are  normally part of the built-in  system  catalog.   The
  225.           catalog  is accordingly a relational database itself -- one  that
  226.           is  dynamic  and  active  and  represents  the  meta-data   (data
  227.           describing the rest of the data in the system).
  228.  
  229.           The  information rule is enforced not only for user productivity,
  230.           but also to make it a reasonably simple job for software  vendors
  231.           to   define   additional  software  packages  (like   application
  232.           development  aids,  expert systems,  etc.) which  interface  with
  233.           relational DBMS  and, by definition, are well integrated with the
  234.           DBMS  -- that  is,  these packages retrieve  information  already
  235.           existing  in the catalog and,  as needed,  put new information in
  236.           the catalog by the very act of using the DBMS.
  237.  
  238.           An additional  reason is to make  the  database   administrator's
  239.           task  of maintaining the database in a state of overall integrity
  240.           both  simpler  and  more  effective.    There  is  nothing   more
  241.           embarrassing to a DBA than being asked if his  database  contains
  242.  
  243.  
  244.                                      2
  245.  
  246.  
  247.  
  248.  
  249.  
  250.          certain  specific information,  and then replying after a  week's
  251.          examination of the database that he does not know.
  252.  
  253.          R2  Guaranteed Access Rule
  254.  
  255.          Rule  2:  Each  and every datum  (atomic value)  in  a relational
  256.                    database  is guaranteed  to be logically accessible  by
  257.                    resorting to a combination of R-table name, primary key
  258.                    value, and column name.
  259.  
  260.          Clearly, each datum in a relational database can be accessed in a
  261.          rich  variety  (possibly thousands) of logically  distinct  ways.
  262.          However, it is important to have at least one way (independent of
  263.          the  specific relational database) that is guaranteed  -- because
  264.          most  computer-oriented  concepts (such  as  scanning  successive
  265.          addresses)  have  been deliberately omitted from  the  relational
  266.          model.
  267.  
  268.          Note  that the guaranteed access rule represents  an  associative
  269.          addressing  scheme  that is unique to the relational  model.   It
  270.          does not depend at all on the usual computer-oriented addressing.
  271.          However,  the  primary  key concept is an essential part  of  it.
  272.          Structural  feature  S8  (see  section 3.1)  requires  each  base
  273.          relation to have a primary key.
  274.  
  275.          R3  Systematic treatment of missing information
  276.  
  277.          Rule 3:  Indicators  (distinct from the empty character string or
  278.                   a string of blank characters,  and distinct from zero or
  279.                   any other number) are supported in fully relational DBMS
  280.                   for  representing  at the logical level  the  fact  that
  281.                   information  is  missing  (applicable  and  inapplicable
  282.                   information) in a systematic way  -- independent of data
  283.                   type. Besides the logical representation, the DBMS  must
  284.                   support  manipulative  functions  for  these  indicators
  285.                   [EFC1,2]  and these must also be independent of the data
  286.                   type of the missing information.
  287.  
  288.          To  support database integrity,  it must be possible  to  specify
  289.          "indicators not allowed"  for each primary key column and for any
  290.          other columns where the DBA considers it an appropriate integrity
  291.          constraint (for example, certain foreign key columns).
  292.  
  293.          Past  techniques  entailed defining a special value  (peculiar to
  294.          each  column or field) to represent  missing  information.   This
  295.          would  be  most unsystematic in a  relational  database,  because
  296.          users  would have to employ different techniques for each  column
  297.          or  for each domain -- a difficult task  due to the high level of
  298.          language  in use  (and a task which,  I believe,  would lower the
  299.          productivity  of users).   Moreover,  the use of  a special value
  300.          selected  by  a user  from the domain  pertinent to the column is
  301.          tantamount  to equating the semantics of the FACT that a value is
  302.          missing  to the semantics of any value from that domain -- I call
  303.          this error the "value misrepresentation error".
  304.  
  305.  
  306.  
  307.                                     3
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.          R4  Dynamic on-line catalog based on the relational model
  315.  
  316.          Rule  4:   The database description is represented at the logical
  317.                     level  just  like ordinary data,  so  that  authorized
  318.                     users  can apply the same relational language  to  its
  319.                     interrogation as they apply to the regular data.
  320.  
  321.          One consequence of this is that each user (whether an application
  322.          programmer  or end user) needs to learn only one data model -- an
  323.          advantage  which non-relational systems usually do not offer (IMS
  324.          together  with  its  dictionary requires the user  to  learn  two
  325.          distinct  data models).   Another consequence is that  authorized
  326.          users  can  easily extend the catalog to become  a  full-fledged,
  327.          active,  relational data dictionary whenever the vendor fails  to
  328.          do so.
  329.  
  330.          R5  Comprehensive Data Sublanguage Rule
  331.  
  332.          Rule 5:   A relational DBMS  (no matter  how many languages  and
  333.                    what modes of terminal use it supports -- for example,
  334.                    the fill-in-the-blanks mode) MUST support at least one
  335.                    one language  (1) whose statements are expressible per
  336.                    some well-defined syntax as character strings;     and
  337.                    (2)  which  is comprehensive in supporting ALL  of the
  338.                    following items:
  339.  
  340.                     1   data definition
  341.                     2   view definition
  342.                     3   data manipulation (interactive & by program)
  343.                     4   integrity constraints
  344.                     5   authorization
  345.                     6   transaction boundaries
  346.                         (begin, commit, and rollback)
  347.  
  348.          The relational approach  is intentionally highly dynamic  -- that
  349.          is,  it should rarely be necessary to bring the database activity
  350.          to a halt (in contrast to non-relational DBMS). Therefore it does
  351.          not  make  sense  to  separate the  services  listed  above  into
  352.          distinct languages.
  353.  
  354.          Note:   in  the  mid-seventies  ANSI-SPARC generated  a  document
  355.          advocating  42 distinct interfaces and (potentially) 42  distinct
  356.          languages  for database management  systems!   Fortunately,  that
  357.          idea has apparently been abandoned.
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.                                     4
  371.  
  372.  
  373.  
  374.  
  375.  
  376.          R6  View Updating Rule
  377.  
  378.          Rule  6:  The DBMS includes an algorithm  at least as powerful as
  379.                    VU-1  [see  EFC3] for determining (at  view  definition
  380.                    time)  whether that view is.tuple-insertible and  tuple
  381.                    deletable,   and  whether  each  of  its   columns   is
  382.                    updatable.  It records the result of this investigation
  383.                    in the catalog.
  384.  
  385.          Note  that  a view is theoretically updatable if there  exists  a
  386.          time-independent algorithm for unambiguously determining a single
  387.          series of changes to the base relations which will have as  their
  388.          effect  precisely  the requested changes in the  view.   In  this
  389.          regard,  "update" is  intended to include insertion and deletion,
  390.          as well as modification.
  391.  
  392.          Suppose the definition  of a particular view  V  1) happens to be
  393.          expressed directly in terms of base relations; or 2) its definition
  394.          is  expanded  until it is so expressed.   This view is simple  if
  395.          its definition in terms of base relations involves no more than:
  396.  
  397.              1)  four occurrences of operators of the class:  union, outer
  398.                  union, set difference, intersection;
  399.              2)  four occurrences of operators of the class:   join,
  400.                  relational division;
  401.              3)  twice as many occurrences of the project operator as
  402.                  there are relations cited in the query or update;
  403.          and 4)  twice as many occurrences of algebraic selects as there
  404.                  are relations cited in the query or update.
  405.  
  406.          The reason that rule # 6 refers to simple views only  is that the
  407.          general question as to whether or not a view is updatable  is NOT
  408.          LOGICALLY  DECIDABLE  [HWB].  By limiting the class of  views  in
  409.          rule #6 to those defined above,  the updatability  of these views
  410.          becomes decidable -- and it should be decided by the DBMS, not by
  411.          a user!
  412.  
  413.          R7  High-level Insert, Update, and Delete
  414.  
  415.          Rule 7:   The capability of handling a base relation or a derived
  416.                    relation  as  a single operand applies  not only to the
  417.                    retrieval of data  but also to the  insertion,  update,
  418.                    and deletion of data.
  419.  
  420.          This  requirement gives the system much more scope in  optimizing
  421.          the  efficiency  of its execution-time actions.   It  allows  the
  422.          system  to determine which access paths to exploit to obtain  the
  423.          most efficient  code.   It  can  also be extremely  important  in
  424.          obtaining efficient handling of transactions across a distributed
  425.          database  In this case, the total communication costs can  easily
  426.          become enormous.  Hence, many companies wish to
  427.          costs  are  saved  by avoiding the necessity  of  transmitting  a
  428.          separate request for each record obtained from remote sites.
  429.  
  430.  
  431.  
  432.  
  433.                                     5
  434.  
  435.  
  436.  
  437.  
  438.  
  439.         R8  Physical Data Independence
  440.  
  441.         Rule 8:    Application  programs and terminal  activities  remain
  442.                    logically  unimpaired whenever any changes are made in
  443.                    either storage representations or access methods.
  444.  
  445.         To  handle this,  the DBMS must support a clear,  sharp  boundary
  446.         between the logical and semantic aspects on the one hand and  the
  447.         physical  and performance aspects of the base tables on the other
  448.         hand;  application  programs  must deal with the logical  aspects
  449.         only.   Non-relational DBMS  rarely provide complete support  for
  450.         this rule -- in fact, I know of none that do.
  451.  
  452.         R9  Logical Data Independence
  453.  
  454.         Rule 9:    Application  programs and terminal  activities  remain
  455.                    logically   unimpaired   when   information-preserving
  456.                    changes   of   any  kind  that  theoretically   permit
  457.                    unimpairment are made to the base tables.
  458.  
  459.         Two examples: (1) splitting a base R-table into two tables either
  460.         by rows using row content  or by columns  using column names,  if
  461.         primary keys are preserved in each result; (2) combining two base
  462.         R-tables  into  one  by  means  of  a  non-loss  join   (Stanford
  463.         University and MIT authors now call these joins "lossless").
  464.  
  465.         To  provide  this service whenever possible,  the  DBMS  must  be
  466.         capable  of handling inserts, updates, and deletes at least  when
  467.         algorithm VU-1 determines that such updatability is feasible (see
  468.         rule R6).  Rule R9 frequently permits  logical database design to
  469.         be dynamically changed if it appears to be necessary or desirable
  470.         -- for example, if such a change would improve performance.
  471.  
  472.         The physical and logical data independence rules permit  database
  473.         designers  for relational DBMS  to make mistakes in their designs
  474.         without the heavy penalties levied by non-relational DBMS.   This
  475.         in  turn  means  that  it is much easier to get  started  with  a
  476.         relational DBMS,  because not nearly as much performance-oriented
  477.         planning is needed prior to "blast-off".
  478.  
  479.         R10  Integrity Independence
  480.  
  481.         Rule 10:    Integrity constraints  specific   to  a  particular
  482.                     relational  database  must  be  definable  in   the
  483.                     relational  data  sublanguage and storable  in  the
  484.                     catalog (not in the application programs).
  485.  
  486.         Information  about  inadequately  identified   objects  is  NEVER
  487.         recorded  in a relational database.   To be  more  specific,  the
  488.         following two integrity rules apply to every relational database:
  489.  
  490.         1) Entity integrity
  491.            No component of a primary key is allowed to have a missing
  492.            value;
  493.  
  494.  
  495.  
  496.                                    6
  497.  
  498.  
  499.  
  500.  
  501.  
  502.          2) Referential integrity
  503.             For each distinct non-missing foreign key value in a
  504.             relational  database,  there must exist a matching primary key
  505.             value from the same domain.
  506.  
  507.          In  addition  to the two integrity rules  (entity  integrity  and
  508.          referential integrity), which apply to the base relations of each
  509.          and  every RELATIONAL DATABASE, there is a clear need to be  able
  510.          to  specify  additional integrity constraints  reflecting  either
  511.          business   policies  or  government  regulations.   Assume    the
  512.          relational model is faithfully reflected.  Then, these additional
  513.          integrity constraints are defined in terms of the high level data
  514.          sublanguage,  and the definitions are stored in the catalog  (not
  515.          in the application programs).
  516.  
  517.          If,  as sometimes happens, either business policies or government
  518.          regulations  change,  it will probably become necessary to change
  519.          the integrity constraints.  Normally, this can be accomplished in
  520.          a  fully  relational  DBMS  by changing  one  or  more  integrity
  521.          statements  stored in the catalog.   In many cases,  neither  the
  522.          application  programs nor the terminal activities  are  logically
  523.          impaired.   Non-relational  DBMS rarely support this rule as part
  524.          of  the DBMS engine (where it belongs) -- instead they depend  on
  525.          a dictionary  package  (which may or may not be present  and  can
  526.          readily be bypassed).
  527.  
  528.          Rll  Distribution Independence
  529.  
  530.          Rule 11:    A relational DBMS has distribution independence.
  531.  
  532.          By  distribution independence,  I mean that the DBMS has  a  data
  533.          sublanguage  which  enables  application  programs  and  terminal
  534.          activities to remain logically unimpaired:
  535.  
  536.               1)  when data distribution is first introduced (if the  DBMS
  537.                   originally installed manages non-distributed data only);
  538.  
  539.          and  2)  when  data  is  re-distributed   (if  the  DBMS  manages
  540.                   distributed data).
  541.  
  542.          Note that this definition is carefully worded so that even a non-
  543.          distributed DBMS can fully support rule 11.  SQL/DS, DB2, Oracle,
  544.          INGRES,  and SUPRA fully support this rule,  although each one is
  545.          either  non-distributed  or supports distributed  databases  only
  546.          partially in its present release.  This has been demonstrated  as
  547.          follows: (1)  SQL programs written to operate on  non-distributed
  548.          data  (using System R) run correctly  on distributed versions  of
  549.          that data using System R* -- the IBM San Jose Research prototype;
  550.          (2) the distributed INGRES project has shown  the same capability
  551.          for the QUEL language of INGRES.
  552.  
  553.          It  is  important  to  distinguish  distributed  processing  from
  554.          distributed data.   In the former case,  work (i.e., programs) is
  555.          transmitted to the data;  in the latter case, data is transmitted
  556.          to  the  work.   Many  non-relational  DBMS  support  distributed
  557.  
  558.  
  559.                                     7
  560.  
  561.  
  562.  
  563.  
  564.  
  565.          processing,  but  not distributed data.   The only  systems  that
  566.          support  the concept of making all the distributed data aopear to
  567.          be local are relational DBMS  (these are prototypes right now).
  568.  
  569.          In  the  case of a distributed relational DBMS,  a single  trans-
  570.          action  may  straddle several remote sites.   Such  straddling is
  571.          managed  entirely  under  the covers -- the system  may  have  to
  572.          execute  recovery at multiple sites.   Each program  or  terminal
  573.          activity  treats the totality of data as if it were all local  to
  574.          the  site where the application program or terminal  activity  is
  575.          being executed.
  576.  
  577.          A  fully  relational  DBMS  that  does  not  support  distributed
  578.          databases  has  the capability of being extended to provide  that
  579.          support,  while   leaving  application  programs   and   terminal
  580.          activities  logically unimpaired -- both at the time  of  initial
  581.          distribution and whenever later re-distribution is  made.   There
  582.          are 4 important reasons why relational DBMS enjoy this advantage:
  583.          decomposition  flexibility  in deciding how to deploy  the  data,
  584.          recomposition  power  of the relational operators when  combining
  585.          the results  of sub-transactions  executed  at  different  sites,
  586.          economy  of transmission resulting from the fact that there  need
  587.          not  be a request message  sent  for each record  to be retrieved
  588.          from  any remote site,  analyzability of intent  (due to the very
  589.          high level of relational languages) for vastly improved
  590.          optimization of execution.
  591.  
  592.          R12  Non-Subversion Rule
  593.  
  594.          Rule 12:   If a relational system has a low level (single-record-
  595.                     at-a-time) language,  that low level cannot be used to
  596.                     subvert or bypass the integrity rules and  constraints
  597.                     expressed  in  the higher  level  relational  language
  598.                     (multiple-records-at-a-time).
  599.  
  600.          In the relational approach,   preservation of integrity  is  made
  601.          independent  of  logical  data  structure  to  achieve  integrity
  602.          independence (see rule R10).
  603.  
  604.          Remark:   Rulc  R12   is  extremely difficult  for a  "relational
  605.          pretender"  like Cullinet's IDMS/R and ADR's Datacom/DB  to obey,
  606.          because  such  a system already supports an interface  below  the
  607.          relational integrity constraint interface.   Even if the DBMS had
  608.          an  authorization  feature   which   would  permit  only  certain
  609.          specified programs to use the low level language,  that would not
  610.          be enough  (and neither DBMS goes even this far, at this time).
  611.  
  612.          In fact,  in talking with vendors of "relational pretenders",  it
  613.          is quite obvious that they had not given this matter a thought !
  614.  
  615.  
  616.  
  617.  
  618.  
  619.  
  620.  
  621.  
  622.                                     8
  623.  
  624.  
  625.  
  626.  
  627.  
  628.          3.  Conclusion
  629.  
  630.          As stressed in section 2 (Non-Claims),  there is no contention in
  631.          this article  that evaluating a candidate DBMS with regard to its
  632.          degree of fidelity to the relational model  is all  that needs to
  633.          be done,  when trying  to determine  which is the best DBMS for a
  634.          particular company or portion thereof.  However,  I do claim that
  635.          this fidelity evaluation  is  today  an essential,  and  possibly
  636.          crucial, part of the choosing process.  There are many clear (and
  637.          obvious)  relationships  between user needs in  general  and  the
  638.          twelve rules cited above.  This applies whether we are discussing
  639.          productivity  of  application  programmers,  direct access to the
  640.          databases by end users, ease of database design and installation,
  641.          vastly  improved control of database integrity,  or protection of
  642.          the firm's investment in application programs and in the training
  643.          of their employees.
  644.  
  645.  
  646.          4.  References
  647.  
  648.  
  649.          [EFCl]   E. F. Codd,   "Missing Information  (Applicable and
  650.                   Inapplicable) in Relational Databases", Report EFC-4,
  651.                   The Relational Institute, San Jose, CA,  Feb 21, 1986
  652.  
  653.          [EFC2]   E. F. Codd, "More Commentary on Missing Information in
  654.                   Relational Databases",  Report EFC-14,  The Relational
  655.                   Institute, San Jose, CA,  January 12, 1987
  656.  
  657.          [EFC3]   E. F. Codd, "View Updatability: Algorithm VU-1",
  658.                   Report EFC-15, The Relational Institute, San Jose, CA
  659.                   January 22, 1987
  660.  
  661.          [HWB]    H. W. Buff, "The View Update Problem is Undecidable",
  662.                   private communication from the Swiss Reinsurance Co.,
  663.                   Zurich, Switzerland  August 4, 1986
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.                                                    (revised June 2, 1987)
  682.  
  683.  
  684.  
  685.                                     9
  686.  
  687.