《数据库系统概论》
实验指导书
(Ver 5.0)
安徽工业大学计算机学院
2010年9月
Oracle9i上机操作指南 安徽工业大学计算机学院
《数据库系统概论》实验指导书
一、 实验目的:
《数据库系统概论》是一门应用性很强的课程,上机实验是数据库课程的重要环节。本实验是结合《数据库系统概论》课程的学习而开设的实验。本实验目的如下:
1. 通过上机实验,加深对数据库系统理论知识的理解,增强对网络环境下大型数据库的感性认识和实际操作能力;
2. 通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术。熟悉Oracle Net Configuration Assistant工具,掌握Oracle数据库的网络连接配置;
3. 学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力; 4. 加强对事务处理、权限管理等概念的认识和理解。
二、 适应专业:计算机科学和技术、软件工程、网络工程专业
三、 实验学时数:12学时
四、 实验内容及学时安排:
实验一:数据定义语言
实验目的:熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。
学时数:2学时
实验内容:SQL数据定义语句。
实验要求:1. 熟悉Oracle上机环境;
2. 建立数据库表,修改数据库表结构,建立、删除索引;
实验二:数据操纵语言
实验目的:在实验一的基础上,熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。 学时数:2学时
实验内容:SQL数据操纵语句。
实验要求:对数据库表进行插入、修改和删除数据的操作。
1/10
Oracle9i上机操作指南 安徽工业大学计算机学院
实验三:数据查询语言
实验目的:体会SQL语言数据查询功能的丰富和复杂。 学时数:4学时
实验内容:SQL数据查询语句。
实验要求:对数据库表进行各种查询操作。
实验四:视图、授权控制与事务处理
实验目的:通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 学时数:2学时
实验内容:1. 视图的定义与操纵;
2. SQL数据控制语句; 3. SQL事务处理。
实验要求:1. 建立视图,视图查询,视图更新;
2. 给某一或全部用户授权和收回授权; 3. 事务回退,事务提交。
实验五:Oracle存储过程与触发器
实验目的:通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。 学时数:2学时
实验内容:1. Oracle存储过程;
2. Oracle触发器。
实验要求:1. 创建、调试和修改、调用和执行Oracle存储过程;
2. 创建、调试和修改、测试Oracle触发器。
五、 教材及参考文献
1.《数据库系统及应用》 戴小平 主编 中国科学技术大学出版社 2010.8 2.《数据库系统概论》(第四版) 王珊 萨师煊 编著 高等教育出版社 2006.5 3.《Oracle9i基础教程与上机指导》 付玉生 史乐平 编著 清华大学出版社 2004.10
六、 实验环境
实验要求如下环境
服务器端:Windows 2000/2003 Server;
Oracle 9i Database Server 客户端: Windows 2000/xp;
Oracle 9i Client 网络协议:TCP/IP
2/10
Oracle9i上机操作指南 安徽工业大学计算机学院
七、 成绩考核
上机实验考核采取实验报告和上机抽查检验相结合的方式。每次实验结束后都必须写出实验报告。
八. 实验报告
按“《数据库系统概论》实验报告书”格式要求,在规定时间内完成并上交。
九. 教学管理数据库设计 各表的数据结构和数据如下:
1. 学生情况表 Student 主关键字:SNO 非空字段:SNAME,SDEPT,SCLASS
SNO(C,5) SNAME(C,10) SDEPT(C,2) SCLASS(C,2) SSEX(C,2) SAGE(N,2) 学号 姓名 系 班级 性别 年龄 96001 马小燕 96002 黎明 96003 刘东明 96004 赵志勇 97001 马蓉 97002 李成功 97003 黎明 97004 李丽 CS 01 CS MA IS CS IS CS 01 01 02 01 03 02 02 女 男 男 女 男 女 女 男 21 18 20 19 20 19 19 18 CS:计算机系 MA:数学系 IS:信息系 注意:区别大小写
男 18 MA 02 96005 司马志明 CS 2. 课程名称表 Course 3. 教师授课表 Teach
CNO(C,3) CNAME(C,16) CTIME(N,3) 课程号 课程名称 学时数 TNAME(C,8) TSEX(C,2) CNO(C,3) TDATE TDEPT(C,2) 教师姓名 性别 课程号 授课日期 系 001 数学分析 144 002 普通物理 144 003 微机原理 72 004 数据结构 72 005 操作系统 64 006 数据库原理 64 007 DB_Design 48 008 程序设计 56 王成刚 李正科 严敏 赵高 李正科 刘玉兰 王成刚 马悦 王成刚 男 男 女 男 男 女 男 女 男 004 003 001 004 003 006 004 008 007 1999.9.5 CS 1999.9.5 CS 1999.9.5 MA 1999.9.5 IS 2000.2.23 MA 2000.2.23 CS 2000.2.23 IS 2000.9.6 CS 1999.9.5 CS 主关键字:CNO 候选关键字:CNAME 主关键字:TNAME,CNO,TDEPT 参照关系:Course(CNO)
3/10
Oracle9i上机操作指南 安徽工业大学计算机学院
4. 成绩表 Score 主关键字:SNO,CNO 参照关系:Student(SNO),Course(CNO)
SNO(C,5) CNO(C,3) SCORE(N,5,2) SNO(C,5) CNO(C,3) SCORE(N,5,2) SNO(C,5) CNO(C,3) SCORE(N,5,2) 学号 课程号 分数 学号 课程号 分数 学号 课程号 分数 96001 001 77.5 96001 003 89 96001 004 86 96001 005 82 96002 001 88 96002 006 90 96005 004 92
96005 005 90 96005 006 89 96005 007 76 96003 001 69 97001 001 96 96004 001 87 96003 003 91 97002 003 91 97002 004 97002 006 92 97004 005 90 97004 006 85 97004 008 75 97003 001 59 97003 003 58 96002 003 92.5 97001 008 95 十. SQL语句
1. SQL数据定义语句:
例1-1: (建立数据库表) 建立教学数据库的四个数据库表,其中Student表中不包含SSEX(C,2) 字段,Sname 字段为Sname(C,8)且可为空。
例1-2: (修改数据库表) 在Student表中增加SEX(C,2) 字段。 例1-3: (修改列名) 将Student表中列名SEX修改为SSEX。
例1-4: (修改数据库表) 将Student表中把Sname 字段修改为Sname(C,10)且为非空。 例1-5: (建立索引) 为Score表按课程号升序、分数降序建立索引,索引名为SC_GRADE。 例1-6: (删除索引) 删除索引SC_GRADE。
例1-7: (建立数据库表) 建立数据库表S1(SNO,SNAME,SD,SA),其字段类型定义与Student表中的相应字段(SNO,SNAME,SDEPT,SAGE)的数据类型定义相同。
例1-8: (修改数据库表) 删除成绩表Score的参照完整性约束关系。 例1-9: (修改数据库表) 添加成绩表Score的参照完整性约束关系。 例1-10: (修改数据库表名) 将数据库表S1改名为Student_Temp。
2. SQL数据操纵语句:
例2-1: (插入数据) 按前面各表中的数据分别插入到教学数据库的四个数据库表中。 例2-2:(多行插入) 将表Student中在计算机系(‘CS’)的学生数据插入到表Student_Temp中。
(以上操作中,注意用COMMIT提交数据,将数据保存到数据库服务器)
例2-3:(利用查询来实现表的定义与数据插入) 求每一个学生的平均成绩,把结果存入数据库表Student_Gr中。
例2-4: (修改数据) 将Student_Temp表中所有学生的年龄加2。
例2-5: (修改数据) 将Course表中‘程序设计’课时数修改成与‘数据结构’的课时数相同。 例2-6: (插入数据) 向Score表中插入数据(‘98001’, ‘001’, 95),根据返回信息解释其原因。
4/10