数据库第五章杜伟章优质PPT.ppt
- 文档编号:14647899
- 上传时间:2022-10-23
- 格式:PPT
- 页数:77
- 大小:861.50KB
数据库第五章杜伟章优质PPT.ppt
《数据库第五章杜伟章优质PPT.ppt》由会员分享,可在线阅读,更多相关《数据库第五章杜伟章优质PPT.ppt(77页珍藏版)》请在冰豆网上搜索。
学生所在的系必须是学校开设的系;
完整性:
是否真实地反映现实世界完整性:
是否真实地反映现实世界2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计44数据库完整性数据库完整性数据库完整性数据库完整性数据的完整性和安全性是两个不同概念数据的完整性和安全性是两个不同概念数据的完整性数据的完整性防止数据库中存在不符合语义的数据,也就是防止防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据数据库中存在不正确的数据防范对象:
不合语义的、不正确的数据防范对象:
不合语义的、不正确的数据数据的安全性数据的安全性保护数据库防止恶意的破坏和非法的存取保护数据库防止恶意的破坏和非法的存取防范对象:
非法用户和非法操作防范对象:
非法用户和非法操作2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计55为维护数据库的完整性,为维护数据库的完整性,DBMS必须:
必须:
1.提供定义完整性约束条件的机制提供定义完整性约束条件的机制2.提供完整性检查的方法提供完整性检查的方法3.违约处理违约处理2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计66CREATETABLE(,|)补充补充1.定义完整性约束定义完整性约束上列为创建基本表的最简单形式,还可以对表上列为创建基本表的最简单形式,还可以对表进一步定义,如主键、空值的设定,使数据库进一步定义,如主键、空值的设定,使数据库用户能够根据应用的需要对基本表的定义做出用户能够根据应用的需要对基本表的定义做出更为精确和详尽的规定。
更为精确和详尽的规定。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计77在在SQLSERVER中,对于基本表的约束分为中,对于基本表的约束分为列约列约束束和和表约束表约束。
列约束是对某一个特定列的约束,包含在列列约束是对某一个特定列的约束,包含在列定义中,直接跟在该列的其他定义之后,用定义中,直接跟在该列的其他定义之后,用空格空格分隔,不必指定列名;
分隔,不必指定列名;
表约束与列定义相互独立,不包括在列定义表约束与列定义相互独立,不包括在列定义中,通常用于对多个列一起进行约束,与列中,通常用于对多个列一起进行约束,与列定义用定义用,分隔,定义表约束时必须指出要分隔,定义表约束时必须指出要约束的那些列的名称。
完整性约束的基本语约束的那些列的名称。
完整性约束的基本语法格式为:
法格式为:
CONSTRAINT约束名:
约束名:
约束不指定名称时,系统会给定一个约束不指定名称时,系统会给定一个名称。
名称。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计88约束类型:
约束类型:
在定义完整性约束时必须指定完整性约束的类在定义完整性约束时必须指定完整性约束的类型。
型。
在在SQLSERVER中可以定义五种类型的完整性约束,下中可以定义五种类型的完整性约束,下面分别加以介绍:
面分别加以介绍:
(1)NULL/NOTNULL是否允许该字段的值为是否允许该字段的值为NULL。
NULL值不是值不是0也不是空白,更不是填入字符也不是空白,更不是填入字符串“串“NULL”,而是表示“不知道”、“不确定”或,而是表示“不知道”、“不确定”或“没有数据”的意思。
“没有数据”的意思。
当某一字段的值一定要输入才有意义的时候,则可以设当某一字段的值一定要输入才有意义的时候,则可以设置为置为NOTNULL。
如主键列就不允许出现空值,否则就失去了唯一标识一如主键列就不允许出现空值,否则就失去了唯一标识一条记录的作用条记录的作用只能只能用于定义列约束,用于定义列约束,其语法格式如下:
其语法格式如下:
CONSTRAINTNULL|NOTNULL2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计99例例1:
建立一个:
建立一个S表,对表,对SNO字段进行字段进行NOTNULL约约束束。
USESTUDENTCREATETABLES(SNOCHAR(10)CONSTRAINTS_CONSNOTNULL,SNVARCHAR(20),AGEINT,SEXCHAR
(2)DEFAULT男男,DEPTVARCHAR(20);
当当SNO为空时,系统给出错误信息,无为空时,系统给出错误信息,无NOTNULL约束时,系统缺省为约束时,系统缺省为NULL。
其中其中S_CONS为指定的约束名称,当约束名称省略时为指定的约束名称,当约束名称省略时,系统自动产生一个名字。
如下列功能同上,只是省,系统自动产生一个名字。
如下列功能同上,只是省略约束名称。
略约束名称。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1010USESTUDENTCREATETABLES(SNOCHAR(10)NOTNULL,SNVARCHAR(20),AGEINT,SEXCHAR
(2)DEFAULT男男,DEPTVARCHAR(20);
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1111
(2)UNIQUE约束约束UNIQUE约束用于指明基本表在某一列或多个约束用于指明基本表在某一列或多个列的组合上的取值必须唯一。
列的组合上的取值必须唯一。
定义了定义了UNIQUE约束的那些列称为约束的那些列称为唯一键唯一键,系统自动为唯一键建立唯一索引,从而保证了系统自动为唯一键建立唯一索引,从而保证了唯一键的唯一性。
唯一键的唯一性。
唯一键允许为空,但系统为保证其唯一性,最唯一键允许为空,但系统为保证其唯一性,最多只可以出现一个多只可以出现一个NULL值。
值。
UNIQUE既可用于列约束,也可用于表约束。
既可用于列约束,也可用于表约束。
UNIQUE用于定义列约束用于定义列约束时,时,其语法格式如下其语法格式如下:
CONSTRAINTUNIQUE2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1212例例2:
建立一个S表,定义表,定义SN为唯一键为唯一键。
USESTUDENTCREATETABLES(SNOCHAR(6),SNCHAR(8)CONSTRAINTSN_UNIQUNIQUE,SEXCHAR
(2),AGENUMERIC
(2);
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1313例例3建立一个建立一个S表,定义表,定义SN+SEX为唯为唯一键。
一键。
USESTUDENTCREATETABLES(SNOCHAR(5),SNCHAR(8),SEXCHAR
(2),CONSTRAINTS_UNIQUNIQUE(SN,SEX);
系统为系统为SN+SEX建立唯一键,确保同一建立唯一键,确保同一性别的学生没有重名。
性别的学生没有重名。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1414(3)PRIMARYKEY约束约束PRIMARYKEY约束用于定义基本表的主键,约束用于定义基本表的主键,起唯一标识作用,其值不能为起唯一标识作用,其值不能为NULL,也不能,也不能重复,以此来保证实体的完整性。
重复,以此来保证实体的完整性。
PRIMARYKEY与与UNIQUE约束类似,通过约束类似,通过建立唯一索引来保证基本表在主键列取值的唯建立唯一索引来保证基本表在主键列取值的唯一性,但它们之间存在着很大的区别:
一性,但它们之间存在着很大的区别:
在一个基本表中只能定义一个在一个基本表中只能定义一个PRIMARYKEY约束,但可定义多个约束,但可定义多个UNIQUE约束;
约束;
对于指定为对于指定为PRIMARYKEY的一个列或的一个列或多个列的组合,其中任何一个列都不能出现多个列的组合,其中任何一个列都不能出现空值,而对于空值,而对于UNIQUE所约束的唯一键,所约束的唯一键,则允许为空。
则允许为空。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1515注意:
不能为同一个列或一组列既定义注意:
不能为同一个列或一组列既定义UNIQUE约束,又定义约束,又定义PRIMARYKEY约约束。
束。
PRIMARYKEY既可用于列约束,也可用既可用于列约束,也可用于表约束。
于表约束。
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1616PRIMARYKEY用于定义列约束时,其语法格用于定义列约束时,其语法格式如下:
式如下:
CONSTRAINTPRIMARYKEY例例4建立一个建立一个S表,定义表,定义SNO为为S的主键的主键USESTUDENTCREATETABLES(SNOCHAR(5)NOTNULLCONSTRAINTS_PRIMPRIMARYKEY,SNCHAR(8),AGENUMERIC
(2);
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1717PRIMARYKEY用于定义用于定义表约束时表约束时,即将某些即将某些列的组合定义为主键,其语法格式如下:
列的组合定义为主键,其语法格式如下:
CONSTRAINTPRIMARYKEY()例例5建立一个建立一个SC表,定义表,定义SNO+CNO为为SC的主键的主键USESTUDENTCREATETABLESC(SNOCHAR(5)NOTNULL,CNOCHAR(5)NOTNULL,SCORENUMERIC(3),CONSTRAINTSC_PRIMPRIMARYKEY(SNO,CNO);
2022年10月23日星期日2022年10月23日星期日数据库原理与设计数据库原理与设计1818(4)FOREIGNKEY约束约束FOREIGNKEY约束指定某一个列或一组列作约束指定某一个列或一组列作为外部键,其中,包含外部键的表称为从表,包为外部键,其中,包含外部键的表称为从表,包含外部键所引用的主键或唯一键的表称主表。
含外部键所引用的主键或唯一键的表称主表。
系统保证从表在外部键上的取值要么是主表中某系统保证从表在外部键上的取值要么是主表中某一个主键值或唯一键值,要么取空值。
以此保证一个主键值或唯一键值,要么取空值。
以此保证两个表之间的连接,确保了实体的参照完整性。
两个表之间的连接,确保了实体的参照完整性。
FOREIGNKE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 第五 章杜伟章