13 правил Кодда

  1. Реляционная СУБД должна быть способна полностью управлять базой данных через ее реляционные возможности.
  2. Информационное правило - вся информация в реляционной БД (включая имена таблиц и столбцов) должна определяться строго как значения в таблицах.
  3. Гарантированный доступ - любое значение в реляционной БД должно быть гарантированно доступно для использования через комбинацию имени таблицы, значения первичного ключа и имени столбца
  4. Поддержка пустых значений (null value) - СУБД должна уметь работать с пустыми значениями (неизвестными или неиспользованными значениями), в отличие от значений по умолчанию и независимо для любых доменов.
  5. Онлайновый реляционный каталог - описание БД и ее содержания должны быть представлены на логическом уровне как таблицы, к которым можно применять запросы, используя язык базы данных.
  6. Исчерпывающий язык управления данными - по крайней мере, один из поддерживаемых языков должен иметь четко определенный синтаксис и быть всеобъемлющим. Он должен поддерживать описание структуры данных и манипулирование ими, правила целостности, авторизацию и транзакции.
  7. Правило обновления представлений (views) - все представления, теоретически обновляемые, могут быть обновлены через систему.
  8. Вставка, обновление и удаление - СУБД поддерживает не только запрос на отбор данных, но и вставку, обновление и удаление
  9. Физическая независимость данных - на программы-приложения и специальные программы логически не влияют изменения физических методов доступа к данным и структур хранилищ данных.
  10. Логическая независимость данных - на программы-приложения и специальные программы логически не влияют, в пределах разумного, изменения структур таблиц.
  11. Независимость целостности - язык БД должен быть способен определять правила целостности. Они должны сохраняться в онлайновом справочнике, и не должно существовать способа их обойти.
  12. Независимость распределения - на программы-приложения и специальные программы логически не влияет, первый раз используются данные или повторно.
  13. Неподрывность - невозможность обойти правила целостности, определенные через язык базы данных, использованием языков низкого уровня

Самое интересное, что ни одна из современных СУБД не соблюдает эти правило от и до. Причина этому — сложность правил.

Комменты

  • 01.07.2010 01:27:47 Maxim Antonoff:
    Ну вот! это первый тестовый коммент. Посмотрим - будет ли спам ...
  • 07.06.2012 09:52:26 Алекс:
    Всё и всегда упирается только в одно - отсутствие должного качества проектирования систем, в том числе и СУБД. Выбрали ошибочно ключевые концепции, но половина проекта уже позади, уже есть отлаженные модули. Ни одна фирма не выбросит готовый код (РАБОТАЮЩИЙ КОД!!!) и не рискнёт начать весь проект с начала. А НАДО БЫ!!! Это надо уметь делать, если вы действительно хотите достичь хорошего качества продукта!!! Это, кстати, не моя мысль. Это немного изменённая мысль Альберта Эйнштейна. Я с ней просто согласен.
  • 17.07.2012 00:38:46 Maxim Antonov:
    Алекс, к чему бы это здесь? Я тоже согласен, что выбросить работающий (хоть и ужасно) код очень трудно с точки зрения бизнеса - сталкивался с этим на практике. Но причем тут правила Кодда?