- 1、本文档共112页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 2. 用户定义函数 函数也是一种存储过程,只不过它能返回值,返回值可以是单个标量值或结果集 返回单个数据值的函数称为标量函数, 返回结果集的函数称为表值函数 内联表值函数 内嵌表值函数返回一个单条 SELECT 语句产生的结果的表, 内联表值函数可以看成带参数的视图 多语句表值函数 多语句表值函数返回一个由一条或多条 Transact-SQL 语句建立的表 * 就这些吧… 好好学习,天天向上 * * * 网状模型的结点间的联系可以是任意的,任何二个结点间都能发生联系,更适于描述客观世界。 将层次模型中对结点的限制去掉后就成为网状模型。网状模型中,允许: (1) 一个结点可以有多个双亲结点; (2) 多个结点可以无双亲结点。 关系模型的数据完整性约束 实体完整性、参照完整性、用户自定义完整性 其中,实体完整性、参照完整性是必须支持的 关系模型的数据操纵 查询、插入、删除和修改操作 在关系数据库系统中,对数据的全部操作都可以归结为对关系的运算 * * 声明式数据完整性 作为对象定义的一部分来定义数据必须达到的标准 DBMS 自动强制完整性 通过使用约束、默认和规则来实现 过程式数据完整性 在脚本中定义数据必须达到的标准,强制完整性 通过使用触发器和存储过程来实现 可在客户端或服务器用其他编程语言和工具来实现 * 循环次数 令ai=|X(i)|,{ai}形成一个步长大于1的严格递增的序列,序列的上界是|U|,因此算法最多循环|U|-|X|。 * * 9.2.2 调度的冲突等价性 【例 9-3】证明调度S是否是可串行化调度。 S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B) 把W2(A)与R1(B)W1(B)交换,得到: R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B) * * 9.2.2 调度的冲突等价性 【例 9-3】证明调度S是否是可串行化调度。 S=R1(A)W1(A)R2(A)W2(A)R1(B)W1(B)R2(B)W2(B) 把W2(A)与R1(B)W1(B)交换,得到: R1(A)W1(A)R2(A)R1(B)W1(B)W2(A)R2(B)W2(B) 再把r2(A)与r1(B)w1(B)交换: L= R1(A)W1(A)R1(B)W1(B)R2(A)W2(A)R2(B)W2(B) 因为L等价于一个串行调度T1,T2 所以调度S是可串行化的调度 * 2.基于封锁的并发控制技术 封锁的类型 共享锁(Share lock,简记S锁,又称为读锁) 若事务T对数据对象A加上S锁,则其它事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁 排它锁(eXclusive lock,简记X锁,又称为写锁) 若事务T对数据对象A加上X锁,则只允许T读取和修改A,其它任何事务都不能再对A加任何类型的锁,直到T释放A上的锁 * 2.基于封锁的并发控制技术 封锁协议 在给数据对象加锁时,要考虑何时请求锁、持有锁的时间和何时释放等,要遵从一定规则。这些规则被称为封锁协议 一级封锁协议 事务T在修改数据A前必须先对其加X锁,直到事务结束才释放 可以避免丢失修改 不能保证可重复读和不读“脏”数据 * 2.基于封锁的并发控制技术 二级封锁协议规定: 在一级封锁协议基础上,事务T在读数据A之前必须先对其加S锁,读完后即可释放S锁 可以避免:丢失修改、读“脏”数据。 不能保证避免不可重复读的问题 三级封锁协议 在二级封锁协议基础上,某一事务施加的S锁要保持到该事务结束时才释放。 三级封锁协议可防止丢失修改、读脏数据和不可重复读 * 2.基于封锁的并发控制技术 三级协议的主要区别 什么操作需要申请封锁 何时释放锁(即持锁时间) * 2.基于封锁的并发控制技术 封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题: 活锁:指某个事务由于请求封锁,但总也得不到锁而长时间处于等待状态 避免方法:采用先来先服务的策略 当多个事务请求封锁同一数据对象时,按请求封锁的先后次序对这些事务排队 该数据对象上的锁一旦释放,首先批准申请队列中第一个事务获得锁。 * 2.基于封锁的并发控制技术 封锁技术可以有效地解决并行操作的一致性问题,但也带来一些新的问题(续) 死锁:指在同时处于等待状态的两上或多个事务中相互封锁了对方请求的资源,使得没有任何一个事物可以获得足够的资源运行完毕,而永远等待下去 预防死锁方法:一次封锁法 允许死锁发生,一旦检测到死锁,解除死锁的方法:选择一个处理死锁代价最小的事务,将其撤消,释放此事务持有的所有的锁,使其它事务能继续运行下去 * 两阶段封锁协议 两阶段封锁协议(Two-Phase Locking,简称
文档评论(0)