2014-2015学年第2学期《大型数据库技术》考查报告要求:1.考试要求中独立完成,并提交相应的报告。2.报告封面注意课题名称、班级、学号、姓名3.报告必须符合附件中的提纲内容要求。4.报告必须打印装订。5.必须独立完成,抄袭者成绩记为零分。请结合软件工程及大型数据库技术的相关知识,选择一个数据库应用系统的课题,完成课题的设计与开发,并撰写相应的报告。具体要求如下:(一)ORACLE11g的安装与配置(20分)在自己的电脑上配置安装ORACLE11g,并创建数据库。具体要求如下:(1)安装版本为企业版(2)在安装时,只安装Oralce服务器。在安装完成后再创建数据库。(3)利用DBCA创建数据库,数据库名称为自己姓名的拼音首字母,如某学生的姓名为“张三”,则数据库的名称则为zs。(4)数据库为共享数据库。(5)创建数据库时选择示例模式。(6)数据库所有的用户使用相同的口令,口令为学生的学号。将上述安装过程截屏并将图片及相关文字描述添加在文档中。数据库名称不正确者不得分。(二)用户的创建与权限管理(20分)(1)新建一个用户表空间MYTBS,要求大小为500M。MYTBS表空间下有两个数据文件MYTBS1.DBF和MyTBS2.DBF,文件分别放在E和F两个不同的磁盘分区。(2)创建用户配置文件userprofile,要求密码的生存周期为30天,允许输入错误的密码不得超过5次,超过5次密码锁2天。(用语句查看该配置文件中的资源配置结果,dba_profiles数据字典表,截图语句及查询结果)(3)新建一个用户,用户名称为学生姓名的首字母,密码为学生的学号。如学生姓名为“张三”,则用户名称则为zs。为新帐号设置默认表空间为MYTBS。系统所有对象必须建立在该帐号下,所有对象必须存储在MYTBS表空间中。用户的配置文件为userprofile;(用语句查看新建的用户默认表空间,dba_users数据字典表,截图语句及查询结果)(4)为用户赋予登录Oracle的权限;为用户赋予创建任何表、创建任何索引的权限;将DBA的角色给新建用户;查看对应的用户获得的权限和角色(用数据字典表user_sys_privs,user_tab_privs,user_role_等,,截图语句及查询结果)(5)用新建的帐号登录。并执行showuser命令,显示当前登录用户。完成以上命令,并写入文档中。(三)Oracle对象的创建与管理(20分)选择一个熟悉的课题,并对课题进行需求分析,依据需求分析,完成数据库的设计。确定系统所有的数据表。依据系统设计,在Oracle11g环境下完成数据表及相关对象的创建。(1)课题简述对课题进行简述,主要描述系统实现的功能。员工医疗保险系统,其功能是企业对员工的信息以及医疗信息的记录,可以实现增,删,改,查功能,以及对消费记录的统计,包括消费金额,消费时间,消费地点,还有进行医保卡的充值和消费,实现员工医疗信息的全面的管理。(2)设计出系统的表结构,至少4个表。表名必须是以当前用户名开头。如当前用户是“zs”,创建了一个学生表,则表名为zs_student。(3)使用新建的用户登录,并在用户下创建系统所需的各种表。完成各表的定义,并实现每个表的主键、外键、自定义约束,写出创建语句。用SQL语句完成对象的创建。每个对象的创建必须有完整的SQL语句。(4)创建适当的索引,写出创建的代码。根据应用需要创建视图至少3个。(四)PL/SQL编程(20分)系统功能必须通过函数、存储过程、触发器或包实现。至少创建一个函数、一个触发器(实现级联更新功能)、2个过程。不能用程序设计语言实现。先描述功能,再写实现代码。例如:用户登录验证,可以创建一个存储过程,输入参数是用户帐号、用户密码,输出参数是整型值。-1表示登录失败,0表示没有此用户,1表示登录成功。系统所有的业务逻辑必须通过上述方式实现,否则答辩无效。createuserfslidentifiedby1315925122accountunlock;grantcreatesession,createtable,createview,createanyprocedure,createrole,createsequencewithadminoption;连接fsl用户,然后建立四张表(关于学生管理系统的表)建立studentInfo表并插入数据createtablestudentInfo(stuIDchar(10)primarykey,stuNamechar(20)notnull,sexchar(8)notnull,specchar(20)notnull,classchar(20)notnull,birthdaychar(20)notnull,addresschar(50));insertintostudentInfovalues(201301,'李力','男','计算机系','软件设计一班','1994-3-10','jhhfsuihfiufh');insertintostudentInfovalues(201302,'王雪','女','计算机系','软件设计二班','1994-4-8','sfssfss');insertintostudentInfovalues(201303,'李冰','男','计算机系','数据库一班','1994-5-6','dfsds');insertintostudentInfovalues(201304,'张丽','女','计算机系','数据库二班','1994-8-9','jhhdfsdfh');insertintostudentInfovalues(201305,'赵水','男','计算机系','数据库三班','1994-10-10','zcshsj');建立courses表createtableCourses(courIDchar(10)primarykey,courNamechar(15)notnull,creditHournumber(2,0)notnull,creditScorenumber(3,1)notnull);insertintocoursesvalues(1201,'数据库一班',26,2.0);insertintocoursesvalues(1202,'软件设计一班',32,2.5);insertintocoursesvalues(1203,'数据库二班',26,2.0);insertintocoursesvalues(1204,'软件设计二班',32,3.0);insertintocoursesvalues(1205,'数据库计三班',26,2.0);建立scorescreatetablescores(stuIDchar(10),stuNamechar(20)notnull,classchar(20)notnull,courIDchar(10),usualScorenumber(3,1)notnull,testScorenumber(3,1)notnull,constraintscores_stuIDforeignkey(stuID)referencesstudentInfo(stuID),constraintscores_courseIDforeignkey(courID)referencescourses(courID));insertintoscoresvalues(201301,'李力','软件设计一班',1202,90.0,95.0);insertintoscoresvalues(201302,'王雪','软件设计二班',1204,95.0,96.0);insertintoscoresvalues(201303,'李冰','数据库一班',1201,80.0,90.0);insertintoscoresvalues(201304,'张丽','数据库二班',1203,85.0,90.0);insertintoscoresvalues(201305,'赵水','数据库计三班',1205,60.0,95.0);建立users表createtableusers(userNamechar(10)notnull,passwordchar(10)notnull,usertypechar(10));insertintousersvalues('fan',1315925122,'学生');insertintousersvalues('shao',131,'管理员');insertintousersvalues('lin',131592,'教师');创建一个陆的存储过程,判断登陆用户的权限,包括学生、教师、系统管理员。createorreplaceprocedurelogin(p_nameinusers.userName%type,p_passwordinusers.password%type)Asv_passwordusers.password%type;/*判别输入的密码是否正确*/v_usertypeusers.usertype%type;/*判别该用户的管理等级*/beginselectpassword,usertypeintov_password,v_usertypefromuserswhereuserName=p_name;/*核对用户是否存在*/beginifv_password=p_passwordthen/*验证密码*/beginifv_usertype='学生'thendbms_output.put_line('学生'||p_name||'登陆成功');elsifv_usertype='教师'thendbms_output.put_line('教师'||p_name||'登陆成功');elsifv_usertype='系统管理员'thendbms_output.put_line('系统管理员'||p_name||'登陆成功');endif;end;elsedbms_output.put_line('密码输入错误,该用户登录失败');endif;end;exceptionwhenno_data_foundthendbms_output.put_line('该用户不存在!');endlogin;/setserveroutputondeclarebeginlogin('fan','1315925122');end;/setserveroutputondeclarebeginlogin('shao','131');end;/(五)Oracle备份与导出(20分)利用备份和还原的有关知识。设置数据库的备份方案。设计数据库备份和恢复的方法,并写出相关的命令和操作。(1)设置归档模式。先查看当前文档归档模式selectlog_modefromv$database;当前处于非归档模式,设置为归档模式关闭并重新启动数据库shutdownimmediate;shutdownimmediate;startupmount;改变日志模式Alterdatabasearchivelogselectlog_modefromv$database;Altersystemsetlog_archive_dest_1='location=d:\arch';(2)归档当前日志。(3)数据库完全备份及实现。查询数据文件datafile的所在目录:SELECTnameFROMv$datafile;查询控制文件controlfile的所在目录:SELECTnameFROMv$controlfile;查询重做日志文件的所在目录:SELECTmemberFROMv$logfile;关闭数据库shutdownimmediate(4)数据库完全恢复及实现。(5)利用数据泵实现逻辑导出与导入。(6)举例说明闪回技术使用(闪回查询、闪回表、闪回删除等)。附1:报告封面2014-2015学年第二学期《大型数据库技术》大作业课题名称:XXXXX系统班级:13级软工数据库X