概念模型与关系模型和关系规范化

》概念模型

       概念模型用于信息世界的建模,是实现现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言,因此概念模型一方面具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面是表达简单、清晰、易于用户理解。

》信息世界中的基本概念

    1、 实体(Entity

    客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。

    2、 属性(Attribute

    实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。

    3、 码(key

    唯一标识实体的属性集称为码。

     4、 域(Domain

     属性的取值范围称为该属性的域。

     5、 实体型(Entity Type

     具有相同属性的实体必然具有共同的特征和性质。用实体名与属性名集合来抽象和刻画同类实体,称为实体型。

      6、 实体集(Entity Set

     同型实体的集合称为实体集。

     7、 联系(Relationship

      在现实世界汇总,事物内部及事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系。实体之间的联系通常是指不同实体集之间的联系。

          #  一对一联系(1:1

             如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一的联系,记为1:1

          # 一对多联系(1:N

             如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A至多有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:N

         #多对多联系(M:N

             如果对于实体集A中的每一个实体,实体集B中有N个实体与之联系,反之,对于实体集B中的每一个实体,实体集A中有M个实体与之联系,则称实体集A与实体集B具有多对多的联系,记为M:N

           一对一联系是一对多联系的特例,一对多联系又是多对多联系的特例。

》概念模型的表示方法

       概念模型是对信息世界的建模。最常用的是实体-联系方法(Entity-RelationshipApproach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称E-R模型。     

       E-R图提供了表示信息世界中实体、属性和联系的方法,具体为:

      实体型:用矩形表示,矩形框内写明实体的名称。

      属性: 用椭圆表示,并用无向边将其与相应的实体连接起来。

      联系:  用菱形表示,菱形框内写明联系的名称,并用无向边分别与有关实体连接起来,同时在无向边旁边标上联系的类型(1:1、1:N、M:N)。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

      E-R方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。

》关系模型

数据模型是数据库系统的核心和基础,不同的数据模型提供了不同的模型化数据和信息的工具。

现有的数据库系统均基于某种数据模型,其中关系数据库是采用关系模型作为数据组织方式的数据库。关系模型是目前数据库管理系统中实现最多的一类数据模型,它是用二维表结构来表现实体及实体间联系的模型,并以二维表的形式组织数据库中的数据。

 

    数据结构和术语=>关系模型

       关系:一个关系逻辑上对应一张二维表(格)。可以为每个关系取一个名称进行标识。与之同义的术语是“表”。

       元组:表中的一行即为一个元组。与之同义的术语是“行”。

       分量:元组中的一个属性值。与之同义的术语是“列值”。

       属性:表中的一列即为一个属性,给每一个属性起一个名称即属性名。与之同义的术语是“列”。

       域  :属性的取值范围。与之同义的术语是“数据类型”。

       主码:表中的某个属性组,它可以唯一确定一个元组。与之同义的术语就是“主键”。

       表  :由行和列组成。可以为每个表取一个表名进行标识。

       行  :表中的一条记录。表中的数据是按行存储的。

       列  :表中的一个字段。所有表都是由一个或多个列组成的。

       主键:表中的一列或一组列,其值能够唯一区分表中的每个行。其中,由一组列构成的主键称为组合主键。

       外键:表中的一列或一组列,其包含另一张表的主键值,主要用于定义两个表之间的关系。与之同义的术语是“外部码”。

       关系模式:对关系的描述,一般表示为“关系名(属性1,属性2,属性n)”。

       数据类型:所容许的数据的类型。每个表列都有相应的数据类型,它限制(或容许)该列中存储的数据。

    关系规范化的基本方法

          为了减少数据库中的数据冗余,增强数据的易操作性,消除数据插入、删除异常等现象,关系模型要求关系必须是规范化的。

          即要求数据库中的每张表都必须满足一定的规范条件。在实际应用中,这些规范条件从对表的基本约束到严格要求依次分为:

        #第一范式(1NF

            规则一:表中的每个列只包含具有原子性的值,即关系的每一个分量必须是一个不可分的数据项。

        #第二范式(2NF

            规则一:首先要符合第一范式。

            规则二:没有部分函数依赖性,即表中不存在非主键的列依赖于组合主键某个部分的现象

        #第三范式(3NF

            规则一:首先要符合第二范式。

            规则二:没有传递函数依赖性,即表中不存在任何非主键列与其他非主键列相互关联的现象。

        #修正的第三范式(BCNF

            规则一:首先要符合第三范式。

            规则二:表中不存在主键列对主键的部分函数依赖和传递函数依赖。

    关系规范化:

         一个低一级范式的关系模式,通过模式分解逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的分离,转换为若干个高一级范式的关系模式的集合,这种过程就是关系规范化。

         通过消除非主键列对主键的部分函数的依赖,将1NF表规范为2NF表。

         通过消除非主键列对主键的传递函数的依赖,将2NF表规范为3NF表。

         通过消除主键列对主键的部分函数依赖和传递函数依赖,将2NF表规范为BCNF表。

         另外,在关系模型中,满足关系规范化要求的表与表之间会存在以下三种形式的联系;

              #一对一(1:1)的关联

                   一对一的关联从概念上表达的是一个数据对象与另外一个数据对象之间仅表现为一对一的关系;从逻辑上表达的是某个表中的一行数据行仅与另一个表中的某一数据行相对应。

              # 一对多(1:N)的关联

                   一对多的关联从概念上表达的是一个数据对象与另外一个数据对象之间表现为一对多的关系;从逻辑上表达的是某个表中的一行数据行可与另外一个表中的多条数据行相对应。

              #多对多(M:N)的关联

                   多对多的关联从概念上表达的是一个数据对象与另外一个数据对象之间表现为多对多的关系;从逻辑上表达的是某个表A中的一行数据行可与另外一个表B中的多条数据行相对应,同时这个表A中的多条数据行又与表B中的某一行数据行相对应。

      数据库设计

            需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实现、数据库运行和维护。

       概念结构设计

            概念结构设计就是将需求分析得到的用户需求抽象为信息结构(概念模型)的过程,通常使用E-R图来描述现实世界的概念模型。

             概念结构是独立于任何一种(逻辑)数据模型的信息结构。

       逻辑结构设计

            在关系数据库设计中,逻辑结构设计的任务就是把概念结构设计阶段已设计好的基本E-R图转换为关系模型。

       基本E-R图向关系模型的转换

            关系模型的逻辑结构是一组关系模式的集合,而E-R图则是由实体、实体的属性和实体间的联系三个要素组成的。

            将E-R图转换为关系模型实际上就是要将实体、实体的属性、实体间的联系转换为关系模式。

            转换一般遵循一下原则:

                     1、  一个实体型转换为一个关系模式,实体的属性作为关系的属性,实体的码作为关系的码。

                     2、  一个一对一(1:1)联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。

                     3、  一个一对多的(1:N)联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。

                    4、  一个多对多(M:N)联系转换为一个关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。

                    5、  三个或三个以上的实体间的一个多元联系可以转换为一个关系模式,与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合

                    6、  具有相同码的关系模式可以合并。

数据模型的优化

数据库逻辑设计的结果不是唯一的。

为了进一步提高数据库应用系统的性能,还应该根据应用需要适当地修改、调整数据模型的结构,这就是数据模型的优化。

关系数据模型的优化通常以关系规范化理论为指导:

1、  确定数据依赖。

2、  对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。

3、  按照数据依赖的理论对关系模式逐一分析,考察是否存在部分函数依赖、传递函数依赖等,确定各关系模式分别属于第几范式。

4、  按照需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行合并或分解。

5、  对关系模式进行必要的分解,提高数据操作的效率和存储空间的利用率。

设计用户子模式

将概念模型转换为全局逻辑模型之后,可根据局部应用需求,利用视图(view)设计更符合局部用户需要的用户外模式。

物理设计

数据库在物理设备上的额存储结构和存取方式称为数据库的物理结构它依赖于给定的计算机系统。为一个给定的逻辑数据模型选定一个最合适应用要求的物理结构的过程,就是数据库的物理设计。

 

数据库的物理设计通常分两步:

1、  确定数据库的物理结构

在关系数据库中主要指存取方法和存储结构,设计关系、索引等数据库文件的物理存储结构

2、  对物理结构进行评价

评价的重点是时间和空间效率。如果评价结果满足原设计要求,则可进入到物理实施阶段,否则需要重新设计或修改物理结构,有时甚至需要返回逻辑设计阶段修改数据模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值