我做网站啦 圆通导航,固原网络营销网络推广方案,中国建设银行官网站预定红念币,南京做南京华美整容网站文章目录 引言5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器 引言
数据库的完整性是指数据的正确性和相容性。 正确性#xff1a;符合现实语义、反映当前实际情况。性别必须为男或女。 相容性#xff1a;数据库同一对象在不同关系表中… 文章目录 引言5.1 实体完整性5.2 参照完整性5.3 用户定义的完整性5.4 完整性约束命名子句5.6 触发器 引言
数据库的完整性是指数据的正确性和相容性。 正确性符合现实语义、反映当前实际情况。性别必须为男或女。 相容性数据库同一对象在不同关系表中的数据是符合逻辑的。学生所在院系必须是已成立的。数据库完整性和安全性的区别 完整性防止数据库中存在不符合语义的数据安全性防止数据库被恶意破坏和非法存取。为了维护完整性DBMS必须实现如下功能 1.提供定义完整性约束的机制 2. 提供完整性检查的方法 3. 进行违约处理 5.1 实体完整性
定义方法
create table student(sno char(9) primary key, // 在列级定义主码...
);
create table student(sno char(9) ...primary key(sno) // 在表级定义主码
);
create table sc(sno char(9) cno char(10)...primary key(sno,cno) // 多属性主码只能在表级定义主码
);
// 非创建表时创建主码
alter table student
add constraint PK_STU
primary key clustered (sno asc)完整性检查 时机执行insert或对主码列update时 方法全表扫描一一检查可建立索引减少时间违约处理 1主码值是否唯一不唯一则拒绝insert或update 2主码的各个属性是否为NULL有一个为空就拒绝insert或update
5.2 参照完整性
定义 Foreign key(cno) references course(cno)
CREATE TABLE SC
(Sno CHAR(9) NOT NULL
Cno CHAR(4) NOT NULL
Grade SMALLINT
PRIMARY KEY (Sno Cno)/*表级实体完整性*/
FOREIGN KEY (Sno) REFERENCES Student(Sno)
/*表级定义参照完整性*/
FOREIGN KEY (Cno) REFERENCES Course(Cno)
/*表级定义参照完整性*/
);完整性检查 违约处理 on delete/update 是对被参照表的属性说明的也就是主键表被参照表的主键列值更新后如何影响外键表的对应记录。 特别的NO ACTION是指如果外键表存在对应记录主键表不能执行动作。
5.3 用户定义的完整性 定义 1属性上的约束(列级) // not null
CREATE TABLE SC
Sno CHAR(9) NOT NULL
Cno CHAR(4) NOT NULL
Grade SMALLINT NOT NULL
PRIMARY KEY (Sno Cno);
// unique not null
CREATE TABLE DEPT
(Deptno NUMERIC(2)
Dname CHAR(9) UNIQUE NOT NULL
Location CHAR(10)
PRIMARY KEY (Deptno)
);
// check
CREATE TABLE Student
(Sno CHAR(9) PRIMARY KEY
Sname CHAR(8) NOT NULL
Ssex CHAR(2) CHECK (Ssex IN (男女’) ) ,
/*性别属性Ssex只允许取男或女 */
Sage SMALLINT,
Sdept CHAR(20)
);2元组上的约束 元组级的限制表级约束可以设置不同属性之间的取值的相互约束条件 CREATE TABLE Student
(Sno CHAR(9)
Sname CHAR(8) NOT NULL
Ssex CHAR(2)
Sage SMALLINT
Sdept CHAR(20) default 18 // 列默认
PRIMARY KEY (Sno)
CHECK (Ssex女 OR Sname NOT LIKE Ms.%)
/*定义了元组中Sname和 Ssex两个属性值之间的约束条件*/
)检查时机 INSERT元组或UPDATE属性值时 RDBMS自动检查 违约处理 不满足则拒绝执行
5.4 完整性约束命名子句
给约束命名之后方便删除等 命名约束 修改约束 alter table student add constraint df_sex default (男) for sex5.6 触发器
格式 两个内置临时表很关键 注意书上代码和实际数据库软件的实现不一样。