关系数据库的几种设计范式介绍
1、第一范式(1NF)
在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式(1NF)的数据库就不是
关系数据库。
所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性,就可能需要定义一个新的实体,新的实体由重复的属性构成,新实体与原实体之间为一对多关系。在第一范式(1NF)中表的每一行只包含一个实例的信息。例如,对于图3-2 中的员工信息表,不能将员工信息都放在一列中显示,也不能将其中的两列或多列在一列中显示;员工信息表的每一行只表示一个员工的信息,一个员工的信息在表中只出现一次。简而言之,第一范式就是无重复的列。
2、第二范式(2NF)
第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。第二范式(2NF)要求数据库表中的每个实例或行必须可以被唯一地区分。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。如图3-2 员工信息表中加上了员工编号(emp_id)列,因为每个员工的员工编号是唯一的,因此每个员工可以被唯一区分。这个唯一属性列被称为主关键字或主键、主码。
第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的唯一标识。简而言之,第二范式就是非主属性非部分依赖于
主关键字。
3、第三范式(3NF)
满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如,存在一个部门信息表,其中每个部门有部门编号(dept_id)、部门名称、部门简介等信息。那么在图3-2的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表,则根据第三范式(3NF)也应该构建它,否则就会有大量的数据冗余。简而言之,
第三范式就是属性不依赖于其它非主属性。
范式:是数据库设定的一些规则,是由一位姓范的人制定的,故名“范式”。
三范式总体要求:不能有冗余数据。
一范式:1--要有主键
2--列不可分,不能重复。例如“张三_20_湖南衡阳”这种的一个字段包含多种信息就不可取,明显的可以分为
三个字段。
二范式:不能存在部分依赖。(一张表中多个字段做主键时,不是主键的字段不能依赖于依赖于主键的一部分。例如:一张表中由学生id和老师id共同组成表的主键,但是学生的姓名是依赖于学生id的,即每个id对应一个学生姓名,这就
是部分依赖)
三范式:不能存在传递依赖。(如果一张表中有班级id、名称和学生id、名称,很明显班
班级id_依赖_学生id ;班级名称_依赖_班级名称,存在传递依赖关系。)
2008年1月高等教育自学考试全国统一命题考试
数据库系统原理试卷
4735
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.数据库在磁盘上的基本组织形式是( B )
A.DB B.文件
C.二维表D.系统目录
2.ER(实体联系模型)模型是数据库的设计工具之一,它一般适用于建立数据库的( A )
A.概念模型B.逻辑模型
C.内部模型D.外部模型
3.数据库三级模式中,用户与数据库系统的接口是( B )
A.模式B.外模式
C.内模式D.逻辑模式
4.在文件系统中,所具有的数据独立性是( D )
A.系统独立性
B.物理独立性
C.逻辑独立性
D.设备独立性
5.在DB技术中,“脏数据”是指( D )
A.未回退的数据
B.未提交的数据
C.回退的数据
D.未提交随后又被撤消的数据
6.关系模式至少应属于( A )
A.1NF B.2NF
C.3NF D.BCNF
7.设有关系模式R(ABCD),F是R上成立的FD集,F={A→B,B→C},则属性集BD的闭包(BD)+为( B )
A.BD B.BCD
C.BC D.CD
8.设有关系R如题8图所示:(C)
R
学号姓名专业入学年份
97001 王敏数学1980
95002 高丰经济学1980
95003 梅婷数学1980
93013 王明计算机1981
94012 杨山计算机1984
题8图
则∏专业,入学年份(R)的元组数为
A.2 B.3
C.4D.5
9.集合R与S的交可以用关系代数的基本运算表示为( A )
A.R-(R-S)B.R+(R-S)
C.R-(S-R) D.S-(R-S)
l0.已知SN是一个字符型字段,下列SQL查询语句( C )
SELECT SN FROM S
WHERE SN LIKE′AB%′;的执行结果为
A.找出含有3个字符′AB%′的所有SN字段
B.找出仅含3个字符且前两个字符为′AB′的SN字段
C.找出以字符′AB′开头的所有SN字段
D.找出含有字符′AB′的所有SN字段
l1.现要查找缺少成绩(Grade)的学生学号(Snum),相应的SQL语句是( D )
A.SELECT Snum B.SELECT Snum
FROM SC FROM SC
WHERE Grade=0 WHERE Grade<=0
C.SELECT Snum D.SELECT Snum
FROM SC FROM SC
WHERE Grade=NULL WHERE Grade IS NULL
l2.下列不是
..数据库恢复采用的方法是( D )
A.建立检查点B.建立副本
C.建立日志文件 D.建立索引
13.在SQL/CLI中,将宿主程序与数据库交互的有关信息记录在运行时数据结果中。不能
..保存此信息的记录类型是( D ) A.环境记录B.连接记录
C.语句记录D.运行记录
l4.在面向对象技术中,复合类型中后四种类型——数组、列表、包、集合——统称为( B )
A.行类型B.汇集类型
C.引用类型D.枚举类型
l5.在面向对象技术中,类图的基本成分是类和( C )
A.属性B.操作
C.关联D.角色
二、填空题(本大题共10小题,每小题1分,共10分)
请在每小题的空格上填上正确答案。错填、不填均无分。
16.在数据库的概念设计中,客观存在并且可以相互区别的事物称为_____实体_________。
17.增强ER模型中,子类实体继承超类实体的所有_____属性______________。
18.产生数据冗余和异常的两个重要原因是局部依赖和________传递_______依赖。
l9.如果Y? X?U,则X→Y成立。这条推理规则称为______自反性_______。
20.ODBC规范定义的驱动程序有两种类型:即单层驱动程序和______多层驱动程序__。
21.DBMS可分为层次型、网状型、___关系___型、面向对象型等四种类型。
22.如果事务T对某个数据R实现了__X(排他/写)___锁,那么在T对数据R解除封锁之前,不允许其他事务再对R加任何类型的锁。
23.在多个事务并发执行时,系统应保证与这些事务先后单独执行时的结果一样,这是指事务的___隔离_性。
24.在SQL/CLI中,保存元组或参数的有关信息的是__描述记录__。
25.在面向对象技术中,对象联系图是描述面向对象___数据类型___的基本工具。
三、简答题(本大题共10小题,每小题3分,共30分)
26.简述DBMS的主要功能。
答:数据的定义、操作、保护、维护和数据字典等5个功能。
27.简述数据库逻辑设计阶段的主要步骤。
答:把概念模型转换成逻辑型、设计外模型、设计应用程序与数据库的接口,评价模型,修正模型。
28.设有关系模式R(S#,C#,CNAME,TNAME),其属性分别表示学生的学号、选修课程号、课程名、任课教师名。请说明该关系模式存在哪些操作异常。
答:系模式存在着三种操作异常:
修改异常、插入异常、删除异常。
29.设有关系模式R(ABC),F是R上成立的FD集,F={B→A,C→A},ρ ={AB,BC}是R上的一个分解,那么分解p是否保持FD集F?并说明理由。
已知F=|B→A,C→A|,而πAB(F)=|B→A|,πBC(F)=O/(空集的意思)
所以分解FD C→A。
30.简述存储过程的优点。
答:提高运行速度,增强了SQL的功能和灵活性,可以降低网络的通信量,减轻了程序编写的工作量,间接实现安全功能。
31.简述SQL数据库表的三种类型及它们的区别。
答:表的三种娄型:基本表、视图和导出表,基本表是实际存储在数据库中的表,视图是由一个或多个基本表或其他视图构成的表,而导出表是执行了查询时产生的表。
32.简述数据库的完整性含义以及DBMS的完整性子系统的功能。
答:①数据库的完整性就指数据的正确性、有效性和相容性,防止错误的数据进入数据库。
②完整性子系统有主要功能有:
监督事务的执行,并测试是否违反完整性规则。
若有违反现象,采取恰当操作。
33.SQL的视图机制有哪些优点?
答:数据安全性、逻辑数据独立性和操作简便性。
34.简述ODBC(开放数据库互连)体系结构中驱动程序管理器的功能。
答:驱动程序管理器是一个动态连接,用于连接各种DBS和DBMS驱动程序,管理应用程序和DBMS驱动程序之间的交互作用。
35.简述面向对象技术中聚合的概念。
答:聚合表达了成分对象和聚合对象之间的“is pan of”(一部分)的联系。聚合实际上是一种较强形式的关联联系。四、设计题(本大题共5小题,每小题4分,共20分)
已知有如下三个关系:
学生(学号,姓名,系别号)
项目(项目号,项目名称,报酬)
参加(学号,项目号,工时)
其中,报酬是指参加该项目每个工时所得报酬。
依据此关系回答下面36~40题。
36.试用关系代数表达式写出下列查询:
列出“王明”同学所参加项目的名称。
答:π项目名称(б姓名='王明'(学生∞参加∞项目))
37.试用SQL语句写出下列查询:
列出报酬最高的项目编号。
答:select项目编号
from 项目,
Where 报酬=(SELECT MAX (报酬)FROM 项目)
38.试用SQL语句写出下列查询:
列出每个系所有学生参加项目所获得的总报酬。
答:SELECT 系别号,SUM(报酬*工时)
FROM 学生,项目,参加
WHERE 学生.学号=参加.学号AND
项目.项目号=参加.项目号
GROUP BY 系别号
39.试用SQL语句查询报酬大于800元(包括800元)的项目名称。
答:SELECT 项目名称
FROM 项目
WHERE 报酬>=800
40.试用SQL命令创建一个学生_项目视图,该视图包含的属性名称为:学号,姓名和项目名称。
答:CREATE VIEW 学生项目(学号,姓名,项目名称)
AS
SELECT 学生.学号,姓名,项目名称
FROM 学生,项目,参加
WHERE 学生.学号=参加.学号 AND
项目.项目号=参加.项目号
五、综合题(本大题共2小题,每小题5分,共l0分)
41.为体育部门建立数据库,其中包含如下信息:
(1)运动队:队名、主教练,其中队名惟一标识运动队。
(2)运动员:运动员编号、姓名、性别、年龄。
(3)运动项目:项目编号、项目名、所属类别。
其中:每个运动队有多名运动员,每名运动员只属于一个运动队;每名运动员可以参加
多个项目,每个项目可以有多个运动员参加。系统记录每名运动员参加每个项目所得名次和成绩以及比赛日期。
(1)根据以上叙述,建立ER模型,要求标注联系类型。(实体的属性可以省略)
(2)根据转换规则,将ER模型转换成关系模型,要求标明每个关系模式的主键和外键
(如果存在)。
42.设有一个反映工程及其所使用相关材料信息的关系模式:
R(工程号,工程名,工程地址,开工日期,完工日期,材料号,材料名称,使用数量)
如果规定:
每个工程的地址、开工日期、完工日期惟一;不同工程的地址、开工和完工日期可能相同;
工程名与材料名称均有重名;
每个工程使用若干种材料,每种材料可应用于若干工程中。
根据上述规定,写出模式R的基本FD和关键码。
(2)R最高达到第几范式,并说明理由。
(3)
(3)将R规范到3NF。
全国2008年10月自学考试数据库系统原理试题
课程代码:04735
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.数据库是长期存储在计算机内、有组织的、统一管理的相关( B )
A.文件的集合
B.数据的集合
C.命令的集合
D.程序的集合
2.在数据库的三级模式中,描述数据库中全部数据的整体逻辑结构的是( C )
A.外模式
B.内模式
C.逻辑模式
D.存储模式
3.数据库系统中存放三级结构定义的DB称为( B )
A.DBS
B.DD
C.DDL
D.DBMS
4.教师实体中有教师号、姓名、部门、任教时间、教龄等属性,其中教龄是一个( A )
A.派生属性
B.多值属性
C.复合属性
D.NULL属性
5.对关系的描述不正确的是( C )
A.关系是一个集合
B.关系是一张二维表
C.关系可以嵌套定义
D.关系中的元组次序可交换
6.若属性X函数依赖于属性Y时,则属性X与属性Y之间具有( B )
A.一对一联系
B.一对多联系
C.多对一联系
D.多对多联系
7.设F是关系模式R的FD集,如果对F中每个非平凡的FD X—Y,都有X是R的超键,则( C )
A.R属于2NF,但不一定属于3NF
B.R属于3NF,但不一定属于BCNF
C.R属于BCNF,但不一定属于4NF
D.R属于4NF
8.关系Rl和R2如下表所示:
R1 R2
A B C A B C
a1 b2 c1 a1 f g
a2 b2 c2 a2 b2 c2
a3 b1 c1 a3 f g
则R1与R2进行笛卡尔积运算,其结果的元组数为( D )
A.1
B.3
C.6
D.9
9.设四元关系R(A,B,C,D),则下面不正确的是( B )
A.
)R(B
D,
∏
为取属性D,B的两列组成新关系
B.
)R(
4,2
∏
为取属性的值是4,2的两列组成新关系
C.
)R(B
D,
∏
与
)R(
4,2
∏
是等价的
D.
)R(B
D,
∏
与
)R(
2,4
∏
是相同关系
10.下列叙述正确的是( B )
A.在ORDER BY子句后只能有一个属性
B.ORDER BY子句所产生的输出只是逻辑排序效果,并没有影响表的实际内容
C.进行有序输出时,如果列中有空值则在升序输出时首先列出空值项,而在降序时最后
列出空值项
D.ORDER BY子句中必须指明是升序或降序,不能缺省
12.现要查找缺少成绩(G)的学生学号(S#)和课程号(C#),下面SQL语句中WHERE子句的
条件表达式应是:
SELECT S#,C#
FROM SC
WHERE( D )
A.G=0
B.G<=0
C.G=NULL
D.G IS NULL
12.数据库恢复的主要依据是( D )
A.DBA
B.DD
C.文档
D.事务日志
13.不能激活触发器执行的事件是( A )
A.SELECT
B.UPDATE
C.INSFRT
D.DELETE
14.SQL Server 2000的主要工具中,执行T-SQL的最佳轻量级工具是( A )
A.查询分析器
B.服务管理器
C.企业管理器
D.事件探查器
15.在ODBC体系结构中,为应用程序加载、调用和卸载DB驱动程序的是( B )
A.ODBC数据库应用程序
B.驱动程序管理器
C.DB驱动程序
D.数据源
二、填空题(本大题共10小题,每小题1分,共10分)
请在每小题的空格上填上正确答案。错填、不填均无分。
16.能惟一标识实体的属性或属性集称为____实体标识符(关键码/键)____。
17.数据独立性使得修改数据结构时,尽可能不修改_____应用程序___。
18.数据库的物理结构主要指数据库的存储记录格式、存储记录安排和__存取方法______。
19.由于数据的冗余,在对数据操作时常会引起__修改异常______、插入异常、删除异常。
20.关系代数运算中,专门的关系操作有:选择、投影、除和___连接_____。
21.SQL语言的条件表达式中字符串匹配操作符是____ LIKE ____。
22.DBS运行的最小逻辑工作单位是_____事务___。
23.SQL的基本表约束主要有三种形式:候选键定义、外键定义、__检查约束______定义。
24.在复合数据类型中,相同类型元素的有序集合,并且允许有重复的元素,称为
___列表类型_____。
25.SQL Server 2000引擎对外使用Net-Library抽象层来支持不同的__网络协议______。
三、简答题(本大题共10小题,每小题3分,共30分)
26.在DBS的全局结构中,磁盘存储器上的数据结构有哪几种形式?
答案:数据文件、数据字典、索引、统计数据、日志。
27.简述关系的参照完整性规则中,外键取值允许为空和不允许为空的条件。
答案:在依赖关系中,当外键是主键的组成部分时,外键值不允许为空;(2分)否则外键值允
许为空。(1分)
28.设有函数依赖集F={A→D,AB→E,BI→E,CD→I,E→C},计算属性集AE关于F的闭包(AE)+。
29.简述关系代数表达式的启发式优化规则。
答案:启发式规则:
(1)尽可能早地执行选择操作。(1分)
(2)尽可能早地执行投影操作。(1分)
(3)避免直接做笛卡尔积,把笛卡尔积操作之前和之后的一连串选择和投影全并起来一起做。
(1分)
30.简述DBS中系统故障的恢复方法。
答案:(1)对未完成事务作UNDO处理。(1分)
(2)对已提交事务但更新还留在缓冲区的事务进行REDO处理。(2分)
31.什么是X锁?
答案:X锁是指如果事务T对某个数据R实现了X锁,那么在T对数据R解除封锁之前,不允许其它事
务再对该数据加任何类型的锁。(3分)
32.SQL中哪些机制提供了安全性?
答案:SQL中有四个机制提供安全性:视图、权限、角色、审计。
33.什么是SQL/CLI?
答案:SQL/CLI是ODBC技术的延续。CLI定义了一套可以从宿主语言调用的公共函数,(1分)每
一个函数具有一个名称(1分)和一个要求的算法。(1分)
34.简述对象联系图的定义。
答案:对象联系图是描述面向对象数据模型的基本工具。(1分)它不仅完整地揭示了数据之间
的联系,(1分)也把查询的层次观点表现得一清二楚。(1分)
35.T-SQL中有哪些变量?各有哪些特点?
答案:变量分为局部变量和全局变量。(1分)局部变量由用户定义和维护,以单个@字符开头
;(1分)全局变量由系统定义和维护,以两个@字符开头,用户不能定义全局变量。(1分)
四、设计题(本大题共5小题,每小题4分,共20分)
36.设有三个关系A(Anum,Aname, city),它们的属性分别是:商场号,商场名称,商场所在城市;B(Bnum, Bname, price),它们的属性分别是:商品号,商品名称,价格;AB(Anum, Bnum, qty),它们的属性分别是商场号,商品号,商品销售数量。
用SQL语句创建一个基于A,B,AB三个表的视图(上海商场),其中包括城市为上海的商场名称及其销售的商品名称。Create view上海商场
As
Select AName,BName from A,AB,B
Where a.Anum = AB. Anum
And B. Bnum = AB. Bnum
And City = ‘上海’
--在SQL语句中,不区分大小写
Select * from students where name = ‘ABC ’
Select * from students where name = ‘abc’
37.对36题中的三个基本表,用SQL语句查询所有商品的名称及其销售总额。
Select BName,Sum(qty) from AB,B
Where AB. Bnum= B. Bnum
Group by Bname
38.对36题中的三个基本表,用SQL语句查询共有多少家商场销售“长虹彩电”。
Select count(*) from AB, B
Where AB. Bnum= B. Bnum
And B.Bname = ‘长虹彩电’
--求长虹彩电总共的销售量
Select sum(QTY) from AB , B
Where AB.BNum = B.Bnum
And B.BName = ‘长虹彩电’
39.设有选课表SC(S#,C#,GRADE),它们的属性分别是:学号,课号,成绩。试用关系代数表达式检索学习课号为C2课程的学生学号和成绩。
Select S# Grade from SC
Where C# = ‘C2’
40.设有学生关系S(Sno, Sname, Sage, Sex),它们的属性分别是:学号,姓名,年龄,性别。试用SQL语句检索出年龄大于等于18小于等于20的学生姓名和性别。
[18,20]
Between 18.and 20 [18,20]
Select Sname,Sex from S
Where sage between 18 and 20
Select Sname,Sex from S
Where sage >= 18 and sage <= 20
Select Sname,Sex from S
Where sage in (18,19,20)
五、综合题(本大题共2小题,每小题5分,共10分)
41.设某人才市场数据库中有一个记录应聘人员信息的关系模式:
R(人员编号,姓名,性别,职位编号,职位名称,考试成绩)
如果规定:每人可应聘多个职位,每个职位可由多人应聘且必须参加相关考试,考试成绩由人员编号和职位编号确定。(1)根据上述规定,写出模式R的基本FD和关键码。
(2)→
人员编号→姓名
人员编号→性别
职位编号→职位名称
(人员编号, 职位编号) 考试成绩
关键码: (人员编号, 职位编号)
(3)R最高属于第几范式。2NF
(3)将R规范到3NF。
R(人员编号,姓名,性别)
Z(职位编号,职位名称)
RZ(人员编号, 职位编号,考试成绩)
42.某网上订书系统,涉及如下信息:
(1)客户:客户号、姓名、地址、联系电话。
(2)图书:书号、书名、出版社、单价。
(3)订单:订单号、日期、付款方式、总金额。
其中:一份订单可订购多种图书,每种图书可订购多本;一位客户可有多份订单,一份订单仅对应一位客户。
(1)根据以上叙述,建立ER模型,要求标注联系类型(可省略实体的属性)。
(2)根据转换规则,将ER模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在)。
客户(客户号、姓名、地址、联系电话)
定单(订单号、日期、付款方式、总金额)
图书(书号、书名、出版社、单价)
定购(订单号,书号,数量)
用户定单(客户号, 订单号)
全国2009年1月高等教育自学考试
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.使用二维表格结构表达实体及实体间联系的数据模型是( C )
A.层次模型B.网状模型
C.关系模型D.联系模型
2.数据库系统不仅包括数据库本身,还要包括相应的硬件、软件和( D )