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

Доктор Эдгар Ф. Кодд после обширных исследований реляционной модели систем баз данных разработал двенадцать собственных правил, которым, по его мнению, база данных должна подчиняться, чтобы считаться настоящей реляционной базой данных.

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

Правило 1: Правило информации

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

Правило 2: Правило гарантированного доступа

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

Правило 3: систематическая обработка нулевых значений

Значения NULL в базе данных должны обрабатываться систематически и единообразно. Это очень важное правило, потому что NULL можно интерпретировать как одно из следующих: данные отсутствуют, данные неизвестны или данные неприменимы.

Правило 4: Активный онлайн-каталог

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

Правило 5: Правило всеобъемлющего подъязыка данных

Доступ к базе данных можно получить только с помощью языка с линейным синтаксисом, который поддерживает определение данных, манипулирование данными и операции управления транзакциями. Этот язык можно использовать напрямую или с помощью какого-либо приложения. Если база данных разрешает доступ к данным без помощи этого языка, то это считается нарушением.

Правило 6. Просмотр правила обновления.

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

Правило 7: высокоуровневое правило вставки, обновления и удаления

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

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

Данные, хранящиеся в базе данных, не должны зависеть от приложений, обращающихся к базе данных. Любое изменение физической структуры базы данных не должно влиять на то, как к данным обращаются внешние приложения.

Правило 9: логическая независимость данных

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

Правило 10: Независимость от добросовестности

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

Правило 11: Независимость распределения

Конечный пользователь не должен видеть, что данные распределены по разным местам. У пользователей всегда должно создаваться впечатление, что данные находятся только на одном сайте. Это правило считается основой распределенных систем баз данных.

Правило 12: Правило не подрывной деятельности

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