数据库概念结构设计
一、概念模型
在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更改、更准确地用某一数据库管理系统实现这些需求。
概念模型的主要特点:
1. 能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真是模型。
2. 易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设计成功的关键。
3. 易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。
4. 易于向关系、网状、层次等各种数据模型转换。
概念模型是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R模型。
二、E-R模型
E-R模型是用E-R图来描述现实世界的概念模型。
1. 实体之间的联系
在现实世界中,事物内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体型的实体集之间的联系。
1. 两个实体之间的联系
1)两个实体型之间的联系
两个实体型之间的联系分为:
一对一联系(1:1)
如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。
一对多联系(1:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n>1)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
多对多联系(m:n)
如果对于实体集A中的每一个实体,实体集B中有n个实体(n>0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。
两个实体型间的关系如图:
2. 两个以上的实体型之间的联系
一般地,两个以上的实体型也存在着一对一、一对多和多对多联系。
3. 单个实体型内的联系
同一个实体集内的各实体之间也可以存在一对一、一对多和多对多的联系。
一般地,把参与联系的实体型的数目称为联系的度。两个实体型之间的联系度为2,也称为二元联系;三个实体型之间的联系度为3,称为三元联系;N个实体型之间的联系度为N,称为N元联系。
2. E-R图
E-R图提供了表示实体型、属性和联系的方法。
1. 实体型用矩形表示,矩形框内写明实体名。
2. 属性用椭圆形,并用无向边将其与相应的实体型联系起来。
3. 联系用棱形表示,棱形框内写明联系名,并用无向边分别于有关实体型连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)。
如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。
E-R图实例:
三、扩展的E-R模型
E-R方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体数据库管理系统所支持的数据模型,是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。
1. ISA联系
ISA联系(父类-子类联系)一个重要的性质是子类继承了父类的所有属性,当然子类也可以由自己的属性。ISA联系用三角形来表示。
ISA联系描述了对一个实体型中实体的一种分类方法。
1)分类属性
根据分析属性的值把父实体型中的实体分派到子实体型中。
2)不相交约束与可重叠约束
不相交约束描述父类中的一个实体不能同时属于多个子类中的实体集,即一个父类中的实体最多属于一个子类实体集,用ISA联系三角形符号内加一个‘X’来表示。如果父类中的一个实体能同时属于多个子类中的实体集,则称为可重叠约束,子类符号中没有叉号表示是可重叠的。
3)完备性约束
完备性约束描述父类中的一个实体是否必须是某一个子类中的实体,如果是,则叫作完全特化,否则叫作部分特化。完全特化用父类到子类的双线链接来表示,单线连接则表示部分特化。
2. 基数约束
基数约束是对实体之间一对一、一对多和多对多联系的细化。参与联系的每个实体型用基数约束来说明实体型中的任何一个实体可以在联系中出现的最少次数和最多次数。
约束用一个数对min..max表示,0 小于等于min小于等于max(其中,*代表无穷大)。min=1的约束叫作强制参与约束,即被施加基数约束的实体型中的每个实体都要参与联系;min=0的约束叫作非强制参与约束,被施加基数约束的实体型中的实体可以出现在联系中,也可以不出现在联系中。
3. Part-of联系
Part-of联系即部分联系,它表明某个实体型是另外一个实体型的一部分。它可分为两种情况,一种是整体实体如果被破坏,部分实体仍然可以独立存在,称为非独占的Part-of联系,非独占的Part-of联系可通过技术约束来表达;另一种是独占联系,即整体实体如果被破坏,部分实体不能存在,在E-R图中用弱实体类型和识别联系来表示独占联系。如果一个实体型的存在依赖于其他实体的存在,则这个实体型叫作弱实体型,反之叫强实体型。一般来说,如果不能从一个实体型的属性中找出可以作为码的属性,则这个实体型是弱实体型。
在E-R图中用双矩形来表示弱实体型,用双棱形表示识别联系。
四、UML
UML是对象管理组织(OMG)的一个标准,它不是专门针对数据建模的,而是为软件开发的所有阶段提供模型化和可视化支持的规范语言,从需求规格描述到系统完成后的测试和维护都可以用到UML。它可以用于数据建模、业务建模、对象建模、组件建模等,提供看多种类型的模型描述图。
1. 实体型:用类表示,矩形框中实体名放在上部,下面列出属性名。
2. 实体的码:在类图中在属性后面加“PK”来表示码属性。
3. 联系:用类图之间的“关联”来表示。
4. 基数约束:UML中关联类之间技术约束的概念、表示和E-R图中的技术约束类似。
5. UML中的子类:面向对象技术支持超类-子类概念,子类可以继承超类的属性,也可以有自己的属性。
UML实例图示:
五、概念结构设计
概念结构设计的第一步就是对需求分析阶段收集到的数据进行分类、组织,确定实体、实体的属性、实体之间的联系类型,形成E-R图。
1. 实体与属性的划分原则
事实上,在现实世界中具有的应用环境常常对实体和属性已经作了自然的大体划分。
为了简化E-R图的处置,现实世界的事物能作为属性的对待的尽量作为属性对待,不过要满足:
1. 作为属性,不能再具有需要描述的性质,即属性必须是不可分的数据项,不能包含其他属性。
2. 属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。
2. E-R图的集成
E-R图的集成步骤图示:
1. 合并
解决各分E-R图之间的冲突,将分E-R图合并起来生成初步E-R图。
合理消除各E-R图中的冲突是合并E-R图的主要工作与关键所在。各子系统的E-R图之间的冲突主要有三类:
1)属性冲突:属性域冲突,即属性值的类型、取值范围或取值集合不同;属性取值单位冲突。
2)命名冲突:同名异义,即不同意义的对象在不同的局部应用中具有相同的名字;异义同名(一义多名),即同一意义的对象再不同的局部应用中具有不同的名字。
3)结构冲突:同一对象在不同应用中具有不同的抽象;同一实体在不同子系统的E-R图中所包含的属性个数和属性排列次序不完全相同;实体间的联系在不听的E-R图中为不同的类型。
2. 修改和重构
消除不必要的冗余,生成基本E-R图。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。
分析方法消除冗余,即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消冗余。
规范化理论消除冗余,具体方法可以分为
1)确定分E-R图实体之间的数据依赖。实体之间一对一、一对多、多对多的联系可以用实体码之间的函数依赖来表示。
2)求Fl的最小覆盖Gl,差集为D=Fl-Gl。
备注:并不是所有的冗余数据与冗余联系都必须加于消除,有时候为了提高效率不得不以冗余信息作为代价。
相关阅读
今天快播的创始人王欣出狱后,发布了第一款面向社交市场的产品,让我们从社交场景的角度来看看这款产品其核心到底有无突破?一、产品综
差异备份 (differential backup)定义 一种数据备份,基于完整数据库或部分数据库或一组数据文件或文件组(差异基准)的最新完整备份,并
一.概述学生信息管理系统是学校管理的重要工具,是学校不可或缺的一部分。随着在校人数的不断增加,教务系统的数量也不断的上涨。学
以iPhone Inch为例,让你明白UI和WEB的尺寸单位概念
你会发现,当你有耐心从头开始「理解」一件事情的时候,它就会变得很简单了。随着信息的呈现方式越来越多元,UI/Web 设计师面对的工作
SQLite–轻量级数据库 一般常见于安卓客户端。用于存储一些重要数据,因其操作容易、使用简单的好处博得一大批迷妹。今天就来说一