БД находится в целостном состоянии, если он соответствует определенным для нее ограничениям целостности.
Синтаксис:
CONSTRAINT constraint_name PRIMARY KEY (column_list)
Пример:
CONSTRAINT DepPrk PRIMARY KEY (DepName, FacNO)
Распространенными типами данных SQL являются:
Строка фиксированной длины (CHR(n)).
Строка переменной длины (VARCHAR(n)).
Целые числа (INTEGER, INT, BIGINT, SMALLINT)/.
Числа с фиксированной запятой (NUMERIC (p,s)).
Числа с плавающей запятой (REAL, FLOAT)
Дата (DATE) и время (TIME).
Пример:
CREATE TABLE TEACHER (
TchNO INTEGER NOT NULL,
Name VARCHAR(50) NOT NULL,
Post VARCHAR(30) NOT NULL
HireDate DATE NULL,
Salary NUMERIC (5,2));
Пример:
Синтаксис:
[CONSTRAINT constraint_name] UNIQUE (column_list)
Пример:
CONSTRAINT TchUnq UNIQUE (Name, Post, HireDate)
Синтаксис:
Column_name data_type DEFAULT default-value
Пример:
CREATE TABLE TEACHER (
TchNO INTEGER NOT NULL,
Name VARCHAR(50) NOT NULL,
Post VARCHAR(30) DEFAULT ’NOT DEFINED’
HireDate DATE NULL,
Salary NUMERIC (5,2) DEFAULT 0);
Пример:
CREATE TABLE SGROUP (
GrpNO INTEGER NOT NULL,
Num CHAR(3) NOT NULL,
Course CHAR(1) DEFAULT ’1’CONSTRAINT Crs_chk
CHECK (Course IN (’1’,’2’,’3’,’4’,’5’)));
Синтаксис:
CREATE DOMAIN name [AS] data_type [DEFAULT] value
[CONSTRAINT name] CHECK (condition);
Пример:
CREATE DOMAIN Fund_Domain AS NUMERIC (5,2)
CHECK (VALUE BETWEEN 0 AND 10000.00);
-- Определение столбцов с использованием этого домена
Salary Fund_Domain
Commission Fund_Domain
Синтаксис:
CONSTRAINT constr_name FOREIGN KEY (column_list_1) REFERENCES table_name [column_list_2]
[ON DELETE {RESTRICT|CASCADE|SET NULL}SET DEFAULT}]
[ON UPDATE {RESTRICT|CASCADE|SET NULL}SET DEFAULT}];
Целостность связей между атрибутами представляется заданием условия, которому должны удовлетворять совокупность атрибутов одного или нескольких отношений.
Такие условия специфицируются триггерами.
Выделяют такие динамические ограничения:
ситуационно-ориентированные;
операционно-ориентированные.
CREATE TRIGGER Person_MaritalState
FOR INSERT, UPDATE ON PERSON
WHEN (OLD.MarSt=’холост’ AND NEW.marSt IN (‘разведен’,‘вдовец’)) OR
(OLD.MarSt=‘женат’ AND NEW.marSt = ‘холост’) OR
(OLD.MarSt=‘разведен’ AND NEW.MarSt IN (‘холост’,’вдовец’)) OR
(OLD.MarSt=‘вдовец’ AND NEW.MarSt IN (‘холост’,‘разведен’))
begin
ROLLBACK TRANSACTION
end;
CREATE TRIGGER Marriage_Insert_Check ON MARRIAGE
FOR INSERT
WHEN (MARRIAGE.Husb = PERSON.Name AND
PERSON.MarSt = ‘женат’ ) OR
(MARRIAGE.Wife = PERSON.Name AND
PERSON.MarSt = "married")
begin
ROLLBACK TRANSACTION
end;
Семантические ограничения целостности или, как еще говорят, прикладные правила целостности (бизнес-правила) – это правила, которые характеризуют ограничения, действующие в ПО.
Поддерживаются фразой CONSTRAINT, триггерами, хранимыми процедурами и функциями.
Тразакция – это последовательность предложений SQL, которые рассматриваются как единое целое.
Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть