资源描述
数据库系统原理与实践题库及答案
1.简要说明数据、数据库、数据库管理系统和数据库系统的概念。
答:数据:数据库中存储的基本对象是数据(Data),从计算机的角度来看,数据是指能够被计算机存储和处理的符号。数据的表现形式多种多样,不仅有数字、文字,还可以是图
形、图像和声音等。
数据库:数据库是指长期存储在计算内的、有组织的、可共享的数据集合。
数据库管理系统:数据库管理系统(Database Management System,DBMS)是专门用来管理数据库的计算机软件,以实现对数据库的统一管理和控制。数据库管理系统是计算机系统的重要基础软件。
数据库系统:数据库系统(Database System,DBS)是指引入数据库技术后的计算机系统。一般由数据库、数据库管理系统(及相关实用工具) 、应用系统和数据库管理员构成。
2.数据管理技术的发展主要经历了哪几个阶段?
答:在应用需求的推动下,在计算机硬件、软件发展的基础上,数据管理技术经历了人工管理、文件系统和数据库系统 3 个阶段。
3.与文件系统相比,数据库系统有哪些优点?
答:从文件系统到数据库系统,标志着数据管理技术的飞跃。与人工管理和文件系统相比,
数据库系统具有以下优点:
(1)数据结构化
数据库系统实现了整体数据的结构化,这是数据库的主要特征之一,也是数据库系统与
文件系统的本质区别。 在文件系统中,每个文件内部是有结构的,但文件与文件之间是毫无结构化的。在数据库系统中,不仅数据内部实现了结构化,整体也是结构化的,数据之间具有联系,从而实现了数据的真正结构化。
(2)数据的共享性高、冗余度低,易扩充
数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应
用共享使用。数据共享有利于减少数据冗余,节约存储空间;可以避免数据之间的不相容性
与不一致性,且使系统易于扩充。
(3)数据独立性高
数据库系统采用三级模式结构,三级模式之间形成两级映像,保证了数据具有较高的逻辑独立性和物理独立性。
(4)数据由 DBMS 统一管理和控制
数据库系统关于数据控制的功能几乎都由 DBMS 提供,主要包括: 数据的安全性保护、数据的完整性检查、并发控制和数据库恢复。
4.什么是数据库系统的三级模式结构?数据库系统的三级模式结构如何形成两级映像?
答:数据库系统的三级模式结构是指数据库系统由外模式、模式和内模式三级构成。
(1)外模式又称用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一具体应用有关的数据的逻辑表示。一个数据库可以有多个外模式。
(2)模式也称逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。它是数据库系统模式结构的中间层,既不涉及数据的物理存储细节和硬件环境,也与具体应用程序无关。一个数据库只有一个模式。
(3)内模式也称存储模式,它是数据库中数据的物理结构和存储方式的描述,是数据在数据库内部的表示方式。一个数据库只有一个内模式。
三级模式之间提供两级映像,以实现这 3 个层次的联系与转换。
(1)外模式/模式映像。外模式/模式映像定义了该外模式与模式之间的对应关系,对于
每一个外模式,都有一个对应的外模式/模式映像。
(2)模式/内模式映像。由于数据库只有一个内模式,所以模式/内模式映像是唯一的。
它定义了数据库的全局逻辑结构与存储结构之间的对应关系。
5.什么是数据独立性?为什么说数据库系统中的数据具有较高的数据独立性?
数据独立性包括数据的物理独立性和数据的逻辑独立性。
(1)物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变时,应用程序不用改变。
(2)逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序可以不变。
数据库系统采用三级模式结构,在三级模式之间提供两级映像功能。当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,可使外模式保持不变,由于应用程序是依据数据的外模式编写的,可以不必修改,从而实现了程序与数据的逻辑独立性;当数据库的存储结构改变时,只需要通过改变模式/内模式映像保持模式不变,应用程序不必修改,从而实现程序与数据的物理独立性。
6.简述数据库系统的组成。
答:数据库系统是引入数据库技术的计算机系统,一般由数据库、数据库管理系统(及相应
的实用工具) 、应用程序和数据库管理员组成。数据库是按照一定的组织形式保存在某种存储介质上的数据集合;数据库管理系统是管理数据库的专门软件;应用程序是指以数据库中的数据为基础的程序;数据库管理员负责整个数据库系统的正常运行。
7.DBA 的主要职责是什么?
答:负责整个系统的正常运行,负责保证数据库安全可靠地运行。
第二章
1、什么是概念模型?简述概念模型的作用。
答:
概念模型,也称信息模型,是按用户的观点来对数据和信息建模,主要用于数据库设计。
概念模型实际上是现实世界到机器世界的一个中间层次。概念模型用于信息世界的建模,是现实世界到信息世界的一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户进行交流的语言
2、请简述数据模型的三要素。
答:
三要素是数据结构、数据操作、数据约束。
数据结构是所研究的对象类型的集合。这些对象是数据库的组成成分,数据结构指对象和对象间联系的表达和实现,是对系统静态特征的描述。
数据操作是对数据库中对象的实例允许执行的操作集合,主要指检索和更新(插入、删除、修改)两类操作。数据模型必须定义这些操作的确切含义、操作符号、操作规则(如优先级)以及实现操作的语言。数据操作是对系统动态特性的描述。
数据完整性约束是一组完整性规则的集合,规定数据库状态及状态变化所应满足的条件,以保证数据的正确性、有效性和相容性。
3、目前数据库领域中,常见的数据模型有哪 些?请简述各模型的优缺点。
数据库领域中最常用的逻辑模型有:层次模型(树状图)、网状模型(网,图)、关系模型。
答:
层次模型:
优点:
1.结构清晰,便于观看实体间的联系
2.操作简单
3.查询效率高
缺点:
1.结构灵活性低,当需要更新或修改一个实体时,会影响到其他的数据
2.加大了DBMS的管理负担
网状模型:
优点:
1.允许单个节点存在多于一个父亲节点
2.可以存在俩个或多个节点没有父节点
3.真实反映现实世界
缺点:
1.联系复杂,难以实现,数据库维护重建难度大
关系模型:
优点:
1.结构简单明了
2.独立性比较强
3.操作方便
4.有坚实的数学理论做基础
缺点:
模型比查询效率低,加大了系统的查询负担
第三章
1、试述关系模型的3个组成部分
答:
关系型的三个组成部分分别是:
1.关系数据模型的数据结构
2.关系数据模型的操作集合
3.关系数据模型的完整性约束
2、试述关系操作的特点和关系操作语言的分类。
答:
关系数据语言可以分为三类:
1) 关系代数语言,例如 ISBL 。
2) 关系演算语言:元组关系演算语言,例如 APLHA ,QUEL ;域关系演算语言,例如:QBE 。
3) 具有关系代数和关系演算双重特点的语言,例如 SQL。
这些关系数据语言的共同特点是:具有完备的表达能力;是非过程化的集合操作语言;
功能强;能够嵌入高级语言中使用。
3.定义并理解下列术语,说明它们之间的联系与区别。
答:
(1)域:域是一组具有相同数据类型的值的集合。
笛卡尔积:给定一组域 D1,D2,⋯ ,Dn,这些域可以有相同的。这组域的笛卡
尔积为D1 × D2× , × Dn={( d1,d2, , ,dn )|di ∈Di,i=1,2, , ,n}
其中每一个元素 (d1,d2, , ,dn )叫做一个 n 元组或简称元组。 元素中的每一个值 di 叫做一个分量。
关系:在域 D1, D2,, , Dn上笛卡尔积 D1× D2× , × Dn的子集称为关系,表示为 R( D1,D2,, , Dn)。
元组:关系中的每一个元素是关系中的元组。
属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个名字,称为属性。
(2)候选码:若关系中的某一属性组的值能惟一地标识一个元组,则称该属性组为候选码。
主码:若一个关系有多个候选码,则选定其中一个为主码。
外部码: 设 F 是基本关系 R 的一个或一组属性, 但不是关系 R 的码, 如果 F 与基本关系 S 的主码 Ks 相对应,则称 F 是基本关系 R 的外部码,简称外码。基本关系 R称为参 照关系,基本关系 S称为被参照关系或目标关系。关系 R 和 S 可以是相同的关系。
(3)关系模式:关系的描述称为关系模式。它可以形式化地表示为 R( U,D,dom,F), 其中 R 为关系名, U 为组成该关系的属性名集合, D 为属性组 U 中属性所来自得域, Dom为 属性向域的映像集合, F 为属性间数据的依赖关系集合。
关系数据库:关系数据库有型和值之分。关系数据库的型也称为关系数据库模式,是对关系数据库的描述, 它包括若干域的定义以及在这些域上定义的若干关系模式。 关系数
据库的值是这些关系模式在某一时刻对应的关系的集合,通常称为关系数据库。
4、简述关系模型的实体完整性规则。
答:
关系模型的完整性规则是对关系的某种约束条件。 关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。
实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值。
5、试述关系模型的完整性规则。在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?
答:
实体完整性规则:若属性 A 是基本关系 R 的主属性,则属性 A不能取空值。
参照完整性规则:若属性(或属性组) F 是基本关系 R 的外码,它与基本关系S的主码Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为: 1)或者取空值; 2)或者等于S中某个元组的主码值。
用户定义的完整性是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。
在参照完整性中, 外部码属性的值可以为空, 它表示该属性的值尚未确定,但前提条件 是该外部码属性不是其所在关系的主属性。
6. 试述等值连接与自然连接的区别和联系。
答:
连接运算中有两种最为常用的连接,一种是等值连接,另一种是自然连接。 θ 为“ =” 的连接运算,称为等值连接。它是从关系 R 与 S的笛卡尔积中选取 A、 B 属性值相等的那些元组。
自然连接是一种特殊的等值连接, 它要求两个关系中进行比较的分量必须是相同的属性 组,并且在结果中把重复的属性列去掉。
7、关系代数的基本运算有哪些?如何用这些基本运算来表示其他运算?
答:
并、差、笛卡尔积、投影和选择5种运算为基本的运算。其他三种运算,即交、链接和除,均可以用这5种运算来表达。
(1)交(∩)
R∩S ≡ R-(R-S) ≡ S-(S-R)
(2)自然连接(⋈)
R⋈S ≡ π(R∪S)(σpredicate(R x S))
(3)θ连接(⋈AθB,也叫等值连接)
R⋈AθBS ≡ σ(R.AθS.B)(R×S)
(4)除(÷)
设R的属性集为{X, Y},S的属性集为{Y}
R÷S ≡ π(X)(R) - π(X)((T×S)-R)
第四章:
1.解释下列术语
A. 基本表:实际存放数据的表
B.视图: 视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,数据库中只存放视
图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中.
C.行列子集视图:若一个视图是从单个表中导出,并且只是去掉了基本表的某些行和某些列,但保留了主码,则这类视图称为行列子集视图。
D.派生表:如果子查询出现在 FROM 子句中,相当于该子查询的结果作为一个临时
的表,也称派生表。
E.嵌套查询:在 SQL 语言中,一个 SELECT-FROM-WHERE 语句称为一个查询块。将一个查询块嵌套在另一个查询块的 WHERE 子句或 WHERE 短语的条件中的查询称为嵌套查询
F.相关嵌套查询:如果嵌套查询中子查询的条件与父查询相关,称为相关子查询
G.分组查询:使用GROUP BY 子句将查询结果按照分组表达式中的值进行分组,分组表达式的值
相同的记录为同一组,通常会在分组中进行统计运算,这类的查询叫分组查询。
H.索引:在数据库中,索引是对数据库表中一列或多列的值进行排序的一种数据结构,建立索引是加快查询速度的有效手段。
I.聚簇索引:在聚簇索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一 个聚簇索引。
J.视图消解:从数据字典中取出视图的定义,把定义中的子查询和用户查询结合起来,转换成等价的对基本表的查询,然后再执行修正了的查询。这一转换过程称为视图的消解。
K.连接查询:若一个查询同时涉及两个以上的表,则称为连接查询。连接查询是关系数据库中最主要的查询,包括普通连接查询、自身连接查询、外连接查询和多表连接查询等
L.外连接查询:外连接包括左外连接、右外连接或全外连接,左外连接的结果集包括连接左表的所有行,而不仅仅是连接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列均为空值。同理右外连接保证连接的右边所有记录行出现在结果集中。
2.什么是 DDL、DML 和 DCL,它们有何功能和用途?
答:DDL 数据定义语言,主要由是create, alter ,drop等语句组成
DML数据操作语言,由Insert,update,delete,select等语句组成
DCL数据控制语句,由grant,revoke等语句组成。
3. 一个查询语句由几个子句组成?各个子句的作用和使用场景是什么?
答:SELECT 语句中共包含 5 个子句:SELECT 子句、FROM 子句、WHERE 子句、GROUP BY
子句和 ORDER BY 子句。各子句的功能如下:
(1)SELECT 子句包含可选关键字 DISTINCT 和 ALL。在需要过滤查询结果中的重复行
时,使用关键字 DISTINCT;在需要返回所有查询结果记录时使用 ALL,默认 ALL 查询返回
所有的结果记录。
(2)FROM 子句包含一个或多个基本表、视图或者派生表(子查询)。
(3)WHERE 子句列出检索的条件,用于筛选符合要求的记录。如果没有 WHERE 子句,
代表所有目标表中的所有记录都满足条件。
(4)GROUP BY 子句用于将查询结果按照分组表达式中的值进行分组,分组表达式的值
相同的记录为同一组,通常会在分组中进行统计运算。如果 GROUP BY 子句带有 HAVING
子句,则只有满足指定条件的组才会输出。
(5)ORDER BY 子句接受 SELECT 子句的输出,对查询的结果进行排序。ASC 关键字
代表升序,DESC 关键字代表降序,默认为升序。排序表达式根据排序表达式的值进行升序
或者降序排列
4. Insert、Update、Delete 语句的语法各由几个子句组成?
答:Insert主要由三部分组成 Insert into <表名> 插入的列的列表和值列表values()组成。
UPDATE 语句主要包括 3 个部分:要修改的表名;修改的列和对应的新值;选择需要更
新的记录的条件。
Delete 语句主要包括 2 个部分:要的删除记录的表名;选择需要删除的记录的条件。
5.比较 B+树索引、哈希索引、位图索引及各自适用的条件。
答:哈希索引适用于等值查询;位图索引的使用情况比较局限,适合值的类型很少并且需要复合查询的字段;B+树索引适用于范围查询和单值查询,是最常用的索引,一般情况下“索引”指的是 B+树索引。
6.试述视图的优点。
答:(1)提供数据的逻辑独立性。视图作为虚表,它的定义实际上是外模式到模式的映像。
当数据的模式发生变化时,可以通过仅修改视图的定义(即外模式\模式映像)来保持数据库
的外模式不变,从而实现数据的逻辑独立性。
(2)简化用户操作。视图不仅可以简化用户对数据的理解,也可以简化它们的操作。那
些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定都全部的
条件。
(3)提供数据的安全性保护。视图机制还能够为数据提供一定的安全保护功能。
1.什么是数据库安全?它与操作系统安全性有什么关系?
答:数据库安全性是指保护数据库以防止不合法的使用造成的数据泄露、更改或破坏。
安全性问题不是数据库系统所独有的,它与计算机系统的安全性紧密联系、相互支持。
2.数据库用户权限中,针对数据的权限有哪些?
答:针对数据本身的权限主要有:
(1)SELECT:允许用户读取表和视图中的数据。
(2)INSERT:允许用户在表和视图中插入数据。
(3)UPDATE:允许用户修改表或视图中的数据,可能只允许修改某一个属性。
(4)DELETE:允许用户删除表和视图中的数据。
3.保证数据库安全性的措施有哪些?
答:保证数据库安全性的措施主要有:用户管理、存取控制、视图机制、数据加密、审计等。
4.什么是数据库的存取控制机制?主要包括哪几种?
答:存取控制机制是数据库安全性的重要机制,主要内容是为不同用户规定对不同数据对象的不同存取权限,限制用户的操作不会超过已定义好的权限范围。存取控制机制主要包括两方面功能:
(1)定义功能。数据库管理系统提供适当的语言定义用户的权限,将这些定义编译后存
放在数据目录中,被称为安全规则或授权规则。
(2)检查功能。用户发出存取数据库的操作请求后,数据库管理系统检查该用户是否具
有执行该操作的权限,若有,则执行;若没有,则操作被拒绝。
主要包括自主存取控制和强制存取控制:
(1)自主存取控制(Discretionary Access Control,DAC)。自主存取控制非常灵活,用户对不同的数据对象有不同的存取权限,不同用户对同一数据对象也有不同的权限,且用户
还可以将其拥有的存取权限授权给其他用户。目前,大型数据库管理系统几乎都支持自主存
取控制。
(2)强制存取控制(Mandatory Sccess Control,MAC) 。在强制存取控制方法中,每个数据对象被标以一定的密级,每一个用户也被授予一个级别的许可证。对于任意一个数据对象,只有具有合法许可证的用户才可以对它进行存取。 这种方法适用于对数据库安全性要求较高,且对数据有严格而固定的密级分类的部门,如军事部门和政府部门等。
5.试述数据库安全领域中的审计功能。
答:审计功能就是一种事后监视措施,它将用户对数据库的所有操作自动记录下来,存放在审计日志中。数据库管理员可以通过对审计跟踪信息进行分析,发现对数据库的非法操作,进而找出非法存取数据的人、时间和内容等。审计一般分为用户级审计和系统级审计,前者是任何用户都可以设置的审计,主要针对用户自己创建的表和视图进行审计;后者只针对数据库管理员设置,用以监测成功或失败的登录及各种操作。
第六章:
1. 什么是数据库的完整性?
答:数据库完整性是指数据库中存放的数据的正确性和相容性。数据的正确性是指数据是符
合现实世界语义的、反映当前实际状况的;数据的相容性是指数据库同一对象在不同关系表
中的数据是符合逻辑的。
2. 数据库系统的完整性控制机制包括哪几种?都具有什么功能?
答:
实体完整性:检查记录中的主键值是否唯一,检查主键的各个属性是否为空
参照完整性:利用外键的将两个表中的相应元组联系起来。对被参照表和参照表进行增加、删除和修改操作时都有可能破坏参照完整性,必须进行检查以保证这两个表的相容性.
用户自定义完整性:当往表中插入元组或修改元组的值时,关系数据库管理系统会自动检查定义的约束条件是否被满足,如果不满足则操作拒绝执行。包括非空约束(NOT NULL)、唯一值约束(UNIQUE)、默认值约束(DEFAULT)和 CHECK 约束。
3.在关系数据库系统中,当操作违反实体完整性、参照完整性和用户定义完整性约束条
件时,该如何进行处理?
答:数据库管理系统若发现用户的操作违反了完整性约束条件将采取一定的动作,如拒绝(NO ACTION)执行该操作或级联(CASCADE)删除修改,设置为空值等方法以保证数据的完整性
4.什么是触发器?触发器有什么作用?
答:触发器是一种特殊的对象,其特殊性在于不需要用户调用执行,而是在用户对表中的数
据进行 UPDATE、INSERT 或 DELETE 操作时自动触发执行。触发器通常用于保证业务规则和数据完整性,其主要优点是用户可以用编程的方法来实现复杂的处理逻辑和商业规则,增
强了数据完整性约束的功能。
第7章
1、解释下列名词:
函数依赖、部分函数依赖、完全函数依赖、传递函数依赖、侯选码、主码、1NF、2NF、3NF、BCNF、多值依赖、4NF、最小函数依赖集。
答:
函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元组,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。非平凡的函数依赖:X→ Y ,但 Y 不是 X 的子集,则称 X→ Y 是非平凡的函数依赖。若不特别声明,总是讨论非平凡的函数依赖。
在关系模式R(U)中,如果X→Y,并且对于X的任何一个真子集X′,都有X′\→ Y,则称Y完全函数依赖(Full Functional Dependency)于X,记作X —→F Y。若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖(Partial Functional Dependency)于X,记作X —→P Y。
在关系模式R(U)中,如果X→Y,Y→Z,且Y\→X,则称Z传递函数依赖(Transitive Functional Dependency)于X,记作Z—→T X。
如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则 R 满足第一范式(First Normal Form),记作1NF。
若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。R满足第二范式(Second Normal Form),记作2NF。
关系模式R(U,F)中若不存在这样的码X,属性组Y及非主属性Z(ZY)使得X→Y,Y→Z成立,Y→X,则称R(U,F)3NF。则R满足第三范式(Third Normal Form),记作3NF。
关系系模式R∈1NF,对任何非平凡的函数依赖X→Y(Y\ÍX),X均包含码,则R∈BCNF。
多值依赖:设有关系模式R(U),U是属性全集,X、Y、Z是U的子集,且Z = U-X-Y。如果对R(U)的任一关系r,给定一对(X, Z)值,都有一组Y值与之对应,这组Y值仅仅决定于X值而与Z值无关,则称Y多值依赖于X,或X多值决定Y,记作X→→Y。
第四范式:如果关系模式 R∈1NF,对于R 的每个非平凡的多值依赖X→→Y(Y 不包含在X 中),X 含有码,则R 满足第四范式(Forth Normal Form),记作R∈4NF。
如果函数依赖集F满足下列条件,则称F为最小函数依赖集或最小覆盖。
① F中的任何一个函数依赖的右部仅含有一个属性;
② F中不存在这样一个函数依赖X→A,使得F与F-{X→A}等价;
③ F中不存在这样一个函数依赖X→A,X有真子集Z使得F-{X→A}∪{Z→A}与F等价。
2、已知关系模式R(U,F),其中U={A,B,C,D,E},F={AB→C,B→D,C→E,EC→B,AC→B },求(AB)F+。
答:
(1) 令X={AB},X(0)=AB
(2)在F中寻找尚未使用过的左边是AB的子集的函数依赖,结果是: B→D所以 X(1)=X(0)D=ABCD, 显然 X(1)≠X(0).
(3) 在F中寻找尚未使用过的左边是ABCD的子集的函数依赖, 结果是: C→E;所以 X(2)=X(1)I=ABCDE。虽然X(2)≠X(1),但F中寻找尚未使用过函数依赖的左边已经没有X(2)的子集,所以不必再计算下去,即(AB)+= ABCDE
3.关系模式R(A,B,C,D),函数依赖集F={A→C,C→A,B→AC,D→AC,BD→A}。
1) 求出R的候选码;
2) 求出F的最小函数依赖集;
3) 将R分解为3NF,使其既具有无损连接性又具有函数依赖保持性
答:
1) R的候选码为BD;
2) 将F中的函数依赖都分解为右部为单属性的函数依赖.;
F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A}
3) 去掉F中冗余的函数依赖.
判断A→C是否冗余.
设:G1={C→A,B→A,B→C,D→A,D→C,BD→A},得(A)G1+=A
∵C不属于(A)G1+ ∴ A→C不冗余
判断C→A是否冗余.
设:G2={A→C,B→A,B→C,D→A,D→C,BD→A},得(A)G2+=C
∵A不属于(C)G1+ ∴ C→A不冗余
判断B→A是否冗余.
设:G3={A→C,C→A,B→C,D→A,D→C,BD→A},得(B)G3+=BCA
∵A属于(B)G3+ ∴ B→A冗余
判断B→C是否冗余.
设:G4={A→C,C→A,D→A,D→C,BD→A},得(B)G4+=B
∵C不属于(B)G4+ ∴ B→C不冗余
判断D→A是否冗余.
设:G5={A→C,C→A,B→C,D→C,BD→A},得(D)G5+=DCA
∵A不属于(D)G5+ ∴ D→A冗余
判断A→C是否冗余.
设:G6={A→C,C→A,B→C,BD→A},得(D)G6+=D
∵C不属于(D)G6+ ∴ D→C不冗余
判断BD→A是否冗余.
设:G7={A→C,C→A,B→C,D→C},得(BD)G7+=BDCA
∵A不属于(BD)G7+ ∴ BD→A冗余
F={A→C,C→A,B→C,D→C}
由于各函数依赖左部都为单属性,故:
Fm={A→C,C→A,B→C,D→C}
(3)τ={AC,BC,DC,BD}
4、指出下列关系模式是第几范式,并说明理由。
① R ( X,Y,Z ) F = { XY→Z }。
答:XY→Z是完全函数依赖,XY是码,是BCNF
② R ( X,Y,Z ) F = { Y→Z,XZ→Y }。
答:是3NF。候选关键字为XY和XZ,所有属性都是主属性,不存在非主属性对候选关键字的传递依抄赖。
③ R ( X,Y,Z ) F = { Y→Z,Y→X,X→YZ }。
答:是BCNF。候选关键字为X和Y,所有属性都是主属性,决定方都有候选关键字。
④ R ( X,Y,Z ) F = { X→Y,Y→Z }。
答:是2NF。候选关键字为X,X→Y,Y→Z是传递函数依赖。
5、现要建立关于系、学生、班级、学会等信息的一个关系数据库。语义为:一个系有若干专业,每个专业每年只招一个班,每个班有若干学生,一个系的学生住在同一个宿舍区,每个学生可参加若干学会,每个学会有若干学生。
描述学生的属性有:学号、姓名、出生日期、系名、班号、宿舍区;
描述班级的属性有:班号、专业名、系名、人数、入校年份;
描述系的属性有:系名、系号、系办公室地点、人数;
描述学会的属性有:学会名、成立年份、地点、人数、学生参加某会有一个入会年份。
⑴ 请写出关系模式。
⑵ 写出每个关系模式的最小函数依赖集,指出是否存在传递依赖,在函数依赖左部是多属性的情况下,讨论函数依赖是完全依赖,还是部分依赖。
⑶ 指出各个关系模式的候选关键字、外部关键字,有没有全关键字。
答:
(1)关系模式如下:
学生: S(Sno, Sname, Sbirth, Dept,Class, Rno)
班级: C(Class,Pname, Dept, Cnum, Cyear)
系: D(Dept , Dno, Office , Dnum)
学会: M(Mname , Myear , Maddr , Mnum)
(2)每个关系模式的最小函数依赖集如下:
A、学生 S (Sno,Sname, Sbirth ,Dept , Class, Rno) 的最小函数依赖集如 下:Sno→ Sname, Sno→ Sbirth, Sno→ Class,Class→Dept, DEPT→ Rno
传递依赖如下:
由于 Sno→Dept,而 Dept→ Sno , Dept→Rno(宿舍区)
所以 Sno 与 Rno 之间存在着传递函数依赖。
由于 Class→ Dept,Dept → Class,Dept→ Rno
所以 Class 与 Rno 之间存在着传递函数依赖。
由于 Sno→Class,Class→ Sno,Class→Dept
所以 Sno 与 Dept 之间存在着传递函数依赖。
B、班级 C(Class, Pname, Dept, Cnum, Cyear)的最小函数依赖集如下 : Class→Pname, Class→ Cnum, Class→ Cyear,Pname→ Dept.
由于 Class→ Pname,Pname→ Class, Pname→ Dept
所以 C1ass 与 Dept 之间存在着传递函数依赖。
C、系 D(Dept ,Dno ,Office , Dnum) 的最小函数依赖集如下:
Dept→ Dno, Dno→ Dept, Dno→ Office , Dno→ Dnum
根据上述函数依赖可知, Dept 与 Office , Dept 与 Dnum 之间不存在传递依赖。 D、学会 M(Mname , Myear , Maddr , Mnum) 的最小函数依赖集如下: Mname→Myear , Mname→ Maddr , Mname→ Mnum
该模式不存在传递依赖。
(3)各关系模式的候选码、外部码,全码如下:
A、学生 S 候选码: Sno;外部码: Dept、 Class;无全码
B、班级 C 候选码: Class;外部码: Dept;无全码
C、系 D 候选码: Dept 或 Dno;无外部码;无全码
D、学会 M 候选码: Mname;无外部码;无全码
1.简述数据库设计过程。
答:一般来说,按照规范化的设计方法,数据库设计可以划分为 5 个阶段:
需求分析阶段:准确收集用户信息需求和处理需求,对收集的结果进行整理和分析,形
成需求文档。需求分析是整个设计活动的基础,也是最困难和最耗时的一步。如果需求分析
不准确或不充分,可能导致整个数据库设计的返工。
概念结构设计阶段:是整个数据库设计的关键,它通过对用户需求进行综合、归纳和抽
象,形成一个独立于具体数据库管理系统的概念模型。
逻辑结构设计阶段:将概念结构转换为某个数据库管理系统所支持的数据库模型,并对其进行优化。
物理结构设计阶段:为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结
构和存取方法) 。
实施、运行和维护阶段:使用数据库管理系统提供的数据定义语言建立数据模式,并将
实际数据载入数据库,建立真正的数据库;在数据库上建立应用系统,并经过测试、试运行
后正式投入使用。维护阶段是对运行中的数据进行评价、调整和修改。
2.需求分析阶段的设计目标是什么?调查的内容是什么?
答:需求分析阶段的设计目标是通过详细调查,获取原有系统(或手工作业)的工作过程和业务逻辑,明确用户的各种需求,确定新系统的功能。在用户需求分析过程中,除了充分考虑现有系统的需求外,还需要充分考虑系统将来可能的扩充和修改,从而让系统具有可扩充性。
调查的重点是数据和功能,通过调查、收集和分析,获取用户对数据库的如下要求:
(1)信息要求:指用户需要从数据库中获得的内容与性质。由信息可以导出数据要求,
即数据库需要存储哪些数据。
(2)处理要求:指用户要完成的数据处理功能,对处理性能的要求。
(3)安全性与完整性要求。
3.数据字典的内容和作用是什么?
答:数据字典包括数据项、数据结构、数据流、数据存储和处理过程几部分。其中数据项是
数据的最小组成单位,若干数据项可以组成一个数据结构。数据字典通过对数据项和数据结
构的定义来描述数据流、数据存储的逻辑内容。
数据字典是进行详细的数据收集和数据分析所获得的主要成果。它是关于数据库中数据
的描述,在数据库设计中占有重要地位。
4.什么是数据库的概念结构?简述其特点及设计步骤。
答:数据的概念结构是指将在需求分析阶段所得到的应用需求抽象为信息世界的结构,以便更好、更准确地用某一数据库管理系统实现这些需求。
概念模型的主要特点是:
(1)能真实、充分反映现实世界、包括事务和事务之间的联系,能满足用户对数据库的
处理要求,是现实世界的一个真实模型。
(2)易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设
计的关键。
(3)易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。
(4)易于向关系模型、层次模型、网状模型等转换。
设计步骤:
(1)第一步就是对需求分析阶段收到的数据进行分类、组织,确定实体、实体的属性、实体之间的联系类型,形成 E-R 图;
(2)第二步将各子系统的分 E-R 模型图,然后将它们集成起来,得到全局E-R 图。E-R 的集成一般需要为两步:
(a)合并。解决各分 E-R 图之间的冲突,将分 E-R 图合并起来生成初步 E-R 图。
(b)修改和重构。消除不必要的冗余,生成基本 E-R 图。
5.什么是数据库的逻辑结构设计?简述其设计步骤。
答:数据库的逻辑结构设计是指把概念结构设计阶段设计好的 E-R 模型转换为与选用数据库管理系统所支持的数据模型相符合的逻辑结构。
以关系模型为例,逻辑结构设计的主要步骤包括:
(1)将实体型和实体间的联系转换成关系模式;
(2)根据应用需要适当修改、调整数据模型的结构,这就是模型的优化;
(3)根据局部应用需求,结合具体关系数据库管理系统的特点设计用户的外模式(即视图)。
6.简述数据库物理设计的内容和步骤。
答:数据库物理设计的内容是为一个给定的逻辑结构选择一个最适合应用要求的物理结构。
数据库的物理结构设计包括两个步骤:
(1)确定数据库的物理结构,在关系数据库中主要是存储结构和存储方法。
(2)对物理结构进行评价,评价的重点是时间和空间效率。
1.什么是 T-SQL?它与 SQL 是什么关系?
答:结构化查询语言(Structured Query Language,SQL)因其功能丰富,面向集合的操作、使用方式灵活、语言简洁易学等特点,已成为关系数据库管理系统(Relational Database Management System,RDBMS)的主流查询语言和行业标准。但各数据库厂商为了更好地完善其 RDBMS 产品,都对 SQL 标准做出了不
展开阅读全文