Раздел СУБД: 12 правил Кодда: что такое система управления базами данных

СУБД (система управления базами данных), на английском DBMS (database management system).

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

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

Индекс - это средство, обеспечивающее быстрый доступ к строкам таблицы на основе значений одного или нескольких столбцов. В индексе хранятся значения данных и указатели на строки, где эти данные встречаются. Значения данных в индексе располагаются в убывающем или возрастающем порядке, чтобы СУБД могла быстро найти требуемое значение.

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

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

  1. Правило информации. Вся информация в базе данных должна быть представлена исключительно на логическом уровне и только одним способом – в виде значений, содержащихся в таблицах.
  2. Правило гарантированного доступа. Логический доступ ко всем и каждому элементу данных (атомарному значению) в реляционной базе данных должна обеспечиваться путем использования комбинации имени таблицы, первичного ключа и имени столбца. Правило 2 указывает на роль первичного ключа при поиске информации в базе данных.Имя таблицы позволяет найти требуемую таблицу, имя столбца позволяет найти требуемый столбец, а первичный ключ позволяет найти строку, содержащую искомый элемент данных.
  3. Правило поддержки недействительных значений. В настоящей реляционной базе данных должна быть реализована поддержка недействительных(отсутствующих) значений (NULL), которые отличаются от строки символов нулевой длины, строки пробельных символов и от нуля или любого другого числа т.е. для числовых данных неизвестные значения не должны рассматриваться как нули, а для символьных данных — как пустые строки.
  4. Правило динамического каталога. Правило 4 гласит, что реляционная база данных должна сама себя описывать. Другими словами, база данных должна содержать набор системных таблиц(словарь данных), описывающих структуру самой базы данных.
  5. Правило исчерпывающего подъязыка данных. СУБД должна поддерживать хотя бы один реляционный язык, который имеет линейный синтаксис,может использоваться как интерактивно, так и в прикладных программах, поддерживает операции определения данных, определения представлений, манипулирования данными (интерактивные и программные), ограничители целостности, управления доступом и операции управления транзакциями (begin, commit и rollback).
  6. Возможность модификации представлений (View Updating Rule). Правило 6 касается представлений, которые являются виртуальными таблицами, позволяюцими показывать различным пользователям различные фрагменты структуры базы данных.
  7. Правило добавления, обновления и удаления. Возможность работать с отношением как с одним операндом должна существовать не только при чтении данных, но и при добавлении, обновлении и удалении данных. Правило 7 акцентирует внимание на том, что базы данных по своей природе ориентированы на множества. Оно требует, чтобы операции вставки, модификации и удаления данных поддерживались не только по отношению к одной строке реляционной таблицы, но по отношению к любому множеству строк.
  8. Физическая независимость данных (Physical Data Independence). Приложения не должны зависеть от используемых способов хранения данных на носителях, от аппаратного обеспечения компьютеров, на которых находится реляционная база данных.
  9. Логическая независимость данных (Logical Data Independence). Прикладные программы и утилиты для работы с данными должны на логическом уровне оставаться нетронутыми при внесении в базовые таблицы любых изменений, которые теоретически позволяют сохранить нетронутыми содержащиеся в этих таблицах данные. <note>Правила 8 и 9 означают отделение пользователя и прикладной программы от низкоуровневой реализации базы данных.</note>
  10. Независимость контроля целостности (Integrity Independence). Вся информация, необходимая для поддержания целостности, должна находиться в словаре данных т.е. храниться в каталоге, а не в прикладной программе. Язык для работы с данными должен выполнять проверку входных данных и автоматически поддерживать целостность данных.
  11. Дистрибутивная независимость (Distribution Independence). Реляционная СУБД не должна зависеть от потребностей конкретного клиента. Правило 11 гласит, что язык базы данных должен обеспечивать возможность работы с распределенными данными, расположенными на других компьютерных системах. Перенос базы данных на другой компьютер не должен оказывать влияния на приложения.
  12. Согласование языковых уровней (The Nonsubversion Rule). Если в реляционной системе есть низкоуровневой язык (обрабатывающий одну запись за один раз), то должна отсутствовать возможность использования его для того, чтобы обойти правила и условия целостности, выраженные на реляционном языке высокого уровня (обрабатывающем несколько записей за один раз). Правило 12 предотвращает использование других возможностей для работы с базой данных помимо языка базы данных, поскольку это может нарушить ее целостность.

PQ VPS сервера в 38+ странах.

PQ VPS сервера в 38+ странах.

📌 Для тестирования скриптов, установщиков VPN, Python ботов рекомендуем использовать надежные VPS на короткий срок. Если вам нужна помощь с более сложными задачами, вы можете найти фрилансера, который поможет с настройкой. Узнайте больше о быстрой аренде VPS для экспериментов и о фриланс-бирже для настройки VPS, WordPress. 📌

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!