论文部分内容阅读
摘要:本文以高职院校教务管理业务作为原型基础,通过该实例详细介绍了E-R建模技术。包含如何标识实体,确定实体和实体之间的关系,以及区分实体间的关系是一元、二元还是多元关系,以及关系的多样性约束。进而确定实体和关系的属性,并特化/泛化实体,最后给出了完整的E-R模型。
关键词:E-R模型;实体;关系
在完成数据库系统需求分析和整体结构设计之后,就要开始进行数据库的设计工作。首先要提及什么是设计方法学:一种结构化的方法[1],通过技术、文档和相关工具来精简设计的过程。数据库设计方法由相关步骤组成,它们在工程的各个阶段使用合适的技术,来帮助我们规划、管理、控制和评价数据库开发过程。
一、E-R模型
教务管理系统数据库的逻辑设计,即完成E-R模型[2],良好的数据库设计对于达到良好的性能非常重要,有多种数据库设计方法,本文采用自顶向下数据库设计方法[3]。自顶向下的数据库设计方法首先开发出包含高层抽象的数据模型,然后连续的、自定向下的细化底层的实体、联系和关联属性。
二、E-R模型应用
我们将创建E-R模型,以支持教务管理系统的事务,但要保证该模型有最小冗余度。这个步骤目的是输出一个ER模型,并确定这个ER模型能准确的表达对数据的需求。每一个模型将包括以下组件:实体,关系,属性和属性域,主键,备用键和完整性约束。
(一)标识需要的实体
该步骤就是要定义教务管理系统的主要对象,这些对象就是数据模型中的实体。教务管理系统有如下实体:学生、教师、学生课表、教师课表、学生成绩单、成绩管理人员、排课管理人员、学籍管理人员、班级、专业、公共课专业课任务清单、公选课任务清单、体育选项任务清单、上课地点清单、体育选项管理人员、公选课管理人员、教学计划任务管理人员。标识实体后,将实体记录到数据字典中。
(二)标识关系
标识实体间存在的重要关系。在这一步中,我们只关心实体间必须的关系,例如,一个班级包含很多学生,一个学生只在一个班级内。虽然有些实体之间也存在关系,但是这些关系不是必须的,可以从其它实体间接得到,例如一个专业包含很多学生,一个学生只在一个专业内。因为专业和班级也有关系,学生和专业的关系可以从班级和专业的关系中得到,所以学生和专业的关系不是必须的。
标识完实体的关系后,接下来就要确定关系的种类,即多样性约束,例如班级和学生的关系,每个班级有多名学生,而一名学生只能存在一个班级中。班级和学生的关系就是一对多的关系。包含多样性约束的模型更明确的描述了关系的定义,可以在模型中产生更好的表达结果。多样性约束被用来检查和维护数据特征。当数据库更新时,要判断是否违反了规则,这些约束就会起作用。以上关系经过仔细检查,避免了扇形陷阱[4]。
(三)标识属性
我们首先解决第一个问题,简单和复合属性,简单和复合是对属性本身而言,简单属性就是说这个属性不能再被分解,而复合属性就是说属性可以被分解为几个简单的属性。例如学生实体中的家庭地址这个属性,我们可以把它看作简单属性,就是把所有关于地址细节看成一个值。也可以把它看成复合属性,家庭地址可以看成是省、市、区(县)、街道、邮编的简单属性的组合。
第二个问题就是单值和多值属性,单值或者多值是对属性的数值而言,如果属性只有一个值,就是单值属性;如果属性有多个值,就是多值属性。大多数属性都是单值的,例如学生实体的学号,每个学生只有一个学号。对于多值属性,例如学生实体的电话号码可能有多个。对于这个问题的解决办法就是如实填写,因为多值属性到后面的设计中可以映射为实体。
第三个问题就是解决派生属性,派生属性就是指该属性的值可以从检查其他属性的值得到。例如学生实体中的学生年龄,这个数值可以从学生出生日期中得到,并且年龄这个值每年都在变化。
(四)E-R模型中属性域
所谓的域,就是一组值的集合,一个或者多个属性可以从中选择他们的值。例如实体学生的性别属性,只能为男或者女。本文的数据模型为每个属性指定了属性域,包括:每个属性允许值的集合,属性大小和格式。并在数据字典中记录他们的名字和特征,更改属性的数据字典项。
(五)注候选键、主键
为实体标注候选键、主键,实体可能有多个候选键,则选其一作为主键。根据作者的经验,定义一个具有唯一性的属性,要比把不同的属性组合起来,提供唯一性好很多。学生的学号作为学生实体的主键,准考证号和身份证号作为候选键,因为准考证号和身份证号也能唯一标识一个学生。我们根据需求分析还定义了属性域,例如学制只能是3或者4。
(六)特化/泛化实体
特化/泛化实体的概念是与称为超类和子类的实体,以及和他们之间的属性继承有关。超类[5],是一个实体,包含所有在实体中出现的公共属性和关系。子类是一个实体,具有自己特殊的属性和关系,并且包含了超级类实体中出现的特定属性和关系。任何一个超类和它的子类直接的关系都是1:1。
在教务管理系统中,有公共选修课教学任务和体育选项教学任务,我们引入泛化过程,就是采用一个自底向上的方法,从初始的子类中产生超类。公共选修课教学任务和体育选项教学任务是两个子类,在这两个子类的基础上,产生超类公共课教学任务,我们把2个子类的公共属性放到超类公共课教学任务中,如选课课号、学年、学期等,而对于子类公选课教学任务,保留了课程归属这个属性,这个属性将公选课分成若干类型,如技能训练类、社会科学类,这个属性是公选课任务特有的,和体育选项教学任务没有关系。同理,体育选项教学任务也保留了板块名称这个属性。
(七)E-R模型
教务系统大部分都是二元关系,例如成绩单和学生是一对一的关系,一学生对应一份成绩单,一份成绩单只对应一个学生;学生和所在班级是多对一的关系,每个班级都有很多学生,但是一名学生只能对应一个班级。但是也有四元关系,就是上课节次、上课地点、学生、教师的关系,这四个实体通过上课联系。对于四元关系,我们一般假定其中三个实体关系固定,然后查看与第四个实体的关系。例如,在上课地点、上课节次、学生固定的情况下,和教师的关系就是一对一,因为只能有一个老师在固定的地点和时间给固定的学生上课。同理我们可以推出和学生的关系是一对多,和上课地点、上课节次关系是一对一。
三、结语
综上所述,本文通过一个具体实例展示了E-R模型在具体工程项目中的运用,E-R模型因其简单易学易用,容易理解,并能真实反映客户需求被广泛应用到数据库的逻辑设计阶段中。但E-R模型本身固有的缺陷需要在实际项目中做进一步改进,例如实体和关系的界限不是很清楚,对系统分析员的经验和能力要求较高,这些因素制约了E-R在实际工程中作用的发挥。(作者单位:南京铁道职业技术学院)
参考文献:
[1]邓家褆,韩晓建、曾硝等.产品概念设计—理论、方法与技术.北京:机械工业出版社,2002.10-12
[2]Chen P S.The entity-relationship model—Toward a unified view of data[J].ACM Trans on Database System,1976,1(1):9-36
[3]S.K.Singh,Database Systems concepts,design and applications,2006,207-218
[4]Thomas M.Connolly,Carolyn E.Begg,Database Solutions A Step-Step Guide to Building Database, 2005,104-108.
[5]韩驹.李之堂.E-R模型特殊超类/子类结构转换方法研究.铁路计算机应用.2013-10:09-11
关键词:E-R模型;实体;关系
在完成数据库系统需求分析和整体结构设计之后,就要开始进行数据库的设计工作。首先要提及什么是设计方法学:一种结构化的方法[1],通过技术、文档和相关工具来精简设计的过程。数据库设计方法由相关步骤组成,它们在工程的各个阶段使用合适的技术,来帮助我们规划、管理、控制和评价数据库开发过程。
一、E-R模型
教务管理系统数据库的逻辑设计,即完成E-R模型[2],良好的数据库设计对于达到良好的性能非常重要,有多种数据库设计方法,本文采用自顶向下数据库设计方法[3]。自顶向下的数据库设计方法首先开发出包含高层抽象的数据模型,然后连续的、自定向下的细化底层的实体、联系和关联属性。
二、E-R模型应用
我们将创建E-R模型,以支持教务管理系统的事务,但要保证该模型有最小冗余度。这个步骤目的是输出一个ER模型,并确定这个ER模型能准确的表达对数据的需求。每一个模型将包括以下组件:实体,关系,属性和属性域,主键,备用键和完整性约束。
(一)标识需要的实体
该步骤就是要定义教务管理系统的主要对象,这些对象就是数据模型中的实体。教务管理系统有如下实体:学生、教师、学生课表、教师课表、学生成绩单、成绩管理人员、排课管理人员、学籍管理人员、班级、专业、公共课专业课任务清单、公选课任务清单、体育选项任务清单、上课地点清单、体育选项管理人员、公选课管理人员、教学计划任务管理人员。标识实体后,将实体记录到数据字典中。
(二)标识关系
标识实体间存在的重要关系。在这一步中,我们只关心实体间必须的关系,例如,一个班级包含很多学生,一个学生只在一个班级内。虽然有些实体之间也存在关系,但是这些关系不是必须的,可以从其它实体间接得到,例如一个专业包含很多学生,一个学生只在一个专业内。因为专业和班级也有关系,学生和专业的关系可以从班级和专业的关系中得到,所以学生和专业的关系不是必须的。
标识完实体的关系后,接下来就要确定关系的种类,即多样性约束,例如班级和学生的关系,每个班级有多名学生,而一名学生只能存在一个班级中。班级和学生的关系就是一对多的关系。包含多样性约束的模型更明确的描述了关系的定义,可以在模型中产生更好的表达结果。多样性约束被用来检查和维护数据特征。当数据库更新时,要判断是否违反了规则,这些约束就会起作用。以上关系经过仔细检查,避免了扇形陷阱[4]。
(三)标识属性
我们首先解决第一个问题,简单和复合属性,简单和复合是对属性本身而言,简单属性就是说这个属性不能再被分解,而复合属性就是说属性可以被分解为几个简单的属性。例如学生实体中的家庭地址这个属性,我们可以把它看作简单属性,就是把所有关于地址细节看成一个值。也可以把它看成复合属性,家庭地址可以看成是省、市、区(县)、街道、邮编的简单属性的组合。
第二个问题就是单值和多值属性,单值或者多值是对属性的数值而言,如果属性只有一个值,就是单值属性;如果属性有多个值,就是多值属性。大多数属性都是单值的,例如学生实体的学号,每个学生只有一个学号。对于多值属性,例如学生实体的电话号码可能有多个。对于这个问题的解决办法就是如实填写,因为多值属性到后面的设计中可以映射为实体。
第三个问题就是解决派生属性,派生属性就是指该属性的值可以从检查其他属性的值得到。例如学生实体中的学生年龄,这个数值可以从学生出生日期中得到,并且年龄这个值每年都在变化。
(四)E-R模型中属性域
所谓的域,就是一组值的集合,一个或者多个属性可以从中选择他们的值。例如实体学生的性别属性,只能为男或者女。本文的数据模型为每个属性指定了属性域,包括:每个属性允许值的集合,属性大小和格式。并在数据字典中记录他们的名字和特征,更改属性的数据字典项。
(五)注候选键、主键
为实体标注候选键、主键,实体可能有多个候选键,则选其一作为主键。根据作者的经验,定义一个具有唯一性的属性,要比把不同的属性组合起来,提供唯一性好很多。学生的学号作为学生实体的主键,准考证号和身份证号作为候选键,因为准考证号和身份证号也能唯一标识一个学生。我们根据需求分析还定义了属性域,例如学制只能是3或者4。
(六)特化/泛化实体
特化/泛化实体的概念是与称为超类和子类的实体,以及和他们之间的属性继承有关。超类[5],是一个实体,包含所有在实体中出现的公共属性和关系。子类是一个实体,具有自己特殊的属性和关系,并且包含了超级类实体中出现的特定属性和关系。任何一个超类和它的子类直接的关系都是1:1。
在教务管理系统中,有公共选修课教学任务和体育选项教学任务,我们引入泛化过程,就是采用一个自底向上的方法,从初始的子类中产生超类。公共选修课教学任务和体育选项教学任务是两个子类,在这两个子类的基础上,产生超类公共课教学任务,我们把2个子类的公共属性放到超类公共课教学任务中,如选课课号、学年、学期等,而对于子类公选课教学任务,保留了课程归属这个属性,这个属性将公选课分成若干类型,如技能训练类、社会科学类,这个属性是公选课任务特有的,和体育选项教学任务没有关系。同理,体育选项教学任务也保留了板块名称这个属性。
(七)E-R模型
教务系统大部分都是二元关系,例如成绩单和学生是一对一的关系,一学生对应一份成绩单,一份成绩单只对应一个学生;学生和所在班级是多对一的关系,每个班级都有很多学生,但是一名学生只能对应一个班级。但是也有四元关系,就是上课节次、上课地点、学生、教师的关系,这四个实体通过上课联系。对于四元关系,我们一般假定其中三个实体关系固定,然后查看与第四个实体的关系。例如,在上课地点、上课节次、学生固定的情况下,和教师的关系就是一对一,因为只能有一个老师在固定的地点和时间给固定的学生上课。同理我们可以推出和学生的关系是一对多,和上课地点、上课节次关系是一对一。
三、结语
综上所述,本文通过一个具体实例展示了E-R模型在具体工程项目中的运用,E-R模型因其简单易学易用,容易理解,并能真实反映客户需求被广泛应用到数据库的逻辑设计阶段中。但E-R模型本身固有的缺陷需要在实际项目中做进一步改进,例如实体和关系的界限不是很清楚,对系统分析员的经验和能力要求较高,这些因素制约了E-R在实际工程中作用的发挥。(作者单位:南京铁道职业技术学院)
参考文献:
[1]邓家褆,韩晓建、曾硝等.产品概念设计—理论、方法与技术.北京:机械工业出版社,2002.10-12
[2]Chen P S.The entity-relationship model—Toward a unified view of data[J].ACM Trans on Database System,1976,1(1):9-36
[3]S.K.Singh,Database Systems concepts,design and applications,2006,207-218
[4]Thomas M.Connolly,Carolyn E.Begg,Database Solutions A Step-Step Guide to Building Database, 2005,104-108.
[5]韩驹.李之堂.E-R模型特殊超类/子类结构转换方法研究.铁路计算机应用.2013-10:09-11