数据库完整性

合集下载

(1)数据完整性的定义数据完整性是指存储在数据库中的(精)

(1)数据完整性的定义数据完整性是指存储在数据库中的(精)

一、选择题1、D2、D3、D4、A5、C6、C二、简答题1、(1)数据完整性的定义:数据完整性是指存储在数据库中的数据的一致性和正确性。

(2)数据完整性的类型:实体完整性、域完整性、参照完整性和用户自定义完整性。

2、约束是附加于表上用以限制数据完整性的一种数据库对象。

约束按照作用不同,分为五种:PRIMARY KEY约束、UNIQUE约束、CHECK约束、DEFAULT约束和FOREIGN KEY 约束。

3、UNIQUE约束与PRIMARY KEY约束的相同点是:都用于强制实体完整性,保证表中行数据的唯一性。

UNIQUE约束与PRIMARY KEY约束的不同点是:(1)UNIQUE约束用于非主键的一列或列组合。

(2)一个表中可以定义多个UNIQUE约束,但只能定义一个PRIMARY KEY约束。

(3)定义UNIQUE约束的列允许空值,但定义PRIMARY KEY约束的列不允许空值。

4、在判断一个列的数据的有效性方面,CHECK约束与FOREIGN KEY约束的区别在于:CHECK约束根据逻辑表达式判断数据的有效性;FOREIGN KEY约束根据另一个表(父表)中的数据判断数据的有效性。

5、规则是一种数据库对象,它的作用类似于CHECK约束.它们的区别表现为:(1)CHECK约束的定义属于表结构定义的一部分。

CHECK约束是在CREATE TABLE或ALTER TABLE语句中定义的。

删除表的时候CHECK约束随之删除。

(2)规则对象的定义是独立于表结构定义的。

规则对象使用CREATE RULE语句定义。

删除表的时候并不能删除规则对象。

6、默认是一种数据库对象,它的作用类似于DEFAULT约束,即在表中插入数据行时,为没有指定数据的列提供事先定义的默认值。

虽然默认对象和默认约束功能类似,但是使用方法不同,它们的区别表现为:(1)默认约束的定义属于表结构定义的一部分。

默认约束是在CREATE TABLE或ALTER TABLE语句中定义的。

数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完好性、并发控制和恢复为了保证数据库数据的安全靠谱性和正确有效, DBMS 一定供给一致的数据保护功能。

数据保护也为数据控制,主要包含数据库的安全性、完好性、并发控制和恢复。

数据库的安全性数据库的安全性是指保护数据库以防备不合法的使用所造成的数据泄漏、改正或损坏。

计算机系统都有这个问题,在数据库系统中大批数据集中寄存,为很多用户共享,使安全问题更加突出。

在一般的计算机系统中,安全举措是一级一级设置的。

在 DB 储存这一级可采纳密码技术,当物理储存设施失窃后,它起到保密作用。

在数据库系统这一级中供给两种控制:用户表记和判定,数据存取控制。

在 ORACLE 多用户数据库系统中,安全体制作以下工作:防备非受权的数据库存取;防备非受权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。

数据库安全可分为二类:系统安全性和数据安全性。

系统安全性是指在系统级控制数据库的存取和使用的体制,包含:有效的用户名 /口令的组合;一个用户能否受权可连结数据库;用户对象可用的磁盘空间的数目;用户的资源限制;数据库审计是不是有效的;用户可履行哪些系统操作。

数据安全性是指在对象级控制数据库的存取和使用的体制,包含:哪些用户可存取一指定的模式对象及在对象上同意作哪些操作种类。

在 ORACLE 服务器上供给了一种随意存取控制,是一种鉴于特权限制信息存取的方法。

用户要存取一对象一定有相应的特权授给该用户。

已受权的用户可随意地可将它受权给其余用户,因为这个原由,这类安全性种类叫做随意型。

ORACLE 利用以下体制管理数据库安全性:数据库用户和模式;特权;角色;储存设置和空间份额;资源限制;审计。

数据库的存取控制ORACLE保护信息的方法采纳随意存取控制来控制所有用户对命名对象的存取。

用户对对象的存取受特权控制。

一种特权是存取一命名对象的同意,为一种规定格式。

ORACLE 使用多种不一样的体制管理数据库安全性,此中有两种体制:模式和用户。

数据库系统概论(第五版)王珊第五章课后习题答案

数据库系统概论(第五版)王珊第五章课后习题答案

数据库系统概论(第五版)王珊第五章课后习题答案1什么是数据库的完整性?答:数据库的完整性是指数据的正确性和相容性。

2 .数据库的完整性概念与数据库的安全性概念有什么区别和联系?答:数据的完整性和安全性是两个不同的概念,但是有⼀定的联系。

前者是为了防⽌数据库中存在不符合语义的数据,防⽌错误信息的输⼊和输出,即所谓垃圾进垃圾出( Garba : e In Garba : e out )所造成的⽆效操作和错误结果。

后者是保护数据库防⽌恶意的破坏和⾮法的存取。

也就是说,安全性措施的防范对象是⾮法⽤户和⾮法操作,完整性措施的防范对象是不合语义的数据。

3 .什么是数据库的完整性约束条件?可分为哪⼏类?答完整性约束条件是指数据库中的数据应该满⾜的语义约束条件。

⼀般可以分为六类:静态列级约束、静态元组约束、静态关系约束、动态列级约束、动态元组约束、动态关系约束。

静态列级约束是对⼀个列的取值域的说明,包括以下⼏个⽅⾯: ( l )对数据类型的约束,包括数据的类型、长度、单位、精度等; ( 2 )对数据格式的约束; ( 3 )对取值范围或取值集合的约束; ( 4 )对空值的约束; ( 5 )其他约束。

静态元组约束就是规定组成⼀个元组的各个列之间的约束关系,静态元组约束只局限在单个元组上。

静态关系约束是在⼀个关系的各个元组之间或者若⼲关系之间常常存在各种联系或约束。

常见的静态关系约束有: ( l )实体完整性约束; ( 2 )参照完整性约束; ( 3 )函数依赖约束。

动态列级约束是修改列定义或列值时应满⾜的约束条件,包括下⾯两⽅⾯: ( l )修改列定义时的约束; ( 2 )修改列值时的约束。

动态元组约束是指修改某个元组的值时需要参照其旧值,并且新旧值之间需要满⾜某种约束条件。

动态关系约束是加在关系变化前后状态上的限制条件,例如事务⼀致性、原⼦性等约束条件。

4 . DBMS 的完整性控制机制应具有哪些功能?答:DBMS 的完整性控制机制应具有三个⽅⾯的功能: ( l )定义功能,即提供定义完整性约束条件的机制; ( 2 )检查功能,即检查⽤户发出的操作请求是否违背了完整性约束条件;( 3 )违约反应:如果发现⽤户的操作请求使数据违背了完整性约束条件,则采取⼀定的动作来保证数据的完整性。

数据库的安全性与完整性【模板范本】

数据库的安全性与完整性【模板范本】

4 数据库的安全性与完整性数据库在各种信息系统中得到广泛的应用,数据在信息系统中的价值越来越重要,数据库系统的安全与保护成为一个越来越值得重要关注的方面。

数据库系统中的数据由DBMS统一管理与控制,为了保证数据库中数据的安全、完整和正确有效,要求对数据库实施保护,使其免受某些因素对其中数据造成的破坏。

一般说来,对数据库的破坏来自以下4个方面:(1)非法用户非法用户是指那些未经授权而恶意访问、修改甚至破坏数据库的用户,包括那些超越权限来访问数据库的用户.一般说来,非法用户对数据库的危害是相当严重的。

(2)非法数据非法数据是指那些不符合规定或语义要求的数据,一般由用户的误操作引起。

(3)各种故障各种故障指的是各种硬件故障(如磁盘介质)、系统软件与应用软件的错误、用户的失误等。

(4)多用户的并发访问数据库是共享资源,允许多个用户并发访问(Concurrent Access),由此会出现多个用户同时存取同一个数据的情况。

如果对这种并发访问不加控制,各个用户就可能存取到不正确的数据,从而破坏数据库的一致性.针对以上4种对数据库破坏的可能情况,数据库管理系统(DBMS)核心已采取相应措施对数据库实施保护,具体如下:(1)利用权限机制,只允许有合法权限的用户存取所允许的数据,这就是本章4.1节“数据库安全性”应解决的问题。

(2)利用完整性约束,防止非法数据进入数据库,这是本章4。

2节“数据库完整性"应解决的问题。

(3)提供故障恢复(Recovery)能力,以保证各种故障发生后,能将数据库中的数据从错误状态恢复到一致状态,此即本章4。

3节“故障恢复技术”的内容.(4)提供并发控制(Concurrent Control)机制,控制多个用户对同一数据的并发操作,以保证多个用户并发访问的顺利进行,此即本章4.4节“并发控制”的内容。

4.1 数据库安全性4.1.1 数据库安全性问题的概述1.数据库安全问题的产生数据库的安全性是指在信息系统的不同层次保护数据库,防止未授权的数据访问,避免数据的泄漏、不合法的修改或对数据的破坏。

数据完整性

数据完整性

3.5 数据完整性在数据库中数据完整性是指保证数据正确的特性,一般包括实体完整性、域完整性、参照完整性。

一、实体完整性是保证表中记录唯一的特性。

即在一个表中,不能有重复的纪录。

候选关键字:如果一个字段的值或几个字段的值能够唯一标识表中的一条记录,这样的字段称为侯选关键字。

主关键字:在一个表中可能会有几个具有这种特性的字段或者字段的组合,这时从中选择一个作为主关键字。

在VFP中将主关键字称做主索引,将侯选关键字称为侯选索引。

实现方法:在VFP中利用主关键字(主索引)或候选关键字(候选索引)来保证表中记录的惟一性。

例1. 打开数据库“成绩管理”,为学生表中的“学号”字段建立主索引(升序)。

二、域完整性1.域:列的取值的范围(EG:数学中的定义域)域完整性:列的取值范围合理性我们以前在创建表的时候指定不同的数据类型和宽度来限制字段的取值类型和取值范围,但这些还远远不够。

我们需要进一步对列里能输入什么样的数据严格要求。

2.实现域完整性的方法:设置列的有效性规则,设置列的默认值⑴设置列的有效性规则例2. 设置“成绩管理”数据库中“学生”表中年龄字段的有效性规则:要求学生表中的年龄必须在15-22之间,否则就认为输入无效!并提示“年龄只能在15-22岁之间!”例3. 设置“学生”表中系部字段的有效性规则:要求系部列的取值必须是四个系之一,如果输入其他值就认为输入无效!并提示“该系部名不存在!”例4.设置“成绩”表中成绩的有效性规则为:成绩只能在0-100分之间,如果用户输入错误,则提示“成绩不在范围内!”⑵为列设置默认值例5.对“学籍”表进行修改,设置“入学日期”的默认值为2009-08-26,然后打开表,输入一条新记录,观察现象例6. 对“学生”表进行修改,设置“系部”列的默认值为基础部,然后打开表,使用Append命令输入一条新记录,观察现象三、参照完整性1.思考:⑴如果同学们在填学生表的时候将自己的班级名称写错了, 写成了一个学校中根本不存在的班级, 这样的结果肯定是错误的。

数据库原理与应用(清华大学版)课后答案第13章 数据库完整性

数据库原理与应用(清华大学版)课后答案第13章 数据库完整性

数据库完整性练习题13及参考答案1.什么是数据完整性如果数据库不实施数据完整性会产生什么结果答:数据完整性是指数据的正确性、完备性和一致性,是衡量数据库质量好坏的重要标准。

如果数据库不实施数据完整性,在用INSERT 、DELETE 、UPDATE 语句修改数据库内容时,数据的完整性可能会遭到破坏,就可能会存在下列情况:无效的数据被添加到数据库的表中,如:将学生考试成绩输入成负数;对数据库的修改不一致,如:在一个表中修改了某学生的学号,但该学生的学号在另外一个表中却没有得到修改;将存在的数据修改为无效的数据,如:将某学生的班号修改为并不存在的班级号。

2.数据完整性有哪几类如何实施它们分别在什么级别上实施答:数据完整性分为以下3类:(1)域完整性:是指一个列的输入有效性,是否允许为空值。

强制域完整性的方法有:限制类型(通过设定列的数据类型)、格式(通过CHECK 约束和规则)或可能值的范围(通过FOREIGN KEY 约束、CHECK 约束、DEFAULT 定义、NOT NULL 定义和规则)。

如:学生的考试成绩必须在0~100之间,性别只能是“男”或“女”。

(2)实体完整性:是指保证表中所有的行唯一。

实体完整性要求表中的所有行都有一个唯一标识符。

这个唯一标识符可能是一列,也可能是几列的组合,称之为主键。

也就是说,表中的主键在所有行上必须取唯一值。

强制实体完整性的方法有:索引、UNIQUE 约束、PRIMARY KEY 约束或IDENTITY 属性。

如:student 表中sno (学号)的取值必须唯一,它第 章 13唯一标识了相应记录所代表的学生,学号重复是非法的。

学生的姓名不能作为主键,因为完全可能存在两个学生同名同姓的情况。

(3)参照完整性:是指保证主关键字(被引用表)和外部关键字(引用表)之的参照关系。

它涉及两个或两个以上表数据的一致性维护。

外键值将引用表中包含此外键的记录和被引用表中主键和外键相匹配的记录关联起来。

数据库设计的基本要求

数据库设计的基本要求
数据库设计的基本要求包括以下几点:
1. 数据完整性:确保数据库中的数据完整、准确、一致,并满足业务需求。

可以通过定义各种约束、规则、触发器等手段来保证数据的完整性。

2. 数据一致性:数据库中的各个数据之间应该保持一致性,不同表之间的数据应该能够互相关联和匹配。

3. 数据冗余度最小化:避免在数据库中存储重复的数据,尽量减少冗余。

4. 数据库的高性能和高可用性:设计数据库时要考虑到数据的访问和查询速度,尽量减少查询时间,并确保数据库可靠地运行和持续可用。

5. 数据库的安全性:设计数据库时要考虑数据的安全性和保密性,包括访问控制、权限管理、数据加密等方面。

6. 数据库的灵活性和可扩展性:数据库设计应该具备适应需求变化和扩展的能力,能够支持新增业务和数据的快速扩展。

7. 数据库的易用性和维护性:数据库设计要简单易用,并且易于维护和管理,包括备份、恢复、性能优化等方面。

8. 规范化和归一化:数据库设计应该遵循规范化原则,通过分
解数据和表,将数据组织成合理的关系模型,以提高数据的存储效率和操作效率。

9. 可理解性和可扩展性:数据库设计要具备良好的文档和注释,以便后续的开发人员能够理解和维护数据库结构。

另外,数据库的结构和架构应该能够支持未来的扩展和迭代。

综上所述,数据库设计的基本要求包括数据完整性、一致性、冗余度最小化、高性能和高可用性、安全性、灵活性和可扩展性、易用性和维护性、规范化和归一化、可理解性和可扩展性等方面。

检查sql数据库是否损坏的语句

一、检查数据库完整性的重要性在数据库管理中,数据库的完整性是非常重要的。

如果数据库损坏或不完整,可能会导致数据丢失或系统崩溃。

定期检查数据库的完整性是保证数据安全和系统稳定性的关键步骤。

二、检查数据库完整性的方法1. 使用DBCC CHECKDB命令DBCC CHECKDB是SQL Server提供的一个用于检查数据库完整性的命令。

它可以检查数据库中所有对象的完整性,包括表、索引、视图等。

可以通过以下语句来运行DBCC CHECKDB命令:DBCC CHECKDB ('database_name');2. 使用DBCC CHECKTABLE命令DBCC CHECKTABLE命令可以用来检查数据库中特定表的完整性。

可以通过以下语句来运行DBCC CHECKTABLE命令:DBCC CHECKTABLE ('table_name');3. 使用DBCC CHECKFILEGROUP命令DBCC CHECKFILEGROUP命令可以用来检查文件组的完整性。

可以通过以下语句来运行DBCC CHECKFILEGROUP命令:DBCC CHECKFILEGROUP ('filegroup_name');4. 使用DBCC CHECKALLOC命令DBCC CHECKALLOC命令可以用来检查分配给数据库对象的存储空间的完整性。

可以通过以下语句来运行DBCC CHECKALLOC命令:DBCC CHECKALLOC;三、检查数据库完整性的注意事项1. 在进行完整性检查之前,应该备份数据库以防止任何意外发生。

2. 在生产环境中进行完整性检查时,应该避免对数据库进行写操作,以免影响正在运行的业务。

3. 对于大型数据库,完整性检查可能需要较长的时间,应该安排在系统负载较低的时段进行。

四、检查数据库完整性的建议1. 定期检查数据库完整性,例如每周或每月进行一次完整性检查。

数据库安全性策略确保敏感数据的保密性和完整性

数据库安全性策略确保敏感数据的保密性和完整性数据库安全性是指在计算机中使用数据库系统时,保护数据免遭非授权访问、窃取、篡改和未经授权的删除的一系列技术和策略。

对于存储和管理大量敏感数据的组织来说,数据库安全性就显得尤为重要。

本文将探讨一些数据库安全性策略,以确保敏感数据的保密性和完整性。

1. 加密数据加密是一种常用的数据库安全性策略,它通过将数据转化为密文来保护数据的机密性。

数据库管理员可以使用各种加密算法,如AES、DES等,对数据库中的敏感数据进行加密。

同时,还需要确保加密密钥的安全性,以防止密钥泄露导致数据被解密。

另外,对于传输过程中的数据,可以使用SSL/TLS等协议进行加密,以防止数据在传输过程中被窃取。

2. 访问控制访问控制是数据库安全性的核心措施之一。

通过限制用户对数据库的访问权限,可以有效地防止未经授权的访问和数据泄露。

数据库管理员可以为每个用户设置不同的权限,包括读取、写入、修改和删除等操作。

此外,还可以使用访问控制列表(ACL)或角色基础访问控制(RBAC)来管理用户权限,确保只有授权用户能够访问和操作数据库。

3. 强化身份验证身份验证是确保数据库安全性的关键措施之一。

传统的用户名和密码认证方式往往存在被破解的风险,因此可以考虑使用更加安全的身份验证方式,如多因素认证(MFA)。

MFA结合了多种身份验证因素,如密码、指纹、声纹、短信验证码等,提供了更高的安全性,可以有效地防止非授权用户冒充合法用户进行访问。

4. 定期备份和恢复定期备份是预防数据丢失的重要措施之一。

数据库管理员应定期备份数据库中的数据,并将备份数据存储在安全的地方,以便在数据丢失或损坏时进行恢复。

同时,还应定期测试备份数据的完整性和可用性,确保备份数据的准确性和可恢复性。

5. 监控和审计监控和审计是数据库安全性策略中的关键环节,可以帮助及时发现异常访问和数据操作。

数据库管理员可以使用实时监控工具来跟踪用户的数据库访问和操作,并记录相关日志。

实验3 MySQL数据库安全性与完整性控制实验实训报告

数据库运维课程实训报告实验3 数据库安全性与完整性控制实验实训名称:成绩教师评语教师签字日期学生姓名学号一、实训目标练习安全性授权方法、安全性和完整性查看的操作方法。

二、实训内容【实验3-1】使用create user创建用户,创建单个用户teacher,创建两个用户teacher1和student。

【实验3-2】通过直接操作MySQL用户表创建用户,创建单个用户teacher2,创建两个用户teacher3和student2(请注意,新版的MySQL可能不支持使用此方法创建新用户)。

【实验3-3】新建一个terminal窗口,使用mysql –u –h -p方式登录teacher。

【实验3-4】再次新建一个terminal窗口,使用mysql –u –h -p方式登录student。

【实验3-5】使用GRANT语句对用户student赋予所有数据库所有表的insert权限和update权限。

【实验3-6】使用GRANT语句对用户student赋予school数据库所有表的select权限。

【实验3-7】使用GRANT语句对用户student赋予school数据库stuinfo表的create 访问权限。

【实验3-8】使用GRANT语句对用户student赋予school数据库stuinfo表的stuno 列上的select访问权限。

【实验3-9】使用GRANT语句对用户student赋予s所有数据库所有表的select访问权限,并设定student每小时最多可使用select操作访问数据库的次数。

【实验3-10】查看表INFORMATION_ER_PRIVILEGES中有关student的信息,查看user表中的内容信息。

【实验3-11】查看表INFORMATION_SCHEMA.SCHEMA_PRIVILEGES,找到student在school数据库下拥有的权限。

【实验3-12】查看表INFORMATION_SCHEMA.TABLE_PRIVILEGES,查找school数据库中stuinfo数据表相关的表权限。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大连海事大学数据库原理课程实验大纲实验名称:实验七完整性实验学时: 2适用专业:实验环境:执笔者:编写日期:1实验目的(1)掌握实体完整性、参照完整性和用户自定义完整性约束的创建方法。

(2)掌握完整性约束的运行检查机制。

(3)掌握参照完整性的级联删除和修改方法。

(4)掌握正确设计关系模式完整性约束的方法。

2实验内容2.1掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。

(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。

(3)删除以上两个主键约束。

(4)利用ALTER TABLE语句定义上述两个主键。

2.2掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。

(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。

(7)设计数据更新语句检查参照完整性约束是否起作用。

(8)删除上述完整性约束。

(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。

(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

2.3掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

3实验要求(1)深入复习教材第五章数据库完整性约束内容。

(2)根据书上的例子,针对TPCH数据库模式设计各种完整性约束,每种类型完整性约束至少要设计一个,描述清楚完整性约束要求,设计和运行触发完整性约束检查的数据更新语句,并截图相应的实验结果,每幅截图并要有较为详细的描述。

也可以按照附1所列示例做实验。

(3)实验步骤和实验总结中要详细描述实验过程中出现的问题、原因和解决方法。

(4)思考题:完整性约束的违约处理有哪几种方式4实验步骤4.1掌握实体完整性约束的创建和使用方法(1)创建表时定义由一个属性组成的主键(给约束命名)。

创建零件表part时定义主键。

/CREATE TABLE PART(PARTKEY INTEGER,MFGR CHAR(100),TYPE CHAR(25),SIZE INTEGER,NAME CHAR(55),CONTAINER CHAR(10),BRAND CHAR(10),RETAILPRICE REAL,COMMENT VARCHAR(23),CONSTRAINT PARTY PRIMARY KEY(PARTKEY))如图:partkey为主键(2)创建表时定义由两个或两个以上属性组成的主键(给约束命名)。

创建零件供应关系表partsupp时定义主键。

CREATE TABLE PARTSUPP(PARTKEY INTEGER,AVAILQTY INTEGER,SUPPKEY INTEGER,COMMENT VARCHAR(199),SUPPLYCOST REAL,CONSTRAINT PARTSUPPY PRIMARY KEY(PARTKEY,SUPPKEY));如图给点约束名,和SUPPKEY为主键(3)删除以上两个主键约束。

删除零件表和零件供应关系表的主键。

ALTER TABLE PARTSUPPDROP CONSTRAINT PARTSUPPY;利用约束名SUPPKEY删除约束ALTER TABLE PARTDROP CONSTRAINT PARTY利用约束名PARTY删除约束(4)利用ALTER TABLE语句定义上述两个主键。

利用ALTER TABLE增加part和partsupp表的主键。

ALTER TABLE PARTADD CONSTRAINT PARTY PRIMARY KEY (PARTKEY);利用ALTER给表PART增加约束PARTYALTER TABLE PARTSUPPADD CONSTRAINT PARTSUPPY PRIMARY KEY(PARTKEY,SUPPKEY)利用ALTER给表增加约束PARTSUPPY主键PARTKEY,SUPPKEY 4.2掌握参照完整性约束的创建和使用方法(5)创建表时定义一个列级参照完整性约束(给约束命名)。

定义partsupp表的列级参照完整性约束。

CREATE TABLE PARTSUPP(PARTKEY INTEGER,AVAILQTY INTEGER,SUPPKEY INTEGER,COMMENT VARCHAR(199),SUPPLYCOST REAL NOT NULL,CONSTRAINT PARTSUPPY PRIMARY KEY(PARTKEY,SUPPKEY));(6)创建表时定义一个表级的由两个属性组成的参照完整性约束(给约束命名)。

定义lineitem的参照完整性约束。

CREATE TABLE lineitem(orderkey INTEGER,partkey INTEGER,suppkey INTEGER,linenumber INTEGER,quantity REAL,extendedprice REAL,discount REAL,tax REAL,returnflag CHAR(1),linestatus CHAR(1),shipDATE DATE,commitDATE DATE,receiptDATE DATE,shipinstruct CHAR(25),shipmode CHAR(10),comment VARCHAR(44)CONSTRAINT LINETY PRIMARY KEY(ORDERKEY,PARTKEY,SUPPKEY),CONSTRAINT FPART FOREIGN KEY(PARTKEY)REFERENCES PART,CONSTRAINT FPARTSUPP FOREIGN KEY(SUPPKEY,PARTKEY)REFERENCES PARTSUPP);创建表时创建外码FPART和FPARTSUPP分别为PART和PARTSUPP表的主码(7)设计数据更新语句检查参照完整性约束是否起作用。

设计INSERT、DELETE和UPDATE语句检查上述完整性约束是否有效。

INSERT INTO lineitem(orderkey,partkey,suppkey)VALUES('4','2','4')INSERT INTO PART(PARTKEY,SIZE,RETAILPRICE)VALUES('1','34','2')(8)删除上述完整性约束。

删除partsupp和lineitem的参照完整性约束。

ALTER TABLE LINEITEMDROP CONSTRAINT FPARTALTER TABLE LINEITEMDROP CONSTRAINT FPARTSUPPALTER TABLE PARTSUPPDROP CONSTRAINT FPART(9)利用ALTER TABLE 建立上述参照完整性约束,并且规定UPDATE/DELETE时的动作。

利用ALTER TABLE 建立上述两个完整性约束,并规定UPDATE和DELETE级联修改和删除。

ALTER TABLE PARTSUPPADD CONSTRAINT FPART FOREIGN KEY(PARTKEY)REFERENCES PART ON DELETE CASCADE ON UPDATE NO ACTIONALTER TABLE LINEITEMADD CONSTRAINT FPS1FOREIGN KEY(PARTKEY)REFERENCES PART ON DELETE CASCADE ON UPDATE NO ACTIONALTER TABLE LINEITEM ONADD CONSTRAINT FPS2FOREIGN KEY(SUPPKEY,PARTKEY)REFERENCES PARTSUPP ON DELETE NO ACTION ON UPDATE NO ACTION(10)设计数据更新语句检查参照完整性约束及其相应的动作是否起作用。

删除零件供应记录partsupp 或者是 lineitem表中的记录,检查约束是否起作用删除主键时因为主码约束无法删除4.3掌握用户自定完整性约束的创建和使用方法(11)定义一个检查约束,检查其值在某个取值范围内,并设计相应的更新语句检查该约束是否起作用定义一个检查Lineitem中的折扣只能在0和1之间的CHECK约束,并设计INSERT语句检查约束是否起作用。

ALTER TABLE lineitem ADD CONSTRAINT CHE1CHECK (DISCOUNT between 0 and 1 )(12)定义一个检查其值符合某个匹配模式的检查约束(使用LIKE),并设计相应的更新语句检查该约束是否起作用定义一个CHECK约束,检查国家表nation中的国家名称的最后一个字必须为“国”字。

设计一个INSERT语句检查该约束是否有效。

alter table nationadd constraint namek check(name like'%国');(13)定义一个检查其值符合某个正则表达式的检查约束(使用SIMILAR TO),并设计相应的更新语句检查该约束是否起作用定义一个CHECK约束,检查CUSTOMER表中的PHONE必须由12位数字组成。

并设计一个INSERT 语句或者是UPDATE语句检查该约束是否有效。

alter table customeradd constraint CHE3check(PHONE SIMILAR TO('__________'));不为12位语句已终止(14)定义一个UNIQUE约束,并设计相应的更新语句检查该约束是否起作用在NATION表的NAME字段上定义一个UNIQUE约束,不允许国家名重复。

设计一个INSERT语句检查约束是否有效。

alter table nationadd constraint CHE4UNIQUE(NAME);(15)定义一个DEFAULT约束,设计一个INSERT语句检查该约束是否起作用。

相关文档
最新文档