关键词不能为空

当前您在: 主页 > 英语 >

范式ER

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 08:31
tags:

-

2021年2月10日发(作者:奥里奇)


7








< br>的





关系:描述实体、属性、实体间的联系。



从形式上看,它是 一张二维表,是所涉及属性的笛卡尔积的一个子集。



关系模式:用来定义关系。



关系数据 库:基于关系模型的数据库,利用关系来描述现实世界。



从形式上看,它由一组关系组成。



关系数据库的模式:定义这组关系的关系模式的全体。




关系模式的形式化定义


:


关系模式由五部分组成,即它是一个五元组:



R(U, D, DOM, F)


R












关系名



U










组成该关系的属性名集合



D










属性组


U


中 属性所来自的域



DOM


:属性向域的映象集合



F











属性间数据的依赖关系集合







branch = (branch_name, branch_city, assets)


customer = (customer_id, customer_name, customer_street, customer_city)


account = (account_number, balance)


employee = (employee_id. employee_name, telephone_number, start_date)


dependent_name = (employee_id, dname)




account_branch = (account_number, branch_name)


loan_branch


= (loan_number, branch_name)




loan


= (loan_number, amount)



borrower


= (customer_id, loan_number)




depositor = (customer_id, account_number)




cust_banker = (customer_id, employee_id, type)


works_for = (worker_employee_id, manager_employee_id)


payment = (loan_number, payment_number, payment_date, payment_amount)


savings_account = (account_number, interest_rate)


checking_account = (account_number, overdraft_amount)


组合模式(左)(


Combine Schemas

< p>
)将


borrower


模式和

loan


模式相连接为


bor_loan

< br>模式



bor_loan = (customer_id, loan_number, amount )


其结果可能导致重复



(


为该贷款的团体中的每个客户重复一次贷款数额


L-100

< br>)




三图:



p174-p175







考虑组合(中)



loan_branch= (loan_number, branch_name)




loan = (loan_number, amount)



loan_amt_br = (loan_number, amount, branch_name)


没有重复,故选择联系的时候要选


1


对多






设计选择



更小的模式:(右)



假定我们以开始时候得到的是



bor _loan


模式


.


如何知道将它分解成



(decompose)


borrower





loan


模式


?


需要写出这样一条规则



“如果存在模式



(loan_number,


amount),


那么


loan_number


将作为


候选键”



上述规则称为函数依赖(


functional dependency



:





loan_number



amount




bor_loan = (customer_id, loan_number, amount )



,


因为



loan_number


不是候选键,



所以


loan



amount


可能会重复


.


这表明有必须分解



bor_loan.


并非所有的分解都是好的。假定我们把< /p>


employee


分解为:




employee1 = (employee_id, employee_name)



employee2 = (employee_name, telephone_number, start_date)








这个分解的缺陷在于企业中可能存在两个同名的雇员



下一个


PPt


将显示我们损失的信息

< p>




我们不能重构原来的


employee


relation


关系






此,这是一个有损分解(



lossy decomposition



.




关系数据理论:


< br>数据库设计的一个最基本的问题是如何建立一个好的数据库模式。








即给出一组数据,如何构造一个适合于它们的数据模式,使数 据库系统无论是在数据


存储方面,还是在数据操纵方面都有较好的性能。









E-R


模型方法讨论了实体与实体之间的数据联系,


现在来讨论实体内 部属性与属性之


间的


关系数据理论


数据 关联,目标是要设计一个“好”的数据库模型。





问题提出:



在解决如何设计一个好的数据库模式之前,先看一


< p>
看什么是


“不好”


的数据库设计

< br>(关


系数据库模式可能出现的异常)。




例:建立一个关系数据库来描述学生的一些情况,



该数据库只包含一个关系模式:




学生(学号,姓



名,系名,系主任,课程,成绩)



存在的问题:



i.


数据冗余:姓名,系名,系


==


〉重复出现。



ii.


更新异常:某一元组修改系主任,其 他不变


==


〉同一系,系主任不同,造成了数据潜在的


不一致性。



iii.


插入异常:系刚成立,尚未招收学生,主关键字为空,则系主任、选的课都无法存入数


据库,未选课的学生信息也无法存入。



删除异常:一个系的学 生毕业了,删除这些学生的记录,则系主任等信息也删除掉了。




产生异常的原因:









这些异常的产生主要是因为关系模 式的结构,


即关系模式中的属性之间存在过多的数


据依赖关系, 与现实世界不符合。









注:数据依赖关系——最重要的一类是函数依赖。















·



主关键字(学号

< br>+


课程)一定,元组就确定了,元组分量也就确定了,即


所有其它属性都依赖于



“学号”和“课程”。














·





但实际:学号→姓名,不需选课。
















系名→系主任。



解决:










分解为三个新的关系模式:



















学生(学号,姓名,系名)



















成绩(学号,课程,成绩)



















系(系名,系主任)








这样上面提到的问题不存在了,将学生、成绩和系三个相对独立的实体划分开来,使


之更符合现实世界的实际。



目标:



—设计一套理论



能确定一个特定的关 系


R


是一个“好的”形式


.


如果一个关系



R


不是一个“好的”形式


,


将它分解为关系集



{R1, R2, ..., Rn}


其中



每个关系是一个好的形式



分解是无损连接分解(



lossless-join decomposition




理论


:


函数依赖(


functional dependencies




多值依赖(


multivalued dependencies






函数依赖:


某个属性集决定另一个属 性集时,称另一属性集依赖于该属性集



只要有


u[X]=v[X]


,就有


u[Y]=v

< p>
[Y]


,则称


X


函数决定


Y


,或称


Y


函 数依赖于


X


,记为


X→Y。

< p>



在合法关系集上的约束


.


函数——熟悉的概念。

















Y=f(x)


x



Y


之间数量上的对应关系。给 定


x


值,


Y

















与之对应。称

x


函数决定


Y


,或


Y


函数依赖于


x


< p>















在关系数据库中讨论函数或函数依赖注重的是语义上的关系。



































如:省


=f(


城市


)



要求某些属性集的值唯一决定其他属性集的值



函数依赖是键


(


码)的更一般化的说法


.


R


是一个关系模式


:



函数依赖:






R


上成立(


holds on


)当且仅当任 何合法的关系


r(R)



r

< p>
中任何两个元组


t1



t2,





如果



t1[A] = t2 [A]





(则)




t1[B]



= t2 [B]




现实世界的每一实体集合,都有一 关键字(码),即唯一确定各个实体的一组属性。同样,


关系上最重要的约束是关系的关 键字约束,即关键字


/


码唯一确定关系的元组。




1.


候选键(


Candidate Key


)与主键(


Primary Key





2.


外部键(


Foreign Key





(


右上的图


)


注:主码与外码(主关键字与外关键字)提供了一个表示关系间联系的手段。




使用函数依赖


函数依赖可以让我们表达不能用超键表达的约束依赖,考虑到模式


:




bor_loan = (customer_id, loan_number, amount ).



我们期望如下函数依赖成立


:


loan_number-> amount



但不希望下面的函数依赖成立


:


amount -> customer_name


使用函数依赖


:


用于判断关系在给定的函数依赖集上是否合法


.



如果一个关系


r


在函数依赖集


F


上合法,则称


r


满足(



satisfies



F.


用于定义合法关系集上的约束



如果在 模式


R


上所有的合法关系都满足函数依赖集

F,


我们说


F



R


上成立(


hold



.


注意


:



关 系模式上的一个特定实例可以满足一个函数依赖,即使该函数依赖不能在所有合


法的实例 上成立。



例如


,


一个特定的


loan


实例可能偶尔满足


: amount->customer_name.


一个函数依赖被称为平凡的(



tri vial


),因为他们在所有的关系中都是满足的



例如


:



customer_name, loan_number -> customer_name



customer_name -> customer_name




函数依赖集的闭包



给定一个函数依赖集



F



,


其他的一些函数依赖逻辑蕴含在


F




。形式 化地说,给定关系


模式


R


,如果每一个 满足


F


的关系实例


r(R)

< p>
也满足


f


,则


R


上的函数依赖


f



R< /p>


上的函数依


赖集


F


逻辑蕴涵


.


例如


:



If



A-> B




B-> C,



那么我们可以推导出



A-> C


F


的闭包(


closure)


是指


F


逻辑蕴涵的所有函数依赖的集合


.


闭包表示为



F+.


F+




F


的超集


.



范式



在关系数据模式设计中,


为了避免由依赖引起的数据的冗余和更新异常问题,


必须进行关系


数据模式的规范化。




2


范式



若关 系模式


R



1NF

,并且每一个非主属性都完全函数依赖于


R


的键,则


R



2NF







反例:




















例:库存(仓库号,设备号,数量,地点)






























1NF


,但非


2NF





























非主属性数量完全依赖于关键字。




























非主属性地点部分依赖于关键字。





























即有仓库号→地点。



























(仓库号,设备号)→地点。










出现的问题:












一个仓库若只有一种设备,则删除设备→删除仓库。













·学生关系:



















学生( 学号,姓名,系名,系主任


,


课程,成绩)

















不是


2NF



















只有成 绩完全函数依赖于键,姓名、系名、系主任对键部分依赖,因为它


们由学号可决定。




采用投影分解法将一个


1NF


的关系分解为多个


2NF


的关系,可以在一定程度上减轻原


1NF


关系中存在的插入异 常、删除异常、数据冗余度大、修改复杂等问题。









例子:⑴库存(仓库号,设备号,数量)





















仓库(仓库号,地点)
















⑵学生记录(学号,姓名,系名,系主任)



















r(


学生记录


)=


Π


(学号,姓名,系名,系主任)(


r



(


学生


)



















成绩(学号,课程,成绩)



















r(< /p>


成绩


)=


Π


<< /p>


学号,课程,成绩


>


< br>r



(


学生

)





将一个


1NF


关系分解为多个


2NF< /p>


的关系,并不能完全消除关系模式中的各种异常情况和数


据冗余< /p>






BC


范式



具 有函数依赖集


F


的关系模式


R




BCNF


的条件是:


对所有



F+

< p>
中形如


A->B


的函数依赖




AC R


BC R



,


下面至少有一个成立


:



不是



BCNF


的例子


:



bor_loan = ( customer_id, loan_number, amount )


因为



loan_number



amount




bor_loan


上成立,但



loan_number


不是超键



BCNF


一个等价描述:每个非平凡


F D


的左边必须包含键






举例及讨论:






例:⑴


.


管理(仓库号,设备号,职工号)非


BCNF (3NF)











语义


:



.


一个仓库可有多个职工;

















.


一名职工仅在一个仓库工作;

















.


在每个仓库,一种设备仅由一名职工保 管











但每名职工可以保管多种设备)。











根据语义有依赖:职工号→仓库号;















(仓库号,设备号)→职工号;





问题:·新职工分到一仓库,尚未负责设备,则不能插入。









·插入异常:同一设备,两个职工 ,无法防止这样插入,与③违背。



Boyce-Codd


范式具有的性质



1.


所有非主属性都完全函数依赖于每个候选键



2.


所有主属性都完全函数依赖于每个不包含它的候选键



3.


没有任何属性完全函数依赖于非键的任何一组属性




将一个模式分解成



BCNF


假定模式


R


有一个非平凡的依赖关系



,违反了



BCNF.



我们把



R


分解为


:



在我们的例子中


,




= loan_number



= amount


那么


bor_loan = ( customer_id, loan_number, amount )


被替换为




(


U



) = ( loan_number, amount )


( R - (


贝塔



-


阿尔法




) ) = ( customer_id, loan_number )



BCNF


和保持依赖



1


约束,包括函数依赖,在实际检验这些约束时开销很大,除非在检查函数依赖的时候仅仅


只需要考虑一个关系


,


那么检查这种约束的开销就很低(分解-开销上升)。



2


如果只需要在分解的每个关系上测试这些依赖就能确信所有的函数依 赖成立的话,


那么这


样的分解就是保持依赖的(



dependency preserving




3


因为并非总是能够得到


BCNF


和依赖保持,我 们考虑一个弱的范式,称为第三范式




-


-


-


-


-


-


-


-



本文更新与2021-02-10 08:31,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/627750.html

范式ER的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文