Каковы ограничения базы данных?

Что такое четкое определение ограничения базы данных? Почему ограничения важны для базы данных? Какие типы ограничений?

9 ответов

Решение

Ограничения являются частью определения схемы базы данных.

Ограничение обычно связано с таблицей и создается с CREATE CONSTRAINT или же CREATE ASSERTION Оператор SQL

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

Общие виды ограничений:

  • не нуль - каждое значение в столбце не должно быть NULL
  • уникальные - значения в указанных столбцах должны быть уникальными для каждой строки таблицы
  • первичный ключ - значения в указанных столбцах должны быть уникальными для каждой строки в таблице и не быть NULL; обычно каждая таблица в базе данных должна иметь первичный ключ - он используется для идентификации отдельных записей
  • внешний ключ - значения в указанных столбцах должны ссылаться на существующую запись в другой таблице (через ее первичный ключ или другое уникальное ограничение)
  • check - задано выражение, которое должно иметь значение true, чтобы ограничение было выполнено

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

Целостность данных относится к достоверности данных. Ваши данные действительны? Ваши данные отражают то, для чего вы их разработали?

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

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

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

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

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

Есть много способов сделать это, но в основном они сводятся к:

  • Ограничения внешнего ключа, вероятно, являются наиболее используемым ограничением и гарантируют, что ссылки на другие таблицы разрешены, только если на самом деле существует целевая строка для ссылки. Это также делает невозможным разрыв такого отношения, удаляя ссылочную строку, создавая мертвую ссылку.
  • Проверка ограничений может гарантировать, что в определенном столбце разрешены только определенные значения. Вы можете создать ограничение, разрешив только слово "Желтый" или "Синий" в столбце VARCHAR. Все остальные значения приведут к ошибке. Получить идеи для использования проверочных ограничений проверить sys.check_constraints просмотреть в примере базы данных AdventureWorks
  • Правила в SQL Server можно использовать повторно. Проверяйте ограничения (позволяет поддерживать синтаксис из одного места и упростить развертывание ограничений в других базах данных).

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

ЗАРУБЕЖНЫЕ КЛЮЧЕВЫЕ УСЛОВИЯ - Microsoft

Ограничение внешнего ключа - w3schools

ПРОВЕРЬТЕ Ограничения

Удачи!;)

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

  1. Первичный ключ: который однозначно идентифицирует данные. Если это ограничение было указано для определенного столбца, то мы не можем вводить повторяющиеся данные в этом столбце.
  2. Проверить: такой как NOT NULL, Здесь мы можем указать, какие данные мы можем ввести для этого конкретного столбца, а какие нет для этого столбца.
  3. Внешний ключ: ссылки внешнего ключа на строку другой таблицы. Таким образом, данные, указанные в одной таблице из другой таблицы, всегда доступны для ссылочной таблицы.

Ограничения могут использоваться для обеспечения определенных свойств данных. Простым примером является ограничение столбца int значениями [0-100000]. Это введение выглядит хорошо.

Ограничения определяют, какие значения допустимы для данных в базе данных. Например, вы можете принудительно установить, что значение не равно нулю (NOT NULL ограничение), или что оно существует как уникальное ограничение в другой таблице (FOREIGN KEY ограничение), или что он уникален в этой таблице (UNIQUE ограничение или, возможно, PRIMARY KEY ограничение в зависимости от ваших требований). Более общие ограничения могут быть реализованы с использованием CHECK ограничения.

Документация MSDN для ограничений SQL Server 2008, вероятно, является лучшим началом для вас.

База данных - это компьютеризированное логическое представление концептуальной (или бизнес) модели, состоящей из набора неформальных бизнес-правил. Эти правила представляют собой понятное пользователю значение данных. Поскольку компьютеры понимают только формальные представления, бизнес-правила не могут быть представлены непосредственно в базе данных. Они должны быть сопоставлены с формальным представлением, логической моделью, которая состоит из набора ограничений целостности. Эти ограничения - схема базы данных - являются логическим представлением в базе данных бизнес-правил и, следовательно, понимают смысл данных в СУБД. Из этого следует, что если СУБД не знает и / или не применяет полный набор ограничений, представляющих бизнес-правила, она имеет неполное понимание того, что означают данные, и, следовательно, не может гарантировать (а) их целостность, предотвращая повреждение, (б) целостность выводов, которые она из этого делает (то есть результаты запроса) - это еще один способ сказать, что СУБД в лучшем случае неполна.

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

"Старый класс ошибок" Фабиана Паскаля

Существует два основных типа ограничений в SQL:

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

  • Ограничение ключа: если значение ключевого атрибута в новом кортеже уже существует в другом кортеже в отношении

  • Ссылочная целостность: если значение внешнего ключа в новом кортеже ссылается на значение первичного ключа, которого нет в ссылочном отношении

  • Целостность объекта: если значение первичного ключа равно нулю в новом кортеже

  1. UNIQUE ограничение (из которых PRIMARY KEY ограничение является вариантом). Проверяет, что все значения данного поля являются уникальными по всей таблице. Это X-осевое ограничение (записи)

  2. CHECK ограничение (из которых NOT NULL ограничение является вариантом). Проверяет, выполняется ли определенное условие для выражения над полями одной и той же записи. Это Y-осевое ограничение (поля)

  3. FOREIGN KEY ограничение. Проверяет, что значение поля найдено среди значений поля в другой таблице. Это Zосевое ограничение (таблицы).

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

Другие вопросы по тегам