数据库原理及应用(十三)E-R图、关系模式

数据库设计的过程

        数据分析->数据建模->关系数据库模式->关系数据库管理

        用户需求->概念模型(E/R Model)->逻辑模型(三层结构)

        现实世界->信息世界->机器世界

概念设计工具E-R图

        E-R图的组成元素:实体、属性、联系(而不是关系)

        概念设计阶段常用的模型:实体联系模型(E-R模型--属于概念模型)

        E-R图各部件的表示

内容 图形 词属性
属性 椭圆形框 名词
实体 矩型框 名词
联系 菱形框 动词

        实体标识符(主键),属性带下划线

        外键标识为波浪线

        联系的分类

                一元联系 、二元联系、三元联系

        E-R模型设计的步骤

                1.首先设计局部ER模型

                2.将各局部ER模型综合成一个全局ER模型

                3.将全局ER模型进行优化,得到最终的ER模型(概念模型

                设计细节

                属性:             不可再分

                                        实体和属性的关系只能是1:n

                                        不同实体类型的属性之间应该无直接联系

                每个实体都必须有至少一个实体标识符

         ER图转换为关系模式集

                步骤1(实体转换),将每个实体转换为一个关系模式(属性对应该关系模式的属性实体标识符为关系模式的

                 步骤2(转换联系)

                        1:1联系:在任意一个实体中加入另一个实体的码和联系类型的属性(随便加

                        1:n联系:在n段实体的关系模式加入1端实体的键和联系属性(多方加

                        n:m联系:将联系也转换为关系模式,其属性为两端实体的键+联系类型(键为两端实体键的组合)

                        实例1

         使用ER模型进行逻辑设计的步骤

                1.导出初始的关系模式集

                2.规范化处理

                        逐一考察关系模式

                        判断它们是否满足规范要求

                3.模式评价

                4.模式修正

                5.设计子模式

逻辑设计工具

        逻辑设计的工具--规范化理论

        数据依赖

                关系模式形式化

                        R(U,D,DOM,F)

                        R:关系名        U:属性名集合        D:所有来自的域        DOM:映象集合

                        F:依赖关系集合

                        常用:        R(U)        R(U,F)

                数据依赖:定义属性值间的相互关联(主要体现在值的相等与否)

                        不合理依赖会造成:数据冗余太大、更新异常、插入异常、删除异常

                        解决方法:通过分解关系模式来消除不合适的数据依赖

                依赖的表示:        Sno->Sdept:Sno决定Sdept

                                              (Sno,Cname)->Grade:Sno和Cname共同决定Grade

                        F={Sno->Sdept,Sdept->Mname,(Sno,Cname)->Grade}

                 函数依赖

                                X->Y:X函数确定YY函数依赖于XX是决定属性集

                                反过来不一定成立

                                        平凡的函数依赖:X->Y,且Y属于X    (Sno,Cno)->Sno

                                        非平凡的函数依赖:X->Y,且Y不属于X  (Sno,Cno)->Grade

                                        完全函数依赖:X->Y,但X的任意子集不能决定Y  一一对应

                                        部分函数依赖:X->Y但Y不完全依赖于X          多组属性共同决定

                                        传递函数依赖:X->Y, Y->Z,且Y不属于X,Y不能决定X

                       

                                候选码:在R(U,F)中存在一个属性K,若K完全决定U,则K为R的一个候选码

                                        候选码可以唯一的标识一个元组

                                主码:若存在多个候选码则选定其中一个作为主码

                                主码外码共同提供了表示关系连接的一种手段

        范式

                符合某一种级别的关系模式的集合

                范式的种类:        1NF,2NF,3NF,BCNF,4NF,5NF

                1NF

                        关系模式中的属性不再可分

                        1NF是关系模式最基本的要求

                2NF

                        每个非主属性完全依赖于码

                3NF

                        不存在非主属性对码的传递依赖

                        采用投影分解法

                BCNF

                        BCNF是修正的3NF

                        若X->Y,且Y不属于X,则X中必定含有候选码(左边都包含候选码

                        特性:         1.非主属性都完全依赖于候选码

                                            2.主属性都完全依赖于不包含它的候选码

                                            3.没有任何属性完全依赖与非码的任何一组属性

                        若R属于3NF,且R仅有一个候选码,则R必属于BCNF

                        若R属于BCNF,那么在函数依赖的范畴内已经实现了模式的彻底分解,达到了最高规格的规范化

         关系分解

                如果分解后的关系可以通过自然连接恢复原来的关系,那么它便没有丢失数据

                无损连接性:分解后的结果通过自然连接与原结果相等;只有具有无损连接性的分解才能保障不丢失信息。

                        无损连接性不一定能解决插入异常、删除异常、修改异常、数据冗余等问题,因为它在分解的时候会丢失原关系中的函数依赖

                保持函数依赖的模式分解

                判断一个关系模式的分解:        1.有无损连接性->不丢失信息

                                                                    2.保持函数依赖->减轻/解决异常情况

猜你喜欢

转载自blog.csdn.net/weixin_37878740/article/details/121569026