CS3402 ER

ER

 

 

 

  1. Explain the difference between an entity and a relationship

    • ●  An entity is an object or concept about which you want to store information.

    • ●  Relationships illustrate how two entities share information in the database structure.

  2. What is a total participation? Provide an example.

    • ●  Total Participation: Every entity in the set is involved in some association (or tuple) of the relationship.

    • ●  Example: Every employee in a company has to work for at least one department

  3. Explain the differences between

    • ●  a strong entity and a weak entity

    • ●  a non-identifying relationship and an identifying relationship

    • ●  a strong entity and a weak entity

      • ●  A strong entity is an entity that its existence does not depend on some other entity type.

      • ●  A weak entity is an entity that its existence depends on some other entity type.

    • ●  a non-identifying relationship and an identifying relationship

      • ●  A non-identifying relationship is when the primary key attributes of the parent must not

        become primary key attributes of the child.

      • ●  An identifying relationship is when the existence of a row in a child table depends on a row

        in a parent table.

● Example: An employee has one or more dependents. A dependent cannot exist without an employee associated with them. 


Entity-Relationship Model, 用来表述一个数据库的逻辑结构.

构成一个ER模型的概念有三个:entity sets, relationship sets, attributes.

ER图的实体(entity)即数据模型中的数据对象,例如人、学生、音乐都可以作为一个数据对象,用长方体来表示,每个实体都有自己的实体成员(entity member)或者说实体对象(entity instance),例如学生实体里包括张三、李四等,实体成员(entity member)/实体实例(entity instance) 不需要出现在ER图中. 在图中, 用矩形表示.

ER图的属性(attribute)即数据对象所具有的属性,例如学生具有姓名、学号、年级等属性,用椭圆形表示,属性分为唯一属性( unique attribute)和非唯一属性,唯一属性指的是唯一可用来标识该实体实例或者成员的属性,用下划线表示,一般来讲实体都至少有一个唯一属性. 表的每一行对应一个元组,表的每一列对应一个域。由于域可以相同,为了加以区分,必须对每列起一个唯一的名字,称为属性. 在图中, 用椭圆表示.

ER图的关系(relationship)用来表现数据对象与数据对象之间的联系,例如学生的实体和成绩表的实体之间有一定的联系,每个学生都有自己的成绩表,这就是一种关系. 在图中, 用菱形表示.

 

一个ER模型必然需要对于其内容做出约束,mapping cardinality 和 participation constraints 和 keys

mapping cardinality类型:

1对1(1:1) :1对1关系是指对于实体集A与实体集B,A中的每一个实体至多与B中一个实体有关系;反之,在实体集B中的每个实体至多与实体集A中一个实体有关系。

1对多(1:N) :1对多关系是指实体集A与实体集B中至少有N(N>0)个实体有关系;并且实体集B中每一个实体至多与实体集A中一个实体有关系。

多对多(M:N) :多对多关系是指实体集A中的每一个实体与实体集B中至少有M(M>0)个实体有关系,并且实体集B中的每一个实体与实体集A中的至少N(N>0)个实体有关系。

participation constraints:

    对于一个ES和一个RS来说,如果ES中每一个entity都在这个Relation中出现过一次,那么ES对于RS的关系就是total participation 如果有些entity没有出现在RS中,那么就是partial participation. 在图中, Entity Set 到 Relationship Set 的双划线:代表Entity Set对于这个集合的participation状态是total participation.

keys:

super key 超键

  A super key of an entity set is a set of one or more attributes whose values uniquely determine each entity

在关系中能唯一标识元组的属性集称为关系模式的超键

candidate key  候选键

A candidate key of an entity set is a minimal super key

不含有多余属性的超键称为候选键

举例:Customer_id is candidate key of customer

primary key 主键

  Although several candidate keys may exist, one of the candidate keys is selected to be the primary key

用户选作元组标识的一个候选键程序主键

Foreign key 外键

完整性约束的一种,要求该属性在另一表的某个key中出现。

身份证号码 姓名 性别 年龄

身份证号码唯一,所以是一个超键
姓名唯一,所以是一个超键
(姓名,性别)唯一,所以是一个超键
(姓名,性别,年龄)唯一,所以是一个超键
--超键的组合是唯一的,但可能不是最小唯一的

身份证号码唯一,而且没有多余属性,所以是一个候选键  

姓名唯一,而且没有多余属性,所以是一个候选键  

(身份证号码, 姓名) 不能作为一个候选键, 因为身份证号码已经是唯一, 所以姓名就为多余属性

--候选键是没有多余属性的超键

考虑输入查询方便性,可以选择身份证号码为主键
也可以 考虑习惯 选择 姓名 为主键
--主键是选中的一个候选键

例子: 

学号     姓名  性别   年龄   系别   专业   
20020612 李辉  男     20 计算机  软件开发   
20060613 张明  男     18 计算机  软件开发   
20060614 王小玉  女   19  物理   力学   
20060615 李淑华  女   17  生物   动物学   
20060616 赵静  男     21   化学   食品化学   
20060617 赵静  女     20   生物  植物学

问: 下列选项中哪个不能作为候选键?

a){学号} 
b){学号、姓名} 
c){年龄、系别} 
d){姓名、性别} 
e){姓名、专业} 

a选项{学号}可以唯一的标识一个元组,比如说我们用20060616就可以知道是性别为男,名字为赵静的人。由于没有多余的属性,所以{学号}既可以称为一个超键,也可以称为一个候选键。

b选项{学号、姓名}也可以唯一的标识一个元组,但是这个集合里的姓名属性是不必要的,也就是多余的,即如果没有【姓名】属性,那么这个集合 {学号、姓名}也可以唯一确定一个元组。由于有多余的属性,所以{学号、姓名}可以称为超键,但是不能称为候选键。

c,d,e选项均可以唯一的标识一个元组,并且其中每一个属性均是必须的,去掉任意一个属性,那么其所在的集合便不能唯一的标识一个元组,所以c,d,e 均可以称为超键,也可以称为候选键。

 

 

ER实体补充讲解: 

ER的实体还会细分为弱实体和复合实体:

弱实体(week entity):一个实体必须依赖于另一个实体存在,那么前者是弱实体,后者是强实体,弱实体必须依赖强实体存在,例如上图的学生实体和成绩单实体,成绩单依赖于学生实体而存在,因此学生是强实体,而成绩单是弱实体。

In a relational database, a weak entity is an entity that cannot be uniquely identified by its attributes alone; therefore, it must use a foreign key in conjunction with its attributes to create a primary key. The foreign key is typically a primary key of an entity it is related to.

弱实体和强实体的联系必然只有1:N或者1:1,这是由于弱实体完全依赖于强实体,强实体不存在,那么弱实体就不存在,所以弱实体是完全参与联系的,因此弱实体与联系之间的联系也是用的双线菱形。

 

复合实体:复合实体也称联合实体或桥接实体,常常用于实现两个或多个实体间的M:N联系,它由每个关联实体的主玛组成,用长方体内加一个菱形来表示。

下图就是一个典型的复合实体,因为只是举例,相对粗糙,用户和商品两个实体是M:N的关系,中间又订单这个实体联系,因此订单这个实体是一个复合实体,同时如果用户 实体不存在,就没有订单实体的存在,因此对于用户实体来讲订单是弱实体,同理商品实体如果不存在,同样不存在订单实体,因此对商品实体而言订单是弱实体,具体如图:

 

 

ER属性补充讲解: 

er图的属性还细分为复合属性、多值属性和派生属性、可选属性,同时还有用来表示联系的属性,称为联系属性。

复合属性(composite attribute):复合属性是指具有多个属性的组合,例如名字属性,它可以包含姓氏属性和名字属性,如下图:

复合属性也有唯一属性,例如学生的所在班级属性,由于多个年级都有班级,所以单单班级属性是不唯一的,但是和年级组成的复合属性后则可以匹配成唯一属性。

 

多值属性(multivalued attribute):一个实体的某个属性可以有多个不同的取值,例如一本书的分类属性,这本书有多个分类,例如科学、医学等,这个分类就是多值属性, 用双线椭圆表示。

派生属性(derivers attribute):是非永久性存于数据库的属性。派生属性的值可以从别的属性值或其他数据(如当前日期)派生出来,用虚线椭圆表示,如下图。

下面的小组人数就是典型的派生属性,随着学生实例的参加的兴趣小组变化,小组人数属性也会变化,一般来讲派生属性不存在于数据库中,而是通过相应的公式进行计算得到,如果要放到数据库中,那么隔一段时间就要进行更新,否则会出现数据错误。

可选属性(optional attribute):并不是所有的属性都必须有值,有些属性的可以没有值,这就是可选属性,在椭圆的文字后用(O)来表示,如下图的地址就是一个可选属性。

联系属性:联系属于用户表示多个实体之间联系所具有的属性,一般来讲M:N的两个实体的联系具有联系属性,在1:1和1:M的实体联系中联系属性并不必要。

 

 

posted @ 2018-03-07 19:13  Charonnnnn  阅读(313)  评论(0编辑  收藏  举报