数据库第12章 数据库完整性控制.pptVIP

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库第12章 数据库完整性控制

12.5 数据的锁定 并发问题 多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生数据不一致的问题。 并发问题包括: 丢失或覆盖更新(Lost Update) 未确认的相关性(脏读,Dirty Read) 不一致的分析(非重复读,Non-Repeatable Read) 幻想读 12.5 数据的锁定 SQL Server的锁模式 锁(lock):是一种安全机制,用于控制多个用户的并发操作,以防止用户读取正在由其他用户更改的数据或者多个用户同时修改同一数据。 锁模式:确定并发事务访问资源的方式。 共享锁(share lock):锁定的资源可以被其他用户读取,但其他用户不能修改它(只读操作)。 排他锁(exclusive lock):锁定的资源只允许进行锁定操作的程序使用,其他任何对它的操作均不会被接受。 更新锁(update lock):用于可更新的资源中,是为了防止死锁而设立的。 12.5 数据的锁定 通过企业管理器查看和终止锁 在企业管理器中选择目录树窗口中“管理”文件夹下“当前活动”项中的“锁/进程ID”选项,可以查看当前锁定的进程。选择同级的“锁/对象”选项下的相应选项,则可以查看当前锁定的对象。 12.5 数据的锁定 右键单击任务板窗口中的对象,从快捷菜单中选择【属性】项,则会出现如下图所示的锁的进程细节对话框。在此,可以刷新或终止锁的进程。 12.5 数据的锁定 死锁及其防止 死锁(deadlocking)是在多用户或多进程状况下,为使用同一资源而产生的无法解决的争用状态。 死锁会造成资源的大量浪费,甚至会使系统崩溃。在SQL Server2000中,通常由锁监视器线程自动定期对死锁进行检测。当识别死锁后,SQL Server自动设置一个事务结束死锁进程。 12.5 数据的锁定 防止死锁应遵循以下原则: (1) 尽量避免并发地执行涉及到修改数据的语句。 (2) 要求每个事务一次就将所有要使用的数据全部加锁,否则就不予执行。 (3) 预先规定一个封锁顺序,所有的事务都必须按这个顺序对数据执行封锁。例如,不同的过程在事务内部对对象的更新执行顺序应尽量保持一致。 (4) 每个事务的执行时间不可太长,对程序段长的事务可考虑将其分割为几个事务。 小结与提问 数据库完整性约束 数据完整性问题 如何保证数据的完整性 约束 默认值 规则 事务处理 数据的锁定 * 多个用户同时对数据库的并发操作时会带来以下数据不一致的问题: 丢失更新 A,B两个用户读同一数据并进行修改,其中一个用户的修改结果破坏了另一个修改的结果,比如订票系统 脏读 A用户修改了数据,随后B用户又读出该数据,但A用户因为某些原因取消了对数据的修改,数据恢复原值,此时B得到的数据就与数据库内的数据产生了不一致 不可重复读 A用户读取数据,随后B用户读出该数据并修改,此时A用户再读取数据时发现前后两次的值不一致 并发控制的主要方法是封锁,锁就是在一段时间内禁止用户做某些操作以避免产生数据不一致 第12章 数据库完整性控制 计算中心 本章内容 12.1 约束 12.2 默认值 12.3 规则 12.4 事务处理 12.5 数据的锁定 数据完整性 数据完整性问题的提出 数据库中的数据是从外界输入的,由于种种原因,会发生输入数据无效或错误。为了保证输入的数据正确、符合规定,提出数据完整性问题。 数据完整性问题的解决 SQL Server2000中可以通过各种约束、默认值、规则等数据库对象来保证数据的完整性。 数据完整性包括实体完整性、域完整性、参照完整性和用户自定义完整性。 12.1 约束 约束(Constraint)是SQL Server提供的自动保持数据库完整性的一种机制,它定义了可输入表或表的单个列中的数据的限制条件。使用约束优先于使用触发器、规则和默认值。 约束独立于表结构,可以在不改变表结构的基础上,添加或删除约束。当表被删除时,表所带的所有约束定义也随之被删除。 12.1 约束 (1) 主键约束(Primary Key,PK) 表的一列或几列的组合的值在表中唯一地指定一行记录,这样的一列或多列称为表的主键,通过它可强制表的实体完整性。 主键不能为空,且不同两行的键值不能相同。 表本身并不要求一定要有主键,但最好给表定义主键。 在规范化的表中,每行中的所有数据值都完全依赖于主键。 例如:学生表中的学号。 12.1 约束 创建主键约束的方法 在企业管理器中,打开表设计器。 选择创建主键的列。 单击工具栏设置主键按钮 。 12.1 约束 (2) 外键约束(Foreign Key,FK) 外键约束定义了表与表之间的关系。 通过将一个表中一列或多列添加到另一个表中,创建两个表之间的连接,这个列就成为第二个表的外键,即外

文档评论(0)

wyjy + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档