考试科目:数据库原理考试时间:90分钟试卷总分100分。
一、选择题(在每个小题四个备选答案中选出一个正确答案,填入本题后,本大题共10小题,每小题2分,总计20分)
1~5: c b d b c 6~10: a d a b c
二、简答题 (本大题共5小题,每个6分,总计30分)
1.什么是事务,事务有哪些特性?
答案:事务是用户定义的一个数据库操作序列,这些操作要么全做,要么全不做。事务的acid特性:
原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持续性(durability )
2.安全性控制的一般方法有哪些?
答案:用户标识和鉴别、 存取控制、 定义视图、 审计、 数据加密。
3.数据库完整性子系统包括哪些内容?
答案:为维护数据库的完整性,dbms完整性子系统必须包括:(1)提供定义完整性约束条件的机制(ddl)
2)提供完整性检查的方法(insert、delete、update)(3).违约处理(拒绝、级联、置空)
4.事务中的提交和回滚是什么意思?
答案: (1)commit 命令是一条事务命令,用于保存数据库中由事务引起的改变。commit命令保存自从上一条commit或rollback 命令以来的所有事务。
2)rollback 命令是用于撤消那些还没有保存到数据库中由事务的事务控制,该命令只能用于撤消上一条commit命令或rollback命令执行后的事务。
预先定义好的用于方便权限管理的三个角色是什么?分别适用哪类用户?
答案:具有connect特权的一般数据库用户、具有resource特权的创建表权力用户和具有dba特权的用户。
三、sql语言应用(本大题共3小题,总计20分)
设数据库中有两个基本表:职工表emp(eno,ename,age,sex,salary,dno),其属性分别表示职工的工号,姓名,年龄,性别,工资,工作部门的编号,表名为emp,码为工号。 部门表dept(dno,dname,addr),其属性分别为部门编号,部门名,部门地点,表名为dept,码为部门编号。
1. 用sql语言定义这两个表(4分),要求在表中完成以下完整性约束条件定义:
a)定义每个表的主码;(4分)(b)定义参照完整性;(4分)(c)用户定义完整性:职工年龄<61,性别只能取值男或者女。(4分)
参***:create table dept
(dno varchar2(10) primary key, (2分) dname varchar2(10), addr varchar2(10),(dno
create table emp (eno varchar2(10) not null primary key, (2分)
ename varchar2(10), sex char(2) check (sex in (‘男’,‘女’) 2分)) age number(2) check (age<61) (2分),salary number(10) not null,
dno varchar2(10) foreign key(dno) references dept(dno) ,4分));
2. 用sql语句创建一个男职工的视图,视图名为vman,属性为(eno,ename,age)。(2分)
create view vman as select eno,ename,age from emp where sex=’男’
3. 把对视图vman的的查询权限授予给用户黎明。(2分)
grant select on vman to 黎明。
四、pl /sql程序设计(本大题共2小题,每题15分,总计30分)
1.(必答题) 利用游标,显示职工表emp中工资超过2000元的职工的工号,姓名和工资(15分)。
create or replace procedure printemprecord as
v_empno
v_job emp. ename %type;
v_sal
cursor c_job is
select empno, ename sal from emp where sal>2000;
beginopen c_job;
loopfetch c_job into v_empno, v_ ename, v_sal ;
exit when c_job%notfound ;
dbms_ v_empno||v_ ename ||v_sal);
end loop;
close c_job;
end printemprecord;
2.(选答题,以下三个题目,答题者可以自己选择一题完成,选多道题者只记录第一个选择的成绩, 15分)
1)建立一个触发器,当职工表 emp 表被删除记录时,把被删除记的录写到职工表删除日志表中去。
create table emp_his as select * from emp where empno=0;
create or replace trigger before delete on for each row
begin将修改前数据插入到日志记录表 del_emp, 以供监督使用。
insert into emp_his( deptno , empno, ename , job ,mgr , sal , comm , hiredate )
values( ,
end2)创建一个系统级别触发器,记录所有用户的数据库访问时间。
以system身份登陆,创建系统触发器。
create table conn_log(timestamp date,username varchar2(30),database_name varchar2(50));
create or replace trigger logconnect_record after logon on database
begininsert into conn_log values(sysdate,end logconnect_record;
3)创建视图emp_view 显示职工表各部门的职工号、总人数和平均工资。设计替代触发器,可以通过emp_view 删除某个部门的所有员工。
create or replace view emp_view as
select deptno, count(*)total_employeer, sum(sal) total_salary
from emp group by deptno;
先对视图emp_view 执行删除操作,发现失败。然后创建trigger emp_view_delete,再执行删除操作。
create or replace trigger emp_view_delete
instead of delete on emp_view for each row
begindelete from emp where deptno=
end emp_view_delete;
2019数据库技术作业2答案
数据库技术作业2 一 填空题 1.对于一个国家来说,数据库的建设规模 数据库信息量的 安全性 和 完整性 已成为这个国家信息化程度的 衡量标准 2.数据模型通常由 数据结构,数据操作,完整约束三部分组成。3.概念 模型是现实世界到 数据模型 机器模型的中间桥梁。4.数据独立性是指 物理和逻辑 独立性...
数据库2019 试题
a 数据结构,数据通信,关系操作。b 数据结构,数据操作,数据完整性约束。c 数据通信,数据操作,数据完整性约束。d 数据结构,数据通信,数据完整性约束。4 数据管理技术的发展是与计算机技术及其应用的发展联系在一起的,经历了由低级到高级的发展。分布式数据库 面向对象数据库等新型数据库属于哪一个发展阶...
数据库复习答案
1 1 该关系的码是 工程号,材料号 由于存在非主属性对主属性的部分函数依赖,所以属于1nf 2 存在异常,分解为 工程号,材料号,数量,工程号,开工日期,完工日期 3 保持无损连接性,保持函数依赖性。2 1 丢失修改,一级封锁协议,加锁 写出详细的处理过程,无过程的适当扣分 2 什么时候加什么锁,...