关系数据库的几种设计范式介绍
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.4 D.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.文件的集合 C.命令的集合
B.数据的集合 D.程序的集合
2.在数据库的三级模式中,描述数据库中全部数据的整体逻辑结构的是( C ) A.外模式
B.内模式
C.逻辑模式 D.存储模式
3.数据库系统中存放三级结构定义的DB称为( B ) A.DBS B.DD C.DDL D.DBMS