代码编织梦想


数据库整体设计流程

  • 1、刻画数据库用户需求
  • 2、概念设计
  • 3、逻辑设计
  • 4、物理设计
    在这里插入图片描述

本章讲解概念设计

一、E-R模型(实体-联系数据模型)

  • 三个主要的组成部分:实体集、联系集、属性

1、实体、实体集

  • 实体:一个实体是现实世界可区别于所有其他对象的一个‘事物’或‘对象’

    实体可以是实在的也可是抽象的,如一个人、课程、开设的课程段或者航班预订
    例如:课程可以被开左实体,并且course_id唯一标识出了大学中某个课程实体

  • 实体集:是共享相同性质或属性、具有的相同类型的实体的集合

    • 所谓实体集就是同一类型实体的集合(一般是有限的)。注意!是同一类型实体的集合哦。
      实体集中包含的是实体,可以把它理解成数学中的集合,例:{茉莉蜜茶、冰红茶、青梅绿茶}这就是一个实体集。 再比如{鲫鱼、鲤鱼、金龙鱼}这也是一个实体集,这两个实体集里分别只包含了三个实体
  • 属性:属性是每个实体集中每个成员所拥有的描述性性质

  • 如instructor实体集可能具有的属性是:ID、name、dept_name和salary

  • 每个实体在它的每个属性上都有一个值

  • 实体集在E-R图中用一个矩形来表示在这里插入图片描述


2、复杂属性

  • 复合属性:
    复合属性可以被划分为子部分
    在这里插入图片描述
  • 多值属性
    对一个实体而言,一个属性可以对应于多个值
    假设往instructor实体集中添加一个phone_number属性,每个教师可以有零个、一个或多个电话号码,这种类型被称为多值属性
  • 派生属性
    这类属性的值可以从其他相关属性或实体的值派生出来
    例如:instructor实体集具有age属性,如果instructor实体集还有date_of_birth属性,就可以从date_of_birth和当前日期计算出age属性的值,因此age就是派生属性

3、联系集

  • 联系:联系是多个实体间的相互关联
    如:张三丰是武当派的老师,教太极拳
    则老师和课程是教授关系,学生和课程是选择关系在这里插入图片描述
  • 联系集:相同类型联系的集合
  • 实体集和实体集产生的联系很多构成联系集

在这里插入图片描述
实体集之间的关联被称为参与
上图可以描述为教师实体集和课程实体集参与到教学这个联系集

  • 自己跟自己联系的时候,把对应的角色标识出来
  • 联系集也可以有描述性属性,在图中通过虚线相连接在这里插入图片描述
  • 在一个实体集中,有下划线的属性代表主码

二、约束

1.映射基数约束

  • 映射基数:一个实体能通过一个联系集关联另一个实体的数量
    在这里插入图片描述
    具体可分为四种

  • 一对一

    • A中的一个实体至多与B中的一个实体相关联,且B中一个实体也至多与A中的一个实体相关联
      ![在这里插入图片描述](https://img-blog.csdnimg.cn/e41270d44e6244ab84469a889f6b8af7.png
  • 一对多

    • A中的一个实体可以与B中任意数量的实体相关联、而B中的一个实体至多与A中的一个实体相关联
      在这里插入图片描述
  • 多对一

    • 同上面的一对多
  • 多对多

    • A中的一个实体可以与B中的任意数量的实体相关联,而B中的一个实体也可与A中的任意数量的实体相关联在这里插入图片描述

2.参与度约束


3.码的约束

三、


总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wuzhenbin11/article/details/130876529