数据库系统实验课实验报告 - 图文

更新时间:2023-11-24 02:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数据库系统》实验报告一

学号 姓名 实验时间 实验名称 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. 浏览SQL Plus环境设置命令,并完成下列操作: (1) 察看SQL Plus环境参数 (2) 设置输出页面的大小,每列字符数 120,每页行数100,观察设置结构 (3) 设置显示每个sql语句花费的执行时间,并观察实验结果 (4) 在SQL Plus中执行操作系统命令,例如copy文件、显示目录等,观察结果。 (5) 设置将系统输出数据写入文件c:\\textoutput.txt,执行多个命令后观察文件内容。 3. 显示系统信息 (1) 显示用户信息 (2) 显示数据库版本信息 (3) 显示数据库中所有表的名称 显示系统中某张表的结构信息(如EMP表) (4) 显示数据库中某张表的数据,如EMP表 4. 建立磁盘文本文件testcommand.sql,文件内写入几条SQL命令,执行此文件,并观察执行结果。 出现问题 解决方案 (列出遇到的问题及其解决方法) 《数据库系统》实验报告二

学号 姓名 实验时间 实验名称 数据库模式管理 实验学时 4 准备材料 1. SQL Plus命令手册 2. Oracle数据字典 3. Oracle中的数据类型 扩展实验 1. 掌握在企业管理器(或其它图形界面的数据库操作工具)中进行表、索引的创建和管理的方法。 2. 利用企业管理器(或其它图形界面的数据库操作工具)观察数据库的物理模式。 (此部分内容不要求在实验室完成,不用写入实验报告。) 实验环境 Oracle 9i(及以上版本)服务器 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)查看每张表的结构(要求把每张表的结构截图放到实验报告中)(3)查看表takes的约束信息 3. 修改表结构 (1) 在instructor表中增加列存储教师家庭地址,其地址包括省、市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。 (2) 对student表中的姓名字段长度都改为10,设置是否成功?原因是什么?将该字段长度改为50,能否成功?说明原因。 (3) 为student表中tot_cred列设置默认值 0,插入一个Comp. Sci.系的新学生,且不给其tot_cred列赋值,观察结果。 (4) student表中tot_cred列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加,哪些课程的学分还没有累加。设计一种方案记录已累加课程,防止出现重复累加的情况。或者设计一种方案简化总学分的计算过程。 (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表主键约束,增加某同学选同一门课程(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. 选择某个约束,分别设置其有效、失效,观察区别。 出现问题 没有问题 解决方案 (列出遇到的问题及其解决方法) 《数据库系统》实验报告三

学号 姓名 实验时间 实验名称 数据查询 实验学时 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,创建数据库University中所有表。执行文件 及步骤 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 the student. (3) As above, but show the total number of credits for such courses (taken by that student). Don't 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, along with the ID of the student; don't bother about the name of the student. (Don't 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 all instructors who have never taught a couse (Notes 1) Oracle uses the keyword minus in place of except; 2) interpret \ (7) As above, but display the names of the instructors also, not just the IDs. (8) Find the maximum and minimum enrollment across all sections, considering only sections that had some enrollment, don't 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 create 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 \ (11) Find instructors who have taught all the above courses 1). Using the \covered in class (don't 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 view 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. 利用企业管理器或PL 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'记录,观察能否成功删除。若不能删除,说明原因。若能删除,观察有外关联的表中数据的变化。 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. 删除学生'Brown'的“Weekly seminar”课程的选课记录。 8. 假设学期末,教师给出课程“Weekly seminar”的选课学生成绩单,请依据选课成绩给出每个学生学分。 9. 将学生表中学分tot_cred>100的学生选出来放进对应系的instructor表中,工资设置为10000.

10.找出并删除所有未被开出过的课程。 11. 在表takes上course_id字段创建索引,观察查询速度变化。 12. 在takes表course_id字段上创建索引,试一试能否创建唯一性索引? 出现问题 解决方案 (列出遇到的问题及其解决方法)

《数据库系统》实验报告五

学号 实验名称 准备材料 扩展实验 实验环境 实验目的 实验内容及步骤 权限与事务管理 姓名 实验时间 实验学时 2 1. SQL Plus命令手册 2. Oracle数据字典 1. 利用企业管理器的图形界面进行创建用户、角色并进行管理 2.利用企业管理器的图形 界面完成对数据操纵权限的授权与回收工作 (此部分内容不要求在实验室完成,不用写入实验报告。) Oracle 9i(及以上版本)服务器 SQL Plus/ SQL Plus work sheet客户端 1.掌握权限管理语句与视图进行安全性控制的方法 每两个同学一组,自由组合完成下列操作要求(使用grant, revoke语句和视图): 1. 执行教师提供的命令文件,建立university数据库,并输入数据。 2. 同学A设置同学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表上的所有权限,同学B验证是否回收成功。 7. 同学A通过视图授权同学B具有察看每个部门职工最高、最低、平均工资的权限,但不允许他察看每个人的工资。同学B验证授权是否成功。 8. 同学A、B撤销所有已授给对方的权限,如果同学C从同学A得到对同学B student表的访问 权限,察看其权限是否一并收回。 9.事务查看 使用如下命令,查看当前事务、会话情况: (1)show parameter processes; show parameter session; (2) select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameter where name='sessions'; select name, type, value ,display_value, isses_modifiable, issys_modifiable from v$parameter where name='processes'; SELECT * FROM V$SESSION WHERE USERNAME = ?? ORDER BY LOGON_TIME, SID; SELECT P.SPID, S.SID, S.SERIAL# FROM V$PROCESS P INNER JOIN V$SESSION S ON P.ADDR = S.PADDR WHERE S.AUDSID=USERENV('SESSIONID'); 注:此表可能学生没有权限查看,如果有兴趣,在自己电脑上试试。 10.事务提交方式有三种:显式提交\\隐式提交和自动提交。SQL PLUS中可通过命令可进行提交方式设置,设置不同提交方式。 事务命令有:BEGIN TRANSACTION、COMMIT、ROLLBACK、SAVEPOINT、RELEASE SAVEPOINT、SET ISOLATION LEVEL 事务隔离级别: 离层 READ UNCOMMITTED(非提交读) READ COMMITTED(提交读) Repeatable READ(可重复读) Serializable(串行读) 错读|脏读 非重复读取|不可重复读 是 否 否 否 是 是 否 否 假读|幻读 是 是 是 否 Oracle只支持ead committed 、serializable和Repeatable READ三种,不支持READ UNCOMMITTED。 完成下列和事务相关的操作: (1)修改事务隔离级别( Set transaction isolation level read committed、 Set transaction isolation level serializable),A\\B两同学一起操作同一张表,A.instructor,B同学修改数据,A同学查询数据,查看在什么情况下可查看到B同学刚刚修改的数据。 (2)设置自动提交,A、B同学同时操作同一张表的数据,察看是否可看到最新修改结果。 (3)B同学设置SAVEPOINT,进行数据操作、rollback到该savepoint,A同学在各个步骤察看数据变化情况。在不同隔离级别下执行相同操作,察看数据的不同点。 出现问题 解决方案

(列出遇到的问题及其解决方法)

《数据库系统》实验报告六

学号 姓名 实验时间 实验名称 存储过程、函数和事务 实验学时 2 准备材料 1. SQL Plus命令手册 2. PL/SQL用户手册 3. 实验教材中实验五、六 扩展实验 1. 利用企业管理器完成存储过程和函数的定义、执行与管理操作 (此部分内容不要求在实验室完成,不用写入实验报告。) 实验环境 Oracle 9i(及以上版本)服务器 SQL Plus/ SQL Plus work sheet客户端 实验目的 1 熟悉PL/SQL语法 2. 利用PL/SQL编程访问数据库 实验内容1. 完成实验指导书实验五所有实验内容,掌握PL/SQL语言中数据及步骤 类型、变量、输入输出语句、分支、循环语句的基本用法 2. 编写存储过程或函数,要求查询instructor和department表,依据系名输出系名称、资产、所包含员工姓名等信息,并输出其所包含员工个数。执行存储过程(执行时输入部门号参数),察看输出结果是否正确 3. 编写函数EmpSalStatics完成instructor工资情况统计,按<=1000,<=2000, <=5000, <=10000, >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. 观察数据修改语句失败时系统中数据情况,说明数据一致性如何 保持。 出现问题 解决方案 (列出遇到的问题及其解决方法)

《数据库系统》实验报告七

学号 姓名 实验时间 实验名称 触发器和事务 实验学时 2 准备材料 1. SQL Plus命令手册 2. PL/SQL用户手册 3. 实验教材中实验五、七 扩展实验 1. 利用企业管理器的图形界面完成触发器的创建与管理工作 (此部分内容不要求在实验室完成,不用写入实验报告。) 实验环境 Oracle 9i(及以上版本)服务器 SQL Plus/ SQL Plus work sheet客户端 实验目的 1.掌握使用SQL语句进行触发器创建与管理操作的方法。 实验内容1. 完成实验教材实验七的所有内容,实验习题、练习的内容写实验及步骤 报告。 2. 观察数据修改语句失败时系统中数据情况,说明数据一致性如何 保持。 出现问题 解决方案 (列出遇到的问题及其解决方法)

本文来源:https://www.bwwdw.com/article/pf9t.html

Top