数据库系统结构_实体联系模型

实体联系模型

   学习数据库基础知识就不能不去学习<概念模型>设计方法,而实体联系模型(ER模型)是被广泛采用的设计方法.

   首先我们来解释下ER模型的名词:

   (01)  实体、实体类型、实体集 

   解释实体是一个数据对象,指应用中可以区别的客观存在的事物,如人、部门、表格、物体、项目等那么同一类实体就构成实体集(EntitySet). 实体内涵实体类型(Entity Type)来表示.实体类型是对实体集实体的定义.

   (02)  联系、联系类型、联系集

   解释现实世界中,实体不是孤立的,实体之间是有联系的.例如 "职工在某部门工作是实体"职工""部门"之间的联系........联系是一个或多个实体之间的关联关系.同一类联系构成联系集(Relationship Set).联系的内涵用联系类型(Relationship Type)来表示.联系类型是对联系集中联系的定义.

   (03)  属性、基本属性、复合属性、单值属性、多值属性、导出属性、空值属性

   解释: 实体的某一特性(C#(面向对象中)特性和属性是有区别的,只是叫法上不同而已)称为属性.如 人有姓名、性别等在一个实体中,能够唯一标示实体的属性或属性集称为"实体标识符".但一个实体只能有一个"实体标识符"。没有候选标识符.实体标识符有时也称为实体的主键.ER图中,属性用椭圆型框表示,加下划线的属性为标识符.

   

   为了在ER图中准确设计实体或联系的属性,需要把属性的种类、取值特点等先了解清楚.

   根据属性类别可分为基本属性复合属性基本属性是不可能在分割的属性.譬如:性别和年龄都是基本属性.复合属性是可再分解为其他属性的属性(即属性嵌套).譬如:地址---->你可以再分割为省()名、区名、街道等.它形成了一种属性的层次结构.

   

 

   根据属性取值特点又可分为单值属性多值属性.单值属性指的是同一实体的属性只能取一个值。譬如,同一个学生只能具有一个年龄,所以年龄属性是一个单值属性.多值属性指同一实体的某些属性可能取多个值.譬如:一个人的学位是一个多值属性(学士、硕士等),它用双椭圆形表示.(我没有找见双线椭圆,俩个嵌套太难看了,有谁回画说下...先谢了)

   通过具有相互依赖的属性推导而产生的属性称为导出属性.例如,一个人的出生年份可以从年龄推导出来等.导出属性的值不仅可以从其他属性导出,也可以从有关的实体导出.导出属性用虚线椭圆与实体相连.(自己上网查下资料)

   当实体在某个属性上没有值时应使用空值(Null).此为空值属性,在数据库中,空值是一种很难处理的一种值.

:某员工尚未婚配,那么该员工的配偶属性将是Null,表示"无意义".Null还可以用于值未知时.未知值可能是缺失的(即值存在,只不过我们没有该信息)或不知道的我们不能确定该值是否真的存在.譬如某员工在配偶出填上空值(Null),实际上至少有以下三种情况.

1.该员工尚未婚配,即配偶值无意义(这种空值,称为:"占位空值")

2.该员工已婚配,即配偶名尚不知(这种空值,称为"未知空值")

3.该员工是否婚配,还不能得知.

   (04)  联系的元数  联系的联通词  联系的基数

   解释:联系是多个实体的相互关联.一个联系设计到的实体集个数,称为该联系的元数或度数(Degree).通常,同一个实体集内部实体之间的联系,称为一元联系,也称为递归联系;俩个不同实体集实体之间的联系,称为二元联系;三个不同实体集实体之间的联系,称为三元联系;以此类推.

   联系涉及到的实体集之间实体对应的方式,称为联系的连通词.这里的对应方式,是指实体集E1中一个实体与实体集E2中一个还是多个实体有联系.二元联系的连通词有四种:1:1,1:N,M:N,M:1.由于M:11:N的反面,因此通常就不再提及.1:1,1:NM:N的定义会在接下来会举例.类似也可以是一元联系,三元联系的连通词定义.

   联系的基数:连通词是对实体之间联系方式的描述,但这种描述比较简单,对实体联系更为详细的描述,可用基数表述.

   有俩个实体集E1E2,E1中每个实体与E2中有联系实体数目的最小值Min和最大值Max,称为E1的基数,(Min,Max)形式表示.

 ER模型的扩充:

 1.依赖联系:在现实世界中,有时某些实体对于另一些实体具有很强的依赖联系,例如一个实体的存在必须以另一个实体的存在为前提.比如:一个职工可能有多个社会关系,社会关系是多值属性,为了消除沉余,设计俩个实体:职工和社会关系.在职工和社会关系中社会关系的信息是以职工信息的存在为前提。因此社会关系的存在是以职工的存在为前提,所以职工和社会关系是一种依赖联系.

 2.弱实体:一个实体对于另一些实体具有很强的依赖联系,而且该实体主码的部分或全部从其父实体中获得,称该实体为弱实体.ER模型中,弱实体用双线矩形框表示.与弱实体的联系用双线菱形表示。

  

 3.超类和子类

      俩个实体类型中可能完全没有相同的实体,但有时会存在同一实体同时属于俩个甚至更多实体类型的情况.最特殊的一类情形:是某个实体类型中所有实体同时也是另一个实体类型的实体.此时,我们称前一实体类型是后一实体类型的子类(Subtype),后一实体类型称为超类(Supertype).

      ER图中:带有子类的实体类型(即超类)以俩端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示.

      例:在职员实体类型内部,职员之间的领导和被领导联系中,领导者与被领导者俩个实体中就可能存在共同的实体元素(某人为中层领导,相对他的上一层领导而言是被领导者),这俩个实体类型又都是职员实体类型的子类(1).

      但是子类有一个很重要的性质:继承性。子类继承其超类上定义的所有属性,其本身还可以包含其他另外的属性.

      例:某大学数据库中的实体型教师(超类)的成员实体可以分为教授、副教授、讲师和助教四个子实体集合(子类)。子类教授和副教授又具有特殊的属性"是否硕士导师",讲师和助教就没有.(2)

       

 

(1)

 图(2)  

  演绎和归纳:

       1.演绎(它是定义一个实体类型的子类的过程.这个尸体类型被称为演绎超类.)演绎过程是按照给定的规则对演绎超类的实体进行分类的过程.同一实体型可以使用不同的分类规则进行多种演绎.

       图二中由实体型教师形成子类教授、副教授、讲师和助教的演绎过程是按照教师的职称对教师实体进行分类的过程.我们也可以按教师的转眼对教师实体进行演绎,得到文科教师、理科教师和艺术教师.(3)给出了由实体型教师构造子类的过程.图中的小圈圈圈起来的D表示实体型教师被划分为三个不相交的子类,子类用符号"U"表示.演绎也是一种联系类型.

    

  图(3)

2.归纳:它是演绎过程的逆过程.归纳过程从多个实体型出发,识别这些实体型的共同特点,抽取公共属性,产生这些实体型的超类.这种超类称为归纳超类.归纳也是一种联系。

   铁路局的职员实体是超类,它是所有人员的公共属性,比如,职工编号,姓名,性别等.驾驶员、会计、管理人员是其子类,包含每一类人员的编号和特殊属性,,子类实体驾驶员中,包括职工编号,驾驶小时,火车型号,驾驶路线等.

   图:给出了一个由实体型驾驶员,机械师,会计、管理人员产生超类职员的归纳过程.图中双线表示职员实体型的每个实体必须属性一个子类。

   

     

     希望大家和我可以建起对基础的认识,和理论的补存.

     QQ:760502262  问答:王宇驰

posted @ 2009-11-19 09:34  I am Ben  阅读(2986)  评论(0编辑  收藏  举报