第1页共4页2009-2010学年第一学期《大型数据库开发(Oracle)》期末试卷(B卷)(开卷)考试用时:150分钟总分:100分题号一二三四总分得分得分阅卷人一、数据库分析(20分)“网上购物系统”需求描述如下:1、管理员可以在后台添加商品,并且每个商品属于一个商品组;2、对管理员进行分组管理,对每一组进行分别授权,即一个管理员组可以有多个管理员,一个管理员组有多个权限,一个管理员可以在多个组;3、用户可以自己购买商品,购买商品时要在定单表中添加信息,一个用户可以同时购买多个商品,用户可以选择自己所在的地区进行商品的派送。根据上述需求,完成“网上购物系统”的概念设计(画出E-R图,写出关系模型,可以加适当描述)。得分阅卷人二、数据库设计(40分)(一)、使用SQL语句创建数据库(10分)按如下要求创建数据库NetShopa)设置SYS用户的密码为orcl,设置SYSTEM用户的密码为orcl;b)使用已有的控制文件;c)指定日志文件组redo01.log,大小为10MB;指定日志文件组的redo02log.log,大小为10MB.设置最大的日志文件数为10;d)定义日志文件组中最大的日志文件数量为5;e)定义最大的数据文件数量为100;f)定义数据库中最大的实例数量为1;g)定义存储数据的字符集为US7ASCII;h)定义数据文件名称为sys01.dbf,初始大小为100MB;i)定义默认表空间为tbs;j)定义临时表空间为temp;k)定义临时文件为temp01.dbf,大小为10MB。(二)、创建网上购物系统相关表(2+2+3+3,共10分)要求如下:创建网上购物系统中的4个基本表,每个表的名称、字段类型、约束(根据约束列)等见各表要求。(注:PK----主键;FK----外键;)写出相关SQL语句。Tb_Manager管理员基本信息表键字段名称字段类型NOTNULL字段说明班级姓名学号--------------------------------------------------------------------------------密封线内不得答题----------------------------------------------------------------------------------------------------------------------------第2页共4页PKmanagerIdvarchar2(8)○管理员编号managerNamevarchar2(20)○管理员姓名passWordvarchar2(8)○密码telNumbervarchar2(15)联系方式(电话)enrollDatedate入职时间Tb_CommGroup商品组基本信息键字段名称字段类型NOTNULL字段说明PKcommoGroupIdvarchar2(8)○商品组编号groupNamevarchar2(16)○商品组名称groupInfovarchar2(50)商品组描述信息Tb_Commodity商品基本信息表键字段名称字段类型NOTNULL字段说明PKcommoIdnumber○商品编号commoNamevarchar2(20)○商品名称pricenumber○价格commoNumnumber○数量descInfovarchar2(50)商品描述FKcommoGroupIdvarchar2(8)○商品组编号FKmanagerIdvarchar2(8)○管理员编号Tb_CommRecord定单基本信息表键字段名称字段类型NOTNULL字段说明PKrecordIdvarchar2(8)○定单编号FKcommoIdnumber○商品编号recordDatedate○定单日期recordNumnumber定购数量(0)customNamevarchar2(20)○用户姓名addressvarchar2(50)地区名称(三)、表控制操作(8+2+4+2+4,共20分)1、将下述数据插入到高校毕业设计管理系统相关表中,写出相应的SQL语句(2*4,共8分)Tb_Manager表managerIdmanagerNamepassWordtelNumberenrollDate12080801王飞3203361215861560651989-12-12Tb_CommGroup表commGroupIdgroupNamegroupInfoS080801家居用品家居日用品Tb_Commodity表commoIdcommoNamepricecommoNumdescInfoCommoGroupIdmanagerId165电脑桌1201065笔记本电脑桌S08080112080801第3页共4页Tb_CommRecord表recordIdcommoIdrecordDaterecordNumcustomNameaddress000001011652009-12-21王林江苏南京市建邺区人民路168号2、查询Tb_Commodity表中,商品名称(commoName)以“电脑”开头的所有的记录信息,写出相应的SQL语句(2分)3、Tb_Commodity表的commoId字段的取值要求如下:(1)初值从1开始;(2)最大值为100000;(3)到达最大值后不可以进行循环。commoId字段的值由系统自动产生,要求采用序列的技术,将下列数据插入到Tb_Commodity表中。写出相应的SQL语句。(4分)commoIdcommoNamepricecommoNumdescInfoCommoGroupIdmanagerId___羽毛球2.53000箭牌S080801120808014、为Tb_Manager表的managerName列创建唯一索引,索引名称为index_manager,写出相应的SQL语句。(2分)5、创建视图recordInfo,要求显示“定单详情”信息,写出相应的SQL语句。(4分)“定单详情”信息描述如下:(4分)定单详情定单编号100001用户姓名王林商品名称电脑桌商品价格120定购数量1定单日期2009-12-2用户地址江苏南京市建邺区人民路168号得分阅卷人三、SQL语句(5+5+5+9+6,30分)(一)、写出相应的SQL语句,完成以下需求(5分)(1)创建角色MangerRole,密码为orcl,给该角色授予以下CONNECT,RESOURCE权限;(2)创建用户WangLin,密码为orcl,默认表空间是tabs,临时表空间是temp。给该用户授予以下权限UNLIMITEDTABLESPACE、CONNECT、RESOURCE,要求WangLin的CONNECT、RESOURCE两种权限要通过角色授权的形式授予。(二)、完成以下两题,写出相应的操作指令。(2.5*2,共5分)(1)将数据库NetShop配置为闪回数据库。(2.5分)(2)由于某种原因,在2009-10-1608:32:00的时刻误删了数据库方案wanglin下的class表中的所有记录。要求使用闪回恢复数据库技术进行数据库恢复。(2.5分)说明:当前数据库NetShop处于非归档日志模式下;SYS、SYSTEM用户的密码均为orcl;最早的闪回时间是2009-9-5;(三)、使用RMAN技术对数据库NetShop进行全数据库备份,写出相关的指令。(5分)说明:当前数据库NetShop处于归档日志模式下;SYS、SYSTEM用户的密码均为orcl;第4页共4页(四)、员工表employee与部门表depart的信息如下所示:SQLselect*fromemployee;EMPIDNAMESEIDCARDDEPARTID------------------------------------------------------------------------------------------99李卫男320198902181026298李林女3201900021810264100刘芳女3201989021820221101王林女3203361979021820223102于丹女3203361980021820223SQLselect*fromdepart;DEPARTIDDEPARTNAME----------------------------------------1市场部2研发部3生产部4采购部(1)当删除部门表(depart)中的记录时,系统自动删除员工表(employee)中部门编号(DEPARTID)与所删除的记录的部门编号相同的记录。请编写相应的触发器程序(3分)(2)当更新部门表(depart)中的DEPARID字段时,系统自动更新员工表(employee)中部门编号(DEPARTID)与所更新的记录的部门编号相同的记录。请编写相应的触发器程序(3分)(3)利用显式游标循环输出employee表中部门编号(departid)等于3的所有记录信息,各个字段之间使用“,”分隔(3分)(五)Tb_Manager表存放管理员信息,Tb_Telephone表存放管理员最新的电话号码,由于某种原因,Tb_Manager表中管理员的联系方式(telNumber)不是最新的,即Tb_Manager表中管理员的电话号码与Tb_Telephone表中存储的电话号码不一致。要求从Tb_Telephone表取得管理员的最新电话号码,并更新Tb_Manager表中相应的记录。请编写存储过程来更新Tb_Manager表中管理员联系方式(输入参数是管理员编号)(6分)要求:输入参数是管理员的编号。Tb_Manager表结构参见(二、数据库设计)Tb_Telephone存放的是最新的管理员电话号码,表记录如下所示:managerIdtelphone120808011586156065120808021586156023120808031586156036……得分阅卷人四、简答题(10分)(一)在对象级控制数据库的存取和使用的机制称为数据安全性。简述ORACLE利用哪些机制管理数据库安全性。(5分)(二)数据的完整性是为了防止数据库存在不符合定义的数据,防止错误信息输入和输出。简述Oracle使用哪些机制保证了数据的完整性。(5分)