上海大学数据库2原理研讨+作业的个人解答

发布时间 : 星期五 文章上海大学数据库2原理研讨+作业的个人解答更新完毕开始阅读

3. 操作序列T1、T2、T3对数据A、B、C并发操作如下所示,T1与T2间并发操作(1) , T2与T3间并发操作(2) 。修改如下并发调度为可串行化调度 时间 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10 t11 t12 T1 读A=50 读B=200 X1=A+B 读A=50 读B=100 X1=A+B 验算不对 T2 读B=200 B=B-100 写B T3 读B=200 B=B+50 写B

三、作业:

1. 课本Page196:习题8.10。 2. 课本Page196:习题8.11。 3. 课本Page196:习题8.12。

第8周(第八章:完整性和安全性;第九章分布式自学)

二、研讨课:

1. 写有关school数据库的完整性约束

(1)确保每个学生在同一学期同一门课只能选一个老师开设的课程。 create assertion asse1 check (not exists( select * from e as a,e as b where a.xh = b.xh and a.xq = b.xq and a.kh = b.kh

and a.gh <> b.gh )

);

(2)确保每门课程每年只开设一次。 Create assertion ass2 check (1>all(select count(distinct (A.课号))

From 开课表 as A,开课表 as B Where A.学年=B.学年 And A.课号=B.课号 Group by 学年,课号 ));

2. 设有三个关系模式:STUDENT(SNO,SNAME,AGE,SEX,SADDR,DNO) COURSE(CNO,CNAME,CHARA,CREDIT,DNO,TERM,TNAME) GRADE(SNO,CNO,TERM,PGRADE,EGRADE,GGRADE)

中文含义:学生(学号,姓名,年龄,性别,住址,所在系), 课程(课程号,课程名,课程性质,学分数,开课系,开课学期,教师), 成绩(学号, 课程号, 开课学期,平时成绩,考试成绩,总评成绩)。 请用指定的方法定义下列完整性约束:

1、每个学期每个学生至多可选8门课程(用断言)。 Create assertion ass1 check

( 8>=all(select count(distinct (cno))

From grade

Group by sno,term

) );

2、如果总评成绩修改后低于60分,那么,如果平时成绩大于80分,在修改后的 总评成绩上再增加考试成绩的8%,但不得超过60分(用SQL3触发器)。 create trigger trig1

after update of ggrade on grade referencing

old as oldtuple new as newtuple

when (newtuple.ggrage<60 and oldtuple.egrade>80)

update grade

set ggrade=newtuple.ggrade + oldtuple.pgrade * 0.08

where sno = newtuple.sno and cno = newtuple.cno and term = newtuple.term and (60>=newtuple.ggrade + oldtuple.pgrade * 0.08) update grade set ggrade=60 where sno = newtuple.sno and cno = newtuple.cno and term = newtuple.term and (60

3. 某图书借阅管理数据库有如下关系模式:

书籍表(书号, 书名, 数量, 分类, 状态, 出版社名) 读者表(借书证号, 姓名, 年龄, 电话, 地址)

借阅情况表(借书证号, 书号, 借书日期, 还书日期) 1)把对书籍表的查询、修改权和转授权授予用户admin。 Grant select,update on 书籍表 to admin With grant option

2)使每个人都能查询未出借图书的借阅情况,但不能直接查看借阅情况表。 create view A as

Select 书籍表.所有属性 from 书籍表,借阅情况表

Where 书籍表.书号=借阅表.书号 and 书籍.状态=’未出借’ Grant select on A to public 三、 作业:

1. 课本Page196:习题8.19。 2. 课本Page196:习题8.20。 3. 课本Page215:习题9.5。

第9周(第十章:对象数据库)

二、研讨课:

1. 对照题目给出的内容,补充完整下面的对象联系图和对象关系数据库定义。 eno(工号)

ename(姓名) work_forEmployee sex(性别) (部门号) dno Department staff_ (部门名)dname mno(经理编号)

chief Manager language(精通语言)

CREATE TYPE MyString char varying;

CREATE TABLE Department (dno MyString,

dname MyString,

(1) , (2) );

CREATE TABLE Employee (eno integer,

ename MyString, sex MyString,

(3) );

CREATE TABLE Manager ( mno integer,

(4) ) under Employee;

2.对上面定义的数据库用SQL完成以下查询:

⑴ 找出各个男职工的工号、姓名、部门名和经理编号。 ⑵ 找出精通日语的经理所在部门的职工的工号和姓名。 这道题的答案在PPT《习题课-第十周》里面有

2. 根据如下对象关系数据库定义,画出对应的对象联系图

CREATE TYPE MyString char varying; CREATE TABLE dept( dno integer, dname MyString,

enroll setof(ref(student)), offer setof(ref(coursetext))); CREATE TABLE student(sno integer, sname MyString, age integer,

enrolled ref(dept),

choose setof(ref(grade))); CREATE TABLE course(cname MyString, hours inter, credit inter.

offered_by ref(dept),

open setoff(ref(grad)); CREATE TABLE s_c (grade inter,

choosed_by ref(student), done ref(course)));

3. 建立一个关于系、学生、班级、社团等信息的关系数据库。 ? 描述学生的属性有:学号、姓名、出生年月等。

? 描述系的属性有: 系名、系号、系办公室地点、宿舍区等。 ? 描述社团的属性有:社团名、成立年份、地点。 有关语义如下:

一个系的学生住在同一个宿舍区。每个学生可参加若干社团,每个社团有若干学生。 请画出对象关系图,用ORDB的定义语言定义这个数据库。

三、作业:

1. 课本Page230:习题10.1。 2. 课本Page231:习题10.6。 3. 课本Page232:习题10.7。

联系合同范文客服:xxxxx#qq.com(#替换为@)