数据库完整性代码
第5章sql数据库完整性约束

5.2.4 默认值(DEFAULT)约束
默认约束是指在用户未提供某些列的数据时,数据库 系统为用户提供的默认值。从而简化应用程序代码和提高 系统性能。 表的每一列都可包含一个DEFAULT定义。可以修改或 删除现有的DEFAULT定义,但必须首先删除已有的 DEFAULT定义,然后通过新定义重新创建。 1.利用Management Studio定义(删除)default约束 步骤1:右键要建立default约束的表选择“修改”。 步骤2:在弹出的窗口中对应字段的“默认值或绑定”处 输入默认值。 步骤3:点击保存即可。
PRIMARY KEY约束在表中定义一个主键,唯一的标 识表中的行。一个表只能有一个PRIMARY KEY约束。
当向表中的现有列添加PRIMARY KEY约束时,SQL Server将检查列中现有的数据以确保现有数据遵从主键的 规则,即无空值、无重复值。 每个表都应有一个主键。主键可以是一列或列组合。
CREATE TABLE kc_new (5-4)
(课程号 CHAR(4) NOT NULL CONSTRAINT pk_kch1 PRIMARY KEY, 课程名 CHAR(16) NOT NULL CONSTRAINT ix_kcm1 UNIQUE,
学分 SMALLINT,
数据库的安全性、完整性、并发控制和恢复

数据库的安全性、完好性、并发控制和恢复为了保证数据库数据的安全靠谱性和正确有效, DBMS 一定供给一致的数据保护功能。
数据保护也为数据控制,主要包含数据库的安全性、完好性、并发控制和恢复。
数据库的安全性数据库的安全性是指保护数据库以防备不合法的使用所造成的数据泄漏、改正或损坏。
计算机系统都有这个问题,在数据库系统中大批数据集中寄存,为很多用户共享,使安全问题更加突出。
在一般的计算机系统中,安全举措是一级一级设置的。
在 DB 储存这一级可采纳密码技术,当物理储存设施失窃后,它起到保密作用。
在数据库系统这一级中供给两种控制:用户表记和判定,数据存取控制。
在 ORACLE 多用户数据库系统中,安全体制作以下工作:防备非受权的数据库存取;防备非受权的对模式对象的存取;控制磁盘使用;控制系统资源使用;审计用户动作。
数据库安全可分为二类:系统安全性和数据安全性。
系统安全性是指在系统级控制数据库的存取和使用的体制,包含:有效的用户名 /口令的组合;一个用户能否受权可连结数据库;用户对象可用的磁盘空间的数目;用户的资源限制;数据库审计是不是有效的;用户可履行哪些系统操作。
数据安全性是指在对象级控制数据库的存取和使用的体制,包含:哪些用户可存取一指定的模式对象及在对象上同意作哪些操作种类。
在 ORACLE 服务器上供给了一种随意存取控制,是一种鉴于特权限制信息存取的方法。
用户要存取一对象一定有相应的特权授给该用户。
已受权的用户可随意地可将它受权给其余用户,因为这个原由,这类安全性种类叫做随意型。
ORACLE 利用以下体制管理数据库安全性:数据库用户和模式;特权;角色;储存设置和空间份额;资源限制;审计。
数据库的存取控制ORACLE保护信息的方法采纳随意存取控制来控制所有用户对命名对象的存取。
用户对对象的存取受特权控制。
一种特权是存取一命名对象的同意,为一种规定格式。
ORACLE 使用多种不一样的体制管理数据库安全性,此中有两种体制:模式和用户。
第二章数据库的完整性控制数据完整性(DataIntegrity)是指数据的精确

第二章数据库的完整性控制数据完整性(Data Integrity)是指数据的精确性(accuracy)和可靠性(reliability),它是防止数据库中存在不符合语义规定的数据和防止因错误的信息的输入造成无效操作或错误信息而提出的,保证在一个应用程序更新数据的过程中数据的语义正确性。
数据完整性主要分为三类:实体完整性(Entity Integrity),参照完整性(Referential Integrity)以及用户定义的完整性(User-defined Integrity),其中用户定义的完整性主要包括域完整性(Domain Integrity)和其他自定义完整性。
为维护数据库德完整性,数据库管理系统(DBMS)必须提供一种机制来检查数据库中的数据,看其是否满足语义规定的条件。
这些加在数据库数据上的语义约束条件称为数据库完整性规则,它们作为模式的一部分存入数据库中。
完整性控制是指对数据库进行更新操作,要遵守完整性规则,才能保证数据的语义正确性,防止数据库中存在不符合语义的数据。
目的是在合法用户访问数据库的过程中,保证数据的正确性和准确性。
完整性检查机制是指在DBMS中检查数据是否满足完整性条件的机制。
由DBMS在执行更新动作时,检查是否满足预定的完整性约束条件,来进行控制。
广义的完整性控制包括故障恢复、并发控制。
而一般所指的完整性控制是指基于数据库的完整性约束规则,如:实体完整性、引用完整性等。
SQL中两种主要的数据完整性控制机制是指完整性约束规则的定义和检查以及触发器(Trigger)机制。
完整性控制机制应具有三个功能:(1)定义功能,即提供定义完整性约束条件的机制;(2)检查功能,即检查用户发出的操作请求书否违反了约束条件;(3)如果发现用户操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。
完整性控制机制的工作原理基本上分为两类,一种是定义完整性时就立刻进行检查的,例如实体完整性的定义;另外一种是定义完整性之后进行检查的,例如参照完整性的定义。
数据完整性

3.5 数据完整性在数据库中数据完整性是指保证数据正确的特性,一般包括实体完整性、域完整性、参照完整性。
一、实体完整性是保证表中记录唯一的特性。
即在一个表中,不能有重复的纪录。
候选关键字:如果一个字段的值或几个字段的值能够唯一标识表中的一条记录,这样的字段称为侯选关键字。
主关键字:在一个表中可能会有几个具有这种特性的字段或者字段的组合,这时从中选择一个作为主关键字。
在VFP中将主关键字称做主索引,将侯选关键字称为侯选索引。
实现方法:在VFP中利用主关键字(主索引)或候选关键字(候选索引)来保证表中记录的惟一性。
例1. 打开数据库“成绩管理”,为学生表中的“学号”字段建立主索引(升序)。
二、域完整性1.域:列的取值的范围(EG:数学中的定义域)域完整性:列的取值范围合理性我们以前在创建表的时候指定不同的数据类型和宽度来限制字段的取值类型和取值范围,但这些还远远不够。
我们需要进一步对列里能输入什么样的数据严格要求。
2.实现域完整性的方法:设置列的有效性规则,设置列的默认值⑴设置列的有效性规则例2. 设置“成绩管理”数据库中“学生”表中年龄字段的有效性规则:要求学生表中的年龄必须在15-22之间,否则就认为输入无效!并提示“年龄只能在15-22岁之间!”例3. 设置“学生”表中系部字段的有效性规则:要求系部列的取值必须是四个系之一,如果输入其他值就认为输入无效!并提示“该系部名不存在!”例4.设置“成绩”表中成绩的有效性规则为:成绩只能在0-100分之间,如果用户输入错误,则提示“成绩不在范围内!”⑵为列设置默认值例5.对“学籍”表进行修改,设置“入学日期”的默认值为2009-08-26,然后打开表,输入一条新记录,观察现象例6. 对“学生”表进行修改,设置“系部”列的默认值为基础部,然后打开表,使用Append命令输入一条新记录,观察现象三、参照完整性1.思考:⑴如果同学们在填学生表的时候将自己的班级名称写错了, 写成了一个学校中根本不存在的班级, 这样的结果肯定是错误的。
数据库完整性(好)资料重点

❖ 参照完整性的常见实现机制包括:
▪ 外键(Foreign Key)、检查(Check)、触发器(Trigger);存 储过程(Stored Procedure)
❖ 常见的实现机制包括:
▪ 规则(Rule)、创建数据表时的所有约束(Constraint)、触发 器(Trigger)、存储过程(Stored Produre);
二、在SQL Server 2005中实现数据完整性
❖ SQL Server 2005提供了完善的数据完整性机制,主 要包括规则、默认值和约束3类;
第六章 数据库完整性
授课教师:刘跃娟 2013-12-6
数据库完整性
❖ 数据是数据库的核心,数据的正确和完整与否将直接影响数据 库的使用。
❖ 数据的完整性和安全性是两个不同概念;
▪ 数据的安全性
➢ 保护数据库防止恶意的破坏和非法的存取 ➢ 防范对象:非法用户和非法操作
▪ 数据的完整性
➢ 防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正 确的数据
❖ 实体完整性:在现实世界中,任何一个实体都有区别于其他实 体的特征,即在数据库中,所有的记录都应该有惟一的标识, 这就是实体完整性的含义(规则2.1:实体完整性规则)。
❖ 常见的实体完整性机制包括:
▪ 主键(Primary Key);惟一码(Unique);
2)参照完整性
❖ 参照完整性是指在两个表的主键和外键之间数据的完整性,其 含义包括:
➢ 防范对象:不合语义的、不正确的数据
本次课内容
一. 数据完整性概述 二. 在SQL Server 2005中实现数据完整性
检查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. 定期检查数据库完整性,例如每周或每月进行一次完整性检查。
数据完整性在数据库应用系统中的设计与实现

4 默认 ( E A L . D F U T)约 束 。
它 为表 中某 列建 立一 个默 认值 , 当用户插 入 记录 是 ,如 果没 有 为该 列提供 输入 值 , 统 自动采用 默 认值 。 系 默认 值可 以使 常量 、 内置 函数或表 达式 ,采 用默 认约 束可 以提 高输入 记录 的速 度 。 5 外键 (OE G E )约束 。 . FR INK Y 外键 为 一个表 中的一 列或 列组合 ,虽 不是 该表 的主 键 ,但却 是 另一 个表 的主键 。通过 外键 约束 可 以为相关 联 的两个 表建 立联 系 ,实 现数据 的引用 完整性 ,维 护表 之 间数据 的一致 性关 系 。 ( )使 用规 则 实现数 据完 整性 二 规 则 是 一种 数 据 库 对 象 ,用 于 限制 输 入值 的取 值 范 围 。 与 C EK约束 比较 ,规 则更 加简 明 ,可 以在 建表 时 由 C ET AL HC R AET BE 语句 将其 作 为表 的一 部分进 行指 定 ,在一 个列 上智 能应 用一 个规 ( )实体 的完整 性 一 则 ,并 且规则 只 需定 义一 次可 以多次 应用 多个 表或 多个 列 ,也可 实体 即为数 据库 中表的记 录。 在表 中, 每一条记 录都需要 非空 , 以应 用 到用户 定义 的数据类 型上 。触 发器 是一 种 实施 复杂 的完整 并且 键值不 重复 ,保证 了数据所代 表的任 何事物都不 存在重 复。 性 约束 的有效 方法 ,当对它 所保 护 的数据 进行 修 改时 自动激 活 , ( )域 完整 性 二 防 止对数 据进 行不 正确 、未授 权 或不 一致 的修 改 。 在使 用之 前 ,采用 CE T UE r l—a e 行创 建 ;然后 R AE RL u enm 进 组成 记录 的 列成 为域 。表示 输入 表 中指定 列对 的数 据必 须具 有 正确 的数据 类 型、格 式和 有效 的数据 范 围 。 绑 定至 列或用 户 定义 的数据 类 型上 ,当某 个字 段不 再 需要规 则对 ( )引用完 整性 三 其 输入 的数据 进行 限制 时 , 以通 过 s—n idu e“ 可 p ub nr l 表名 . 字段 对于 有关 联 的两个 或两 个 以上的表 ,通 过使 用主 键和 外键 或 名 ”进行 删除 。 主键 和 唯一键 之 间的关 系 , 使得 表 中的键值 在所 有表 中保 持一 致 。 ( )使 用默 认值 实现数 据完 整性 三 ( )用 户定 义 的完 整 性 四 默认 也是 党项 表 中输入 记录 时 ,没有 为某 列提供 输入 值 ,如 表示 在应 用领 域应 该遵 守 的约束 条件 。允许 用户 定义 不属 于 果该 列被 绑定 了默 认对 象 ,系统 会 自动将 其值付 给 该列 。与 规则 其他 人和 完整 性分类 的特 定业 务规 则 。 相似 ,包 含默 认 的创建 、绑 定 、解绑 和删 除 ,既可 以在 查询 分析 二 、数据 完整性 的设 计 与实现 器 中完成 ,也 可 以在 企业 管理 其 中完成 。 为 了保证存 放数 据 的正确 性和 一致 性 ,SLSr e Q e vr可 以对 数 三 、结束 语 据施 加一 个或 多个 数据 完整 性约 束 。这 些约 束 限制 了对数 据库 的 数据 的完 整性 是数据 库应 用 系统 的基本 功能 。在 SLsr e Q e vr 数据 值 ,或者 限制 了数据 库修 改所 产生 的数 据值 ,或 限制 了对数 数 据 库系 统中 ,可 以根据 具体 情 况 ,灵活采 用一 种或 多种 方法 建 据库 中某 些值 的修 改 。 立 数 据完 整性 的机 制 ,不仅可 以拒 绝 非法数 据 的提交 ,而 且保 证 用 户 及时 得到操 作 反馈信 息 ,提 高系统 数据 的可靠 性和 安全 性 。 ( )使用 约束 实现 数据 完整性 一 约束 是 SL Sr e 提 供 的 自动 强制 数据完 整性 的方 式之 一 , Q ev r 参考 文献 : 通过 定义 列的取 值规 则维 护数据 的完 整 性 。 f 李 芳 . L Sre 中数 据 完 整 性 的 实 现 技 术 现 代 电 子技 1 1 S e r Q v 约束 的类 型包括 : 术 ,0 2 20 1主键 ( KM R E )约 束 。 . P IA YKY f 刘 晓恂 . L Sr r数 据库 系统 中数 据 完整 性 的控制 u_ 州教 2 1 S e e Q v 】 扬 通过在 表 中定义 一个 主键 标 识表 中的每 行记 录 ,但 是 每个表 育 学院 学报 , 0 2 7 0 『 汤娟 , 3 1 刘小梅 . 据库 应 用 系统 中数据 完整 性 的研 究卟 交通与 计 数 中只 能有一 个主键 ,并且 唯一 且不 能为 空。 2 唯一 ( N Q E . U I U )约束 。 算机 , 0 2 2 0 该 约束 主要 用来 限制 表 的非主键 列 中不 允许输 入重 复值 。在 『l 洪. e e . 系数据 库 系统 管理 与开发 指 南. 工 4杨正 s Sr r 0关 QL v 7 机械 个表 中 ,可 以设置 多个 唯一 约束 ,每 个唯 一约 束可 以定义 到一 业部 出版社 , 0 2 0 0 『Mi oo QLSr r . 5 c s ̄S ev 0数据 库 系统 管理 与应 用 开发 . 1 r e7 北京人 民 列上 ,也可 以定 义到 多列上 ,空值可 以出现在某 列 中一 次。 3 检查 ( H C )约束 。 . CE K 邮 电 出版社 , 9 1 9 9 通 过检 查输 入表 列 的数据 的值 来维 护值 域 的完整性 ,通 过对 【 薛华 成. 6 】 管理信 息 系统. 大学 出版社 , 9 清华 1 5 9
DBMS基本操作

DBMS基本操作DBMS(Database Management System)是指数据库管理系统,用于管理和操作大规模的数据库。
DBMS提供了一些基本的操作来创建,查询,更新和删除数据,以及维护数据库的完整性和安全性。
DBMS的基本操作包括以下几个主要方面:1.数据定义语言(DDL)操作:-创建数据库:使用CREATEDATABASE语句来创建一个新的数据库。
-创建表:使用CREATETABLE语句来定义一个新的表,包括表名、列名、数据类型和约束条件。
-修改表结构:使用ALTERTABLE语句来添加、修改或删除表的列、索引、约束等。
-删除表:使用DROPTABLE语句来删除一个已存在的表。
2.数据操作语言(DML)操作:-插入数据:使用INSERT语句将新的数据行插入到表中。
-查询数据:使用SELECT语句来从表中检索数据,可以通过WHERE子句来指定条件。
-更新数据:使用UPDATE语句来更新表中已存在的数据行。
-删除数据:使用DELETE语句来删除表中的数据行,也可以通过WHERE子句来指定条件。
3.事务管理操作:-开始事务:使用BEGINTRANSACTION语句来开始一个新的事务。
-提交事务:使用COMMIT语句来提交一个事务,将对数据库的修改永久保存。
-回滚事务:使用ROLLBACK语句来回滚一个事务,撤销对数据库的修改。
-设置保存点:使用SAVEPOINT语句来设置一个保存点,以便在事务中可以回滚到该点。
4.数据库完整性约束:-主键约束:用于唯一标识表中的每一条记录。
-外键约束:用于建立表之间的关联关系。
-唯一约束:用于确保其中一列的值在表中唯一-非空约束:用于确保其中一列的值不能为空。
-默认值约束:用于在插入数据时为其中一列指定默认值。
5.数据库安全性操作:-用户管理:使用CREATEUSER语句来创建一个新的用户,以及GRANT 和REVOKE语句来授予或撤销用户对数据库的访问权限。
第五章 数据库完整性

例2:将SC表中的SNO、cno属性组定义为码 create table sc (sno char(9) not null, cno char(4) not null, grade smallint, primary key(sno,cno) )
8
5.1.2 实体完整性的违约处理
对于实体完整性的检查,包括:
在子表中修改外码(也是主属性)的策略
6. 在参照关系(子表)中修改外码(同时是主码 属性 )。与在参照关系中插入元组类似,可以 有2种策略: 受限修改 递归修改 RDBMS在实现参照完整性时: 需要向用户提供定义主码、外码的机制。 向用户提供按照自己的应用要求选择处理依 赖关系中对应的元组的方法。
6
5.1 实体完整性
5.1.1 定义实体完整性 例1:将student表中的sno属性定义为码 create table student (sno char(9) primary key, sname char(20) not null, ssex char(2), sage smallint, sdept char(20) )
26
5.4 完整性约束命名子句
1. 完整性约束命名子句 Constraint <完整性约束条件名><完整性约 束条件> 例5.10 建立学生登记表 student,要求学号在 90000—99999 之间,姓名不能取空值,年 龄小于30,性别只能是“男”或者“女”
5
数据库完整性控制机制
DBMS完整性控制机制: 1. 提供定义完整性约束条件的机制:提供定义数 据完整性约束条件的方法,完整性约束条件作为 模式的一部分存入数据库中; 2. 提供完整性检查的方法:进行完整性检查,检 查数据是否满足约束条件; 3. 进行违约处理:若有违反,采取相应措施(拒 绝、报告、改正)处理。 完整性子系统:DBMS中执行完整性控制的子系统。 其功能为监督事务的执行,测试其是否违反完整性 约束条件;若有违反,则分情况进行预定的处理。
组织机构代码数据库数据完整性和安全机制概述

改; 再例 如 修改列 值 时有 时需 要ห้องสมุดไป่ตู้ 照 l 旧值 , 且新 其 并 旧值 之 间需要 满 足某 种约 束条 件 ,如经 济类 型 原来
录入 的是 小类 不能 改 为 巾类 或大类 。
2 代 码 数 据 的 安 全 性
代码 数据 完 整性 是指 代码 数据 库数 据 的正 确性 与相 容性 数据 库 完整性 是 判别数 据 库数据 质 量好 坏 的一个 主要标 准 。 了维护 数据库 的 完整性 , 为 代码 数据 库 管理 系统 提供 了一 组 检查数 据 库 中数 据 是否 满足 语 义约 束规 定 的条件 ,包 括检 查 数据 关 系模 型 的完整 性 约束 条件 ,以及利 用存储 过 程触 发器 等将 完 整性 约束 条件 变成 实 现检 查 ,数据 完 整性 约束具 备 如下 特征 : ( ) 据 的值 正 确 无 误 , 1数 即数 据 类 型正 确 , 数据 的值 规定 的范 围之 内 ] ( )数 据 的存储 符 合表 格数 据之 间 及不 同表 格 2 数 据之 间 的 自洽关 系 。 () 3 数据 完整 性约 束 , 即静态 约束 和动态 约束 。 静 态 约束是 指 数据 库在 稳定 状态 时数 据对 象 应 满 足 的约 束 条件 括 静态 列 级 约束 、 态元 组 ( 包 静 记 录) 约束 、 态关 系约 束 以及空值 约束 。 静 静态 元组 ( 记 录) 约束 就是 规定 数据记 录 之间各 个列 值 的关系 。 例 如 机构类 型 、 注册 资 金 , 法人 姓名 、 注册 号 、 身份 证 号 码( 护照 号码 ) ; 等 如果机 构类 型是 企业 法 人 , 册 资 注 金 就不 能为空 , 册号 和法 人姓 也不 能为 空 静态 注 关系约 束是 指在 一 个 关系 的各 个元组 ( 记录 ) 间或 之 者若干 关 系之 问存 存 的约束 .一 般有 实体 完 整性 约 束, 应用 完 整性 约 束 , 函数依 赖 约束 和统 计约束 ,统 汁约束 指 字段值 与 关 系 中多个元 组 的统 计之 问 的约
05_数据库完整性

全表扫描.依次判断表中每条记录的主码值与 将插入记录上的主码值(或修改的新主码值) 是否相同.十分耗时. 在主码上自动建立索引(如B+树索引).可大 大提高效率.
5.2 参照完整性
5.2.1 参照完整性定义
在CREATE TABLE中用FOREIGN KEY短语来定 义哪些列为外码,用REFERENCES短语指明这 些外码参照哪些表的主码. 见课本P154 [例3]
定义触发器(续)
INSERT,UPDATE和DELETE三个选项是指定在表或视图 上执行哪些数据修改语句时将激活触发器的关键字.必须 至少指定一个选项.在触发器定义中允许使用以任意顺序 组合的这些关键字.如果指定的选项多于一个,需用逗号 分隔这些选项. AS后是触发器要执行的操作. CREATE TRIGGER 权限默认授予定义触发器的表所有者, sysadmin 固定服务器角色成员以及 db_owner 和 db_ddladmin 固定数据库角色成员,并且不可转让.
ALTER TABLE <表名> DROP < 完整性约束条件名>
5.6 触发器(Trigger)
触发器是用户定义在关系表上的一类由事件驱动的 特殊过程.一旦定义,任何用户对表的增,删,改 操作均由服务器自动激活相应的触发器,在DBMS 核心层进行集中的完整性控制.触发器类似于约束, 但是比约束更加灵活,可实施比FOREIGN KEY约 束,CHECK约束更为复杂的检查和操作,具有更 精细和更强大的数据控制能力.
定义触发器(续)
当你创建一个触发操作时,通常需说明所指的是触发语句 作用之前还是之后的列值.由于此种原因,我们用两个取 有特殊名字的虚拟表格来测试触发语句的作用:deleted 和inserted(在内存中,触发器完成运行后,这些表就不 能再访问). 这些表和指定触发器的表具有相同的结构. deleted表保 存受delete和update影响的行的副本.inserted表保存在 insert和update之后添加到触发器中的行的副本.
2022年哈尔滨理工大学网络工程专业《数据库原理》科目期末试卷B(有答案)

2022年哈尔滨理工大学网络工程专业《数据库原理》科目期末试卷B(有答案)一、填空题1、使某个事务永远处于等待状态,得不到执行的现象称为______。
有两个或两个以上的事务处于等待状态,每个事务都在等待其中另一个事务解除封锁,它才能继续下去,结果任何一个事务都无法执行,这种现象称为______。
2、在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则:保持原有的依赖关系和______。
3、视图是一个虚表,它是从______导出的表。
在数据库中,只存放视图的______,不存放视图对应的______。
4、某事务从账户A转出资金并向账户B转入资金,此操作要么全做,要么全不做,为了保证该操作的完整,需要利用到事务性质中的_____性。
5、在设计局部E-R图时,由于各个子系统分别有不同的应用,而且往往是由不同的设计人员设计,所以各个局部E-R图之间难免有不一致的地方,称为冲突。
这些冲突主要有______、______和______3类。
6、完整性约束条件作用的对象有属性、______和______三种。
7、设在SQL Server 2000环境下,对“销售数据库”进行的备份操作序列如下图所示。
①出现故障后,为尽可能减少数据丢失,需要利用备份数据进行恢复。
首先应该进行的恢复操作是恢复_____,第二个应该进行的恢复操作是恢复_____。
②假设这些备份操作均是在BK设备上完成的,并且该备份设备只用于这些备份操作,请补全下述恢复数据库完全备份的语句RESTORE_____FROM BKWITH FILE=1,_____;8、数据管理技术经历了______________、______________和______________3个阶段。
9、关系规范化的目的是______。
10、某在SQL Server 2000数据库中有两张表:商品表(商品号,商品名,商品类别,成本价)和销售表(商品号,销售时间,销售数量,销售单价)。
数据库系统概论第五章数据库的完整性PPT课件

02 数据完整性的实现方式
实体完整性
实体完整性定义
确保表中每条记录的唯一性,通常通过主键约 束来实现。
主键约束
主键是表中的一个或多个字段的组合,其值唯 一标识表中的每条记录。
主键的作用
确保表中数据的唯一性,防止重复记录的出现。
数据库完整性技术面临的挑战和机遇
数据量爆炸式增长
01
随着大数据时代的来临,数据库完整性面临数据量爆炸式增长
带来的存储、处理和管理挑战。
法规遵从与隐私保护
02
随着法规对数据保护的要求日益严格,数据库完整性需满足法
规遵从和隐私保护的需求。
技术创新与市场机遇
03
数据库完整性技术的发展将带来新的市场机遇,推动相关产业
参照完整性定义
维护数据库表之间的关系,确保引用数据的 一致性和准确性。
级联更新和删除
当父表中的数据发生变化时,自动更新或删 除子表中的相关数据。
外键约束
通过在子表中设置外键来引用父表的主键, 确保子表中数据与父表数据的一致性。
更新和删除规则
定义当父表中的数据发生变化时,如何处理 子表中的相关数据。
视图完整性
THANKS FOR WATCHING
感谢您的观看
视图完整性定义
基于一个或多个表的查询结果 集创建视图,并确保该结果集
的完整性。
视图的作用
提供了一个虚拟表,可以基于 现有表的数据进行查询和操作 。
视图的限制
通过在视图上定义约束来确保 数据的完整性和准确性。
视图与数据操作
对视图进行查询、更新、插入 和删除操作时,必须遵守视图
数据库的完整性和安全性实验报告

信息工程学院实验报告课程名称:《数据库原理》实验项目名称:数据库的完整性和安全性一、实 验 目 的:(1)掌握数据库约束的概念;(2)熟悉SQL SERVER 的完整性约束技术。
(3)了解SQL SERVER 的违反完整性处理措施。
(4)了解登录账户的管理理念与具体方法。
(5)了解数据库用户的管理的要则。
(6)了解用户权限管理的内涵与方法。
二、实 验 设 备 与 器 件 Win7 +Sql server 2008 三、实 验 内 容 与 步 骤(一)测试完整性运行附录中的SQL 语句,理解SQL 语句中包含的完整性定义。
然后执行下面的SQL 语句,看是否能正常运行,若无法执行,请说明原因。
1.对dept 表进行数据增删改,并检查完整性规则 Dept 已存在的完整性规则如下: dno CHAR(2)PRIMARY KEYdnameV ARCHAR(20) NOT NULL,UNIQUE(1)增加数据INSERT INTO dept V ALUES('D1','计科系');----正常插入INSERT INTO dept V ALUES('D2','电信系');----正常插入INSERT INTO dept V ALUES(NULL,'机械系'); ----违反dno 主键(NOT NULL )规则INSERT INTO dept V ALUES('D2','机械系'); ----违反dno 主键(UNIQUE )INSERT INTO dept V ALUES('D3',NULL); ----违反dname 的NOT NULL 规则INSERT INTO dept V ALUES('D3','计科系'); ----违反dname 的UNIQUE 规则INSERT INTO dept V ALUES('D3','机械系');----正常插入(2)删除数据DELETE FROM dept WHERE dno='D3';----正常删除(3)修改数据UPDA TE dept SET dname='计算机科学系' WHERE dno='D1';----正常修改UPDA TE dept SET dname='电信系' WHERE dno='D1'; ----违反dname的UNIQUE规则UPDA TE dept SET dname=NULL WHERE dno='D1'; 违反dname的UNIQUE规则2.对student表进行数据增删改,并检查完整性规则Student已存在完整性规则如下:sno CHAR(2) PRIMARY KEYsname V ARCHAR(20) NOT NULL,ssex CHAR(2) NOT NULL, CHECK(ssex in('男','女'))sage INT NOT NULL,dno CHAR(2) NOT NULL, FOREIGN KEY REFERENCES dept(dno)ON DELETE CASCADE ON UPDATE CASCADE(1)增加数据INSERT INTO student V ALUES('S1','张刚','男',20,'D1');----正常插入INSERT INTO student V ALUES('S2','李梅','女',21,'D2');----正常插入INSERT INTO student V ALUES('S2','吴敏','男',20,'D1'); ----正常插入INSERT INTO student V ALUES(NULL,'吴敏','男',20,'D1'); ----违反sno 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','男',NULL,'D1'); 违反sage 的主键(NOT NULL)规则INSERT INTO student V ALUES('S3','吴敏','M',20,'D1'); 违反ssex 的CHECK规则INSERT INTO student V ALUES('S3','吴敏','男',20,'D3'); ----正常插入INSERT INTO student V ALUES('S3','吴敏','男',20,'D1');----正常插入(2)删除数据DELETE FROM student WHERE sno='S3'; ----正常删除(3)修改数据UPDA TE student SET sname='赵强',dno='D2' WHERE sno='S1'-----正常修改UPDA TE student SET ssex='F' WHERE sno='S1'; -----违反ssex的CHECK 规则UPDA TE student SET sno='S2' WHERE sno='S1'; -----违反sno的主键(UNIQUE)规则UPDA TE student SET dno='D3' WHERE sno='S1'; 违反dno 的外键规则UPDA TE dept SET dno='D3' WHERE dno='D1';----检查dno的外键ON UPDATE规则,观察运行后效果DELETE FROM dept WHERE dno='D2';----检查dno的外键ON DELETE规则,观察运行后效果(二)使用规则实现数据完整性(1)在查询分析器中,利用命令(CREATE RULE),创建一个关于年龄(sage)约束的规则,将“sage”列的值约束在0~200之间;然后将所创建的规则绑定到“sage”列(提示:用命令Sp_bindrule)。
数据库设计——完整性(quan)

约束3:检查约束
作用:通过一个或多个字段上的输入值 是否符合设定的检查条件来保证数据库 数据的完整性。 一个表中可以定义多个检查约束; 每个CREATE TABLE语句中每个字段只 能定义一个检查约束; 当执行INSERT语句或者UPDATE语句时, 检查约束将验证数据;
数据库完整性
为维护数据库的完整性,DBMS必须:
1.提供定义完整性约束条件的机制 2.提供完整性检查的方法 3.违约处理
关系数据库的数据完整性
数据完整性就是指存储在数据库中的 数据的一致性和准确性。 在关系数据库中,主要有以下三种 类型: 行完整性 列完整性 参照完整性
• • •
关系数据库的数据完整性
create table customers ( CustomerID int identity(1,1) primary key, FirstName varchar(20) not null, LastName varchar(20) not null, Address varchar(100), City varchar(20), Tel varchar(20) UNIQUE, Company varchar(50), Birthday datetime, Type tinyint default 1 )
实现完整性的方法之一 —— 约束
使用CREATE TABLE语句(ALTER TABLE语 句)表示在创建(或修改)表的时候定义约束。 定义约束时,既可以把约束放在一个列上,也 可以把约束放在多个列上。如果把约束放在一 个列上,那么该约束称为列级约束;如果把约 束放在多个列上,那么把该约束称为表级约束。
Customers
字段号 1 2 3 4 5 6 7 8 字段名 客户ID 客户姓名 地址 城市 电话 公司 客户类型 出生日期 数据类型 整型 变长字符串 变长字符串 变长字符串 变长字符串 变长字符串 Tinyint 日期/时间 约束说明 标识列,主键 非空
数据库 默认值约束、默认值对象、检查约束、规则、完整性实现

Principle and Application of Database System
cno 3-105 6-166 3-105 3-245 3-105 3-245 3-105 6-166 3-105 6-166 3-105 3-245
degree 64 85 92 86 88 75 91 79 78 81 76 68
数据库原理与应用
Principle and Application of Database system 安庆师范学院计算机与信息学院
AnQing Teachers College Department of Computer & Information
Principle and Application of Database System
13.1 在表中定义及删除默认值约束
1. 默认值约束的定义
1) 定义表结构时定义字段的默认值约束 语法格式: CREATE TABLE table_name ( /*指定表名*/
column_name datatype NOT NULL | NULL [DEFAULT constraint_expression] [,…n] /*默认值约束表达式*/
) /*定义列名、该列的数据类型、是否空值及默认值约束*/
Principle and Application of Database System
例1 对于student数据库,定义studentx表时 定义ssex字段的默认值约束为男。
CREATE TABLE studentx
(sno char(5) PRIMARY KEY, sname char(8), ssex char(2) DEFAULT '男', sbirthday datetime,
数据库的数据完整性与一致性检查案例说明书

数据库的数据完整性与一致性检查案例说明书一、引言数据库是现代信息系统中的重要组成部分,为了保证数据库中数据的准确性和可靠性,数据完整性与一致性检查显得尤为重要。
本文通过案例说明,旨在介绍数据库的数据完整性与一致性检查的方法和步骤。
二、案例背景某电商平台的订单管理数据库中有一个名为“order”(订单)的表,其中包含订单号(order_id)、下单时间(order_time)、客户ID (customer_id)等字段。
由于业务增长迅速,该表的数据量已经达到了上百万条,而且不乏异常数据,例如订单号为空或重复,下单时间异常等情况。
为了保证订单数据的完整性和一致性,需要进行相应的检查和清理。
三、数据完整性检查数据完整性是指数据库中数据的正确性和完备性。
在订单管理数据库的案例中,可以通过以下方法进行数据完整性检查:1. 检查订单号的唯一性:通过查询数据库,统计订单号在表中的数量,如果存在订单号重复的情况,则说明数据存在问题,需进行清理。
2. 检查订单号的完整性:通过检查订单号是否为空或非法值,排除异常数据。
3. 检查下单时间的合法性:对下单时间进行范围检查,排除超过当前时间的异常数据。
四、数据一致性检查数据一致性是指数据的逻辑关系和业务规则在整个数据库中得到保持。
在本案例中,可以通过以下方法进行数据一致性检查:1. 检查客户ID的有效性:通过查询数据库,验证客户ID是否存在于客户信息表,排除无效客户ID的订单数据。
2. 检查订单时间与下单时间的关系:确保订单时间在下单时间之后,排除异常数据。
3. 检查订单状态的一致性:通过查询订单状态表,验证订单状态的合法性,排除异常订单状态的数据。
五、案例实施步骤为了保证数据库中订单数据的完整性和一致性,可以按照以下步骤进行案例实施:1. 数据备份:在进行任何数据检查和清理之前,先对数据库进行备份,以防止意外情况导致数据丢失。
2. 数据检查:按照上述的数据完整性和一致性检查方法,对订单表中的数据进行检查,记录异常数据和问题。
数据库的完整性约束-包含答案

数据库的完整性约束-包含答案实验八:数据库的完整性约束一、实验目的1.掌握主键约束、外键约束及及check约束的用法;2.掌握默认值约束的应用。
二、实验环境已安装SQL Server 2008 企业版的计算机;具有局域网环境,有固定IP;三、实验学时2学时四、实验要求1.熟悉数据库完整性相关概念及约束;2.了解约束、默认值;3.完成实验报告;五、实验准备知识1、创建primary key约束(1)在创建数据表时创建primary key约束CREATE TABLE table_name(column_name data_type [PRIMARY KEY | unique | NOT NULL] [, column_name data_type [PRIMARY KEY | unique | NOT NULL]...[PRIMARY KEY(column [,...n])])(2)在修改表时同时创建primary key约束ALTER TABLE table_nameADD primary key(column [,...n])2、创建Foreign key约束(1)创建表时同时定义Foreign key约束CREATE TABLE table_name(column_name data_type [FOREIGN KEY] REFERNCES ref_table(ref_column)[, column_name data_type [FOREIGN KEY] REFERNCES ref_table(ref_column)...[FOREIGN KEY] (column) REFERNCES ref_table(ref_column) )(2)通过修改表定义Foreign key约束ALTER TABLE table_nameADD [FOREIGN KEY] (column)REFERNCES ref_table(ref_column )3、创建check约束(1)创建数据表时创建check约束CREATE TABLE table_name(column_name data_type [NOT NULL | CHECK (logical_expression)] ...CHECK (logical_expression)])(2)在修改数据表时添加check约束ALTER TABLE table_nameADD CHECK (logical_expression)4、创建default约束(1)创建数据表时创建default约束Create table table_name( column_name datatype [not null | DEFAULT (constraint_expression)] …)(2)修改数据表时添加一个字段的同时创建default约束Alter table table_nameADD column_name datatype [not null |DEFAULT (constraint_expression)] with values(3)对表中指定的列定义默认值约束Alter table table_nameADD [ DEFAULT (constraint_expression)] For column5、完整性约束命名子句CONSTRAINT <完整性约束条件名>[PRIMARY KEY 短语︱FOREIGN KEY 短语︱CHECK 短语]6、删除primary key约束或unique约束ALTER TABLE table_nameDROP CONSTRAINT constraint_name [, ...n]六、实验内容及步骤使用T-SQL语句实现以下操作;1.请用至少2种方法定义stu数据库中student表的主键sno;方法1:CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20))方法2:CREATE TABLE Student(Sno CHAR(9),Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno))2.将数据库stu的表course的cno字段定义为主键,约束名称为cno_pk;Alter table courseAdd constraint cno_pk primary key (cno)3.为表course中的字段cname添加唯一值约束;Alter table courseAdd constraint cname_pk unique (cname)4.将数据库stu的表sc的sno及cno字段组合定义为主键,约束名称为sc_pk;Alter table scAdd constraint sc_pk primary key (sno,cno)5.对于数据表sc的sno、cno字段定义为外码,使之与表student 的主码sno及表course的主码cno对应,实现如下参照完整性:1)删除student表中记录的同时删除sc表中与该记录sno字段值相同的记录;2)修改student表某记录的sno时,若sc表中与该字段值对应的有若干条记录,则拒绝修改;3)修改course表cno字段值时,该字段在sc表中的对应值也应修改;4)删除course表一条记录时,若该字段在在sc表中存在,则删除该字段对应的记录;Use stuCreate table student(Sno CHAR(9),Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20),PRIMARY KEY(Sno))Create table course(cno char(4),cname char(40),cpno char(4),ccedit smallint,foreign key (cpno) references course(cno),primary key (cno))Create table sc(sno char(9),cno char(4),Grade smallint,foreign key (sno) references student(sno)on delete cascade on update no action,foreign key (cno) references course (cno)on delete cascade on update cascade)6.定义check约束,要求学生学号sno必须为9位数字字符,且不能以0开头,第二三位皆为0;Alter table studentAdd CONSTRAINT sno_ckCheck (sno like ‘[1-9]00 [0-9] [0-9] [0-9] [0-9] [0-9] [0-9]’)7.定义stu数据库中student表中学生年龄值在16-25范围内;CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT Check (sage>=16 and sage<=25),Sdept CHAR(20))8.定义stu数据库中student表中学生性别列中只能输入“男”或“女”;CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20),Ssex CHAR(2) Check(Ssex in (‘男’,’女’)),Sage SMALLINT,Sdept CHAR(20))9.定义stu数据库student表中学生年龄值默认值为20;CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,Sname CHAR(20),Ssex CHAR(2),Sage SMALLINT Default 20,Sdept CHAR(20))七、出现问题及解决办法如:某些操作无法执行,如何解决?。
MySQL的备份验证与完整性校验方法

MySQL的备份验证与完整性校验方法MySQL是一种常用的开源关系型数据库管理系统,由于数据在企业中的重要性不言而喻,备份和完整性校验是MySQL数据库管理中必不可少的环节。
本文将介绍MySQL的备份验证与完整性校验方法,帮助读者更好地保护数据库数据的安全性。
一、备份验证方法1. 内容校验在备份MySQL数据库之前,首先需要采取措施验证备份的内容是否正确。
可以使用命令行工具mysqldump来进行备份,备份后使用gunzip命令进行解压,再使用mysqldump命令将备份文件导入到数据库中。
之后,使用SELECT语句从数据库中选择数据,并与原数据库做对比,确保数据的一致性。
2. 数字签名数字签名提供了一种验证备份文件完整性的方法。
在备份过程中,可以对备份文件进行数字签名,然后使用相应的公钥验证数字签名的有效性。
这样可以确保备份文件在传输过程中未被篡改。
3. 哈希校验为了验证备份文件的完整性,可以使用哈希算法对备份文件进行计算得到哈希值,并保存在备份文件的文件名或指定的文件中。
在数据需要恢复时,再次计算备份文件的哈希值,并与之前保存的哈希值进行对比,以验证备份文件的完整性。
二、完整性校验方法1. 校验和验证MySQL提供了校验和验证机制,通过对存储引擎的数据块进行检查和计算校验和值,以验证数据的完整性。
在创建表时可以指定校验和选项,MySQL会自动生成校验和值并与数据块进行比较,以检测数据块是否发生损坏。
2. 数据校验工具除了MySQL自带的校验和验证,还可以利用一些数据校验工具来验证MySQL数据库的完整性。
例如,可以使用pt-table-checksum工具对MySQL数据库中的表进行校验,以确保数据的一致性。
三、故障恢复方法除了备份验证与完整性校验,故障恢复也是MySQL数据库管理中的一个重要环节。
以下是一些常用的故障恢复方法:1. 冷备份恢复冷备份恢复指的是在数据库停止运行的情况下进行的数据恢复。
实验5 索引和数据完整性_MySQL数据库教程_[共3页]
![实验5 索引和数据完整性_MySQL数据库教程_[共3页]](https://img.taocdn.com/s3/m/c5a53b2c770bf78a6429545d.png)
177
实验5
索引和数据完整性
目的与要求
(1)掌握索引的使用方法;
(2)掌握数据完整性的实现方法。
实验准备
(1)了解索引的作用与分类;
(2)掌握索引的创建方法;
(3)理解数据完整性的概念及分类;
(4)掌握各种数据完整性的实现方法。
实验内容
1.创建索引
(1)使用CREATE INDEX 语句创建索引
① 对YGGL 数据库的Employees 表中的DepartmentID 列建立索引。
在MySQL 客户端输入如下命令并执行:
create index depart_ind
on Employees(DepartmentID);
② 在Employees 表的Name 列和Address 列上建立复合索引。
create index Ad_ind
on Employees(Name, Address);
③ 对Departments 表上的DepartmentName 列建立唯一性索引。
create unique index Dep_ind
on Departments(DepartmentName);
【思考与练习】
a .索引创建完后可以使用SHOW INDEX FROM tbl_name 语句查看表中的索引。
b .对Employees 表的Address 列进行前缀索引。
c .使用CREATE INDEX 语句能创建主键吗?
(2)使用ALTER TABLE 语句向表中添加索引
① 向Employees 表中的出生日期列添加一个唯一性索引,姓名列和性别列上添加一个复合索引。
使用如下SQL 语句:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4实验报告
实验内容与完成情况:
一、三类完整性的实现
对系表Dept、学生表Student、教师表Teacher、课程表Course、SC表,教师授课表TC,实现规定的完整性,并验证,当操作违反了完整性约束条件时,DBMS如何处理。
--1、Dept表
--? DEPTNO CHAR()
--? E VARCHAR()DNAM
--? 实体完整性:DEPTNO为主码;
--? 用户定义完整性
--①DEPTNO的取值为至;
--②DNAME取值非空且唯一;
CREATE TABLE DEPT
(DEPTNO CHAR(2)PRIMARY KEY
constraint c1 check(DEPTNO between 01 and 99),
DNAME VARCHAR(20)
constraint c2 NOT NULL unique,
);
--2、Student表
-- SNO CHAR()
-- SNAME VARCHAR()
-- SEX CHAR()
-- DEPTNO CHAR()
--
--实体完整性:SNO为主码;
--参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作;
--用户定义完整性
--①SNO取值为级的学号取值范围,如等。
--②SNAME 取值非空;
--③SEX的取值只能为男或女;
CREATE TABLE Student
(SNO CHAR(10)PRIMARY KEY
constraint b1 check(SNO between 2010080000 and 2010089999), Sname varCHAR(8)NOT NULL unique,
Ssex CHAR(2)
constraint b2 check(Ssex in('男','女')),
DEPTNO CHAR(2),
FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO)
on delete cascade
on update cascade
);
drop table Student
--3、Teacher表
-- TNO CHAR()
-- TNAME VARCHAR()
-- DEPTNO CHAR()
--
--实体完整性:TNO为主码;
--参照完整性:DEPTNO为外码,并实现级联更新和级联删除操作;
--用户定义完整性
--①TNO取值为开头的四位数字字符串;
--②TNAME取值非空;
CREATE TABLE Teacher
(TNO CHAR(3)PRIMARY KEY
constraint a1 check(TNO between 0800 and 0899),
TNAME varCHAR(8)NOT NULL,
DEPTNO CHAR(2),
FOREIGN KEY(DEPTNO)REFERENCES DEPT(DEPTNO)
on delete cascade
on update cascade
);
drop table Teacher
--4、Course表
-- CNO CHAR()
-- TNO CHAR()
-- CNAME VARCHAR()
-- CREDIT SNALLINT
--
--实体完整性:CNO;
--用户定义完整性
--①CNAME取值非空;
--②CREDIT取值为至以内的数字;
--参照完整性:TNO为外码,并实现级联更新和级联删除操作;
CREATE TABLE Course
(CNO CHAR(4),
TNO CHAR(3),
CNAME CHAR(20)NOT NULL,
CREDIT INT check(CREDIT>=1 and CREDIT<=10),
PRIMARY KEY(CNO),
FOREIGN KEY(TNO)REFERENCES Teacher(TNO)
on delete cascade
on update cascade,
);
drop table Course
--5、SC表
-- SNO CHAR()
-- CNO CHAR()
-- GRADE SMALLINT
--
--实体完整性:(SNO,CNO)为主码;
--参照完整性:SNO外码、CNO外码,都实现级联删除和级联更新操作;
--用户定义完整性
-- GRADE取值在到之间。
CREATE TABLE SC
(SNO CHAR(10),
CNO CHAR(4),
GRADE SMALLINT check(GRADE>=0 and GRADE<=100),
PRIMARY KEY(SNO,CNO),
FOREIGN KEY(SNO)REFERENCES Student(SNO)
on delete cascade
on update cascade,
FOREIGN KEY(CNO)REFERENCES Course(CNO)
on delete no action
on update no action,
);
--二、触发器的实现
--1、修改Student表,增加属性CNT,SMALLINT型,表示学生的选课门数,设置CNT的默认值为。
--增加属性SZK,SMALLINT型,表示素质选修课学分。
ALTER TABLE Student ADD CNT SMALLINT;
ALTER TABLE Student ADD SZK SMALLINT;
--在Student表上创建以下触发器。