Interested Article - 12 правил Кодда

12 правил Кодда ( англ. Codd’s 12 rules ) — 13 правил (в данном случае исчисление начинается с 0), которым должна удовлетворять каждая реляционная система управления базами данных (РСУБД) .

Предложены английским математиком Эдгаром Коддом (Edgar Codd) в 1985 году в статьях в журнале ComputerWorld .

В действительности правила столь строги, что все популярные так называемые РСУБД не соответствуют многим критериям.

Правила

Правило 0: Основное правило ( Foundation Rule ):

Система, которая рекламируется или позиционируется как РСУБД, должна быть способной управлять базами данных, используя исключительно свои реляционные возможности.

Правило 1: Информационное правило ( The Information Rule ):

Вся информация в реляционной базе данных на логическом уровне должна быть явно представлена единственным способом: значениями в таблицах .

Правило 2: Гарантированный доступ к данным ( Guaranteed Access Rule ):

В реляционной базе данных каждое отдельное (атомарное) значение данных должно быть логически доступно с помощью комбинации имени таблицы, имени столбца и значения первичного ключа .

Правило 3: Систематическая поддержка отсутствующих значений ( Systematic Treatment of Null Values ):

Неизвестные, или отсутствующие значения NULL , отличные от любого известного значения, должны поддерживаться для всех типов данных при выполнении любых операций. Например, для числовых данных неизвестные значения не должны рассматриваться как нули, а для символьных данных — как пустые строки.

Правило 4: Доступ к словарю данных в терминах реляционной модели ( Active On-Line Catalog Based on the Relational Model ):

Словарь данных должен сохраняться в форме реляционных таблиц, и СУБД должна поддерживать доступ к нему при помощи стандартных языковых средств, тех же самых, которые используются для работы с реляционными таблицами, содержащими пользовательские данные.

Правило 5: Полнота подмножества языка ( Comprehensive Data Sublanguage Rule ):

Система управления реляционными базами данных должна поддерживать хотя бы один реляционный язык, который
(а) имеет ,
(б) может использоваться как интерактивно , так и в прикладных программах,
(в) поддерживает операции определения данных, определения представлений, манипулирования данными ( интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback ).

Правило 6: Возможность изменения представлений ( View Updating Rule ):

Каждое представление должно поддерживать все операции манипулирования данными, которые поддерживают реляционные таблицы: операции выборки, вставки, изменения и удаления данных.

Правило 7: Наличие высокоуровневых операций управления данными ( High-Level Insert, Update, and Delete ):

Операции вставки, изменения и удаления данных должны поддерживаться не только по отношению к одной строке реляционной таблицы, но и по отношению к любому множеству строк.

Правило 8: Физическая независимость данных ( Physical Data Independence ):

Приложения не должны зависеть от используемых способов хранения данных на носителях, от аппаратного обеспечения компьютеров, на которых находится реляционная база данных.

Правило 9: Логическая независимость данных ( Logical Data Independence ):

Представление данных в приложении не должно зависеть от структуры реляционных таблиц. Если в процессе нормализации одна реляционная таблица разделяется на две, представление должно обеспечить объединение этих данных, чтобы изменение структуры реляционных таблиц не сказывалось на работе приложений.

Правило 10: Независимость контроля целостности ( Integrity Independence ):

Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных.

Правило 11: Независимость от расположения ( Distribution Independence ):

База данных может быть распределённой, может находиться на нескольких компьютерах, и это не должно оказывать влияния на приложения. Перенос базы данных на другой компьютер не должен оказывать влияния на приложения.

Правило 12: Согласование языковых уровней ( The Nonsubversion Rule ):

Если используется низкоуровневый язык доступа к данным, он не должен игнорировать правила безопасности и правила целостности, которые поддерживаются языком более высокого уровня.

Примечания

  1. Dave Voorhis. (англ.) . University of Derby (15 сентября 2015). Дата обращения: 6 сентября 2018. Архивировано из 14 августа 2018 года.
  2. Codd, E. F. Is Your DBMS Really Relational? // ComputerWorld , 14. October 1985
  3. Codd, E. F. Does Your DBMS Run By the Rules? // ComputerWorld , 21. October 1985

Литература

Источник —

Same as 12 правил Кодда