数据库管理员的任务。
设计关系模式是数据库管理员的任务,它的目的是将数据存储在一个有效的方式,以便用户可以容易地访问和检索它们,关系模式定义了数据库中不同表之间的关系,并指定了每个表中包含的字段,以及字段之间的关系。
关系数据库是一种数据库,它将数据存储在不同的表中,使用关系来表示数据之间的关系,允许用户跨多个表查询数据。
关系数据库设计包括概念设计、逻辑设计、物理设计。
关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。
关系数据库的定义造成元数据的一张表格或造成表格、列、范围和约束的正式描述。每个表格(有时被称为一个关系)包含用列表示的一个或更多的数据种类。 每行包含一个唯一的数据实体,这些数据是被列定义的种类。当创造一个关系数据库的时候,你能定义数据列的可能值的范围和可能应用于那个数据值的进一步约束。而SQL语言是标准用户和应用程序到关系数据库的接口。
关系数据库的概念:
关系数据库是数据库应用的主流,许多数据库管理系统的数据模型都是基于关系数据模型开发的。
1、关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库。
2、关系数据库的型与值:关系数据库的型称为关系数据库模式,是对关系数据库的描述,若干域的定义,在这些域上定义的若干关系模式;关系数据库的值是这些关系模式在某一时刻对应的关系的集合,通常简称为关系数据库。关系数据库分为两类:一类是桌面数据库,另一类是客户、服务器数据库。
数据依赖是关系内部属性之间相关联系的表达,是语义的体现,是构成数据的约束,大多数数据依赖是函数依赖,它是关系中“键”概念的范化。
使用数据依赖这一概念来定义关系模式的规范形式,即规范化理论。
函数依赖FD
A1,A2,……,An——>B1,B2,……,Bm
(若两个元组A1到An上相同则B1到Bm也相同,A1到An函数决定B1到Bm)
从已知FD推断其它FD
FD的集合T,S
T与S等价:关系实例集合满足S与其满足T的情况完全一样
(S是从T中推断而来,T也是从S中推断而来)
S从T中推断而来:满足T的关系实例也满足S(S蕴涵于T)
分解/结合规则:
平凡函数依赖
一个约束对所有关系实例都成立,且与其它约束无关
平凡FD的右边是左边的子集
平凡依赖规则:
(注:
非平凡函数依赖:仅当其右边属性集中至少有一个属性不属于左边的集合。例如: title year →year length
完全非平凡函数依赖:仅当其右边集合中的属性均不在左边集合中。例如: title year →length)
属性的闭包
S下{A1,A2,……An}的闭包{A1,……An}上标+
就是A中可以从S推断出来的右边变成一个集合
从一个给定集合A出发,不断扩展这个集合,对于S中的FD分解使右边只有一个属性,然后对于FD,只要左边都在集合中就把右边也加到集合中。p42
传递规则
函数依赖的闭包集合
求函数依赖集F的闭包F+:求所有属性子集的闭包(不考虑空集),然后利用每个闭包来写FD(A->空集也要写)
S的基本集:任何和S等价的FD集合
最小化基本集:右边均是单一属性;删除任何一个FD后不再是基本集;
对于任何一个FD,若删除其左边一个或多个属性,不再是基本集
投影函数依赖
R投影到R1
函数依赖集S的投影为满足以下条件的FD的集合:1从S推断而来2只包含R1中的属性
对R1的所有子集求闭包,得到FD的基本集,简化为最小基本集
“求属性子集闭包”的几个主要应用
1求所有候选键
2求所有非平凡FD
3求所有违反BCNF的非平凡FD(投影函数依赖应用1)
4求非平凡FD的最小基本集(投影函数依赖应用2)
简化规则:
1不必考虑空集(适用于1-4)
2不必考虑不能推出非平凡函数依赖的属性子集X(适用于1-4)
21属性子集X的任何一个子集都不是FD的左部,无法推出非平凡FD,无需求该属性子集X的闭包。如例1
22不必考虑属性全集U的闭包。
23 属性子集X+的闭包依然是X+本身,无法推出非平凡FD,不需要再求X+的闭包
3如果已知属性子集X, X+是属性全集,那么就无需考虑任何X超集的闭包。(注意:!!!!!!不适用于2!!!!!!)
异常:冗余;更新异常;删除异常
分解关系
将一个关系用多个不存在异常的关系替换
Boyce-Codd范式BCNF
每个非平凡FD的左边都必须是超键
任何一个二元关系属于BCNF
(BCNF范式在3NF的基础上,消除主属性对键的部分函数依赖与传递函数依赖)
分解为BCNF
输入:关系R0其上的函数依赖集S0
输出:由R0分解出的关系集合,每个关系都属于BCNF
方法:R=R0 S=S0
1检验R是否属于BCNF若是则返回{R}
2有BCNF违例X->Y,计算X的闭包,令R1为X的闭包,R2为X与不在X的闭包中的属性
3计算R1,R2的投影函数依赖S1,S2
4递归检验R1,R2
分解的优势
1消除异常
2信息的可恢复
3依赖的保持
BCNF可保持1,2
3NF可保持2,3
无损连接的分解
子关系经连接(这里指自然连接)运算可恢复原关系
保持依赖的分解
子关系的函数依赖集可蕴涵原函数依赖集
从分解中恢复信息
无损连接:可通过连接分解的各个关系重构原关系
若Y->Z在关系R上成立,且R的属性集为X∪Y∪Z,则R=π{下标X∪Y}(R)⋈π{下标Y∪Z}(R)
chase算法:检验一个分解是否含有无损连接,即判断是否可以根据F中的FD来证明所有属于π{下标s1}(R)⋈π{下标s2}(R)⋈……⋈π{下标sk}(R)的元组t也属于R
依赖的保持
BCNF无法保持 p57例325
第三范式3NF
拥有无损连接和依赖保持性质
条件:对于每个非平凡FD,或者其左边是超键,或者其右边仅由主属性构成
逻辑设计阶段。关系数据库是建立在关系数据库模型基础上的数据库,设计关系模式是逻辑设计阶段的任务。关系数据库借助于集合代数等概念和方法来处理数据库中的数据,同时也是一个被组织成一组拥有正式描述性的表格,该形式的表格作用的实质是装载着数据项的特殊收集体,这些表格中的数据能以许多不同的方式被存取或重新召集而不需要重新组织数据库表格。
你说的是两个实体之间多对多的关系?楼上说的班级和老师是一个例子,其他例子也很多,比如厂家和代理商。厂家可以有多个代理商,而代理商也可以代理若干厂家的产品。
概念模型的多对多关系,在转化为物理模型时候,一般应该变成2个一对多的关系。
前端的登陆界面,除了用户名、密码之外,添加一个下拉框选择公司名称
使用两个表的联合查询
sql
=
"select
aposition
from
user
a,corp
b
where
acorpid
=
bcorpid
and
ausername
=
and
apassword
=
and
bcorpname
=
";
把输入的用户名、密码、公司名称这三个数据代入到三个号中。
以上就是关于在关系数据库设计中设计关系模式是谁的任务全部的内容,包括:在关系数据库设计中设计关系模式是谁的任务、关系数据库设计包括______。、关系数据库设计理论等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)