1、设R={A,B,C},F={A→C,B→C},ρ={AB,AC},分解是否无损联接分解?试说明理由。 设R1=AB,R2=AC,因为R1∩R2=A,R2-R1=C,而A→C(已知),故R1∩R2→R2-R1成立,根据定理,分解ρ为无损联接分解。
2、试给出一关系模式R(U),说明该模式满足3NF但不满足BCNF。
设某关系模式R(ABC),函数依赖F={A→B,B→A,A→C},A为关键字,不存在非主属性对关键字的部分依赖和传递现象,R(U)属于3NF,但有B→A,而B为决定因素但不是关键字,故该关系模式不满足BCNF要求。
3、证明关系模式R(U)满足BCNF则必满足3NF。
满足BCNF就没有主属性对主键的部分传递函数依赖,3NF为无传递依赖,故满足BCNF则必满足3NF。
4、设有关系模式R(SNO,CNO,SCORE,TNO,DNAME),函数依赖集F ={(SNO,CNO)→SCORE,CNO→TNO,TNO→DNAME},试分解R为BCNF。
解:初始化ρ={R},求得候选关键字为{SNO,CNO}。首先从R中分解出关系(TNO,DNAME),得ρ={ R1(TNO,DNAME),R2(SNO,CNO,SCORE,TNO)},其中R1为BCNF,R2不是BCNF,再求出R2的候选关键字为{SNO,CNO},从R2中分解出关系(CNO,TNO),则ρ={ R1(TNO,DNAME),R3(CNO,TNO),R4(SCO,CNO,SCORE)},R1、R3、R4都属于BCNF,分解完成。
7、设有关系模式R(SNO,SNAME,SEX,DNO,DNAME),函数依赖F={SNO→SNAME,SNO→SEX,SNO→DNO,DNO→DNAME}.试判断R的最高范式,试说明理由。如何分解?
R最高范式为2NF,由函数依赖F可以得到SNO为候选关键字。因为没有任何非主属性对候选关键字部分依赖所以R∈2NF.但是由于SNO→DNO,DNO→DNAME,故存在非主属性DNAME对候选关键字SNO传递依赖,所以R不是3NF关系,可以将R(SNO,SNAME,SEX,DNO,DNAME)分解成R1(SNO,SNAME,SEX,DNO)和R2(DNO,DNAME),它们就可达到BCNF
8、证明armstrong公理及推论
① A1自反律:若Y?X,则X→Y为F所蕴含
证明:设Y?X?U。对R的任一关系r中的任意两个元组t,s: 若t[X]=s[X],由于Y X,则有t[Y]=s[Y],所以X→Y成立,自反律得证。 ② A2增广律:若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含
证明:设X→Y为F所蕴含,且Z?U。对R的任一关系r中的任意两个元组t,s: 若t[XZ]=s[XZ],由于X ?XZ,Z? XZ,根据自反律,则有t[X]=s[X]和t[Z]=s[Z]; 由于X→Y,于是t[Y]=s[Y],所以t[YZ]=s[YZ];所以XZ→YZ成立,增广律得证。 ③ A3传递律:若X→Y,Y→Z为F所蕴含,则X→Z为F所蕴含
证明:设X→Y及Y→Z为F所蕴含。对R的任一关系r中的任意两个元组t,s: 若t[X]=s[X],由于X→Y,有t[Y]=s[Y];
再由于Y→Z,有t[Z]=s[Z],所以X→Z为F所蕴含,传递律得证。 ④ 合并规则:若X→Y,X→Z,则X→YZ为F所蕴含
证明:因X→Y ,所以X→XY (增广律 XX→XY即X→XY)因X→Z ,所以XY→YZ (增广律) 因X→XY,XY→YZ故X→YZ (传递律)
⑤ 伪传递规则:若X→Y,WY→Z,则XW→Z为F所蕴含
证明:因X→Y ,所以WX→WY (增广律)因WY→Z ,所以XW→Z (传递律) ⑥ 分解规则:若X→Y,Z∈Y,则X→Z为F所蕴含
证明:因Z∈Y 所以Y→Z (自反律)因X→Y 所以X→Z (传递律)
1
1.数据库实施主要包括四个方面的工作,即数据库定义描述、数据载入、应用程序编制调试、数据库试运行。
2.数据库系统包括存储结构、逻辑结构、外部结构三级结构。 3.实体间联系可分为一元联系、二元联系、多元联系三种。 4.数据库恢复常采用转储、建立日志两种方式。
5.合并局部E-R模型时主要考虑解决三类冲突,即属性冲突、命名冲突、结构冲突,其中命名冲突又可分为同名异义、异名同义两类。
6.DBMS对数据库的封锁通常有三种,即X锁、(S,X)锁、(S,U,X)锁。
7. 数据库系统通常包括数据库、数据库管理系统、操作系统、计算机硬件、用户五部分。 8. 数据库故障主要有事务故障、系统故障、介质故障三类。
9. SQL语言的特点主要体现在集中统一、高度非过程化、面向集合操作模式、以同一种语法结构提供两种工作方式四个方面。 SQL的含义是结构化查询语言,C语言属于过程化语言 0. 设某关系模式R(ABCD),依赖集{B→D,D→B,AB→C},则R的关键字为AB。 1. 若X→→Y为属性集U上定义的一个多值依赖,则该多值依赖为平凡多值依赖的条件依据是U-X-Y=Ф。
2. 关系代数的五种基本关系运算为并、差、笛卡尔乘积、投影、选择。
关系代数中传统的关系运算包括并、交、差、笛卡尔积四种。取出属性是投影 3. 信息模型通常用E-R模型来刻划,传统的数据模型是指层次模型、网状模型和关系模型。 4. DBMS是一种负责数据库的定义、建立、操纵、维护、控制的软件系统。
5. 数据库的安全保护措施主要有使用权限鉴别、使用范围鉴别、存取控制权鉴别三种。 6. 数据库的三级结构可以分别用存储模式(内)、模式(概)、子模式(外)三种模式加以描述。
两级映像是指外模式/概念模式和概念模式/内模式。
7. 数据库控制通常包括安全性控制、完整性控制、并发控制、故障恢复四个方面的内容。 8. 数据的冗余是指数据的重复、浪费现象。数据的不一致性是指数据的不相容性和矛盾性。 9.数据库保护包括安全性保护、完整性保护、并发控制、故障恢复四个方面内容。 0.二元实体间的联系通常可分为1:1、1:n、m:n三种。
1.数据库系统中数据的独立性包括物理独立性、逻辑独立性两个方面。 2.数据库设计通常包括结构特性(静态)、行为特性(动态)两方面内容。 3.根据数学理论,关系操作通常有关系代数、关系演算两类。 4.构成E-R图的三个基本要素为实体、属性、联系。
5.若商品关系G(GNO,GN,GQ,GC)中,GNO、GN、GQ、GC分别表示商品编号、商品名称、数量、生产厂家,若要查询“上海电器厂生产的其数量小于100的商品名称”用关系代数可表示为∏GN(σ
GC=“上海电器厂”∧GQ<100
(G))。
6.IBM公司的研究员E. F. Codd于1970年发表了一篇著名论文,主要是论述关系模型。 7.判断分解后的关系模式是否合理的两个重要标志是分解是否满足关系的无损连接性(不失真)和依赖保持性。
8.数据处理技术的三个发展阶段是指:人工管理阶段、文件系统管理阶段、数据库管理阶段。 9.数据的共享性主要体现在多个用户、现在和将来的、不同语言的、同时四个方面。 0.当前数据库学科的三个主要研究领域包括:数据库理论、数据库设计、DBMS研究。 1.并发操作所引起的数据不一致性主要有:丢失更新、不可重复读、“脏”数据读出三类。 2.交运算是扩充运算,可以用差运算推导出,其等式为R∩S=R-(R-S)。 3.常用的数据库设计方法主要有直观法、辅助法、自动化法、规范法四种。
2
4.数据库的完整性是指正确性、有效性、相容性。数据的正确性和相容性 5.关系演算可分为元组演算和域关系演算两部分。
6.数据库中对数据的基本操作通常包括插入、删除、查询、修改四种。
7.若关系模式R(A,B,C,D,E)中,A为键,且存在函数依赖C→E,则该关系模式能够达到的最高范式为2NF。
8.在数据库的并发操作中,我们把某事务由于长期申请不能获得批准而处于永久等待的现象称为活锁。有两种基本类型的锁,它们是共享锁和排他锁。
9.根据数据库系统的三级结构所定义的数据库的三个抽象层次为物理级、概念级、用户级。 0.要保证数据库的完整性,通常事务应具有原子性、一致性、隔离性、持久性四个基本特征。 1.数据库的静态完整性约束可分为静态列级约束、静态元组级约束、静态关系级约束三种。 2.数据库术语中,描述数据信息的三个世界是指现实世界,数据世界,信息世界。 3.层次模型、网状模型与关系模型间存在着本质的区别,我们通常又把前两种模型称之为格式化模型。
4.根据数据库系统的组成原则,其最内层应为硬件。
5.设关系模式R(ABCD),函数依赖{B→D,D→B,AB→C},则R的关键字为AB。
6.对于查找要求中表示“所有”含义的查找,在SQL中无法直接实现,但可以转化为用等价的存在量词EXISITS进行运算。
7.SQL以同一种语法结构提供了两种对数据库的操作使用方式,即自含式和嵌入式。 8.联接运算是扩充运算,可以用笛卡尔积运算和选择运算推导出。 9.数据模型是由数据结构、数据操作、完整性约束三部分组成。
0.层次模型的数据结构是树结构,网状模型的数据结构是有向图结构,关系模型的数据结构是二维表结构。
1.数据库管理系统的主要功能有数据定义、数据库操纵功能、数据库的运行管理、数据库的建立和维护等四个方面。SQL具有的主要功能有数据定义、数据操纵、数据控制。 2.数据库语言包括数据描述语言、数据操纵语言两大部分,前者负责描述和定义数据库的各种特性,后者说明对数据进行的各种操作。 3.描述数据库各级数据结构的叫数据字典。 4.关系操作的特点是集合操作。
5.关系模型的完整性规则包括实体完整性、参照完整性和用户定义的完整性规则。 6.连接运算是由笛卡尔积和选择操作组合而成的。自然连接是由笛卡尔积、选择和投影组合。 7.关系数据库中可命名的最小数据单位是属性名。事务是DBMS的基本单位。
8.与having同时使用的是group by,exists是存在量词。排序order by,修改表alter 9.在SQL中视图是由基本表或视图产生的虚表,不能存放数据,只存储视图的定义。 0.在SQL对应的三级模式中,关系模式对应基本表,关系子模式对应视图,存储模式对应存储文件。
1.在关系数据库的规范化理论中,在执行“分解”时,必须遵守规范化原则是保持原有的依赖关系和无损连接。
2.关系模式的操作异常问题往往是由数据冗余引起的。 3.函数依赖完备的推理规则集包括自反律、增广律和传递律。 4.建立E-R模型是数据库设计需求分析阶段的任务。
5.数据库设计的步骤依次是需求分析、概念设计、逻辑设计、物理设计、实现、运行与维护。 6.数据字典通常包括数据项、数据结构、数据流、数据存储、处理过程。
3
程序设计题
1.设有关系: C(CNO,CNAME,PCNO) SC(SNO,CNO,SCORE) S(SNO,SNAME,AGE,SEX) 其中:C为课程表关系,对应的属性分别是课号、课程名和选修课号;SC为学生选课表关系,对应的属性分别是学号、课号和成绩;S表示学生,它的各属性依次为学号、姓名、年龄和性别。用SQL语言写出:
(1)对关系SC中课号等于C1的选择运算。 (2)对关系C的课号、课程名的投影运算。 (3)对C和SC两个关系的自然连接运算。(4)求每一课程的间接选修课(即选修课的选修课)。(5)将学号为“S1”的学生年龄改为20。(6)建立一反映各学生总成绩的视图S_ZCJ,视图包括学号、姓名、总成绩三列。 (1)SELECT *
FROM SC WHERE CNO='C1'; (2)SELECT CNO,CNAME FROM C;
(3)SELECT C.CNO,C.CNAME,C.PCNO,SC.SNO,SC.SCORE FROM C,SC
WHERE C.CNO=SC.CNO;
(4)SELECT first.CNO,second.PCNO FROM C AS first,C AS second WHERE first.PCNO=second.CNO;
(5)UPDATE S SET AGE=20 WHERE SNO=‘S1’ (6)CREATE VIEW S_ZCJ(学号,姓名,总成绩) AS SELECT S.SNO,SNAME,SUM(SCORE) FROM S,SC WHERE S.SNO=SC.SNO GROUP BY SNO 2.设有如下4个关系模式:
S(SN,SNAME,CITY)P(PN,PNAME,COLOR,WEIGHT)J(JN,JNAME,CITY)SPJ(SN,PN,JN,QTY)其中:S表示供应商,SN为供应商编码,SNAME为供应商名字,CITY为供应商所在城市;P表示零件,PN为零件编码,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量;J表示工程,JN为工程编码,JNAME为工程名字,CITY为工程所在城市;SPJ表示供应关系,QTY表示提供的零件数量。 写出实现以下各题功能的SQL语句:
(1)取出所在城市为上海的所有工程的全部细节(2)取出为工程Jl提供零件P1的供应商编码(3)取出由供应商S1提供零件的工程名称(4)取出供应商S1提供的零件的颜色。(5)取出为工程J1和J2提供零件的供应商编码(6)取出这样一些供应商编码,他们能够提供至少一种提供红色零件的供应商所提供的零件(7)取出所有工程的全部细节(8)取出所在城市为南京的所有工程的全部细节(9)取出为所在城市为上海的工程提供零件的供应商编码(10)取出为所在城市为上海或北京的工程提供红色零件的供应商编码(11)取出供应商与工程所在城市相同的供应商提供的零件编码(12)取出至少由一个和工程不在同一城市的供应商提供零件的工程编码(13)取出上海供应商不提供任何零件的工程编码(14)取出所有这样的一些
4
(1)SELECT * FROM J
WHERE CITY=’上海’; (2)SELECT SN FROM SPJ
WHERE JN=’J1’ AND PN=’P1’; (3)SELECT JNAME FROM SPJ,J
WHERE SN=’S1’ AND SPJ.JN=J.JN ; (4)SELECT DISTINCT COLOR FROM P WHERE PN IN (SELECT PN FROM SPJ
WHERE SN=’S1’); (5)SELECT SN FROM SPJ
WHERE JN=’J1’ AND SN IN (SELECT SN FROM SPJ
WHERE JN=’J2’);
(6)SELECT DISTINCT SPJ.SN FROM P,SPJ WHERE SPJ.PN IN (SELECT SPJ.PN FROM SPJ,S, P
WHERE S.SN=SPJ.SN AND P.PN=SPJ.PN AND P.COLOR=’红’); (7)SELECT * FROM J; (8)SELECT * FROM J
WHERE CITY=’南京’; (9)SELECT DISTINCT SN FROM SPJ WHERE JN IN (SELECT JN FROM J
WHERE CITY=’上海’); (10)SELECT SN FROM SPJ WHERE JN IN (SELECT JN
5