当前位置:首页 > 《数据库原理与系统》习题解答
试编写一个查询成绩的存储过程,存储过程带有学号和课程号2个参数。 CREATE PROCEDUE PRO_GRADE @XH CHAR(10),@KCH CHAR(8) AS
SELECT S.学号S.姓名,R.课程号,R.课程名称,R.分数 FROM S,R
WHERE S.学号=R.学号 AND S.学号=@XH AND R.课程号=@KCH GO
7. 有产品关系R(产品号,品名,厍存量),在R上创建一个触发器。实现当修改厍存量时,测试修改后的值,若低于100,则发出采购该产品的通知,若高于1000,则发出\积压\的消息。同时要求设计一个SQL程序,验证触发器的作用。
8. 有系和学生2个关系:
系(系名称,系主任,电话号码,地址) 学生(学号,姓名,性别,专业,系名称)
设计一个存储过程,根据学号(参数),查询学生和所在系的信息。
9. 假设有职工工资表:
R(职工号,姓名,基本工资,附加工资,房租,水电,应发工资,税款,实发工资) 缴纳个人所得税的规定如下: ●个人收入>5000,税率20%;
●个人收入>2000且<=5000,税率10%; ●个人收入>800且<=2000,税率5%; ●个人收入<=800,免税。 工资的计算方法
(1)应发工资=基本工资+附加工资。
(2)采取分段计算税款的算法,超过5000元部分收20%;2000-5000之间部分收10%;800-2000之间部分收5%;800下免税。具体算法如图6.13所示。 (3)实发工资=应发工资-税款。
试编写一个简单的SQL脚本程序,创建工资表并完成计算实发工资的任务。
CREATE TABLE R(职工号 CHAR(6),姓名CHAR(8),基本工资 FLOAT,附加工资FLOAT,房租FLOAT,水电FLOAT,应发工资FLOAT,税款FLOAT,实发工资FLOAT) GO
UPDATE R SET应发工资=基本工资+附加工资 UPDATE R SET税款= (
CASE WHEN 应发工资>5000 THEN (应发工资-5000)*0.2+(5000-2000)*0.1+(2000-800)*0.05 WHEN 应发工资<=5000 AND应发工资>2000 THEN (应发工资-2000)*0.1+(2000-800)*0.05 WHEN 应发工资<=2000 AND应发工资>800 THEN (应发工资-800)*0.05 WHEN 应发工资<=800 THEN 0 END )
UPDATE R SET实发工资=应发工资-税款 GO
习题七
一、名词解释
事务、封锁、X封锁、活锁、死锁、可串行化调度、不可串行化调度、两段封锁协议。 二、单项选择题
1.事务“要么不做,要么全做”的性质称为事务的
A、持久性 B、隔离性 C、一致性 D、原子性
2.SQL的COMMIT和ROLLBACK语句的主要用途是实现事务的 A、原子性 B、隔离性 C、一致性 D、持久性 3.“授权机制”用于数据库系统的
A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制 4.“视图”可用于数据库系统的
A完整性控制 B、安全性控制 C、一致性控制 D、并发控制
5.事务“使数据库从一个一致状态转变到另一个一致状态”的性质称为事务的 A、原子性 B、隔离性 C、一致性 D、持久性 6.在数据库系统中,利用封锁机制实现
A、完整性控制 B、安全性控制 C、一致性控制 D、并发控制 7.数据库系统的恢复子系统实现事务的
A、原于性 B、隔离性 C、一致性 D、持久性 8.数据库系统的并发控制保证了事务的
A、原子性 B、隔离性 C、一致性 D、持久性
9.在加锁协议中规定“先申请先服务”的原则,可以避免数据库系统出现 A、活锁 B、死锁 C、读-写冲突 D、写-写冲突 10.如果事务T获得数据项Q上S锁,则T对Q
A、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写 11.如果事务T获得数据项Q上X锁,则T对Q
A、不能读不能写 B、只能读不能写 C、不能读只能写 D、既可读又可写 12.事务的隔离性由DBMS的
A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现
13.事务的持久性由DBMS的
A、安全性子系统实现 B、完整性子系统实现 C、并发控制子系统实现 D、恢复子系统实现
14.在数据库系统中,“脏数据”是指一个事务读了另一个事务 A、未更新的数据 B、更新之后末提交但是后来撤销的数据 C、末提交的数据 D、末刷新的数据
15.数据库系统安排多个事务并发执行的过程称为 A、步骤 B、进程 C、调度 D、优先级 16.封锁可以避免数据的不一致性,但可能会引起系统 A、崩溃 B、死锁 C、故障 D、数据丢失 17.SQL的GRANT和REVOKE语句用于数据库的
A、安全性控制 B、一致性控制 C、完整性控制 D、并发控制 18.事务日志用于数据库的
A、安全 B、恢复 C、审计 D、跟踪 三、填空题
1.DBMS并发控制的任务是保证事务的执行是可串行的。 2.事务的隔离性是由DBMS的并发控制实现的。
3.完全恢复模型是以后援副本和事务日志副本为基础的恢复方法。 4.在数据库系统中,角色管理机制可以简化为多个具有相同权限的用户授权和回收权限(授权)的工作量
5.只转储上次备份后变化数据的方法称为增量备份。 6.两段封锁协议规定事务在锁增长阶段阶段可以获得锁。 7.数据库的完整性是指数据的正确性、有效性和相容性。 8.SQL中,域检查子句是CHECK。
9.在数据库系统中,域完整性约束是对属性值有效性的约束
10.允许用户把获得的权限再转授给他人的SQL短语是WITH GRANT OPTION
五、设计题
1. 设教学数据库的模式如下: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用多种方式定义下列完整性约束:
(1)在关系S中插入学生年龄值应在16~25岁之间
(2)在关系SC中插入元组时,其S#值和C#值必须分别在S和C中出现。 (3)在关系SC中修改GRADE值时,必须仍在0~100之间。
(4)在删除关系C中一个元组时,首先要把关系SC中具有同样C#的元组全部删去。
(5)在关系S中把某个S#值修改为新值时,必须同时把关系SC中那些同样的S#值也修改为新值。 解:
(1) CREATE TABLE S( S# CHAR(4),
SNAME CHAR(10) NOT NULL , AGE SMALLINT, PRIMARY KEY(S#),
CHECK (AGE>=16 AND AGE<=25)) (2) 采用外键子句约束 CREATE TABLE SC (
S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#) REFERENCE C(C#) )
(3) 采用元组检查 CREATE TABLE SC( S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#), FOREIGN KEY(C#) REFERENCE C(C#), CHECK (GRADE>=0 and AGE<=100)) (4) 采用外键约束 CREATE TABLE SC( S# CHAR(4), C# CHAR(4),
GRADE SMALLINT,
FOREIGN KEY(S#) REFERENCE S(S#),
共分享92篇相关文档