2-2-4

来源:百度文库 编辑:神马文学网 时间:2024/04/27 22:47:30


2.2.1 ER模型的基本元素
1.实体
(1)实体(entity)是一个数据对象,指应用中可以区别的客观存在的事物。
(2)实体集(entity set)是指同一类实体构成的集合。
(3)实体类型(entity type)是对实体集中实体的定义。
(4)在不引起混淆的情况下,我们一般将实体、实体集、实体类型等概念统称为实体。
(5)在ER模型中,实体用方框表示,方框内注明实体的命名。
2.联系
(1)联系(relationship)表示一个或多个实体之间的关联关系。
(2)联系集(relationship set)是指同一类联系构成的集合。
(3)联系类型(relationship type)是对联系集中联系的定义。
(4)同实体一样,我们一般将联系、联系集、联系类型等统称为联系。
(5)联系是实体之间的一种行为,一般用动名词(汉语动词)来命名联系,譬如“工作”、“参加”、“属于”、“入库”、“进库”等等。
(6)在ER图中,联系用菱形框表示,并用线段将其与相关的实体连接起来。
(7)实体关联示意图

3.属性
(1)实体的某一特性称为属性(attribute)。
(2)在一个实体中,能够惟一标识实体的属性或属性集称为“实体标识符”。
(3)如:职工有工号、姓名、性别、年龄等属性。其中工号为实体标识符。
(4)但一个实体只有一个标识符,没有候选标识符的概念。实体标识符有时也称为实体的主键。
(5)在ER图中,属性用椭圆形框表示,加下划线的属性为标识符。
(6)属性域是属性的可能取值范围,也称为属性的值域。
(7)联系也会有属性,用于描述联系的特征,如参加工作时间、入库数量等。但联系本身没有标识符。 2.2.2 属性的分类
1.简单属性和复合属性
(1)根据属性类别可分为简单属性(simple attribute)和复合属性(composite attribute)。
(2)简单属性是不可再分割的属性。譬如,性别和年龄都是简单属性。
(3)复合属性是可再分解为其他属性的属性(即属性可嵌套)。譬如,地址属性可分解为:邮政编码、省(市)名、区名、街道四个子属性,街道又可分解为路名、门牌号码两个子属性。
(4)复合属性形成了一个属性的层次结构

2.单值属性和多值属性
(1)根据属性的取值特点又可分为单值属性(single-valued attribute)和多值属性(multivalued attribute)。
(2)单值属性指的是同一实体的属性只能取一个值。譬如,同一个学生只能具有一个年龄,所以年龄属性是一个单值属性。
(3)多值属性指同一实体的某些属性可能取多个值。譬如,一个人的学位是一个多值属性(学士,硕士和博士);一种零件可能有多种销售价格(经销、代销,批发和零售)。
(4)多值属性用双线椭圆形表示

(5)多值属性的两种变换方法
   ①将原来的多值属性用几个新的单值属性来表示
   a.在零件供应数据库中,销售价格可分解为4个单值属性:经销价格,代销价格,批发价格和零售价格。
   b.多值属性的变换。

   ②将原来的多值属性用一个新的实体类型表示
   a.这个新实体类型和原来的实体类型之间是1:N联系。
   b.这个新实体依赖于原实体而存在,我们称之为弱实体。
   c.在零件供应数据库中,可以增加一个销售价格弱实体,它有两个属性:销售性质和销售价格。
   d.多值属性的变换。

3.存储属性和派生属性
(1)有时候,两个(或两个以上)属性值是相关的。
(2)此时可从其他属性值推导出值的属性,称为派生属性(derived attribute)。派生属性的值不必存储在数据库内,而其他需要存储值的属性称为存储属性(stored attribute)。
(3)例如在职工实体中,实发工资可从基本工资、奖金、房租等属性推导出来。
(4)派生属性的值不仅可以从其他属性导出,有时也可以从其它有关的实体导出。
(5)派生属性用虚线椭圆型与实体相连

4.允许为空值的属性
(1)当实体在某个属性上没有值时应使用空值(null value)。
(2)在数据库中,空值是很难处理的一种值。 2.2.3 联系的设计
1.联系的元数
(1)一个联系涉及到的实体集个数,称为该联系的元数或度数(degree);
(2)同一个实体集内部实体之间的联系,称为一元联系,也称为递归联系;
(3)两个不同实体集、实体之间的联系,称为二元联系;
(4)三个不同实体集实体之间的联系,称为三元联系。
2.联系类型的约束
(1)基数约束
   ①实体集E1和E2之间有二元联系,则参与一个联系中的实体数目称为映射基数(mapping cardinalities)。
   ②对于二元联系类型,可能的映射基数有1:1,1:N,M:N三种
   ③二元联系的1:1、1:N和M:N三种情况
   a.教育系统中学校与校长的1:1联系

   b.学校中系与教师间的联系是1:N联系

   c.学生与课程间的联系是M:N

   ④一元联系映射基数的三种方式
   a.运动员的名次排定(1:1联系)

   b.职工之间的上下级联系是1:N联系

   c.工厂的零件之间存在着组合关系(m:n联系)

   ⑤商店、仓库、商品之间的进货联系(三元联系中的m:n:p联系)

   ⑥映射基数范围
   a.对映射基数还要作出更精确的描述,即对参与联系的实体数目指明相关的最小映射基数min和最大映射基数max,用范围“min..max”的方式表示。
   b.譬如“1..*”表示参与联系的实体至少为1个,上界没有限制,即“*”表示“∞”。
   c.例子:教师和课程之间的映射基数。

     ·如果进一步规定,每位教师可讲授3门课,也可只搞研究而不教课;每门课程必须有一位教师上课。也就是,教师的基数是(0,3),课程的基数是(1,1)。
   d.例子:学生和课程之间的映射基数。

     ·学校里规定学生每学期至少选修1门课程,最多选修6门课程;
     ·每门课程至多有50人选修,最少可以没人选修。
(2)参与约束
   ①如果实体集E中的每个实体都参与联系集R的至少一个联系中,我们称实体集E“完全参与”联系集R。
   ②如果实体集E中只有部分实体参与联系集R的联系中,我们称实体集E“部分参与”联系集R。
   ③在ER图中表示时,全部参与用双线边表示,部分参与用单线边表示。
   ④一般,为了简化,很少在ER图上考虑参与约束,联系全部用单线边表示。 2.2.4 ER模型的操作
1.实体集的分裂
(1)分裂方式有水平分裂和垂直分裂两种。
(2)把教师分裂成男教师与女教师两个实体类型,这是水平分裂。
(3)也可把教师中经常变化的属性组成一个实体类型。而把固定不变的属性组成另一个实体类型,这是垂直分裂。

(4)但应注意,在垂直分裂中,键必须在分裂后的诸实体类型中出现。
2.联系类型的分裂
(1)联系类型也可分裂。
(2)联系类型的分裂实例。

3.ER模型的合并
(1)合并是分裂操作的逆过程。
(2)但必须注意,合并的联系类型必须是定义在相同的实体类型组合中。