《数据完整性及实现优秀PPT.ppt》由会员分享,可在线阅读,更多相关《数据完整性及实现优秀PPT.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第5 章 数据完整性及实现本章重点:本章重点:数据完整性数据完整性数据完整性实现数据完整性实现默认值默认值5.1 数据完整性数据完整性v5.1.1 5.1.1 数据完整性概述数据完整性概述v5.1.2 5.1.2 数据完整性的分类数据完整性的分类5.1.1 5.1.1 数据完整性概述数据完整性概述 数据完整性(数据完整性(Data IntegrityData Integrity)是指存储在数据库中的)是指存储在数据库中的数据的一样性、精确性和牢靠度。换言之,实施数据完整性的数据的一样性、精确性和牢靠度。换言之,实施数据完整性的目的就是为了确保数据库中数据的质量。目的就是为了确保数据库中数据的质
2、量。数据完整性的设计是评估数据库设计好坏的一个重要指标。数据完整性的设计是评估数据库设计好坏的一个重要指标。在在SQL ServerSQL Server系统中,在设计数据库和设计表时,设计者就要系统中,在设计数据库和设计表时,设计者就要确认每列对应哪些数据是正确的,运用什么方法可以不会有错确认每列对应哪些数据是正确的,运用什么方法可以不会有错误的数据存到列中。数据完整性为我们供应了这样的保障,其误的数据存到列中。数据完整性为我们供应了这样的保障,其类型有类型有4 4种。种。5.1.1 5.1.1 数据完整性概述数据完整性概述5.1.2 数据完整性的分类 1.1.域完整性(域完整性(Domain
3、 IntegrityDomain Integrity)要求存入表中指)要求存入表中指定列的数据确定有效。域完整性通常是用来检验某列的定列的数据确定有效。域完整性通常是用来检验某列的数据的有效性。数据的有效性。2.2.实体完整性(实体完整性(Entity IntegrityEntity Integrity)要求表中全部)要求表中全部行有一个标识符(主键),其值不能空值(行有一个标识符(主键),其值不能空值(NULLNULL),且),且能唯一地标识对应的行。能唯一地标识对应的行。3.3.参照完整性(参照完整性(Referential IntegrityReferential Integrity)是
4、指添加、)是指添加、修改或删除数据行时,两个表的主键和外键的数据的一修改或删除数据行时,两个表的主键和外键的数据的一样性。样性。4.4.用户自定义完整性(用户自定义完整性(User-Defined IntegrityUser-Defined Integrity)是用户自行定义的,不属于其它完整性的全部规则。是用户自行定义的,不属于其它完整性的全部规则。5.1.2 5.1.2 数据完整性的分类数据完整性的分类 5.2 数据完整性实现数据完整性实现v5.2.1 5.2.1 域完整性的实现域完整性的实现v5.2.2 5.2.2 实体完整性的实现实体完整性的实现v5.2.3 5.2.3 参照完整性的实
5、现参照完整性的实现5.2.1 5.2.1 域完整性的实现域完整性的实现1.1.利用企业管理器创建、删除利用企业管理器创建、删除CHECK CHECK 约束约束操作步骤如下:操作步骤如下:(1 1)启动)启动SQL ServerSQL Server企业管理器。企业管理器。(2 2)绽开)绽开“SQL Server“SQL Server组组”,绽开,绽开“数据库数据库”,选择运用的数据库,选择运用的数据库,再绽开再绽开“表表”。(3 3)选择创建约束的表,单击鼠标右键,打开快捷菜单。)选择创建约束的表,单击鼠标右键,打开快捷菜单。(4 4)选择)选择“设计表设计表”菜单吩咐。菜单吩咐。(5 5)单
6、击鼠标右键,打开快捷菜单。)单击鼠标右键,打开快捷菜单。(6 6)选择)选择“CHECK“CHECK 约束约束”菜单吩咐,进入菜单吩咐,进入“属性属性”窗口。窗口。(7 7)选择)选择“CHECK“CHECK约束约束”选项卡,命名约束名,输入约束表达式。选项卡,命名约束名,输入约束表达式。5.2.1 5.2.1 域完整性的实现域完整性的实现2.2.利用利用CREATECREATE吩咐创建吩咐创建CHECKCHECK约束约束SQLSQL吩咐格式:吩咐格式:CREATE .CREATE .(Column_name Datatype NOT NULL|NULL (Column_name Dataty
7、pe NOT NULL|NULL DEFAULT Constraint_Expression DEFAULT Constraint_Expression Check_name CHECK(Logical_Expression)Check_name CHECK(Logical_Expression)吩咐功能:吩咐功能:创建一个表,并定义数据完整性。创建一个表,并定义数据完整性。ExampleExamplevCREATE TABLE SC(Sno CHAR(6)NOT NULL FOREIGN KEY REFERENCES S(Sno),Cno CHAR(6)NOT NULL,Grade Smal
8、lint default 0,CONSTRAINT k1 CHECK(Grade BETWEEN 0 AND 100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Cno)REFERENCES C(Cno)CREATE TABLE SC(Sno CHAR(6)NOT NULL,Cno CHAR(6)NOT NULL,Grade Smallint CHECK(Grade BETWEEN 0 AND 100),CONSTRAINT pk PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES S(Sno),FOREIGN KEY(Cno
9、)REFERENCES C(Cno)5.2.1 5.2.1 域完整性的实现域完整性的实现,吩咐改、删除吩咐改、删除checkcheck3.3.利用利用SQLSQL吩咐修改吩咐修改CHECKCHECK约束约束SQLSQL吩咐格式:吩咐格式:ALTER TABLE ALTER TABLE ADD CONSTRAINT Check_name ADD CONSTRAINT Check_name CHECK (Logical_expression)CHECK (Logical_expression)吩咐功能:修改表结构,并可以定义数据完整性。吩咐功能:修改表结构,并可以定义数据完整性。4.4.利用利用S
10、QLSQL语句删除语句删除CHECKCHECK约束约束SQLSQL吩咐格式:吩咐格式:ALTER TABLE ALTER TABLE DROP CONSTRAINT Check_name DROP CONSTRAINT Check_name 吩咐功能:吩咐功能:修改表结构,并可以删除数据完整性。修改表结构,并可以删除数据完整性。ALTER TABLE 表名 ADD 新列名 数据类型 完整性约束 DROP 完整性约束名 DROP COLUMN 列名 ALTER COLUMN 列名 数据类型新增的属性不能定义为新增的属性不能定义为“NOT NULL”因为关系的原因为关系的原来元组在新列上的值取空值
11、。来元组在新列上的值取空值。语句例子,可以写在一行中语句例子,可以写在一行中vALTER TABLE 学生学生 vADD 入学入学时间时间 DatetimevALTER TABLE 学生学生 vALTER COLUMN 诞诞生日期生日期 DatetimevALTER TABLE 学生学生 vDROP COLUMN 所属系所属系语句例子语句例子 DROP TABLEDROP TABLE语句语句删除基本表删除基本表DROP TABLE语句删除基本表当某个表不再须要时,可以删除。一般格式:DROP TABLE 表名例:DROP TABLE S 5.2.2 5.2.2 实体完整性的实现实体完整性的实现
12、1.1.利用企业管理器创建利用企业管理器创建PRIMARY KEYPRIMARY KEY约束约束 操作步骤如下:操作步骤如下:(1 1)启动)启动SQL ServerSQL Server企业管理器。企业管理器。(2 2)绽开)绽开“SQL Server“SQL Server组组”,绽开,绽开“数据库数据库”,选择运用的数,选择运用的数据库,再绽开据库,再绽开“表表”。(3 3)选择要创建约束的表,单击鼠标右键,打开快捷菜单。)选择要创建约束的表,单击鼠标右键,打开快捷菜单。(4 4)选择)选择“设计表设计表”菜单吩咐,进入菜单吩咐,进入“设计表设计表”窗口。窗口。(5 5)选择要创建约束的列(
13、学号),单击鼠标右键,打开快捷)选择要创建约束的列(学号),单击鼠标右键,打开快捷菜单。菜单。(6 6)选择)选择“索引索引/键键”菜单吩咐,进入菜单吩咐,进入“属性属性”窗口。窗口。(7 7)选择)选择“索引索引/键键”选项卡,首先,单击选项卡,首先,单击“新建新建”按钮,然按钮,然后,命名索引名,选择索引列,及索引依次,选择索引文件组,最后,命名索引名,选择索引列,及索引依次,选择索引文件组,最终,单击终,单击“关闭关闭”按钮,返回按钮,返回“设计表设计表”窗口。窗口。5.2.2 5.2.2 实体完整性的实现实体完整性的实现2.2.利用企业管理器创建利用企业管理器创建UNIQUEUNIQU
14、E约束约束 操作步骤如下:操作步骤如下:(1 1)启动)启动SQL ServerSQL Server企业管理器。企业管理器。(2 2)绽开)绽开“SQL Server“SQL Server组组”,绽开,绽开“数据库数据库”,选择运用的数据,选择运用的数据库,再绽开库,再绽开“表表”。(3 3)选择要创建约束的表(,单击鼠标右键,打开快捷菜单。)选择要创建约束的表(,单击鼠标右键,打开快捷菜单。(4 4)选择)选择“设计表设计表”菜单吩咐,进入菜单吩咐,进入“设计表设计表”窗口。窗口。(5 5)选择要删除约束的列,单击鼠标右键,打开快捷菜单。)选择要删除约束的列,单击鼠标右键,打开快捷菜单。(6
15、 6)选择)选择“索引索引/键键”菜单吩咐,进入菜单吩咐,进入“属性属性”窗口。窗口。(7 7)选择)选择“索引索引/键键”选项卡,首先,单击选项卡,首先,单击“新建新建”按钮,然后,按钮,然后,命名索引名,选择索引列及索引依次,选择索引文件组,选择创建命名索引名,选择索引列及索引依次,选择索引文件组,选择创建UNIQUEUNIQUE前的复选框,最终,单击前的复选框,最终,单击“关闭关闭”按钮,返回按钮,返回“设计表设计表”窗口。窗口。5.2.2 5.2.2 实体完整性的实现实体完整性的实现3.3.利用企业管理器删除利用企业管理器删除PRIMARY KEYPRIMARY KEY约束、删除约束、
16、删除UNIQUEUNIQUE约束约束操作步骤如下:操作步骤如下:(1 1)启动)启动SQL ServerSQL Server企业管理器。企业管理器。(2 2)绽开)绽开“SQL Server“SQL Server组组”,绽开,绽开“数据库数据库”,选择运用的数据,选择运用的数据库,再绽开库,再绽开“表表”。(3 3)选择要创建约束的表,单击鼠标右键,打开快捷菜单。)选择要创建约束的表,单击鼠标右键,打开快捷菜单。(4 4)选择)选择“设计表设计表”菜单吩咐,进入菜单吩咐,进入“设计表设计表”窗口。窗口。(5 5)选择要删除约束的列,单击鼠标右键,打开快捷菜单。)选择要删除约束的列,单击鼠标右键
17、,打开快捷菜单。(6 6)选择)选择“索引索引/键键”菜单吩咐,进入菜单吩咐,进入“属性属性”窗口。窗口。(7 7)首先,选择)首先,选择“索引索引/键键”选项卡,然后,单击选项卡,然后,单击“删除删除”按钮,按钮,最终在单击最终在单击“关闭关闭”按钮,返回按钮,返回“设计表设计表”窗口。窗口。5.2.2 5.2.2 实体完整性的实现实体完整性的实现 修改主键修改主键5.利用利用SQL语句创建、删除语句创建、删除PRIMARYKEY和和UNIQUE约束约束SQL吩咐格式:吩咐格式:ALTERTABLEDROPCONSTRAINTCheck_name吩咐功能:修改表结构,并删除数据完整性。吩咐功
18、能:修改表结构,并删除数据完整性。6.利用利用SQL语句修改语句修改PRIMARYKEY约束约束SQL吩咐格式:吩咐格式:ALTERTABLETable_nameADDCONSTRAINTconstraint_namePRIMARYKEYCLUSTERED|NONCLUSTERED(column,.n)吩咐功能:修改表结构,并可增加数据完整性。吩咐功能:修改表结构,并可增加数据完整性。vALTER TABLE teststu ADD CONSTRAINT firstcheck CHECK (testsex=女女 or testsex=男男 )5.2.3 5.2.3 参照完整性的实现参照完整性的
19、实现 利用菜单方利用菜单方式建关系图式建关系图 1.1.利用企业管理器定义表间的参照完整性利用企业管理器定义表间的参照完整性 操作步骤如下:操作步骤如下:(1 1)启动)启动SQL ServerSQL Server企业管理器。企业管理器。(2 2)在)在“限制台根书目限制台根书目”窗口,绽开窗口,绽开“SQL Server“SQL Server组组”,绽开绽开“数据库数据库”,选择运用的数据库,再绽开,选择运用的数据库,再绽开“表表”。(3 3)在)在“限制台根书目限制台根书目”窗口,选择窗口,选择“表表”,单击鼠标右,单击鼠标右键,打开快捷菜单。键,打开快捷菜单。(4 4)在快捷菜单中,选择
20、)在快捷菜单中,选择“新建表新建表”菜单吩咐,进入菜单吩咐,进入“设设计表计表”窗口。窗口。(5 5)在)在“设计表设计表”窗口,设计表的结构。窗口,设计表的结构。5.2.3 5.2.3 参照完整性的实现参照完整性的实现 (6 6)重复()重复(3 3)-(5 5)的操作,在)的操作,在“设计表设计表”窗口,设计表的窗口,设计表的结构。结构。(7 7)在)在“限制台根书目限制台根书目”窗口,选择窗口,选择“关系图关系图”,单击鼠标右,单击鼠标右键,打开快捷菜单。键,打开快捷菜单。(8 8)在快捷菜单中,选择)在快捷菜单中,选择“新建数据库关系图新建数据库关系图”菜单吩咐,进菜单吩咐,进入入“新
21、关系图新关系图”窗口,并打开窗口,并打开“创建数据库关系的向导创建数据库关系的向导”。(9 9)在)在“创建数据库关系的向导创建数据库关系的向导”各窗口,依次添加要建立关各窗口,依次添加要建立关系的表,返回系的表,返回“新关系图新关系图”窗口。窗口。(1010)在)在“新关系图新关系图”窗口,首先,选择外键列,将其拖到主窗口,首先,选择外键列,将其拖到主键列处,进入键列处,进入“创建关系创建关系”窗口。窗口。(1111)在)在“创建关系创建关系”窗口,首先,确定窗口,首先,确定“关系名关系名”,然后,然后,选择其它参数,最终,单击选择其它参数,最终,单击“确定确定”按钮,返回按钮,返回“新关系
22、图新关系图”窗口,窗口,结束创建参照完整性的操作。结束创建参照完整性的操作。5.2.3 5.2.3 参照完整性的实现参照完整性的实现 语句建关系语句建关系2.2.利用利用SQLSQL语句创建参照完整性语句创建参照完整性SQLSQL吩咐格式:吩咐格式:CREATE TABLE CREATE TABLE (1 类型类型(长度长度)缺省值缺省值列级约束列级约束 ,2 数据类型数据类型 缺省值缺省值列级约束列级约束.,UNIQUEUNIQUE(列名(列名,列名,列名.),PRIMARY KEYPRIMARY KEY(列名(列名,列名,列名),FOREIGN KEY FOREIGN KEY(列名(列名,
23、列名,列名)REFERENCES REFERENCES 表名(列名表名(列名,列名,列名),CKECK(CKECK(条件条件)吩咐功能:创建表结构,并创建数据完整性。吩咐功能:创建表结构,并创建数据完整性。5.2.3 5.2.3 参照完整性的实现参照完整性的实现3.3.利用利用SQLSQL语句修改参照完整性语句修改参照完整性SQLSQL吩咐格式:吩咐格式:ALTER TABLE ALTER TABLE ADDCONSTRAINT Constraint_name ADDCONSTRAINT Constraint_name FOREIGN KEY(Column ,.n )FOREIGN KEY(C
24、olumn ,.n )吩咐功能:修改数据完整性。吩咐功能:修改数据完整性。5.3 默认值默认值v5.3.1 5.3.1 创建修改默认值约束创建修改默认值约束v5.3.2 5.3.2 修改默认值约束修改默认值约束5.3.1 5.3.1 创建默认值约束创建默认值约束创建默认值约束创建默认值约束SQLSQL吩咐格式:吩咐格式:CREATE TABLE CREATE TABLE CONSTRAINT constraint_name CONSTRAINT constraint_name DEFAULT constraint_expression DEFAULT constraint_expression
25、 吩咐功能:创建表,并创建默认值约束。吩咐功能:创建表,并创建默认值约束。vCREATE TABLE table4test2v(col1 char(10)default 2015)5.3.2 5.3.2 修改默认值约束修改默认值约束修改默认值约束修改默认值约束SQLSQL吩咐格式:吩咐格式:ALTER TABLE ALTER TABLE ADDCONSTRAINT Constraint_name ADDCONSTRAINT Constraint_name DEFAULT constraint_expression DEFAULT constraint_expression 吩咐功能:修改表结构,并创建默认值约束。吩咐功能:修改表结构,并创建默认值约束。ALTER TABLE teststuADD CONSTRAINT coldefaultdefault 2013 for testname添加新列,有默认值添加新列,有默认值vALTER TABLE teststu v add testname2 char(10)vdefault 2012 themegallery 东北师范高校东北师范高校