结构化查询语言SQL是集DDL、DML和数据控制功能于一体的数据库语言。SQL的DML是介于关系代数和关系演算之间的一种语言。 SQL语言的组成:
·一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。 ·一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。
·一个表或者是一个基本表,或者是一个视图。基本表是实际存储在数据库中的表,而视图是由若干基本表或其他视图构成的表的定义。
·一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。
·用户可以用SQL语句对视图和基本表进行查询等操作。
·SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言可以是常用的高级语言。SQL用户也能作为独立的用户接口,使交互环境下的终端用户使用。
SQL包括了所有对数据库的操作,主要有数据定义(SQL DDL)、数据操纵(SQL DML)、访问控制和嵌入式SQL。 2.5.1.4 关系数据库规范化理论
关系数据库规范化理论主要包括3方面的内容:
(1)函数依赖。指数据之间存在的各种联系和约束,例如建就是一种依赖。函数依赖是最基本的一种依赖。
(2)范式。模式分解的标准形式。关系模式分解的两个特性实际上涉及到两个数据库模式的等价性问题,包括数据等价和依赖等价两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用\无损联接\衡量。依赖等价是指两个数据库模式应有相互逻辑关系的函数依赖集,此时数据的语义是不会出差错的。 (3)模式设计方法。设计规范的数据库模式的方法。 衡量关系模式的优劣的标准就是模式的范式(NF)。范式有许多种,与数据依赖有着直接的联系。 ①第一范式(INF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(INF)的模式
,r是规范化的关系。LNF的模式的关系数据库最基本的要求。
②第二范式(2NF)
我们把关系模式R的属性分为两类:一类是键的属性,称为主属性;另一类是不属于任何键的属性,称为非主属性。若关系模式R是INF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。 ③第三范式(3NF)
若关系模式R是INF,且每个非主属性都不传递依赖于R的候选集,那么称R是3NF模式。在3NF模式中排除了非主属性的对键的传递依赖。3NF的模式必定是2NF的模式。局部依赖和传递依赖是产生冗余和异常的两个重要原因。由于3NF模式中不存在非主属性对候选键的局部依赖和传递依赖,因此具有较好的性能。而对于非3NF的INF和2NF,甚至非INF的关系模式,于它们性能上的弱点,一般不宜作为数据库模式,通常需要将它们变换成3NF或更高级的范式 ,这种变换过程,称为\关系的规范化处理\。
④BC范式(简称BCNF) 若关系模式R是INF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。此时排除了任何属性对键的传递依赖。 上述4种范式之间关系:BCNF 3NF 2NF 1NF。 2.5.2 试题解析
高级程序员级考试中,数据库基础试题所占的比重一般,基本上每年一道题。从历年试题统计(见表2-8)来看,主要考查与关系数据库有关的知识、关系模式、关系模式的范式、关系代数运算等是反复考查的内容,总的来说,难度一般都不大。
试题1 (2000年试题7)
从供选择的答案中,选出应填入下面叙述中{ }内的最确切的解答,把相应编号写在答卷的对应栏内。
域表达式{ab|R(ab)∧ R(ba)}转换为等价的关系代数表达式,所列出的式子中A是正确的.SQL中集合成员资格的比较操作\元组NOT IN(集合)\中的\与B操作符等价。SQL中涉及属性AGE是否是空值的比较操作,写法C是错误的。类似于工资在800至5000之间\这种约束,是属于DBS的D功能。 设关系模式Q是3NF模式,那么,E 这种提法是不正确的。 供选择的答案
A: ①Л1,2(б1=4∧2=3(R×R)) ②Л1,2(б1=4( )) ③ Л1,2(б1=4( )) ④ R∩Л1,2(R)
B:①<>SOME ②=SOME ③<>ALL ④=ALL C:①AGE IS NULL ②NOT(AGE IS NULL) ③AGE=NULL ④AGE IS NOT NULL
D:①完整性 ②并发控制 ③安全性 ④恢复 E:①Q一定是2NF模式 ②Q可能不是4NF模式 ③Q可能不是BCNF ④Q一定不是BCNF 【解析】
问题A涉及域表达式与关系代数表达式的转换。域表达式{ab|R(ab) ∧ R(ab)}表示取出二元关系R中有对称关系的二元组的集合,即(a,b)∈R,(b,a) ∈R,如果用D来表示该域表达式,则有D R。答案中只有②是正确的。
是关系R与其自身的条件连接,条件是第1个R的第2个元素与第2个R的第1个元素相等。举例说明如下:
R={(1,2),(2,3),(3,2),(2,1)(3,4)} 则 的结果是 {(1,2,2,3), (1,2,2,1) (2,1,1,2) (2,3,3,2) (3,2,2,3) (2,3,3,4)};
再作δ选择运算找出1,4列相等的元组{(1,2,2,1),(2,1,1,2),(2,3,3,2),(3,2,2,3)};
再作π投影运算取1,2列,得到{(1,2),(2,1),(2,3),(3,2)}。 问题 B 涉及集合成员资格比较。SQL中的集合比较有4种:集合成员资格比较、集合成员算术比较、空关系测试和重复元组的测试。其中集合成员资格比较有两种形式:
(集合1)IN(集合2) (集合1)NOT IN(集合2)
这里\与算术比较中的\等介,\IN\与算术比较中的\<>ALL\等价。
问题 C 涉及空值的处理。SQL中允许属性值为空值,用关键字NULL表示空值。测试某属性值为空值,用\某属性)IS NULL\表示,测试某属性值为非空值,用\某属性)IS NOT NNULL或\某属性)IS NULL)\来表示。 问题 D 涉及属性值的约束,属于数据库完整性范畴。
问题 E 涉及关系模式的范式。根据4种范式之间的关系:BCNF 3NF 2NF 1NF,可以判断3NF模式必定是2NF模式,BCNF必定是3NF模式,但是3NF可能是BCNF模式,也可能不是BCNF模式。 【答案】A:② B:③ C:③ D:④ 试题2 (1999年试题7)
从供选择的答案中,选出应填入下面叙述中{ }内的最确切的解答,把相应编号写在答卷的对应栏内。
最常用的一种基本数据模型是关系数据模型,它用统一的 A 结构来表示实体及实体之间的联系。关系数据库的数据操作语文(DML)主要包括 B 两类操作。 关系运算以关系代数为理论基础,关系代数的最基本操作是并、差、笛卡尔积和 C。用R S 表示关系R和关系S的 D 。
供选择的答案
A:①树 ②网络 ③图 ④二维表
B:①插入和删除 ②检索和更新 ③查询和编辑 ④统计和修改 C:①投影、联接 ②联接、选择 ③选择、投影 ④交、选择 D:①联接 ②笛卡尔积 ③ 联接 ④自然联接 E:①自然联接 ② 联接 ③笛卡尔积 ④并 【解析】