实验2.3用户自定义完整性

合集下载

实验二 表操作和数据完整性定义

实验二 表操作和数据完整性定义
回答问题:id列被称为什么列?
答:序号列,代表当前是第几列。
(2)执行语句:Select * from借阅
记录id列中现有哪些值:
答:1,2
(3)写出delete语句,删除“借阅”表中的第一条记录;
deletefrom借阅
whereid=1;
(4)写出truncate table语句,删除“借阅”表中全部记录。
2. 用SSMS向“图书”和“读者”表中分别添加2条记录。
3.用insert语句向“借阅”表中添加2条记录。
INSERTINTO[dbo].[借阅]
([借书证号]期])
VALUES
(111111
,1
,'2012/11/1'
,'2012/12/1')
GO
4.执行下面的update语句,说明该语句的作用是:
不能:
原因:视图或函数'credit_of_student'不可更新,因为修改会影响多个基表。
update credit_of_student set credit=5 where studentno='08050203';
可以
实验总结(结论或问题分析):
这次比较难,因为没有提前预习导致在做的过程中进度比较慢,虽然按时完成了实验内容但也认识到提前预习的重要性,最后还是完成了任务,掌握用SSMS和create table语句创建表与定义完整性约束;巩固insert、update、delete语句的使用;掌握数据库导入、导出操作和数据库关系图的创建;熟练掌握索引与视图的创建和应用。
聚簇索引PK__student__07020F21
9.在teaching数据库中完成视图操作

2022年武汉科技大学信息管理与信息系统专业《数据库概论》科目期末试卷A(有答案)

2022年武汉科技大学信息管理与信息系统专业《数据库概论》科目期末试卷A(有答案)

2022年武汉科技大学信息管理与信息系统专业《数据库概论》科目期末试卷A(有答案)一、填空题1、设某数据库中有商品表(商品号,商品名,商品类别,价格)。

现要创建一个视图,该视图包含全部商品类别及每类商品的平均价格。

请补全如下语句: CREATE VIEW V1(商品类别,平均价格)AS SELECT商品类别,_____FROM商品表GROUP BY商品类别;2、____________和____________一起组成了安全性子系统。

3、某事务从账户A转出资金并向账户B转入资金,此操作要么全做,要么全不做,为了保证该操作的完整,需要利用到事务性质中的_____性。

4、设有关系模式R(A,B,C)和S(E,A,F),若R.A是R的主码,S.A是S的外码,则S.A的值或者等于R中某个元组的主码值,或者______取空值,这是规则,它是通过______和______约束来实现的。

5、关系系统的查询优化既是关系数据库管理系统实现的关键技术,又是关系系统的优点。

因为,用户只要提出______,不必指出 ______。

6、关系数据库中基于数学的两类运算是______________和______________。

7、在SQL Server 2000中,某数据库用户User在此数据库中具有对T 表数据的查询和更改权限。

现要收回User对T表的数据更改权,下述是实现该功能的语句,请补全语句。

_____UPDATE ON T FROM User;8、在RDBMS中,通过某种代价模型计算各种查询的执行代价。

在集中式数据库中,查询的执行开销主要包括______和______代价。

在多用户数据库中,还应考虑查询的内存代价开销。

9、数据仓库主要是供决策分析用的______,所涉及的数据操作主要是______,一般情况下不进行。

10、在SELECT命令中进行查询,若希望查询的结果不出现重复元组,应在SEL ECT语句中使用______保留字。

计算机科学导论(第4版)习题答案-第5、6章

计算机科学导论(第4版)习题答案-第5、6章

第5章算法与复杂性习题一、选择题1. B2. D3. C4. A5. B6. B7. D8.B9.C 10.A11.A 12.C 13.A 14.A二、简答题1.什么是算法,算法的特性有哪些?答:“算法(Algorithm)是一组明确的、可以执行的步骤的有序集合,它在有限的时间内终止并产生结果”。

算法的特性有:(1) 有穷性(可终止性):一个算法必须在有限个操作步骤内以及合理的有限时间内执行完成。

(2) 确定性:算法中的每一个操作步骤都必须有明确的含义,不允许存在二义性。

(3) 有效性(可执行性):算法中描述的操作步骤都是可执行的,并能最终得到确定的结果。

(4) 输入及输出:一个算法应该有零个或多个输入数据、有1个或多个输出数据。

2.什么是算法的时间复杂度和空间复杂度,如何表示?答:时间复杂度是与求解问题规模、算法输入相关的函数,该函数表示算法运行所花费的时间。

记为,T(n),其中,n代表求解问题的规模。

算法的空间复杂度(Space complexity)度量算法的空间复杂性、即执行算法的程序在计算机中运行所占用空间的大小。

简单讲,空间复杂度也是与求解问题规模、算法输入相关的函数。

记为,S(n),其中,n代表求解问题的规模。

时间复杂度和空间复杂度同样,引入符号“O”来表示T(n)、S(n)与求解问题规模n之间的数量级关系。

3.用图示法表示语言处理的过程。

答:语言处理的过程如图所示:4.简述算法设计的策略。

答:作为实现计算机程序实现时解决问题的方法,算法研究的内容是解决问题的方法,而不是计算机程序的本身。

一个优秀的算法可以运行在比较慢的计算机上,但一个劣质的算法在一台性能很强的计算机上也不一定能满足应用的需要,因此,在计算机程序设计中,算法设计往往处于核心地位。

要想充分理解算法并有效地应用于实际问题,关键是对算法的分析。

通常可以利用实验对比分析、数学方法来分析算法。

实验对比分析很简单,两个算法相互比较,它们都能解决同一问题,在相同环境下,一般就会认为哪个算法的速度快这个算法性能更好。

实验2.3用户自定义完整性

实验2.3用户自定义完整性
实验截图
(2) 加入规则 R2,确保插入的记录的 sage 值在 1 到 100 之间,并绑定到 sage 属性上。 实验代码
实验截图
-5-
不同的关系数据库系统根据其应用环境的不同,往往需要一些特殊的约束条 件。用户自定义的完整性即是针对某个特定关系数据库的约束条件,它反映某 一具体应用所涉及的数据必须满足的语义要求。 它主要包括: (1)域完整性(Domain Integrity) [1] 域完整性是指数据库中的列必须满足某种特定的数据类型或约束。域约束 是最常见的用户自定义完整性约束,当有新数据插入到数据库中,系统可以按 照定义进行关系属性取值是否正确的检测。其中,约束又包括取值范围精度等 规定。表中的 CHECK FOREIGN KEY 约束和 DEFAULT NOT NULL 定义都属于域完整 性的范畴。 [2] 现在的 RDBMS 中,一般都有域完整性检查功能。SQL Server 提供了定义和 检验这类完整性的机制,以便用统一的系统方法来处理它们。而不是用应用程 序来承担这一功能。其他的完整性类型都支持用户定义的完整性。 [3] 一个属性能否取空值一般由语义决定,也是域约束的内容之一。 (2)其他用户自定义完整性 不同的关系数据库系统根据其应用环境的不同,往 往还需要一些特殊的约束条件。其他类型的用户自定义的完整性即是针对某个 特定关系数据库的约束条件,它反映某个具体应用所涉及的数据必须满足的语 义要求。 2)SQL 中的约束机制 约束主要包括如下两种。 静态约束:对静态对 约束是反映数据库状态合理性的约束,如实体完整性。 动态约束:对动态对 约束是反映数据库状态变迁的约束,如触发器。 SQL 中用 于属性约束方面的有 NOT NULL、CHECK 等子句;而用于全局约束方面的有 CREATE ASSERTION、CREATE RULE 等语句 3)一般的规则组成 规则一般是由规则标识(可默认)以及规则语句组成。规则语句由约束作用的 数据对象、约束定义(如断言 Assertion)、触发条件以及违反规则时的响应动 作购成。 4)规则的一般分类 类型 属性级 元组级 关系级 静态 类型、格式、值域、空值 元组的各个属性 之间的取值限制 实体、引用统计完整性函数依赖 动态 属性/值改变 元组值修 改时各属性间的约束 关系变化的前后一致性 5)自定义数据类型和规则 (1)如果多个列使用同一类型的约束,或在一些特殊的情况下,通过自定义的 数据类型和规则就为数据库设计提供了更高层 抽象,如工资数据类型肯定比 smallmoney 能建立更多的特征及更容易被理 (2)规则的创建(当约束条件要为多列使用时)。 步骤一: CREATE RULE rule AS condition_expression

第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。

数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。

为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。

这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。

完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。

目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。

完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。

由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。

广义的完整性控制包括故障恢复、并发控制。

而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。

SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。

完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。

完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。

学生选课系统设计报告

学生选课系统设计报告

大理学院数学与计算机学院《数据库系统设计》课程设计报告班级:2012级计算机科学与技术1班学号:201211514姓名:刘秀珍系统名称:学生选课系统总分:实验报告内容及撰写要求:一、需求分析程序的主要功能描述,可以用文字、框图、用例等方式。

参考《数据库系统设计任务书》附录中的内容来进行设计报告的撰写。

主要应当包含分析的过程及分析后得到的数据流图和数据字典。

二、数据库设计2.1 数据库概念设计实体关系模型设计,创建分ER图和总体ER图,并描述总体E-R图合并时的问题解决。

2.2数据库的逻辑设计根据概念设计结果,创建数据库的逻辑模型,建立在具体DBMS下(SQL SERVER 2005)的表结构,并根据规范化理论对表结构进行优化调整。

同时,根据应用需求,创建数据库系统所需的外模式(视图)、模式和内模式(索引)等,此外,应当根据需求,建立数据完整性约束(实体完整性,参照完整性和用户自定义完整性)。

三、系统实现3.1 数据库访问1)数据访问类及实现代码2)SQL语句3.2 业务逻辑层类及代码描述业务流程、数据处理功能的模块代码3.3表示层的实现可以用界面截图及其实现类及核心代码描述四、总结一、需求分析1.1背景全校性选修课开设的目的在于扩大学生的知识面、加强学生素质教育、培养复合型高级人才,具有不可替代的重要性。

随着教育改革的不断深入和素质教育的加强,学分制的实施,选修课在一个学生的培养计划中占的比重将越来越大。

网上选课系统的出现使同学们能够更加自主、便捷、准确的进行选课。

但是,由于一般高校中的学生都比较多,因此带来了诸多如信息管理等问题,鉴于需要将学生信息、选课信息等信息数字化以便于管理维护,我们便想到了利用数据库能够比较良好地解决此类问题,由此下面我将设计出一个学生选课系统以供参考。

1.2系统设计要求:设计出一个学生选课数据库系统的简要要求如下:1)设计要求①建立相应的数据库及相关的表、属性、约束、规则、默认等;②输入相应的记录(每个表不少于20条记录);③编写进行数据管理的存储过程。

用户自定义完整性

用户自定义完整性

实验9. 用户自定义完整性9.1实验目的学习用户自定义约束,并实践用户自定义完整性,利用SQL语言用短语NOT NULL、UNIQUE、CHECK保证用户定义完整性。

9.2实验内容(建议将表改成Teachers,相应属性以T开始命名,如Tname)建立Teacher表。

建立表Teacher,注意跟前面所建立的Teacher区分开来,(1)创建Worker,Teacher表,并自定义2个约束U1以及U2,其中U1规定Wname Tname字段唯一,U2规定Wage, Tage (级别)字段的上限是28。

(2)在Worker, Teacher表中插入一条合法记录。

(3)演示插入违反U2约束的例子,U2规定元组的Wage,Tage属性的值必须<=28。

(4)去除U2约束。

(5)重新插入(3)中想要插入的数据,由于去除了U2约束,所以插入成功。

(6)创建规则Rule_sex,规定插入或更新的值只能是M或F,并绑定到Worker Teacher的WsexTsex字段。

(7)演示违反规则Rule_sex的插入操作。

9.3实验步骤以系统管理员或sa帐号登录到SSMS,在新建查询窗口下输入如下命令,运行并观察结果。

(1) 在新建查询窗口中输入如下SQL语句:USE University_MisCREATE TABLE Teacher(Tno CHAR(5),Tname CHAR(8) CONSTRAINT U1 UNIQUE,Tsex CHAR(1),Tage INT CONSTRAINT U2 CHECK (Tage<=28),Tdept CHAR(20),CONSTRAINT PK_Teacher PRIMARY KEY(Tno))(2) 在新建查询窗口中输入如下SQL语句USE University_MisINSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)VALUES(‘T01’,’李用’,’M’,14,’后勤部’)SELECT * FROM Teacher(3) 在新建查询窗口中输入如下SQL语句USE University_MisINSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)Values(‘T02’,’王勇’,’M’,38,’后勤部’)SELECT * FROM Teacher(4) 在新建查询窗口中输入如下SQL语句USE University_MisALTER TABLE teacher DROP U2(5) 在新建查询窗口中输入如下SQL语句USE University_MisINSERT INTO Teacher (Tno, Tname,Tsex, Tage,Tdept)VALUES(‘T02’,’王勇’,’M’,38,’后勤部’)SELECT * FROM Teacher(6) 在新建查询窗口中输入如下SQL语句USE University_MisGoCREATE RULE Rule_sex AS @Value IN (‘F’,’M’)GoEXEC SP_bindrule Rule_sex, ‘Teacher.[Tsex]’;(7) 在新建查询窗口中输入如下SQL语句USE University_MisINSERT INTO Teacher VALUES(‘T03’,’黄号’,’1’,’25’,’后勤部’)9.4实验要求(1) 实验之前请细细阅读实验总体要求与说明指导书(2 ) 在SQL Server 2005或2008的SSMS 环境中,完成以上实验(1)-(7)步所有SQL数据定义操作,并将其中奇数步骤的操作窗口剪贴到实验报告中。

实验六 数据库的完整性定义与检查 (2)

实验六  数据库的完整性定义与检查 (2)

实验六数据库的完整性定义与检查实验目的:1.充分理解关系数据库中关于数据库完整性的概念。

2.掌握实体完整性的定义和检查方法。

3.掌握参照完整性的定义和检查方法。

4.掌握用户自定义完整性的定义和检查方法。

实验内容:一、在企业管理器中定义以下数据表中各字段的完整性约束(包括实体完整性、参照完整性和用户定义完整性)。

1.Student表。

记录学生基本信息。

表1-1 Student 表结构[Sno] [char](9)PRIMARY KEY,[Sname] [char](8)NOT NULL,[Ssex] [char](2)CHECK(Ssex IN('女','男')),[Sage] SMALLINT CHECK(Sage>=15 AND Sage<=45),[Sdept] [char](20)default('计算机'))2.Course表。

记录课程信息。

表1-2 Course 表结构[Cno] [char](10)PRIMARY KEY,[Cname] [char](20)NOT NULL,[Ccredit] SMALLINT CHECK(Ccredit>0),[Semester] SMALLINT CHECK(Semester>0),[Period] SMALLINT CHECK(Period>0),)3.Sc表。

记录学生选修课程的信息。

表1-3 Sc 表结构[Sno] [char](9)NOT NULL,[Cno] [char](10)NOT NULL,[Grade]SMALLINT CHECK(Grade>=0 and Grade<=100),PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)REFERENCES Student(Sno),FOREIGN KEY(Cno)REFERENCES Course(Cno))二、在查询编辑器中,写出创建表的语句同时写出设置实体完整性、参照完整性和用户自定义完整性的语句。

实验五:数据完整性实验

实验五:数据完整性实验

实验五:数据完整性实验一、实验目的:掌握使用SQL中的PRIMARY KEY、CHECK、FOREIGN KEY……REFERENCES、NOT NULL、UNIQUE等关键字是现实体完整性、参照完整性及用户定义完整性约束定义。

二、实验步骤:(一)验证分析部分1、利用SQL查询分析器用PRIMARY KEY子句保证实体完整性。

在查询分析器窗体下键入如下命令:CREATE TABLE Student(sno CHAR(5) NOT NULL UNIQUE,sname CHAR(8),ssex CHAR(1),sage INT,sdept CHAR(20),CONSTRAINT PK_Student PRIMARY KEY(sno));UPDATE Student SET sno=’ ‘ WHERE sdept=’CS’;UPDATE Student SET sno=’200215121 ‘WHERE sname=’王敏’;运行并观察结果。

2、利用SQL查询分析器用FOREIGN KEY……REFERENCES子句保证实体完整性。

在查询分析器窗体下键入如下命令:(1)先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON update CASCADE;然后执行以下语句Update Student SET sno=’200215128 ‘ WHERE sno=’200215121’;(2) 先删除原来SC表中关于Sno 的外键,再将SC的Sno外键修改为:alter TABLE SC add CONSTRAINT FK_Sno FOREIGN KEY (sno)REFERENCES Student(sno)ON delete CASCADE;然后执行以下语句delete from student WHERE sno=’200215122’;运行并观察结果。

04735数据库系统原理(2018年版)课后习题参考答案与解析

04735数据库系统原理(2018年版)课后习题参考答案与解析

答案仅供参考第一章数据库系统概述选择题B、B、A简答题1.请简述数据,数据库,数据库管理系统,数据库系统的概念。

P27数据是描述事物的记录符号,是指用物理符号记录下来的,可以鉴别的信息。

数据库即存储数据的仓库,严格意义上是指长期存储在计算机中的有组织的、可共享的数据集合。

数据库管理系统是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。

数据库系统是指在计算机中引入数据库技术之后的系统,包括数据库、数据库管理系统及相关实用工具、应用程序、数据库管理员和用户。

2.请简述早数据库管理技术中,与人工管理、文件系统相比,数据库系统的优点。

数据共享性高数据冗余小易于保证数据一致性数据独立性高可以实施统一管理与控制减少了应用程序开发与维护的工作量3.请简述数据库系统的三级模式和两层映像的含义。

P31答:数据库的三级模式是指数据库系统是由模式、外模式和内模式三级工程的,对应了数据的三级抽象。

两层映像是指三级模式之间的映像关系,即外模式/模式映像和模式/内模式映像。

4.请简述关系模型与网状模型、层次模型的区别。

P35使用二维表结构表示实体及实体间的联系建立在严格的数学概念的基础上概念单一,统一用关系表示实体和实体之间的联系,数据结构简单清晰,用户易懂易用存取路径对用户透明,具有更高的数据独立性、更好的安全保密性。

第二章关系数据库选择题C、C、D简答题1.请简述关系数据库的基本特征。

P48答:关系数据库的基本特征是使用关系数据模型组织数据。

2.请简述什么是参照完整性约束。

P55答:参照完整性约束是指:若属性或属性组F是基本关系R的外码,与基本关系S的主码K 相对应,则对于R中每个元组在F上的取值只允许有两种可能,要么是空值,要么与S中某个元组的主码值对应。

3.请简述关系规范化过程。

答:对于存在数据冗余、插入异常、删除异常问题的关系模式,应采取将一个关系模式分解为多个关系模式的方法进行处理。

一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式,这就是所谓的规范化过程。

数据库的完整性和安全性上机实验报告

数据库的完整性和安全性上机实验报告



(2)删除student表的关于sage 20到50的约束,调试过程如下图:




(3)用户王明对Student表和Course表有SELECT权力,在创建用户时遇到了点问题,最后在老师的指导下解决了,调试过程如下图:
(4)用户李勇对Student表和Course表有INSERT和DELETE权力,调试过程如下图:
(5)用户刘星对Student表有SELECT权力,对Student表的sage字段有更新权力,调试过程如下图:
(6)用户张新具有创建表的权力,调试过程如下图:
(7)用户周平具有对Student表和Course表所有权力,并具有给其他用户授权的权力,在赋予周平给其他用户授权的权利时“ALL PRIVILEGES只授予用户 SQL Server 2000 中可授予的权限,而SQL Server 2005却不被授予,最后改用CONTROL实现了该命令,调试过程如下图:
(8)回收李勇、张新的权限,调试过程如下图:。

数据库实验报告华北电力大学

数据库实验报告华北电力大学

数据库实验报告华北电⼒⼤学课程设计报告(2014--2015年度第2学期)名称:数据库原理课程设计题⽬:图书管理信息系统院系:计算机系班级:计科1203学号:学⽣姓名:指导教师:熊海军设计周数: 1成绩:⽇期:2015年6⽉25⽇《数据库原理课程设计》课程设计任务书⼀、⽬的与要求1.本实验是为计算机各专业的学⽣在学习数据库原理后,为培养更好的解决问题和实际动⼿能⼒⽽设置的实践环节。

通过这个环节,使学⽣具备应⽤数据库原理对数据库系统进⾏设计的能⼒。

为后继课程和毕业设计打下良好基础。

2.通过该实验,培养学⽣在建⽴数据库系统过程中使⽤关系数据理论的能⼒。

3.通过对⼀个数据库系统的设计,培养学⽣对数据库需求分析、数据库⽅案设计、系统编码、界⾯设计和软件调试等各⽅⾯的能⼒。

是⼀门考查学⽣数据库原理、⾯向对象设计⽅法、软件⼯程和信息系统分析与设计等课程的综合实验。

⼆、主要内容针对⼀个具有实际应⽤场景的中⼩型系统(见题⽬附录)进⾏数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。

⼤致分为如下步骤:1. 理解系统的数据库需求,分析实体及实体间联系,画出E-R图:1.分析确定实体的属性和码,完成对该实体的实体完整性、⽤户⾃定义完整性的定义。

2.设计实体之间的联系,包括联系类型和联系的属性。

最后画出完整的E-R图。

2.根据设计好的E-R图及关系数据库理论知识设计数据库模式:1)把E-R图转换为逻辑模式;2)规范化设计。

使⽤关系范式理论证明所设计的关系⾄少属于3NF并写出证明过程;如果不属于3NF则进⾏模式分解,直到该关系满⾜3NF为⽌,要求写出分解过程。

3)设计关系模式间的参照完整性,要求实现级联删除和级联更新。

4)⽤SQL语⾔完成数据库内模式的设计。

3.数据库权限的设计:1)根据系统分析,完成授权操作;2)了解学习收回权限的操作。

4.完成⽤户界⾯的设计,对重要数据进⾏加密。

数据操作和完整性约束的作用

数据操作和完整性约束的作用

数据操作和完整性约束的作⽤计算机科学与技术系实验报告专业名称计算机科学与技术课程名称数据库系统及应⽤项⽬名称数据操作和完整性约束的作⽤班级学号姓名实验⽇期 2015/11/3⼀、实验⽬的与要求:(⼀)实验⽬的熟练掌握SQL的INSERT、UPDATE和DELETE命令,深刻理解数据完整性约束的作⽤以及约束机制。

(⼆)实验要求(1)读者⾃⾏设计各个表的记录,其中院系表⾄少10条记录、学⽣表⾄少30条记录、课程表⾄少10条记录、教师表⾄少10条记录、选课表⾄少50条记录。

(2)使⽤INSERT命令完成记录的插⼊操作,要求分别设计若⼲违反实体完整性、参照完整性和⽤户⾃定义完整性和⽤户定义完整性约束的插⼊操作,并分析原因。

(3)设计若⼲删除操作,体会执⾏删除时检查参照完整性规则的效果(要求涉及拒绝删除、空值删除和级联删除等不同的处理⽅式)。

(4)设计若⼲更新操作,体会执⾏更新操作时检查实体完整性规则、参照完整性规则和⽤户⾃定义完整性规则的效果。

(5)在实验报告中要给出具体的记录和设计的操作,并针对各种数据完整性检查给出具体的分析和讨论。

⼆、实验⽅法:(代码)create database 学⽣管理系统use 学⽣管理系统create table yuanxi(编号 smallint primary key,名称 char(20) unique not null,负责⼈ char(10),办公地点 char(20))--drop table yuanxicreate table xuesheng(学号 char(8) primary key,院系 smallint foreign key references yuanxi(编号),姓名 char(10) not null,性别 char(2) check (性别 = '男' or 性别 = '⼥'),⽣源 char(6),状态 char(4) check (状态 = '正常' or 状态 = '留级' or 状态 = '休学' or 状态 = '退学') )create table jiaoshi(教师编号 char(8) primary key,院系 smallint foreign key references yuanxi(编号),姓名 char(10) not null,性别 char(2) check (性别 = '男' or 性别 = '⼥'),职称 char(6) check (职称 = '教授' or 职称 = '副教授' or 职称 = '讲师' or 职称 = '助教'), 专业 char(10))create table kecheng(课程编号 char(8) primary key,课程名称 char(20) not null,负责讲师 char(8) foreign key references jiaoshi(教师编号),学时 smallint not null,课程性质 char(10) check(课程性质 = '公共基础' or 课程性质 = '专业基础' or 课程性质 = '专业选修' or 课程性质 = '任意选修') )create table xuanke(学号 char(8)foreign key references xuesheng(学号),课程编号 char(8) foreign key references kecheng(课程编号),成绩 smallint check(成绩 >= 0 and 成绩 <=100) default null ,primary key(学号,课程编号))--在院系表中插⼊10条记录insert into 院系 values(1,'计科系','马主任','36栋')insert into 院系 values(2,'电⽓系','赵主任','35栋')insert into 院系 values(3,'机械系','钱主任','34栋')insert into 院系 values(4,'园林系','孙主任','33栋')insert into 院系 values(5,'艺术系','李主任','32栋')insert into 院系 values(6,'⼈⽂系','周主任','31栋')insert into 院系 values(7,'物理系','吴主任','30栋')insert into 院系 values(8,'外语系','郑主任','2栋')insert into 院系 values(9,'体育系','王主任','4栋')insert into 院系 values(10,'国贸系','汝主任','8栋')--在学⽣表中插⼊30条记录insert into 学⽣ values('1',1,'王艳','⼥','⾩阳市','正常',NULL) insert into 学⽣ values('2',1,'李婷','⼥','南京市','正常',NULL) insert into 学⽣ values('3',1,'张三','男','⾩阳市','正常',NULL) insert into 学⽣ values('4',2,'赵⽟','男','⾩阳市','正常',NULL)insert into 学⽣ values('5',2,'李雷','男','上海市','正常',NULL) insert into 学⽣ values('6',2,'张琪','⼥','六安市','正常',NULL) insert into 学⽣ values('7',3,'夏⾬','男','上海市','正常',NULL) insert into 学⽣ values('8',3,'李信','男','⾩阳市','正常',NULL) insert into 学⽣ values('9',4,'黎姿','⼥','南京市','正常',NULL) insert into 学⽣ values('10',4,'汝闻闻','⼥','六安市','正常',NULL) insert into 学⽣values('11',4,'翟凤亚','男','六安市','正常',NULL) insert into 学⽣ values('12',5,'郑微','⼥','亳州市','留级',NULL) insert into 学⽣values('13',5,'赵⽴英','⼥','亳州市','留级',NULL) insert into 学⽣ values('14',5,'李晨','男','亳州市','正常',NULL) insert into 学⽣values('15',6,'郭靖','⼥','宿州市','退学',NULL) insert into 学⽣ values('16',6,'陈欣然','⼥','宿州市','正常',NULL) insert into 学⽣values('17',6,'李然','男','郑州市','退学',NULL) insert into 学⽣ values('18',7,'王凯','男','宿州市','正常',NULL) insert into 学⽣values('19',7,'宫正','男','郑州市','退学',NULL) insert into 学⽣ values('20',7,'翟丹丹','⼥','北京市','正常',NULL) insert into 学⽣values('21',8,'陈瑞','⼥','郑州市','正常',NULL) insert into 学⽣ values('22',8,'郝壮','男','北京市','正常',NULL) insert into 学⽣values('23',8,'李毅','男','北京市','正常',NULL) insert into 学⽣ values('24',9,'吴建','男','界⾸市','休学',NULL) insert into 学⽣values('25',9,'习武','男','界⾸市','正常',NULL) insert into 学⽣ values('26',9,'张翠翠','⼥','界⾸市','休学',NULL) insert into 学⽣values('27',10,'郑⾬薇','⼥','芜湖市','正常',NULL)insert into 学⽣ values('28',10,'谌敏','⼥','芜湖市','退学',NULL) insert into 学⽣ values('29',10,'徐松','男','合肥市','休学',NULL) insert into 学⽣ values('30',3,'朱茵','⼥','合肥市','正常',NULL)--在课教师中插⼊10条记录insert into 教师 values('1',1,'赵燕','⼥','教授','汽车与智能',3200.00)insert into 教师 values('2',2,'李敏','⼥','教授','电⼦应⽤',3400) insert into 教师 values('3',3,'王艳艳','⼥','讲师','机械应⽤',2900) insert into 教师 values('4',4,'谭维维','⼥','副教授','园林园艺',3600)insert into 教师 values('5',5,'李佳薇','⼥','副教授','素描',2500) insert into 教师 values('6',6,'杨会伟','男','讲师','⼈⽂',4000) insert into 教师 values('7',7,'王丽玲','⼥','副教授','万有引⼒',3800)insert into 教师 values('8',8,'陶维成','男','教授','英语',3250) insert into 教师 values('9',9,'万振宇','男','助教','乒乓球',2600) insert into 教师 values('10',10,'⽅梁⾬','⼥','助教','商代',4500) --在课程表中插⼊10条记录insert into 课程 values('1','汽车智能与应⽤','1',16,'公共基础') insert into 课程 values('2','模拟电路','2',16,'公共基础')insert into 课程 values('3','器械基础','3',8,'专业基础')insert into 课程 values('4','嫁接技术','4',16,'专业基础')insert into 课程 values('5','素描','5',8,'专业基础')insert into 课程 values('6','⼤学语⽂','6',16,'专业选修') insert into 课程 values('7','万有引⼒','7',8,'任意选修') insert into 课程values('8','⼝语','8',16,'专业选修') insert into 课程 values('9','乒乓球','9',16,'任意选修') insert into 课程 values('10','商代渠道','10',8,'专业基础') --在选课表中插⼊10条记录insert into 选课 values('1','1',100)insert into 选课 values('1','2',99)insert into 选课 values('1','3',95)insert into 选课 values('1','4',89)insert into 选课 values('1','5',89)insert into 选课 values('2','6',78)insert into 选课 values('2','7',78)insert into 选课 values('2','8',78)insert into 选课 values('2','9',78)insert into 选课 values('2','10',78)insert into 选课 values('3','1',98)insert into 选课 values('3','2',98)insert into 选课 values('3','3',98)insert into 选课 values('3','4',98)insert into 选课 values('3','5',98)insert into 选课 values('4','1',90)insert into 选课 values('4','2',90) insert into 选课 values('4','3',90) insert into 选课 values('4','5',90) insert into 选课values('4','4',90) insert into 选课 values('5','5',69) insert into 选课 values('5','6',69) insert into 选课 values('5','7',69) insert into 选课 values('5','8',69) insert into 选课 values('5','9',69) insert into 选课 values('6','1',75) insert into 选课 values('6','2',75) insert into 选课 values('6','3',75) insert into 选课 values('6','4',75) insert into 选课 values('6','5',75) insert into 选课 values('7','7',65) insert into 选课 values('7','8',65) insert into 选课 values('8','9',65) insert into 选课 values('9','7',65) insert into 选课values('10','7',65) insert into 选课 values('8','8',65) insert into 选课 values('9','8',65) insert into 选课 values('10','8',65) --删除操作DELETE 选课 WHERE 学号='1'DELETE 学⽣ WHERE 状态 = '退学'--更新操作UPDATE 选课 SET 成绩=89 WHERE 课程编号 ='6'UPDATE 教师 SET 职称 = '教授' WHERE 职称='助教'三、实验分析与⼩结(⼀)实验分析1.使⽤INSERT命令完成记录的插⼊操作,要求分别设计若⼲违反实体完整性、参照完整性和⽤户⾃定义完整性和⽤户定义完整性约束的插⼊操作1>违反实体完整性规则即主关键字为空或重复。

计算机技术导论试题及答案(%)

计算机技术导论试题及答案(%)

计算机导论试题(1)判断题(1). 当代计算机基本属于冯.诺依曼体系结构。

(a )正确错误(2). 二进制数转换为十六进制需要以小数点为界每3位截取转换。

( b )正确错误(3). 浮点数表示中指数部分位数越多则可以表示的数据范转越大。

( a )正确错误(4). 逻辑运算中位与位之间有时会产生进位和借位。

( b )正确错误(5). 虚拟存储器的主要目的是解决CPU和主存速度不匹配的矛盾。

( b )正确错误(6). 虚拟存储器是根据程序局部性原理设计的。

( a )正确错误(7). 若CPU的地址线有n根,则CPU可寻址的内存空间是2n。

( a )正确错误(8). 机器语言是一种高级语言。

( b )正确错误(9). Word的录入原则是可任意加空格键,不可任意加回车键。

(b )正确错误(10). Excel工作表的名称由文件名决定。

( b )正确错误(11). 一个关系只能有一个候选键。

( b )正确错误(12). 一个关系模式中不能存在相同的属性。

( a )正确错误(13). 实体间多对多的联系在Access中实现时要转换成一对多的联系来处理。

( a )正确错误(14). 网桥是网络层的互连设备。

( b )正确错误(15). 网络层以上的互连设备称为网关。

( a )正确错误(16). 计算机网络从逻辑上看分为数据处理子网和通信子网。

( b )正确错误(17). Dreamweaver只可以用表格方式进行网页布局。

( b )正确错误(18). 只要带有Flash动画的网页都可以称为动态网页。

( b )正确错误(19). 计算机网络中,端到端加密只对报文加密,报头则是明文传送。

( a )正确错误(20). 要保护计算机程序代码的版权,可以申请发明专利。

( b )正确错误单选题(21). 一个完整的计算机系统由( c )组成。

硬件系统软件与应用软件硬件系统与软件系统中央处理机(22). 计算机中最重要的核心部件是( b )。

数据完整性在SQL数据库应用系统设计与实施论文

数据完整性在SQL数据库应用系统设计与实施论文

数据完整性在SQL数据库应用系统的设计与实施【摘要】数据库作为一个共享资源,数据库中提供的信息必须准确有效,为了防止出现不符合语义的数据,防止错误信息的输入和不一致的数据,数据库管理系统必须提供一定的机制来保证数据的完整性。

作为一个功能强大的数据库管理系统,sql server提供了多种完整性规则来保证数据的完整性。

【关键词】sql server;数据完整性;数据库系统;约束数据的完整性是指数据库中数据的正确性、有效性和一致性。

正确性是指数据的合法性;有效性是指数据是否在定义的有效范围;一致性是指表示同一个事实的两个数据应相同。

数据库管理系统要提供必要的功能,保证数据库中存储的数据在更新过程中始终与客观世界实际的信息状态保持一致。

数据完整性包括:实体完整性,它是指主键的值不能为空或部分为空,如果主键为空或部分为空,则失去了主键的惟一标识性。

参照完整性是指一个表的外部键必须在另一个表中找到或者为空。

参照完整性反映了事物之间的相互联系。

用户自定义完整性是针对具体应用环境数据必须满足的语义要求。

1.数据完整性的界定sql server 2003是一种比较复杂的数据库,主要靠内部的映射关系的一种数据库,这种数据库的服务一般来说是对于复制、集成、分析、通知以及报表等相关服务的融合,此外,visual 等第三方开发工具的有效结合。

因此,本系统使将用sql server2003数据库。

首先,.net framework 与sql server 2003有机结合的过程中,sql server利用.net平台特有的公用语言运行时(clr-common language runtime)的特性来生成数据库的相关对象,在数据库管理系统中充分利用.net代码的功能。

其次,借助sql server 2003,可以为网页服务开发提供便利,这样,sql server使用的是 http技术,对于以web服务为中心的应用程序的数据访问得以更新。

实验四数据库 数据控制(安全性和完整性)

实验四数据库 数据控制(安全性和完整性)

数据库原理及应用实验报告实验四数据控制(安全性和完整性)实验报告实验类型__综合设计__实验室_软件实验室一__数据控制(安全性和完整性)1.实验项目的目的和任务:理解SQL Server的用户与权限管理机制,通过企业管理器创建用户,并给定的用户分配权限,并掌握数据库完整性概念,实现实体、参照和自定义约束。

2.程序代码(部分)sp_addlogin 'pei' ,'147' //服务器级别的建立登录名sp_droplogin 'pei' //.删除sp_grantdbaccess 'pei', 'pp' //数据库级别的安全性sp_addrole 'peipp' //SQL Server服务器角色sp_addrolemember 'peipp','pp'grant select on dbo.spt_values to pp with grant option//数据库对象级别的安全性用户权限继承角色的权限grant create table to pprevoke select on dbo.spt_values to pp cascadesp_revokedbaccess 'pp' //删除3运行结果如图所示4实验总结通过具体的上机实践操作,理解SQL Server的用户与权限管理机制。

(1)数据库的安全性是指保护数据库以防止非法使用所造成的数据泄露、更改或破坏。

(2)用户标识和鉴定、用户存取权限控制、定义视图、数据加密和审计等安全措施。

(3)第一层安全性是服务器级别的安全性,这一级别的安全性建立在控制服务器登录账号和密码的基础上,即必须具有正确的登录账号和密码才能连接到SQL SERVER服务器。

第二层安全性是数据库级别的安全性,用户提供正确的服务器登录账号和密码通过第一层的sql server服务器的安全性检查之后,将接受第二层的安全性检查,即是否具有访问某个数据库的权利。

数据完整性约束(2)——用户定义完整性

数据完整性约束(2)——用户定义完整性

数据完整性约束(2)——⽤户定义完整性⼀.MySQL⽀持哪⼏种⽤户定义完整性?
.MySQL⽀持三种⽤户⾃定义完整性:⾮空约束,check约束,触发器约束。

⼆.⾮空约束
采⽤关键字:not null来定义⾮空约束
例⼦:
create table tb(
tb_id int not null
);
三.check约束
3.1对于列的check约束
语法:在列的定义后⾯使⽤check(sql语句)
例⼦:
create table tb(
tb_id int not null check(tb_id<100000)
);
接下来我们来进⾏⼀次操作,插⼊⼀个⼤于100000的值100001并查询:
insert into tb values(100001);
select tb_id from tb;
奇怪的是100001竟然插⼊到了数据库中,原来MySQL只是对check约束做了分析,并没有实质性的操作约束。

3.2对表实⾏check约束
在表的末尾进⾏定义,语法:
create table tb(
tb_id int,
tb_text varchar(20),
check(tb_id in(10,20,30,50))
);
同样对表的check约束也是⼀个空壳罢了。

四.删除约束
使⽤关键字:alter table 表名 drop 约束类型【外键 | 索引】约束名 |【主键】
删除主键例⼦:
alter table tb drop primary key;。

数据库课程设计(学生信息管理系统)

数据库课程设计(学生信息管理系统)

海南大学信息学院信息安全系专业课程《数据库原理及安全》课程设计报告设计题目:学生信息管理系统姓名:温德志学号:学院:信息科学技术学院成绩:任课教师:2014年1月1日本系统设计的是学生信息管理系统,参照实验课所学的内容并在大量的数据资料的支持下完成了该课程设计。

本文在结构上首先对该课程设计做了一个简介,介绍了一下课程设计的目的及要求,接下来便是对本数据的需求分析及功能的设计,并通过一系列的ER关系图清晰的展现各表之间的关系,最后本系统通过运用语言能够较好地完成信息的添加、修改、删除、查询等功能,本系统界面友好,操作简单,比较实用,思路缜密严谨,管理起来方便快捷,能有效的达到学生信息的管理的目的。

关键词:;SQL server 2000前言----------------------------------------------------------------------------------------1一、课程设计简介--------------------------------------------------------------------11.1课程设计的性质与任务----------------------------------------------------11.2课程设计的基本要求-------------------------------------------------------11.3选题目的-----------------------------------------------------------------------1二、设计概要--------------------------------------------------------------------------12.1需求分析-----------------------------------------------------------------------12.2功能模块的划分--------------------------------------------------------------12.3系统总体设计框图----------------------------------------------------------1三、数据库设计-----------------------------------------------------------------------23.1 E-R图----------------------------------------------------------------------------23.2物理表的设计-----------------------------------------------------------------43.3数据库及表的创建-----------------------------------------------------------63.4基本要求的实现------------------------------------------------------------9四、创建工程项目-------------------------------------------------------------------194.1开发环境和工具-----------------------------------------------------------204.2数据库链接------------------------------------------------------------------214.3主要内容----------------------------------------------------------------------214.3.1身份验证---------------------------------------------------------------214.3.2管理界面---------------------------------------------------------------224.3.3学生信息管理---------------------------------------------------------234.3.4课程信息管理---------------------------------------------------------284.3.5成绩管理---------------------------------------------------------------32五、课程小结-------------------------------------------------------------------------33六、参考文献-------------------------------------------------------------------------33一、课程设计简介1.1课程设计的性质与任务1.1.1 掌握计算机管理信息系统设计的一般方法,主要包括系统分析、系统设计的组织和实施。

新SQL——SERVER实验练习

新SQL——SERVER实验练习

实用文档SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (4)试验一注册服务器....................................... 错误!未定义书签。

试验二创建数据库....................................... 错误!未定义书签。

试验三创建表........................................... 错误!未定义书签。

实验四数据输入......................................... 错误!未定义书签。

实验五登录到数据库服务器............................... 错误!未定义书签。

第二部分 SQL语言 (4)第二部分 SQL语言 (4)试验一数据库创建 (4)试验二创建表 (4)试验三创建数据完整性 (6)试验四数据完整性试验 (8)试验五索引 (11)试验六更新数据 (12)试验七 Sql 查询语句 (13)试验八视图 (16)试验九安全性控制实验 (17)试验十存储过程 (18)试验十二触发器 (23)试验十二恢复技术 (26)试验十三事务 (27)试验十四锁 (28)第一部分企业管理器的使用第二部分 SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。

2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。

4 记录:1)school 数据库文件所在的文件夹。

2)school 数据库的文件名二删除School数据库1 使用查询分析器删除数据库 schoolDROP DATABASE school2 使用SQL-Server 的企业管理器删除数据库 school 。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-2-
软件 C122 彭静 126226
实验截图
(2)在 worker 表中插入一条合法记录。 实验代码
实验截图 (3)演示插入违反 U2 约束的例子,U2 规定元组的 sage 属性的值必须<=28。 实验代码
实验截图 (4)去除 U2 约束。
-3-
实验代码
软件 C122 彭静 126226
实验截图
不同的关系数据库系统根据其应用环境的不同,往往需要一些特殊的约束条 件。用户自定义的完整性即是针对某个特定关系数据库的约束条件,它反映某 一具体应用所涉及的数据必须满足的语义要求。 它主要包括: (1)域完整性(Domain Integrity) [1] 域完整性是指数据库中的列必须满足某种特定的数据类型或约束。域约束 是最常见的用户自定义完整性约束,当有新数据插入到数据库中,系统可以按 照定义进行关系属性取值是否正确的检测。其中,约束又包括取值范围精度等 规定。表中的 CHECK FOREIGN KEY 约束和 DEFAULT NOT NULL 定义都属于域完整 性的范畴。 [2] 现在的 RDBMS 中,一般都有域完整性检查功能。SQL Server 提供了定义和 检验这类完整性的机制,以便用统一的系统方法来处理它们。而不是用应用程 序来承担这一功能。其他的完整性类型都支持用户定义的完整性。 [3] 一个属性能否取空值一般由语义决定,也是域约束的内容之一。 (2)其他用户自定义完整性 不同的关系数据库系统根据其应用环境的不同,往 往还需要一些特殊的约束条件。其他类型的用户自定义的完整性即是针对某个 特定关系数据库的约束条件,它反映某个具体应用所涉及的数据必须满足的语 义要求。 2)SQL 中的约束机制 约束主要包括如下两种。 静态约束:对静态对 约束是反映数据库状态合理性的约束,如实体完整性。 动态约束:对动态对 约束是反映数据库状态变迁的约束,如触发器。 SQL 中用 于属性约束方面的有 NOT NULL、CHECK 等子句;而用于全局约束方面的有 CREATE ASSERTION、CREATE RULE 等语句 3)一般的规则组成 规则一般是由规则标识(可默认)以及规则语句组成。规则语句由约束作用的 数据对象、约束定义(如断言 Assertion)、触发条件以及违反规则时的响应动 作购成。 4)规则的一般分类 类型 属性级 元组级 关系级 静态 类型、格式、值域、空值 元组的各个属性 之间的取值限制 实体、引用统计完整性函数依赖 动态 属性/值改变 元组值修 改时各属性间的约束 关系变化的前后一致性 5)自定义数据类型和规则 (1)如果多个列使用同一类型的约束,或在一些特殊的情况下,通过自定义的 数据类型和规则就为数据库设计提供了更高层 抽象,如工资数据类型肯定比 smallmoney 能建立更多的特征及更容易被理 (2)规则的创建(当约束条件要为多列使用时)。 步骤一: CREATE RULE rule AS condition_expression
-1-
软件 C122 彭静 126226
步骤二: Sp_bindrule[@rulename =]’rule’,[@objname=]’object_name’ 规则一般绑定到某一列,或者是用户自己定义的数据类型。 6) Check 约束 (1)CHECK 约束是对列或列的组合的取值限制,它采用 SQL 语句中 WHERE 子句相 同的表达方式来表达,分为表一级和列一级的约束。 (2)空值的问题。空值意味着检查约束的值是未知的,所以空值的出现不会违反 检查约束的条件。 (3) 潜在的语义问题。 [1] 大多数的 DBMS 不会检查约束和默认值定义的语句,所以要注意语义冲突; [2] check 和 check 之间的冲突。 [3] 定义了置空删除,但表中检查约束要求此列不能为空;定义该列不能为空, 检查约束要求此列为空。 7)Rule 约束的建立 规则可以是 WHERE 子句中任何有效的表达式,并且可以包括 诸如算术运算符、关系运算符和谓词(如 IN、LIKE、BETWEEN)之类的元素。规 则不能引用列或其他数据库对象。可以包含不引用数据库对 内置函数。 Condition_expression 包括一个变量。每个局部变量的前面都有一个@符号。该 表达式引用通过 UPDATE 或 INSERT 语句输入的值。在创建规则时,可以使用任 何名称或符号表示值,但第一个字符必须是@符号。 8)Rule 的绑定以及松绑 创建规则后,规则仅仅只是一个存在于数据库中的对 象,并未发生作用。需要将规则与数据库表或用户自定义对象联系起来,才能 达到创建规则的目的。联系的方法称为“绑定”,所谓“绑定”就是指定规则作 用于哪个表的哪个列,或哪个用户自定义数据类型。表的一列或一个用户自定 义数据类型只能与一个规则相绑定,而一个规则可以绑定多对象。这 规则的魅 力所在。解除规则与对象的绑定称为“松绑”。 (1)存储过程 Sp_bindrule 绑定规则。 存储过程 Sp_bindrule 可以绑定一个规 则到表的一个列或一个用户自定义数据类型上。其语法如下: Sp_bindrule[@rulename=] ’ rule ’ , [@objname=] ’ object_name ’ [, ’ futureonly’] 各参数说明如下: [@rulename=]’ rule’指定规则名称。 [@objname=]’object_name’指定规则绑定的对象。 ‘futureonly’选项仅在 绑定规则到用户定义数据类型上时才可以使用。当指定此选项时,仅以后使用 此用户自定义数据类型的列会应用新规则,而当前已经使用此数据类型的列则 不受影响。 (2) 存储过程 Sp_unbindrule 规则的绑定。 存储过程 Sp_unbindrule 可解除规 则与列或用户自定义数据类型的绑定其语法如下: Sp_unbindrule[@objname=] ’ object_name ’ [, ’ futureonly ’ ] 其 中 ‘futureonly’选项同绑定时一样,仅用于用户自定义数据类型。它指定现有 的此用户自定义数据类型定义的列仍然保持与此规则的绑定,如果不指定此项 则所有由此用户自定义数据类型定义的列也随之解除与此规则的绑定。 3.实验内容: (1)创建 worker 表,并自定义 2 个约束 U1 以及 U2,其中 U1 规定 Name 字段唯一, U2 规定 sage(级别)字段的上限是 28。 实验代码
实验截图
(2) 加入规则 R2,确保插入的记录的 sage 值在 1 到 100 之间,并绑定到 sage 属性上。 实验代码
实验截图
-5-
(5)重新插入(3)中想要插入的数据,由于去除了 U2 约束,所以插入成功。 实验代码
实验截图
(6)创建规则 rule_sex,规定插入或更新的值只能是 M 或 F,并绑定到 worker 的 sex 字段。 实验代码
实验截图
(7)演示违反规则 rule_sex 的插入操作。 6226
实验截图
消息 513,级别 16,状态 0,第 2 行 列的插入或更新与先前的 CREATE RULE 语句所指定的规则发生冲突。该语句已终止。冲突发生于数据库'school',表 'dbo.WORKER',列'Sex'。 语句已终止。
4.实验步骤: 实现参见数据库实验习题 2.3.sql 文 心得体会: 1、学习了参 照完整性的相关内容,加深了对于这部分知识点的认识; 5.习题 (1) 加入约束 U3,令 sage 的值大于等于 0。 实验代码
软件 C122 彭静 126226
实验 2.3 用户自定义完整性 软件 C122 彭静 126226
1.实验目的: 学习用户自定义约束,并实践用户自定义完整性,利用 SQL 查询分析器用短
语 NOT NULL、UNIQUE、CHECK 保证用户定义完整性。 2.实验原理: 1)用户自定义完整性(User-defined Integrity)
相关文档
最新文档