精华内容
下载资源
问答
  • 不同实体间可以有什么联系
    千次阅读
    2022-01-15 18:04:33

    定义并解释概念模型中以下术语:实体,实体型,实体集,实体之间的联系。

    (1)实体:客观存在并可以相互区分的事物叫实体。

    (2)实体型:用实体名及其属性名集合来抽象和刻画同类实体称为实体型。

    (3)实体集:同型实体的集合称为实体集。

    (4)实体之间的联系:通常是指不同实体型的实体集之间的联系,实体之间的联系有一对一,一对多和多对多等多种类型。

    更多相关内容
  • 实体-联系模型

    千次阅读 2022-01-30 09:32:06
    实体-联系数据模型(E - R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式( enterprise schema )来做到的。 E - R 模型在将现实企业的含义和交互映射到概念模式上非常有用...

    实体-联系数据模型(E - R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式( enterprise schema )来做到的。
    E - R 模型在将现实企业的含义和交互映射到概念模式上非常有用,由于这种用途,许多数据库设计工具都利用了来自 E - R 模型的概念。 E - R 数据模型采用了三个基本概念:实体集、联系集和属性。 E - R 模型还有一种相关联的图形表示: E - R 图。 E - R 图( E - R diagram )可以通过图形方式表示数据库的总体逻辑结构。 E - R 模型的广泛使用在很大程度上可能与 E - R 图简单而清晰的特性有关。

    实体集

    一个实体( entity )是现实世界中可区别于所有其他对象的一个“事物或“对象”。例如,大学中的每个人都是一个实体。每个实体有一组性质,并且某些性质集合的值必须唯一地标识一个实体。例如,一个人可能具有 person_id 性质,其值唯一标识了这个人。因此, person_id 的值677-89-9011将唯一标识出大学中一个特定的人。类似地,课程也可以被看作实体,并且 course_id 唯一标识出了大学中的某个课程实体。实体可以是实实在在的,比如一个人或一本书;实体也可以是抽象的,比如课程、开设的课程段或者航班预订
    实体集( entity set )是共享相同性质或属性的、具有相同类型的实体的集合。例如,一所给定大学的所有教师的集合可定义为 instructor 实体集。类似地, student 实体集可以表示该大学中的所有学生的集合。
    在建模的过程中,我们通常抽象地使用术语实体集,而不是指某个个别实体的特定集合。我们用实体集的外延( extension )这个术语来指属于实体集的实体的实际集合。因此,大学中教师的实际集合构成了 instructor 实体集的外延。这种区别类似于关系和关系实例之间的区别。
    实体集不必互不相交。例如,可以定义大学中所有人员组成的 person 实体集。一个 person 实体可以是 instructor 实体,可以是 student 实体,可以既是 instructor 实体又是 student 实体,也可以都不是。
    实体通过一组属性( attribute )来表示属性是实体集中每个成员所拥有的描述性性质为实体集设计一个属性表明数据库存储关于该实体集中每个实体的类似信息,但每个实体在每个属性上可以有它自己的值。 instructor 实体集可能具有的属性是 ID 、 name 、 dept_name 和 salary 。在现实生活中,可能会有更多的属性,如街道号、房间号、州、邮政编码和国家,但是为了简化我们的示例,我们通常省略了这些属性。 course 实体集可能的属性有 course_id 、 title 、 dept_name 和 credits 。
    在本小节中,我们只考虑简单的属性——那些不能划分为子部分的属性。
    每个实体在它的每个属性上都有一个值( value )。例如,一个特定的 instructor 实体可能在 ID 上的值为12121,在 name 上的值为 Wu ,在 dept_name 上的值为 Finance ,并且在 salary 上的值为90000。
    ID 属性用来唯一地标识教师,因为可能会有多位教师拥有相同的名字。在历史上,许多企业发现用政府颁发的标识号作为属性很方便,其值唯一地对人进行了标识。但是,出于安全和隐私的原因,这被认为是不好的做法。一般来说,大学必须为每位教师创建和分配它自己的唯一标识。
    因此,数据库包括一组实体集,每个实体集包括任意数量的相同型的实体。一个大学数据库可能包含许多其他的实体集。例如,除了跟踪记录教师和学生外,大学还具有关于课程的信息,用 course 实体集来表示,它带有属性 account_number 、 course_id 、 title 、 dept_name 和 credits 。在真实场景中,一个大学数据库可能会保持数十个实体集。
    实体集在 E - R 图中用一个矩形来表示,该矩形分为两个部分第一部分为灰色阴影,它包含实体集的名称第二部分包含实体集所有属性的名称。下图中的 E - R 图显示了 instructor 和 student 两个实体集。与 instructor 关联的属性是 ID 、 name 和 salary 。与 student 关联的属性是 ID 、 name 和 tot_cred 。作为主码部分的属性被加了下划线
    在这里插入图片描述


    联系集

    联系( relationship )是多个实体间的相互关联。例如,我们可以定义关联 Katz 教师和 Shankar 学生的 advisor 联系。这一联系指明 Katz 是学生 Shankar 的导师。联系集( relationship set )是相同类型联系的集合
    考虑 instructor 和 student 两个实体集。我们定义 advisor 联系集来表示学生和作为他们的导师的教师之间的关联。这一关联如图所示。为了保持图的简洁,只显示了两个实体集的某些属性。
    在这里插入图片描述
    E - R 模式中的一个联系实例( relationship instance )表示在所建模的现实企业中被命名的实体之间的一种关联。作为一个示例,一位教师 ID 为45565的 instructor 实体 Katz 和一名学生 ID 为12345的 student 实体 Shankar ,都参与到 advisor 的一个联系实例中。这一联系实例表示在大学中 Katz 教师指导 Shankar 学生。
    联系集在 E - R 图中用菱形表示,菱形通过线条连接到多个不同的实体集(矩形)。下图中的 E - R 图显示了通过二元联系集 advisor 关联的 instructor 和 student 两个实体集。
    在这里插入图片描述
    作为另一个示例,考虑 student 和 section 两个实体集,其中 section 表示ー门课的一次开课。我们可以定义 takes 联系集来表示学生及其所选课程段之间的关联。
    尽管在前面的示例中,每个联系集都是两个实体集之间的关联,但一般来说,联系集可以表示两个以上实体集的关联
    形式化地说,联系集是在n≥2个(可能相同的)实体集上的数学关系。如果 E1 , E2 ,… ,En 为实体集,那么联系集 R 是
    在这里插入图片描述
    实体集之间的关联被称为参与,即实体集 E1 , E2 ,… ,En参与( participate )联系集 R
    实体在联系中扮演的功能被称为实体的角色( role )。由于参与一个联系集的实体集通常是互异的,因此角色是隐含的并且一般并不指定。但是,当联系的含义需要解释时角色是有用的。当参与联系集的实体集并非互异时就是这种情况;也就是说,同样的实体集以不同的角色多次参与一个联系集在这类联系集中,有必要用显式的角色名来指明实体是如何参与联系实例的,这类联系集有时被称作递归的( recursive )联系集。例如,考虑记录大学中所开设的所有课程的信息的 course 实体集。我们用 course 实体的有序对来建模联系集 prereg ,以描述一门课程(C2)是另一门课程(C1)的先修课。每对课程中的第一门课程扮演C1课程的角色,而第二门课程扮演C2先修课的角色。按照这种方式,所有的 prereq 联系通过(C1,C2)对来表示,排除了(C2,C1)对。在 E - R 图中,我们通过在菱形和矩形之间的连线上进行标注来表示角色。下图给出了 course 实体集和 prereq 联系集之间的角色标识 course_id 和 prereg_id 。
    在这里插入图片描述
    联系也可以具有被称作描述性属性( descriptive attribute )的属性。作为联系的描述性属性的示例,考虑与 student 和 section 实体集相关联的 takes 联系集。我们可能希望存储联系的描述性属性 grade ,以记录学生在开设的课程中获得的成绩。
    联系集的属性在 E - R 图中通过未分割的矩形来表示。我们用虚线将此矩形与表示该联系集的菱形相连接。例如,下图显示了 section 和 student 实体集之间的 takes 联系集。我们将描述性属性 grade 附加到 takes 联系集上。一个联系集可以具有多个描述性属性;例如我们还可以在 takes 联系集上存储描述性属性 for_credit ,以记录学生选这门课是为了修学分,或是旁听这门课程(或非正式地随班听课)。
    在这里插入图片描述
    复杂的 E - R 设计可能需要拆分成多张可能位于不同页面的图联系集应仅显示在一个位置,但实体集可以在不止一个位置重复出现实体集的属性应在第一次出现时显示。后续出现的实体集应显示为不带属性的,以避免重复信息以及由此产生的在不同出现中显示的属性不一致的可能性
    相同的实体集可能会参与到多个联系集中。例如,假设学生可能是某门课程的助教。那么,除了参与 takes 联系集之外, section 和 student 实体集还可能参与 teaching assistant 联系集。
    我们之前看到的联系集的形式化定义将联系集定义为联系实例的集合。考虑 student 和 section 之间的 takes 联系。由于集合不能有重复项,因此一名特定学生只能与 takes 联系中的一个特定课程段有一个关联。从而,一名学生只能有一个与某课程段相关联的成绩,在这种情况下这是有意义的。但是,如果我们希望允许一名学生在同一课程段上取得不止一个成绩,我们需要有一个 grades 属性来存储一组成绩;这些属性称为多值属性,我们将在后面看到它们。
    advisor 和 takes 联系集给出了二元联系集( binary relationship set )的示例,即涉及两个实体集的联系集数据库系统中的大部分联系集都是二元的。然而,有时联系集会涉及多于两个实体集参与联系集的实体集的数目是联系集的度( degree )。二元联系集的 为2;三元联系集( ternary relationship set )的度为3。
    作为一个示例,假设我们有一个代表大学内开展的所有研究项目的 project 实体集,考虑 instrustor 、student 和 project 实体集。每个项目可以有多名参与的学生和多位参与的教师。另外,在项目中工作的每名学生必须有一位相关教师来指导该生在项目中的工作。目前,我们忽略项目和教师之间以及项目和学生之间的前两个联系,而关注在一个特定项目上由哪位教师指导哪名学生。
    为了表示这些信息,我们通过 proj_guide 三元联系集将三个实体集联系到一起,它关联 instructor 、 student 和 project 实体集。 proj_guide 的实例表示在一个特定项目上一名特定学生接受了一位特定教师的指导。注意,一名学生在不同项目中可以由不同教师指导,不能将这个联系描述成学生与教师之间的二元关系。
    非二元的联系集也可以在 E - R 图中容易地表示。下图展示了三元联系集 proj_guide 的 E - R 图表示形式。
    在这里插入图片描述


    复杂属性

    对于每个属性都有一个可取值的集合,称为该属性的( domain ),或者值集( value set )course_id 属性的域可能是特定长度的所有文本字符串的集合。类似地, semester 属性的域能是集合{秋,冬,春,夏}中的字符串。
    E - R 模型中使用的属性可以按照如下的属性类型来进行描述。

    • 简单( simple )和复合( composite )属性。迄今为止在我们的示例中出现的属性都是简单的,也就是说,它们不能被划分为子部分。而复合属性可以被划分为子部分(即其他属性)。例如, name 属性可被构建为一个包括 first_name 、middle_initial和last_name的复合属性。如果用户希望在一些场景中引用整个属性,而在另外的场景中仅引用属性的一部分,则在设计模式中使用复合属性是一种好的选择。假设我们要给 student 实体集增加一个地址。地址可被定义为具有 street、city、state和postal_code属性的复合属性address 。复合属性帮助我们把相关属性集合起来,使模型更清晰
      还要注意,复合属性的出现可以是有层次的。在 address 复合属性中,其子属性 street 可以进一步分为street_number、street_name和apartment_number 。下图描述了 instructor 实体集的这些复合属性的示例。
      在这里插入图片描述
    • 单值( single - valued )和多值( multivalued )属性。我们示例中的属性对一个特定实体都只有单独的一个值。例如,对某个特定的学生实体而言, student_ID 属于一个学生 ID 。这样的属性被称作是单值的。而在某些实例中,对一个特定实体而言,一个属性可能对应于一组值。假设我们往 instructor 实体集中添加一个number 属性,每位教师可以有零个、一个或多个电话号码,不同的教师可以有不同数量的电话号码。这种类型的属性被称作是多值的。作为另一个示例,我们往 instructor 实体集中添加一个dependent_name属性,它列出所有的家属姓名。这个属性将是多值的,因为任何一位特定的教师可能有零个、一个或多个家属。
    • 派生属性( derived atribute )。这类属性的值可以从其他相关属性或实体的值派生出来。例如,假设 instructor 实体集有一个 students_advised 属性,它表示一位教师指导了多少名学生。我们可以通过统计与一位教师相关联的所有 student 实体的数目来导出这个属性的值。
      作为另一个示例,假设 instructor 实体集具有 age 属性,它表示教师的年龄。如果 instructor 实体集还具有 date of birth 属性,我们就可以从 date of birth 和当前日期计算出 age 。因此 age 就是派生属性。在这种情况下, date of birth 可以称为基( base )属性,或存储的( stored )属性派生属性的值并不存储,而是在需要时被计算出来。下图展示了怎样用 E - R 符号来表示复合属性。
      在这里插入图片描述
      这里具有成员属性 first_name 、middle_initial和last_name的复合属性 name 代替了 instructor 的简单属性 name 。作为另一个示例,假定我们给 instructor 实体集增加一个地址。地址可以被定义为具有 street 、city 、state和postal_code属性的复合属性 address 。 street 属性本身也是一个复合属性,其成员属性为street_number、street_name和apartment_number 。该图还给出了一个由“ {phone_number)”表示的多值属性phone_number ,以及一个由“age”表示的派生属性age。
      当实体在某个属性上没有值时认为该属性取空( null )值空值可以表示“不适用”,即该实体的这个值不存在。例如,没有中间名的人可以将middle_initial 属性设置为空。空还可以表示属性值是未知的未知的值要么是缺失的(值存在,但我们没有该信息),要么是不知道的(我们并不知道该值是否确实存在)
      例如,如果一位特定教师的 name 值为空,我们推测这个值是缺失的,因为每位教师肯定有一个名字。 apartment_number 属性的空值可能意味着地址中没有包括公寓号(不适用),公寓号是存在的但是我们并不知道是什么(缺失的),或者我们不知道公寓号是否是该教师地址的一部分(不知道的)。

    映射基数

    映射基数(mapping cardinality)或基数比率表示一个实体能通过一个联系集关联的另一些实体的数量。映射基数在描述二元联系集时最有用,尽管它们可用于描述涉及多于两个实体集的联系集。
    对于实体集A和B之间的二元联系集R来说,映射基数必然是以下情况之一:

    • 一对一( one - to - one )。 A 中的一个实体至多与 B 中的一个实体相关联,并且 B 中的一个实体也至多与 A 中的一个实体相关联。
    • 一对多( one - to - many )。 A 中的一个实体可以与 B 中任意数量(零个或多个)的实体相关联,而 B 中的一个实体至多与 A 中的一个实体相关联。
    • 多对一( many - to - one )。 A 中的一个实体至多与 B 中的一个实体相关联,而 B 中的一个实体可以与 A 中任意数量(零个或多个)的实体相关联。
    • 多对多( many - to - many )。 A 中的一个实体可以与 B 中任意数量(零个或多个)的实体相关联,而且 B 中的一个实体也可以与 A 中任意数量(零个或多个)的实体相关联。

    一个特定联系集的适当的映射基数显然依赖于该联系集所建模的现实世界的情况。
    作为示例,考虑 advisor 联系集。如果一名学生可以由多位教师指导(比如学生被联合指导的情况),那么此联系集是多对多的。如果一所特定的大学施加了一种约束,一名学生只能由一位教师指导,而一位教师可以指导多名学生,那么 instructor 到 student 的联系集是一对多的。因此,映射基数可用于指定关于在现实世界中允许哪些联系的约束。
    在 E - R 图表示法中,我们通过在联系集和相关实体集之间绘制有向线段(→)或无问线段(一)来指明联系上的基数约束。具体来说,以大学为例存在以下情况:

    • 一对一( one - to - one )。我们从联系集到两个实体集各画一条有向线段。例如,在图7-11a中,指向 instructor 和 student 的有向线段表示一位教师最多可以指导一名学生,并且一名学生最多可以有一位导师。
    • 一对多( one - to - many )。我们从联系集到联系的“一”侧画一条有向线段。因此,在图7-11b中,有一条从 advisor 联系集到 instructor 实体集的有向线段,以及一条到 student 实体集的无向线段。这表示一位教师可以指导多名学生,但一名学生最多只能有一位导师。
    • 多对一( many - to - one )。我们从联系集到联系的“一”侧画一条有向线段。因此,在图7-11c中,有一条从 advisor 联系集到 instructor 实体集的无向线段,以及一条到 student 实体集的有向线段。这表示一位教师最多可以指导一名学生,但一名学生可以有多位导师。
    • 多对多( many - to - many )。我们从联系集到两个实体集各画一条无向线段。因此,在图7-11d中,从advisor联系集到instructor和student实体集都有无向线段。这表示一位教师可以指导多名学生,并且一名学生可以有多位导师。
      在这里插入图片描述
      如果实体集 E 中的每个实体都必须参与到联系集 R 中的至少一个联系中,那么实体集 E 在联系集 R 中的参与就被称为是全部的。如果 E 中一些实体可能不参与到 R 的联系中,那么实体集 E 在联系集 R 中的参与就被称为是部分的
      例如,一所大学可能要求每名学生至少有一位导师;在 E - R 模型中,这相当于要求每个 student 实体通过 advisor 联系至少与一位教师相关联。因而, student 在 advisor 联系集中的参与是全部的。而一位教师不是必须要指导学生。因此,可能只有某些 instructor 实体通过 advisor 联系同 student 实体集相关联,那么 instructor 在 advisor 联系集中的参与是部分的。我们用双线表示一个实体在联系集中的全部参与
      E - R 图还提供了一种方式来描述更复杂的约束,这种约束限制了每个实体参与联系集中的联系的次数线段上可以有一个关联的最小和最大基数,用l…h的形式表示,其中l表示最小基数, h 表示最大基数最小值为1表示实体集全部参与联系集,即实体集中的每个实体在该联系集中的至少一个联系中出现最大值为1表示实体至多参与一个联系,而最大值为*代表没有限制
      例如,考虑下图。 advisor 和 student 之间的线段有1…1的基数约束,这意味着基数的最小值和最大值都是1。也就是说,每名学生必须有且只有一位导师。 advisor 和 instructor 之间的线段有0.*的限制,说明一位教师可以有零名或多名学生。因此, advisor 联系是从 instructor 到 student 的一对多联系,更进一步地讲, student 在 advisor 中的参与是全部的,这意味着一名学生必须有一位导师。
      在这里插入图片描述
      很容易将左侧的边上的0…曲解为advisor 联系是从 instructor 到 student 的多对一联系,这正好和正确的解释相反。
      如果两条边都有最大值1,那这个联系是一对一的。如果我们在左侧的边上指定基数限制为1…
      ,就可以说每位教师必须指导至少一名学生。
      上图中的 E - R 图的另一种替代方式是画一条从 student 到 advisor 的双线,以及一个从 advisor 到 instructor 的箭头,来替换所显示的基数约束。这种替换方式可以强制实施同图中所示约束完全一样的约束。
      在非二元的联系集中,我们可以指定多对一联系的某些类型。假设一名学生在一个项目上最多只能由一位教师指导。这种约束可以通过从 proj_guide 指向 instructor 的箭头来表示。
      我们至多允许一个箭头从一个非二元的联系集指出,因为在 E - R 图中,从一个非二元联系集指出两个或更多的箭头可以用两种方式来解释。

    展开全文
  • 数据库实体联系模型与关系模型

    千次阅读 2020-03-02 19:11:33
    数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。...因此,规划数据构成及数据关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是...

    数据库设计是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。例如,编程微课是在线编程教育项目,该项目涉及到课程、学生、老师、学习资料等数据,这些数据都要被存储下来,并且能够方便的增加、修改、删除和查询。这就需要规划课程、学生、老师、学习资料等数据构成以及相互之间的关系。因此,规划数据构成及数据间关系,并应用某一具体的数据库管理系统如MySQL构建数据库的过程就是数据库设计。

    由于项目需求的易变性和数据的复杂性,数据库设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程。数据库设计步骤如下图所示:

     

     

                                           

                                                                    图2-5 数据库设计过程流程图

     

    需求分析阶段主要分析项目涉及的业务活动和数据的使用情况,弄清所用数据的种类、范围、数量以及在业务活动中的存储情况,确定用户对数据库系统的使用要求和各种约束条件等,形成数据库需求说明书

    概念结构设计阶段根据数据库需求说明书,创建数据库概念结构,描述概念结构的有力工具是ER模型

    ER模型表示的概念结构模型独立于任何一种数据模型,并独立于任何一个具体的数据库管理系统。因此,需要把概念结构设计阶段设计的ER模型转换为关系数据模型二维表结构,此阶段为逻辑结构设计阶段

    物理设计阶段是在计算机的物理设备上确定应采取的数据存储结构和存取方法,以及如何分配存储空间等问题。关系数据库物理设计的主要工作是由系统自动完成的,数据库设计者只要关心索引文件的创建即可

    验证设计是在上述设计的基础上,收集数据并建立数据库,运行应用任务来验证数据库的正确性和合理性,当发现设计问题时,可能需要对数据库设计进行修改。

     

    实体联系模型(ER图)

    当前常用的概念数据模型是ER模型。ER模型描述数据库的概念模式,不考虑数据库的逻辑与物理结构,它充分反映现实世界,易于理解,将现实世界的事物以信息结构的形式很方便地表示出来。

    例如,课程是编程微课的主要内容,课程涉及到老师、学生等对象等实体,进一步分析还涉及到课程视频、课程资料、课程价格等各种数据。在用ER模型对课程分析和描述中,对这些实体以及实体之间的联系给出了确切的定义。

    ER模型有四个概念,分别是实体、属性、联系、实体集

     

    实体

    实体是客观存在并且可以互相区分的事物,可以是人或物,也可以是抽象的概念。在现实世界,实体并不是孤立存在的,实体与实体之间也存在联系。例如,课程与学生之间存在学生学习课程的联系,课程与老师之间存在老师创建课程的联系。

     

    属性

    每个实体具有的特征称为属性,一个实体可以由若干属性来描述,属性都有其取值范围,称为值集或值域。例如,课程实体可以由课程编号、课程名称、授课老师、类别、简课程介、价格等属性组成。唯一地标识实体的属性或属性组称为实体的关键字。例如,属性值“20180603,Java编程基础,郎老师,编程语言,课程以浅显易懂的语言,以常见的生活场景为案例,带领大家逐步进入计算机编程世界,86”。其中20180603是课程编号的属性值,该编号在在所有的课程实体中是唯一的,该属性就是课程实体的关键字。

     

    联系

    实体不是孤立存在的,实体之间是有联系的。实体之间的联系可以分为三类:一对一(1:1)、一对多(1:n)和多对多(m:n)。例如,一个老师可以创建多个课程,老师与课程的联系就是一对多的;如果一个老师只能创建一个课程,则老师和课程的联系就是一对一的。在进行问题分析时,要根据客观实际,抓住问题实质进行现实世界的抽象

     

    实体集

    具有相同属性的实体的集合称为实体集。在同一实体集中,每个实体的属性及其值域是相同的,但可能取不同的值。例如,所有的课程实体组成课程实体集,所有的老师实体组成老师实体集。

     

    绘制ER图

    ER图是ER模型的图形化描述。俗话说:一张图胜过千言万语,用ER图可以清晰地描述出ER模型的结构。

    规范的ER图可以帮助人们对ER模型的统一认识,便于沟通和讨论,有助于工作效率的提高。它使用一组预定义的符号来表示ER模型的实体、属性、联系等概念,这些预先定义的符号已经标准化,从而让全世界的开发人员都可以采用这些符号而不会引起混淆。ER图的基本图素有如下的约定:

     

                           

                                                                              图 2-6 ER图的基本图素

    (1)用长方形表示实体,在框内写上实体名。

    (2)用椭圆表示实体的属性,并用连接线把实体与属性连接起来,属性如果是实体的关键字,可以用双线椭圆表示。

    (3)用菱形表示实体间的联系,菱形内写上联系名,用连接线把菱形分别与有关的实体相连接,在连接线旁标上连接的类型,如果联系也有属性,则联系的属性和菱形连接。

     

                                            

                                                                            图 2-7 用ER图表示的课程管理

    图2-7所示为用ER图表示一个课程管理,这是一个简化的课程管理模型,课程由老师创建并属于老师,两者之间是一对多的联系。课程与学生直接存在学习的联系,课程与学生是多对多的联系,因此联系也有属性,分别是学生编号和课程编号。双线椭圆表示的属性编号是实体的关键字。

    通过图2-7可以看出,ER模型是依赖业务运营方式的,它是企业运营方式的信息化描述。企业业务的改变直接影响着ER图的结构和实体间的联系。即使是相同的业务,数据库设计人员侧重分析的数据不同,给出的ER图也可能是不同的。

    对于设计比较复杂的系统来说,有时为了使ER图简洁明了,在ER图中可以省略属性,只画出实体和联系,将属性以表格的形式另外列出。如图2-8所示,给出的是不包含属性的ER图,

     

                                                    

                                                                     图 2-8 不包含属性的课程管理ER图

    ER图直观易懂,是系统开发人员和客户之间很好的沟通工具。对于客户来说,它概况了企业运营的方式和各种联系;对于系统开发人员来说,它从概念上描述了一个应用系统数据库的信息组织。因此,如能准确画出企业运营方式的ER图,就意味着搞清楚了企业的业务运营方式,以后可以根据ER图,结合具体的数据库管理系统,把ER图转换为数据库管理系统所能支持的数据模型。这种逐步推进的数据库设计方法已经普遍应用于数据库设计中,画出应用系统的ER图成为数据库设计的一个重要步骤。

     

    关系模型

    ER图给出了实体联系模型的图形化描述,增强了开发人员与客户的沟通能力。在需求开发阶段ER模型是非常重要的,也是从企业的业务运营方式到概念模型的映射。

    到了设计阶段。就需要在概念模型的基础上建立关系模型,关系模型是用二维表来表示实体集属性间的关系以及实体间联系的形式化模型。它将用户数据的逻辑结构ER模型归纳为满足一定条件的二维表的形式。

    ER模型中的一个实体或联系对应一张二维表,ER模型中的实体属性转换为二维表的列,也可称为属性,每个属性的名称称为属性名,也可称为列名。每个属性取值范围称为该属性的域。二维表每个属性或列取值后的一行数据称为二维表的一个元组,也可以称为一条记录。二维表可以包含有限个不重复的记录。

    图2-9给出了实体“课程”、“老师”转化为关系模型的二维表。每个课程是课程表中的一条记录或一个元组,即一行;同样,每个老师的属性也反映在老师表中的一行;课程表和老师表的联系反映在课程表属性“老师编号”字段上,该字段和老师表的编号字段为同一个字段,因此通过“老师编号”字段可以确定是哪位老师建立的课程。

     

                               

                                                                   图 2-9 由实体课程和老师转化的课程和

    二维表的不可重复性可知,关系中必然存在一个属性或属性组,能够唯一标识一个元组,该属性或属性组称为关键字。当关系中存在多个关键字时,称它们为候选关键字,指定其中一个为主关键字,简称主键。

    设计二维表时,关系应满足如下性质。

    (1)表中每一列的取值范围都是相同的,也就是数据类型相同。

    (2)不同列的取值范围可以相同,但列名称不能相同。

    (3)表中列的次序可以变换,不影响关系的实际意义。

    (4)同一个表中,不允许存在两个完全相同的元组,这是集合的一个基本性质,保证了关系中元组的唯一性。

    (5)行的次序可以任意交换。

    (6)关系中的任何一个属性值都必须是不可分的元素。

    展开全文
  • 6 数据库设计:实体-联系方法

    千次阅读 2022-01-10 16:01:00
    6 数据库设计:实体-联系方法 数据库的设计方法和生命周期 数据库设计方法 ① 实体-联系方法 ② 属性-联系方法 实体-联系方法 围绕实体展开 经历需求分析、概念设计、物理设计、数据库实现、运行维护等阶段 先建立...

    6 数据库设计:实体-联系方法

    数据库的设计方法和生命周期

    数据库设计方法

    ① 实体-联系方法

    ② 属性-联系方法

    实体-联系方法

    围绕实体展开

    经历需求分析、概念设计、物理设计、数据库实现、运行维护等阶段

    先建立概念模式,再转换为关系模式。

    概念设计:

    概念模式与具体的DBMS无关,通常使用实体-联系图表示,也叫E-R图

    逻辑设计:

    将概念模式转换成相应的逻辑模式,获得复合选定DBMS数据模型的逻辑结构,比如关系模式。

    属性-联系方法

    与实体-联系方法区别:没有概念设计阶段,在需求分析的基础上直接采用属性-联系方法进行逻辑设计

    也就是把数据库保存的所有属性放在一个关系表中,进而通过属性之间的联系进行逻辑设计,进而进行优化。

    实体-联系方法:以实体为中心,着重于一个关系模式基本对应一个实体或联系,即关系模式与实体或联系之间基本是一一对应的。

    属性-联系方法:以属性为中心,着重于属性之间的依赖关系。

    宏观上采用实体-联系方法,微观上采用属性-联系方法。对概念模式转换而来的关系表运用属性-联系方法进行分析优化。

    基本E-R模型

    实体-联系方法是先基于实体-联系模型(也叫E-R模型)进行概念模式,然后再转化为关系模式。

    概念模式与具体的DBMS无关,通常使用实体-联系图表示,也叫E—R图。

    用来区分一个实体集中不同的一个个实体的最小的属性集或者是属性组(一组属性),称为实体标识符,(简称标识符)也称为实体主键(简称主键)。联系也有属性

    实体:

    E-R图主要包括实体和联系以及它们各自的属性。

    实体:现实世界中客观存在的一个事物或对象,可以是具体可触及的实物,也可以是抽象的对象。

    同类实体组成的集合称为实体集。

    例如:一个考生就是一个实体,所有考生就是一个实体集,把实体和实体集称为实体。

    在E-R图中,实体用方框表示,方框内表示实体的命名。

    联系:

    实体不是孤立的,实体间总存在一些联系。一个或多个实体之间的关联关系称为联系。

    E-R图中,联系用菱形表示,并用线段将其与相关的实体联系起来。

    属性:

    实体通常通过一组属性描述,同类实体通常使用相同属性组来描述。

    属性可能取值的范围称为属性域,称为属性的值域。

    能够并且用以区分一个实体集中不同实体的最小属性集(组)称为实体标识符,或称为实体主键,组成主键的属性称为标识属性

    联系也会有属性。

    E-R图中,属性用椭圆表示,用线段将其与相关的实体或联系连接起来,以加下划线的方式标示出标识属性

    E-R图主要包括实体和联系以及它们各自的属性。

    基本E-R图设计

    简单属性和复合属性

    简单属性是不可在分割的属性,复合属性是可再分解为其他属性的属性。

    单值属性和多值属性

    单值属性指的是同一个实体在该属性上只能取一个值。多值属性指同一个实体的某些属性可能取多个值。

    可以用双线椭圆来表示多值属性

    存储属性和派生属性

    派生属性:从其他属性的值推导出的属性。一般不必存储在数据库内。

    其他需要存储的属性称为存储属性。

    派生属性用虚线椭圆与相应实体相连。

    允许为Null的属性

    联系的设计

    联系的元数

    联系关联的实体集个数,称为该联系的元数或度数。

    一元联系:同类实体集内部实体与实体之间的联系。

    二元联系:两个不同实体集中实体之间的联系。

    三元联系:三个不同实体集中实体之间的联系。

    联系的基数

    如果实体集 E 1 E_1 E1 E 2 E_2 E2之间有二元联系,则把参与该联系的实体数目称为映射基数。

    1:1

    一对一:如果实体集 E 1 E_1 E1中每个实体至多和实体集 E 2 E_2 E2中的一个实体有联系,反之亦然。

    1:N

    一对多:如果实体集 E 1 E_1 E1中的每个实体可以与 E 2 E_2 E2中的任意个(0个或多个)实体间有联系,而 E 2 E_2 E2中的每个实体至多和 E 1 E_1 E1中一个实体有联系,则称为一对多联系。

    E-R图中,有箭头表示1,无箭头表示多。

    M:N

    多对多:如果实体集 E 1 E_1 E1中的每个实体可以与实体集 E 2 E_2 E2中的任意个(0个或多个)实体有联系,反之亦然。

    有时对映射基数做出精确描述,即最小映射数目min和最大映射数目max。用范围min…max表示

    最少映射数目表示该实体集中每个实体最少参与联系数,最大则是最多参与联系数。*表示无上限。

    参与度

    如果实体集S中的每个实体都参与联系集 L L L的至少一个联系中,称实体集S完全参与联系集 L L L

    相应的部分参与,同理。

    完全参与双线表示,部分参与单线表示。

    基本E-R图转换为关系模式

    ① 一个实体转换为一个关系模式,实体的一个属性对应为该表的一个列,实体的主键就是表的主键。

    ② 一个联系转换为一个关系模式,联系的属性对应表的属性,另外并上所有参与联系的各实体主键的并集

    由联系转换来的表的主键,有以下三种情况:

    1. 联系是 M : N M:N M:N的,主键是所有参与联系的各实体主键的并集。
    2. 联系是 1 : N 1:N 1:N的,主键是多端实体主键。
    3. 联系是 1 : 1 1:1 1:1的,主键是任意端实体主键。

    ③ 主键相同的关系模式可合并。

    1. 1 : 1 1:1 1:1联系转换的表可与任一端实体对应的表合并。
    2. 1 : N 1:N 1:N联系转换的表可与== N N N端对应的表==合并。

    如果E-R图涉及自环联系,先将自环联系变成非自环联系。

    扩展E-R图及到关系模式的转换

    弱实体

    如果一个实体对于另一个实体(强实体)具有很强的依赖性,而且该实体主键的一部分或全部从其所依赖的强实体中获得,则该实体为弱实体。

    也就是说,所有属性都不足以形成主键的实体称为弱实体。

    其属性可形成主键的实体集称为强实体集。

    弱实体用两个方框表示,弱实体联系用两个菱形框表示。

    转换规则

    ① 一个关联弱实体的联系和弱实体一起转换为一个关系模式:弱实体属性集和关联弱实体的联系的属性集,以及其依赖的强实体主键的并集就是表的属性集

    ② 如果弱实体在联系的基数约束上属于多端,则主键是参与联系的强实体主键并上弱实体标识属性

    ③ 如果弱实体在联系的基数约束上处于1端,则主键是参与联系的强实体主键

    父子实体

    一般化:根据实体间具有的共同特征,将多个实体集综合成一个较高层次实体集的过程,称为一般化。

    高层实体集和底层实体集也称父实体集和子实体集。

    通过▽中的标记为ISA来表示。(自底向上)

    特殊化(自顶向下)

    根据实体间的区别在实体集内部进行分组的过程称为特殊化。

    从单一的实体集出发,通过创建不同的低层实体集来强调同意实体集中不同实体的差异。

    低层实体集继承高层实体集的属性,与其所参与的联系。

    特殊化与一般化互为逆过程。

    表创建父子实体集:

    ① 为高层实体集创建一个表;为每个低层实体集创建一个表,并加入高层实体集的主键属性。

    ② 如果每个高层实体肯定会对应于某个低层实体集,并且只会对应于一个低层实体集,则只需为每个低层实体集创建表

    大数据E-R图及其到关系模式的转换

    不仅需要对当前状态数据关注,还要对过往业务数据重视。

    图书馆结束例子:5

    如果只考虑存储当前书书否被借走,则一个人能借走多本书,而一本书能被多个人借。采用 1 : N 1:N 1:N,无法统计这本书借阅次数

    1 : N 1:N 1:N改为 M : N M:N M:N,有读者号和ISBN共同作为主键。

    但是这样同一个读者借一本书,只能保存最后一次借阅的信息

    需要以ISBN和借书时间共同作为主键,可以采用 1 : n 1:n 1:n

    但是现在图书馆有多个同一本书的副本,同一ISBN的图书也可以同时借给多个读者,因此采用 M : N M:N M:N,并==读者号,ISBN,借书时间==共同作为主键。

    习题:

    一般化中,实体成员之间的差异被最小化

    特殊化中,实体成员之间的差异被最大化

    同一实体集的实例之间的联系称为递归联系

    基本E-R图转换为关系模式学习体会分享与碰到问题探讨,设计一个图书馆数据库,此数据库保存每个借阅者每次节约图书的记录,包括:读者号,姓名,地址,性别,年龄,部门。对每本书存有:书号,书名,作者,出版社。每当有一本书被借还时,保存每次借阅信息:借出日期、应还日期、归还日期。要求:给出 E-R 图,并转换成关系模式。请以图片形式上传您画出的E-R 图及关系模式,给出相应的说明

    img

    ★★★★★ 逻辑模式通常使用实体-联系图表示。(错)概念模式

    含弱实体E-R图向关系模式转换时,一个关联弱实体的联系和弱实体一起转换为一个关系模式,主键是参与联系的强实体的主键。(错)

    根据实体间的区别在实体集内部进行分组的过程称为特殊化。(对)

    概念模式通常使用实体-联系图表示。(正确)

    属性联系方法,以属性为中心,着重于一个关系模式,基本对应一个实体或联系,即关系模式与实体或联系之间基本是一一对应的。(错) (实体-联系方法)

    一个 1:1 联系转换的表可与任一端实体对应的表合并在一起。(正确)

    含弱实体 E-R 图向关系模式转换时,一个关联弱实体的联系和弱实体一起转换为一个关系模式,主键是参与联系的强实体的主键。(错误)

    解释:弱实体多端:(弱+强)主键;强实体多端:强主键

    低层实体集所特有的联系也适用于其高层实体集。(错误)只适用于自己

    E-R 模型由___实体、属性、联系____组成。

    有两个不同的实体集,它们之间存在着一个 1:1 联系和一个 M:N 联系,那么根据 ER 模型转换成关系模型的规则,这个 ER 结构转换成的关系模式个数为______3__。

    ==解释:==一对一不为联系单独创建表,多对多额外创建一个表。

    当同一个实体集内部的实体之间存在着一个 1:N 联系时,那么根据 ER 模型转换成关系模型的规

    则,这个 ER 结构转换成的关系模式个数为_______1__。

    ==解释:==一个一对多的联系,联系可以与多端进行合并。

    解释:弱实体多端:(弱+强)主键;强实体多端:强主键

    低层实体集所特有的联系也适用于其高层实体集。(错误)只适用于自己

    E-R 模型由___实体、属性、联系____组成。

    有两个不同的实体集,它们之间存在着一个 1:1 联系和一个 M:N 联系,那么根据 ER 模型转换成关系模型的规则,这个 ER 结构转换成的关系模式个数为______3__。

    ==解释:==一对一不为联系单独创建表,多对多额外创建一个表。

    当同一个实体集内部的实体之间存在着一个 1:N 联系时,那么根据 ER 模型转换成关系模型的规

    则,这个 ER 结构转换成的关系模式个数为_______1__。

    ==解释:==一个一对多的联系,联系可以与多端进行合并。

    展开全文
  • **ER图中,两个实体类之间是否可以有多个关系?** 比如说博客系统中用户可以发布博客,也可以点赞博客。 博客系统数据库中有用户表、点赞表和评论表。 那用户实体和博客实体之间有发布和点赞两种关系了。 ...
  • 实体-联系模型(Entity-Relationship)

    千次阅读 2021-04-06 19:55:37
    第二讲 实体-联系模型实体-联系模型(Entity-Relationship)2.1实体2.2联系2.3实体-联系图2.4弱实体集 2.1实体 实体:客观存在并且可以互相区分的任何事物,可以是实际对象,也可以是抽象概念。 属性:实体所代表的...
  • SOA的挑战:实体集合

    2021-02-03 17:27:33
    在大的面向服务的架构(SOA)中使用实体集合(EA),来在企业的不同服务集成重复的信息,例如人力资源系统,支付系统,或者是收益系统。本页内容概述介绍实体集合实体集合服务设计问题平台支持结论概述面向服务的...
  • 数据库实体间关系笔记

    千次阅读 2017-03-30 09:12:49
    判断实体间关系只需要问自己两个问题: 1. 实体A包含实体B吗? 2. 实体B包含实体A吗? - 都回答‘是’-->M:N - 都回答‘否’-->1:1 - 答案不同 --> 1:N ---- 当实在是不能分辨两个实体间的关系是 一对多 还是 多...
  • E-R图(实体-联系图)

    千次阅读 2021-07-21 14:31:26
    实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、...
  • 数据库——实体联系模型

    千次阅读 2020-02-28 20:04:55
    1.实体 1.实体:客观存在并且可以相互区分的任何... 对于同一个实体,刻画它的属性集可以有不同的选择。 3.实体集:实体集是具有相同属性的实体的集合  实体实体集的型都用其属性名的列表表示  例如,学生...
  • 实体联系

    千次阅读 2019-09-04 19:42:42
    3.4 实体-联系图 为了把用户的数据要求请楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型(也称 为信息模型),概念性数据模型是一种面向问题的数据模型,是按照用户的观点对数据建立的模型,它描述了 从...
  • 第八章 ER建模 实体联系建模

    千次阅读 2021-05-14 17:28:15
    Entity-Relationship Modeling – 实体联系建模 1 .实体类型 1.1 实体类型 定义:被企事业单位认可的、能够独立存在的一组具有相同属性的对象 ER模型的基本概念是实体类型,实体类型代表现实世界中具有相同属性的一...
  • 实体联系模型

    千次阅读 2018-06-25 01:36:53
    一、实体联系(E-R)数据模型概述 该数据模型基于对现实世界的这样一种认识:世界由一组称为实体的基本对象及这些对象联系组成,该模型是一种语义模型,模型的语义方面主要体现在模型力图去表达数据的意义。...
  • 什么实体-联系图(ER图)

    万次阅读 2013-07-09 09:08:19
    所谓符合信息是指具有一系列不同性质或属性的事物,仅单个值得事物(例如,宽度)不是数据对象。数据对象可以是外部实体(例如,产生或使用信息的任何事物)、事物(例如,报表)、行为(例如,打电话)、事件...
  • (1)实体可以是有形的、实在的事物(如每个员工),可以是抽象的、概念上存在的事物(如一个部门)。 (2)实体的特征:独立存在、可区别于其他实体。 (3)实体集:具有相同类型及相同性质的实体集合。实体集...
  • 数据的四种常用的数据模型以及三实体之间的联系三个世界现实世界信息世界两个实体联系数据模型层次模型 三个世界 现实世界 现实世界,客观存在的世界。 信息世界 概念:信息世界是现实在人们头脑中的反映,...
  • 实体-联系图(ER图)

    万次阅读 多人点赞 2018-10-15 19:41:46
    我们通常用实体联系和属性这三个概念来理解现实问题,因此ER模型比较接近人的思维方式。此外,ER模型用简单的图形符号表达系统分析员对问题域的理解,不熟悉计算机技术的用户也能理解它,因此,ER模型可以作为用户...
  • mysql 第三天 实体实体的关系

    千次阅读 2019-06-17 12:25:03
    基本概念 实体(Entity): 指现实中具体存在的可指称的“某物”。 一个表中的一行数据实际就是指对某物的描述性数据,所以一行数据...实体间关系:一对一关系,一对多关系,多对多关系。 图示如下: ...
  • 通过知识抽取, 我们已经得到了海量的实体、 关系, 但是由于来源的不同, 会存在很多噪声数据, 重复的数据, 因此我们还需要对其进行清理和整合, 这个过程称为知识融合。 知识融合,即合并两个知识图谱(本体),...
  • 什么实体关系图(ERD)?

    千次阅读 2020-07-13 14:53:19
    什么实体关系图(ERD)? 转载自:https://www.visual-paradigm.com/cn/guide/data-modeling/what-is-entity-relationship-diagram/ 数据库是软件系统中不可或缺的一个组成部分,若能在数据库工程中好好利用 ER 图...
  • MySql (四) ER图与实体关系映射

    千次阅读 2021-03-13 15:43:24
    ERMaster初步掌握数据库设计的方法实体关系映射什么是数据库的设计?数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种...
  • 文章目录一、实体关系建模1.概念(1)实体、关系和属性(2)约束2.ER图绘制3.实体关系模型存在的问题(1)Fan Traps(2)Chasm Traps二、增强实体关系建模1.Specialization/Generalization(1)Superclasses and ...
  • 数据规范化 软件系统经常使用各种长期保存的信息,这些信息通常以一定方式组织并存储在数据库或文件中,为减少数据冗余,避免...第二,随着范式级别的提高,数据的存储结构与基于问题域的结构的匹配程度也随之下降
  • E-R实体关系介绍

    千次阅读 2018-11-06 17:28:39
    E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。 它是描述现实世界关系概念模型的有效方法。是表示概念关系模型的一种方式。用“矩形框...
  • 实体间联系方式

    千次阅读 2009-02-25 14:31:00
    实体间联系情况比较复杂,就其联系方式来说,我们可把它分为以下三种:1):一对一联系(简记1:1) 若两个同型实体集中,一方的一个实体唯一与另一方的一个实体相对应,则称为1:1联系。(如班级和正班长关系:假设一个...
  • 什么是用户实体行为分析(UEBA)

    千次阅读 2022-03-24 15:15:38
    UEBA全名User and Entity Behavior Analytics ,即为用户实体行为分析。 Gartner 对 UEBA 的定义是“UEBA 提供画像及基于各种分析方法的异常检测,通常是基本分析方法(利用签名的规则、模式匹配、简单统计、阈值等...
  • 如何将实体关系图转换成关系模式

    千次阅读 2021-12-19 00:01:08
    首先,通过visio绘制一个与学生实体有联系的几个E-R图。如下图所示 其中矩形表示的是实体(班级,学生,课程,学习账号),椭圆表示的是属性,菱形表示的是联系(拥有,持有,学习)。 上图实体实体...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,451
精华内容 22,980
热门标签
关键字:

不同实体间可以有什么联系