数据完整性
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
.数据完整性
————————————————————————————————作者:————————————————————————————————日期:
备课记录(2011)
讲授章节(题目)互动
教学目标(2分)1、完整性的概念
2、使用约束
3、使用规则
4、使用默认使用identity列
5、例子
6、作业
重点标注
提问2至4
人
问题:
1、互动
2、鼓励学
生操作
演示
3、设计题
目,学
生分组
4、检验学
习掌握
效果
回顾旧知识(2分)复习,提问,测试,演示什么是数据的完整性
新课教学(围绕目标展开设计)
(4分) 必须讲的理论知识
1.完整性的概念
数据完整性是指存储在数据库中的数据正确无误,并且相关数据具有一致性。数据库中的数据是否完整,关系到数据库系统能否真实的反映现实世界。例如,在“学生”表中学生的学号要具有惟一性,学生性别只能是男或女,其所在系部、专业、班级必须是存在的,否则,就会出现数据库中的数据与现实不符的现象。如果数据库中总存在不完整的数据,那么它就没有存在的必要了,因此实现数据的完整性在数据库管理系统中十分重要。
2.分类
根据数据完整性机制所作用的数据库对象和范围不同,数据完整性可分:
●实体完整性
●域完整性
●引用完整性
●用户定义完整性
1)实体完整性
实体是指表中的记录(行),一个实体就是表中的一条记录。实体完整性要求在表中不能存在完全相同的记录,而且每条记录都要具有一个非空且不重复的主键值。这样就可以保证数据所代表的任何事物都不存在重复、可以区分。例如,学生表中的学号必须惟一,并且不能为空,这样就可以保证学生记录的惟一性。实现实体完整性的方法主要有主键约束、惟一索引、惟一约束和指定IDENTITY属性。
(2)域完整性
也称为列完整性,指定一个数据集对某一个列是否有效和确定是否允许为空值。域完整性要求向表中指定列输入的数据必须具有正确的数据类型、格式以及有效的数据范围。例如,假设现实中学生的成绩为百分制,则在“课程注册”表中,对成绩列输入数据时,不能出现字符,也不能输入小于0或大于100的
数值。实现域完整性的方法主要有CHECK约束、外键约束、默认约束、非空约束、规则以及在建表时设置的数据类型。
(3)引用完整性
引用完整性又称为参照完整性。引用完整性是指作用于有关联的两个或两个以上的表,通过使用主键和外键或主键和唯一键之间的关系,使表中的键值在所有表中保持一致。s
实现引用完整性的方法主要有外键约束。
(4)用户定义的完整性
用户定义的完整性是应用领域需要遵守的约束条件,其允许用户定义不属于其他任何完整性分类的特定业务规则。所有的完整性类型都支持用户定义完整性。
使用约束
1.约束
约束是SQL Server提供的自动强制数据完整性的一种方法,它是通过定义列的取值规则来维护数据的完整性。
2. 约束的类型:
(1)PRIMARY KEY(主键)约束
主键约束用来强制数据的实体完整性,它是在表中定义一个主键来唯一标识表中的每行记录。主键约束有如下特点:每个表中只能有一个主键,主键可以是一列,也可以是多列的组合;主键值必须唯一并且不能为空,对于多列组合的主键,某列值可以重复,但列的组合值必须唯一。
(2)UNIQUE(唯一)约束
唯一约束用来强制数据的实体完整性,它主要用来限制表的非主键列中不允许输入重复值。唯一约束有如下特点:一个表中可以定义多个唯一约束;每个唯一约束可以定义到一列上,也可以定义到多列上;空值可以出现在某列中一次。
3)NOT NULL(非空)约束
非空约束用来强制数据的域完整性,它用于设定某列值不能为空。如果指定某列不能为空,则在进行插入记录时,此列必须要插入数据。
(4)CHECK(检查)约束
检查约束用来强制数据的域完整性,它使用逻辑表达式来限制表中的列可以接受哪些数据值。
(5)DEFAULT(默认)约束
默认约束用来强制数据的域完整性,它为表中某列建立一个默认值,当用户插入记录时,如果没有为该列提供输入值,则系统会自动将默认值赋给该列。默认值可以是常量、内置函数或表达式。使用默认约束可以提高输入记录的速度。
(6)FOREIGN KEY(外健)约束
外键是指一个表中的一列或列组合,它虽不是该表的主键,但却是另一个表的主键。通过外键约束可以为相关联的两个表建立联系,实现数据的引用完整性,维护两表之间数据的一致性关系。
3.列约束与表约束
当约束被定义于某个表的一列时称为列约束,定义于某个表的多列时称为表约束。当一个约束中必须包含一个以上的列时,必须使用表约束。
4. 创建主键约束
1)使用SQL Server Management Studio 创建
(1)启动SQL Server Management Studio,在“对象资源管理器”窗口中,依次展开数据库、student、表节点,选择“教学计划”表,单击右
键,在弹出的快捷菜单中选择“修改”命令,打开“表设计器”对话
框。。
(2)在“表设计器”对话框中,选择需要设为主键的字段,如果需要选择多个字段时,可以按住Ctrl键,同时用鼠标单击每个要选择的
字段。在此,依次选择课程号、专业代码和专业学级字段。
(3)选好字段后,右键单击选择的某个字段,在弹出的快捷菜单中选择“设置主键”命,
(4)执行命令后,在作为主键的字段前有一个钥匙样图标。也可以
在选择好字段后,单击工具栏中的“钥匙”工具按钮,设置主键(5)设置主键完成。
创建表时创建主键:
create table man4
(
id int constraint py primary key )
包含两个列的主键
create table student
(
sid int,
kid int,
constraint pyq primary
key(sid,kid)
)
在已有的表中创建主键
alter table man5