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

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

Ответы

Ответ 1

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

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

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

Общие типы ограничений:

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

Ответ 2

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

Целостность данных относится к действительности данных. Действительно ли ваши данные действительны? Представлены ли ваши данные тем, к чему вы их разработали?

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

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

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

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

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

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

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

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

Ограничения FOREIGN KEY - Microsoft

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

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

Удачи!;)

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

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

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

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

Ответ 8

В SQL существует в основном 4 типа основных ограничений

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

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

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

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

Ответ 9

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