您的位置:首页 > 数据库

数据库设计系列4---实体建模 推荐

2007-11-05 09:42 381 查看
一旦完成了数据库系统生命周期中的需求收集和分析阶段的工作,并且把数据库需求整理成了文档,就可以开始进行数据库设计了。数据库设计中最困难的一个方面就是设计人员,程序员和最终用户看待和使用数据的方式不同,除非能够获得反映公司运行的共性的理解,否则,设计将达不到用户的要求。为了能够让设计人员,程序员和最终用户准确理解数据的本质,理解公司使用这些数据的方法,需要有一个通信模型,这个模型和技术无关,并且没有二义性,ER(Entity-RelationShip实体-关系)模型就是这样的例子。ER建模示一种自上而下的数据库设计方法,通过标示模型中必须要表示的重要数据(实体)以及数据间的关系开始建立ER模型,然后增加细节,如实体关系索要具有的信息(属性),以及实体,关系和属性上的限制。首先介绍一些概念:
1. 实体(ENTITY)一组有相同属性的对象,被用户或者团体标识为独立存在的对象的集合。ER模型的一个基本概念就是实体,代表一组现实世界中的对象集合,他们有相同的属性,每个对象必须在一个集合众被唯一地标示,叫做实体事件。一个实体事独立存在的,代表一组物理存在(现实如员工)或者概念存在(抽象如经理角色)的对象的集合。使用一个唯一的名字和一些特征(属性)来标示每个实体,虽然一个实体有不同的属性集合,但是每个实体对每个属性都有自己的值,实体使用矩形表示,矩形框上写入实体的名字。
2. 关系:实体之间的具有某种含义的关联。一个关系是特定实体之间的一组关联,和实体一样,每个关系在集合中也要被唯一的标识,一个可以唯一标示的关联叫做关系事件。每一个关系有一个名字,此名字描述关系的功能,如角色经理与实体员工之间通过manages关联,一个关系仅在一个方向上标示,代表一个关系仅在一个方向上起作用,因此一旦选择了关系名,必须在名字旁边加箭头指示正确的方向。





a) 关系的度:包含子特定关系中的实体叫做参与者,在关系中参与者的数目叫做关系的度,指明了参与在一个关系中的实体的数目,度数为1的关系成为一元关系,通常被称为递归关系,度数为2的关系叫做二元关系,度数超过2的关系叫做复杂关系,度数为3的关系叫做3元关系,一次类推,经常遇到的关系为二元关系,偶尔会遇到3元关系和四元关系。


a) 递归关系:一元关系,在不同的角色中有多次具有相同实体参与的关系。

民工
例如经理管理员工关系,





在这里,工头也是员工中的一员,换句话说,员工实体参与管理 关系两次,第一次作为工头参与,第二次作为一个民工参与。可以给关系一个角色名字以表明每个参与的实体在关系中所起的作用,角色名字对于递归关系决定参与实体的作用是非常重要的,

1. 属性:实体或者关系的性质,实体的性质叫做属性,属性代表我们需要知道的有关实体的内容。
a) 简单属性和符合属性
i. 简单属性,仅由单个元素组成的属性,简单属性是不能在分的属性,如邮政编码。
ii. 符合属性:由多个元素组成的属性,比如姓名,由姓和名两个元素组成
把姓名属性建模成简单属性还是分解成姓和名的符合属性,取决于访问姓名属性的方式,作为一个整体还是单个组成元素访问。
b) 单值属性和多值属性
i. 单值属性:对于一个实体只有一个值得属性,比如姓名
ii. 多值属性,对于一个实体可以有多个值的属性,比如一个公司有多个电话号码。
简单属性和复合属性侧重于属性的种类,单值属性和多值属性侧重于属性的个数,两者不互相排斥。
C)派生属性,属性质代表一个从相关属性或者属性集派生的值,再相同实体中不时必须的值。比如一个人的年龄可以从出生年月导出来,因此年龄和出生年月是相关联的,年龄通常不存储在数据库中。某些情况下,属性从其他多个属性中导出。
D)键的概念
超键:可以唯一标识一个实体的属性或者属性组。
候选键:可以唯一标识一个实体的具有最小属性数目的超键。
主键:被选中作为标示实体的候选键。
备用键:没有被选中作为实体的候选键。
属性的图形化表示:
实体使用矩形表示,如果知道了主键,主键应该被首先列出来,后面使用{pk}表示,如果是被选键使用{AK}表示,如果是派生属性,使用/age加以标示,如果知道基数,使用[1..10]的方式列出来。
通过以上的描述,我们可以把实体分为强实体和弱实体,强实体:不依赖于另一个实体的实体,换句话说:也就是有自己的主键,并自主键中的任何一个属性不是外键。相对的,弱实体是主键的部分或者全部依赖于其他一个或者多个实体的主键而存在的实体,主键的部分或者全部为外键的实体成为弱实体,强实体有时候被叫做父实体,拥有者或者统治实体,弱实体则相应被叫做子实体,依赖实体或者从属实体。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐