完整性的要求数据库中数据的正确性相容性约束的实现.pptVIP

完整性的要求数据库中数据的正确性相容性约束的实现.ppt

  1. 1、本文档共33页,可阅读全部内容。
  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文档。上传文档
查看更多
举例: CREATE TRIGGER reminder ON titles FOR INSERT, UPDATE, DELETE AS EXEC master..xp_sendmail MaryM, Dont forget to print a report for the distributors. GO 数据访问接口 嵌入式SQL 宿主语言 处理复杂运算,执行复杂过程 丰富的库函数 数据库访问的困难 嵌入的SQL 方便的数据库访问 事务处理能力 上下文无关,无法处理复杂过程 嵌入式SQL 处理复杂过程 宿主语言 访问数据库 嵌入的SQL语句 嵌入式SQL 宿主语言与嵌入的SQL语句 不同的体系 DB厂商提供库函数 需对SQL语句进行预编译?宿主语言的体系 SQL语句?宿主语言的函数调用(参数) 统一编译?目标程序 嵌入式SQL语句 由EXEC SQL引导、以‘;’结尾 EXEC SQL Delete From 学生; 匹配失衡问题 数据模型之间的匹配 SQL?关系数据模型 宿主语言?传统数据模型 整数、实数、指针…… 寻找两者之间的平衡点 SQL数据以单个元组出现 避免元组的集合(组合) SQL/宿主语言的接口 变量 储存数据的单元 SQL/宿主语言通过变量传递信息 共同的变量集合——共享变量 以传统的方式在宿主语言中使用 在SQL语句中使用(以‘:’作前缀) 变量的声明 宿主变量 仅用于宿主语言的语句中 共享变量 可在宿主语言、嵌入的SQL语句中使用 共享变量声明段 变量的声明 int i = 2,j = 3; …… EXEC SQL BEGIN DECLARE SECTION; char 学号[8],姓名[20]; char 所在系[6]; EXEC SQL END DECLARE SECTION; 使用共享变量 嵌入式SQL中,以共享变量替代具体的值 在运行时获得变量的值 使用共享变量 Update、Insert中直接使用,替代值 EXEC SQL Update 学生 Set 所在系 = :所在系 Where 姓名 = :姓名; 在Select-From-Where中需注意 单元组 多元组:引入游标(Cursor),逐行处理 单元组查询语句 只返回一个元组的Select-From-Where语句 Select-Into-From-Where EXEC SQL Select 学号 Into :学号 From 学生 Where 姓名 = :姓名; 注意返回值的状态判定 游标Cursor Cursor是系统为用户开设的一个数据缓冲区,存放SQL语句的执行结果 用户可以逐行读取(处理)Select结果集中的数据 Cursor result Set Cursor Position 动态SQL 语句可变 条件可变 数据库对象、查询条件均可变 SQL中的事务 是构成单一逻辑工作单元的操作集合 事务管理器 事务恢复机制 并发调度机制 事务的性质——ACID 原子性: 事务是原子的,要么都做,要么都不做 一致性: 保证数据库的一致性 从一个一致状态→另一个一致状态 隔离性: 事务相互隔离 持久性 一旦事务提交成功,更新则将永久有效 SQL中的事务—事务的结束 提交 COMMIT 事务成功结束,永久保存修改 将上次提交后的修改,全部保存 回滚 ROLLBACK 事务异常终止,撤消修改,恢复原值 将上次提交后的修改,全部撤消 SQL编程——嵌入式 嵌入式SQL DBMS提供的高级语言方式 Host Variable Share Variable 直接使用SQL语句 需预编译 各DBMS厂商均提供相应的工具 SQL编程——CLI(API) CLI(Call Level Interface) 定义了一套可以从宿主语言调用的公共函数 提供一套API,通过函数调用,实现对DBMS的操作 DBLib、OCI、 ODBC、JDBC…… 逐步替代嵌入式SQL 作业 1、使用SQL创建关系学生、课程、选课 2、把自己的信息添加到学生表中 3、检索每一门课程成绩都大于或等于85分的学生的学号、姓名和性别,并把检索的值送到已经存在的表优秀学生(学号、姓名、性别)中 4、在选课表中删除没有成绩的记录 5、把汪姓同学的成绩都删除 6、把数据库不及格,并年龄小于18岁的同学的数据库成绩乘以107% 1、统计有学生选修的课程门数 2、求选修了数据库课的学生的平均年龄 3、求刘宇老师所授课程的每门课程的学生平均值 4、统计每门课程的学生选修人数。要求输出课程号和人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列 5、检索学号比汪同学大,而年龄比他小的学生姓名 6、求年龄大于女同学平均年龄的男学生姓名和

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档