




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库原理与技术实验报告实验一:安装SQL Server数据库管理系统班 级学 号姓 名日 期实 验目 的1学会安装SQL Server数据库管理系统,为今后的数据库实验搭建实验平台。2了解配置数据库客户/服务器环境的基本方法和知识。实 验环 境1操作系统版本: 2SQL Server版本: 3CPU: MHZ4内存: MB5硬盘: GB实 验步 骤1制订安装计划确定SQL Server的验证方式: 确定运行SQL Server的启动帐户: 确定SQL Server程序文件和数据文件的安装目录: 确定SQL Server所使用的字符集和排序规则: 确定SQL Server所使用的网络协议库: 2实施安装按照安装程序的提示进行安装。3配置客户/服务器环境打开服务器网络实用工具,查看和配置服务器所使用的网络协议: 。打开客户端网络实用工具,查看和配置客户所使用的网络协议: 。4验证安装打开企业管理器,连接到所安装的SQL Server实例,启动、关闭和暂停该实例。问 题讨 论1. SQL Server都有哪几个版本?2. SQL Server的两种验证模式有何不同?3. SQL Server的启动帐户的作用是什么?是用户登录到SQL Server时所使用的帐户吗?选择本地帐户和域帐户作为启动帐户有何不同?该帐户的权限对SQL Server有没有影响?4. 字符集和排序规则有什么用处?5. 网络协议库有什么用处?是否只需要配置服务器的网络协议库就可以了?为什么?6. 如果已经在一台机器上安装了SQL Server服务器,想从另外一台机器上访问它,应当怎么办?7. 企业管理器是否就是SQL Server的数据库引擎呢?我 的问 题教师评语实验二:创建数据库、表和定义完整性约束班 级学 号姓 名日 期实 验目 的1. 学会创建SQL Server数据库的SQL命令,并配置数据库的属性。学会创建、修改和删除表和完整性约束的SQL 命令。2. 验证数据库的物理模式和逻辑模式。实 验步 骤1. 在企业管理器中查看SQL Server都有哪些数据库。2. 在企业管理器中创建一个新的数据库School,注意系统要求你输入了什么信息。3. 在企业管理器中查看上面新创建的数据库的属性,配置数据文件的自动增长选项。4. 使用查询分析器,创建以下几个表: Student表(学生表),包含的字段有:Sno(学号),字符型,长度为6位数字,是Student表的主键。Sname(姓名),字符型,长度为4个汉字,不能为空。gender(性别),字符型,长度为1个汉字,只能接受男和女两个值,默认值为男。age(年龄),整型,可以为空,但如果有值则必须在15岁和45岁之间取值。dept(系别),整型,可以为空,但如果有值必须在1到30之间取值。 Course表(课程表),包含的字段有:Cno(课程号),字符型,长度为4位数字,是Course表的主键。Cname(课程名),字符型,长度为10个汉字,不能为空。Cpno(先修课课程号),字符型,长度为4位数字,允许为空,它引用了Cno,是Course表的外部键。 SC表(选课表),包含的字段有:Sno(学号),字符型,长度为6位数字,它引用了Student表的Sno。Cno(课程号),字符型,长度为4位数字,它引用了Course表的Cno。Grade(成绩),整型,可以为空,但如果不为空,必须在0到100之间取值,默认值为空。5. 使用查询分析器,对上面所创建的表及其完整性约束定义进行修改: 将学生表中的Sname字段的长度改为6个汉字。 为SC表添加由sno和cno构成的主键。 为Course表增加一个字段Credit(学分),整型,不能为空,只能在1到5之间取值。 对Course表Credit字段上的完整性约束进行修改,使其在1到6之间取值。6. 删除上述所创建的表。问 题讨 论1. SQL Server自身包含哪几个数据库,它们分别是做什么用的?2. 你所创建的数据库是以什么样的方式保存在计算机中的?在文件管理器中可见吗?创建一个数据库,需要创建几个文件,它们分别是做什么用的?它们对应于三级模式中的哪一级?3. 设想一下,为什么SQL Server允许你创建多个数据库?为什么不限制你只能创建一个数据库?4. 为什么要提供文件自动增长选项?允许文件自动增长,数据库管理员是否就高枕无忧了呢?5. 恢复模式是干什么用的?几种不同的恢复模式之间有何不同?6. 创建的表存储在什么地方?它们对应于三级模式中的哪一级?7. 可以为字段定义哪些数据类型?char、nchar、varchar、nvarchar之间有什么区别吗?8. 可以为表定义哪些完整性约束?它们各自的作用是什么?9. 如果想要修改完整性约束,应该怎么办呢?10. 如果不为表定义声明性的完整性约束,我们还有什么别的办法来维护这些完整性约束呢?与声明性的完整性约束相比,它们的优、缺点又是什么呢?11. 能够随意对表及其完整性约束进行修改吗?这样做可能会有什么样的问题?举例说明。我的问题教师评语实验三:使用DML语句班 级学 号姓 名日 期实 验目 的1学习和掌握INSERT命令的各种形式。2学习和掌握UPDATE命令的各种形式。3学习和掌握DELETE命令的各种形式。4了解完整性约束对DML命令的限制。实 验步 骤1. Insert命令: 向学生表中插入如下记录:sno为95020,sname为陈冬,gender为男,age为18,dept为10; 向学生表中插入如下记录:sno为95021,sname为李白; 向学生表中插入如下记录:sno为95022,gender为女; 向学生表中插入如下记录:sname为李清照,gender为女; 向学生表中插入如下记录:sno为95021,sname为李清照; 向学生表中插入如下记录:sno为95022,sname为李清照,gender为女,age为10; 向学生表中插入如下记录:sno为95023,sname为杜甫,dept为36; 利用企业管理器生成学生表的DDL语句,将它拷贝到查询分析器,将其中的表名改为Student_copy,然后执行修改后的DDL语句。接着,利用Insert语句将Student表中的数据拷贝到Student_Copy表。 向课程表插入如下记录:cno为1,cname为数据库,cpno为5,credit为4。 向课程表插入如下记录:cno为2,cname为数学,credit为2。 向课程表插入如下记录:cno为6,cname为数据结构,credit为4。 向课程表插入如下记录:cno为1,cname为数据库,cpno为5,credit为4。 向选课表中插入如下记录:sno为95020,cno为1; 向选课表中插入如下记录:sno为95022,cno为6; 向选课表中插入如下记录:sno为95020,cno为2,grade为100; 向选课表中插入如下记录:sno为95020; 向选课表中插入如下记录:cno为1; 向选课表中插入如下记录:sno为-1,cno为1;实 验步 骤2. Delete命令: 从学生表中删除sno为95023的学生的记录。 从学生表中删除sno为95020的学生的记录。 从课程表中删除cno为2的课程的记录。 从选课表中删除sno为95020,cno为2的记录。 从课程表中删除cno为2的课程的记录。 从选课表中删除dept为空值的学生所选课程的记录。3. Update命令: 将选课表中sno为95020,cno为1的记录的grade改为90; 将选课表中sno为95020,cno为1的记录的grade改为200; 将选课表中sno为95020,cno为1的记录的sno改为-1; 将学生表中sno为95022的记录的sno改为95020。 将学生表中sno为95020的记录的sno改为95025。问 题讨 论1. Insert语句有哪几种形式,它们分别适合在什么情况下使用? 2. 在Insert语句中可以使用子查询吗?可以在哪些子句中使用?3. 造成Insert语句无法完成的原因都有哪些?4. 主键和外部键对于Insert语句有什么要求?5. Delete语句有哪几种形式?在使用Delete语句时必须注意什么事情?Delete语句与Drop Table语句有什么区别?6. 在Delete语句中可以使用子查询吗?可以在哪些子句中使用?7. 造成Delete语句无法完成的原因都有哪些?8. 如果由于参照完整性约束的原因造成Delete语句无法执行,那么可以使用哪些办法来加以解决?9. Update语句有哪几种形式?在使用Update语句时必须注意什么事情?10. 在Update子句中可以使用子查询吗?可以在哪些子句中使用?11. 造成Update语句无法完成的原因有哪些?12. 如果由于参照完整性约束的原因造成Update语句无法执行,那么可以使用哪些办法来加以解决?我 的问 题教师评语实验四:查询班 级学 号姓 名日 期实 验目 的掌握SELECT语句的语法和各种使用技巧,包括:1. 单表查询:投影操作、消除重复行、使用表达式、使用别名、排序。2. 条件查询:简单条件、复合条件、空值查询、字符串匹配查询。3. 聚集函数与分组:使用聚集函数,按指定表达式和条件进行分组统计和筛选。4. 子查询:普通子查询与相关子查询(除法的实现)5. 集合操作:并、交、差的检索实 验步 骤设有以下关系模式:S(SNO,SNAME,CITY)其中,S表示SUPPLIER(供应商),SNO为供应者代号,SNAME为供应者的名字,CITY为供应者所在的城市,主键为SNO。P(PNO,PNAME,COLOR,WEIGHT)其中,P表示PART(零件),PNO为零件代号,PNAME为零件名,COLOR为零件颜色,WEIGHT为零件重量,主键为PNO。J(JNO,JNAME,CITY)其中,J表示JOB(工程),JNO为工程编号,JNAME为工程名,CITY为工程所在城市,主键为JNO。SPJ(SNO,PNO,JNO,QTY)其中,SPJ表示供应关系,SNO是为指定工程提供零件的供应者代号,PNO是所提供的零件代号,JNO为工程编号,QTY表示提供的零件数量,主键为(SNO,PNO,JNO),外部键分别为:SNO,PNO,JNO。下图表示供应者(S)零件(P)工程(J)供应关系(SPJ)数据库,试做以下各题:(一)用SQL的DDL语言创建S,P,J,SPJ四个基本表。(二)给出下列各题的查询、存贮等操作的语句序列,并且上机验证、打印出操作结果。(1)取出所有工程的全部细节;(2)取出所在城市为上海的所有工程的全部细节;(3)取出重量最轻的那些零件的号码;(4)取出为工程J1提供零件的供应者的代号;(5)取出为工程J1提供零件P1的供应者的代号;(6)取出由供应者S1提供零件的工程的名称;(7)取出供应者S1提供的零件的颜色;(8)取出为工程J1和J2提供零件的供应者的代号;(9)取出为工程J1提供红色零件的供应者的代号;(10)取出为所在城市为上海的工程提供零件的供应者的代号;实 验步 骤(11)取出为所在城市为上海或北京的工程提供红色零件的供应者的代号;(12)取出供应者与工程所在城市相同的供应者提供的零件的代号;(13)取出上海的供应者提供给上海的任一工程的零件的代号;(14)取出至少由一个和工程不在同一城市的供应者提供零件的工程的代号;(15)取出上海供应者不提供任何零件的工程的代号;(16)取出这样一些供应者的代号,他们能够提供至少一种由红色零件的供应者提供的零件;(17)取出由供应者S1提供零件的工程的代号;(18)取出所有这样一些CITY,CITY二元组,使得第一个城市的供应者为第二个城市的工程提供零件;(19)取出所有这样的三元组CITY,PNO,CITY,使得第一个城市的供应者为第二个城市的工程提供指定的零件;(20)重复习题19,但不检索两个CITY值相同的三元组;(21)取出提供给上海的所有工程的零件代号;(22)取出至少需要供应者S1提供的所有零件的工程的代号;(23)取出供应者S1提供的代号为P1的零件总数;(24)取出每个工程的供应商数;(25)取出所需的零件总数大于1000的工程代号;(26)取出为所有工程提供同样零件的供应商的代号及其产品代号;实 验步 骤JSPJJNOJNAMECITYSNOPNOJNOQTYJ1JN1上海S1P1J1200J2JN2广州S1P1J4700J3JN3南京S2P3J1400J4JN4南京S2P3J2200J5JN5上海S2P3J3200J6JN6武汉S2P3J4500J7JN7上海S2P3J5600S2P3J6400PS2P3J7800PNOPNAMECOLORWEIGHTS2P5J2100P1PN1红12S3P3J1200P2PN2绿18S3P4J2500P3PN3蓝20S4P6J3300P4PN4红13S4P6J7300P5PN5蓝11S5P2J2200P6PN6红15S5P2J4100S5P5J5500SS5P5J7100SNOSNAMECITYS5P6J2200S1N1上海S5P1J41000S2N2北京S5P3J41200S3N3北京S5P4J4800S4N4上海S5P5J4400S5N5南京S5P6J4500问 题讨 论1. select子句后面只能使用表中的字段吗?如果不是,找出一些例子。2. 别名有什么作用?select子句中的别名在其它子句中也能使用吗?3. 如果不使用order by子句,查询返回的结果是按照什么排序的?如果在order by子句中使用了多个排序字段,排序结果又是怎样的呢?4. 什么是空值?两个空值是相等的吗?当非空值与空值进行运算时,结果是什么?聚集函数是怎么处理空值的?5. where和having之间有何异同?如果在一个select语句中同时使用了where和having,它们的执行顺序又是怎样的?6. 如何知道表中是否有重复的记录行?7. 什么时候需要进行连接操作?连接两个表时,如果不指定连接条件,将会出现什么样的情况?连接条件中,用于连接的来自两个表的字段必须是同名的吗?比较运算符必须是等号吗?8. 表的自身连接是怎么回事?内连接和外连接又是怎么回事?外连接又分几种类型,怎么来区分它们?9. 子查询和连接查询之间可以相互替代吗?如果不能,举例说明。10. 如何区分普通子查询和相关子查询?这两种查询的执行步骤如何?11. 在将外部查询的字段与子查询返回的结果进行比较时,应当注意什么问题?12. 什么是除法?利用select语句可以通过哪几种方法来实现除法?它们之间可以相互替代吗?如果不能举例说明。13. 并、交、差的检索对于要操作的集合有什么要求?如果不满足这样的要求,又需要进行并、交、差的检索,应当怎么办?14. 有些数据库(例如SQL Server)并没有提供完成交和差操作的操作符,应当采用什么样的方法来实现这些操作?请举例说明。所给出的方法是通用的吗?15. 如果要对并、交、差的结果进行进一步的处理,如排序,那么Order by子句应当放到哪里?排序字段用哪个查询中的字段名?我 的问 题教师评语实验五:索引与优化班 级学 号姓 名日 期实验目的1学会创建和删除索引的SQL命令。2学会使用索引来维护数据的唯一性。3学会利用索引对查询进行优化。实验步骤1 创建以下索引: 在学生表上的学号字段上创建索引。 在学生表上的学号字段上创建唯一索引。 在学生表上的学号字段上创建聚簇索引。 在学生表上的学号字段上创建唯一、聚簇索引。 在选课表上的学号和课程号字段上创建组合索引。 在选课表上的学号和课程号字段上创建聚簇、组合索引。 在选课表上的学号和课程号字段上创建聚簇、组合、唯一索引。 删除上述索引。2 唯一索引的作用: 向没有唯一索引的学生表中插入一条重复记录(学号与其他学生重复),是否成功? 接着,在该表的学号字段上创建唯一索引,是否成功? 将上述重复记录删掉,再次创建唯一索引,是否成功? 然后再次插入上述重复的记录,是否成功?3 索引的应用实例: 非组合索引:1) 删除学生表上的所有索引,按照学号检索学生表中的某一个学生,查看查询执行计划。2) 在学号字段上创建索引,再次执行上面的操作,查看查询执行计划。3) 保留上述索引,按照学生姓名检索表中的某一个学生,查看执行计划。4) 保留上述索引,按照一个学号的范围来查找学生(例如sno betweenand.,或者sno大于、小于、不等于、in等),查看执行计划。5) 保留上述索引,将学号应用在表达式中(如sno+195005)进行查找,查看执行计划。6) 删除学号字段上的索引,重新创建一个聚簇索引,再次执行上面的操作,查看查询执行计划。7) 保留上述聚簇索引,按照学生姓名检索表中的某一个学生,查看执行计划。8) 重新执行4),5)的操作,查看执行计划。实验步骤9) 比较上述查询所获得的查询计划和查询代价信息,并解释所发现的现象。 组合索引:1) 删除选课表上的所有索引,按照学号和课程号检索其中某个学生所选的一门课程的成绩,查看查询执行计划。2) 在学号和课程号字段上分别创建索引,再次执行上面的操作,查看查询执行计划。3) 保留上述索引,按照成绩检索表中的某一个记录,查看执行计划。4) 分别删除学号字段和课程号字段上的索引,重新创建一个组合索引,再次执行上面的操作,查看查询执行计划。5) 保留上述索引,按照学生学号检索某个学生所选课程,查看执行计划。6) 保留上述索引,按照学生所选课程号检索选修某一个课程的学生,查看执行计划。7) 删除上述组合索引,重新创建一个组合、聚簇索引,再次按照学号和课程号检索表中的某一个记录,查看执行计划。8) 再次完成5)、6)步的工作,查看执行计划。9) 比较上述查询所获得的查询计划和查询代价信息,并解释所发现的现象。4 索引的代价 删除学生表上的所有索引,插入6万条记录,记录更新时间。 删除学生表中的所有记录,然后在学生表的学号字段上创建索引,插入6万条记录,记录更新时间。 删除学生表中的所有记录,然后在学生表的学号字段上创建聚簇索引,插入6万条记录,记录更新时间。 比较上述三次插入操作的时间,并对所发现的情况进行解释。问题讨论1. 什么是索引?索引有什么作用?如果没有索引,SQL Server是怎么进行查询的?索引需要存储吗?索引的维护由谁来负责?索引越多越好吗?为什么?2. 唯一索引有什么用处?它与主键有什么区别?如果表中已经有了重复记录,能否为它创建唯一索引呢?怎么解决这个问题(假如存在许多重复记录,而且是记录之间在多个字段上都有重复)?3. 什么是组合索引?组合索引中索引字段的顺序是任意的吗?如果创建的是组合、唯一索引,那么它维护的是什么样的唯一性呢?4. 什么是聚簇索引?聚簇索引与非聚簇索引有什么不同?它们两个孰优孰劣?应当在什么样的情况下使用聚簇索引?每个表可以建几个聚簇索引呢?5. 是否只有查询语句才会使用索引?SQL语句在什么时候会使用索引,什么时候不会使用索引?6. 当需要创建索引时,选择索引类型的依据是什么?如果创建了多个索引,SQL Server在查询时会选择哪个索引呢?我的问题教师评语实验六:创建和使用视图班 级学 号姓 名日 期实 验目 的1学会创建、修改和删除视图的SQL命令。2学会利用视图完成以下工作: 简化用户操作 使用户以不同角度来看待同一数据 为重构数据提供一定的逻辑独立性 为数据提供安全保护3了解对视图进行更新操作的限制。实 验步 骤1. 完成以下查询: 显示计算机系学生的数据库成绩单,内容包括:每个学生的学号、姓名、成绩、学分 显示计算机系学生的操作系统成绩单,内容包括:每个学生的学号、姓名、成绩、学分 显示计算机系学生的数据结构成绩单,内容包括:每个学生的学号、姓名、成绩、学分2. 创建计算机系学生的成绩视图,内容包括:每个学生的学号、姓名、课程名、成绩、学分。基于此视图完成上述三个查询操作。3. 体验下面三个视图如何为同样的数据提供了不同的分析角度: 创建课程情况视图,内容包括:每门课程的课程号、课程名、选课人数、平均成绩、最高成绩、最低成绩。 创建学生情况视图,内容包括:每个学生的学号、姓名、选修的课程数、平均成绩、最高成绩、最低成绩。 创建系教学情况视图,内容包括:系编号、学生人数、学生的平均成绩。4. 利用视图控制数据的访问范围: 按照系编号分别为每个系的教务建立一个学生成绩视图。 收回各系教务对于学生表、课程表和选课表的所有权限。 将前面建立的各个系学生成绩视图的权限分别授予各个系的教务。 以各个系教务的身份登录,检查他们所能够访问的数据。5. 建立计算机系的学生视图,内容包括:学号、姓名、性别、年龄。分别对该视图进行Insert、Update和Delete操作。对前面建立的计算机系学生成绩视图进行上述操作。比较对于两个视图的操作结果有何不同?6. 对计算机系的学生视图进行修改,为它增加sdept属性。在修改后的视图上,将学号为95001的学生从计算机系(CS)转到信息系(IS)。重新将该学生再转回计算机系,再次对计算系的学生视图进行修改,为它增加With Check Option选项,重新进行上面的操作。7. 删除计算机系的学生视图。问 题讨 论13. 什么是视图,它与表有什么区别,它与三级模式中的外模式有什么关系?14. 什么是视图消解,说明视图是如何简化用户操作的?15. 说明视图是怎样为同样的数据提供了不同的分析角度的?16. 说明视图是怎样控制数据的访问范围的?17. 是否所有的视图都可以进行更新?如果不是,满足什么样条件的视图才能被更新?With Check Option有什么用处? 18. 修改视图与删除视图后重建视图的方法都可以修改一个视图的定义,这两种方法有什么不同吗?19. 要想对视图返回的数据进行排序,应当怎么办?20. 将Student表拆分为两个表,并删除原有的Student表,考虑如何利用视图来尽可能地使哪些依据Student而编写的程序不会因此而修改?我 的问 题教师评语实验七:管理安全性班 级学 号姓 名日 期实 验目 的1学会设置SQL Server的验证方式。 Windows验证方式 混合验证方式2学会创建SQL Server登录及数据库用户,并为其指定相应服务器和数据库角色以及口令。3. 学会为用户指派或者收回针对单个表的对象权限。实 验步 骤1. 将SQL Server设置为Windows验证方式,然后通过查询分析器或者企业管理器与SQL Server建立连接。2. 将SQL Server设置为混合验证方式,然后通过查询分析器或者企业管理器与SQL Server建立连接。3. 创建一个SQL Server登录,为其指定口令,但不为其指定任何角色。4. 更改其口令和默认数据库。5. 利用新创建的SQL Server登录访问实验二中所创建的School数据库中的表,看是否成功。6. 为所创建的数据库创建一个guest用户,为它分配对Student表的SELECT权限。7. 使用刚才创建的SQL Server登录访问School数据库中的Student表,看是否成功。再访问Course表,看是否成功。8. 在School数据库中创建一个新用户,使它对应于刚才那个SQL Server登录,并为它分配对Student表的SELECT权限。然后删掉原来的guest用户。使用刚才创建的SQL Server登录访问School数据库中的Student表,看是否成功。9. 在School数据库中创建一个角色,然后为该角色赋予对Course表的SELECT权限,并将刚才的数据库用户加入到该角色,通过该用户所对应的SQL Server登录访问Course表,看是否成功。10. 为刚才创建的角色加入对SC表的SELECT权限,然后通过该用户所对应的SQL Server登录访问Course表,看是否成功。11. 取消该角色对SC表的SELECT权限,然后通过该用户所对应的SQL Server登录访问Course表,看是否成功。12. 为该角色指定对Course表学分列的Update权限。问 题讨 论1. 说明SQL Server的两种验证方式有何不同?2. 结合上述实验,说明SQL Server的验证过程是什么样的?3. 默认数据库的作用是什么?4. 服务器角色和数据库角色有什么不同,SQL Server都有哪些服务器角色和数据库角色,这些角色各自的作用是什么?5. guest用户有什么作用,使用它有什么好处和风险?6. 为什么要使用角色?其作用是什么?7. public角色的作用是什么?使用它时有什么需要注意的地方?8. 对于表可以指定哪些权限,其中哪些是可以基于列进行控制的?是否只有表才有对象权限可以指定?9. SQL Server的企业管理器中是否提供了基于行的安全控制方法,如果没有?你可以通过什么样的方式来实现它?我 的问 题教师评语实验八:事务与并发控制班 级学 号姓 名日 期实 验目 的1学会将多条语句封装为事务。2学会提交和回滚事务。3. 验证并发操作所带来的错误: 污读 不可重复读 丢失更新4. 验证死锁实 验步 骤1. 在查询分析器中输入如下命令:begin transactionInsert Into Student values(95050,关羽,男,38,11)Insert Into Student values(95051,张飞,男,36,10)commit transaction然后,关掉计算机的电源,重新启动机器,察看Student表,看上述记录是否存在。2. 在查询分析器中输入如下命令:begin transactionUpdate Student Set age = 39 where sno=95050Update Student Set age = 37 where sno=95051rollback transaction然后,察看Student表,看上述记录是否已经被修改。3. 在查询分析器中打开两个窗口,在其中一个窗口输入如下的事务一,并执行到Commit Transaction命令之前: -Transaction 1begin transactionUpdate StudentSet sname =赵云Where sno =95050Rollback Transaction然后,在另外一个窗口输入如下的事务二,并执行:-Transaction 2begin transactionset transaction isolation level read uncommittedselect sname from StudentWhere sno =95050看事务二是否能够读到事务一所做的尚未提交的修改。然后,执行事务一的最后一条命令:Commit Transaction实 验步 骤4. 在查询分析器中打开两个窗口,在其中一个窗口输入如下的事务二,并执行到第二个Select命令之前: -Transaction 2begin transactionset transaction isolation level read committedselect sname from StudentWhere sno =95050select sname from StudentWhere sno =95050然后,在另外一个窗口输入如下的事务一,并执行:-Transaction 1begin transactionUpdate StudentSet sname =关羽Where sno =95050Commit Transaction然后,执行事务二的最后一条select命令,看事务二前后两次执行select命令是否能够得到同样的结果。5. 用VB编写一个小的应用程序,同时运行该程序的两个实例,同时打开同一个表的同一个记录进行编辑,并保存,察看是否发生丢失更新的现象。6. 在查询分析器中打开两个窗口,在其中一个窗口输入如下的事务一: -Transaction 1-步骤一begin transactionUpdate StudentSet sname =关羽Where sno =95050Commit Transaction-步骤三Update CourseSet ccredit = 5where cno=1Commit Transaction然后,在另外一个窗口输入如下的事务二,并执行:-Transaction 2-步骤二begin transactionUpdate StudentSet sname =关羽Where sno =95050Update CourseSet ccredit = 5where cno=1Commit Transaction然后,按照以下步骤执行,看看会发生什么情况: 在第一个窗口中选择步骤一的代码,并执行它们。 在第二个窗口执行步骤二。 回到第一个窗口执行步骤三。问 题讨 论1. 什么事务?事务具有什么样的特性?数据库管理系统是通过什么方法来维护事务的特性的?2. 如果不写begin transaction,是否数据库就不会按照事务的方式来处理SQL语句了?3. 什么是污读?根据实验解释在什么情况下会发生污读。4. 什么是不可重复读?根据实验解释在什么情况下会发生不可重复读。5. 什么是丢失更新?根据实验解释在什么情况下会发生丢失更新。6. SQL Server都提供了哪些隔离级别?它们有什么作用?它们相对于课本中的什么概念?7. 什么是死锁?根据实验解释在什么情况下会发生死锁。8. 在最后一个实验中出现的死锁,是否一直持续下去无法解除?说明解除死锁的方法,以及SQL Server使用的是哪一种方法?我 的问 题教师评语实验九:数据库大作业班 级学 号姓 名日 期实 验目 的1. 初步掌握数据库设计和数据库应用开发所需的基本知识和技能。实 验步 骤1. 根据给定的业务说明,总结系统的数据需求,建立ER图2. 根据给定的业务说明,给出系统的业务逻辑,并在此基础上给出相应的应用系统设计3. 根据ER图和应用系统设计的要求,给出数据库逻辑设计(包括主外码等完整性约束),并建立索引以提高效率4. 进行系统的安全性设计,建立不同人员的外模式,并授予相关权限5. 选择某个数据库管理系统,实现上述数据库设计6. 配置数据库客户端以及ODBC数据源7. 使用某种开发工具编程实现前面的应用系统设计,练习使用相应的数据操作和连接构件。8. 了解数据库编程中应该掌握的事务、游标等概念业务需求例子图书馆系统图书馆由借阅台,书库,采购部门构成,其工作人员包括:借阅台工作人员,仓库管理员,采购员和馆长。借阅人员包括本科生,研究生和教师。系统的业务需求:借阅台的业务需求:1. 借阅人员按照ISBN编号,书名,作者,出版社、关键字查阅图书馆的藏书资料,系统为借阅人提供书籍的相关信息,包括摘要等。2. 借阅人员向借阅台工作人员提出借阅请求 1)工作人员首先检查借阅人是否属于本馆会员,如果不是则要求借阅人首先登记为本馆会员(借阅人必须提供本人的身份证号码,姓名,住址,电话,电子邮件等),然后才能借阅。 2)工作人员检查本馆是否有借阅人要求借阅的图书,如果没有则要求借阅人进行缺书登记。 3)否则,检查是否已经全部借出,是否已经由该借阅人以外的其他人预约(并且该预约人没有违反以下的限制
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025关于个人汽车抵押借款合同范本
- 2025合同模板网络游戏直播合作协议范本
- 2025网络安全评估工程师劳动合同
- 2025政府标准法定合同(范本)
- 2025中介房屋租赁合同范本
- 2025个人汽车贷款合同
- 《高级财务会计》大学笔记
- 房屋建筑承揽合同
- 珍惜资源的演讲稿范文(19篇)
- 2025年移动互联网应用开发考试试题及答案
- 理论联系实际阐述文化在社会发展中具有什么样的作用?参考答案 二
- 学前儿童德育课件
- 2025年C++考试专用复习资料试题及答案
- 大学生外卖消费现状与趋势分析
- 2025年江苏省无锡市河埒中学教育集团中考二模英语试题
- 数据投资、数据共享与数据产权的法律问题探讨
- 2025年中考英语冲刺仿真模拟测试卷(含答案)
- 2025国家开放大学《商务英语1》综合测试形考任务答案
- 浪潮软件开发面试题目及答案
- 《天然植物化学成分与抗肿瘤机制》课件
- 2025年全国保密教育考试试卷附答案(三套)
评论
0/150
提交评论