1 用户自定义完整性约束 分为以下四类:
1 实体完整性:规定表的每一行在表中是惟一的实体。
2 域完整性: 是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
3 参照完整性: 是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
4 用户定义的完整性: 不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
2 物理独立性
3 约束
4 数据库备份与恢复
1)数据库中数据的安全性控制:
用户标识与鉴别、存取控制、SQL Server 2000中的对象许可和命令许可、用户权限(许可)的授权及收回授权。
2)数据库中数据的完整性控制。
实体完整性控制、参照完整性控制、用户定义完整性控制;SQL Server 2000中实施完整性的方法。
3)数据库中数据的并发性控制。
事务、事务的特性、锁、锁的粒度、锁的兼容性、死锁、活锁、解决死锁和或锁的办法、批。
4)数据库中数据的数据库的恢复。
数据库备份和日志文件、事务故障恢复、系统故障恢复、介质故障恢复。
5 GRANT
6 不知道
7 不知
8 不知
9 权限
10 元组关系演算和域关系演算
11 B
12 D
13 D
14 B
15 C
16 B
17 B
18 B
19 C
20 D
9答:(1)首先画出一些重的函数依赖,所有这些函数依赖都是根据习题的文字说明和语义假设导出。 语义假设如下:
1)一个职工不能同时成为多个部门的***; 2)一个职工不能同在在多个部门就职; 3) 一个职工不能同时参加多个生产项目;
4) 一个职工不能同时在两个不同的办公室办公; 5) 一个职工不能同时拥有两部或两部以上的电话;
AREA
DBUDGET
OFF#DEPT#MGR_EMP#
PHONE#EMP#PROJ#PBUDGET#
JOBTITLE
DATE
SALARY
6)一个生产项目不能同时分配给多个部门; 7)一个办公室不能同时分配给多个部门;
8)部门号、职工号、项目号、办公室号及电话号码是全局惟一的。 (2)先按照图5。12设计一组关系模式,它们都是属于INF的。 DEPT(DEPT#,DBUDGET,MGR_EMP#) PRIMARY KEY(DEPT#)
DEPT#和MGR_EMP#都是候选码,把DEPT#作为主码。
F={DEPT#→DBUDGET,DEPT#→MGR_EMP#,MGR_EMP#→DEPT#} EMPI(EMP#,DEPT#,PROJ#,OFF#,PHONE# PRIMARY KEY (EMP#)
F={EMP#→DEPT#,EMP#→PROJ#,EMP#→OFF#,EMP#→PHONE#,PHONE#→OFF#,OFF#→DEPT#,PROJ#→DEPT#} JOB(EMP#,JOBTITLE)
PRIMARY KEY(EMP#,JOBTITLE)
F={EMP#,JOBTITLE→EMP#,EMP#,JOBTITLE→JOBTITLE} SALHIST(EMP#,JOBTITLE,DATE,SALARY) PRIMARY KEY (EMP#,DATE)
F={EMP#,DATE→JOBTITLE,EMP#,DATE→SALARY} PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY (PROJ#)
F={PROJ#→DEPT#,PROJ#→PBUDGET} OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY (OFF#)
F={OFF#→DEPT#,OFF#→AREA} PHONE(PHONE#,OFF#) PRIMARY KEY (PHONE#)
F={PHQNE#→OFF#}
(3)现在来分析一下这7个关系模式,发现:SALHIST(EMP#,DATE,JOBTITLE,SALARY)的属性包含了JOB(EMP#,JOBTLTLE)的属性,所以JOB(EMP#,JOBTITLE)可以消去。
EMP1中OFF#和DEPT#都传递函数依赖于主码(EMP#)。OFF#通过PHONE#,DEPT#通过PROJ#或OFF#(然后通过PHONE#)传递依赖于{EMP#},所以可以把EMP1(EMP#,DEPT#,PROJ#,OFF#,PHONE#)分解成下面4个3NF的关系模式: EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY (EMP#) X(PHONE#,OFF#)
PRIMARY KEY(PHONE#) Y(PROJ#,DEPT#)
PRIMARY KEY(PROJ#) Z(OFF#,DEPT#) PRIMARY KEY(OFF#)
然而,X就是PHONE,Y是PROJ的投影,Z是OFFICE的投影,所以X、Y、Z都可以消去。
最后可以得到下面6个关系模式,所有这些关系模式都是属于3NF的,进一步发现他们也是BCNF的。
DEPT(DEPT#,DBUDGET,MGR_EMP#) PRIMARY KEY(MGR_EMP#) EMP(EMP#,PROJ#,PHONE#) PRIMARY KEY(EMP#)
SALHIST(EMP#,DATE,JOBTITLE,SALARY) PRIMARY KEY (EMR#)
PROJ(PROJ#,DEPT#,PBUDGET) PRIMARY KEY(PROJ#)
OFFICE(OFF#,DEPT#,AREA) PRIMARY KEY(OFF#) PHONE(PHONE#,OFF#)
PRIMARY KEY(PHONE#)
10.答:其语义假设如下:
(1)任何两个顾客的收货地址都不相同; (2)每一个订单都有一个惟一的订单号码。
(3)每个订单的订单细则在这个订单里有一个惟一的编号。 函数依赖图如下:
ADDRESSADDRESS
QTYORD
ORD#
DISCOUNT
CREDLIM
BAL
CUST#
QTYOUTDANGER
PLANT#QTYOH
ITEM#DESCNLINE#
相应的BCNF关系模式如下:
CUST(CUST#,BAL,CREDLIM,DISCOUNT) PRIMARY KEY(CUST#) SHIPTO(ADDRESS,CUST#) PRIMARY KEY(ADDRESS)
ORDHEAD(ORD#,ADDRESS,DATE) PRIMARY KEY(ORD#)
ORDLINE(ORD#,LINE#,ITEM#,QTYORD,QTYOUT) PRIMARY KEY (ORD#,LINE#) ITEM(ITEM#,DESCN)
PRIMARY KEY(ITEM#)
IP(ITEM#,PLANT#,QTYOH,DANGER) PRIMARY KEY (ITEM#,PLANT#)
类图,主要是两种关系,一个是一般到特殊,另一个是整体到部分,再者是把属性什么画出来,状态迁移图就根据题目里列出的状态画之间关系就好了,ER更简单,书上很详细。照着画就行了,祝考试成功。
不知道你表怎么建的,目测是你数据有问题(第四个字段在这题里没什么用,就没写,另外:你第一个图的语句也不对,会多出来两个null关联起来的情况,所以最后我改了一下)
create table course(cno int,
cname varchar(50),
cpno int)
insert into course values (1,'数据库',5)
insert into course values (2,'数学',null)
insert into course values (3,'信息系统',1)
insert into course values (4,' *** 作系统',6)
insert into course values (5,'数据结构',7)
insert into course values (6,'数据处理',null)
insert into course values (7,'PASCA语言',6)
select firstcno,secondcpno from course first,course second where firstcpno=secondcno and secondcpno is not null
最好把你的插入数据语句发出来,才能看出来问题,我这个得执行结果:
[标准答案]
1、
grant
select
on
职工
when
user()=
name
to
all;
这里假定系统的
grant语句支持when子句和user()的使用。用户将自己的名字作为id。
reovke
select
on
职工
when
user()=
name
from
all;
这里假定用户将自己的名字作为id,且系统的reovke语句支持when子句,系统也支持user()的使用。
2、
create
view
部门工资统计(最高工资,最低工资,平均工资)
as
select
max(工资),min(工资),avg(工资)
from
职工
group
by
部门号;
grant
select
on
部门工资统计
to
扬兰;
revoke
select
on
部门工资统计
from
扬兰;
以上就是关于数据库系统概论的一题,加急!高分悬赏!!!全部的内容,包括:数据库系统概论的一题,加急!高分悬赏!!!、数据库系统概论课后题答案、软件工程与数据库概论。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)