数据库知识
数据库模型(概念模式、外模式、内模式)
数据模型,ER 图,规范化
数据操作
数据库语言
数据库管理系统的功能和特征
数据库的控制功能
数据仓库和分布式数据库基础知识
范式:
第一范式(1NF):在关系模式R中,当且仅当所有域只包含原子值,即每个分量都是不可再分的数据项,则称实体E是第一范式。
第二范式(2NF):当且仅当实体E是第一范式(1NF),且每一个非键属性完全依赖主键(没有不完全依赖)时,则称实体E是第二范式。
第三范式(3NF):当且仅当实体E是第二范式(2NF),且E中没有非主属性传递依赖于码时,则称实体E是第三范式。
BCNF:如果关系模型R∈1NF,且R中每一个函数依赖关系中的决定因素都包含码,则R是满足BC范式的关系,记作BCNF。
设有关系模式R (课程,教师,学生,成绩,时间,教室),其中函数依赖集F如下:F={课程→→教师,(学生,课程)→成绩,(时间,教室)→课程,(时间,教师)→教室,(时间,学生)→教室}关系模式R的一个主键是__(1)__,R规范化程度最高达到__(2)__。若将关系模式R分解为3个关系模式R1(课程,教师)、R2(学生,课程,成绩)、R3(学生,时间,教室,课程),其中R2的规范化程度最高达到__(3)__。
(1)A.(学生,课程) B.(时间,教室) C.(时间,教师) D.(时间,学生)
(2)A.1NF B.2NF C.3NF D.BCNF
(3)A.2NF B.3NF C.BCNF D.4NF
解析:通过主键应该是可以推导出关系中的所有其它属性的,那么通过函数依赖集F我们可以知道,通过(时间,学生)可以推导出教室,然后通过(时间,教室)可以推导出课程,通过(学生,课程)又能推导出成绩,通过课程又可能推导出教师,所有其它属性都可以被推导出来,因此(时间,学生)是主键。从函数依赖集F我们可以看到,没有对主键中单个属性的依赖关系,所有不存在非主属性对码的部分依赖,但存在传递依赖,因此关系模式只满足第2范式。分解后的R2只包含了学生,课程及成绩三个属性,它们之间的依赖关系是(学生,课程)→成绩,那么主键应该是(学生,课程),这里不存在部分依赖,也不存在传递依赖,因此满足BC范式。
答案:(1)D (2)B (3)C
关系模式分解:
(1)无损连接分解
方法一:公式法。
方法二:表格法。
(2)保持函数依赖分解
给定关系模式R<U,F>,U= {A,B,C},F={AB→C,C→B}。关系R__(1)__,且分别有__(2)__。
(1)A.只有1个候选关键字AC B.只有1个候选关键字AB C.有2个候选关键字AC和BC D.有2个候选关键字AC和AB
(2)A.1个非主属性和2个主属性 B.2个非主属性和1个主属性 C.0个非主属性和3个主属性 D.3个非主属性和0个主属性
解析:主属性和非主属性是互补的,一个关系模式中的属性不是主属性就是非主属性。组成候选码的属性就是主属性,其它的就是非主属性,所以要判断关系模式中的属性是主属性还是非主属性,首先要求解出其候选码。在本题中,从题目给出的函数依赖关系我们可以看出,AB能推导出C,即能推导出所有的属性;而C能推导出B,同样,AC也能推导出所有的属性,因此AB与AC都是该关系的候选码。所以该关系中的属性都是主属性,没有非主属性。
答案:(1)D(2)C
设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了学生亲属的姓名、与学生的关系以及联系电话。
学生实体Students中的“家庭住址”是一个__(1)__属性;为使数据库模式设计更合理,对于关系模式Students__(2)__。
(1)A.简单 B.多值 C.复合 D.派生
(2)A.可以不作任何处理,因为该关系模式达到了3NF
B.只允许记录一个亲属的姓名、与学生的关系以及联系电话的信息
C.需要对关系模式Students增加若干组家庭成员、关系及联系电话字段
D.应该将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体
解析:在本题中,由于题目告诉我们“家庭住址”记录了邮编、省、市、街道信息,那么家庭家庭住址属性可以再分,因此它是一个复合属性。派生属性是指通过其他属性可以计算获得结果的属性。为使数据库模式设计更合理,我们可以将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体,这里大家要注意一定要加上学号,因为学号唯一标识一名学生。
答案:(1)C(2)D
SQL语言:
赋予用户权限命令的简单格式可以概括为:GRANT 权限ON 数据库对象TO 用户 WITHGRANT OPTION。而WITH GRANT OPTION是可选项,表示用户可以将其权限通过GRANT语句授权给其它用户。
某销售公司数据库的零件关系P(零件号,零件名称,供应商,供应商所在地,库存量),函数依赖集F={零件号→零件名称,(零件号,供应商)→库存量,供应商→供应商所在地)。零件关系模式P属于__(1)__。查询各种零件的平均库存量、最多库存量与最少库存量之间差值的SQL语句如下:
SELECT零件号,零件名称,__(2)__,
FROM P
__(3)__;
(1)A.1NF B.2NF C.3NF D. 4NF
(2)A.AVG(库存量)AS平均库存量,MAX(库存量)-MIN(库存量)AS差值
B.平均库存量AS AVG(库存量),差值AS MAX(库存量)-MIN(库存量)
C.AVG库存量AS平均库存量,MAX库存量-MIN库存量AS差值
D.平均库存量AS AVG库存量,差值AS MAX库存量-MIN库存量
(3)A.ORDER BY供应商 B.ORDER BY零件号C.GROUP BY供应商 D.GROUP BY零件号
解析:根据函数依赖集F,我们不难知道,零件关系P的主键为(零件号,供应商),因为从这两个属性出发可以推导出所有其它属性。在求出主键后,我们再看是否存在部分依赖,很显然零件号→零件名称是部分依赖,因此该关系模式不满足2NF,而只满足1NF。
对于第(7)空,根据题目要求,是要显示各种零件的平均库存量以及最多库存量与最少库存量之间差值,求平均库存量可以用函数AVG,而求最多库存量和最小库存量分别用函数MAX和MIN。AS是取别名的意思,因此本题答案选A。根据题目意思,是要显示各零件的平均库存量以及最多库存量与最少库存量之间差值,那么这里就需要按零件的种类对查询的结果进行分组,因此第(8)空应该填GROUP BY零件号。
答案:(1)A(2)A(3)D