数据库系统实验课实验报告Word下载.docx
《数据库系统实验课实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《数据库系统实验课实验报告Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
(2)设置输出页面的大小,每列字符数120,每页行数100,观
察设置结构
(3)设置显示每个sql语句花费的执行时间,并观察实验结果
(4)在SQLPlus中执行操作系统命令,例如copy文件、显示目录等,观
察结果。
(5)设置将系统输出数据写入文件,执行多个命令后观察文
件内容。
3.显示系统信息
(1)显示用户信息
(2)显示数据库版本信息
(3)显示数据库中所有表的名称
显示系统中某张表的结构信息(如EMP表)
(4)显示数据库中某张表的数据,如
4.建立磁盘文本文件,文件内写入几条观察执行结果。
EMP表
SQL命令,执行此文件,并
出现问题
解决方案
(列出遇到的问题及其解决方法)
《数据库系统》实验报告二
数据库模式管理
4
1.SQLPlus命令手册
2.Oracle数据字典
3.Oracle中的数据类型
1.掌握在企业管理器(或其它图形界面的数据库操作工具)中进行表、索引的创建和管理的方法。
2.利用企业管理器(或其它图形界面的数据库操作工具)观察数据库的物理模式。
(此部分内容不要求在实验至兀成,不用与入头验报口。
)
1.掌握使用SQL语句进行表的创建和管理的方法
2.加深对关系数据库结构和数据完整性等概念的理解
1.创建书上university数据库中所有的表(student,course,
department,takes,instructor,advisor,prereq,teaches,classroom,section,timeslot),按书上要求设置每张表的主
键、外键,表中每个子段的类型、长度由学生自己确疋。
2.使用命令完成下列扣作
(1)查找用户所有表的表名
(2)查看每
张表的结构(要求把每张表的结构截图放到实验报告中)(3)查
看表takes的约束信息
3.修改表结构
(1)在instructor表中增加列存储教师家庭地址,其地址包括省、
市、区、街道、门牌号等列,列的数据类型自己给出,列允许为空。
⑵对student表中的姓名子段长度都改为10,设置是否成功原因是什么将该字段长度改为50,能否成功说明原因。
(3)为student表中tot_cred列设置默认值0,插入一个Comp.Sci.系的新学生,且不给其tot_cred列赋值,观察结果。
⑷student表中tot_cred列是对总学分的统计,现在数据库中没有记录哪些学生已选修课程学分已累加,哪些课程的学分还没有
累加。
设计一种方案记录已累加课程,防止出现重复累加的情况。
或者设计一种方案简化总学分的计算过程。
⑸删除takes表上对student表ID的外键约束,查看此约束已删除。
添加一个不存在的学生(id='
0101'
)选修courseid
为’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。
要求用两种方法头现
(createtable;
createtableas…)。
5.增加section表上的约束条件,要求所输入section的年号不大于当前年号+1,且不小于当前年号-2。
插入一条2009年秋CS-101开设课的信息,观察并解释实验结果。
6.选择某个约束,分别设置其有效、失效,观察区别。
没有问题
《数据库系统》实验报告三
数据查询
1.SQLPlus命令手册
2.Oracle数据字典
1.利用企业管理器的图形界面构造查询语句,并察看查询结果
2.利用企业管理器完成视图、索引的创建与使用。
3.利用DBMS进行对第三章习题所设计SQL语句的检查
(此部分内容不要求在实验至完成,不用与入实验报告。
1•掌握使用SQL语句进行数据查询的方法
2.掌握视图的创建与使用方法
3.观察索引的使用效果
1.执行文件ddl+,创建数据库University中所有表。
执行文件,
插入实验数据。
2.使用University数据库的数据库结构和数据(smallRelations
即可),完成下列查询:
(1)FindthenamesofcoursesinComputerscieneedepartmentwhichhave3credits
(2)ForthestudentwithID12345(oranyothervalue),showallcourse_idandtitleofallcoursesregisteredforbythestudent.
(3)Asabove,butshowthetotalnumberofcreditsforsuchcourses(takenbythatstudent).Don'
tdisplaythetot_credsvaluefromthestudenttable,youshoulduseSQLaggregationoncoursestakenbythestudent.
(4)Asabove,butdisplaythetotalcreditsforeachofthe
students,alongwiththeIDofthestudent;
don'
tbotheraboutthenameofthestudent.(Don'
tbotheraboutstudentswhohave
notregisteredforanycourse,theycanbeomitted)
(5)FindthenamesofallstudentswhohavetakenanyComp.
Sci.courseever(thereshouldbenoduplicatenames)
(6)DisplaytheIDsofallinstructorswhohavenevertaught
acouse(Notes1)Oracleusesthekeywordminusinplaceof
except;
2)interpret"
taught"
as"
taughtorisscheduledtoteach"
)
(7)Asabove,butdisplaythenamesoftheinstructorsalso,
notjusttheIDs.
(8)Findthemaximumandminimumenrollmentacrossallsections,consideringonlysectionsthathadsomeenrollment,don'
tworryaboutthosethathadnostudentstakingthatsection
(9)AsinQuestion(8),butnowalsoincludesectionswithno
studentstakingthem;
theenrollmentforsuchsectionsshouldbetreatedas0.Dothisintwodifferentways(andcreate
requiredatafortesting)1).Usingascalarsubquery2).Usingaggregationonaleftouterjoin(usetheSQLnaturalleftouterjoinsyntax)
(10)Findallcourseswhoseidentifierstartswiththestring"
CS-101"
(11)Findinstructorswhohavetaughtalltheabovecourses
1).Usingthe"
notexists...except..."
structure2).Using
matchingofcountswhichwecoveredinclass(don'
tforgetthedistinctclause!
3.TheuniversityrulesallowanFgradetobeoverriddenby
anypassgrade(A,B,C,D).Now,createaviewthatlists
informationaboutallfailgradesthathavenotbeenoverridden(theviewshouldcontainallattributesfromthetakes
relation).
4.Findallstudentswhohave2ormorenon-overriddenFgradesasperthetakesrelation,andlistthemalongwiththeF
《数据库系统》实验报告四
表数据管理
1.利用企业管理器的图形界面输入数据
2.利用企业管理器或PLSQLDeveloper导入、导出TXT文档、Excel
表格中的数据。
1•掌握使用SQ语句对表进行插入、修改和删除数据的操作。
2.掌握索引创建与使用方法
执行文件,
2.删除department表中'
Physics'
记录,观祭能否成功删除。
若不能删除,说明原因。
若能删除,观察有外关联的表中数据的变化。
3.插入一门新课,课程名Weeklyseminar,课号CS-001,由
Engineeringdepartment开出,学分1,观察实验结果,说明原因。
4.调整各系员工工资,原工资>
50000的增加10%否则增加6%观察结果.
5.第3小题新插入的课程,课程名Weeklyseminar,课号CS-001,改为由'
Comp.Sci.'
开出,重新插入到course表中。
观察实验结果,说明原因。
6.假设全体Comp.Sci.学生都要选课“Weeklyseminar”,且课程要2013年秋季学期开出,增加课程开出信息、选课信息。
7.删除学生'
Brown'
的“Weeklyseminar”课程的选课记录。
8.假设学期末,教师给出课程“Weeklyseminar”的选课学生成绩单,请依据选课成绩给出每个学生学分。
9.将学生表中学分totcred>
100的学生选出来放进对应系的
instructor表中,工资设置为10000.
10.找出并删除所有未被开出过的课程。
11.在表takes上course_id子段创建索引,观祭查询速度变化。
12.在takes表course_id子段上创建索引,试一试能否创建唯一性索引
《数据库系统》实验报告五
学
号
实验名称
权限与事务管理
准
备材料
扩
展实验
1.利用企业管理器的图形界面进行创建用户、角色并进行管理
2.利用企业管理器的图形界面完成对数据操纵权限的授权与回收工作
(此部分内容不要求在实验至完成,不用与入实验报口。
实
验环境
实验目的
1•掌握权限管理语句与视图进行安全性控制的方法
每两个同学一组,自由组合完成下列操作要求(使用grant,revoke语句和视图):
1.
验内容及步骤
执行教师提供的命令文件,建立university数据库,并输入数据。
2.同学A设置同学B对表具有查询权限,对表中salary字段具有更新权限;
同学B查看元数据表,查找自己被子授权使用的数据。
3.同学B授权同学A对B.instructor表具有插入数据、删除数据的权限,同学
A用命令试验能否完成相应操作。
4.同学A授权同学B,对表具有修改表结构的权限,同学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)showparameterprocesses;
showparametersession;
(2)
selectname,type,value,display_value,isses_modifiable,issys_modifiable
fromv$parameter
wherename=sessions'
;
selectname,type,value,displayvalue,issesmodifiable,
issys_modifiable
fromv$parameter
wherename=processes'
SELECTFROMV$SESSION
WHERUSERNAME'
'
ORDERBYLOGON_TIME,SID;
SELECT,#
FROMV$PROCESSP
INNERJOINV$SESSIONSON=
whereuserenV(SESSIONID'
);
注:
此表可能学生没有权限查看,如果有兴趣,在自己电脑上试试。
10•事务提交方式有三种:
显式提交隐式提交和自动提交。
SQLPLUS中可通过命令可进行提交方式设置,设置不同提交方式。
事务命令有:
BEGINTRANSACTIONICOMMITROLLBACKSAVEPOINTRELEASESAVEPOINTSETISOLATIONLEVEL
事务隔离级别:
离层
错读|脏读
非重复读取|不可重复读
假读|幻读
READUNCOMMITTE非提交读)
是
READCOMMITTED!
交读)
否
RepeatableREAD(可重复读)
Serializable(串行读)
Oracle只支持eadcommitted、serializable和RepeatableREAD三种,不支持READUNCOMMITTED
完成下列和事务相关的操作:
(1)修改事务隔离级别(Settransactionisolationlevelreadcommitted、Settransactionisolationlevelserializable),A\B两同学一起操作同一张表,,B同学修改数据,A同学查询数据,查看在什么情况下可查看到B同学刚刚修改的数据。
(2)设置自动提交,AB同学同时操作同一张表的数据,察看是否可看到最新修改结果。
(3)B同学设置SAVEPOINT进行数据操作、rollback到该savepoint,A同学在各个步骤察
看数据变化情况。
在不同隔离级别下执行相同操作,察看数据的不同点。
出现问题
解决方案
《数据库系统》实验报告六
存储过程、函数和事务
2.PL/SQL用户手册
3.实验教材中实验五、六
1.利用企业管理器完成存储过程和函数的定义、执行与管理操作
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命令察看存储过程和函数的信息
《数据库系统》实验报告七
触发器和事务
3.实验教材中实验五、七
1.利用企业管理器的图形界面完成触发器的创建与管理工作
1•掌握使用SQL语句进行触发器创建与管理操作的方法。
1.完成实验教材实验七的所有内容,实验习题、练习的内容写实验报告。
2.观察数据修改语句失败时系统中数据情况,说明数据一致性如何保持。