Целостность данных делится на следующие 3 категории. (1) Целостность домена: относится к валидности входных данных столбца, допустимо ли его быть нулевым значением. Целостность домена обеспечивается ограничением типа (установкой типа данных столбца), формата (ограничениями и правилами CHECK) или диапазоном возможных значений (ограничениями FOREIGN KEY, ограничениями CHECK, определениями по умолчанию, NOT NULL определениями и правилами). Например, результаты тестов учеников должны быть от 0~100, а пол может быть только «мужским» или «женским». (2) Целостность сущности: означает обеспечение уникальности всех строк в таблице. Целостность сущности требует, чтобы все строки таблицы имели уникальный идентификатор. Этот уникальный идентификатор может представлять собой столбец или комбинацию нескольких столбцов, называемых первичным ключом. То есть первичный ключ в таблице должен принимать уникальное значение для всех строк. Методы обеспечения целостности сущности: индексы, ограничения UNIQUE, ограничения PRIMARY KEY или атрибуты IDENTITY. Например, значение SNO (номер студента) в таблице студентов должно быть уникальным, оно уникально идентифицирует студента, представленного соответствующей записью, а дублирование номера студента является незаконным. Имя ученика нельзя использовать в качестве основного ключа, так как вполне возможно, что двое студентов могут иметь одинаковое имя и фамилию. (3) Референтная целостность: это обеспечение референтной связи между основным ключевым словом (цитируемой таблицей) и внешним ключевым словом (таблица цитирования). Это требует поддержания согласованности для двух и более таблицных данных. Значение внешнего ключа связывает записи в таблице опор, содержащие этот ключ, с записями из таблицы, которые совпадают первичный ключ с внешним ключом. При введении, изменении или удалении записей определённые отношения между таблицами сохраняются с учётом целостности, обеспечивая согласованность значений ключей во всех таблицах. Эта согласованность требует, чтобы несуществующие значения не ссылались, и если значение ключа меняется, все ссылки на это значение меняются последовательно по всей базе данных. Референтная целостность основана на взаимосвязи между внешним и первичным ключом. Например, номер курса курса студенческого учебного курса должен быть действительным, а внешний ключ CNO (номер курса) таблицы оценок будет отсылать к первичному ключу CNO (номер курса) в таблице курсов (расписание курсов) для обеспечения целостности данных. Целостность домена, целостность сущности и референтная целостность реализуются соответственно на столбцах, строках и таблицах. Целостность данных может быть реализована в любое время, но при реализации целостности данных на таблице с существующими данными система должна сначала проверить, соответствует ли данные в таблице целостности реализации, и только если данные в таблице соответствуют целостности реализации, целостность данных может быть успешно реализована. |