ER模型哪家强

           需求分析之后,应该设计数据库了,数据库设计是整个系统的基础,而ER图是数据库设计的核心。

      以前没这么重视数据库设计这块,画ER图时那叫个敷衍了事啊,现在看看自己以前的设计数据就是笑话啊,很庆幸米老师给这次担任机房合作版的组长机会,弥补自己的不足。

      大家都知道ER图无非就是实体、联系和属性。那有什么难点,甚至有人说我不画ER图也能设计出数据库啊,系统也能实现我想要的结果啊。

        就拿我们的机房收费系统ER图举列吧,

         (1)首先是抽象出实体。

                记得我第一次做机房收费系统的时候,更本没想过抽象出“卡”这实体出来

                个人重构的时候,再用以前设计的数据库感到了没有"卡",真的不好。

                    (2)再次联系

                 第一:确定联系的类型,是几元联系。(是一元、还是二元、还是三元)

                第二:联系之间多重度的确定。(是1:1、还是1:N、M:N)

             

         理论我们扯完了,我们还是拿图说事吧,这样来的更实在点。

       看看我个人重构时的ER图,看了别笑话啊。




         这幅ER图最大的败笔是抽象实体的时候有问题!

         我们想想机房收费系统里是抽象不出“充值记录”、“结账记录”、“退卡记录”这样的实体的。实体抽象有问题,那这数据库设计肯定有问题的。


下面我们这次合作抽象出来的实体:学生、卡、用户(管理员和操作员)和电脑。

         实体抽象出来,接下来就找实体间的联系了,联系这块你的想清楚了,是几元联            系。 

           实体和联系搞定之后,接下来时分析多重度问题,多重度分析是个难点(对我来说)这分析有问题,那主键、外键或联合主键确定肯定有问题的。看图说理吧!



     (1)老师和卡 他们的开户的联系:二元。

                             他们多重度:1:N(老师可以给多个学生开户)

        根据二元联系类型的转换规定:那么用户(教师)这个实体的主键(userid)在卡这个实体里作为外键。这样主外键关系确定了。

 

       (2)教师和卡  他们充值的联系:二元

                                他们的多重度:M:N

         根据二元联系类型的转换规定:那么充值这个联系李不存在单独主键的,是实体教师的主键(userid)和实体卡的主键(cardno) ,这两个外键联合起来才能作为充值表的主键的。


        这两幅图一对比就知道这其中的对数据库认识的差距了。


        其他的实体间的分析同样按照这样来的,这是数据设计师是按照我们自考《数据库系统原理》来设计的,更多东西只有实践才能感悟到其中好处,纸上得来终觉浅,绝知此事要躬行啊。

        等设计完成,建好数据库后,自己又想想有点问题?


      老师、卡和学生按道理来说是三元联系的才更精确啊,但在这ER图里我只画出老师和卡的二元联系。

    



            




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
ER模型(实体-关系模型)是一种用于描述和分析现实世界中实体(对象)之间关系的图形工具。而关系模型是基于关系数据库理论的一种数据模型,可以用关系表的形式来表示数据之间的联系。 将ER模型转化为关系模型的过程主要包括以下几个步骤: 1. 实体转化:将ER模型中的实体转化为关系模型中的表。每个实体对应一个表,表由多个列组成,每列代表实体的一个属性。 2. 属性转化:将ER模型中实体的属性转化为表的列。需要考虑属性的数据类型,例如数值型、字符型等。 3. 主键转化:在转化的过程中,需要为每个表选择一个主键,来唯一标识表中的每条记录。主键可以是属性中的某个属性,也可以是由多个属性组成的复合主键。 4. 关系转化:在ER模型中,实体之间的关系通常有一对一、一对多、多对多等多种类型。而在关系模型中,这些关系可以用外键来表示。外键是一个表中的列,它的值对应于另一个表中的主键值,用于表示两个表之间的联系。 5. 表之间的连接:在关系模型中,数据之间的连接是通过表之间的关系和外键来实现的。通过连接查询,可以检索到满足特定条件的相关数据。 将ER模型转化为关系模型的过程是一个抽象和设计的过程,需要考虑实际应用场景的需求和数据的特征。通过这种转化,可以将现实世界中的实体和关系转化为计算机可以处理的关系表,并且可以方便地进行数据的增删改查操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值