p保持函数依赖的3NF范式分解:算法1
⑴对R<U,F>中的F进行最小化处理
⑶若存在X->A</F, 有XA=U, 则r={R}, 终止算法
⑷否则,对于具有相同左部的函数依赖分成一组,假设有K组,记为F1,F2,…,Fk, Fi的所有属性构成Ui, 若UiÍUj(i¹j), 则去掉Ui,
⑸这样得到的一个分解r={R1<U1,F1>, R2<U2,F2>, …, Rk<Uk,Fk>}构成了R<U,F>的一个保持函数依赖的分解
p具有无损连接性和保持函数依赖的3NF范式分解:算法2
⑴设X是关系模式R<U,F>的关键字
⑵通过算法1得到一个分解r
⑶t= r U {R<X, Fx>}
⑷若存在一个Uj, 有XÍUj, 则将R<X, Fx>从t中去掉
⑸t是一个具有无损连接和保持函数依赖的3NF分解
p具有无损连接性的BCNF范式分解:算法3
⑴r={R<U,F>}
⑵检查r中的每个关系模式是否为BCNF,若是算法终止
⑶设r中Ri<Ui,Fi>不属于BCNF, 那么必存在X->A<Fi+(A</X), X不是Ri的关键字,对Ri进行分解:s={S1,S2}, Us1=XA, Us2=Ui-{XA}, 以代替Ri<Ui,Fi>, 返回第二步
你这题的结果
关键字A,CF
3NF
R1(BGC) R2(ABGD) R3(ACF) R4(ACG) R5(ADEF)R6(ACB)
BCNF
上面 R2(ABGD) 中有 ABG->D,A->G 所以 R22(AG),R21(ABD)
R3(ACF)中 CF->A,A->C,所以R31(AC),R32(CF)
最终结果
R1(BGC) R22(AG),R21(ABD)R31(AC),R32(CF)R4(ACG) R5(ADEF)R6(ACB)
以上结果我也拿不太准,只供参考
(1)R的候选码为BD (2) ①将F中的函数依赖都分解为右部为单属性的函数依赖 F={A→C,C→A,B→A,B→C,D→A,D→C,BD→A} ②去掉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不冗余
判别的方法并不麻烦
画张表 慢慢的按要求推就行了。
例CS->G C->T TH->O HI->C HS->I
{R1(CSG),R2(CT) R3(THI),R4(HIC),R5(HSI)}
构表(下面可能会出现变形)
表1
C T H I S G
R1(CSG) a1 b12 b13 b14 a5 a6
R2(CT) a1 a2 b23 b24 b25 b26
R3(THI) b31 a2 a3 a4 b35 b36
R4(HIC) a1 b42 a3 a4 b45 b46
R5(HSI) b51 b52 a3 a4 a5 b56
(对于不会画表的。这里介绍一下。左别有的例如R1(CSG)则c下面为a1,没有的t下面就为b+他的行列数即b12)
根据C->T 则1 2 4 行中的c全为a1 然后将 1 2 4 行的T全部转成a2,(前题是T的124行中到少有一个为a2的。不然全转成最上面一行即第一行的)
转后成表2
C T H I S G
R1(CSG) a1 a2 b13 b14 a5 a6
R2(CT) a1 a2 b23 b24 b25 b26
R3(THI) b31 a2 a3 a4 b35 b36
R4(HIC) a1 a2 a3 a4 b45 b46
R5(HSI) b51 b52 a3 a4 a5 b56
HI->C 则三四五行的HI一样。即将C的3,4,5行转成a1(再多说一次,这里C的3,4,5行中有a1才可以转成a1,没有就照最上面一行(3)转)
转后成表3
C T H I S G
R1(CSG) a1 a2 b13 b14 a5 a6
R2(CT) a1 a2 b23 b24 b25 b26
R3(THI) a1 a2 a3 a4 b35 b36
R4(HIC) a1 a2 a3 a4 b45 b46
R5(HSI) a1 b52 a3 a4 a5 b56
HS中没有相等的,跳过
再CS->G 发现15行相等
则G的15行变为a6
C T H I S G
R1(CSG) a1 a2 b13 b14 a5 a6
R2(CT) a1 a2 b23 b24 b25 b26
R3(THI) a1 a2 a3 a4 b35 b36
R4(HIC) a1 a2 a3 a4 b45 b46
R5(HSI) a1 b52 a3 a4 a5 a6
再C->T 最T全变为a2
C T H I S G
R1(CSG) a1 a2 b13 b14 a5 a6
R2(CT) a1 a2 b23 b24 b25 b26
R3(THI) a1 a2 a3 a4 b35 b36
R4(HIC) a1 a2 a3 a4 b45 b46
R5(HSI) a1 a2 a3 a4 a5 a6
到这里发现最后一行变为了a1 a2 a3 a4 a5 a6,则验证了这个为无损链接的。
题目怎么错了,真逗,不懂就瞎说
这是数据库比较常见的无损分解和判断是否函数依赖
答案是不是无损分解,不保持函数依赖
大家可以百度一下
教你如何判断无损连接和函数依赖
轻松学会哈哈
2009年9月全国计算机等级考试三级笔试试卷
数据库技术
(考试时间120分钟,满分100分)
一、选择题(每题1分,共60分)
(1)数字信号处理器由于在其内部设计了能够高速处理多路数字信号的电路,可以用在需要快速处理大量复杂信息的领域。下列哪一个设备不需要数字信号处理器?
A) 雷达
B) 彩色电视机
C) 数字音视频设备
D) 数字图像处理设备
(2)八进制数1507转换成十进制数是多少?
A) 838
B) 839
C) 840
D) 841
(3)数据包要求从源主机出发,最终到目的主机。下列哪一个设备可为数据包选择输出路径,将它从一个网络传送到另一个网络?
A) 通信线路
B) 路由器
C) WWW服务器
D) 调制解调器
(4)当电子邮件软件从邮件服务器读取邮件时,可以使用下列哪一个(些)协议?
Ⅰ简单邮件传输协议SMTP
Ⅱ邮局协议POP3
Ⅲ交互式邮件存取协议IMAP
A) 仅Ⅰ
B) 仅Ⅱ
C) 仅Ⅱ和Ⅲ
C) 仅Ⅰ和Ⅲ
(5)在下载的普通程序中隐含了一些非法功能的代码,用于窃取用户私密信息或执行其他恶意程序,这种恶意软件的攻击方式称为
A) 特洛伊木马
B) 后门陷阱
C) 逻辑炸d
D) 僵尸网络
(6)下列关于ADSL技术的叙述中,哪些是正确的?
Ⅰ它是在普通电话线上的一种心得高速宽带技术
Ⅱ它为用户提供上、下行对称的传输速率
ⅢADSL宽带接入方式可用于网络互联业务
A) 仅Ⅰ和Ⅱ
B) 仅Ⅱ和Ⅲ
C) 仅Ⅰ和Ⅲ
D) 全部
(7)数据结构概念一般包括三个方面的内容,它们是
A) 数据的逻辑结构、数据的传输结构、数据的分析挖掘
B) 数据的逻辑结构、数据的存储结构、数据的运算
C) 数据的存储结构、数据的展示方式、数据的运算
D) 数据的传输结构、护具的展示方式、数据的分析挖掘
(8)下列关于链式存储结构的叙述中,哪些是不正确的?
Ⅰ逻辑上相邻的结点物理上不比邻接
Ⅱ每个结点都包含好一个指针域
Ⅲ用指针来提现数据元素之间逻辑上的联系
Ⅳ结点中的指针都不能为空
Ⅴ可以通过计算直接确定第i个结点的存储地址
A) 仅Ⅰ、Ⅱ和Ⅲ
B) 仅Ⅰ、Ⅲ和Ⅳ
C) 仅Ⅱ、Ⅲ和Ⅴ
D) 仅Ⅱ、Ⅳ和Ⅴ
(9)栈结构不适用与下列哪一种应用?
A) 表达式求值
B) 树的层次次序周游算法的实现
C) 二叉树对称序周游算法的实现
D) 快速排序算法的实现
(10)下列哪一个不是从列的基本运算?
A) 从队尾插入一个新元素
B) 判断一个队列是否为空
C) 从队列中删除第1个元素
D) 读取队头元素的值
(11)俺行有限顺序存储下上角矩阵
(12)在包含1000个元素的线性表中实现如下各运算,哪一个所需的执行时间最短?
A) 线性表按顺序方式存储,查找关键码值为900的结点
B) 线性表按链接方式存储,查找关键码值为900的结点
C) 线性表按顺序方式存储,查找线性表中第900个结点
D) 线性表按链接方式存储,查找线性表中第900个结点
(13)下列关于二叉树的叙述中,哪一条是正确的?
A) 二叉树的结点的有限集合,这个集合不能为空集
B) 二叉树是树的特殊情况,即每个结点的子树个数都不超过2
C) 二叉树的每个非叶结点都恰有两颗非空子树
D) 每一棵二叉树都能唯一地转换到它所对应的树(林)
(14)设有字符序列(Q、H、C、Y、P、A、M、S、R、D、F、X),则新序列(H、C、Q、P、A、M、S、R、D、F、X、Y)是下列哪一种排序算法一趟扫描的结果?
A) 起泡排序
B) 初始步长为4的希尔排序
C) 二路归并排序
D) 堆排序
(15)对n个记录的文件进行快速排序,平均执行时间为
A) O(log2n)
B) O(n)
C) O(olog2n)
D) O(n2)
(16)下列哪一个不是网络 *** 作系统应该支持的功能?
A) 网络管理
B) 网络通信
C) 资源共享
D) 负载均衡
(17)下列指令中,哪一个不是特权指令?
A) 访管指令
B) 启动设备指令
C) 设置时钟指令
D) 停机指令
(18)一个进程从运行态转换为就绪态的原因是
A) 该进程执行时出错
B) 该进程等待某个资源
C) 该进程用完分配的时间片
D) 该进程等待的资源变为可用
(19)读者写者问题的解决方案如下所示:
(20)下列哪一项不是存储管理的任务?
A) 内存共享
B) 存储保护
C) 地址映射
D) 指针定位
(21)下列关于工作集模型的叙述中,哪一条是不正确的?
A) 每个进程有一个工作集
B) 工作集大小与缺页率无关
C) 工作集大小是可以调整的
D) 工作集模型可以解决系统的颠簸(抖动)问题
(22)下列关于文件结构的叙述中,哪一(些)条是正确的?
Ⅰ源程序、目标代码等文件属于流式文件
Ⅱ每个记录包含一个记录键和其他属性
Ⅲ记录式文件中的记录都是定长的
A) 仅Ⅰ
B) 仅Ⅰ和Ⅱ
C) 仅Ⅱ和Ⅲ
D) 仅Ⅰ和Ⅲ
(23)如果某一个文件的物理结构采用的是UNIX的三级索引结构,如图所示。假设一个物理块可以存放128个块号,要查找块号为15000的物理块,需要用到哪一级索引表?
A) 主索引表
B) 一级索引表
C) 二级索引表
D) 三级索引表
(24)磁盘驱动调度中的移臂调度的目标是减少
A) 磁头寻到时间
B) 旋转延迟时间
C) 数据传输时间
D) 中断处理时间
(25)以树形结构表示实体之间联系的数据模型是
A) 层次模型
B) 网状模型
C) 关系模型
D) 面向对象模型
(26)在一个数据库中,模式与内模式的映像个数是
A) 1个
B) 与用户个数相同
C) 有设置的系统参数决定
D) 任意多个
(27)在嵌入式SQL中,与游标相关的有四个语句,它们中哪一个执行游标定义中的SELECT语句?
A) DECLARE
B) OPEN
C) FETCH
D) CLOSE
(28)信息是有价值的,信息的价值主要与下列哪些因素有关?
Ⅰ准确性
Ⅱ及时性
Ⅲ完整性
Ⅳ可靠性
Ⅴ可移植性
A) 仅Ⅰ、Ⅱ和Ⅲ
B) 仅Ⅰ、Ⅱ、Ⅲ和Ⅳ
C) 仅Ⅱ、Ⅲ、Ⅳ和Ⅴ
D) 都相关
(29)设有关系SC(SNO,CNO,GRADE),其主码是(SNO,CNO)。遵照实体完整性规则
A) 只有SNO不能取空值
B) 只有CNO不能取空值
C) 只有GRADE不能空值
D) SNO与CNO都不能取空值
(30)如果对关系emp(eno,ename,salray)成功执行下面的SQL语句:
CREATE CLUSTER INDEX name_index ON emp (salary)
对此结果的正确描述是
A) 在emp表上按salary升序创建了一个唯一索引
B) 在emp表上按salary降序创建了一个唯一索引
C) 在emp表上按salary升序创建了一个聚簇索引
D) 在emp表上按salary降序创建了一个聚簇索引
(31)设关系R和S的元数分别是r和s,且R有n个元组,S有m个元祖。执行关系R和S的笛卡尔积,记为T=R×S,则
A) T的元数是(r×s),且有(n+m)个元祖
B) T的元数是(r×s),且有(n×m)个元祖
C) T的元数是(r+s),且有(n+m)个元祖
D) T的元数是(r+s),且有(n×m)个元祖
(32)设课程和教师是两个实体型,如果每一门课程可以由若干位教师讲授,每一位教师可以讲授若干门课程,则课程与教师这两个实体型之间的联系是
A) 一对一
B) 一对多
C) 多对多
D) 不确定
(33)在关系代数中,下列哪一个等式是不确定的?
(34)在SQL语言中,一个基本表的定义一旦被删除,则与此表相关的下列内容中哪一个(些)也自动被删除或失效?
Ⅰ此表中的数据
Ⅱ此表上建立的索引
Ⅲ此表上简历的视图
A) 仅Ⅰ
B) 仅Ⅱ
C) 仅Ⅲ
D) 全部
第(35)-(36)题基于“学生-选课-课程”数据库中的三个关系:
S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)它们的主键用下划线标出。
(35)定义一个反映学生姓名及他的平均成绩的视图将使用关系
A) S和C
B) SC和C
C) S和SC
D) S、SC和C
(36)“查询选修了3门以上课程的学生的学生号”,正确的SQL语句是
A) SELECT S# FROM SC GEOUPBY S# WHERE COUN()〉3
B) SELECT S# FROM SC GEOUPBY S# HAVING COUN()〉3
C) SELECT S# FROM SC ORDER S# HAVING COUN()〉3
D) SELECT S# FROM SC ORDER S# WHERE COUN()〉3
(37)下列哪一类视图上可以进行插入、删除和更新 *** 作
A) 带表达式的视图
B) 连接视图
C) 行列子集视图
D) 分组视图
(38)下列关于E-R图的叙述中,哪一条是不正确的?
A) 实体型用矩形表示,属性用椭圆形表示,联系型用菱形表示
B) 实体型之间的联系可以分为1:1、1:n和m:n三类
C) 1:1联系是1:n联系的特例,1:n联系是m:n联系的特例
D) 实体型之间的联系只存在与两个实体型之间
(39)下列叙述中,哪些是SQL的功能特点?
Ⅰ集DDL、DML和DCL功能于一体
Ⅱ是高度非过程化语言
Ⅲ采用面向集合的 *** 作方式
Ⅳ具有自含式嵌入式两种灵活的使用方式
Ⅴ语言简介、易学易用、功能强
A) 仅Ⅰ、Ⅱ和Ⅲ
B) 仅Ⅱ、Ⅲ、Ⅳ和Ⅴ
C) 仅Ⅰ、Ⅳ和Ⅴ
D) 都是
(40)下面是SQL主要数据定义语句列表,其中哪一(些)行是正确的?
A) 仅“模式”行
B) 仅“基本表”行
C) 仅“视图”行和“索引”行
D) 所有行
(41)设关系R、S和T如下。关系T是关系R和S执行哪种 *** 作的结果?
A) 自然连接
B) 外部并
C) 半连接
D) 外连接
(42)在物理存储器层次结构中,下列哪一个存储设备是联机存储?
A) 高速缓存
B) 主存储器
C) 第二级存储器
D) 第三级存储器
(43)数据库中为了将大小不同的记录组织在同一个磁盘块中,常采用分槽的页结构。结构的块头中不包括
A) 块中记录的数目
B) 读取时需要的缓存大小
C) 块中空闲的末尾指针
D) 由包含记录位置和大小的条目组成的数组
(44)下列关于索引的叙述中,哪一条是不正确的?
A) 顺序索引能有效地支持点查询
B) 顺序索引能有效地支持范围查询
C) 散列索引能有效地支持点查询
D) 散列索引能有效地支持范围查询
(45)下列关于基于日志的故障恢复的叙述中,哪一条是不正确的?
A) 日志是日志记录的序列,它记录了数据库izhong的所有更新活动
B) 日志记录中包括事务提交日志记录<Ti commit>
C) 利用更新日志记录中的改前值可以进行UNDO
D) 事务故障恢复只需要正向扫描日志文件
(46)下列哪一个不属于SQL2000服务器端提供的服务?
A) SQL服务器服务
B) SQL服务器代理
C) 查询分析器服务
D) 分布式事务协调服务
(47)下列哪些属于SQL Sercer 2000中常用的数据库对象
Ⅰ表
Ⅱ约束
Ⅲ规则
Ⅳ索引
Ⅴ数据类型
Ⅵ用户自定义函数
A) 仅Ⅰ、Ⅱ、Ⅲ和Ⅳ
B) 仅Ⅰ、Ⅳ、Ⅴ和Ⅵ
C) 仅Ⅰ、Ⅱ、Ⅳ和Ⅵ
D) 都是
(48)下列哪一个不属于Oracle实例?
A) 存储数据的集合
B) 系统全局区
C) 用户进程
D) Oracle
(49)Oracle引入了新的数据类型可以存储极大的对象。其中,BLOB的中文解释为
A) 二进制数据型大对象
B) 字符数据型大对象
C) 存储的数据库之外的只读型二进制数据文件
D) 固定宽度的多字节字符数据型大对象
(50)下列哪些条不属于数据库设计的任务?
Ⅰ数据库物理结构设计
Ⅱ数据库逻辑结构设计
Ⅲ数据库概念结构设计
Ⅳ数据库应用结构设计
Ⅴ数据库管理系统设计
A) 仅Ⅰ和Ⅱ
B) 仅Ⅱ和Ⅲ
C) 仅Ⅲ和Ⅳ
D) 仅Ⅳ和Ⅴ
(51)下列哪一条不是概念模型应具备的性质?
A) 有丰富的语义表达能力
B) 在计算机中实现的效率高
C) 易于向各种数据模型转换
D) 易于交流和理解
(52)下列关于函数依赖的叙述中,哪一条是不正确的?
(53)设有关系模式R(X、Y、Z),其中X、Y、Z均为属性或属性组。下列关于多值依赖的叙述中,哪一(些)条是正确的?
A) 仅Ⅱ
B) 仅Ⅲ
C) 仅Ⅰ和Ⅲ
D) 仅Ⅱ和Ⅳ
(54)若关系模式R中没有非主属性,则
A) R肯定属于2NF,但R不一定属于3NF
B) R肯定属于3NF,但R不一定属于BCNF
C) R肯定属于BCNF,但R不一定属于4NF
D) R肯定属于4NF
第(55)-(56)题基于一下描述:有关系模式P(A,B,C,D,E,F,G,,H,I,J),根据语义有如下函数依赖集:F={ABD→E,AB→G,B→F,→CJ,C→I,G→H}。
(55)关系模式P的码为
A) (A,B,C,G)
B) (A,B,D,I)
C) (A,C,D,G)
D) (A,B,C,D)
(56)现将关系模式P分解为两个关系模式P1(A,B,D,E,F,G,H)和P2(C,I,J)。这个分解
A) 不具有无损连接性,不保持函数依赖
B) 具有无损连接性,不保持函数依赖
C) 不具有无损连接性,保持函数依赖
D) 具有无损连接性且保持函数依赖
(57)下列关于以Web服务器为中心的浏览器/服务器模式的叙述中,哪一条是不正确的?
A) 与传统的客户机/服务器结构相比较,Web服务器负载过重
B) 与传统的客户机/服务器结构相比较,HTTP协议的效率低
C) 服务器扩展程序主要使用CGI和Web API两种编程接口编写
D) CGI在执行时动态加载到Web服务器进程内
(58)下列关于 Visual Studio 2008 的叙述中,哪一条是不正确的?
A) Visual Studio 2008 彻底解决了需要绑定一个特定版本的CLR(通用语言架构机制)的问题
B) Visual Studio 2008 实现了Dreamwaver 网页编辑的功能
C) Visual Studio 2008 对AJAX 和java script提供了更丰富的支持
D) Visual Studio 2008 允许编写使用LINQ的代码
(59)下列关于分布式数据库系统的叙述中,哪一条是不正确的?
A) 每一个节点是一个独立的数据库系统
B) 具有位置透明性、复制透明性和分片透明性等
C) 有关数据分片、分配和副本的信息存储在局部目录中
D) 对于并发控制和恢复,分布式DBMS环境中会出现大量的在集中式DBMS环境中碰不到的问题
(60)下列关于面向对象数据库和关系数据库系统的叙述中,哪一条是不正确的?
A) 面向对象数据库设计与关系数据库设计之间一个最主要的区别是如何处理联系
B) 面向对象数据库设计与关系数据库设计中,处理继承的方法是相同的
C) 在面向对象数据库中,通过使用继承构造来获得映射
D) 在面向对象数据库中,联系是通过使用联系特性或者包括相关对象的对象标识符的参照属性来处理的
二、填空题(每空2分,共40分)
(1)为了改变指令系统计算机指令过多的状态而设计的一种计算机系统结构称为精简指令系统计算机,其英文缩写为 1 。
(2)标准的URL由三部分组成:协议类型、 2 和路径/文件名。
(3)对线性表进行二分发检索,其前提条件是线性表以 3 方式存储,并且按关键码值排好序。
(4)霍夫曼算法是求具有最 4 带权外部路径长度的扩充二叉树的算法。
(5)m阶B树的根节点至多有 5 棵子数。
(6) 6 是 *** 作系统向系统用户提供的程序级服务,用户程序借助它可以向 *** 作系统提出各种服务请求。
(7)最著名的死锁避免算法是 7 算法。
(8)可以采用虚拟设备技术来提高独占设备的利用率,说采用的具体技术称为 8 技术。
(9)根据抽象的层面不同,数据模型可分为:概念模型、 9 层模型和物理层模型。
(10)关系数据模型的完整性约束主要包括:域完整性约束、实体完整性约束和 10 完整性约束三类。
(11)动态SQL语句是指在SQL程序编译时其中有些部分尚未确定,需要在程序的 11 过程中临时生成的SQL语句。
(12)在关系代数中,从两个关系的笛卡尔积中选取它们的属性或属性组间满足一定条件的元组得到新的关系 *** 作称为 12 。
(13)选择逻辑查询计划和选择物理查询计划的步骤称为查询 13 。
(14)多个事务在某个调度下的执行是正确的,是能保证数据库一致性的,当且仅当该调度是 14 的。
(15)Oracle针对Intrnet/Intranet的产品是Oracle 15 。
(16)抽象数据类型是一种用户定义的对象数据类型,它由对象的 16 及其相应的方法组成。
(17)若X→Y,且则称X→Y为 17 的函数依赖。
(18)如果关系模式R的规范化程度达到了4NF,则R的属性之间不存在非平凡且非 18 的多值依赖。
(19)一个多媒体数据库必须采用一些模型使其可以基于 19 来组织多媒体数据源,并为它们简历相应的索引。
(20)数据集市是一种更小、更集中的 20 ,他为公司提供了分析商业数据的一条廉价途径。
2009年9月全国计算机等级考试三级数据库笔试参考答案
一、选择题
(1)
B
(2)
B
(3)
B
(4)
C
(5)
A
(6)
C
(7)
B
(8)
D
(9)
B
(10)
C
(11)
D
(12)
C
(13)
D
(14)
A
(15)
C
(16)
D
(17)
A
(18)
C
(19)
B
(20)
D
(21)
B
(22)
B
(23)
C
(24)
A
(25)
A
(26)
A
(27)
B
(28)
B
(29)
D
(30)
C
(31)
D
(32)
C
(33)
A
(34)
D
(35)
C
(36)
B
(37)
C
(38)
D
(39)
D
(40)
B
(41)
D
(42)
C
(43)
B
(44)
D
(45)
D
(46)
C
(47)
D
(48)
A
(49)
A
(50)
D
(51)
B
(52)
C
(53)
D
(54)
B
(55)
D
(56)
C
(57)
D
(58)
A
(59)
C
(60)
B
二、填空题
(1)RISC
(2)主机名
(3)顺序
(4)小
(5)m
(6)系统调用
(7)银行家
(8)SPOOLing
(9)逻辑
(10)参照
(11)执行
(12)连接
(13)查询优化
(14)可串行化
(15)WebServer
(16)属性
(17)非平凡函数依赖
(18)函数依赖
(19)内容
(20)数据仓库
第一范式(1NF):在关系模式R中的每一个具体关系r中,如果每个属性值 都是不可再分的最小数据单位,则称R是第一范式的关系。例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话 和一个家里电话号码) 规范成为1NF有三种方法:
一是重复存储职工号和姓名。这样,关键字只能是电话号码。
二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性
三是职工号为关键字,但强制每条记录只能有一个电话号码。
以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。
第二范式(2NF):如果关系模式R(U,F)中的所有非主属性都完全依赖于任意一个候选关键字,则称关系R 是属于第二范式的。
例:选课关系 SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号, CNO为课程号,GRADEGE 为成绩,CREDIT 为学分。 由以上条件,关键字为组合关键字(SNO,CNO)
在应用中使用以上关系模式有以下问题:
a数据冗余,假设同一门课由40个学生选修,学分就 重复40次。
b更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。
c插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。
d删除异常,若学生已经结业,从当前数据库删除选修记录。某些门课程新生尚未选修,则此门课程及学分记录无法保存。
原因:非关键字属性CREDIT仅函数依赖于CNO,也就是CREDIT部分依赖组合关键字(SNO,CNO)而不是完全依赖。
解决方法:分成两个关系模式 SC1(SNO,CNO,GRADE),C2(CNO,CREDIT)。新关系包括两个关系模式,它们之间通过SC1中的外关键字CNO相联系,需要时再进行自然联接,恢复了原来的关系
第三范式(3NF):如果关系模式R(U,F)中的所有非主属性对任何候选关键字都不存在传递信赖,则称关系R是属于第三范式的。
例:如S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,
姓名,所在系,系名称,系地址。
关键字SNO决定各个属性。由于是单个关键字,没有部分依赖的问题,肯定是2NF。但这关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储,插入,删除和修改时也将产生类似以上例的情况。
原因:关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO -> LOCATION, 因此关键辽 SNO 对 LOCATION 函数决定是通过传递依赖 SNO -> LOCATION 实现的。也就是说,SNO不直接决定非主属性LOCATION。
解决目地:每个关系模式中不能留有传递依赖。
解决方法:分为两个关系 S(SNO,SNAME,DNO),D(DNO,DNAME,LOCATION)
注意:关系S中不能没有外关键字DNO。否则两个关系之间失去联系。
BCNF:如果关系模式R(U,F)的所有属性(包括主属性和非主属性)都不传递依赖于R的任何候选关键字,那么称关系R是属于BCNF的。或是关系模式R,如果每个决定因素都包含关键字(而不是被关键字所包含),则RCNF的关系模式。
例:配件管理关系模式 WPE(WNO,PNO,ENO,QNT)分别表仓库号,配件号,职工号,数量。有以下条件
a一个仓库有多个职工。
b一个职工仅在一个仓库工作。
c每个仓库里一种型号的配件由专人负责,但一个人可以管理几种配件。
d同一种型号的配件可以分放在几个仓库中。
分析:由以上得 PNO 不能确定QNT,由组合属性(WNO,PNO)来决定,存在函数依赖(WNO,PNO) -> ENO。由于每个仓库里的一种配件由专人负责,而一个人可以管理几种配件,所以有组合属性(WNO,PNO)才能确定负责人,有(WNO,PNO)-> ENO。因为 一个职工仅在一个仓库工作,有ENO -> WNO。由于每个仓库里的一种配件由专人负责,而一个职工仅在一个仓库工作,有 (ENO,PNO)-> QNT。
找一下候选关键字,因为(WNO,PNO) -> QNT,(WNO,PNO)-> ENO ,因此 (WNO,PNO)可以决定整个元组,是一个候选关键字。根据ENO->WNO,(ENO,PNO)->QNT,故(ENO,PNO)也能决定整个元组,为另一个候选关键字。属性ENO,WNO,PNO 均为主属性,只有一个非主属性QNT。它对任何一个候选关键字都是完全函数依赖的,并且是直接依赖,所以该关系模式是3NF。
分析一下主属性。因为ENO->WNO,主属性ENO是WNO的决定因素,但是它本身不是关键字,只是组合关键字的一部分。这就造成主属性WNO对另外一个候选关键字(ENO,PNO)的部 分依赖,因为(ENO,PNO)-> ENO但反过来不成立,而P->WNO,故(ENO,PNO)-> WNO 也是传递依赖。
虽然没有非主属性对候选关键辽的传递依赖,但存在主属性对候选关键字的传递依赖,同样也会带来麻烦。如一个新职工分配到仓库工作,但暂时处于实习阶段,没有独立负责对某些配件的管理任务。由于缺少关键字的一部分PNO而无法插入到该关系中去。又如某个人改成不管配件了去负责安全,则在删除配件的同时该职工也会被删除。
解决办法:分成管理EP(ENO,PNO,QNT),关键字是(ENO,PNO)工作EW(ENO,WNO)其关键字是ENO
缺点:分解后函数依赖的保持性较差。如此例中,由于分解,函数依赖(WNO,PNO)-> ENO 丢失了, 因而对原来的语义有所破坏。没有体现出每个仓库里一种部件由专人负责。有可能出现 一部件由两个人或两个以上的人来同时管理。因此,分解之后的关系模式降低了部分完整性约束。
一个关系分解成多个关系,要使得分解有意义,起码的要求是分解后不丢失原来的信息。这些信息不仅包括数据本身,而且包括由函数依赖所表示的数据之间的相互制约。进行分解的目标是达到更高一级的规范化程度,但是分解的同时必须考虑两个问题:无损联接性和保持函数依赖。有时往往不可能做到既有无损联接性,又完全保持函数依赖。需要根据需要进行权衡。
1NF直到BCNF的四种范式之间有如下关系:
BCNF包含了3NF包含2NF包含1NF
小结:
目地:规范化目的是使结构更合理,消除存储异常,使数据冗余尽量小,便于插入、删除和更新
原则:遵从概念单一化 "一事一地"原则,即一个关系模式描述一个实体或实体间的一种联系。规范的实质就是概念的单一化。
方法:将关系模式投影分解成两个或两个以上的关系模式。
要求:分解后的关系模式集合应当与原关系模式"等价",即经过自然联接可以恢复原关系而不丢失信息,并保持属性间合理的联系。
注意:一个关系模式结这分解可以得到不同关系模式集合,也就是说分解方法不是唯一的。最小冗余的要求必须以分解后的数据库能够表达原来数据库所有信息为前提来实现。其根本目标是节省存储空间,避免数据不一致性,提高对关系的 *** 作效率,同时满足应用需求。实际上,并不一定要求全部模式都达到BCNF不可。有时故意保留部分冗余可能更方便数据查询。尤其对于那些更新频度不高,查询频度极高的数据库系统更是如此。
在关系数据库中,除了函数依赖之外还有多值依赖,联接依赖的问题,从而提出了第四范式,第五范式等更高一级的规范化要求。在此,以后再谈。
各位朋友,你看过后有何感想,其实,任何一本数据库基础理论的书都会讲这些东西,考虑到很多网友是半途出家,来做数据库。特找一本书大抄特抄一把,各位有什么问题,也别问我了,自已去找一本关系数据库理论的书去看吧,说不定,对各位大有帮助。说是说以上是基础理论的东西,请大家想想,你在做数据库设计的时候有没有考虑过遵过以上几个范式呢,有没有在数据库设计做得不好之时,想一想,对比以上所讲,到底是违反了第几个范式呢?
我见过的数据库设计,很少有人做到很符合以上几个范式的,一般说来,第一范式大家都可以遵守,完全遵守第二第三范式的人很少了,遵守的人一定就是设计数据库的高手了,BCNF的范式出现机会较少,而且会破坏完整性,你可以在做设计之时不考虑它,当然在ORACLE中可通过触发器解决其缺点。以后我们共同做设计之时,也希望大家遵守以上几个范式。
那些数据库的书介绍的数据库范式,实在是晦涩难懂,我在这里给出一个通俗的描述:
1NF:一个table中的列是不可再分的(即列的原子性)
2NF:一个table中的行是可以唯一标示的,(即table中的行是不可以有重复的)
3NF:一个table中列不依赖以另一个table中的非主键的列,还是不通俗!巨寒!!
举个例子吧:有一个部门的table,我们叫它tbl_department, 它有这么几列(dept_id(pk),dept_name,dept_memo) 有一个员工table,我们叫它tbl_employee,在这个table中有一列dept_id(fk)描述关于部门的信息,若tbl_employee要满足3NF,则在tbl_employee中就不得再有除dept_id列的其它有关部门信息的列!
一般数据库的设计满足3NF即可!(个人觉得应该尽可能的满足3NF,一家之言^_^)
BCNF:通常认为BCNF是修正的第三范式,它比3NF又进一步!
4NF:
5NF:将一个table尽可能的分割成小的块,以排除在table中所有冗余的数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)