1、数据库系统实验课实验报告数据库系统实验报告一学号姓名实验时间实验名称Oracle环境及数据库创建实验学时2准备材料1. Oracle 10G 介绍资料 2. SQL Plus命令手册3. Oracle数据字典扩展实验1. 使用企业 管理器登录Oracle服务器,观察系统架构及数据库2. 使用OEM创建、删除数据库此部分内容不要求在实验室完成,不用写入实验报告。实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1. 了解oracle系统架构2. 熟悉SQL Plus环境实验内容及步骤1. 使用SQL Plus Worksheet
2、登录数据库系统(用户名密码由教师指定)2. 浏览SQL Plus环境设置命令,并完成下列操作:(1) 察看SQL Plus环境参数(2) 设置输出页面的大小,每列字符数 120,每页行数100,观察设置结构(3) 设置显示每个sql语句花费的执行时间,并观察实验结果(4) 在SQL Plus中执行操作系统命令,例如copy文件、显示目录等,观察结果。(5) 设置将系统输出数据写入文件c:textoutput.txt,执行多个命令后观察文件内容。3. 显示系统信息(1) 显示用户信息(2) 显示数据库版本信息(3) 显示数据库中所有表的名称显示系统中某张表的结构信息(如EMP表)(4) 显示数据
3、库中某张表的数据,如EMP表4. 建立磁盘文本文件testcommand.sql,文件内写入几条SQL命令,执行此文件,并观察执行结果。出现问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告二学号姓名实验时间实验名称数据库模式管理实验学时4准备材料1. SQL Plus命令手册2. Oracle数据字典3. Oracle中的数据类型扩展实验1. 掌握在企业管理器(或其它图形界面的数据库操作工具)中进行表、索引的创建和管理的方法。2. 利用企业管理器(或其它图形界面的数据库操作工具)观察数据库的物理模式。(此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及
4、以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1 掌握使用SQL语句进行表的创建和管理的方法2 加深对关系数据库结构和数据完整性等概念的理解实验内容及步骤1. 创建书上university数据库中所有的表(student, course, department, takes, instructor, advisor, prereq, teaches, classroom, section, timeslot),按书上要求设置每张表的主键、外键,表中每个字段的类型、长度由学生自己确定。2. 使用命令完成下列扣作(1)查找用户所有表的表名(2)查看每张表的
5、结构(要求把每张表的结构截图放到实验报告中)(3)查看表takes的约束信息3. 修改表结构(1) 在instructor表中增加列存储教师家庭地址,其地址包括省、市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。(2) 对student表中的姓名字段长度都改为10,设置是否成功?原因是什么?将该字段长度改为50,能否成功?说明原因。(3) 为student表中tot_cred列设置默认值 0,插入一个Comp. Sci.系的新学生,且不给其tot_cred列赋值,观察结果。(4) student表中tot_cred列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加
6、,哪些课程的学分还没有累加。设计一种方案记录已累加课程,防止出现重复累加的情况。或者设计一种方案简化总学分的计算过程。(5) 删除takes表上对student表ID的外键约束,查看此约束已删除。添加一个不存在的学生(id=201400320101)选修course_id 为CS001的课程,并给他一个成绩(成绩值为:A, B, C, D, E 或F)。再添加takes表是对student表ID 的外键约束 ,观察并解释实验结果。(6) 设置takes表ID, course_id,sec_id三个字段非空,是否能设置成功,对插入数据有没有影响? 删除takes表主键约束,增加某同学选同一门课程
7、(id, couese_id, sec_id, semester, year, grade都相同)的信息,能否插入成功?解释原因。4. 参照表student建立一张空表student1。要求用两种方法实现 (create table; create table as )。5. 增加section表上的约束条件,要求所输入section的年号不大于当前年号+1,且不小于当前年号-2。插入一条2009年秋CS-101 开设课的信息,观察并解释实验结果。6. 选择某个约束,分别设置其有效、失效,观察区别。出现问题没有问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告三学号姓名实验时间实验名
8、称数据查询实验学时4准备材料1. SQL Plus命令手册2. Oracle数据字典扩展实验1. 利用企业管理器的图形界面构造查询语句,并察看查询结果2. 利用企业管理器完成视图、索引的创建与使用。3. 利用DBMS进行对第三章习题所设计SQL语句的检查 (此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1掌握使用SQL语句进行数据查询的方法2. 掌握视图的创建与使用方法3. 观察索引的使用效果实验内容及步骤1. 执行文件ddl+drop.sql,创建数据库Universit
9、y中所有表。执行文件 smallRelationsInsertFile.sql,插入实验数据。2. 使用University数据库的数据库结构和数据(smallRelations即可),完成下列查询:(1) Find the names of courses in Computer science department which have 3 credits(2) For the student with ID 12345 (or any other value), show all course_id and title of all courses registered for by t
10、he student. (3) As above, but show the total number of credits for such courses (taken by that student). Dont display the tot_creds value from the student table, you should use SQL aggregation on courses taken by the student. (4) As above, but display the total credits for each of the students, alon
11、g with the ID of the student; dont bother about the name of the student. (Dont bother about students who have not registered for any course, they can be omitted) (5) Find the names of all students who have taken any Comp. Sci. course ever (there should be no duplicate names) (6) Display the IDs of a
12、ll instructors who have never taught a couse (Notes 1) Oracle uses the keyword minus in place of except; 2) interpret taught as taught or is scheduled to teach) (7) As above, but display the names of the instructors also, not just the IDs.(8) Find the maximum and minimum enrollment across all sectio
13、ns, considering only sections that had some enrollment, dont worry about those that had no students taking that section(9) As in Question (8), but now also include sections with no students taking them; the enrollment for such sections should be treated as 0. Do this in two different ways (and creat
14、e require data for testing) 1). Using a scalar subquery 2). Using aggregation on a left outer join (use the SQL natural left outer join syntax)(10) Find all courses whose identifier starts with the string CS-101 (11) Find instructors who have taught all the above courses 1). Using the not exists . e
15、xcept . structure 2). Using matching of counts which we covered in class (dont forget the distinct clause!) 3. The university rules allow an F grade to be overridden by any pass grade (A, B, C, D). Now, create a view that lists information about all fail grades that have not been overridden (the vie
16、w should contain all attributes from the takes relation).4. Find all students who have 2 or more non-overridden F grades as per the takes relation, and list them along with the F出现问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告四学号姓名实验时间实验名称表数据管理实验学时2准备材料1. SQL Plus命令手册2. Oracle数据字典扩展实验1. 利用企业管理器的图形界面输入数据2. 利用企业管理器或P
17、L SQL Developer导入、导出TXT文档、Excel表格中的数据。(此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1掌握使用SQL语句对表进行插入、修改和删除数据的操作。2. 掌握索引创建与使用方法实验内容及步骤1. 执行文件ddl+drop.sql,创建数据库University中所有表。执行文件 smallRelationsInsertFile.sql,插入实验数据。2. 删除department表中Physics记录,观察能否成功删除。若不能删除,说明原因。
18、若能删除,观察有外关联的表中数据的变化。3. 插入一门新课,课程名“Weekly seminar”,课号CS-001,由Engineering department开出,学分1,观察实验结果,说明原因。4. 调整各系员工工资,原工资50000的增加10%,否则 增加6%,观察结果.5. 第3小题新插入的课程,课程名“Weekly seminar”,课号CS-001,改为由Comp. Sci.开出,重新插入到course表中。观察实验结果,说明原因。6. 假设全体Comp. Sci.学生都要选课“Weekly seminar”,且课程要2013年秋季学期开出,增加课程开出信息、选课信息。7. 删
19、除学生Brown的“Weekly seminar”课程的选课记录。8. 假设学期末,教师给出课程“Weekly seminar”的选课学生成绩单,请依据选课成绩给出每个学生学分。9. 将学生表中学分tot_cred100的学生选出来放进对应系的instructor表中,工资设置为10000.10.找出并删除所有未被开出过的课程。11. 在表takes上course_id字段创建索引,观察查询速度变化。12. 在takes表course_id字段上创建索引,试一试能否创建唯一性索引?出现问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告五学号姓名实验时间实验名称权限与事务管理实验学时2
20、准备材料1. SQL Plus命令手册2. Oracle数据字典扩展实验1. 利用企业管理器的图形界面进行创建用户、角色并进行管理2.利用企业管理器的图形 界面完成对数据操纵权限的授权与回收工作(此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1掌握权限管理语句与视图进行安全性控制的方法 实验内容及步骤每两个同学一组,自由组合完成下列操作要求(使用grant, revoke语句和视图):1. 执行教师提供的命令文件,建立university数据库,并输入数据。2. 同学A设置
21、同学B对A.course表具有查询权限,对A.instructor表中salary字段具有更新权限;同学B查看元数据表,查找自己被子授权使用的数据。3. 同学B授权同学A对B. instructor表具有插入数据、删除数据的权限,同学A用命令试验能否完成相应操作。4. 同学A授权同学B,对A.student表具有修改表结构的权限,同学B得到修改表结构的命令验证授权是否成功。5. 同学B授权同学A对B. student表具有增、删、改、查的权限,并允许他将权限授权给其它同学。同学A验证授权是否成功,并试验能否将权限授予其它同学(例如同学C)。6. 同学A收回授权同学B的student表上的所有权
22、限,同学B验证是否回收成功。7. 同学A通过视图授权同学B具有察看每个部门职工最高、最低、平均工资的权限,但不允许他察看每个人的工资。同学B验证授权是否成功。8. 同学A、B撤销所有已授给对方的权限,如果同学C从同学A得到对同学B student表的访问 权限,察看其权限是否一并收回。9.事务查看 使用如下命令,查看当前事务、会话情况:(1)show parameter processes;show parametersession;(2)select name, type, value ,display_value, isses_modifiable, issys_modifiable fr
23、om v$parameterwhere name=sessions;select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameterwhere name=processes; SELECT * FROM V$SESSIONWHERE USERNAME = ORDERBY LOGON_TIME, SID;SELECT P.SPID, S.SID, S.SERIAL#FROM V$PROCESS PINNERJOIN V$SESSION S ON P.ADDR = S.PADDR
24、WHERE S.AUDSID=USERENV(SESSIONID);注:此表可能学生没有权限查看,如果有兴趣,在自己电脑上试试。10事务提交方式有三种:显式提交隐式提交和自动提交。SQL PLUS中可通过命令可进行提交方式设置,设置不同提交方式。事务命令有:BEGIN TRANSACTION、COMMIT、ROLLBACK、SAVEPOINT、RELEASE SAVEPOINT、SET ISOLATION LEVEL事务隔离级别:离层错读|脏读非重复读取|不可重复读假读|幻读READ UNCOMMITTED(非提交读)是是是READ COMMITTED(提交读)否是是Repeatable RE
25、AD(可重复读)否否是Serializable(串行读)否否否Oracle只支持ead committed 、serializable和Repeatable READ三种,不支持READ UNCOMMITTED。完成下列和事务相关的操作:(1)修改事务隔离级别( Set transaction isolation level read committed、 Set transaction isolation level serializable),AB两同学一起操作同一张表,A.instructor,B同学修改数据,A同学查询数据,查看在什么情况下可查看到B同学刚刚修改的数据。(2)设置自动提
26、交,A、B同学同时操作同一张表的数据,察看是否可看到最新修改结果。(3)B同学设置SAVEPOINT,进行数据操作、rollback到该savepoint,A同学在各个步骤察看数据变化情况。在不同隔离级别下执行相同操作,察看数据的不同点。出现问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告六学号姓名实验时间实验名称存储过程、函数和事务实验学时2准备材料1. SQL Plus命令手册2. PL/SQL用户手册3. 实验教材中实验五、六扩展实验1. 利用企业管理器完成存储过程和函数的定义、执行与管理操作 (此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及
27、以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1 熟悉PL/SQL语法2. 利用PL/SQL编程访问数据库实验内容及步骤1. 完成实验指导书实验五所有实验内容,掌握PL/SQL语言中数据类型、变量、输入输出语句、分支、循环语句的基本用法2. 编写存储过程或函数,要求查询instructor和department表,依据系名输出系名称、资产、所包含员工姓名等信息,并输出其所包含员工个数。执行存储过程(执行时输入部门号参数),察看输出结果是否正确3. 编写函数EmpSalStatics完成instructor工资情况统计,按=1000,=2000, =50
28、00, 10000五种情况分别统计职工人数,并输出实验结果4. 与另一同学交换函数 EmpSalStatics的执行权限、察看对方的EmpSalStatics函数执行结果,并与自己的函数执行结果比较。5. 使用SQL命令察看存储过程和函数的信息出现问题解决方案(列出遇到的问题及其解决方法)数据库系统实验报告七学号姓名实验时间实验名称触发器和事务实验学时2准备材料1. SQL Plus命令手册2. PL/SQL用户手册3. 实验教材中实验五、七扩展实验1. 利用企业管理器的图形界面完成触发器的创建与管理工作 (此部分内容不要求在实验室完成,不用写入实验报告。)实验环境Oracle 9i(及以上版本)服务器SQL Plus/ SQL Plus work sheet客户端实验目的1掌握使用SQL语句进行触发器创建与管理操作的方法。实验内容及步骤1. 完成实验教材实验七的所有内容,实验习题、练习的内容写实验报告。2. 观察数据修改语句失败时系统中数据情况,说明数据一致性如何 保持。出现问题解决方案(列出遇到的问题及其解决方法)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1