大学计算机数据库实验分析,华南理工大学-计算机学院-数据库-实验四-报告

《华南理工大学-计算机学院-数据库-实验四-报告》由会员分享,可在线阅读,更多相关《华南理工大学-计算机学院-数据库-实验四-报告(17页珍藏版)》请在人人文库网上搜索。

1、华南理工大学数据库课程实验报告实验题目: 实验四:事务的管理 姓名: 学号: 班级: 17计科一班 组别: 无 合作者: 无 指导教师: 董守玲 实验概述【实验目的及要求】实验目的: 1) 通过编写事务隔离级别的测试程序了解事务并发控制机制2) 学会进行数据库的备份与恢复。实验要求:1. 采用实验一的建库脚本和数据插入脚本创建Student数据库。2. 测试事务隔离级别,要求:分别设置不同的隔离级别, 让两个并发事务交错执行的程序或事务,能分别显示每种隔离级别下,是否出现丢失更新,脏读,读值不可复现以及幻象记录四种情况。提示:OracleSET TRANSACTION ISOLATION LE。

2、VEL SERIALIZABLE;SET TRANSACTION ISOLATION LEVEL READ COMMITTED;SET TRANSACTION ISOLATION LEVEL READ ONLY;SQL ServerSET TRANSACTION ISOLATION LEVEL SERIALIZABLESET TRANSACTION ISOLATION LEVEL REPEATABLE READSET TRANSACTION ISOLATION LEVEL READ COMMITTEDSET TRANSACTION ISOLATION LEVEL READ UNCOMMITTE。

3、D3. 备份与恢复1) 备份数据库2) 删除sc表3) 恢复到删除之前4. 提交实验报告:实验报告包括实验过程和实验结果截屏,各种SQL脚本,测试过程的详细说明与分析。【实验环境】PC机,WINDOWS操作系统,Oracle 或Microsoft SQL Server 数据库实验内容【实验过程】1、 实验步骤:(1) 打开数据库,建立连接。(2) 选择要使用数据库(3) 分别设置四种不同的隔离级别(以上过程需要同时在两个终端进行)(4) 设计不同隔离级别下的一致性或者不一致性的表现形式,使用两个终端配合实现。(5) 测试实验数据(6) 操作的调整,及再次验证(7) 备份数据库(8) 删除数据库。

4、(9) 恢复数据库(10) 实验的总结与收获二、实验数据和主要过程:1. 采用实验一的建库脚本和数据插入脚本创建Student数据库。2. 测试事务隔离级别,要求:(本过程通过开启两个终端实现)分别设置不同的隔离级别, 让两个并发事务交错执行的程序或事务,能分别显示每种隔离级别下,是否出现丢失更新,脏读,读值不可复现以及幻象记录四种情况。(1) 读未提交1) 设置读未提交代码:2) 丢失更新:(无丢失更新)事务一事务二(此时,王明为计算机系)事务1更新Students表“王明”为“经济系”,未提交;事务2更新Students表“王明”为“数学系”提交;有写锁,更新无法成功结果仍为之前结果3) 。

5、读脏:代码:事务一事务二(此时,王明为经济系)事务1更新王明为“计算机系”未提交;事务1回滚事务2第一次读取王明数据;再次读取王明是数据恢复,即致使事务2读取不正确的数据。4) 不可重复读:代码:事务1事务2(此时,王明为经济系)事务1读取王明数据事务1再次读取王明数据,则与前一次不一样。事务2改写王明为“计算机系”提交;5) 幽灵:代码:事务1事务2(此时王明数据存在,为计算机系)事务1读取王明数据;事务1再次读取王明数据,则无结果事务2删除王明数据,提交(2) 读提交1) 设置读提交代码:2) 丢失更新:(无丢失更新)代码:事务一事务二(此时,王明为计算机系)事务1更新Students表“。

6、王明”为“经济系”,未提交;事务2更新Students表“王明”为“数学系”提交;有写锁,更新无法成功结果仍为之前结果3)读脏:(无读脏)代码:事务一事务二(此时,王明为计算机系)读脏:事务1更新王明为“经济系”未提交事务2读取王明数据不成功,因为事务1还未提交4)不可重复读:代码:事务1事务2(此时,王明为经济系)事务1读取王明数据事务1再次读取王明数据,则与前一次不一样。事务2改写王明为“计算机系”提交;5) 幽灵:代码:事务1事务2(此时王明数据存在,为计算机系)事务1读取王明数据;事务1再次读取王明数据,则无结果事务2删除王明数据,提交(3) 可重复读1) 设置可重复读代码:2) 丢失。

7、更新:(无丢失更新)代码:事务一事务二(此时,王明为计算机系)事务1更新Students表“王明”为“经济系”,未提交;事务2更新Students表“王明”为“数学系”提交;有写锁,更新无法成功结果仍为之前结果3) 读脏:(无读脏)代码:事务一事务二(此时,王明为计算机系)读脏:事务1更新王明为“经济系”未提交事务2读取王明数据不成功,因为事务1还未提交4)不可重复读:(无不可重复读)代码:事务一事务二(此时,王明为计算机系)事务1读取王明数据事务2改写王明为“经济系”不成功,因为事务1还未提交5) 幽灵:代码:事务1事务2(此时王明数据存在,为计算机系)事务1读取王明数据;事务1再次读取王明。

8、数据,则无结果事务2删除王明数据,提交(4) 可串行化1) 设置可串行化代码:色拉2)丢失更新:(无丢失更新)代码:事务一事务二(此时,王明为计算机系)事务1更新Students表“王明”为“经济系”,未提交;事务2更新Students表“王明”为“数学系”提交;有写锁,更新无法成功结果仍为之前结果3)读脏数据(无读脏数据)代码:事务一事务二(此时,王明为计算机系)读脏:事务1更新王明为“经济系”未提交事务2读取王明数据不成功,因为事务1还未提交4) 不可重复读:(无不可重复读)代码:事务一事务二(此时,王明为计算机系)事务1读取王明数据事务2改写王明为“经济系”不成功,因为事务1还未提交5)。

9、 幽灵:(无幽灵)代码:事务一事务二(此时王明数据存在)事务1读取王明数据事务2删除王明数据不成功,因为事务1读取还未提交;3. 备份与恢复1) 备份数据库导出.sql文件lab.sql 内容2) 删除sc表6) 恢复到删除之前恢复语句重新查看SC表小结通过这次实验,我对老师在理论课上讲授的并发控制的概念和内容有了更进一步的明晰。包括对于数据库并发控制中四种隔离级别的理解,对于并发控制中的不一致性的具体理解,对于数据库的备份和恢复的重要性的理解等。其中,尤其是对于并发控制的不一致性的理解,因为是自己设计情景一验证相关的理论和现象,所以在之后对于相关概念,在实验之后得到了很好的理解。而通过这一系。

10、列的操作,我对于相关的理论和实现的存在性和重要性也有了更进一步的认识。有一个小插曲,在撰写实验报告的时候,电脑出现问题,不得不重启。而之前的报告即将完成,但没有保存过。结果,在重新打开文档的时候果然丢失了大部分内容。在沮丧与焦急之时,想起老师讲授过的数据库备份和恢复的知识,就想文档编辑软件是否也有相同的功能。在网上进行资料查阅之后,发现在一个目录下有不定时备份文件,在进行备份恢复之后,虽然没有复原所有内容,但是问题得到了一定的解决。由此,对于数据库相关操作的重要性,也有了更进一步的认识。实验过程中的一些概念难以辨析,现将相关内容总结成表格如下,以方便明晰和记忆:由实验及课堂理论可知,读脏数据不。

11、可重复读幽灵枷锁要求读未提交YYY写锁,读不加所读提交NYY写锁,读锁读完后释放可重复读NNY2PL协议可串行化NNN2PL,页节点索引所保持现将实验过程中获得的一些编程技巧总结如下:(1) 事务隔离级别的查看:select tx_isolation;(2) 事务隔离级别的设置:1)读未提交:set session transaction isolation level read uncommitted;2)读提交:set session transaction isolation level read committed;3) 可重复读:set session transaction iso。

12、lation level repeatable read;4) 可串行化:set session transaction isolation level serializable;(3)事务是否自动提交的设置(事务的开始和结束):1)自动恢复:set autocommit=1;2)不自动恢复:set autocommit =0;最后,通过这次实验认识到实践出真知的道理。许多概念在课堂上学习的时候,有一部分死记硬背的过程。而通过实验,对于该问题为什么会出现,它的重要性,它的具体情景,它的应对操作都有了更加立体的了解和深入的认识。关于数据库的学习,除了最重要的基本知识,优化,并发,恢复等技巧,重要的部分还是在于编程实践。在真正的实践过程中,常常能获得一些在理论课上学习不到的,能够帮助我们真正了解相关概念,也能在程序实现是带给我们成就感,激发我们学习学习兴趣。感谢这次实验过程带给我们的收获。指导教师评语及成绩评语: 成绩: 指导教师签名:批阅日期。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Requirement: I. Query database with SQL Server. (30’, 2’ for each) 1. Create a table named Student using command Create Table. The table structure is as follows: Column Type Length Note ID Varchar 20 Student’s ID Name Varchar 10 Student’s Name Age Int Student’s Age Department Varchar 30 Student’s Dept. 2. Create a table named Course using command Create Table. The table structure is as follows: Column Type Length Note CourseID Varchar 15 Course’s ID CourseName Varchar 30 Course’s Name CourseBefore Varchar 15 Previous Course 3. Create a table named Choose using command Create Table. The table structure is as follows: Column Type Length Note ID Varchar 20 Student’s ID CourseID Varchar 15 Course’s ID Score Dec 5,2 Student’s Score 4. Insert 3 records into table Student using command Insert. ID Name Age Department 00001 ZhangSan 20 Computer Science 00002 LiSi 19 Computer Science 00003 WangWu 21 Computer Science 5. Insert 3 records into table Course using command Insert CourseID CourseName CourseBefore C1 Introduction to Computer - C2 PASCAL Programming Language C1 C3 Data Structure C2 6. Insert 7 records into table Choose using command Insert ID CourseID Score 00001 C1 95 00001 C2 80 00001 C3 84 00002 C1 80 00002 C2 85 00003 C1 78 00003 C3 70 7. Select the students’ ID and Name in Computer Science department using command select. 8. Select the students’ ID, Name, CourseName and Score using command select. 9. Select all students’ Information in descending order of the students’ ID. 10. Select every student’s average score. 11. Select the number of courses a student has chosen. 12. Select the number of students choosing a specific course. 13. Select the students’ ID who have chosen course C1 and got score over 80. 14. Select the students’ ID who have chosen course C2. 15. Select the average age of students in every department. II. Design a MIS for Computer Science college of SCUT. (45’) It is used to manage the information about course

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值