《数据库概论》实验指导书.docx

上传人:b****1 文档编号:13371939 上传时间:2023-06-13 格式:DOCX 页数:41 大小:738.58KB
下载 相关 举报
《数据库概论》实验指导书.docx_第1页
第1页 / 共41页
《数据库概论》实验指导书.docx_第2页
第2页 / 共41页
《数据库概论》实验指导书.docx_第3页
第3页 / 共41页
《数据库概论》实验指导书.docx_第4页
第4页 / 共41页
《数据库概论》实验指导书.docx_第5页
第5页 / 共41页
《数据库概论》实验指导书.docx_第6页
第6页 / 共41页
《数据库概论》实验指导书.docx_第7页
第7页 / 共41页
《数据库概论》实验指导书.docx_第8页
第8页 / 共41页
《数据库概论》实验指导书.docx_第9页
第9页 / 共41页
《数据库概论》实验指导书.docx_第10页
第10页 / 共41页
《数据库概论》实验指导书.docx_第11页
第11页 / 共41页
《数据库概论》实验指导书.docx_第12页
第12页 / 共41页
《数据库概论》实验指导书.docx_第13页
第13页 / 共41页
《数据库概论》实验指导书.docx_第14页
第14页 / 共41页
《数据库概论》实验指导书.docx_第15页
第15页 / 共41页
《数据库概论》实验指导书.docx_第16页
第16页 / 共41页
《数据库概论》实验指导书.docx_第17页
第17页 / 共41页
《数据库概论》实验指导书.docx_第18页
第18页 / 共41页
《数据库概论》实验指导书.docx_第19页
第19页 / 共41页
《数据库概论》实验指导书.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《数据库概论》实验指导书.docx

《《数据库概论》实验指导书.docx》由会员分享,可在线阅读,更多相关《《数据库概论》实验指导书.docx(41页珍藏版)》请在冰点文库上搜索。

《数据库概论》实验指导书.docx

《数据库概论》实验指导书

 

《数据库系统概论》

实验报告书

 

专业班级

学号

姓名

指导教师

 

安徽工业大学计算机学院

实验一:

数据定义语言

[实验日期]年月日

[实验目的]

熟悉Oracle上机环境及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。

[实验内容]

Oracle上机环境以及Oracle客户端的配置参见附录。

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。

[实验要求]

①熟悉Oracle上机环境,掌握Oracle客户端的配置;

②建立数据库表,修改数据库表结构,建立、删除索引;

[实验方法]

①按照附录中的操作步骤进行客户端的配置;

②将实验需求用SQL语句表示;

③执行SQL语句;

④查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结]

①SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

 

实验二:

数据操纵语言

[实验日期]年月日

[实验目的]

在实验一的基础上,熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。

[实验内容]

2.SQL数据操纵语句:

例2-1:

(插入数据)按前面各表中的数据分别插入到教学数据库的四个数据库表中。

例2-2:

(多行插入)将表Student表中计算机系(‘CS’)的学生数据插入到表S1中。

(以上操作中,注意用COMMIT提交数据,将数据保存到数据库服务器)

例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),根据返回信息解释其原因。

例2-7:

(插入数据)向Score表中插入数据(‘97001’,‘010’,80),根据返回信息解释其原因。

例2-8:

(删除数据)删除Student表中学号为‘96001’的学生信息,根据返回信息解释其原因。

例2-9:

(删除数据)删除Course表中课程号为‘003’的课程信息,根据返回信息解释其原因。

例2-10:

(删除数据)删除学生表Student_Temp中学号以96打头的学生信息。

(此操作后,注意用ROLLBACK回退可能更新的数据)

例2-11:

(删除数据)删除数据库表Student_Temp中所有学生的数据。

例2-12:

(删除表)删除数据库表Student_Temp和Student_Gr。

[实验要求]

对数据库表进行插入、修改和删除数据的操作。

[实验方法]

①按照附录中的操作步骤进行客户端的配置;

②将实验需求用SQL语句表示;

③执行SQL语句;

④查看执行结果,如果结果不正确,进行修改,直到正确为止。

 

[实验总结]

①SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

 

实验三:

数据查询语言

[实验日期]年月日

[实验目的]

体会SQL语言数据查询功能的丰富和复杂。

[实验内容]

3.SQL数据查询语句:

例3-1:

(选择表中的若干列)求全体学生的学号、姓名、性别和年龄。

例3-2:

(不选择重复行)求选修了课程的学生学号。

例3-3:

(选择表中的所有列)求全体学生的详细信息。

例3-4:

(使用表达式)求全体学生的学号、姓名和出生年份。

例3-5:

(使用列的别名)求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。

例3-6:

(比较大小条件)求年龄大于19岁的学生的姓名和年龄。

例3-7:

(比较大小条件)求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。

例3-8:

(确定范围条件)求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。

例3-9:

(确定范围条件)求年龄不在19岁与22岁之间的学生的学号和年龄。

例3-10:

(确定集合条件)求在下列各系的学生信息:

数学系、计算机系。

例3-11:

(确定集合条件)求不是数学系、计算机系的学生信息。

例3-12:

(匹配查询)求姓名是以“李”打头的学生。

例3-13:

(匹配查询)求姓名中含有“志”的学生。

例3-14:

(匹配查询)求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。

例3-15:

(匹配查询)求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、课程号和成绩。

例3-16:

(匹配查询)求课程名中包含’_’字符的课程号、课程名和学时数。

例3-17:

(涉及空值查询)求缺少学习成绩的学生的学号和课程号。

例3-18:

(控制行的显示顺序)求选修003课程或004课程的学生的学号、课程号和分数,要求按课程号升序、分数降序的顺序显示结果。

例3-19:

(组函数)求学生总人数。

例3-20:

(组函数)求选修了课程的学生人数。

例3-21:

(组函数)求计算机系学生的平均年龄。

例3-22:

(组函数)求选修了课程001的最高、最低与平均成绩。

例3-23:

(分组查询)求各门课程的平均成绩与总成绩。

例3-24:

(分组查询)求各系、各班级的人数和平均年龄。

例3-25:

(分组查询)输入以下查询语句并执行,观察出现的其结果并分析其原因。

SELECTSNAME,SDEPT,COUNT(*)FROMSTUDENT

WHERESDEPT=’CS’GROUPBYSDEPT;

例3-26:

(分组查询)分析以下语句为什么会出现错误。

并给出正确的查询语句。

SELECTSAGEFROMSTUDENTGROUPBYSNO;

例3-27:

(分组查询)求学生人数不足3人的系及其相应的学生数。

例3-28:

(分组查询)求各系中除01班之外的各班的学生人数。

例3-29:

(涉及空值的查询)分别观察各组函数、行的显示顺序以及分组查询与空值的关系。

例3-30:

(连接查询)求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。

例3-31:

(连接查询与表的别名)求选修了课程的学生的学生姓名、课程号和成绩。

例3-32:

(自身连接查询)求年龄大于’李丽’的所有学生的姓名、系和年龄。

例3-33:

(外部连接查询)求选修了课程002或003的学生的学号、课程号、课程名和成绩,要求必须将002和003课程的相关信息显示出来。

例3-34:

(子查询)求与‘黎明’年龄相同的学生的姓名和系。

例3-35:

(子查询)求选修了课程名为’数据结构’的学生的学号和姓名。

例3-36:

(子查询ANY)求比数学系中某一学生年龄大的学生的姓名和系。

例3-37:

(子查询ALL)求比数学系中全体学生年龄大的学生的姓名和系。

例3-38:

(子查询EXISTS)求选修了课程004的学生的姓名和系。

例3-39:

(返回多列的子查询)求与‘李丽’同系且同龄的学生的姓名和系。

例3-40:

(多个子查询)求与‘‘黎明’同系,且年龄大于‘李丽’的学生的信息。

例3-41:

(子查询中使用表连接)求数学系中年龄相同的学生的姓名和年龄。

例3-42:

(连接或嵌套查询)检索至少选修王成刚老师所授课程中一门课程的女学生姓名。

例3-43:

(嵌套与分组查询)检索选修某课程的学生人数多于3人的教师姓名。

例3-44:

(集合查询)列出所有教师和同学的姓名和性别。

例3-45:

(相关子查询)求未选修课程004的学生的姓名。

例3-46:

(相关子查询)求选修了全部课程的学生的姓名。

例3-47:

(相关子查询)求至少选修了学生‘96002’所选修的全部课程的学生的学号。

例3-48:

(相关子查询)求成绩比所选修课程平均成绩高的学生的学号、课程号、和成绩。

例3-49:

(相关子查询)查询被一个以上的学生选修的课程号。

例3-50:

(相关子查询)查询所有未选课程的学生姓名和所在系。

[实验要求]

对数据库表进行各种查询操作。

[实验方法]

①将实验需求用SQL语句表示;

②执行SQL语句;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结]

①SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

 

实验四:

视图、授权控制与事务处理

[实验日期]年月日

[实验目的]

通过实验进一步理解视图的建立和更新、数据库的权限管理和事务处理功能。

[实验内容]

4.SQL视图的定义与操纵:

例4-1:

(建立视图)建立计算机系的学生的视图STUDENT_CS。

例4-2:

(建立视图)建立由学号和平均成绩两个字段的视图STUDENT_GR。

例4-3:

(视图查询)利用视图STUDENT_CS,求年龄大于19岁的学生的全部信息。

例4-4:

(视图查询)利用视图STUDENT_GR,求平均成绩为88分以上的学生的学号和平均成绩。

例4-5:

(视图更新)利用视图STUDENT_CS,增加学生(‘96006’,‘张然’,‘CS’,‘02’,‘男’,19)。

例4-6:

(视图更新)利用视图STUDENT_CS,将学生年龄增加1岁。

观察其运行结果并分析原因。

例4-7:

(视图更新)利用视图STUDENT_GR,将平均成绩增加2分。

观察其运行结果并分析原因。

例4-8:

(视图更新)删除视图STUDENT_CS中学号为‘96006’的学生的全部数据。

例4-9:

(视图更新)删除视图STUDENT_GR的全部数据。

例4-10:

(删除视图)删除视图STUDENT_CS和STUDENT_GR。

5.SQL数据控制语句:

例5-1:

(授权)给左右邻近同学(用户)授予在表Student上的SELECT权限,并使这两个用户具有给其他用户授予相同权限的权限。

例5-2:

(授权)给邻近同学(用户)授予Teach表上的所有权限。

例5-3:

(授权)给所有用户授予Score表上的SELECT权限。

例5-4:

(授权验证)观察左右邻近同学查询你所授权的表中的内容。

例5-5:

(收回授权)收回上面例子中的所有授予的权限。

6.SQL事务处理:

例6-1:

(事务回退)将课程名称表中的‘程序设计’课程学时数修改为80、‘微机原理’课程学时数修改为70学时,查询全部课程的总学时数后,取消所有修改(ROLLBACK)。

再次查询全部课程的总学时数。

注意比较分析两次查询的结果。

例6-2:

(事务提交)将课程名称表中的‘程序设计’课程学时数修改为80、‘微机原理’课程学时数修改为70学时,查询全部课程的总学时数后,确认所有修改(COMMIT)。

再次查询全部课程的总学时数。

注意比较分析两次查询的结果。

 

[实验要求]

①建立视图,视图查询,视图更新;

②给某一或全部用户授权和收回授权;

③事务回退,事务提交。

[实验方法]

①将实验需求用SQL语句表示;

②执行SQL语句;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结]

①SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

 

实验五:

Oracle存储过程与触发器

[实验日期]年月日

[实验目的]

通过实验进一步理解和掌握Oracle数据库的存储过程和触发器。

[实验内容]

4.存储过程与触发器:

例7-1:

(存储过程)创建一个显示学生总人数的存储过程。

例7-2:

(存储过程)创建显示学生信息的存储过程STUDENT_LIST,并引用STU_COUNT存储过程。

例7-3:

(存储过程)创建一个显示学生平均成绩的存储过程。

例7-4:

(存储过程)创建显示所有学生平均成绩的存储过程。

例7-5:

(修改数据库表)在Student表中增加SAVG(N,6,2)字段。

例7-6:

(存储过程)创建存储过程,计算每个学生的平均成绩保存到学生表SAVG字段中。

例7-7:

(触发器)当更新学生成绩表SCORE中的学生成绩时,自动计算该学生的平均成绩保存到学生表SAVG字段中。

例7-8:

(触发器)创建包含插入、删除、修改多种触发事件的触发器DML_LOG,对SCORE表的操作进行记录。

用INSERTING、DELETING、UPDATING谓词来区别不同的DML操作。

先创建事件记录表LOGS,该表用来对操作进行记录。

该表的字段含义解释如下:

LOG_ID:

操作记录的编号,数值型,它是该表的主键,自动增1,可由序列自动生成。

LOG_TABLE:

进行操作的表名,字符型,非空,该表设计成可以由多个触发器共享使用。

比如我们可以为Student表创建类似的触发器,同样将操作记录到该表。

LOG_DML:

操作的动作,即INSERT、DELETE或UPDATE三种之一。

LOG_KEY_ID:

操作时表的主键值,数值型。

之所以记录表的主键,是因为主键是表的记录的惟一标识,可以识别是对哪一条记录进行了操作。

对于Score表,主键是由SNO_CNO构成。

LOG_DATE:

操作的日期,日期型,取当前的系统时间。

LOG_USER:

操作者,字符型,取当时的操作者账户名。

比如登录SCOTT账户进行操作,在该字段中,记录账户名为SCOTT。

 

[实验要求]

①创建、调试和修改、调用和执行Oracle存储过程;

②创建、调试和修改、测试Oracle触发器。

[实验方法]

①将实验需求用SQL语句表示;

②执行SQL语句;

③查看执行结果,如果结果不正确,进行修改,直到正确为止。

[实验总结]

①SQL语句以及执行结果;

②对重点实验结果进行分析;

③实验中的问题和提高;

④收获与体会。

 

《数据库系统概论》

实验指导书

(Ver5.0)

 

安徽工业大学计算机学院

2010年9月

《数据库系统概论》实验指导书

一、实验目的:

《数据库系统概论》是一门应用性很强的课程,上机实验是数据库课程的重要环节。

本实验是结合《数据库系统概论》课程的学习而开设的实验。

本实验目的如下:

1.通过上机实验,加深对数据库系统理论知识的理解,增强对网络环境下大型数据库的感性认识和实际操作能力;

2.通过使用具体的DBMS,了解一种实际的数据库管理系统,并掌握其操作技术。

熟悉OracleNetConfigurationAssistant工具,掌握Oracle数据库的网络连接配置;

3.学习使用SQL语言,加深对SQL语言的认识和理解,提高SQL语言的实际应用能力;

4.加强对事务处理、权限管理等概念的认识和理解。

二、适应专业:

计算机科学和技术、软件工程、网络工程专业

三、实验学时数:

12学时

四、实验内容及学时安排:

实验一:

数据定义语言

实验目的:

熟悉Oracle上机环境以及Oracle客户端的配置;熟练掌握和使用DDL语言,建立、修改和删除数据库表、主键、外键约束关系和索引。

学时数:

2学时

实验内容:

SQL数据定义语句。

实验要求:

1.熟悉Oracle上机环境;

2.建立数据库表,修改数据库表结构,建立、删除索引;

实验二:

数据操纵语言

实验目的:

在实验一的基础上,熟练掌握和使用DML语言,对数据进行增加、修改和删除操作。

学时数:

2学时

实验内容:

SQL数据操纵语句。

实验要求:

对数据库表进行插入、修改和删除数据的操作。

 

实验三:

数据查询语言

实验目的:

体会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

六、实验环境

实验要求如下环境

服务器端:

Windows2000/2003Server;

Oracle9iDatabaseServer

客户端:

Windows2000/xp;

Oracle9iClient

网络协议:

TCP/IP

七、成绩考核

上机实验考核采取实验报告和上机抽查检验相结合的方式。

每次实验结束后都必须写出实验报告。

八.实验报告

按“《数据库系统概论》实验报告书”格式要求,在规定时间内完成并上交。

九.教学管理数据库设计

各表的数据结构和数据如下:

1.学生情况表Student主关键字:

SNO非空字段:

SNAME,SDEPT,SCLASS

CS:

计算机系

SNO(C,5)

学号

SNAME(C,10)

姓名

SDEPT(C,2)

SCLASS(C,2)

班级

SSEX(C,2)

性别

SAGE(N,2)

年龄

96001

马小燕

CS

01

21

MA:

数学系

IS:

信息系

96002

黎明

CS

01

18

96003

刘东明

MA

01

18

96004

赵志勇

IS

02

注意:

区别大小写

20

97001

马蓉

MA

02

19

97002

李成功

CS

01

20

97003

黎明

IS

03

19

97004

李丽

CS

02

19

96005

司马志明

CS

02

18

2.课程名称表Course3.教师授课表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

王成刚

004

1999.9.5

CS

002

普通物理

144

李正科

003

1999.9.5

CS

003

微机原理

72

严敏

001

1999.9.5

MA

004

数据结构

72

赵高

004

1999.9.5

IS

005

操作系统

64

李正科

003

2000.2.23

MA

006

数据库原理

64

刘玉兰

006

2000.2.23

CS

007

DB_Design

48

王成刚

004

2000.2.23

IS

008

程序设计

56

马悦

008

2000.9.6

CS

王成刚

007

1999.9.5

CS

主关键字:

CNO候选关键字:

CNAME主关键字:

TNAME,CNO,TDEPT参照关系:

Course(CNO)

 

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

96005

005

90

97002

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2