Целостность данных — это фундаментальное свойство базы данных, гарантирующее точность, непротиворечивость и надежность хранимой информации на протяжении всего её жизненного цикла. Это комплекс мер, обеспечивающих корректность данных при любых операциях.
• Механизмами транзакций (ACID)
• Журналированием изменений
• Регулярными бэкапами
PRIMARY KEY (NOT NULL + UNIQUE)
Пример:
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY
)
FOREIGN KEY REFERENCES
Пример:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT REFERENCES Customers(CustomerID)
)
CHECK, DEFAULT, NOT NULL
Пример:
CREATE TABLE Products (
Price DECIMAL(10,2) CHECK (Price > 0),
Category VARCHAR(20) DEFAULT 'Other'
)
• Хранимые процедуры
• Триггеры
• Пользовательские функции
Декларативные ограничения (оптимальный выбор):
ALTER TABLE Employees
ADD CONSTRAINT CHK_Salary
CHECK (Salary >= MinimumWage)
Триггеры (для сложных сценариев):
CREATE TRIGGER CheckInventory
ON Orders AFTER INSERT
AS
BEGIN
IF EXISTS (SELECT * FROM inserted i
JOIN Products p ON i.ProductID = p.ProductID
WHERE i.Quantity > p.Stock)
BEGIN
RAISERROR('Недостаточно товара на складе', 16, 1)
ROLLBACK TRANSACTION
END
END
Транзакции (атомарность изменений):
BEGIN TRANSACTION
BEGIN TRY
UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1
UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 2
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
END CATCH
Уровень столбца:
Уровень таблицы:
Уровень базы данных:
Уровень приложения:
Нормализация:
Денормализация (осознанная):
Аудит изменений:
CREATE TABLE AuditLog (
ChangeID INT IDENTITY,
TableName VARCHAR(100),
ChangeType CHAR(1),
ChangeDate DATETIME DEFAULT GETDATE()
)
Целостность данных — это комплексный подход к проектированию и обслуживанию базы данных, обеспечивающий её надежность и соответствие бизнес-правилам. Грамотное использование ограничений, транзакций и архитектурных решений позволяет создать систему, в которой данные остаются точными и непротиворечивыми при любых операциях. Профессиональные разработчики уделяют целостности данных первостепенное внимание, так как это фундамент стабильной работы любой информационной системы.