当前位置:首页 > 数据库期末考试复习
? 8、什么是数据库的逻辑结构设计?试述其设计步骤。
答:数据库的逻辑结构设计就是把概念结构设计阶段设计好的基本 E 一 R 图转换为与选 用的 DBMS 产品所支持的数据模型相符合的逻辑结构。设计步骤为 : ( l )将概念结构转换 为一般的关系、网状、层次模型; ( 2 )将转换来的关系、网状、层次模型向特定 DBMS 支持 下的数据模型转换; ( 3 )对数据模型进行优化。
? 9、数据字典的内容和作用是什么?
答:数据字典是系统中各类数据描述的集合。数据字典的内容通常包括: ( l )数据项; ( 2 )数据结构; ( 3 )数据流; ( 4 )数据存储; ( 5 )处理过程五个部分。其中数据项是 数据的最小组成单位,若干个数据项可以组成一个数据结构。数据字典通过对数据项和数据 结构的定义来描述数据流和数据存储的逻辑内容。数据字典的作用:数据字典是关于数据库 中数据的描述,在需求分析阶段建立,是下一步进行概念设计的基础,并在数据库设计过 程中不断修改、充实、完盖。
设计题
1、今有两个关系模式:
职工(职工号,姓名,年龄,职务,工资,部门号)Person(pno, pname, page, ptitle, psal, dno)部门 (部门号,名称,经理名,地址,电话号)Depart(dno, dname, dmanager, daddress, dtel)请用SQL的GRANT和REVOKE语句(加上视图机制)完成以下授权定义或存取控制功能:
(1)用户yong对两个表有INSERT 和DELETE权力。 GRANT INSERT,DELETE ON Person,Depart TO yong
(2)用户liu对职工表有SELECT权力,对工资字段具有更新权力。 GRANT SELECT,UPDATE(psal) ON Person TO liu
(3)用户zhang具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON Person,Depart TO zhang;
(4)用户yang具有从每个部门职工中SELECT最高工资、最低工资、平均工资的权力,他不能查看每个人的工资,并具有给其他用户授权的权力。 CREATE VIEW psal AS
SELECT Depart.dname,MAX(psal),MIN(psal),AVG(psal) FROM Person,Depart
WHERE Person.dno=Depart.dno GROUP BY Person.dno GRANT SELECT ON psal
TO yang with grant option ; (5)撤销各用户yang所授予的权力
REVOKE ALL PRIVILIGES ON Person,Depart FROM YANG;
? 2、假设有下面两个关系模式:职工(职工号,姓名,年龄,职务,工资,部门 号),其中职工号为主码;部门(部门号,名称,经理名,电话),其中部门号 为主码。用SQL语言定义这两个关系模式,要求在模式中完成以下完整性约束条 件的定义:定义每个模式的主码;定义参照完整性;定义职工年龄不得超过60岁。
答
CREATE TABLE DEPT (Deptno NUMBER(2), Deptname VARCHAR(10), Manager VARCHAR(10), PhoneNumber Char(12)
CONSTRAINT PK_SC RIMARY KEY(Deptno)); CREATE TABLE EMP (Empno NUMBER(4), Ename VARCHAR(10), Age NUMBER(2),
CONSTRAINT C1 CHECK ( Aage<=60), Job VARCHAR(9), Sal NUMBER(7,2), Deptno NUMBER(2), CONSTRAINT FK_DEPTNO FOREIGN KEY(Deptno) REFFERENCES DEPT(Deptno));
? 3、设某商业集团关于商店销售商品的数据库中有三个基本表:
? 商店SHOP(S#,SNAME,AREA,MGR_NAME)其属性是商店编号,商店名称,区域名,经理姓名。
销售SALE(S#,G#, QUANTITY)其属性是商店编号,商品编号,销售数量。 商品GOODS(G#,GNAME,PRICE) ? 其属性是商品编号,商品名称,单价。
? (1)试写出下列查询的关系代数表达式、元组表达式和关系逻辑规则:检索销售“冰箱”的商店的编号和商店名称。 解:关系代数表达式:π
S#,SNAME
(σ
GNAME='冰箱'(SHOP?SALE?GOODS))
元组表达式:{ t | (?u) (?v) (?w) (SHOP (u)∧SALE (v)∧GOODS (w)
∧u[1]=v[1]∧v[2]=w[1]∧w[2]= '冰箱'∧t[1]=u[1]∧
t[2]=u[2])}
关系逻辑规则:W(u1,u2)?SHOP(u1,u2,u3,u4)∧SALE(u1,v2,v3)∧GOODS(v2, '冰箱',w3)
? (2)试写出上面第(1)问的SELECT语句表达形式。
解:SELECT语句如下:
SELECT A.S#,SNAME
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND GNAME='冰箱';
? (3)试写出下列操作的SQL语句:从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。
解:DELETE FROM SALE
WHERE S# IN(SELECT S#
FROM SHOP
WHERE SNAME='开开商店')
AND G# IN(SELECT G#
FROM GOODS
WHERE PRICE>1000);
? (4)写一个断言,要求区域名为“EAST”的商店里销售商品的单价不能低于100元。
解:CREATE ASSERTION ASSE8 CHECK
(100<=ALL(SELECT PRICE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST'));
或 CREATE ASSERTION ASSE8 CHECK
(NOT EXISTS(SELECT *
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G#
AND AREA='EAST' AND PRICE<100));
? (5)试写出下列操作的SQL语句:
? 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 ? 要求显示(G#,GNAME,SUM_QUANTITY,SUM_VALUE),其属性为商品编号、商品名称、销售数量、销售价值。
解:SELECT C.G#,GNAME,SUM(QUANTITY)AS SUM_QUANTITY,
PRICE*SUM(QUANTITY)AS SUM_VALUE
FROM SHOP A,SALE B,GOODS C
WHERE A.S#=B.S# AND B.G#=C.G# AND AREA='EAST' GROUP BY C.G#,GNAME;
(注:SELECT子句中的属性C.G#,GNAME应在分组子句中出现)
4、今有一个层次数据库实例,试用子女一兄弟链接法和层次序列链接法画出它的存储结构示意图。
? 5、请设计一个图书馆数据库,此数据库中对每个借阅者保存读者记录,包括:读者 号,姓名,地址,性别,年龄,单位。对每本书存有:书号,书名,作者,出版社。对 每本被借出的书存有读者号、借出日期和应还日期。要求:给出E 一R 图,再将其转换为关系模型。 答:
共分享92篇相关文档