首页 数据库-第九章 完整性-new

数据库-第九章 完整性-new

举报
开通vip

数据库-第九章 完整性-newnull第九章 数据库完整性第九章 数据库完整性完整性约束条件 完整性控制 Sybase 的完整性完整性约束条件完整性约束条件数据库完整性: 指数据库的正确性和相容性, DBMS提供维护数据库完整性的功能 完整性约束条件: 根据实际应用需求, 数据库中的数据应满足一些规定的条件, 这些条件称为完整性约束条件 完整性约束条件是现实世界真实的反映 完整性检查: 指DBMS中检查数据是否满足完整性条件的机制完整性约束条件完整性约束条件完整性约束条件分为: 值的约束和结构约束: 指对数据取值类型、 范围、...

数据库-第九章 完整性-new
null第九章 数据库完整性第九章 数据库完整性完整性约束条件 完整性控制 Sybase 的完整性完整性约束条件完整性约束条件数据库完整性: 指数据库的正确性和相容性, DBMS提供维护数据库完整性的功能 完整性约束条件: 根据实际应用需求, 数据库中的数据应满足一些 规定 关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定 的条件, 这些条件称为完整性约束条件 完整性约束条件是现实世界真实的反映 完整性检查: 指DBMS中检查数据是否满足完整性条件的机制完整性约束条件完整性约束条件完整性约束条件分为: 值的约束和结构约束: 指对数据取值类型、 范围、精度等的规 定, 例如对属性规定 某个值集, 规定属性 取值类型、格式(职 工号第一位为字母, 后面是四位数字)指对数据之间联系的限制, 以关 系库为例:同一关系的不同属性 之间可能满足一定的约束条件( A1A2); 不同关系之间的属性取 值也可能要满足一定的约束条件 (外键取值)完整性约束条件完整性约束条件静态约束和动态约束: 立即执行约束和延迟执行约束: 完整性约束条件完整性约束条件例如: begin transaction update Students set Sno=‘95012’ where Sno=‘95001’; update SC set Sno=‘95012’ where Sno=‘95001’; commit 如是立即执行约束, 事务不能成功执行 如是延迟执行约束, 事务可以成功执行 完整性控制完整性控制DBMS完整性控制机制包括: 定义功能: 提供定义完整性约束条件的机制 检查功能: 检查用户提供的请求是否违背了完整性约束条件 如果发现用户的操作违背了完整性约束条件, 则采取一定的动作来保证数据的完整性(一般是取消该事务已产生的影响--恢复) Sybase 的完整性Sybase 的完整性在Sybase数据库中创建带有数据完整性和参照完整性的表: 把完整性作为表的一部分来说明即完整性约束子句 缺省约束default: 给出列的缺省值 create table Students(… sex char(1) default ‘M’, ... ); 检查约束check constrain: 限定插入列中的值 列级检查约束 Sybase 的完整性Sybase 的完整性 create table publishers( pub_id char(4) not null constraint chk_pubid check(pub_id in (‘1389’, ‘0736’, ‘0877’) or pub_id like ‘99[0-9][0-9]’) ….) 表级检查约束 create table discounts(discounttype varchar(40) not null, lowqty int, hightqty int, …, constraint chk_low_hight check(lowqty<=hightqty) );Sybase 的完整性Sybase 的完整性主键约束primary key constraint: 限定主键的列不可有重复值, 不可有空值 列级主键约束 create table publishers( pub_id char(4) constraint pky_pubid primary key clustered, pub_name varchar(30), ….) 表级主键约束 create table sales(stor_id char(4) not null, ord_num varchar(20) not null, date datetime not null, constraint pky_so primary key nonclustered(stor_id,ord_num))Sybase 的完整性Sybase 的完整性参照约束reference constraint: 列级参照约束 create table publishers( pub_id char(4) constraint pky_pubid primary key, pub_name varchar(30), ….) create table title( title_id int not null, title varchar(80) null, pub_id char(4) null constraint ref_pubid reference publishers(pub_id), note varchar(200) null)Sybase 的完整性Sybase 的完整性表级参照约束 create table publishers( pub_id char(4), pub_name varchar(30), …, constraint pky_pubid primary key(pub_id)) create table title( title_id int not null, title varchar(80) null, pub_id char(4) null, note varchar(200) null, constraint ref_pubid foreign key(pub_id) reference publishers(pub_id))Sybase 的完整性Sybase 的完整性唯一约束unique constraint: 列级唯一约束 create table publishers( pub_id char(4) not null constraint unq_pubid unique nonclustered, pub_name varchar(30), …) 表级唯一约束 create table publishers( pub_id char(4) not null pub_name varchar(30), …, constraint unq_pubid unique clustered(pub_id))缺省Sybase 的完整性Sybase 的完整性删除约束: 只能使用alter table语句, 增加、更新或删除现有表的约束 替换现有约束 原来: create table Students(…, sex char(1) default ‘M’); 替换: alter table Students replace sex default ‘F’Sybase 的完整性Sybase 的完整性增加约束 alter table Students add constraint chk_SA check(SA<30) 删除已有约束 alter table Students drop constraint chk_SA 相关存储过程 sp_helpconstraint 表名: 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 指定表上的关于约束的信息 sp_column_privileges 表名: 列级权限 sp_table_privileges 表名: 表级权限 Sybase 的完整性Sybase 的完整性在Sybase中解决完整性的方法还有规则、索引、触发器等 规则 创建一个值的清单或值的集合的规则 CREATE RULE rul_state AS @state in (‘CA’,’CO’,’WA’) 创建一个值的范围规则 CREATE RULE rul_disc_range AS @disco between 0 and 100 创建一个值由编辑掩码确定的规则 CREATE RULE rul_part_num AS @part_num like “[BF][1-9][1-9]_” Sybase 的完整性Sybase 的完整性规则 将规则rul_state与“authors.state”列和“publishers.state”列相绑定: EXEC sp_bindrule “rul_state”,”authors.state” EXEC sp_bindrule “rul_state”,” publishers.state” 将规则rul_disc_range与“discounts.discount”列相绑定: EXEC sp_bindrule “rul_disc_range”, “discounts.discount” 查看规则rul_state 的正文和其他有关的信息: EXEC sp_helptext rul_state EXEC sp_help rul_state 删除:DROP RULE rul_state Sybase 的完整性Sybase 的完整性唯一索引:限制唯一索引列的取值(唯一) CREATE [UNIQUE][CLUSTERED|NONCLUSTERED] INDEX index_name ON table_name(column_name[,column_name…]) 例如:为authors表的au_id列创建一个唯一索引 CREATE UNIQUE INDEX idx_u_auid ON authors(au_id)Sybase 的完整性Sybase 的完整性触发器 触发器(Trigger)是一种特殊类型的存储过程,通过事件(插入、删除和更新)触发执行。 -是实现复杂完整性约束的有效方法 如:主键被更新或删除外键值时应如何变更? -在应用中的其他作用 维护复制数据、保持导出数据列的当前值(自动更新导出列)、业务规则限制(书价不许一次提价超过10%)、实现定制MATCH_ word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1716002598476_0(监控:不许周六、周日插入表,银行必须记录大于10000的事务等。)nullSybase 的完整性Sybase 触发器的形式 CREATE TRIGGER trigger_name ON table_name FOR {INSERT,DELETE,UPDATE} AS sql 语句和语句组 nullSybase 触发器的举例 CREATE TRIGGER Tri_d_publishers ON publishers FOR DELETE AS if @@rowcount=0//没有行被删除 return //有行被删除:也删除title表中相应的行 DELETE titles FORM titles t,deleted d WHERE t.pub_id=d.pub_id RETURN null约束和触发器触发器用于维护数据库一致性,但最好考虑用约束 来实现同样的目的; 触发器根据操作来定义一致性; 约束易理解,能给DBMS较多机会优化执行; 约束可以阻止任何语句违反一致性; 触发器只能由特定语句来激活,比较灵活; 触发器的其他用途(如维护复制数据库等)
本文档为【数据库-第九章 完整性-new】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_113000
暂无简介~
格式:ppt
大小:83KB
软件:PowerPoint
页数:0
分类:小学语文
上传时间:2012-04-10
浏览量:30