将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。它是整个数据库设计的关键。

1. 概念模型

在需求分析阶段所得到的应用需求应当首先抽象为信息世界的结构,然后才能更好,更准确地采用某一数据库管理系统实现这些需求。

概念模型的主要特点是:

(1) 能真实,充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型。

(2) 易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设计成功的关键。

(3) 易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。

(4)易于向关系,网状,层次等数据模型转换。

概念模型是各种数据模型的共同基础,它比数据模型更独立于机器,更抽象,从而更加稳定。描述概念模型的有力工具是E-R模型。

2. E-R模型

(1) 实体之间的联系

a . 一对一联系(1:1)

如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。

b . 一对多联系(1:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多的联系,记为1:n。

c . 多对多联系(n:m)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n>10)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m>10)与之联系,则称实体集A与实体集B具有多对多的联系,记为n:m。

(2) E-R图

E-R图提供了表示实体形,属性和联系的方法。

a . 实体型用矩形表示,矩形框内写明实体名

b . 属性用椭圆体表示,并用无向边将其与相应的实体型连接起来

c . 联系用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁边标上联系的类型(1:1,1:n,n:m)。

3. 扩展E-R模型

(1) ISA联系

ISA联系是一个重要的性质是子类继承了父类的所有属性,当然子类也可以有自己的属性。ISA联系描述了对一个实体型中实体的一种分类方法。

(2) 不相交约束和可重叠约束

不相交约束描述父类中的一个实体不能相同属于多个子类中的实体集,即一个父类中的实体最多属于一个子类实体集,用ISA联系三角形符号内加一个叉号“X”来表示。完备性约束描述父类中的一个实体是否必须是某一个子类中的实体,如果是,则叫做完全特化,否则叫做部分特化。

(3) 基数约束

基数约束是对实体之间一对一,一对多,多对多联系的细化。参与联系的每个实体型用基数约束来说明实体型中的任何一个实体型都可以在联系中出现的最少次数和最多次数。约束用一个数对min...max表示,0≤min≤max。

(4) Part-of联系

Part-of联系即部分联系,它表明某个实体型是另外一个实体型的一部分。Part-of联系可以分为两种情况,一种是整数实体如果被破坏,部分实体仍然可以独立存在,称为非独占的Part-of联系。非独占的Part-of联系可以通过基数约束来表达。与非独占联系相反,还有一种Part-of联系是独占联系。即整体实体如果被破坏,部分实体不能存在,在E-R图中用弱实体类型和识别联系来表示独占联系。如果一个实体型的存在依赖于其他实体型的存在,则这个实体型叫做弱实体性,否则叫做强实体型。

4. UML

UML是对象管理组织的一个标准,它不是专门针对数据建模的,而是为软件开发的所有阶段提供模型化可可视化支持的规范语言,从需求规格描述到系统完成后的测试和维护都可以用到UML。

(1) 实体集

用类表示,矩形框中实体名放在上部,下面列出属性名。

(2) 实体的码

在类图中在属性后面加“PK”来表示码属性。

(3) 联系

用类图之间的“联系”来表示,早起的UML只能表示二元关联,关联的两个类用无向边相连,在连接上面写关联的名称。

5. 概念结构设计

(1) 实体与属性的划分原则

  1. 作为属性,不能再具有需要描述的性质,即属性必须是不可再分的数据项,不能包含其他属性。
  2. 属性不能与其他实体具有联系,即E-R图中所表示的联系是实体之间的联系。凡满足上述两条准则的事物,一般均可作为属性对待。

(2) E-R图的集成

E-R图的集成一般需要分两步走,如图所示。

  •  合并E-R图,生成初步E-R图

合并这些E-R图时并不能简单地将各个E-R图画到一起,而是必须着力消除各个E-R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型。合理消除各E-R图的冲突是合并E-R图的主要工作与关键所在。

各子系统的E-R图之间的冲突主要有三类:

a . 属性冲突;

b . 命名冲突;

c . 结构冲突。

  • 消除不必要的冗余,设计基本E-R图

冗余的数据是指可由基础数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E-R图称为基本E-R图。消除冗余常见的两种方法为:

a . 分析方法;

b . 规范化理论。

数据库结构设计之概念结构设计相关推荐

  1. 数据库设计:概念结构设计

    概念结构设计的任务是在需求分析阶段产生的需求说明书的基础上,按照特定的方法把它们抽象为一个不依赖于任何具体机器的数据模型,即概念模型.概念模型使设计者的注意力能够从复杂的实现细节中解脱出来,而只集中在 ...

  2. 数据库设计之概念结构设计---------E-R图详解

    0.试述采用E-R方法进行数据库概念设计的过程. 答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式 ...

  3. 数据库设计之概念结构设计---------E-R图详解(流程和关系)

    0.试述采用E-R方法进行数据库概念设计的过程. 答:采用E-R方法进行数据库概念设计,可以分成3步进行:首先设计局部E-R模式,然后把各局部E-R模式综合成一个全局的E-R模式,最后对全局E-R模式 ...

  4. 数据库设计之概念结构设计---------E-R图详解 (各种各样的实例)

    http://blog.csdn.net/zxq1138634642/article/details/9121363 0.试述采用E-R方法进行数据库概念设计的过程. 答:采用E-R方法进行数据库概念 ...

  5. (数据库系统概论|王珊)第七章数据库设计-第三节:概念结构设计

    pdf下载:密码7281 专栏目录首页:[专栏必读](考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解 文章目录 一:E-R模型 (1)两个实体之间的联系 ①:一对一联系( ...

  6. 数据库原理(十 一)- 概念结构设计

    数据库原理(十 一)- 概念结构设计 前言 概念结构的特点 E-R模型 概念结构设计 实体划分的原则 E-R的集成 借鉴 前言 将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设 ...

  7. 数据库 之数据库设计浅知识 -- 设计概述、概念结构设计(E-R模型概述)、逻辑结构设计(函数依赖和范式)、物理结构设计

    文章目录 1. 数据库设计概述 1.1 数据库设计的特点:结构和行为分离的设计 1.2 数据库设计方法 1.3 数据库设计的基本步骤 1.4 数据库设计过程中的各级模式 2. 需求分析 2.1 需求分 ...

  8. 数据库原理 概念结构设计-E-R图及其设计

    将 用户需求抽象成概念模型的过程就是概念结构设计 是数据库设计的关键 概念模型的一种表现方法:实体-联系法(Entity-Relationship Approach) 简称:E-R方法:用E-R图来描 ...

  9. 数据库的概念结构设计与计算机的,数据库结构的优化设计研究

    摘要:在计算机的各项发展中,发展最快其中之一就是数据库技术,他也是在我们的日常生产活动中被应用最为广泛的的技术.他成为了计算机系统与应用系统之间的连接桥梁.在数据库被设计出来之前,数据库的设计人员将在 ...

最新文章

  1. 【怎样写代码】参数化类型 -- 泛型(八):泛型委托
  2. Oracle10gr2 开机自启动脚本
  3. JsCV Core v0.2发布 Javascript图像处理系列目录
  4. 【C 语言】文件操作 ( 配置文件读写 | 写出或更新配置文件 | 追加键值对数据 | 更新键值对数据 )
  5. Hadoop的安装与配置及示例程序wordcount的运行
  6. tensorflow 入门实例(二)
  7. 政府公务办公安全保密邮件系统建设
  8. 1.2 边缘检测示例
  9. [转]nodejs深入学(7)理解Buffer
  10. PHP工程师最佳学习路线!【重磅推出】
  11. 苹果公司的企业文化_标志设计对于企业的重要性,性价比高的标志设计公司分享...
  12. micropython支持stm32型号_轻松几步实现在STM32上运行FreeRTOS任务
  13. scrapy项目部署
  14. LaTeX 论文排版学习笔记(零基础)
  15. 使用POI在Excel单元格插入符号(Symbol)
  16. mkfs.ext3 快速格式化_求救!固态硬盘格式化不了!
  17. java 判断是否夏令时_Java日期夏令时的问题
  18. 在Ubuntu 8.10 中安装使用新一代输入法ibus Deb包下载
  19. 三角肌前束(02):哑铃交替前举
  20. 【光学】基于矩阵法和等效界面法分析光学薄

热门文章

  1. Python接口测试入门
  2. 如何开搓饵不掉钩_绝密搓饵小技巧
  3. 如何查询Oracle,Sql Server,MySQL 中的数据库名称、数据表名称、字段名称
  4. 机器学习笔记:贝叶斯方法与正则化的关系
  5. MATLAB代码:基于主从博弈多虚拟电厂动态定价和能量管理
  6. 导出pdf Puppeteer 和 wkhtmltopdf区别
  7. 老广的味道第五季笔记
  8. Java异常处理简单实例
  9. eggjs+vue+mysql增删改查demo
  10. Python 入门之元组与字典